@@ -149,6 +149,35 @@ int ARBITER_get_requested_actions(const struct ARBITER_result *result,
149149 */
150150uint32_t ARBITER_get_last_eval_op_count (const struct ARBITER_ctx * ctx );
151151
152+ /**
153+ * @brief Check whether a model meets a minimum version requirement.
154+ *
155+ * @param model Compiled model to check.
156+ * @param min_major Minimum required major version.
157+ * @param min_minor Minimum required minor version.
158+ * @return ARBITER_OK if the model meets the requirement,
159+ * ARBITER_EMODEL if it does not,
160+ * ARBITER_EINVAL if model is NULL.
161+ */
162+ int ARBITER_check_version (const struct ARBITER_model * model ,
163+ uint8_t min_major , uint8_t min_minor );
164+
165+ #if defined(CONFIG_ARBITER_HOT_SWAP ) && CONFIG_ARBITER_HOT_SWAP
166+ /**
167+ * @brief Hot-swap a running context to a new model.
168+ *
169+ * Validates the new model, preserves current fact values where the fact
170+ * index and type match, and atomically swaps the model pointer.
171+ *
172+ * @param ctx Initialized context.
173+ * @param new_model New compiled model.
174+ * @return ARBITER_OK on success, ARBITER_EINVAL on bad pointers,
175+ * ARBITER_EMODEL if the new model fails validation.
176+ */
177+ int ARBITER_hot_swap (struct ARBITER_ctx * ctx ,
178+ const struct ARBITER_model * new_model );
179+ #endif /* CONFIG_ARBITER_HOT_SWAP */
180+
152181/**
153182 * @brief Get the arbiter version string.
154183 */
0 commit comments