okstra 0.174.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.
- package/README.md +18 -9
- package/bin/okstra +8 -4
- package/dist/cli-registry.d.mts +16 -0
- package/dist/cli-registry.mjs +560 -0
- package/dist/cli-registry.mjs.map +1 -0
- package/dist/commands/execute/agent-prompt.d.mts +1 -0
- package/{src → dist}/commands/execute/agent-prompt.mjs +10 -11
- package/dist/commands/execute/agent-prompt.mjs.map +1 -0
- package/dist/commands/execute/codex-dispatch.d.mts +3 -0
- package/dist/commands/execute/codex-dispatch.mjs +6 -0
- package/dist/commands/execute/codex-dispatch.mjs.map +1 -0
- package/dist/commands/execute/codex-run.d.mts +3 -0
- package/{src → dist}/commands/execute/codex-run.mjs +30 -37
- package/dist/commands/execute/codex-run.mjs.map +1 -0
- package/dist/commands/execute/convergence.d.mts +1 -0
- package/{src → dist}/commands/execute/convergence.mjs +15 -16
- package/dist/commands/execute/convergence.mjs.map +1 -0
- package/dist/commands/execute/error-log.d.mts +1 -0
- package/{src → dist}/commands/execute/error-log.mjs +2 -3
- package/dist/commands/execute/error-log.mjs.map +1 -0
- package/dist/commands/execute/git-reconcile.d.mts +1 -0
- package/{src → dist}/commands/execute/git-reconcile.mjs +10 -11
- package/dist/commands/execute/git-reconcile.mjs.map +1 -0
- package/dist/commands/execute/handoff.d.mts +1 -0
- package/{src → dist}/commands/execute/handoff.mjs +10 -11
- package/dist/commands/execute/handoff.mjs.map +1 -0
- package/dist/commands/execute/incremental-carry.d.mts +1 -0
- package/{src → dist}/commands/execute/incremental-carry.mjs +2 -3
- package/dist/commands/execute/incremental-carry.mjs.map +1 -0
- package/dist/commands/execute/incremental-scope.d.mts +1 -0
- package/{src → dist}/commands/execute/incremental-scope.mjs +2 -3
- package/dist/commands/execute/incremental-scope.mjs.map +1 -0
- package/dist/commands/execute/integrate-stages.d.mts +1 -0
- package/{src → dist}/commands/execute/integrate-stages.mjs +10 -11
- package/dist/commands/execute/integrate-stages.mjs.map +1 -0
- package/dist/commands/execute/pane-title.d.mts +1 -0
- package/dist/commands/execute/pane-title.mjs +20 -0
- package/dist/commands/execute/pane-title.mjs.map +1 -0
- package/dist/commands/execute/plan-items.d.mts +1 -0
- package/dist/commands/execute/plan-items.mjs +9 -0
- package/dist/commands/execute/plan-items.mjs.map +1 -0
- package/dist/commands/execute/plan-validate.d.mts +1 -0
- package/dist/commands/execute/plan-validate.mjs +68 -0
- package/dist/commands/execute/plan-validate.mjs.map +1 -0
- package/dist/commands/execute/plan-verify.d.mts +1 -0
- package/{src → dist}/commands/execute/plan-verify.mjs +13 -16
- package/dist/commands/execute/plan-verify.mjs.map +1 -0
- package/dist/commands/execute/render-bundle.d.mts +3 -0
- package/{src → dist}/commands/execute/render-bundle.mjs +65 -61
- package/dist/commands/execute/render-bundle.mjs.map +1 -0
- package/dist/commands/execute/run.d.mts +24 -0
- package/dist/commands/execute/run.mjs +196 -0
- package/dist/commands/execute/run.mjs.map +1 -0
- package/dist/commands/execute/spawn-followups.d.mts +1 -0
- package/{src → dist}/commands/execute/spawn-followups.mjs +6 -7
- package/dist/commands/execute/spawn-followups.mjs.map +1 -0
- package/dist/commands/execute/team.d.mts +3 -0
- package/{src → dist}/commands/execute/team.mjs +29 -36
- package/dist/commands/execute/team.mjs.map +1 -0
- package/dist/commands/execute/token-usage.d.mts +1 -0
- package/{src → dist}/commands/execute/token-usage.mjs +2 -3
- package/dist/commands/execute/token-usage.mjs.map +1 -0
- package/dist/commands/execute/wizard.d.mts +8 -0
- package/dist/commands/execute/wizard.mjs +191 -0
- package/dist/commands/execute/wizard.mjs.map +1 -0
- package/dist/commands/execute/worker-audit-check.d.mts +1 -0
- package/{src → dist}/commands/execute/worker-audit-check.mjs +11 -12
- package/dist/commands/execute/worker-audit-check.mjs.map +1 -0
- package/dist/commands/execute/worker-dispatch.d.mts +7 -0
- package/{src → dist}/commands/execute/worker-dispatch.mjs +34 -46
- package/dist/commands/execute/worker-dispatch.mjs.map +1 -0
- package/dist/commands/execute/worker-state.d.mts +1 -0
- package/{src → dist}/commands/execute/worker-state.mjs +15 -16
- package/dist/commands/execute/worker-state.mjs.map +1 -0
- package/dist/commands/execute/worktree-lookup.d.mts +1 -0
- package/{src → dist}/commands/execute/worktree-lookup.mjs +38 -37
- package/dist/commands/execute/worktree-lookup.mjs.map +1 -0
- package/dist/commands/execute/worktree-status.d.mts +1 -0
- package/{src → dist}/commands/execute/worktree-status.mjs +52 -46
- package/dist/commands/execute/worktree-status.mjs.map +1 -0
- package/dist/commands/inspect/code-review.d.mts +1 -0
- package/{src → dist}/commands/inspect/code-review.mjs +16 -19
- package/dist/commands/inspect/code-review.mjs.map +1 -0
- package/dist/commands/inspect/container.d.mts +1 -0
- package/{src → dist}/commands/inspect/container.mjs +11 -13
- package/dist/commands/inspect/container.mjs.map +1 -0
- package/dist/commands/inspect/context-cost.d.mts +1 -0
- package/{src → dist}/commands/inspect/context-cost.mjs +11 -13
- package/dist/commands/inspect/context-cost.mjs.map +1 -0
- package/dist/commands/inspect/design-prep.d.mts +1 -0
- package/{src → dist}/commands/inspect/design-prep.mjs +10 -11
- package/dist/commands/inspect/design-prep.mjs.map +1 -0
- package/dist/commands/inspect/error-report.d.mts +1 -0
- package/{src → dist}/commands/inspect/error-report.mjs +11 -13
- package/dist/commands/inspect/error-report.mjs.map +1 -0
- package/dist/commands/inspect/error-zip.d.mts +1 -0
- package/{src → dist}/commands/inspect/error-zip.mjs +11 -12
- package/dist/commands/inspect/error-zip.mjs.map +1 -0
- package/dist/commands/inspect/log-report.d.mts +1 -0
- package/{src → dist}/commands/inspect/log-report.mjs +11 -13
- package/dist/commands/inspect/log-report.mjs.map +1 -0
- package/dist/commands/inspect/profile-show.d.mts +1 -0
- package/{src → dist}/commands/inspect/profile-show.mjs +10 -11
- package/dist/commands/inspect/profile-show.mjs.map +1 -0
- package/dist/commands/inspect/recap.d.mts +1 -0
- package/{src → dist}/commands/inspect/recap.mjs +11 -13
- package/dist/commands/inspect/recap.mjs.map +1 -0
- package/dist/commands/inspect/resolve-task-key.d.mts +1 -0
- package/{src → dist}/commands/inspect/resolve-task-key.mjs +11 -13
- package/dist/commands/inspect/resolve-task-key.mjs.map +1 -0
- package/dist/commands/inspect/rollup.d.mts +1 -0
- package/{src → dist}/commands/inspect/rollup.mjs +11 -13
- package/dist/commands/inspect/rollup.mjs.map +1 -0
- package/dist/commands/inspect/run-audit.d.mts +1 -0
- package/{src → dist}/commands/inspect/run-audit.mjs +11 -12
- package/dist/commands/inspect/run-audit.mjs.map +1 -0
- package/dist/commands/inspect/set-work-status.d.mts +1 -0
- package/{src → dist}/commands/inspect/set-work-status.mjs +11 -13
- package/dist/commands/inspect/set-work-status.mjs.map +1 -0
- package/dist/commands/inspect/stage-map.d.mts +1 -0
- package/dist/commands/inspect/stage-map.mjs +110 -0
- package/dist/commands/inspect/stage-map.mjs.map +1 -0
- package/dist/commands/inspect/task-list.d.mts +1 -0
- package/dist/commands/inspect/task-list.mjs +103 -0
- package/dist/commands/inspect/task-list.mjs.map +1 -0
- package/dist/commands/inspect/task-show.d.mts +1 -0
- package/dist/commands/inspect/task-show.mjs +108 -0
- package/dist/commands/inspect/task-show.mjs.map +1 -0
- package/dist/commands/inspect/time-report.d.mts +1 -0
- package/{src → dist}/commands/inspect/time-report.mjs +11 -13
- package/dist/commands/inspect/time-report.mjs.map +1 -0
- package/dist/commands/inspect/usage-report.d.mts +1 -0
- package/{src → dist}/commands/inspect/usage-report.mjs +11 -13
- package/dist/commands/inspect/usage-report.mjs.map +1 -0
- package/dist/commands/inspect/user-response.d.mts +1 -0
- package/{src → dist}/commands/inspect/user-response.mjs +10 -11
- package/dist/commands/inspect/user-response.mjs.map +1 -0
- package/dist/commands/inspect/worker-liveness.d.mts +1 -0
- package/{src → dist}/commands/inspect/worker-liveness.mjs +11 -13
- package/dist/commands/inspect/worker-liveness.mjs.map +1 -0
- package/dist/commands/lifecycle/check-project.d.mts +21 -0
- package/dist/commands/lifecycle/check-project.mjs +175 -0
- package/dist/commands/lifecycle/check-project.mjs.map +1 -0
- package/dist/commands/lifecycle/config.d.mts +1 -0
- package/dist/commands/lifecycle/config.mjs +369 -0
- package/dist/commands/lifecycle/config.mjs.map +1 -0
- package/dist/commands/lifecycle/doctor.d.mts +10 -0
- package/dist/commands/lifecycle/doctor.mjs +317 -0
- package/dist/commands/lifecycle/doctor.mjs.map +1 -0
- package/dist/commands/lifecycle/install.d.mts +17 -0
- package/dist/commands/lifecycle/install.mjs +1077 -0
- package/dist/commands/lifecycle/install.mjs.map +1 -0
- package/dist/commands/lifecycle/migrate.d.mts +1 -0
- package/{src → dist}/commands/lifecycle/migrate.mjs +10 -11
- package/dist/commands/lifecycle/migrate.mjs.map +1 -0
- package/dist/commands/lifecycle/model.d.mts +1 -0
- package/dist/commands/lifecycle/model.mjs +22 -0
- package/dist/commands/lifecycle/model.mjs.map +1 -0
- package/dist/commands/lifecycle/paths.d.mts +1 -0
- package/dist/commands/lifecycle/paths.mjs +102 -0
- package/dist/commands/lifecycle/paths.mjs.map +1 -0
- package/dist/commands/lifecycle/preflight.d.mts +1 -0
- package/dist/commands/lifecycle/preflight.mjs +124 -0
- package/dist/commands/lifecycle/preflight.mjs.map +1 -0
- package/dist/commands/lifecycle/setup.d.mts +1 -0
- package/dist/commands/lifecycle/setup.mjs +297 -0
- package/dist/commands/lifecycle/setup.mjs.map +1 -0
- package/dist/commands/lifecycle/uninstall.d.mts +4 -0
- package/dist/commands/lifecycle/uninstall.mjs +262 -0
- package/dist/commands/lifecycle/uninstall.mjs.map +1 -0
- package/dist/commands/manager.d.mts +3 -0
- package/{src → dist}/commands/manager.mjs +25 -32
- package/dist/commands/manager.mjs.map +1 -0
- package/dist/commands/memory/memory.d.mts +1 -0
- package/dist/commands/memory/memory.mjs +569 -0
- package/dist/commands/memory/memory.mjs.map +1 -0
- package/dist/commands/pr/pr.d.mts +33 -0
- package/dist/commands/pr/pr.mjs +296 -0
- package/dist/commands/pr/pr.mjs.map +1 -0
- package/dist/commands/report/agent-activity.d.mts +1 -0
- package/{src → dist}/commands/report/agent-activity.mjs +11 -12
- package/dist/commands/report/agent-activity.mjs.map +1 -0
- package/dist/commands/report/finalize.d.mts +4 -0
- package/{src → dist}/commands/report/finalize.mjs +25 -32
- package/dist/commands/report/finalize.mjs.map +1 -0
- package/dist/commands/report/inject-report-index.d.mts +1 -0
- package/{src → dist}/commands/report/inject-report-index.mjs +6 -7
- package/dist/commands/report/inject-report-index.mjs.map +1 -0
- package/dist/commands/report/render-final-report.d.mts +1 -0
- package/{src → dist}/commands/report/render-final-report.mjs +6 -7
- package/dist/commands/report/render-final-report.mjs.map +1 -0
- package/dist/commands/report/render-views.d.mts +1 -0
- package/{src → dist}/commands/report/render-views.mjs +6 -7
- package/dist/commands/report/render-views.mjs.map +1 -0
- package/dist/commands/report/translate.d.mts +1 -0
- package/{src → dist}/commands/report/translate.mjs +6 -7
- package/dist/commands/report/translate.mjs.map +1 -0
- package/dist/lib/helper-scripts.d.mts +3 -0
- package/{src → dist}/lib/helper-scripts.mjs +11 -14
- package/dist/lib/helper-scripts.mjs.map +1 -0
- package/dist/lib/host-registry-client.d.mts +25 -0
- package/dist/lib/host-registry-client.mjs +152 -0
- package/dist/lib/host-registry-client.mjs.map +1 -0
- package/dist/lib/install-assets.d.mts +8 -0
- package/{src → dist}/lib/install-assets.mjs +17 -20
- package/dist/lib/install-assets.mjs.map +1 -0
- package/dist/lib/okstra-dirs.d.mts +4 -0
- package/{src → dist}/lib/okstra-dirs.mjs +3 -6
- package/dist/lib/okstra-dirs.mjs.map +1 -0
- package/dist/lib/paths.d.mts +4 -0
- package/dist/lib/paths.mjs +78 -0
- package/dist/lib/paths.mjs.map +1 -0
- package/dist/lib/proc.d.mts +3 -0
- package/dist/lib/proc.mjs +31 -0
- package/dist/lib/proc.mjs.map +1 -0
- package/dist/lib/python-helper.d.mts +8 -0
- package/dist/lib/python-helper.mjs +123 -0
- package/dist/lib/python-helper.mjs.map +1 -0
- package/dist/lib/runtime-manifest.d.mts +7 -0
- package/dist/lib/runtime-manifest.mjs +73 -0
- package/dist/lib/runtime-manifest.mjs.map +1 -0
- package/dist/lib/skill-catalog.d.mts +4 -0
- package/dist/lib/skill-catalog.mjs +50 -0
- package/dist/lib/skill-catalog.mjs.map +1 -0
- package/dist/lib/types.d.mts +129 -0
- package/dist/lib/types.mjs +2 -0
- package/dist/lib/types.mjs.map +1 -0
- package/dist/lib/version.d.mts +2 -0
- package/dist/lib/version.mjs +27 -0
- package/dist/lib/version.mjs.map +1 -0
- package/docs/architecture/storage-model.md +4 -0
- package/docs/architecture.md +7 -1
- package/docs/cli.md +26 -6
- package/docs/contributor-change-matrix.md +2 -2
- package/docs/project-structure-overview.md +16 -7
- package/docs/task-process/README.md +2 -0
- package/docs/task-process/implementation-planning.md +1 -1
- package/docs/task-process/implementation.md +1 -1
- package/package.json +11 -5
- package/runtime/BUILD.json +2 -2
- package/runtime/agents/workers/claude-worker.md +2 -1
- package/runtime/agents/workers/report-writer-worker.md +3 -1
- package/runtime/agents/workers/translator-worker.md +3 -1
- package/runtime/bin/lib/okstra/cli.sh +12 -0
- package/runtime/bin/lib/okstra/globals.sh +3 -0
- package/runtime/bin/lib/okstra/usage.sh +4 -4
- package/runtime/bin/okstra-error-log.py +27 -0
- package/runtime/bin/okstra-provider-exec.py +217 -5
- package/runtime/bin/okstra.sh +10 -0
- package/runtime/prompts/lead/convergence.md +27 -18
- package/runtime/prompts/lead/okstra-lead-contract.md +3 -1
- package/runtime/prompts/lead/plan-body-verification.md +10 -3
- package/runtime/prompts/lead/team-contract.md +1 -1
- package/runtime/prompts/profiles/change-impact-analysis.md +16 -0
- package/runtime/prompts/profiles/error-analysis.md +20 -0
- package/runtime/prompts/profiles/feature-analysis.md +16 -0
- package/runtime/prompts/profiles/final-verification.md +16 -0
- package/runtime/prompts/profiles/implementation-option-selection.md +16 -0
- package/runtime/prompts/profiles/implementation-planning.md +20 -0
- package/runtime/prompts/profiles/implementation.md +15 -0
- package/runtime/prompts/profiles/improvement-discovery.md +16 -0
- package/runtime/prompts/profiles/project-analysis.md +16 -0
- package/runtime/prompts/profiles/release-handoff.md +4 -0
- package/runtime/prompts/profiles/requirements-discovery.md +20 -0
- package/runtime/prompts/wizard/prompts.ko.json +18 -0
- package/runtime/python/okstra_ctl/adapters/dispatch/cli_wrapper.py +8 -0
- package/runtime/python/okstra_ctl/adapters/dispatch/cmux.py +8 -0
- package/runtime/python/okstra_ctl/adapters/dispatch/native_team.py +13 -0
- package/runtime/python/okstra_ctl/adapters/hosts/antigravity/adapter.py +2 -2
- package/runtime/python/okstra_ctl/adapters/hosts/claude-code/adapter.py +25 -5
- package/runtime/python/okstra_ctl/adapters/hosts/codex/adapter.py +2 -2
- package/runtime/python/okstra_ctl/adapters/hosts/external/adapter.py +4 -1
- package/runtime/python/okstra_ctl/adapters/hosts/grok/adapter.py +2 -2
- package/runtime/python/okstra_ctl/adapters/hosts/kimi/adapter.py +2 -2
- package/runtime/python/okstra_ctl/adapters/providers/antigravity/adapter.py +79 -11
- package/runtime/python/okstra_ctl/adapters/providers/claude/adapter.py +95 -25
- package/runtime/python/okstra_ctl/adapters/providers/codex/adapter.py +59 -14
- package/runtime/python/okstra_ctl/adapters/providers/grok/adapter.py +55 -9
- package/runtime/python/okstra_ctl/adapters/providers/kimi/adapter.py +51 -12
- package/runtime/python/okstra_ctl/agent_activity.py +5 -1
- package/runtime/python/okstra_ctl/agent_invocation.py +608 -14
- package/runtime/python/okstra_ctl/agent_prompt_cli.py +249 -50
- package/runtime/python/okstra_ctl/application/resolve_assignment.py +53 -12
- package/runtime/python/okstra_ctl/assignment_environment.py +102 -0
- package/runtime/python/okstra_ctl/assignment_resolver.py +790 -0
- package/runtime/python/okstra_ctl/attempt_evidence.py +342 -0
- package/runtime/python/okstra_ctl/convergence.py +409 -3
- package/runtime/python/okstra_ctl/convergence_engine.py +248 -15
- package/runtime/python/okstra_ctl/convergence_store.py +170 -1
- package/runtime/python/okstra_ctl/dispatch_core.py +1092 -63
- package/runtime/python/okstra_ctl/dispatch_state.py +696 -11
- package/runtime/python/okstra_ctl/doctor.py +14 -0
- package/runtime/python/okstra_ctl/domain/host.py +32 -1
- package/runtime/python/okstra_ctl/domain/provider.py +212 -6
- package/runtime/python/okstra_ctl/domain/role.py +125 -0
- package/runtime/python/okstra_ctl/domain/wizard/interaction.py +13 -0
- package/runtime/python/okstra_ctl/domain/worker_exec.py +34 -1
- package/runtime/python/okstra_ctl/domain/worker_role.py +13 -3
- package/runtime/python/okstra_ctl/domain/worker_stream.py +24 -0
- package/runtime/python/okstra_ctl/error_log_write.py +9 -0
- package/runtime/python/okstra_ctl/error_report.py +21 -1
- package/runtime/python/okstra_ctl/execution_identity.py +529 -0
- package/runtime/python/okstra_ctl/execution_manifest.py +1281 -0
- package/runtime/python/okstra_ctl/execution_mutation_audit.py +619 -0
- package/runtime/python/okstra_ctl/index.py +6 -2
- package/runtime/python/okstra_ctl/initial_prompt_materialization.py +43 -3
- package/runtime/python/okstra_ctl/legacy_model_selection.py +490 -0
- package/runtime/python/okstra_ctl/model_cli.py +278 -0
- package/runtime/python/okstra_ctl/model_defaults.py +46 -0
- package/runtime/python/okstra_ctl/model_discovery.py +26 -7
- package/runtime/python/okstra_ctl/model_pool.py +501 -0
- package/runtime/python/okstra_ctl/models.py +47 -27
- package/runtime/python/okstra_ctl/mutation_recovery.py +293 -0
- package/runtime/python/okstra_ctl/pane_title.py +151 -0
- package/runtime/python/okstra_ctl/ports/host_model.py +48 -17
- package/runtime/python/okstra_ctl/ports/worker_dispatch.py +4 -0
- package/runtime/python/okstra_ctl/registry/provider_registry.py +8 -4
- package/runtime/python/okstra_ctl/render.py +78 -10
- package/runtime/python/okstra_ctl/render_final_report.py +19 -0
- package/runtime/python/okstra_ctl/report_contract.py +39 -0
- package/runtime/python/okstra_ctl/report_finalize.py +16 -0
- package/runtime/python/okstra_ctl/report_html/render.py +1 -0
- package/runtime/python/okstra_ctl/role_requirements.py +217 -0
- package/runtime/python/okstra_ctl/run.py +1207 -258
- package/runtime/python/okstra_ctl/run_index_row.py +7 -1
- package/runtime/python/okstra_ctl/time_report.py +38 -4
- package/runtime/python/okstra_ctl/usage_identity.py +86 -0
- package/runtime/python/okstra_ctl/usage_report.py +15 -3
- package/runtime/python/okstra_ctl/wizard.py +1253 -62
- package/runtime/python/okstra_ctl/worker_audit_ledger.py +68 -65
- package/runtime/python/okstra_ctl/worker_request.py +7 -1
- package/runtime/python/okstra_ctl/worker_runner.py +130 -5
- package/runtime/python/okstra_ctl/workers.py +7 -5
- package/runtime/python/okstra_ctl/write_policy.py +571 -0
- package/runtime/schemas/convergence-groups-v2.0.schema.json +128 -0
- package/runtime/schemas/execution-manifest-v2.schema.json +340 -0
- package/runtime/schemas/final-report-v2.0.schema.json +25 -0
- package/runtime/skills/okstra-run/SKILL.md +9 -9
- package/runtime/templates/report-writer-prompt-preamble.md +2 -0
- package/runtime/templates/reports/final-report-v2.template.md +7 -1
- package/runtime/templates/reports/html/base.template.html +21 -0
- package/runtime/templates/reports/html/i18n/en.json +4 -0
- package/runtime/templates/reports/html/i18n/ko.json +4 -0
- package/runtime/templates/worker-prompt-preamble.md +6 -2
- package/runtime/validators/lib/fixtures.sh +49 -16
- package/runtime/validators/validate-run.py +429 -35
- package/runtime/validators/validate_session_conformance.py +25 -7
- package/src/cli-registry.mjs +0 -539
- package/src/commands/execute/codex-dispatch.mjs +0 -10
- package/src/commands/execute/plan-items.mjs +0 -9
- package/src/commands/execute/plan-validate.mjs +0 -68
- package/src/commands/execute/run.mjs +0 -208
- package/src/commands/execute/wizard.mjs +0 -167
- package/src/commands/inspect/stage-map.mjs +0 -98
- package/src/commands/inspect/task-list.mjs +0 -97
- package/src/commands/inspect/task-show.mjs +0 -100
- package/src/commands/lifecycle/check-project.mjs +0 -187
- package/src/commands/lifecycle/config.mjs +0 -385
- package/src/commands/lifecycle/doctor.mjs +0 -308
- package/src/commands/lifecycle/install.mjs +0 -1170
- package/src/commands/lifecycle/paths.mjs +0 -104
- package/src/commands/lifecycle/preflight.mjs +0 -125
- package/src/commands/lifecycle/setup.mjs +0 -333
- package/src/commands/lifecycle/uninstall.mjs +0 -279
- package/src/commands/memory/memory.mjs +0 -524
- package/src/commands/pr/pr.mjs +0 -261
- package/src/lib/host-registry-client.mjs +0 -176
- package/src/lib/paths.mjs +0 -86
- package/src/lib/proc.mjs +0 -31
- package/src/lib/python-helper.mjs +0 -142
- package/src/lib/runtime-manifest.mjs +0 -70
- package/src/lib/skill-catalog.mjs +0 -53
- package/src/lib/version.mjs +0 -20
- /package/{src → dist}/commands/pr/default.md +0 -0
|
@@ -146,6 +146,14 @@ _TRACKED_READ_BASENAMES = (
|
|
|
146
146
|
@dataclass
|
|
147
147
|
class SessionConformanceResult:
|
|
148
148
|
errors: list[str] = field(default_factory=list)
|
|
149
|
+
# Conformance findings that are reported without failing the run: the
|
|
150
|
+
# PROGRESS narration lines. A missing checkpoint line means the run is
|
|
151
|
+
# harder to follow after the fact, not that any of its work is wrong, and
|
|
152
|
+
# by the time this validator runs the line can no longer be emitted — the
|
|
153
|
+
# session that would have written it has ended. Checks that verify a
|
|
154
|
+
# *claim* (a user confirmation the report says it obtained) stay in
|
|
155
|
+
# `errors`.
|
|
156
|
+
advisories: list[str] = field(default_factory=list)
|
|
149
157
|
|
|
150
158
|
@property
|
|
151
159
|
def ok(self) -> bool:
|
|
@@ -1089,26 +1097,30 @@ def _check_progress_checkpoints(
|
|
|
1089
1097
|
suffix: str | None,
|
|
1090
1098
|
report_path: Path,
|
|
1091
1099
|
errors: list[str],
|
|
1100
|
+
advisories: list[str] | None = None,
|
|
1092
1101
|
) -> None:
|
|
1102
|
+
# The narration lines are advisory (see `SessionConformanceResult`); the
|
|
1103
|
+
# user-confirmation cross-check below stays in `errors`.
|
|
1104
|
+
narration = advisories if advisories is not None else errors
|
|
1093
1105
|
by_phase: dict[str, list[tuple[str, str]]] = {}
|
|
1094
1106
|
for ts, phase, line in evidence.progress:
|
|
1095
1107
|
by_phase.setdefault(phase, []).append((ts, line))
|
|
1096
1108
|
|
|
1097
1109
|
def require(phase: str, condition: bool, detail: str) -> None:
|
|
1098
1110
|
if condition and phase not in by_phase:
|
|
1099
|
-
|
|
1111
|
+
narration.append(
|
|
1100
1112
|
f"PROGRESS checkpoint missing: `{phase}` ({detail}) — "
|
|
1101
1113
|
"prompts/lead/okstra-lead-contract.md 'Progress reporting (BLOCKING)'."
|
|
1102
1114
|
)
|
|
1103
1115
|
|
|
1104
1116
|
intake = by_phase.get("phase-1-intake", [])
|
|
1105
1117
|
if not any("complete" not in line.lower() for _ts, line in intake):
|
|
1106
|
-
|
|
1118
|
+
narration.append(
|
|
1107
1119
|
"PROGRESS checkpoint missing: `phase-1-intake reading task bundle` "
|
|
1108
1120
|
"(start-of-Phase-1 line) — prompts/lead/okstra-lead-contract.md 'Progress reporting (BLOCKING)'."
|
|
1109
1121
|
)
|
|
1110
1122
|
if not any("complete" in line.lower() for _ts, line in intake):
|
|
1111
|
-
|
|
1123
|
+
narration.append(
|
|
1112
1124
|
"PROGRESS checkpoint missing: `phase-1-intake complete` "
|
|
1113
1125
|
"(after all intake reads) — prompts/lead/okstra-lead-contract.md 'Progress reporting (BLOCKING)'."
|
|
1114
1126
|
)
|
|
@@ -1126,7 +1138,7 @@ def _check_progress_checkpoints(
|
|
|
1126
1138
|
"`using implicit team (split-pane=<on|off>)` line, or the "
|
|
1127
1139
|
"`skipped (concurrent-run)` variant in the concurrent-run path",
|
|
1128
1140
|
)
|
|
1129
|
-
_check_worker_checkpoint_lines(by_phase, analysis_workers,
|
|
1141
|
+
_check_worker_checkpoint_lines(by_phase, analysis_workers, narration)
|
|
1130
1142
|
convergence_ran = _convergence_rounds_ran(run_dir, suffix)
|
|
1131
1143
|
require(
|
|
1132
1144
|
"phase-5.5-convergence",
|
|
@@ -1145,10 +1157,10 @@ def _check_progress_checkpoints(
|
|
|
1145
1157
|
)
|
|
1146
1158
|
require("phase-7-persist", True, "at the start of Phase 7")
|
|
1147
1159
|
_check_batch_cleanup_checkpoints(
|
|
1148
|
-
by_phase, convergence_ran, report_writer_dispatched,
|
|
1160
|
+
by_phase, convergence_ran, report_writer_dispatched, narration
|
|
1149
1161
|
)
|
|
1150
1162
|
_check_plan_verify_cleanup_checkpoints(
|
|
1151
|
-
by_phase, _plan_body_rounds_ran(run_dir, suffix),
|
|
1163
|
+
by_phase, _plan_body_rounds_ran(run_dir, suffix), narration
|
|
1152
1164
|
)
|
|
1153
1165
|
_check_user_confirm_checkpoints(
|
|
1154
1166
|
by_phase, _ids_reported_as_asked(report_path), errors
|
|
@@ -1413,7 +1425,13 @@ def validate_session_conformance(
|
|
|
1413
1425
|
result.errors.append(error)
|
|
1414
1426
|
return result
|
|
1415
1427
|
_check_progress_checkpoints(
|
|
1416
|
-
evidence,
|
|
1428
|
+
evidence,
|
|
1429
|
+
team_state,
|
|
1430
|
+
run_dir,
|
|
1431
|
+
suffix,
|
|
1432
|
+
report_path,
|
|
1433
|
+
result.errors,
|
|
1434
|
+
result.advisories,
|
|
1417
1435
|
)
|
|
1418
1436
|
_check_activity_contract(
|
|
1419
1437
|
evidence,
|
package/src/cli-registry.mjs
DELETED
|
@@ -1,539 +0,0 @@
|
|
|
1
|
-
const SUMMARY_COLUMN = 25;
|
|
2
|
-
|
|
3
|
-
export const COMMAND_REGISTRY = [
|
|
4
|
-
{
|
|
5
|
-
name: "install",
|
|
6
|
-
module: "./commands/lifecycle/install.mjs",
|
|
7
|
-
export: "runInstall",
|
|
8
|
-
category: "admin",
|
|
9
|
-
summary: ["Install runtime; seed skills into Agent and Claude homes"],
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
name: "ensure-installed",
|
|
13
|
-
module: "./commands/lifecycle/install.mjs",
|
|
14
|
-
export: "runEnsureInstalled",
|
|
15
|
-
category: "admin",
|
|
16
|
-
summary: ["Verify install is fresh; reinstall if stale (idempotent)"],
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
name: "uninstall",
|
|
20
|
-
module: "./commands/lifecycle/uninstall.mjs",
|
|
21
|
-
export: "runUninstall",
|
|
22
|
-
category: "admin",
|
|
23
|
-
summary: ["Remove runtime + skills (user data preserved by default)"],
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
name: "setup",
|
|
27
|
-
module: "./commands/lifecycle/setup.mjs",
|
|
28
|
-
export: "run",
|
|
29
|
-
category: "admin",
|
|
30
|
-
summary: ["Register the current project (.okstra/project.json)"],
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
name: "doctor",
|
|
34
|
-
module: "./commands/lifecycle/doctor.mjs",
|
|
35
|
-
export: "run",
|
|
36
|
-
category: "admin",
|
|
37
|
-
summary: [
|
|
38
|
-
"Diagnostic check; --runtime selects assets, --phase checks readiness",
|
|
39
|
-
],
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
name: "check-project",
|
|
43
|
-
module: "./commands/lifecycle/check-project.mjs",
|
|
44
|
-
export: "run",
|
|
45
|
-
category: "admin",
|
|
46
|
-
summary: ["Verify the current project has been registered with setup"],
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
name: "preflight",
|
|
50
|
-
module: "./commands/lifecycle/preflight.mjs",
|
|
51
|
-
export: "run",
|
|
52
|
-
category: "admin",
|
|
53
|
-
summary: ["One-call skill preflight: ensure-installed + check-project (JSON)"],
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
name: "config",
|
|
57
|
-
module: "./commands/lifecycle/config.mjs",
|
|
58
|
-
export: "run",
|
|
59
|
-
category: "admin",
|
|
60
|
-
summary: ["Read / write okstra settings (e.g. PR template path)"],
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
name: "migrate",
|
|
64
|
-
module: "./commands/lifecycle/migrate.mjs",
|
|
65
|
-
export: "run",
|
|
66
|
-
category: "admin",
|
|
67
|
-
summary: ["Move legacy .project-docs/okstra/ to .okstra/ (one-shot)"],
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
name: "convergence",
|
|
71
|
-
module: "./commands/execute/convergence.mjs",
|
|
72
|
-
export: "run",
|
|
73
|
-
category: "admin",
|
|
74
|
-
summary: ["Advance and validate deterministic re-verification state"],
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
name: "plan-items",
|
|
78
|
-
module: "./commands/execute/plan-items.mjs",
|
|
79
|
-
export: "run",
|
|
80
|
-
category: "admin",
|
|
81
|
-
summary: ["Extract and validate deterministic plan-body items"],
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
name: "agent-prompt",
|
|
85
|
-
module: "./commands/execute/agent-prompt.mjs",
|
|
86
|
-
export: "run",
|
|
87
|
-
category: "admin",
|
|
88
|
-
summary: ["Materialize and verify auditable agent invocations"],
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
name: "worker-dispatch",
|
|
92
|
-
module: "./commands/execute/worker-dispatch.mjs",
|
|
93
|
-
export: "run",
|
|
94
|
-
category: "admin",
|
|
95
|
-
summary: ["Dispatch verified CLI-backed worker assignments"],
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
name: "plan-verify",
|
|
99
|
-
module: "./commands/execute/plan-verify.mjs",
|
|
100
|
-
export: "run",
|
|
101
|
-
category: "admin",
|
|
102
|
-
summary: ["Score the §5.5.9 plan-body gate for one self-fix round"],
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
name: "worker-audit-check",
|
|
106
|
-
module: "./commands/execute/worker-audit-check.mjs",
|
|
107
|
-
export: "run",
|
|
108
|
-
category: "admin",
|
|
109
|
-
summary: [
|
|
110
|
-
"Check a run's worker audit sidecars while the workers",
|
|
111
|
-
"are still alive (the Phase 7 rules, run early)",
|
|
112
|
-
],
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
name: "git-reconcile",
|
|
116
|
-
module: "./commands/execute/git-reconcile.mjs",
|
|
117
|
-
export: "run",
|
|
118
|
-
category: "admin",
|
|
119
|
-
summary: ["Reconcile stale stage SHAs after external git history changes"],
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
name: "handoff",
|
|
123
|
-
module: "./commands/execute/handoff.mjs",
|
|
124
|
-
export: "run",
|
|
125
|
-
category: "admin",
|
|
126
|
-
summary: ["Stage-group release-handoff helpers (eligible/assemble/record)"],
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
name: "integrate-stages",
|
|
130
|
-
module: "./commands/execute/integrate-stages.mjs",
|
|
131
|
-
export: "run",
|
|
132
|
-
category: "admin",
|
|
133
|
-
summary: ["stage 들을 task 브랜치에 통합 머지하고 stage worktree 를 정리"],
|
|
134
|
-
},
|
|
135
|
-
{
|
|
136
|
-
name: "paths",
|
|
137
|
-
module: "./commands/lifecycle/paths.mjs",
|
|
138
|
-
export: "run",
|
|
139
|
-
category: "admin",
|
|
140
|
-
summary: [
|
|
141
|
-
"Print runtime paths (workspace/agents/pythonpath/bin/home/version)",
|
|
142
|
-
],
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
name: "task-list",
|
|
146
|
-
module: "./commands/inspect/task-list.mjs",
|
|
147
|
-
export: "run",
|
|
148
|
-
category: "introspection",
|
|
149
|
-
summary: ["List tasks registered in the current project"],
|
|
150
|
-
},
|
|
151
|
-
{
|
|
152
|
-
name: "task-show",
|
|
153
|
-
module: "./commands/inspect/task-show.mjs",
|
|
154
|
-
export: "run",
|
|
155
|
-
category: "introspection",
|
|
156
|
-
summary: ["Summarize a task's manifest + workflow phase state"],
|
|
157
|
-
},
|
|
158
|
-
{
|
|
159
|
-
name: "stage-map",
|
|
160
|
-
module: "./commands/inspect/stage-map.mjs",
|
|
161
|
-
export: "run",
|
|
162
|
-
category: "introspection",
|
|
163
|
-
summary: ["Dump a task's implementation-planning Stage Map + done stages"],
|
|
164
|
-
},
|
|
165
|
-
{
|
|
166
|
-
name: "context-cost",
|
|
167
|
-
module: "./commands/inspect/context-cost.mjs",
|
|
168
|
-
export: "run",
|
|
169
|
-
category: "introspection",
|
|
170
|
-
summary: ["Estimate file/read context cost for a task bundle"],
|
|
171
|
-
},
|
|
172
|
-
{
|
|
173
|
-
name: "resolve-task-key",
|
|
174
|
-
module: "./commands/inspect/resolve-task-key.mjs",
|
|
175
|
-
export: "run",
|
|
176
|
-
category: "introspection",
|
|
177
|
-
summary: ["Resolve a bare task-id to candidate task-keys from the catalog"],
|
|
178
|
-
},
|
|
179
|
-
{
|
|
180
|
-
name: "code-review",
|
|
181
|
-
module: "./commands/inspect/code-review.mjs",
|
|
182
|
-
export: "run",
|
|
183
|
-
category: "introspection",
|
|
184
|
-
summary: ["Resolve a code review's diff range and result file path"],
|
|
185
|
-
},
|
|
186
|
-
{
|
|
187
|
-
name: "set-work-status",
|
|
188
|
-
module: "./commands/inspect/set-work-status.mjs",
|
|
189
|
-
export: "run",
|
|
190
|
-
category: "introspection",
|
|
191
|
-
summary: ["Set a task's user-managed workStatus in task-manifest.json"],
|
|
192
|
-
},
|
|
193
|
-
{
|
|
194
|
-
name: "time-report",
|
|
195
|
-
module: "./commands/inspect/time-report.mjs",
|
|
196
|
-
export: "run",
|
|
197
|
-
category: "introspection",
|
|
198
|
-
summary: ["Aggregate elapsed work time across a task's runs (raw ms)"],
|
|
199
|
-
},
|
|
200
|
-
{
|
|
201
|
-
name: "usage-report",
|
|
202
|
-
module: "./commands/inspect/usage-report.mjs",
|
|
203
|
-
export: "run",
|
|
204
|
-
category: "introspection",
|
|
205
|
-
summary: ["Aggregate recent token, cost, and time usage by task type"],
|
|
206
|
-
},
|
|
207
|
-
{
|
|
208
|
-
name: "log-report",
|
|
209
|
-
module: "./commands/inspect/log-report.mjs",
|
|
210
|
-
export: "run",
|
|
211
|
-
category: "introspection",
|
|
212
|
-
summary: ["Inventory wrapper sidecar logs by size and task (read-only)"],
|
|
213
|
-
},
|
|
214
|
-
{
|
|
215
|
-
name: "worker-liveness",
|
|
216
|
-
module: "./commands/inspect/worker-liveness.mjs",
|
|
217
|
-
export: "run",
|
|
218
|
-
category: "introspection",
|
|
219
|
-
summary: ["Report whether pending workers are still alive (read-only)"],
|
|
220
|
-
},
|
|
221
|
-
{
|
|
222
|
-
name: "error-report",
|
|
223
|
-
module: "./commands/inspect/error-report.mjs",
|
|
224
|
-
export: "run",
|
|
225
|
-
category: "introspection",
|
|
226
|
-
summary: ["Aggregate okstra-run error logs into a task-level report"],
|
|
227
|
-
},
|
|
228
|
-
{
|
|
229
|
-
name: "error-zip",
|
|
230
|
-
module: "./commands/inspect/error-zip.mjs",
|
|
231
|
-
export: "run",
|
|
232
|
-
category: "introspection",
|
|
233
|
-
summary: ["Bundle cross-project okstra error logs into a zip"],
|
|
234
|
-
},
|
|
235
|
-
{
|
|
236
|
-
name: "run-audit",
|
|
237
|
-
module: "./commands/inspect/run-audit.mjs",
|
|
238
|
-
export: "run",
|
|
239
|
-
category: "introspection",
|
|
240
|
-
summary: ["Check okstra run artifacts against progress invariants"],
|
|
241
|
-
},
|
|
242
|
-
{
|
|
243
|
-
name: "recap",
|
|
244
|
-
module: "./commands/inspect/recap.mjs",
|
|
245
|
-
export: "run",
|
|
246
|
-
category: "introspection",
|
|
247
|
-
summary: ["Assemble a task's run-to-run phase recap or append a recap log entry"],
|
|
248
|
-
},
|
|
249
|
-
{
|
|
250
|
-
name: "user-response",
|
|
251
|
-
module: "./commands/inspect/user-response.mjs",
|
|
252
|
-
export: "run",
|
|
253
|
-
category: "introspection",
|
|
254
|
-
summary: ["Answer a task's open clarification questions in-session and write the response sidecar"],
|
|
255
|
-
},
|
|
256
|
-
{
|
|
257
|
-
name: "design-prep",
|
|
258
|
-
module: "./commands/inspect/design-prep.mjs",
|
|
259
|
-
export: "run",
|
|
260
|
-
category: "introspection",
|
|
261
|
-
summary: ["Review and record AI-prepared implementation design inputs"],
|
|
262
|
-
},
|
|
263
|
-
{
|
|
264
|
-
name: "rollup",
|
|
265
|
-
module: "./commands/inspect/rollup.mjs",
|
|
266
|
-
export: "run",
|
|
267
|
-
category: "introspection",
|
|
268
|
-
summary: ["Roll up run results across a task-group's tasks (raw ms + tallies)"],
|
|
269
|
-
},
|
|
270
|
-
{
|
|
271
|
-
name: "container",
|
|
272
|
-
module: "./commands/inspect/container.mjs",
|
|
273
|
-
export: "run",
|
|
274
|
-
category: "introspection",
|
|
275
|
-
summary: ["Manage the okstra container runtime (up/status/logs/stop-watcher/down)"],
|
|
276
|
-
},
|
|
277
|
-
{
|
|
278
|
-
name: "manager",
|
|
279
|
-
module: "./commands/manager.mjs",
|
|
280
|
-
export: "run",
|
|
281
|
-
category: "introspection",
|
|
282
|
-
summary: ["Manage cross-project okstra tasks"],
|
|
283
|
-
},
|
|
284
|
-
{
|
|
285
|
-
name: "worktree-lookup",
|
|
286
|
-
module: "./commands/execute/worktree-lookup.mjs",
|
|
287
|
-
export: "run",
|
|
288
|
-
category: "introspection",
|
|
289
|
-
summary: ["Look up registered worktree for a task-key"],
|
|
290
|
-
},
|
|
291
|
-
{
|
|
292
|
-
name: "worktree-status",
|
|
293
|
-
module: "./commands/execute/worktree-status.mjs",
|
|
294
|
-
export: "run",
|
|
295
|
-
category: "introspection",
|
|
296
|
-
summary: ["Clean-worktree check that ignores okstra's own scaffolding"],
|
|
297
|
-
},
|
|
298
|
-
{
|
|
299
|
-
name: "plan-validate",
|
|
300
|
-
module: "./commands/execute/plan-validate.mjs",
|
|
301
|
-
export: "run",
|
|
302
|
-
category: "introspection",
|
|
303
|
-
summary: ["Check an approved-plan file for the approval marker"],
|
|
304
|
-
},
|
|
305
|
-
{
|
|
306
|
-
name: "render-bundle",
|
|
307
|
-
module: "./commands/execute/render-bundle.mjs",
|
|
308
|
-
export: "run",
|
|
309
|
-
category: "introspection",
|
|
310
|
-
summary: [
|
|
311
|
-
"Preview prepare_task_bundle() output (forwards to",
|
|
312
|
-
"python3 -m okstra_ctl.run --render-only)",
|
|
313
|
-
],
|
|
314
|
-
},
|
|
315
|
-
{
|
|
316
|
-
name: "profile",
|
|
317
|
-
module: "./commands/inspect/profile-show.mjs",
|
|
318
|
-
export: "run",
|
|
319
|
-
category: "introspection",
|
|
320
|
-
summary: [
|
|
321
|
-
"Print a phase profile with {{INCLUDE:}} expanded and its",
|
|
322
|
-
"lazy-read sidecars appended (read-only)",
|
|
323
|
-
],
|
|
324
|
-
},
|
|
325
|
-
{
|
|
326
|
-
name: "run",
|
|
327
|
-
module: "./commands/execute/run.mjs",
|
|
328
|
-
export: "run",
|
|
329
|
-
category: "introspection",
|
|
330
|
-
summary: ["Host-aware auto execution front door"],
|
|
331
|
-
},
|
|
332
|
-
{
|
|
333
|
-
name: "codex-run",
|
|
334
|
-
module: "./commands/execute/codex-run.mjs",
|
|
335
|
-
export: "run",
|
|
336
|
-
category: "introspection",
|
|
337
|
-
summary: [
|
|
338
|
-
"Prepare a render-only Codex lead task bundle",
|
|
339
|
-
"(--lead-runtime codex, no worker dispatch)",
|
|
340
|
-
],
|
|
341
|
-
},
|
|
342
|
-
{
|
|
343
|
-
name: "codex-dispatch",
|
|
344
|
-
module: "./commands/execute/codex-dispatch.mjs",
|
|
345
|
-
export: "run",
|
|
346
|
-
category: "introspection",
|
|
347
|
-
summary: ["Dispatch CLI-backed workers for a prepared Codex run"],
|
|
348
|
-
},
|
|
349
|
-
{
|
|
350
|
-
name: "worker-state",
|
|
351
|
-
module: "./commands/execute/worker-state.mjs",
|
|
352
|
-
export: "run",
|
|
353
|
-
category: "admin",
|
|
354
|
-
summary: ["Atomically transition persisted worker status"],
|
|
355
|
-
},
|
|
356
|
-
{
|
|
357
|
-
name: "team",
|
|
358
|
-
module: "./commands/execute/team.mjs",
|
|
359
|
-
export: "run",
|
|
360
|
-
category: "introspection",
|
|
361
|
-
summary: ["Dispatch and await pane-backed workers for external leads"],
|
|
362
|
-
},
|
|
363
|
-
{
|
|
364
|
-
name: "wizard",
|
|
365
|
-
module: "./commands/execute/wizard.mjs",
|
|
366
|
-
export: "run",
|
|
367
|
-
category: "introspection",
|
|
368
|
-
summary: [
|
|
369
|
-
"Drive the okstra-run interactive input state machine",
|
|
370
|
-
"(init / step / render-args / confirmation)",
|
|
371
|
-
],
|
|
372
|
-
},
|
|
373
|
-
{
|
|
374
|
-
name: "token-usage",
|
|
375
|
-
module: "./commands/execute/token-usage.mjs",
|
|
376
|
-
export: "run",
|
|
377
|
-
category: "introspection",
|
|
378
|
-
summary: [
|
|
379
|
-
"Collect token usage for a run (wraps the installed",
|
|
380
|
-
"okstra-token-usage.py so skills avoid emitting",
|
|
381
|
-
'python3 "$HOME/..." invocations).',
|
|
382
|
-
],
|
|
383
|
-
},
|
|
384
|
-
{
|
|
385
|
-
name: "render-views",
|
|
386
|
-
module: "./commands/report/render-views.mjs",
|
|
387
|
-
export: "run",
|
|
388
|
-
category: "introspection",
|
|
389
|
-
summary: ["Render slim AI + self-contained HTML views of a final report"],
|
|
390
|
-
},
|
|
391
|
-
{
|
|
392
|
-
name: "report-translate",
|
|
393
|
-
module: "./commands/report/translate.mjs",
|
|
394
|
-
export: "run",
|
|
395
|
-
category: "introspection",
|
|
396
|
-
summary: [
|
|
397
|
-
"Build and verify the translation sidecar the HTML",
|
|
398
|
-
"renderer overlays when the report language is not",
|
|
399
|
-
"English (extract | check).",
|
|
400
|
-
],
|
|
401
|
-
},
|
|
402
|
-
{
|
|
403
|
-
name: "agent-activity",
|
|
404
|
-
module: "./commands/report/agent-activity.mjs",
|
|
405
|
-
export: "run",
|
|
406
|
-
category: "introspection",
|
|
407
|
-
summary: ["Record and project structured lead activity into report data"],
|
|
408
|
-
},
|
|
409
|
-
{
|
|
410
|
-
name: "report-finalize",
|
|
411
|
-
module: "./commands/report/finalize.mjs",
|
|
412
|
-
export: "run",
|
|
413
|
-
category: "introspection",
|
|
414
|
-
summary: [
|
|
415
|
-
"Run the Phase 7 post-report sequence (token-usage,",
|
|
416
|
-
"render-views, spawn-followups, validate-run) in its",
|
|
417
|
-
"contractual order against one final report.",
|
|
418
|
-
],
|
|
419
|
-
},
|
|
420
|
-
{
|
|
421
|
-
name: "render-final-report",
|
|
422
|
-
module: "./commands/report/render-final-report.mjs",
|
|
423
|
-
export: "run",
|
|
424
|
-
category: "introspection",
|
|
425
|
-
summary: ["Render the markdown sibling of a final-report data.json"],
|
|
426
|
-
},
|
|
427
|
-
{
|
|
428
|
-
name: "inject-report-index",
|
|
429
|
-
module: "./commands/report/inject-report-index.mjs",
|
|
430
|
-
export: "run",
|
|
431
|
-
category: "introspection",
|
|
432
|
-
summary: ["Add the top-of-report Index + scroll anchors to a report"],
|
|
433
|
-
},
|
|
434
|
-
{
|
|
435
|
-
name: "spawn-followups",
|
|
436
|
-
module: "./commands/execute/spawn-followups.mjs",
|
|
437
|
-
export: "run",
|
|
438
|
-
category: "introspection",
|
|
439
|
-
summary: ["Create follow-up task bundles from a final report"],
|
|
440
|
-
},
|
|
441
|
-
{
|
|
442
|
-
name: "error-log",
|
|
443
|
-
module: "./commands/execute/error-log.mjs",
|
|
444
|
-
export: "run",
|
|
445
|
-
category: "introspection",
|
|
446
|
-
summary: ["Append run error events to the run error log"],
|
|
447
|
-
},
|
|
448
|
-
{
|
|
449
|
-
name: "incremental-scope",
|
|
450
|
-
module: "./commands/execute/incremental-scope.mjs",
|
|
451
|
-
export: "run",
|
|
452
|
-
category: "introspection",
|
|
453
|
-
summary: ["Decide re-verify vs carry-forward scope for a clarification re-run"],
|
|
454
|
-
},
|
|
455
|
-
{
|
|
456
|
-
name: "incremental-carry",
|
|
457
|
-
module: "./commands/execute/incremental-carry.mjs",
|
|
458
|
-
export: "run",
|
|
459
|
-
category: "introspection",
|
|
460
|
-
summary: ["Merge carried-forward plan-item verdicts into an incremental re-run"],
|
|
461
|
-
},
|
|
462
|
-
{
|
|
463
|
-
name: "memory",
|
|
464
|
-
module: "./commands/memory/memory.mjs",
|
|
465
|
-
export: "run",
|
|
466
|
-
category: "introspection",
|
|
467
|
-
summary: [
|
|
468
|
-
"Store and find user-home conversation memory under",
|
|
469
|
-
"~/.okstra/memory-book.",
|
|
470
|
-
],
|
|
471
|
-
},
|
|
472
|
-
{
|
|
473
|
-
name: "pr",
|
|
474
|
-
module: "./commands/pr/pr.mjs",
|
|
475
|
-
export: "run",
|
|
476
|
-
category: "introspection",
|
|
477
|
-
summary: [
|
|
478
|
-
"Manage PR body templates and prepare PR generation",
|
|
479
|
-
"bundles under ~/.okstra/template/pr.",
|
|
480
|
-
],
|
|
481
|
-
},
|
|
482
|
-
];
|
|
483
|
-
|
|
484
|
-
export const COMMANDS = new Map(
|
|
485
|
-
COMMAND_REGISTRY.map((c) => [
|
|
486
|
-
c.name,
|
|
487
|
-
() => import(c.module).then((m) => m[c.export]),
|
|
488
|
-
]),
|
|
489
|
-
);
|
|
490
|
-
|
|
491
|
-
const PREAMBLE = `okstra — host-aware multi-provider cross-verification orchestrator
|
|
492
|
-
|
|
493
|
-
This CLI is the installer/admin tool. Day-to-day usage happens inside a
|
|
494
|
-
supported agent host through installed skills (okstra-setup, okstra-run, ...).
|
|
495
|
-
|
|
496
|
-
Quick start (CLI):
|
|
497
|
-
1. npx -y okstra@latest install # one-time, this machine
|
|
498
|
-
2. cd <your project>
|
|
499
|
-
3. npx -y okstra@latest setup --project-id <id> # one-time, this project
|
|
500
|
-
4. open Claude Code, Codex, or Antigravity and run okstra-run # start a task
|
|
501
|
-
|
|
502
|
-
Inside a supported agent host you can replace step 3 with okstra-setup —
|
|
503
|
-
both write the same <PROJECT_ROOT>/.okstra/project.json.
|
|
504
|
-
|
|
505
|
-
Usage:
|
|
506
|
-
okstra <command> [options]
|
|
507
|
-
`;
|
|
508
|
-
|
|
509
|
-
const GLOBAL_OPTIONS = ` --version Print okstra version and exit
|
|
510
|
-
--help Print this help`;
|
|
511
|
-
|
|
512
|
-
const FOOTER = `
|
|
513
|
-
|
|
514
|
-
Run 'okstra <command> --help' for command-specific options.
|
|
515
|
-
Docs: https://github.com/Devonshin/okstra#readme
|
|
516
|
-
`;
|
|
517
|
-
|
|
518
|
-
function renderRow(command) {
|
|
519
|
-
const [first, ...rest] = command.summary;
|
|
520
|
-
const head = " " + command.name.padEnd(SUMMARY_COLUMN - 2) + first;
|
|
521
|
-
const continuations = rest.map((line) => " ".repeat(SUMMARY_COLUMN) + line);
|
|
522
|
-
return [head, ...continuations].join("\n");
|
|
523
|
-
}
|
|
524
|
-
|
|
525
|
-
function renderRows(category) {
|
|
526
|
-
return COMMAND_REGISTRY.filter((c) => c.category === category)
|
|
527
|
-
.map(renderRow)
|
|
528
|
-
.join("\n");
|
|
529
|
-
}
|
|
530
|
-
|
|
531
|
-
export const USAGE =
|
|
532
|
-
PREAMBLE +
|
|
533
|
-
"\nAdmin commands:\n" +
|
|
534
|
-
renderRows("admin") +
|
|
535
|
-
"\n\nIntrospection commands (JSON output, used by skills to avoid python heredocs):\n" +
|
|
536
|
-
renderRows("introspection") +
|
|
537
|
-
"\n\nGlobal options:\n" +
|
|
538
|
-
GLOBAL_OPTIONS +
|
|
539
|
-
FOOTER;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
buildWorkerDispatchArgs,
|
|
3
|
-
runWorkerDispatch,
|
|
4
|
-
} from "./worker-dispatch.mjs";
|
|
5
|
-
|
|
6
|
-
export const buildCodexDispatchArgs = buildWorkerDispatchArgs;
|
|
7
|
-
|
|
8
|
-
export async function run(args) {
|
|
9
|
-
return runWorkerDispatch(args, { commandName: "codex-dispatch" });
|
|
10
|
-
}
|