Skip to content

feat: event-driven eval, multi-model composition, state machine (REQ-ARCH-036/037/039)#2

Merged
tbitcs merged 1 commit into
mainfrom
orchestrator/engine-ext
Jun 2, 2026
Merged

feat: event-driven eval, multi-model composition, state machine (REQ-ARCH-036/037/039)#2
tbitcs merged 1 commit into
mainfrom
orchestrator/engine-ext

Conversation

@tbitcs

@tbitcs tbitcs commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Event-driven evaluation, multi-model composition, and state machine support

REQ-ARCH-036: Event-driven evaluation

  • New arbiter_event.h / arbiter_event.c -- watch/notify bitmask API
  • Static bitmask implementation (uint32_t for <=32 facts, byte array for larger)
  • CONFIG_ARBITER_EVENT_DRIVEN Kconfig option

REQ-ARCH-037: Multi-model composition

  • New arbiter_compose.h / arbiter_compose.c -- shared fact bus
  • Static array of attached contexts (CONFIG_ARBITER_MAX_MODELS, default 4)
  • Sync and eval_all APIs for coordinated multi-model evaluation
  • CONFIG_ARBITER_COMPOSE Kconfig option

REQ-ARCH-039: State machine support

  • New arbiter_state.h / arbiter_state.c -- priority-based transition evaluation
  • Guard conditions, on_enter/on_exit actions
  • Schema updated: states array with nested transitions
  • Compiler updated: _flatten_states() / _flatten_transitions() in canonical.py
  • Emitter updated: state/transition table generation in emit_c.py
  • CONFIG_ARBITER_STATE_MACHINE Kconfig option

Testing

All 63 existing Python tests pass with no regressions.

Conversation: https://app.warp.dev/conversation/50231a26-f141-4a10-b259-3c6e6ce7aad9
Run: https://oz.warp.dev/runs/019e88b0-c5eb-797d-a667-37b36969ea66

This PR was generated with Oz.

REQ-ARCH-036: Event-driven evaluation (arbiter_event.h/c)
- Watch/notify bitmask API for triggering eval on fact changes
- Static bitmask implementation (uint32_t for <=32 facts, byte array for larger)
- CONFIG_ARBITER_EVENT_DRIVEN Kconfig option

REQ-ARCH-037: Multi-model composition (arbiter_compose.h/c)
- Shared fact bus with bus-to-model mappings
- Static array of attached contexts (CONFIG_ARBITER_MAX_MODELS)
- Sync and eval_all APIs
- CONFIG_ARBITER_COMPOSE Kconfig option

REQ-ARCH-039: State machine support (arbiter_state.h/c)
- State/transition definitions with priority-based evaluation
- Guard conditions, on_enter/on_exit actions
- Schema: states array with nested transitions
- Compiler: _flatten_states/_flatten_transitions in canonical.py
- Emitter: state/transition table generation in emit_c.py
- CONFIG_ARBITER_STATE_MACHINE Kconfig option

All 63 existing Python tests pass with no regressions.

Co-Authored-By: Oz <oz-agent@warp.dev>
@tbitcs tbitcs merged commit 34fae5d into main Jun 2, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant