(profile: Dict[str, Any])
| 152 | |
| 153 | def _ensure_anchor_state(profile: Dict[str, Any]) -> Dict[str, Any]: |
| 154 | drift_state = copy.deepcopy(profile.get("drift_state", {}) or {}) |
| 155 | drift_state.setdefault("status", "stable") |
| 156 | drift_state.setdefault("score", 0.0) |
| 157 | drift_state.setdefault("last_drift_date", None) |
| 158 | drift_state.setdefault("drift_enabled", None) |
| 159 | drift_state.setdefault("hidden_anchor", None) |
| 160 | drift_state.setdefault("hidden_anchor_source", None) |
| 161 | drift_state.setdefault("intent_score", 0.0) |
| 162 | drift_state.setdefault("anchor_topic", None) |
| 163 | drift_state.setdefault("anchor_topics", []) |
| 164 | drift_state.setdefault("anchor_source", None) |
| 165 | drift_state.setdefault("anchor_confidence", 0.0) |
| 166 | drift_state.setdefault("anchor_progress", 0.0) |
| 167 | drift_state.setdefault("anchor_set_date", None) |
| 168 | drift_state.setdefault("commitment_days_remaining", 0) |
| 169 | drift_state.setdefault("signal_window", []) |
| 170 | drift_state.setdefault("top_shift_topics", []) |
| 171 | drift_state.setdefault("episode_index", 0) |
| 172 | drift_state.setdefault("trigger_source", None) |
| 173 | drift_state.setdefault("trigger_checkfile", None) |
| 174 | drift_state.setdefault("trigger_date", None) |
| 175 | drift_state.setdefault("suppressed_topics", []) |
| 176 | drift_state.setdefault("strategy_mode", STRATEGY_SIMULATION) |
| 177 | drift_state.setdefault("completed_drift_cycles", 0) |
| 178 | drift_state.setdefault("max_drift_cycles", None) |
| 179 | drift_state.setdefault("drift_opportunity_count", 0) |
| 180 | drift_state.setdefault("max_drift_opportunities", SIMULATION_MAX_DRIFT_OPPORTUNITIES) |
| 181 | drift_state.setdefault("last_observing_failure_episode", 0) |
| 182 | drift_state.setdefault("last_completed_drift_episode", 0) |
| 183 | drift_state.setdefault("observing_started_episode", None) |
| 184 | drift_state.setdefault("baseline_core_directions", {}) |
| 185 | drift_state.setdefault("recovery_mode", None) |
| 186 | drift_state.setdefault("decayed_topics", []) |
| 187 | drift_state.setdefault("topic_staleness", {}) |
| 188 | return drift_state |
| 189 | |
| 190 | |
| 191 | def _strategy_settings(strategy_mode: str) -> Dict[str, Any]: |
| 192 | mode = str(strategy_mode or STRATEGY_SIMULATION).strip() or STRATEGY_SIMULATION |
no test coverage detected