okstra 0.60.0 → 0.60.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/package.json
CHANGED
package/runtime/BUILD.json
CHANGED
|
@@ -1457,11 +1457,14 @@ def _pick_snippet(value: str, style: str) -> str:
|
|
|
1457
1457
|
def _build_optional_cached_pick(state: WizardState, spec: _OptionalCachedPickSpec) -> Prompt:
|
|
1458
1458
|
suggestion = spec.suggest(state)
|
|
1459
1459
|
t = _p(state.workspace_root, spec.prompt_key)
|
|
1460
|
-
|
|
1460
|
+
# 추천(이전 directive·siblings·최근 리포트·프로젝트 기본)을 가장 먼저 노출하고,
|
|
1461
|
+
# '건너뛰기'는 중간, '직접 입력'은 항상 마지막에 둔다 (run-prompt 추천 규칙).
|
|
1462
|
+
options: list[Option] = []
|
|
1461
1463
|
if suggestion:
|
|
1462
1464
|
snippet = _pick_snippet(suggestion, spec.snippet_style)
|
|
1463
1465
|
options.append(_opt(spec.recommend_token, t["labels"][spec.label_key].format(snippet=snippet)))
|
|
1464
1466
|
setattr(state, spec.cache_attr, suggestion)
|
|
1467
|
+
options.append(_opt(PICK_SKIP, t["options"][PICK_SKIP]))
|
|
1465
1468
|
options.append(_opt(PICK_TYPE_CUSTOM, t["options"][PICK_TYPE_CUSTOM]))
|
|
1466
1469
|
return Prompt(
|
|
1467
1470
|
step=spec.step, kind="pick",
|
|
@@ -1625,9 +1628,13 @@ def _critic_provider_label(provider: str, t: dict) -> str:
|
|
|
1625
1628
|
def _build_critic_pick(state: WizardState) -> Prompt:
|
|
1626
1629
|
t = _p(state.workspace_root, "critic_pick")
|
|
1627
1630
|
off_label = t["options"].get("off", "off")
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
+
# 추천(claude critic)을 가장 먼저, 'off'(critic 미사용)를 마지막에 둔다
|
|
1632
|
+
# (run-prompt 추천 규칙: 추천이 항상 첫 옵션).
|
|
1633
|
+
options = [
|
|
1634
|
+
_opt(provider, _critic_provider_label(provider, t))
|
|
1635
|
+
for provider in _critic_provider_choices()
|
|
1636
|
+
]
|
|
1637
|
+
options.append(_opt("off", off_label))
|
|
1631
1638
|
return Prompt(
|
|
1632
1639
|
step=S_CRITIC_PICK, kind="pick",
|
|
1633
1640
|
label=t["label"],
|
|
@@ -2212,14 +2219,16 @@ STEPS: list[Step] = [
|
|
|
2212
2219
|
and S_REPORT_WRITER_MODEL not in s.answered),
|
|
2213
2220
|
build=_build_report_writer_model, submit=_submit_report_writer_model,
|
|
2214
2221
|
owns=("report_writer_model",)),
|
|
2222
|
+
# directive(이번 run 의 추가 지시)는 기본값/커스터마이즈와 무관하게 항상
|
|
2223
|
+
# 묻는다 — 매 run 마다 줄 수 있는 입력이므로 'Use defaults' 분기 뒤에 숨기지
|
|
2224
|
+
# 않는다. (use_defaults is not None: defaults_or_custom 답 이후에만 등장)
|
|
2215
2225
|
Step(S_DIRECTIVE_PICK,
|
|
2216
|
-
applies=lambda s: (s.
|
|
2217
|
-
and
|
|
2226
|
+
applies=lambda s: (S_DIRECTIVE_PICK not in s.answered
|
|
2227
|
+
and s.use_defaults is not None),
|
|
2218
2228
|
build=_build_directive_pick, submit=_submit_directive_pick,
|
|
2219
2229
|
owns=("directive", "directive_pending_text")),
|
|
2220
2230
|
Step(S_DIRECTIVE,
|
|
2221
|
-
applies=lambda s: (s.
|
|
2222
|
-
and s.directive_pending_text
|
|
2231
|
+
applies=lambda s: (s.directive_pending_text
|
|
2223
2232
|
and S_DIRECTIVE not in s.answered),
|
|
2224
2233
|
build=_build_directive, submit=_submit_directive,
|
|
2225
2234
|
owns=("directive", "directive_pending_text")),
|
|
@@ -2516,6 +2525,7 @@ def confirmation_block(state: WizardState) -> str:
|
|
|
2516
2525
|
lines: list[str] = [header]
|
|
2517
2526
|
lines.append(f" task-type : {state.task_type}")
|
|
2518
2527
|
lines.append(f" task-key : {state.task_group}/{state.task_id}")
|
|
2528
|
+
lines.append(f" brief : {state.brief_path or '(none)'}")
|
|
2519
2529
|
if state.reuse_worktree:
|
|
2520
2530
|
lines.append(" base-ref : (reusing existing worktree)")
|
|
2521
2531
|
else:
|
|
@@ -2538,6 +2548,8 @@ def confirmation_block(state: WizardState) -> str:
|
|
|
2538
2548
|
if state.report_writer_model:
|
|
2539
2549
|
lines.append(f" report-writer : {state.report_writer_model}")
|
|
2540
2550
|
lines.append(f" directive : {state.directive or '(none)'}")
|
|
2551
|
+
if state.related_tasks_raw:
|
|
2552
|
+
lines.append(f" related-tasks : {state.related_tasks_raw}")
|
|
2541
2553
|
if state.task_type in ("requirements-discovery", "error-analysis", "implementation-planning", "final-verification"):
|
|
2542
2554
|
lines.append(f" critic : {state.critic or '(off)'}")
|
|
2543
2555
|
if state.task_type in _STAGE_SCOPED_TASK_TYPES:
|