okstra 0.157.0 → 0.157.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.
@@ -236,7 +236,7 @@ Enter code mode only when the user explicitly requests it, such as "including th
236
236
 
237
237
  ## Output rules
238
238
 
239
- - Answer concisely in Korean.
239
+ - Answer in Korean, spelling out task ids, phase names, and status values on first mention.
240
240
  - Prefer project-relative paths.
241
241
  - Show disk field values as-is without normalizing.
242
242
  - Clearly indicate an awaiting-approval state.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "okstra",
3
- "version": "0.157.0",
3
+ "version": "0.157.1",
4
4
  "description": "Host-aware multi-provider cross-verification orchestrator runtime and agent skills.",
5
5
  "license": "MIT",
6
6
  "author": "devonshin",
@@ -1,5 +1,5 @@
1
1
  {
2
- "package": "0.157.0",
3
- "builtAt": "2026-08-07T06:39:25.315Z",
2
+ "package": "0.157.1",
3
+ "builtAt": "2026-08-07T07:18:35.043Z",
4
4
  "repoRoot": "/home/runner/work/okstra/okstra"
5
5
  }
@@ -53,7 +53,12 @@ def _dispatch_effort(execution: str, role: str) -> str:
53
53
 
54
54
  @lru_cache(maxsize=1)
55
55
  def agy_models(agy_bin: str = "agy") -> tuple[str, ...]:
56
- """Live `agy models` list, or () when agy is unavailable (non-blocking)."""
56
+ """Live `agy models` ids, or () when agy is unavailable (non-blocking).
57
+
58
+ agy prints one model per line as `<id>\\t<display label>`; only the id is
59
+ comparable to a catalog execution value, so the label column is dropped.
60
+ A line with no tab is already bare and passes through unchanged.
61
+ """
57
62
  try:
58
63
  proc = subprocess.run(
59
64
  [agy_bin, "models"],
@@ -63,7 +68,8 @@ def agy_models(agy_bin: str = "agy") -> tuple[str, ...]:
63
68
  return ()
64
69
  if proc.returncode != 0:
65
70
  return ()
66
- return tuple(line.strip() for line in proc.stdout.splitlines() if line.strip())
71
+ ids = (line.split("\t", 1)[0].strip() for line in proc.stdout.splitlines())
72
+ return tuple(model_id for model_id in ids if model_id)
67
73
 
68
74
 
69
75
  def _codex_config_path() -> Path:
@@ -79,7 +79,8 @@ When a facet needs a task but the user did not name one:
79
79
 
80
80
  ## Output Rules (shared)
81
81
 
82
- - Responses should be concise and written in Korean unless the user requests otherwise.
82
+ - Write responses in Korean unless the user requests otherwise. Spell out task ids, phase names, and
83
+ status values the first time each appears — the reader has not seen the report you are summarizing.
83
84
  - Use project-relative paths whenever possible.
84
85
  - If there is no recent report, display `--`.
85
86
  - If a specific task does not exist, explicitly state that it cannot be found based on `task-catalog.json`.