okstra 0.199.4 → 0.200.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 +4 -1
- package/dist/lib/runtime-payload.mjs +1 -0
- package/dist/lib/runtime-payload.mjs.map +1 -1
- package/docs/cli.md +10 -0
- package/package.json +1 -1
- package/runtime/BUILD.json +2 -2
- package/runtime/bin/okstra-provider-exec.py +1 -1
- package/runtime/bin/okstra-zai-exec.sh +5 -0
- package/runtime/prompts/launch.template.md +12 -0
- package/runtime/prompts/lead/okstra-lead-contract.md +3 -1
- package/runtime/prompts/lead/plan-body-verification.md +16 -4
- package/runtime/prompts/profiles/implementation-planning.md +1 -1
- package/runtime/prompts/wizard/prompts.ko.json +1 -0
- package/runtime/python/okstra_ctl/adapters/hosts/codex/relay.md +18 -4
- package/runtime/python/okstra_ctl/adapters/providers/zai/adapter.py +96 -0
- package/runtime/python/okstra_ctl/adapters/providers/zai/manifest.json +5 -0
- package/runtime/python/okstra_ctl/agent/prompt_cli/corrections.py +6 -3
- package/runtime/python/okstra_ctl/agent/prompt_cli/materialize.py +23 -1
- package/runtime/python/okstra_ctl/consumers.py +0 -55
- package/runtime/python/okstra_ctl/domain/worker_exec.py +5 -2
- package/runtime/python/okstra_ctl/domain/write_policy.py +7 -1
- package/runtime/python/okstra_ctl/execution_mutation_audit.py +6 -17
- package/runtime/python/okstra_ctl/final_report_schema.py +16 -16
- package/runtime/python/okstra_ctl/plan_items_cli.py +6 -0
- package/runtime/python/okstra_ctl/report_assembly.py +4 -1
- package/runtime/python/okstra_ctl/report_corrections.py +24 -15
- package/runtime/python/okstra_ctl/report_finalize.py +1 -1
- package/runtime/python/okstra_ctl/report_narrative.py +11 -6
- package/runtime/python/okstra_ctl/report_projections.py +1 -0
- package/runtime/python/okstra_ctl/report_synthesis_packet.py +1 -1
- package/runtime/python/okstra_ctl/wizard/confirmation.py +4 -0
- package/runtime/python/okstra_ctl/wizard/engine.py +4 -16
- package/runtime/python/okstra_ctl/wizard/picker_navigation.py +7 -37
- package/runtime/python/okstra_ctl/worker_runner.py +7 -2
- package/runtime/python/okstra_ctl/worktree_status_cli.py +2 -3
- package/runtime/python/okstra_ctl/write_policy.py +51 -4
- package/runtime/python/okstra_token_usage/claude.py +29 -0
- package/runtime/python/okstra_token_usage/collect.py +11 -1
- package/runtime/schemas/execution-manifest-v2.schema.json +1 -0
- package/runtime/schemas/final-report-v2.0.schema.json +3 -2
- package/runtime/schemas/final-report-v3.0.schema.json +3 -2
- package/runtime/skills/okstra-run/SKILL.md +9 -1
|
@@ -7025,7 +7025,8 @@
|
|
|
7025
7025
|
"Codex",
|
|
7026
7026
|
"Antigravity",
|
|
7027
7027
|
"Grok",
|
|
7028
|
-
"Kimi"
|
|
7028
|
+
"Kimi",
|
|
7029
|
+
"Z.ai GLM"
|
|
7029
7030
|
]
|
|
7030
7031
|
},
|
|
7031
7032
|
"role": {
|
|
@@ -8651,7 +8652,7 @@
|
|
|
8651
8652
|
"minLength": 1
|
|
8652
8653
|
},
|
|
8653
8654
|
"plannedPaths": {
|
|
8654
|
-
"description": "
|
|
8655
|
+
"description": "Paths this step may write, one per entry. Source paths are relative to the assigned worktree; absolute paths under that worktree or the project checkout identify the same repository-relative source. `.okstra` artifact paths are anchored at the original project root and may be absolute. The write-policy builder checks artifact paths against the worker's existing artifact permissions and keeps them out of the source ledger. Keep absolute artifact paths in executable commands. `files` is human-readable prose, not a path ledger.",
|
|
8655
8656
|
"type": "array",
|
|
8656
8657
|
"minItems": 1,
|
|
8657
8658
|
"items": {
|
|
@@ -7122,7 +7122,8 @@
|
|
|
7122
7122
|
"Codex",
|
|
7123
7123
|
"Antigravity",
|
|
7124
7124
|
"Grok",
|
|
7125
|
-
"Kimi"
|
|
7125
|
+
"Kimi",
|
|
7126
|
+
"Z.ai GLM"
|
|
7126
7127
|
]
|
|
7127
7128
|
},
|
|
7128
7129
|
"role": {
|
|
@@ -8796,7 +8797,7 @@
|
|
|
8796
8797
|
"minLength": 1
|
|
8797
8798
|
},
|
|
8798
8799
|
"plannedPaths": {
|
|
8799
|
-
"description": "
|
|
8800
|
+
"description": "Paths this step may write, one per entry. Source paths are relative to the assigned worktree; absolute paths under that worktree or the project checkout identify the same repository-relative source. `.okstra` artifact paths are anchored at the original project root and may be absolute. The write-policy builder checks artifact paths against the worker's existing artifact permissions and keeps them out of the source ledger. Keep absolute artifact paths in executable commands. `files` is human-readable prose, not a path ledger.",
|
|
8800
8801
|
"type": "array",
|
|
8801
8802
|
"minItems": 1,
|
|
8802
8803
|
"items": {
|
|
@@ -53,7 +53,7 @@ The wizard tells you which relay operation to use via `next.interaction.kind`. S
|
|
|
53
53
|
- `kind: "done"` → input collection finished; move to Step 5.
|
|
54
54
|
- `kind: "aborted"` → the user picked abort; the wizard is terminally cancelled. Tell the user on one short line that the run setup was aborted, delete the state file (`rm` with the literal path), and stop this skill — do NOT call `render-args` or `render-bundle` (the wizard rejects `render-args` on an aborted state).
|
|
55
55
|
|
|
56
|
-
When native
|
|
56
|
+
When native selection is available, the runtime keeps choices in that control or in same-screen question tabs when the complete selection fits. Otherwise, it returns a complete numbered list: show all labels and descriptions in one message and accept a number, label, or value (comma-separated for multiple choices). This applies to plan confirmation, stages, role counts, and provider/model lists. Do not paginate choices or add a next-page option. Follow the returned `interaction.kind`, including numbered interactions when the user generally prefers a selector. If the declared selector itself fails, follow the relay's `recovery` object. Genuine text steps still collect text.
|
|
57
57
|
|
|
58
58
|
Submit the answer shape required by `interaction.answerProtocol`; do not add normalization beyond the registered relay's explicit mapping. Invalid, out-of-range, or ambiguous answers return `ok: false` and must re-render the same complete interaction.
|
|
59
59
|
|
|
@@ -228,6 +228,8 @@ When `next.step == "confirm"`, the prompt's `label` already carries the full sel
|
|
|
228
228
|
|
|
229
229
|
`okstra wizard confirmation --state-file <path>` returns the same block as `{ok: true, text: ...}` for a text-only host or when the user asks to see the summary again; it is not a substitute for the label.
|
|
230
230
|
|
|
231
|
+
Keep the provider data-transfer disclosure in that label alongside the selected roles/models and task inputs. The user's actual `Proceed` response authorizes the displayed recipients and task-material scope; it does not grant host execution privileges. When dispatching, follow the host relay's guidance to carry that response and scope into the execution-permission request. A freshly generated `confirmationText` does not retroactively add disclosure to an older user response.
|
|
232
|
+
|
|
231
233
|
## Step 5: Render the task bundle
|
|
232
234
|
|
|
233
235
|
When `next.kind == "done"`, fetch the public wizard outcome:
|
|
@@ -261,6 +263,8 @@ Before you ask the user for any approval, clarification, or decision after worke
|
|
|
261
263
|
|
|
262
264
|
Build the `okstra render-bundle` invocation from `outcome.renderArgv`, passing every token verbatim and in order (including empty strings — they are intentional `use phase default` markers).
|
|
263
265
|
|
|
266
|
+
Before invoking it, follow the active host relay's execution-permission guidance. For Codex, read "Permission before bundle preparation" in the relay already selected at preflight: bundle preparation can write protected Git metadata while creating a branch and worktree, even with `--render-only`. Apply this guidance to the first invocation and each subsequent phase or stage preparation.
|
|
267
|
+
|
|
264
268
|
Analysis sidetracks therefore forward wizard-owned tokens such as `--analysis-target "<value>"` and `--evidence-inputs "<value>"` when they are present. These are examples of the verbatim token rule, not a separate hard-coded argument list.
|
|
265
269
|
|
|
266
270
|
Step 3's empty-answer and escaping rules apply verbatim: every flag in `renderArgv` whose following value is the empty string MUST still be passed explicitly (e.g. `--workers ""`, `--directive ""`) — `render-bundle` distinguishes "flag absent" from "flag present with empty value", and the wizard's intent is always the latter.
|
|
@@ -460,6 +464,10 @@ Do not read the wizard state file directly. `okstra wizard outcome` exposes any
|
|
|
460
464
|
- Each wizard run owns its own state file (one per `okstra wizard new-state-file`); two parallel skill invocations do not collide.
|
|
461
465
|
- The skill must NOT call `okstra.sh` (or any other bash entrypoint) that would re-implement the orchestration. The wizard + `render-bundle` is the single authority.
|
|
462
466
|
|
|
467
|
+
## Boundary updates
|
|
468
|
+
|
|
469
|
+
Follow the rendered launch prompt's "Progress, remaining work, and recommendation" guidance at each phase or implementation-stage boundary, at task completion, and before a controlled session pause or handoff. Include results, remaining work, and the recommended action with its reason. During an authorized continuous run, report the boundary and continue the queue; when the lead returns, relay its closeout without repeating an already delivered update.
|
|
470
|
+
|
|
463
471
|
## Failure Modes
|
|
464
472
|
|
|
465
473
|
| Symptom | Cause | Fix |
|