okstra 0.186.7 → 0.187.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cli-registry.d.mts +88 -1
- package/dist/cli-registry.mjs +68 -111
- package/dist/cli-registry.mjs.map +1 -1
- package/dist/commands/execute/render-bundle.mjs +0 -1
- package/dist/commands/execute/render-bundle.mjs.map +1 -1
- package/dist/commands/execute/run.mjs +8 -3
- package/dist/commands/execute/run.mjs.map +1 -1
- package/dist/commands/lifecycle/check-project.mjs +1 -14
- package/dist/commands/lifecycle/check-project.mjs.map +1 -1
- package/dist/commands/lifecycle/config.mjs +38 -40
- package/dist/commands/lifecycle/config.mjs.map +1 -1
- package/dist/commands/lifecycle/doctor.d.mts +22 -7
- package/dist/commands/lifecycle/doctor.mjs +77 -49
- package/dist/commands/lifecycle/doctor.mjs.map +1 -1
- package/dist/commands/lifecycle/install.d.mts +12 -10
- package/dist/commands/lifecycle/install.mjs +104 -39
- package/dist/commands/lifecycle/install.mjs.map +1 -1
- package/dist/commands/lifecycle/paths.mjs +8 -3
- package/dist/commands/lifecycle/paths.mjs.map +1 -1
- package/dist/commands/lifecycle/preflight.mjs +2 -1
- package/dist/commands/lifecycle/preflight.mjs.map +1 -1
- package/dist/commands/lifecycle/setup.mjs +22 -36
- package/dist/commands/lifecycle/setup.mjs.map +1 -1
- package/dist/commands/lifecycle/uninstall.d.mts +4 -2
- package/dist/commands/lifecycle/uninstall.mjs +59 -15
- package/dist/commands/lifecycle/uninstall.mjs.map +1 -1
- package/dist/commands/memory/memory.mjs +7 -1
- package/dist/commands/memory/memory.mjs.map +1 -1
- package/dist/lib/helper-scripts.d.mts +1 -1
- package/dist/lib/helper-scripts.mjs +10 -18
- package/dist/lib/helper-scripts.mjs.map +1 -1
- package/dist/lib/host-config.d.mts +72 -0
- package/dist/lib/host-config.mjs +404 -0
- package/dist/lib/host-config.mjs.map +1 -0
- package/dist/lib/host-registry-client.d.mts +2 -2
- package/dist/lib/host-registry-client.mjs +0 -3
- package/dist/lib/host-registry-client.mjs.map +1 -1
- package/dist/lib/install-assets.d.mts +1 -0
- package/dist/lib/install-assets.mjs +4 -0
- package/dist/lib/install-assets.mjs.map +1 -1
- package/dist/lib/proc.d.mts +2 -0
- package/dist/lib/proc.mjs +12 -0
- package/dist/lib/proc.mjs.map +1 -1
- package/dist/lib/python-command.d.mts +2 -0
- package/dist/lib/python-command.mjs +52 -0
- package/dist/lib/python-command.mjs.map +1 -0
- package/dist/lib/python-helper.d.mts +2 -5
- package/dist/lib/python-helper.mjs +3 -52
- package/dist/lib/python-helper.mjs.map +1 -1
- package/dist/lib/runtime-payload.d.mts +23 -0
- package/dist/lib/runtime-payload.mjs +57 -0
- package/dist/lib/runtime-payload.mjs.map +1 -0
- package/dist/lib/types.d.mts +24 -13
- package/docs/architecture/storage-model.md +21 -5
- package/docs/architecture.md +37 -36
- package/docs/cli.md +55 -76
- package/docs/coding-rules.md +295 -0
- package/docs/container.md +10 -36
- package/docs/contributor-change-matrix.md +1 -1
- package/docs/for-ai/skills/okstra-code-review.md +0 -1
- package/docs/for-ai/skills/okstra-container-build.md +8 -41
- package/docs/for-ai/skills/okstra-inspect.md +4 -4
- package/docs/for-ai/skills/okstra-manager.md +2 -2
- package/docs/for-ai/skills/okstra-rollup.md +0 -1
- package/docs/for-ai/skills/okstra-run.md +3 -3
- package/docs/for-ai/skills/okstra-user-response.md +0 -1
- package/docs/performance-improvement-plan-v2.md +1 -1
- package/docs/project-structure-overview.md +62 -62
- package/docs/task-process/README.md +3 -3
- package/docs/task-process/common-flow.md +1 -1
- package/docs/task-process/error-analysis.md +3 -3
- package/docs/task-process/implementation-planning.md +3 -1
- package/docs/task-process/release-handoff.md +1 -1
- package/package.json +3 -2
- package/runtime/BUILD.json +2 -2
- package/runtime/agents/workers/claude-worker.md +6 -11
- package/runtime/agents/workers/report-writer-worker.md +1 -1
- package/runtime/bin/lib/okstra/cli.sh +4 -0
- package/runtime/bin/lib/okstra/globals.sh +2 -0
- package/runtime/bin/lib/okstra/interactive.sh +26 -173
- package/runtime/bin/lib/okstra/project-resolver.sh +23 -61
- package/runtime/bin/lib/okstra/usage.sh +3 -3
- package/runtime/bin/okstra-compact-reminder.sh +1 -5
- package/runtime/bin/okstra-error-log.py +19 -2
- package/runtime/bin/okstra-import-check.py +26 -0
- package/runtime/bin/okstra-inject-report-index.py +5 -4
- package/runtime/bin/okstra-provider-exec.py +22 -17
- package/runtime/bin/okstra-render-final-report.py +16 -6
- package/runtime/bin/okstra-render-report-views.py +25 -18
- package/runtime/bin/okstra-report-translate.py +30 -18
- package/runtime/bin/okstra-spawn-followups.py +4 -0
- package/runtime/bin/okstra-token-usage.py +3 -0
- package/runtime/bin/okstra.sh +4 -2
- package/runtime/bin/okstra_bootstrap.py +58 -0
- package/runtime/prompts/coding-preflight/overview.md +1 -1
- package/runtime/prompts/duties/planning-worker.md +1 -1
- package/runtime/prompts/launch.template.md +35 -9
- package/runtime/prompts/lead/convergence.md +96 -87
- package/runtime/prompts/lead/okstra-lead-contract.md +63 -12
- package/runtime/prompts/lead/plan-body-verification.md +65 -46
- package/runtime/prompts/lead/report-writer.md +34 -4
- package/runtime/prompts/lead/team-contract.md +4 -1
- package/runtime/prompts/profiles/_clarification-recommendation.md +2 -1
- package/runtime/prompts/profiles/_coding-conventions-preflight.md +1 -1
- package/runtime/prompts/profiles/_common-contract.md +3 -3
- package/runtime/prompts/profiles/_coverage-critic.md +1 -1
- package/runtime/prompts/profiles/_implementation-deliverable.md +2 -2
- package/runtime/prompts/profiles/_implementation-executor.md +3 -1
- package/runtime/prompts/profiles/_implementation-verifier.md +16 -2
- package/runtime/prompts/profiles/error-analysis.md +4 -3
- package/runtime/prompts/profiles/final-verification.md +2 -2
- package/runtime/prompts/profiles/implementation-planning.md +22 -17
- package/runtime/prompts/profiles/implementation.md +3 -2
- package/runtime/prompts/profiles/requirements-discovery.md +2 -1
- package/runtime/prompts/wizard/prompts.ko.json +29 -8
- package/runtime/python/okstra_ctl/__init__.py +6 -27
- package/runtime/python/okstra_ctl/adapters/hosts/claude-code/relay.md +4 -5
- package/runtime/python/okstra_ctl/adapters/hosts/codex/adapter.py +21 -2
- package/runtime/python/okstra_ctl/adapters/hosts/external/adapter.py +3 -12
- package/runtime/python/okstra_ctl/adapters/providers/antigravity/adapter.py +40 -22
- package/runtime/python/okstra_ctl/adapters/providers/claude/adapter.py +14 -21
- package/runtime/python/okstra_ctl/adapters/providers/codex/adapter.py +37 -20
- package/runtime/python/okstra_ctl/adapters/providers/grok/adapter.py +86 -14
- package/runtime/python/okstra_ctl/adapters/providers/kimi/adapter.py +12 -12
- package/runtime/python/okstra_ctl/adapters/runtime/cmux.py +4 -7
- package/runtime/python/okstra_ctl/agent/__init__.py +1 -0
- package/runtime/python/okstra_ctl/{agent_activity.py → agent/activity.py} +12 -1
- package/runtime/python/okstra_ctl/{agent_invocation.py → agent/invocation.py} +34 -5
- package/runtime/python/okstra_ctl/agent/prompt_cli/__init__.py +19 -0
- package/runtime/python/okstra_ctl/agent/prompt_cli/__main__.py +11 -0
- package/runtime/python/okstra_ctl/agent/prompt_cli/cli.py +215 -0
- package/runtime/python/okstra_ctl/agent/prompt_cli/dynamic_verifier.py +155 -0
- package/runtime/python/okstra_ctl/agent/prompt_cli/emit.py +66 -0
- package/runtime/python/okstra_ctl/agent/prompt_cli/inputs.py +138 -0
- package/runtime/python/okstra_ctl/agent/prompt_cli/materialize.py +408 -0
- package/runtime/python/okstra_ctl/agent/prompt_cli/results.py +197 -0
- package/runtime/python/okstra_ctl/agent/prompt_cli/run_identity.py +107 -0
- package/runtime/python/okstra_ctl/analysis_packet.py +47 -4
- package/runtime/python/okstra_ctl/approval_decisions.py +260 -8
- package/runtime/python/okstra_ctl/assignment_resolver.py +0 -12
- package/runtime/python/okstra_ctl/attempt_evidence.py +12 -24
- package/runtime/python/okstra_ctl/blocking_checks.py +251 -0
- package/runtime/python/okstra_ctl/brief_frontmatter.py +0 -7
- package/runtime/python/okstra_ctl/clarification_items/__init__.py +102 -0
- package/runtime/python/okstra_ctl/clarification_items/carry.py +224 -0
- package/runtime/python/okstra_ctl/clarification_items/dispositions.py +135 -0
- package/runtime/python/okstra_ctl/clarification_items/parsing.py +253 -0
- package/runtime/python/okstra_ctl/clarification_items/rows.py +115 -0
- package/runtime/python/okstra_ctl/clarification_items/scan.py +215 -0
- package/runtime/python/okstra_ctl/clarification_items/sidecars.py +211 -0
- package/runtime/python/okstra_ctl/cmux.py +38 -31
- package/runtime/python/okstra_ctl/code_review_target.py +163 -1
- package/runtime/python/okstra_ctl/conformance.py +23 -0
- package/runtime/python/okstra_ctl/container.py +38 -421
- package/runtime/python/okstra_ctl/context_cost.py +16 -2
- package/runtime/python/okstra_ctl/contract_graph_cli.py +7 -0
- package/runtime/python/okstra_ctl/convergence.py +101 -15
- package/runtime/python/okstra_ctl/convergence_critic_prompt.py +345 -0
- package/runtime/python/okstra_ctl/convergence_engine.py +382 -70
- package/runtime/python/okstra_ctl/convergence_store.py +5 -29
- package/runtime/python/okstra_ctl/design_prep.py +108 -12
- package/runtime/python/okstra_ctl/design_snapshot.py +11 -1
- package/runtime/python/okstra_ctl/design_surfaces.py +29 -2
- package/runtime/python/okstra_ctl/dispatch_core.py +102 -25
- package/runtime/python/okstra_ctl/dispatch_state.py +268 -39
- package/runtime/python/okstra_ctl/doctor_cli.py +48 -0
- package/runtime/python/okstra_ctl/domain/worker_exec.py +10 -5
- package/runtime/python/okstra_ctl/domain/worker_presentation.py +21 -1
- package/runtime/python/okstra_ctl/domain/worker_stream.py +52 -21
- package/runtime/python/okstra_ctl/domain/write_policy.py +219 -0
- package/runtime/python/okstra_ctl/entrypoints/hosts.py +9 -2
- package/runtime/python/okstra_ctl/error_log_core.py +1 -1
- package/runtime/python/okstra_ctl/error_report.py +14 -0
- package/runtime/python/okstra_ctl/error_zip.py +18 -2
- package/runtime/python/okstra_ctl/execution_identity.py +100 -7
- package/runtime/python/okstra_ctl/execution_manifest.py +67 -20
- package/runtime/python/okstra_ctl/execution_mutation_audit.py +90 -8
- package/runtime/python/okstra_ctl/final_report_paths.py +17 -0
- package/runtime/python/okstra_ctl/final_report_schema.py +90 -16
- package/runtime/python/okstra_ctl/git_reconcile.py +22 -2
- package/runtime/python/okstra_ctl/handoff.py +24 -1
- package/runtime/python/okstra_ctl/ids.py +6 -16
- package/runtime/python/okstra_ctl/implementation_direction.py +142 -33
- package/runtime/python/okstra_ctl/implementation_options.py +25 -11
- package/runtime/python/okstra_ctl/implementation_outcome.py +5 -2
- package/runtime/python/okstra_ctl/improvement_lenses.py +0 -14
- package/runtime/python/okstra_ctl/incremental_carry.py +69 -8
- package/runtime/python/okstra_ctl/incremental_scope.py +173 -12
- package/runtime/python/okstra_ctl/index.py +2 -2
- package/runtime/python/okstra_ctl/initial_prompt_materialization.py +48 -8
- package/runtime/python/okstra_ctl/interactive_cli.py +223 -0
- package/runtime/python/okstra_ctl/json_boundary.py +10 -0
- package/runtime/python/okstra_ctl/listing.py +0 -91
- package/runtime/python/okstra_ctl/locks.py +5 -19
- package/runtime/python/okstra_ctl/log_report.py +14 -0
- package/runtime/python/okstra_ctl/manager_cli.py +22 -3
- package/runtime/python/okstra_ctl/manager_launch.py +4 -8
- package/runtime/python/okstra_ctl/material.py +2 -2
- package/runtime/python/okstra_ctl/migrate.py +23 -1
- package/runtime/python/okstra_ctl/model_cli.py +19 -5
- package/runtime/python/okstra_ctl/model_discovery.py +46 -47
- package/runtime/python/okstra_ctl/model_io/__init__.py +1 -0
- package/runtime/python/okstra_ctl/model_io/lines.py +163 -0
- package/runtime/python/okstra_ctl/model_io/references.py +370 -0
- package/runtime/python/okstra_ctl/model_io/renderers.py +498 -0
- package/runtime/python/okstra_ctl/model_io_cli.py +30 -945
- package/runtime/python/okstra_ctl/model_pool.py +10 -6
- package/runtime/python/okstra_ctl/models.py +8 -8
- package/runtime/python/okstra_ctl/mutation_recovery.py +5 -63
- package/runtime/python/okstra_ctl/next_phase.py +121 -69
- package/runtime/python/okstra_ctl/pane_reclaim.py +23 -0
- package/runtime/python/okstra_ctl/pane_title.py +11 -8
- package/runtime/python/okstra_ctl/path_hints.py +36 -11
- package/runtime/python/okstra_ctl/paths.py +76 -8
- package/runtime/python/okstra_ctl/plan_items.py +132 -16
- package/runtime/python/okstra_ctl/plan_items_cli.py +486 -36
- package/runtime/python/okstra_ctl/plan_run_root.py +1 -1
- package/runtime/python/okstra_ctl/plan_validate_cli.py +51 -0
- package/runtime/python/okstra_ctl/plan_verify_cli.py +80 -0
- package/runtime/python/okstra_ctl/prepare_error.py +20 -0
- package/runtime/python/okstra_ctl/prior_planning.py +157 -0
- package/runtime/python/okstra_ctl/profile_show.py +18 -1
- package/runtime/python/okstra_ctl/project_setup_cli.py +140 -0
- package/runtime/python/okstra_ctl/recap.py +22 -1
- package/runtime/python/okstra_ctl/reconcile.py +84 -0
- package/runtime/python/okstra_ctl/registry/host_registry.py +18 -1
- package/runtime/python/okstra_ctl/render.py +98 -32
- package/runtime/python/okstra_ctl/render_final_report.py +3 -7
- package/runtime/python/okstra_ctl/report_assembly.py +297 -7
- package/runtime/python/okstra_ctl/report_contract.py +30 -7
- package/runtime/python/okstra_ctl/report_finalize.py +206 -15
- package/runtime/python/okstra_ctl/report_html/common.py +2 -2
- package/runtime/python/okstra_ctl/report_html/render.py +8 -12
- package/runtime/python/okstra_ctl/report_language.py +8 -4
- package/runtime/python/okstra_ctl/report_narrative.py +90 -3
- package/runtime/python/okstra_ctl/report_projections.py +8 -2
- package/runtime/python/okstra_ctl/report_synthesis_packet.py +258 -1
- package/runtime/python/okstra_ctl/report_translation.py +2 -35
- package/runtime/python/okstra_ctl/report_views.py +4 -22
- package/runtime/python/okstra_ctl/resolve_task_key.py +13 -0
- package/runtime/python/okstra_ctl/rollup.py +13 -0
- package/runtime/python/okstra_ctl/run.py +639 -138
- package/runtime/python/okstra_ctl/run_audit.py +13 -0
- package/runtime/python/okstra_ctl/run_index_row.py +0 -12
- package/runtime/python/okstra_ctl/seeding.py +21 -11
- package/runtime/python/okstra_ctl/sequence.py +1 -1
- package/runtime/python/okstra_ctl/session.py +64 -14
- package/runtime/python/okstra_ctl/set_work_status.py +18 -0
- package/runtime/python/okstra_ctl/stage_integrate.py +15 -1
- package/runtime/python/okstra_ctl/stage_ledger.py +1 -1
- package/runtime/python/okstra_ctl/stage_map.py +57 -11
- package/runtime/python/okstra_ctl/stage_map_cli.py +83 -0
- package/runtime/python/okstra_ctl/stage_map_view.py +65 -0
- package/runtime/python/okstra_ctl/stage_targets.py +3 -12
- package/runtime/python/okstra_ctl/task_list_cli.py +138 -0
- package/runtime/python/okstra_ctl/task_show_cli.py +66 -0
- package/runtime/python/okstra_ctl/task_target.py +4 -16
- package/runtime/python/okstra_ctl/team.py +49 -2
- package/runtime/python/okstra_ctl/time_report.py +17 -2
- package/runtime/python/okstra_ctl/usage_report.py +11 -0
- package/runtime/python/okstra_ctl/user_response.py +55 -218
- package/runtime/python/okstra_ctl/user_response_values.py +242 -0
- package/runtime/python/okstra_ctl/validation_contract.py +3 -0
- package/runtime/python/okstra_ctl/verification_target.py +68 -0
- package/runtime/python/okstra_ctl/wizard.py +457 -92
- package/runtime/python/okstra_ctl/worker_artifacts.py +75 -16
- package/runtime/python/okstra_ctl/worker_audit_check.py +22 -0
- package/runtime/python/okstra_ctl/worker_dispatch.py +21 -0
- package/runtime/python/okstra_ctl/worker_liveness.py +33 -0
- package/runtime/python/okstra_ctl/worker_prompt_body.py +15 -2
- package/runtime/python/okstra_ctl/worker_prompt_contract.py +98 -7
- package/runtime/python/okstra_ctl/worker_prompt_headers.py +24 -2
- package/runtime/python/okstra_ctl/worker_prompt_policy.py +18 -3
- package/runtime/python/okstra_ctl/worker_request.py +2 -1
- package/runtime/python/okstra_ctl/worker_runner.py +16 -9
- package/runtime/python/okstra_ctl/worker_state.py +16 -1
- package/runtime/python/okstra_ctl/workflow.py +18 -1
- package/runtime/python/okstra_ctl/worktree/__init__.py +92 -0
- package/runtime/python/okstra_ctl/worktree/cleanliness.py +89 -0
- package/runtime/python/okstra_ctl/worktree/decisions.py +127 -0
- package/runtime/python/okstra_ctl/worktree/git_ops.py +165 -0
- package/runtime/python/okstra_ctl/worktree/linking.py +249 -0
- package/runtime/python/okstra_ctl/worktree/naming.py +91 -0
- package/runtime/python/okstra_ctl/worktree/provision.py +385 -0
- package/runtime/python/okstra_ctl/worktree/sync_config.py +181 -0
- package/runtime/python/okstra_ctl/worktree_cli.py +75 -0
- package/runtime/python/okstra_ctl/worktree_lookup_cli.py +39 -0
- package/runtime/python/okstra_ctl/worktree_registry.py +7 -0
- package/runtime/python/okstra_ctl/worktree_status_cli.py +53 -0
- package/runtime/python/okstra_ctl/write_policy.py +90 -213
- package/runtime/python/okstra_project/__init__.py +0 -4
- package/runtime/python/okstra_project/dirs.py +2 -2
- package/runtime/python/okstra_project/phase_pointer.py +84 -0
- package/runtime/python/okstra_project/slug.py +24 -0
- package/runtime/python/okstra_project/state.py +22 -230
- package/runtime/python/okstra_token_usage/claude.py +9 -1
- package/runtime/python/okstra_token_usage/cli.py +3 -1
- package/runtime/python/okstra_token_usage/collect.py +71 -10
- package/runtime/python/okstra_token_usage/cursor.py +2 -0
- package/runtime/python/okstra_token_usage/grok.py +1 -5
- package/runtime/python/okstra_token_usage/paths.py +26 -0
- package/runtime/python/okstra_token_usage/pricing.py +19 -7
- package/runtime/schemas/convergence-critic-results-v1.0.schema.json +5 -0
- package/runtime/schemas/execution-manifest-v2.schema.json +10 -10
- package/runtime/schemas/final-report-v2.0.schema.json +9 -26
- package/runtime/schemas/final-report-v3.0.schema.json +173 -41
- package/runtime/schemas/report-narrative-v3.0.schema.json +3 -2
- package/runtime/skills/okstra-brief-gen/SKILL.md +35 -2
- package/runtime/skills/okstra-container-build/SKILL.md +16 -47
- package/runtime/skills/okstra-inspect/facets/history.md +1 -1
- package/runtime/skills/okstra-inspect/facets/status.md +7 -6
- package/runtime/skills/okstra-pr-gen/SKILL.md +1 -1
- package/runtime/skills/okstra-run/SKILL.md +7 -5
- package/runtime/templates/report-writer-prompt-preamble.md +1 -1
- package/runtime/templates/reports/brief.template.md +6 -2
- package/runtime/templates/reports/error-analysis-input.template.md +2 -0
- package/runtime/templates/reports/final-verification-input.template.md +2 -0
- package/runtime/templates/reports/implementation-input.template.md +7 -1
- package/runtime/templates/reports/implementation-planning-input.template.md +4 -0
- package/runtime/templates/reports/quick-input.template.md +2 -0
- package/runtime/templates/reports/release-handoff-input.template.md +6 -1
- package/runtime/templates/reports/report.js +20 -3
- package/runtime/templates/reports/schedule.template.md +2 -0
- package/runtime/templates/reports/settings.template.json +0 -10
- package/runtime/templates/reports/task-brief.template.md +3 -0
- package/runtime/templates/reports/user-response.template.md +7 -3
- package/runtime/validators/checks/fixtures-01.py +57 -0
- package/runtime/validators/checks/fixtures-02.py +565 -0
- package/runtime/validators/checks/runners-01.py +108 -0
- package/runtime/validators/checks/validate-assets-01.py +60 -0
- package/runtime/validators/checks/validate-prompt-metadata-01.py +261 -0
- package/runtime/validators/checks/validate-tasks-01.py +46 -0
- package/runtime/validators/checks/validate-tasks-02.py +85 -0
- package/runtime/validators/checks/validate-tasks-03.py +61 -0
- package/runtime/validators/checks/validate-tasks-04.py +118 -0
- package/runtime/validators/forbidden_actions.py +73 -3
- package/runtime/validators/lib/common.sh +5 -0
- package/runtime/validators/lib/fixtures.sh +7 -591
- package/runtime/validators/lib/paths.sh +13 -0
- package/runtime/validators/lib/runners.sh +6 -104
- package/runtime/validators/lib/summary.sh +1 -1
- package/runtime/validators/lib/validate-assets.sh +6 -56
- package/runtime/validators/lib/validate-prompt-metadata.sh +6 -257
- package/runtime/validators/lib/validate-tasks.sh +9 -294
- package/runtime/validators/validate-implementation-plan-stages.py +4 -4
- package/runtime/validators/validate-run.py +1369 -2654
- package/runtime/validators/validate-workflow.sh +56 -16
- package/runtime/validators/validate_improvement_report.py +2 -1
- package/runtime/validators/validate_session_conformance.py +295 -49
- package/dist/commands/execute/agent-prompt.d.mts +0 -1
- package/dist/commands/execute/agent-prompt.mjs +0 -24
- package/dist/commands/execute/agent-prompt.mjs.map +0 -1
- package/dist/commands/execute/codex-dispatch.d.mts +0 -3
- package/dist/commands/execute/codex-dispatch.mjs +0 -6
- package/dist/commands/execute/codex-dispatch.mjs.map +0 -1
- package/dist/commands/execute/codex-run.d.mts +0 -3
- package/dist/commands/execute/codex-run.mjs +0 -62
- package/dist/commands/execute/codex-run.mjs.map +0 -1
- package/dist/commands/execute/convergence.d.mts +0 -1
- package/dist/commands/execute/convergence.mjs +0 -38
- package/dist/commands/execute/convergence.mjs.map +0 -1
- package/dist/commands/execute/error-log.d.mts +0 -1
- package/dist/commands/execute/error-log.mjs +0 -18
- package/dist/commands/execute/error-log.mjs.map +0 -1
- package/dist/commands/execute/git-reconcile.d.mts +0 -1
- package/dist/commands/execute/git-reconcile.mjs +0 -30
- package/dist/commands/execute/git-reconcile.mjs.map +0 -1
- package/dist/commands/execute/handoff.d.mts +0 -1
- package/dist/commands/execute/handoff.mjs +0 -31
- package/dist/commands/execute/handoff.mjs.map +0 -1
- package/dist/commands/execute/incremental-carry.d.mts +0 -1
- package/dist/commands/execute/incremental-carry.mjs +0 -20
- package/dist/commands/execute/incremental-carry.mjs.map +0 -1
- package/dist/commands/execute/incremental-scope.d.mts +0 -1
- package/dist/commands/execute/incremental-scope.mjs +0 -29
- package/dist/commands/execute/incremental-scope.mjs.map +0 -1
- package/dist/commands/execute/integrate-stages.d.mts +0 -1
- package/dist/commands/execute/integrate-stages.mjs +0 -24
- package/dist/commands/execute/integrate-stages.mjs.map +0 -1
- package/dist/commands/execute/pane-title.d.mts +0 -1
- package/dist/commands/execute/pane-title.mjs +0 -20
- package/dist/commands/execute/pane-title.mjs.map +0 -1
- package/dist/commands/execute/plan-items.d.mts +0 -1
- package/dist/commands/execute/plan-items.mjs +0 -9
- package/dist/commands/execute/plan-items.mjs.map +0 -1
- package/dist/commands/execute/plan-validate.d.mts +0 -1
- package/dist/commands/execute/plan-validate.mjs +0 -68
- package/dist/commands/execute/plan-validate.mjs.map +0 -1
- package/dist/commands/execute/plan-verify.d.mts +0 -1
- package/dist/commands/execute/plan-verify.mjs +0 -43
- package/dist/commands/execute/plan-verify.mjs.map +0 -1
- package/dist/commands/execute/spawn-followups.d.mts +0 -1
- package/dist/commands/execute/spawn-followups.mjs +0 -22
- package/dist/commands/execute/spawn-followups.mjs.map +0 -1
- package/dist/commands/execute/team.d.mts +0 -3
- package/dist/commands/execute/team.mjs +0 -66
- package/dist/commands/execute/team.mjs.map +0 -1
- package/dist/commands/execute/token-usage.d.mts +0 -1
- package/dist/commands/execute/token-usage.mjs +0 -19
- package/dist/commands/execute/token-usage.mjs.map +0 -1
- package/dist/commands/execute/worker-audit-check.d.mts +0 -1
- package/dist/commands/execute/worker-audit-check.mjs +0 -34
- package/dist/commands/execute/worker-audit-check.mjs.map +0 -1
- package/dist/commands/execute/worker-dispatch.d.mts +0 -7
- package/dist/commands/execute/worker-dispatch.mjs +0 -64
- package/dist/commands/execute/worker-dispatch.mjs.map +0 -1
- package/dist/commands/execute/worker-state.d.mts +0 -1
- package/dist/commands/execute/worker-state.mjs +0 -28
- package/dist/commands/execute/worker-state.mjs.map +0 -1
- package/dist/commands/execute/worktree-lookup.d.mts +0 -1
- package/dist/commands/execute/worktree-lookup.mjs +0 -92
- package/dist/commands/execute/worktree-lookup.mjs.map +0 -1
- package/dist/commands/execute/worktree-status.d.mts +0 -1
- package/dist/commands/execute/worktree-status.mjs +0 -121
- package/dist/commands/execute/worktree-status.mjs.map +0 -1
- package/dist/commands/inspect/code-review.d.mts +0 -1
- package/dist/commands/inspect/code-review.mjs +0 -32
- package/dist/commands/inspect/code-review.mjs.map +0 -1
- package/dist/commands/inspect/container.d.mts +0 -1
- package/dist/commands/inspect/container.mjs +0 -25
- package/dist/commands/inspect/container.mjs.map +0 -1
- package/dist/commands/inspect/context-cost.d.mts +0 -1
- package/dist/commands/inspect/context-cost.mjs +0 -25
- package/dist/commands/inspect/context-cost.mjs.map +0 -1
- package/dist/commands/inspect/design-prep.d.mts +0 -1
- package/dist/commands/inspect/design-prep.mjs +0 -22
- package/dist/commands/inspect/design-prep.mjs.map +0 -1
- package/dist/commands/inspect/error-report.d.mts +0 -1
- package/dist/commands/inspect/error-report.mjs +0 -25
- package/dist/commands/inspect/error-report.mjs.map +0 -1
- package/dist/commands/inspect/error-zip.d.mts +0 -1
- package/dist/commands/inspect/error-zip.mjs +0 -24
- package/dist/commands/inspect/error-zip.mjs.map +0 -1
- package/dist/commands/inspect/log-report.d.mts +0 -1
- package/dist/commands/inspect/log-report.mjs +0 -26
- package/dist/commands/inspect/log-report.mjs.map +0 -1
- package/dist/commands/inspect/model-io.d.mts +0 -1
- package/dist/commands/inspect/model-io.mjs +0 -25
- package/dist/commands/inspect/model-io.mjs.map +0 -1
- package/dist/commands/inspect/profile-show.d.mts +0 -1
- package/dist/commands/inspect/profile-show.mjs +0 -28
- package/dist/commands/inspect/profile-show.mjs.map +0 -1
- package/dist/commands/inspect/recap.d.mts +0 -1
- package/dist/commands/inspect/recap.mjs +0 -30
- package/dist/commands/inspect/recap.mjs.map +0 -1
- package/dist/commands/inspect/resolve-task-key.d.mts +0 -1
- package/dist/commands/inspect/resolve-task-key.mjs +0 -24
- package/dist/commands/inspect/resolve-task-key.mjs.map +0 -1
- package/dist/commands/inspect/rollup.d.mts +0 -1
- package/dist/commands/inspect/rollup.mjs +0 -25
- package/dist/commands/inspect/rollup.mjs.map +0 -1
- package/dist/commands/inspect/run-audit.d.mts +0 -1
- package/dist/commands/inspect/run-audit.mjs +0 -25
- package/dist/commands/inspect/run-audit.mjs.map +0 -1
- package/dist/commands/inspect/set-work-status.d.mts +0 -1
- package/dist/commands/inspect/set-work-status.mjs +0 -29
- package/dist/commands/inspect/set-work-status.mjs.map +0 -1
- package/dist/commands/inspect/stage-map.d.mts +0 -1
- package/dist/commands/inspect/stage-map.mjs +0 -131
- package/dist/commands/inspect/stage-map.mjs.map +0 -1
- package/dist/commands/inspect/task-list.d.mts +0 -1
- package/dist/commands/inspect/task-list.mjs +0 -149
- package/dist/commands/inspect/task-list.mjs.map +0 -1
- package/dist/commands/inspect/task-show.d.mts +0 -1
- package/dist/commands/inspect/task-show.mjs +0 -108
- package/dist/commands/inspect/task-show.mjs.map +0 -1
- package/dist/commands/inspect/time-report.d.mts +0 -1
- package/dist/commands/inspect/time-report.mjs +0 -24
- package/dist/commands/inspect/time-report.mjs.map +0 -1
- package/dist/commands/inspect/usage-report.d.mts +0 -1
- package/dist/commands/inspect/usage-report.mjs +0 -23
- package/dist/commands/inspect/usage-report.mjs.map +0 -1
- package/dist/commands/inspect/user-response.d.mts +0 -1
- package/dist/commands/inspect/user-response.mjs +0 -35
- package/dist/commands/inspect/user-response.mjs.map +0 -1
- package/dist/commands/inspect/worker-liveness.d.mts +0 -1
- package/dist/commands/inspect/worker-liveness.mjs +0 -45
- package/dist/commands/inspect/worker-liveness.mjs.map +0 -1
- package/dist/commands/lifecycle/contract-check.d.mts +0 -1
- package/dist/commands/lifecycle/contract-check.mjs +0 -18
- package/dist/commands/lifecycle/contract-check.mjs.map +0 -1
- package/dist/commands/lifecycle/migrate.d.mts +0 -1
- package/dist/commands/lifecycle/migrate.mjs +0 -30
- package/dist/commands/lifecycle/migrate.mjs.map +0 -1
- package/dist/commands/lifecycle/model.d.mts +0 -1
- package/dist/commands/lifecycle/model.mjs +0 -22
- package/dist/commands/lifecycle/model.mjs.map +0 -1
- package/dist/commands/manager.d.mts +0 -3
- package/dist/commands/manager.mjs +0 -50
- package/dist/commands/manager.mjs.map +0 -1
- package/dist/commands/report/agent-activity.d.mts +0 -1
- package/dist/commands/report/agent-activity.mjs +0 -20
- package/dist/commands/report/agent-activity.mjs.map +0 -1
- package/dist/commands/report/approval-decision.d.mts +0 -1
- package/dist/commands/report/approval-decision.mjs +0 -21
- package/dist/commands/report/approval-decision.mjs.map +0 -1
- package/dist/commands/report/design-snapshot.d.mts +0 -1
- package/dist/commands/report/design-snapshot.mjs +0 -19
- package/dist/commands/report/design-snapshot.mjs.map +0 -1
- package/dist/commands/report/finalize.d.mts +0 -4
- package/dist/commands/report/finalize.mjs +0 -64
- package/dist/commands/report/finalize.mjs.map +0 -1
- package/dist/commands/report/inject-report-index.d.mts +0 -1
- package/dist/commands/report/inject-report-index.mjs +0 -21
- package/dist/commands/report/inject-report-index.mjs.map +0 -1
- package/dist/commands/report/render-final-report.d.mts +0 -1
- package/dist/commands/report/render-final-report.mjs +0 -23
- package/dist/commands/report/render-final-report.mjs.map +0 -1
- package/dist/commands/report/render-views.d.mts +0 -1
- package/dist/commands/report/render-views.mjs +0 -27
- package/dist/commands/report/render-views.mjs.map +0 -1
- package/dist/commands/report/translate.d.mts +0 -1
- package/dist/commands/report/translate.mjs +0 -33
- package/dist/commands/report/translate.mjs.map +0 -1
- package/runtime/bin/lib/okstra/tmux-pane.sh +0 -40
- package/runtime/bin/lib/okstra-ctl/cmd-batch.sh +0 -59
- package/runtime/bin/lib/okstra-ctl/cmd-list.sh +0 -35
- package/runtime/bin/lib/okstra-ctl/cmd-open.sh +0 -36
- package/runtime/bin/lib/okstra-ctl/cmd-projects.sh +0 -26
- package/runtime/bin/lib/okstra-ctl/cmd-reconcile.sh +0 -29
- package/runtime/bin/lib/okstra-ctl/cmd-reindex.sh +0 -38
- package/runtime/bin/lib/okstra-ctl/cmd-rerun.sh +0 -345
- package/runtime/bin/lib/okstra-ctl/cmd-show.sh +0 -27
- package/runtime/bin/lib/okstra-ctl/cmd-tail.sh +0 -92
- package/runtime/bin/lib/okstra-ctl/main.sh +0 -41
- package/runtime/bin/lib/okstra-ctl/prepare.sh +0 -31
- package/runtime/bin/lib/okstra-ctl/usage.sh +0 -23
- package/runtime/bin/okstra-central.sh +0 -152
- package/runtime/bin/okstra-incremental-carry.py +0 -10
- package/runtime/bin/okstra-incremental-scope.py +0 -10
- package/runtime/bin/okstra-team-reconcile.sh +0 -36
- package/runtime/python/okstra_ctl/agent_prompt_cli.py +0 -1156
- package/runtime/python/okstra_ctl/batch.py +0 -60
- package/runtime/python/okstra_ctl/clarification_items.py +0 -1050
- package/runtime/python/okstra_ctl/container_registry.py +0 -72
- package/runtime/python/okstra_ctl/improvement_assignment.py +0 -61
- package/runtime/python/okstra_ctl/resolver.py +0 -54
- package/runtime/python/okstra_ctl/team_reconcile.py +0 -275
- package/runtime/python/okstra_ctl/tmux.py +0 -134
- package/runtime/python/okstra_ctl/worktree.py +0 -1099
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { runPythonModule } from "../../lib/python-helper.mjs";
|
|
2
|
-
const USAGE = `okstra error-report — aggregate okstra-run error logs into a task report
|
|
3
|
-
|
|
4
|
-
Usage:
|
|
5
|
-
okstra error-report <task-root>
|
|
6
|
-
okstra error-report <task-key> --project-root <dir>
|
|
7
|
-
okstra error-report <task-key> --cwd <dir>
|
|
8
|
-
|
|
9
|
-
Writes a timestamped markdown report under <task-root>/error-reports/ and
|
|
10
|
-
prints a JSON summary (counts by errorType / source / phase / agent) to stdout.
|
|
11
|
-
This is read-only against task state; it never mutates task artifacts.
|
|
12
|
-
`;
|
|
13
|
-
export async function run(args) {
|
|
14
|
-
if (args.includes("--help") || args.includes("-h")) {
|
|
15
|
-
process.stdout.write(USAGE);
|
|
16
|
-
return 0;
|
|
17
|
-
}
|
|
18
|
-
const result = await runPythonModule({
|
|
19
|
-
module: "okstra_ctl.error_report",
|
|
20
|
-
args,
|
|
21
|
-
stdio: "inherit-stdout",
|
|
22
|
-
});
|
|
23
|
-
return result.code;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=error-report.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function run(args: readonly string[]): Promise<number>;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { runPythonModule } from "../../lib/python-helper.mjs";
|
|
2
|
-
const USAGE = `okstra error-zip — bundle cross-project okstra error logs into a zip
|
|
3
|
-
|
|
4
|
-
Usage:
|
|
5
|
-
okstra error-zip --out <path>
|
|
6
|
-
|
|
7
|
-
Walks the global run-index (~/.okstra/recent.jsonl + active.jsonl), collects
|
|
8
|
-
every target project's runs/*/logs/errors-*.jsonl, anonymizes records, and
|
|
9
|
-
writes a .zip (report.md + errors/anonymized.jsonl) to <path>. Read-only
|
|
10
|
-
against every target's .okstra/. Prints a JSON summary to stdout.
|
|
11
|
-
`;
|
|
12
|
-
export async function run(args) {
|
|
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;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=error-zip.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function run(args: readonly string[]): Promise<number>;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { runPythonModule } from "../../lib/python-helper.mjs";
|
|
2
|
-
const USAGE = `okstra log-report — inventory wrapper sidecar logs by size and task
|
|
3
|
-
|
|
4
|
-
Usage:
|
|
5
|
-
okstra log-report [--project-root <dir>] [--cwd <dir>] [--top <N>] [--json]
|
|
6
|
-
|
|
7
|
-
Output: JSON { ok, projectRoot, logsRoot, topLargest[], perTask[], totals }.
|
|
8
|
-
Scans <project-root>/.okstra/tasks/**/runs/*/prompts/*.log. Each entry reports
|
|
9
|
-
the wrapper transcript as transcriptBytes and its sibling prompt Markdown as
|
|
10
|
-
promptBytes; sizeBytes remains the transcript-size compatibility field. Sizes
|
|
11
|
-
are raw bytes and mtimes are epoch seconds — the caller formats KB/MB and ages.
|
|
12
|
-
Read-only: it never deletes logs (cleanup commands stay in the skill).
|
|
13
|
-
`;
|
|
14
|
-
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.log_report",
|
|
21
|
-
args,
|
|
22
|
-
stdio: "inherit-stdout",
|
|
23
|
-
});
|
|
24
|
-
return result.code;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=log-report.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function run(args: readonly string[]): Promise<number>;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { runPythonModule } from "../../lib/python-helper.mjs";
|
|
2
|
-
const USAGE = `okstra model-io — render fixed Markdown views of Okstra-owned JSON
|
|
3
|
-
|
|
4
|
-
Usage:
|
|
5
|
-
okstra model-io project-context --project-root <dir> [--task-ref <task-id|task-key|task-manifest-path>]
|
|
6
|
-
okstra model-io run-input --run-manifest <path>
|
|
7
|
-
okstra model-io active-context-input --project-root <dir> --run-manifest <path>
|
|
8
|
-
okstra model-io schedule-input --project-root <dir> --task-group <id>
|
|
9
|
-
okstra model-io code-review-input --project-root <dir> --base <ref> --head <ref>
|
|
10
|
-
|
|
11
|
-
Output: purpose-specific Markdown only. This command has no generic JSON path,
|
|
12
|
-
key lookup, or JSON-output option.
|
|
13
|
-
`;
|
|
14
|
-
export async function run(args) {
|
|
15
|
-
if (args.length === 0 || args.includes("--help") || args.includes("-h")) {
|
|
16
|
-
process.stdout.write(USAGE);
|
|
17
|
-
return args.length === 0 ? 2 : 0;
|
|
18
|
-
}
|
|
19
|
-
const result = await runPythonModule({
|
|
20
|
-
module: "okstra_ctl.model_io_cli",
|
|
21
|
-
args,
|
|
22
|
-
});
|
|
23
|
-
return result.code ?? 1;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=model-io.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model-io.mjs","sourceRoot":"","sources":["../../../src/commands/inspect/model-io.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,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,MAAM,GAAG,MAAM,eAAe,CAAC;QACnC,MAAM,EAAE,yBAAyB;QACjC,IAAI;KACL,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function run(args: readonly string[]): Promise<number>;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { runPythonModule } from "../../lib/python-helper.mjs";
|
|
2
|
-
const USAGE = `okstra profile show — print a phase profile, fully resolved
|
|
3
|
-
|
|
4
|
-
Usage:
|
|
5
|
-
okstra profile show <task-type> [--resolved]
|
|
6
|
-
|
|
7
|
-
--resolved expand {{INCLUDE:}} targets and append the lazy-read sidecars
|
|
8
|
-
|
|
9
|
-
A profile is assembled from the top-level body, its {{INCLUDE:}} targets, and
|
|
10
|
-
the sidecars its own table names — so grepping the top-level file and finding
|
|
11
|
-
nothing does not mean the rule is absent. This prints all of it, so one grep
|
|
12
|
-
answers "does this task-type cover X".
|
|
13
|
-
|
|
14
|
-
Read-only: writes no manifest and registers no run. That is what separates it
|
|
15
|
-
from 'okstra render-bundle', which answers the same question with side effects.
|
|
16
|
-
`;
|
|
17
|
-
export async function run(args) {
|
|
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;
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=profile-show.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function run(args: readonly string[]): Promise<number>;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { runPythonModule } from "../../lib/python-helper.mjs";
|
|
2
|
-
const USAGE = `okstra recap — assemble a task's run-to-run phase recap, append a recap log entry, or write an agent note
|
|
3
|
-
|
|
4
|
-
Usage:
|
|
5
|
-
okstra recap assemble <task-root|task-key> [--project-root <dir>] [--cwd <dir>]
|
|
6
|
-
okstra recap record <task-root|task-key> --kind <summary|qa> --mode <artifact|code> \\
|
|
7
|
-
[--question <text>] --answer <text> [--citation <path:line> ...]
|
|
8
|
-
okstra recap note <task-root|task-key> \\
|
|
9
|
-
--kind <verification-evidence|decision-draft|analysis-note> --slug <topic> \\
|
|
10
|
-
--purpose <text> --scope-note <text> (--body <markdown> | --body-file <path>)
|
|
11
|
-
|
|
12
|
-
\`assemble\` is read-only and prints a JSON summary of phase transitions across runs.
|
|
13
|
-
\`record\` appends one line to <task-root>/recap/recap-log.jsonl; it never mutates
|
|
14
|
-
other task artifacts.
|
|
15
|
-
\`note\` writes an agent-authored markdown note to <task-root>/notes/ and prints its
|
|
16
|
-
path plus the \`--clarification-response\` argument for feeding it into a later run.
|
|
17
|
-
`;
|
|
18
|
-
export async function run(args) {
|
|
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;
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=recap.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function run(args: readonly string[]): Promise<number>;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { runPythonModule } from "../../lib/python-helper.mjs";
|
|
2
|
-
const USAGE = `okstra resolve-task-key — resolve a bare task-id to catalog task-keys
|
|
3
|
-
|
|
4
|
-
Usage:
|
|
5
|
-
okstra resolve-task-key <task-id> [--task-group <g>] [--project-root <dir>] [--cwd <dir>] [--json]
|
|
6
|
-
|
|
7
|
-
Output: JSON { ok, projectRoot, matches: [ { taskKey, taskGroup, taskId,
|
|
8
|
-
taskGroupPathSegment, taskIdPathSegment, taskManifestPath, ... } ] }.
|
|
9
|
-
matches.length 0 = not found, 1 = unambiguous, N = ambiguous (caller asks).
|
|
10
|
-
This is read-only; it never mutates task state.
|
|
11
|
-
`;
|
|
12
|
-
export async function run(args) {
|
|
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;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=resolve-task-key.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function run(args: readonly string[]): Promise<number>;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { runPythonModule } from "../../lib/python-helper.mjs";
|
|
2
|
-
const USAGE = `okstra rollup — roll up run results across a task-group's tasks
|
|
3
|
-
|
|
4
|
-
Usage:
|
|
5
|
-
okstra rollup [--task-group <group>] [--project-root <dir>] [--cwd <dir>]
|
|
6
|
-
|
|
7
|
-
Read-only. Prints a JSON roll-up of every catalog task (optionally scoped to one
|
|
8
|
-
task-group): per-task run count, elapsed time (raw ms), error count, and the
|
|
9
|
-
latest report path, plus group-level totals and status/category/phase tallies.
|
|
10
|
-
With no --task-group it covers the whole project catalog. Time is raw ms; the
|
|
11
|
-
caller formats HH:MM:SS and synthesizes the prose digest from the report files.
|
|
12
|
-
`;
|
|
13
|
-
export async function run(args) {
|
|
14
|
-
if (args.includes("--help") || args.includes("-h")) {
|
|
15
|
-
process.stdout.write(USAGE);
|
|
16
|
-
return 0;
|
|
17
|
-
}
|
|
18
|
-
const result = await runPythonModule({
|
|
19
|
-
module: "okstra_ctl.rollup",
|
|
20
|
-
args,
|
|
21
|
-
stdio: "inherit-stdout",
|
|
22
|
-
});
|
|
23
|
-
return result.code;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=rollup.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function run(args: readonly string[]): Promise<number>;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { runPythonModule } from "../../lib/python-helper.mjs";
|
|
2
|
-
const USAGE = `okstra run-audit — check okstra run artifacts against progress invariants
|
|
3
|
-
|
|
4
|
-
Usage:
|
|
5
|
-
okstra run-audit
|
|
6
|
-
|
|
7
|
-
Walks the global run-index and checks each run's artifacts (run-manifest,
|
|
8
|
-
final-report data, worker results) against invariants that no error log
|
|
9
|
-
would catch: verification rounds that never ran, reports that never
|
|
10
|
-
appeared, rosters that came up short, approvals waiting past the window.
|
|
11
|
-
Read-only. Prints a JSON summary to stdout.
|
|
12
|
-
`;
|
|
13
|
-
export async function run(args) {
|
|
14
|
-
if (args.includes("--help") || args.includes("-h")) {
|
|
15
|
-
process.stdout.write(USAGE);
|
|
16
|
-
return 0;
|
|
17
|
-
}
|
|
18
|
-
const result = await runPythonModule({
|
|
19
|
-
module: "okstra_ctl.run_audit",
|
|
20
|
-
args,
|
|
21
|
-
stdio: "inherit-stdout",
|
|
22
|
-
});
|
|
23
|
-
return result.code;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=run-audit.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function run(args: readonly string[]): Promise<number>;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { runPythonModule } from "../../lib/python-helper.mjs";
|
|
2
|
-
const USAGE = `okstra set-work-status — set a task's user-managed workStatus
|
|
3
|
-
|
|
4
|
-
Usage:
|
|
5
|
-
okstra set-work-status <token> <status> [--note <text>] [--task-group <g>]
|
|
6
|
-
[--project-root <dir>] [--cwd <dir>] [--json]
|
|
7
|
-
|
|
8
|
-
<token> is a full task-key (<project-id>:<task-group>:<task-id>) or a bare
|
|
9
|
-
task-id. <status> is one of: todo | in-progress | blocked | done.
|
|
10
|
-
|
|
11
|
-
Updates workStatus + workStatusUpdatedAt in task-manifest.json (workStatusNote
|
|
12
|
-
only when --note is passed) using the same JSON serialization as the manifest
|
|
13
|
-
renderer. Output: JSON { ok, taskKey, previousWorkStatus, workStatus, ... };
|
|
14
|
-
ok:false stages: resolve | catalog | not-found | ambiguous (pick from
|
|
15
|
-
matches[]) | manifest-missing | manifest-invalid.
|
|
16
|
-
`;
|
|
17
|
-
export async function run(args) {
|
|
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;
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=set-work-status.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function run(args: readonly string[]): Promise<number>;
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import { runPythonSnippet, emitJsonError } from "../../lib/python-helper.mjs";
|
|
2
|
-
const USAGE = `okstra stage-map — dump a task's implementation-planning Stage Map + done stages
|
|
3
|
-
|
|
4
|
-
Usage:
|
|
5
|
-
okstra stage-map <task-key> task-key is project-id:task-group:task-id
|
|
6
|
-
okstra stage-map <task-key> --cwd <dir> Resolve PROJECT_ROOT from <dir>
|
|
7
|
-
okstra stage-map <task-key> --project <dir> Use <dir> directly as PROJECT_ROOT
|
|
8
|
-
okstra stage-map <task-key> --text Emit fixed text fields for model use
|
|
9
|
-
|
|
10
|
-
Output: default and --json emit JSON { ok, taskKey, taskRoot, state, sourcePlanPath,
|
|
11
|
-
stages:[…], doneStages:[int], planning:{…} }; --text emits fixed count/name/value fields.
|
|
12
|
-
Each stage row carries stage_number, title, depends_on, step_count and exit_contract_summary; a
|
|
13
|
-
schema-v2 report adds that stage's sliceValue, acceptance and exitContract.
|
|
14
|
-
planning carries the report's task-level rows — rollbackStrategy, validationChecklist,
|
|
15
|
-
crossProjectDependencies, dependencyMigrationRisk, recommendedOption — so a consumer renders the
|
|
16
|
-
plan instead of re-summarising the report body. Both are absent for a schema-v1 report.
|
|
17
|
-
stages is [] when no implementation-planning Stage Map exists.
|
|
18
|
-
`;
|
|
19
|
-
function parseArgs(args) {
|
|
20
|
-
const opts = { cwd: process.cwd(), projectRoot: "", taskKey: "", text: false };
|
|
21
|
-
const positional = [];
|
|
22
|
-
for (let i = 0; i < args.length; i++) {
|
|
23
|
-
const a = args[i];
|
|
24
|
-
if (a === undefined)
|
|
25
|
-
continue;
|
|
26
|
-
if (a === "--cwd") {
|
|
27
|
-
const value = args[++i];
|
|
28
|
-
opts.cwd = value ?? "";
|
|
29
|
-
if (!opts.cwd)
|
|
30
|
-
throw new Error("--cwd requires a path");
|
|
31
|
-
}
|
|
32
|
-
else if (a === "--project") {
|
|
33
|
-
const value = args[++i];
|
|
34
|
-
opts.projectRoot = value ?? "";
|
|
35
|
-
if (!opts.projectRoot)
|
|
36
|
-
throw new Error("--project requires a path");
|
|
37
|
-
}
|
|
38
|
-
else if (a === "--json") {
|
|
39
|
-
// JSON is always emitted; accept the flag for parity with sibling commands.
|
|
40
|
-
}
|
|
41
|
-
else if (a === "--text") {
|
|
42
|
-
opts.text = true;
|
|
43
|
-
}
|
|
44
|
-
else if (a.startsWith("--")) {
|
|
45
|
-
throw new Error(`unknown argument '${a}'`);
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
positional.push(a);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
if (positional.length !== 1) {
|
|
52
|
-
throw new Error("expected exactly one positional argument: <task-key>");
|
|
53
|
-
}
|
|
54
|
-
const taskKey = positional[0];
|
|
55
|
-
if (taskKey === undefined)
|
|
56
|
-
throw new Error("expected exactly one positional argument: <task-key>");
|
|
57
|
-
opts.taskKey = taskKey;
|
|
58
|
-
return opts;
|
|
59
|
-
}
|
|
60
|
-
const SCRIPT = `
|
|
61
|
-
import json, sys
|
|
62
|
-
from pathlib import Path
|
|
63
|
-
from okstra_project import (
|
|
64
|
-
resolve_project_root, stage_map_read_side_snapshot, ResolverError, StateError,
|
|
65
|
-
)
|
|
66
|
-
from okstra_ctl.stage_map import render_stage_map_text
|
|
67
|
-
|
|
68
|
-
explicit, cwd, task_key, output_mode = sys.argv[1:5]
|
|
69
|
-
|
|
70
|
-
def emit(payload):
|
|
71
|
-
print(render_stage_map_text(payload) if output_mode == "text" else json.dumps(
|
|
72
|
-
payload, ensure_ascii=False, indent=2
|
|
73
|
-
))
|
|
74
|
-
|
|
75
|
-
try:
|
|
76
|
-
pr = resolve_project_root(explicit_root=explicit, cwd=cwd)
|
|
77
|
-
except ResolverError as e:
|
|
78
|
-
emit({"ok": False, "stage": "resolve", "reason": str(e)})
|
|
79
|
-
sys.exit(2)
|
|
80
|
-
|
|
81
|
-
try:
|
|
82
|
-
snapshot = stage_map_read_side_snapshot(Path(pr), task_key)
|
|
83
|
-
except StateError as e:
|
|
84
|
-
emit({
|
|
85
|
-
"ok": False,
|
|
86
|
-
"stage": getattr(e, "stage", None) or "stage_map",
|
|
87
|
-
"reason": str(e),
|
|
88
|
-
})
|
|
89
|
-
sys.exit(1)
|
|
90
|
-
|
|
91
|
-
emit({"ok": True, **snapshot})
|
|
92
|
-
`;
|
|
93
|
-
export async function run(args) {
|
|
94
|
-
if (args.includes("--help") || args.includes("-h")) {
|
|
95
|
-
process.stdout.write(USAGE);
|
|
96
|
-
return 0;
|
|
97
|
-
}
|
|
98
|
-
let opts;
|
|
99
|
-
try {
|
|
100
|
-
opts = parseArgs(args);
|
|
101
|
-
}
|
|
102
|
-
catch (err) {
|
|
103
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
104
|
-
process.stderr.write(`error: ${message}\n\n${USAGE}`);
|
|
105
|
-
return 2;
|
|
106
|
-
}
|
|
107
|
-
const result = await runPythonSnippet({
|
|
108
|
-
script: SCRIPT,
|
|
109
|
-
args: [opts.projectRoot, opts.cwd, opts.taskKey, opts.text ? "text" : "json"],
|
|
110
|
-
});
|
|
111
|
-
if (result.code !== 0 && !result.stdout.trim()) {
|
|
112
|
-
if (opts.text) {
|
|
113
|
-
const reason = result.code === -1
|
|
114
|
-
? "Python runtime could not be started"
|
|
115
|
-
: "Python invocation failed";
|
|
116
|
-
process.stdout.write("Okstra stage map\n"
|
|
117
|
-
+ "- Status: `error`\n"
|
|
118
|
-
+ "- Failure stage: `python`\n"
|
|
119
|
-
+ `- Failure reason: \`${reason}\`\n`);
|
|
120
|
-
return 1;
|
|
121
|
-
}
|
|
122
|
-
emitJsonError({
|
|
123
|
-
stage: "python",
|
|
124
|
-
reason: `python invocation failed: ${result.stderr.trim() || "no output"}`,
|
|
125
|
-
});
|
|
126
|
-
return 1;
|
|
127
|
-
}
|
|
128
|
-
process.stdout.write(result.stdout);
|
|
129
|
-
return result.code === 0 ? 0 : result.code;
|
|
130
|
-
}
|
|
131
|
-
//# sourceMappingURL=stage-map.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stage-map.mjs","sourceRoot":"","sources":["../../../src/commands/inspect/stage-map.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function run(args: readonly string[]): Promise<number>;
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
import { runPythonSnippet, emitJsonError } from "../../lib/python-helper.mjs";
|
|
2
|
-
const USAGE = `okstra task-list — list okstra tasks registered in this project
|
|
3
|
-
|
|
4
|
-
Usage:
|
|
5
|
-
okstra task-list Resolve PROJECT_ROOT from cwd, list tasks
|
|
6
|
-
okstra task-list --cwd <dir> Start resolution from <dir> instead of cwd
|
|
7
|
-
okstra task-list --project <dir> Use <dir> directly as PROJECT_ROOT
|
|
8
|
-
okstra task-list --task-type <type> Filter by taskType
|
|
9
|
-
okstra task-list --latest-run-status <s> Filter by latestRunStatus
|
|
10
|
-
okstra task-list --task-group <group> Filter by taskGroup
|
|
11
|
-
okstra task-list --limit <N> Keep the first N (catalog is updatedAt desc)
|
|
12
|
-
okstra task-list --text Emit fixed task identity fields for model use
|
|
13
|
-
|
|
14
|
-
Output: default emits JSON { ok, projectRoot, tasks: [...], latest: {...}|null }.
|
|
15
|
-
--text emits fixed task key/type/group/title/latest-status/updated fields.
|
|
16
|
-
Filters are AND-combined and all optional.
|
|
17
|
-
|
|
18
|
-
Replaces the common pattern of loading okstra_project and calling
|
|
19
|
-
list_project_tasks + read_latest_task from a python heredoc.
|
|
20
|
-
`;
|
|
21
|
-
function parseArgs(args) {
|
|
22
|
-
const opts = {
|
|
23
|
-
cwd: process.cwd(), projectRoot: "", taskType: "", latestRunStatus: "",
|
|
24
|
-
taskGroup: "", limit: "", text: false,
|
|
25
|
-
};
|
|
26
|
-
const valued = {
|
|
27
|
-
"--cwd": "cwd", "--project": "projectRoot", "--task-type": "taskType",
|
|
28
|
-
"--latest-run-status": "latestRunStatus", "--task-group": "taskGroup", "--limit": "limit",
|
|
29
|
-
};
|
|
30
|
-
for (let i = 0; i < args.length; i++) {
|
|
31
|
-
const a = args[i];
|
|
32
|
-
if (a === undefined)
|
|
33
|
-
continue;
|
|
34
|
-
if (a === "--text") {
|
|
35
|
-
opts.text = true;
|
|
36
|
-
continue;
|
|
37
|
-
}
|
|
38
|
-
if (!isValuedFlag(a))
|
|
39
|
-
throw new Error(`unknown argument '${a}'`);
|
|
40
|
-
const key = valued[a];
|
|
41
|
-
if (!key)
|
|
42
|
-
throw new Error(`unknown argument '${a}'`);
|
|
43
|
-
const v = args[++i];
|
|
44
|
-
if (v === undefined || v === "")
|
|
45
|
-
throw new Error(`${a} requires a value`);
|
|
46
|
-
opts[key] = v;
|
|
47
|
-
}
|
|
48
|
-
return opts;
|
|
49
|
-
}
|
|
50
|
-
function isValuedFlag(value) {
|
|
51
|
-
return value === "--cwd" || value === "--project" || value === "--task-type" ||
|
|
52
|
-
value === "--latest-run-status" || value === "--task-group" || value === "--limit";
|
|
53
|
-
}
|
|
54
|
-
const SCRIPT = `
|
|
55
|
-
import json, sys
|
|
56
|
-
from pathlib import Path
|
|
57
|
-
from okstra_ctl.fixed_text import line
|
|
58
|
-
from okstra_project import (
|
|
59
|
-
list_project_tasks, read_latest_task,
|
|
60
|
-
resolve_project_root, ResolverError,
|
|
61
|
-
)
|
|
62
|
-
|
|
63
|
-
explicit = sys.argv[1]
|
|
64
|
-
cwd = sys.argv[2]
|
|
65
|
-
task_type = sys.argv[3] or None
|
|
66
|
-
latest_run_status = sys.argv[4] or None
|
|
67
|
-
task_group = sys.argv[5] or None
|
|
68
|
-
limit = int(sys.argv[6]) if sys.argv[6] else None
|
|
69
|
-
output_mode = sys.argv[7]
|
|
70
|
-
try:
|
|
71
|
-
pr = resolve_project_root(explicit_root=explicit, cwd=cwd)
|
|
72
|
-
except ResolverError as e:
|
|
73
|
-
if output_mode == "text":
|
|
74
|
-
print(
|
|
75
|
-
"Okstra task list\\n"
|
|
76
|
-
+ line("Status", "error")
|
|
77
|
-
+ line("Failure stage", "resolve")
|
|
78
|
-
+ line("Failure reason", str(e)),
|
|
79
|
-
end="",
|
|
80
|
-
)
|
|
81
|
-
else:
|
|
82
|
-
print(json.dumps({"ok": False, "stage": "resolve", "reason": str(e)}))
|
|
83
|
-
sys.exit(2)
|
|
84
|
-
|
|
85
|
-
pr_path = Path(pr)
|
|
86
|
-
payload = {
|
|
87
|
-
"ok": True,
|
|
88
|
-
"projectRoot": str(pr_path),
|
|
89
|
-
"tasks": list_project_tasks(
|
|
90
|
-
pr_path, task_type=task_type, latest_run_status=latest_run_status,
|
|
91
|
-
task_group=task_group, limit=limit),
|
|
92
|
-
"latest": read_latest_task(pr_path),
|
|
93
|
-
}
|
|
94
|
-
if output_mode == "text":
|
|
95
|
-
parts = ["# Okstra Task List\\n\\n", line("Task count", len(payload["tasks"]))]
|
|
96
|
-
for task in payload["tasks"]:
|
|
97
|
-
parts.extend((
|
|
98
|
-
"\\n## Task\\n\\n",
|
|
99
|
-
line("Task key", task.get("taskKey")),
|
|
100
|
-
line("Task type", task.get("taskType")),
|
|
101
|
-
line("Task group", task.get("taskGroup")),
|
|
102
|
-
line("Title", task.get("title") or task.get("taskTitle")),
|
|
103
|
-
line("Latest run status", task.get("latestRunStatus")),
|
|
104
|
-
line("Updated at", task.get("updatedAt")),
|
|
105
|
-
))
|
|
106
|
-
print("".join(parts), end="")
|
|
107
|
-
else:
|
|
108
|
-
print(json.dumps(payload, default=str))
|
|
109
|
-
`;
|
|
110
|
-
export async function run(args) {
|
|
111
|
-
if (args.includes("--help") || args.includes("-h")) {
|
|
112
|
-
process.stdout.write(USAGE);
|
|
113
|
-
return 0;
|
|
114
|
-
}
|
|
115
|
-
let opts;
|
|
116
|
-
try {
|
|
117
|
-
opts = parseArgs(args);
|
|
118
|
-
}
|
|
119
|
-
catch (err) {
|
|
120
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
121
|
-
process.stderr.write(`error: ${message}\n\n${USAGE}`);
|
|
122
|
-
return 2;
|
|
123
|
-
}
|
|
124
|
-
const result = await runPythonSnippet({
|
|
125
|
-
script: SCRIPT,
|
|
126
|
-
args: [opts.projectRoot, opts.cwd, opts.taskType, opts.latestRunStatus,
|
|
127
|
-
opts.taskGroup, opts.limit, opts.text ? "text" : "json"],
|
|
128
|
-
});
|
|
129
|
-
if (result.code !== 0 && !result.stdout.trim()) {
|
|
130
|
-
if (opts.text) {
|
|
131
|
-
const reason = result.code === -1
|
|
132
|
-
? "Python runtime could not be started"
|
|
133
|
-
: "Python invocation failed";
|
|
134
|
-
process.stdout.write("Okstra task list\n"
|
|
135
|
-
+ "- Status: `error`\n"
|
|
136
|
-
+ "- Failure stage: `python`\n"
|
|
137
|
-
+ `- Failure reason: \`${reason}\`\n`);
|
|
138
|
-
return 1;
|
|
139
|
-
}
|
|
140
|
-
emitJsonError({
|
|
141
|
-
stage: "python",
|
|
142
|
-
reason: `python invocation failed: ${result.stderr.trim() || "no output"}`,
|
|
143
|
-
});
|
|
144
|
-
return 1;
|
|
145
|
-
}
|
|
146
|
-
process.stdout.write(result.stdout);
|
|
147
|
-
return result.code === 0 ? 0 : result.code;
|
|
148
|
-
}
|
|
149
|
-
//# sourceMappingURL=task-list.mjs.map
|