oc_chat
Loading...
Searching...
No Matches
react_loop.py File Reference

Go to the source code of this file.

Classes

class  oc_chat.core.react_loop._TurnAccumulator

Namespaces

namespace  oc_chat
namespace  oc_chat.core
namespace  oc_chat.core.react_loop

Functions

str oc_chat.core.react_loop._extract_last_user_task (list[dict] messages)
bool oc_chat.core.react_loop._detect_response_repetition (list[dict] messages)
str oc_chat.core.react_loop._now_iso ()
datetime oc_chat.core.react_loop._now_utc ()
dict oc_chat.core.react_loop._safe_tool_args (dict tc)
list[str] oc_chat.core.react_loop._publish_pre_dispatch_decisions (list[dict] tool_calls, int allowed, Callable[[], dict] ev, set[int]|None stall_denied=None)
_T oc_chat.core.react_loop._run_bracketed (presenter, str label, "Callable[[], _T]" fn)
tuple[dict, dict] oc_chat.core.react_loop._dispatch_tool (dict tc, dict tool_registry)
bool oc_chat.core.react_loop._stdin_is_interactive ()
str oc_chat.core.react_loop._budget_text ("int | None" seconds)
dict oc_chat.core.react_loop._run_confirmed_tier2 (dict tc, dict tool_registry, presenter, str command, str program, "int | None" budget)
dict oc_chat.core.react_loop._resolve_tier2_confirmation (dict tc, dict result, dict tool_registry, presenter)
dict oc_chat.core.react_loop._resolve_external_content_confirmation (dict tc, dict result, dict tool_registry, presenter)
dict oc_chat.core.react_loop._resolve_protected_write_confirmation (dict tc, dict result, dict tool_registry, presenter)
str oc_chat.core.react_loop._provider_name (client)
Optional[str] oc_chat.core.react_loop._tool_error_summary (object err, object rc)
None oc_chat.core.react_loop._publish_provider_budget (dict env, str provider, str model, *, int cache_hit_tokens, int cache_miss_tokens, int prompt_tokens, int completion_tokens, datetime at, session=None)
 oc_chat.core.react_loop._mini_report (session, "_TurnAccumulator" acc, float turn_t0)
 oc_chat.core.react_loop._cost_gate (session, presenter, "_TurnAccumulator" acc, float turn_t0)
None oc_chat.core.react_loop._end_turn_on_cost (session, presenter, str reason, ev)
"tuple[list[str], dict[str, str]]" oc_chat.core.react_loop._prompt_layer_digests (list api_messages, tools)
str oc_chat.core.react_loop._prompt_version_for (list layer_ids, dict layer_hashes)
None oc_chat.core.react_loop._fold_sub_loop_usage (session, acc, turn_stats, client, sub_result, str sub_model="", *, datetime at)
None oc_chat.core.react_loop._warn_unknown_usage_fields (session, presenter, provider_name, model, unknown_raw)
str oc_chat.core.react_loop._schema_tool_name (dict schema)
"tuple[dict, list]" oc_chat.core.react_loop._filter_readonly_tools (dict tool_registry, list tool_schemas, "tuple[str, ...]" mutating)
"tuple[dict, list]" oc_chat.core.react_loop._subloop_positive_allowlist (dict tool_registry, list tool_schemas)
None oc_chat.core.react_loop._maybe_run_verification ("ChatSession" session, "_TurnAccumulator" acc, "VerificationConfig" vcfg, "Presenter" presenter, object|None baseline)
None oc_chat.core.react_loop.run_turn ("ChatSession" session, "ClientInterface" client, "Presenter" presenter, "ModelManager" model_manager, dict tool_registry, list tool_schemas, "Context | None" ctx=None, "TurnStats | None" turn_stats=None, "EnhancedPresenter | None" enhanced_presenter=None, "CancellationToken | None" cancellation=None)

Variables

int oc_chat.core.react_loop._MAX_SUB_LOOPS_PER_TURN = 5
tuple oc_chat.core.react_loop.REASONING_ONLY_CONTENT
tuple oc_chat.core.react_loop.REASONING_ONLY_NOTICE
str oc_chat.core.react_loop.CAUSE_LENGTH = ", having hit its {cap}-token output cap"
str oc_chat.core.react_loop.CAUSE_UNKNOWN = " (the provider reported no finish reason)"
tuple oc_chat.core.react_loop.TRUNCATED_ANSWER_NOTICE
tuple oc_chat.core.react_loop.TRUNCATED_TOOL_CALL_NOTICE
 oc_chat.core.react_loop._T = TypeVar("_T")
frozenset oc_chat.core.react_loop._SUBLOOP_ALLOWED_TOOLS