okstra 0.110.0 → 0.111.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.kr.md +1 -0
- package/README.md +1 -0
- package/docs/for-ai/skills/okstra-run.md +7 -5
- package/docs/kr/architecture.md +9 -10
- package/docs/kr/cli.md +2 -2
- package/docs/project-structure-overview.md +9 -9
- package/docs/task-process/README.md +4 -4
- package/docs/task-process/common-flow.md +8 -5
- package/docs/task-process/implementation.md +4 -5
- package/docs/task-process/release-handoff.md +3 -3
- package/package.json +1 -1
- package/runtime/BUILD.json +2 -2
- package/runtime/agents/workers/antigravity-worker.md +1 -0
- package/runtime/agents/workers/codex-worker.md +1 -0
- package/runtime/prompts/lead/convergence.md +7 -7
- package/runtime/prompts/profiles/_common-contract.md +1 -1
- package/runtime/prompts/profiles/_implementation-diff-review.md +43 -0
- package/runtime/prompts/profiles/_implementation-executor.md +7 -9
- package/runtime/prompts/profiles/_implementation-self-check.md +11 -5
- package/runtime/python/okstra_ctl/codex_dispatch.py +3 -0
- package/runtime/python/okstra_ctl/consumers.py +4 -0
- package/runtime/python/okstra_ctl/handoff.py +5 -23
- package/runtime/python/okstra_ctl/implementation_stage.py +11 -11
- package/runtime/python/okstra_ctl/report_views.py +76 -26
- package/runtime/python/okstra_ctl/stage_targets.py +152 -0
- package/runtime/python/okstra_ctl/wizard.py +47 -0
- package/runtime/python/okstra_project/__init__.py +2 -0
- package/runtime/python/okstra_project/state.py +44 -2
- package/runtime/skills/okstra-run/SKILL.md +21 -17
- package/src/commands/execute/wizard.mjs +3 -1
- package/src/commands/inspect/task-show.mjs +11 -31
|
@@ -16,6 +16,7 @@ Subcommands:
|
|
|
16
16
|
step submit an answer (or fetch the current prompt) and emit next
|
|
17
17
|
render-args emit the final --flag/value map for 'okstra render-bundle'
|
|
18
18
|
confirmation emit the multi-line confirmation echo block
|
|
19
|
+
outcome emit render args, persistence actions, and confirmation text
|
|
19
20
|
|
|
20
21
|
Usage:
|
|
21
22
|
okstra wizard new-state-file
|
|
@@ -23,6 +24,7 @@ Usage:
|
|
|
23
24
|
okstra wizard step --state-file <path> [--answer <value>]
|
|
24
25
|
okstra wizard render-args --state-file <path>
|
|
25
26
|
okstra wizard confirmation --state-file <path>
|
|
27
|
+
okstra wizard outcome --state-file <path>
|
|
26
28
|
|
|
27
29
|
'init' auto-fills --workspace-root from 'okstra paths --field workspace',
|
|
28
30
|
so callers do not pass it.
|
|
@@ -65,7 +67,7 @@ export async function run(args) {
|
|
|
65
67
|
}
|
|
66
68
|
|
|
67
69
|
const [sub, ...rest] = args;
|
|
68
|
-
if (!["new-state-file", "init", "step", "render-args", "confirmation"].includes(sub)) {
|
|
70
|
+
if (!["new-state-file", "init", "step", "render-args", "confirmation", "outcome"].includes(sub)) {
|
|
69
71
|
process.stderr.write(`error: unknown wizard subcommand '${sub}'\n\n${USAGE}`);
|
|
70
72
|
return 2;
|
|
71
73
|
}
|
|
@@ -40,8 +40,8 @@ const SCRIPT = `
|
|
|
40
40
|
import json, sys
|
|
41
41
|
from pathlib import Path
|
|
42
42
|
from okstra_project import (
|
|
43
|
-
resolve_project_root,
|
|
44
|
-
ResolverError,
|
|
43
|
+
resolve_project_root, task_read_side_snapshot,
|
|
44
|
+
ResolverError, StateError,
|
|
45
45
|
)
|
|
46
46
|
|
|
47
47
|
explicit = sys.argv[1]
|
|
@@ -55,37 +55,17 @@ except ResolverError as e:
|
|
|
55
55
|
sys.exit(2)
|
|
56
56
|
|
|
57
57
|
pr_path = Path(pr)
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
58
|
+
try:
|
|
59
|
+
snapshot = task_read_side_snapshot(pr_path, task_key)
|
|
60
|
+
except StateError as e:
|
|
61
|
+
print(json.dumps({
|
|
62
|
+
"ok": False,
|
|
63
|
+
"stage": getattr(e, "stage", None) or "task_snapshot",
|
|
64
|
+
"reason": str(e),
|
|
65
|
+
}))
|
|
66
66
|
sys.exit(1)
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
out = {
|
|
70
|
-
"ok": True,
|
|
71
|
-
"projectRoot": str(pr_path),
|
|
72
|
-
"taskKey": manifest.get("taskKey"),
|
|
73
|
-
"taskType": manifest.get("taskType"),
|
|
74
|
-
"taskRoot": str(task_root),
|
|
75
|
-
"taskBriefPath": manifest.get("taskBriefPath"),
|
|
76
|
-
"workflow": {
|
|
77
|
-
"currentPhase": wf.get("currentPhase"),
|
|
78
|
-
"currentPhaseState": wf.get("currentPhaseState"),
|
|
79
|
-
"lastCompletedPhase": wf.get("lastCompletedPhase"),
|
|
80
|
-
"nextRecommendedPhase": wf.get("nextRecommendedPhase"),
|
|
81
|
-
"routingStatus": wf.get("routingStatus"),
|
|
82
|
-
"phaseStates": wf.get("phaseStates"),
|
|
83
|
-
},
|
|
84
|
-
"resultContract": manifest.get("resultContract"),
|
|
85
|
-
"artifacts": manifest.get("artifacts"),
|
|
86
|
-
"modelAssignments": manifest.get("modelAssignments"),
|
|
87
|
-
"latestRunPath": manifest.get("latestRunPath"),
|
|
88
|
-
}
|
|
68
|
+
out = {"ok": True, **snapshot}
|
|
89
69
|
print(json.dumps(out, ensure_ascii=False, default=str, indent=2))
|
|
90
70
|
`;
|
|
91
71
|
|