MCPcopy Create free account
hub / github.com/ScriptedAlchemy/tracedecay / codex_goal_context_from_text

Function codex_goal_context_from_text

src/sessions/codex.rs:645–672  ·  view source on GitHub ↗
(text: &str)

Source from the content-addressed store, hash-verified

643}
644
645fn codex_goal_context_from_text(text: &str) -> Option<CodexGoalContext> {
646 const START: &str = "<codex_internal_context source=\"goal\">";
647 const END: &str = "</codex_internal_context>";
648 let start = text.find(START)?;
649 if !text[..start].trim().is_empty() {
650 return None;
651 }
652 let after_start = &text[start + START.len()..];
653 let end = after_start.find(END)?;
654 if !after_start[end + END.len()..].trim().is_empty() {
655 return None;
656 }
657 let body = &after_start[..end];
658 let objective = tag_body(body, "objective")?.trim();
659 if objective.is_empty() {
660 return None;
661 }
662 let token_budget_line = budget_line_value(body, "Token budget:");
663 let tokens_remaining_line = budget_line_value(body, "Tokens remaining:");
664 Some(CodexGoalContext {
665 objective: objective.to_string(),
666 tokens_used: budget_line_value(body, "Tokens used:").and_then(parse_budget_count),
667 token_budget: token_budget_line.and_then(parse_budget_count),
668 token_budget_unbounded: token_budget_line.is_some_and(is_unbounded_budget_value),
669 tokens_remaining: tokens_remaining_line.and_then(parse_budget_count),
670 tokens_remaining_unbounded: tokens_remaining_line.is_some_and(is_unbounded_budget_value),
671 })
672}
673
674fn tag_body<'a>(text: &'a str, tag: &str) -> Option<&'a str> {
675 let start_tag = format!("<{tag}>");

Callers 2

message_from_lineFunction · 0.85

Calls 3

tag_bodyFunction · 0.85
budget_line_valueFunction · 0.85
is_emptyMethod · 0.45

Tested by

no test coverage detected