mirror of https://github.com/aliasrobotics/cai.git
61 lines
1.8 KiB
Python
61 lines
1.8 KiB
Python
"""Assistant content extraction and local expansion when the API planner fails."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from cai.continuous_ops.model_parse import (
|
|
_apply_local_mission_expansion_if_needed,
|
|
_completion_choice_assistant_text,
|
|
_fallback_plan,
|
|
_mission_is_short_or_vague,
|
|
MissionPlan,
|
|
)
|
|
|
|
|
|
def test_completion_extracts_multimodal_content_list() -> None:
|
|
body = {
|
|
"choices": [
|
|
{
|
|
"message": {
|
|
"content": [
|
|
{"type": "text", "text": '{"tasks": ["a"], "tasks_markdown": "- a", "tick_seconds": null}'},
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
s = _completion_choice_assistant_text(body)
|
|
assert "tasks" in s
|
|
|
|
|
|
def test_completion_legacy_text_field() -> None:
|
|
body = {"choices": [{"text": '{"tasks": ["x"]}', "message": {}}]}
|
|
s = _completion_choice_assistant_text(body)
|
|
assert "tasks" in s
|
|
|
|
|
|
def test_mission_vague_one_liner() -> None:
|
|
assert _mission_is_short_or_vague("Monitoriza el host") is True
|
|
assert _mission_is_short_or_vague("- a\n- b\n- c\n- d") is False
|
|
|
|
|
|
def test_fallback_plan_expands_vague_mission() -> None:
|
|
plan = _fallback_plan("Monitoriza el host", origin="fallback_exception")
|
|
assert plan.structured_tasks is not None
|
|
assert len(plan.structured_tasks or ()) >= 4
|
|
assert "Monitoriza" in plan.refined_tick_prompt or "host" in plan.tasks_markdown.lower()
|
|
|
|
|
|
def test_planner_api_not_expanded() -> None:
|
|
p = MissionPlan(
|
|
tasks_markdown="- only",
|
|
tick_seconds=30,
|
|
use_tmux=None,
|
|
auth_required=None,
|
|
estimated_tokens_per_iteration=1000,
|
|
refined_tick_prompt="x",
|
|
tier="pro",
|
|
structured_tasks=("a",),
|
|
planner_origin="planner_api",
|
|
)
|
|
assert _apply_local_mission_expansion_if_needed(p, "short") is p
|