Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
133 commits
Select commit Hold shift + click to select a range
87303a0
docs: harden explicit-modeling compliance rules
gabewillen Mar 3, 2026
47580a3
gbnf lexer: model token flow with explicit guards
gabewillen Mar 3, 2026
0213a91
chore: refresh quality gate timing snapshot
gabewillen Mar 3, 2026
cc1dfa5
refactor(kernel/x86_64): model unary simd flow explicitly
gabewillen Mar 3, 2026
b734b30
refactor(kernel/aarch64): model unary simd flow explicitly
gabewillen Mar 3, 2026
87cc293
refactor(gbnf/rule_parser): remove loop-based control flow from actions
gabewillen Mar 3, 2026
a336eae
refactor(token/batcher): remove loop-branch shortcut in continuity probe
gabewillen Mar 3, 2026
400cb67
refactor(docs): replace loop-branch emulation in type-name helpers
gabewillen Mar 3, 2026
5339b77
refactor(text/encoders/fallback): remove loop-branch shortcuts in detail
gabewillen Mar 3, 2026
5338dee
refactor(text/encoders/rwkv): remove loop-branch shortcuts in detail
gabewillen Mar 3, 2026
5478be4
refactor(text/encoders/wpm): remove loop-branch shortcuts in detail
gabewillen Mar 3, 2026
cdeea0f
refactor(text/encoders): remove loop-branch shortcuts in shared detail
gabewillen Mar 3, 2026
5cee895
refactor(batch/planner/modes): remove loop-branch shortcuts in detail
gabewillen Mar 3, 2026
673624a
refactor(gbnf/rule_parser): remove loop-branch shortcuts in detail
gabewillen Mar 3, 2026
01e5138
refactor(text/encoders/bpe): remove loop-branch shortcuts in detail
gabewillen Mar 3, 2026
ae136e0
refactor(text/encoders/spm): remove loop-branch shortcuts in detail
gabewillen Mar 3, 2026
955f461
refactor(text/encoders/plamo2): remove loop-branch shortcuts in detail
gabewillen Mar 3, 2026
b85cd82
refactor(text/encoders/ugm): remove loop-branch shortcuts in detail
gabewillen Mar 3, 2026
2b7c935
refactor(kernel): remove loop-branch shortcuts in detail
gabewillen Mar 3, 2026
6a68d24
refactor(text/jinja/lexer): remove loop-branch shortcuts
gabewillen Mar 3, 2026
fe736d5
refactor(text/tokenizer/preprocessor): remove loop-branch shortcuts
gabewillen Mar 4, 2026
b46518a
refactor(text/jinja/lexer): split scan into explicit phases
gabewillen Mar 4, 2026
1509bb0
refactor(text/tokenizer/preprocessor): phase dispatch for partition a…
gabewillen Mar 4, 2026
3fb1ecd
refactor(text/jinja/lexer): extract trim and unary scan phases
gabewillen Mar 4, 2026
f09ce7b
refactor(text/jinja/lexer): extract mapping scan phase
gabewillen Mar 4, 2026
0dd9b6f
refactor(text/encoders/spm): bound merge passes explicitly
gabewillen Mar 4, 2026
abaa3bd
refactor(text/encoders/bpe): bound merge passes explicitly
gabewillen Mar 4, 2026
6371343
refactor(text/encoders/fallback): bound encode loop steps
gabewillen Mar 4, 2026
59564ec
refactor(text/encoders): bound byte encode loop steps
gabewillen Mar 4, 2026
eb93874
refactor(text/encoders): gate table-build token scan
gabewillen Mar 4, 2026
439036a
refactor(text/encoders): gate token-map probe steps
gabewillen Mar 4, 2026
c271b2e
refactor(text/encoders): gate merge-map probe steps
gabewillen Mar 4, 2026
d0c284a
refactor(text/encoders): gate token lookup probe steps
gabewillen Mar 4, 2026
0520180
refactor(text/encoders): gate concat token lookup probes
gabewillen Mar 4, 2026
ce2863b
refactor(text/encoders): gate merge-rank lookup probes
gabewillen Mar 4, 2026
54e6e39
refactor(text/encoders/plamo2): gate byte emission loop
gabewillen Mar 4, 2026
1932b24
refactor(text/encoders/rwkv): gate table rebuild token scan
gabewillen Mar 4, 2026
ef11545
refactor(text/encoders/rwkv): gate unescaped token scan
gabewillen Mar 4, 2026
3bd1ca4
refactor(text/encoders/wpm): gate longest-piece scan loops
gabewillen Mar 4, 2026
c7bc76e
refactor(kernel): gate tensor offset dimension scan
gabewillen Mar 4, 2026
7be0089
refactor(text/encoders/bpe): gate symbol and byte emission scans
gabewillen Mar 4, 2026
bd03ca7
refactor(gbnf/rule_parser): gate symbol-table probe scans
gabewillen Mar 4, 2026
b102b74
refactor(text/encoders/spm): gate symbol byte emission scan
gabewillen Mar 4, 2026
d675e2f
refactor(text/encoders/ugm): gate token emission replay loop
gabewillen Mar 4, 2026
a51a7b7
refactor(token/batcher): gate mask seq-id iteration
gabewillen Mar 4, 2026
25b2871
refactor(token/batcher): gate primary-id range scan
gabewillen Mar 4, 2026
448b060
refactor(token/batcher): gate mask row non-empty scan
gabewillen Mar 4, 2026
f6f0e33
refactor(token/batcher): gate primary-in-mask row scan
gabewillen Mar 4, 2026
32dfce2
refactor(token/batcher): gate single-output row scan
gabewillen Mar 4, 2026
19acd0f
refactor(token/batcher): gate continuity token scan
gabewillen Mar 4, 2026
231f5a0
refactor(token/batcher): gate continuity active-seq validation
gabewillen Mar 4, 2026
5c36bb8
refactor(token/batcher): gate seed resolution scan
gabewillen Mar 4, 2026
6a89fea
Refactor token batcher probe flow into explicit model phases
gabewillen Mar 4, 2026
85fbd96
Refactor detokenizer decode flow into explicit model phases
gabewillen Mar 4, 2026
6a9737c
refactor jinja lexer mapping dispatch explicitly
gabewillen Mar 4, 2026
0326c6b
wip: explicit-model compliance refactor progress
gabewillen Mar 4, 2026
2f0c235
refactor: continue explicit-model compliance rearchitecture
gabewillen Mar 4, 2026
be8c9c8
refactor(encoders/fallback): model explicit emit-result routing
gabewillen Mar 4, 2026
ba07c71
refactor(renderer): model explicit render post-dispatch phases
gabewillen Mar 4, 2026
eeca2fc
compliance: checkpoint explicit-modeling refactors
gabewillen Mar 4, 2026
b3fbdd5
preprocessor/bpe: model empty-input routing explicitly in sm
gabewillen Mar 4, 2026
3f3014a
encoders/spm: remove hidden detail orchestration wrapper
gabewillen Mar 4, 2026
e2898a2
preprocessor/spm: model specials and input-shape routing explicitly
gabewillen Mar 4, 2026
7e8c2ad
preprocessor/wpm: model specials and input-shape routing explicitly
gabewillen Mar 4, 2026
5f3396f
preprocessor/ugm: model specials and input-shape routing explicitly
gabewillen Mar 5, 2026
7184a6d
preprocessor/rwkv: model specials and input-shape routing explicitly
gabewillen Mar 5, 2026
e6cd1cd
preprocessor/plamo2: model specials and input-shape routing explicitly
gabewillen Mar 5, 2026
5e312a4
preprocessor/fallback: model specials and input-shape routing explicitly
gabewillen Mar 5, 2026
fbd4ca0
token/batcher: model request validation flow explicitly
gabewillen Mar 5, 2026
d3f4f96
token/batcher: model probe outcome routing explicitly
gabewillen Mar 5, 2026
7df3dda
text/encoders/bpe: model encode outcomes explicitly
gabewillen Mar 5, 2026
637e77d
text/encoders/wpm: model outcomes explicitly
gabewillen Mar 5, 2026
7c5b6a0
quality_gates: ignore gcov suspicious hits parse bug
gabewillen Mar 5, 2026
e8411fb
docs: add reopened non-compliance findings
gabewillen Mar 5, 2026
7870ce6
text/encoders/spm: model phase outcomes explicitly
gabewillen Mar 5, 2026
826e587
text/encoders/rwkv: model phase outcomes explicitly
gabewillen Mar 5, 2026
5e18d50
text/encoders/fallback: model phase outcomes explicitly
gabewillen Mar 5, 2026
eef6e2b
text/encoders/ugm: model phase outcomes explicitly
gabewillen Mar 5, 2026
813aba0
text/encoders/plamo2: model phase outcomes explicitly
gabewillen Mar 5, 2026
db39e2b
token/batcher: model phase outcomes explicitly
gabewillen Mar 5, 2026
3460b78
paritychecker: replace stale EMEL_* status constants
gabewillen Mar 5, 2026
483bb7c
preprocessor/bpe: model phase outcomes explicitly
gabewillen Mar 5, 2026
dc80ec0
preprocessor/spm: model phase outcomes explicitly
gabewillen Mar 5, 2026
8316a30
preprocessor/rwkv: model phase outcomes explicitly
gabewillen Mar 5, 2026
4db552a
preprocessor/ugm: model phase outcomes explicitly
gabewillen Mar 5, 2026
33e9a27
preprocessor/wpm: model phase outcomes explicitly
gabewillen Mar 5, 2026
479d917
preprocessor/fallback: model phase outcomes explicitly
gabewillen Mar 5, 2026
c5d896b
preprocessor/plamo2: model phase outcomes explicitly
gabewillen Mar 5, 2026
e51edef
renderer: model strip flow explicitly
gabewillen Mar 5, 2026
0779110
jinja/parser/lexer: model scan phases explicitly
gabewillen Mar 5, 2026
5271a16
gbnf parser: model literal and char-class consume phases
gabewillen Mar 5, 2026
d7cf66d
preprocessor: remove implicit control flow from shared detail kernels
gabewillen Mar 5, 2026
abf2c26
generator: replace generic phase guards with explicit error branches
gabewillen Mar 5, 2026
532e69a
model loader: replace generic phase routing with explicit error branches
gabewillen Mar 5, 2026
d5d943e
weight_loader: model bind/plan/apply error routing explicitly
gabewillen Mar 5, 2026
3fff73c
tokenizer: replace generic bind phase routing with explicit error guards
gabewillen Mar 5, 2026
62874a5
detokenizer: replace generic phase guards with explicit error routing
gabewillen Mar 5, 2026
61f8818
gguf loader: replace generic phase routing with explicit error branches
gabewillen Mar 5, 2026
b6e92f7
graph allocator: replace generic phase routing with explicit error gu…
gabewillen Mar 5, 2026
4204d8d
graph processor: replace generic phase routing with explicit error gu…
gabewillen Mar 5, 2026
4938210
graph: replace generic compute phase routing with explicit error guards
gabewillen Mar 5, 2026
17f0ab7
graph assembler: replace generic phase routing with explicit error gu…
gabewillen Mar 5, 2026
85a41e7
jinja program parser: model explicit parse error routing
gabewillen Mar 5, 2026
137cafe
jinja parser: replace generic phase routing with explicit error guards
gabewillen Mar 5, 2026
94ea746
jinja parser lexer: model explicit scan error routing
gabewillen Mar 5, 2026
b1118ad
rule_parser: replace phase routing with explicit parse error guards
gabewillen Mar 5, 2026
a559b05
jinja lexer: model string content intake explicitly
gabewillen Mar 5, 2026
e608d7d
jinja lexer: remove residual action ternary branching
gabewillen Mar 5, 2026
632773e
refactor(encoders): remove generic phase guard shims
gabewillen Mar 5, 2026
c7e1d7b
refactor(jinja): model classifier result error routing
gabewillen Mar 5, 2026
0990433
refactor(planner): model sequential progress-stall failure
gabewillen Mar 5, 2026
4fae0af
refactor(planner): make equal result-failure routing explicit
gabewillen Mar 5, 2026
c4612ad
refactor(planner): make simple result-failure routing explicit
gabewillen Mar 5, 2026
c232564
refactor(planner): model parent mode failure routing explicitly
gabewillen Mar 5, 2026
c0f1312
refactor(graph): make liveness pass prefailed routing explicit
gabewillen Mar 5, 2026
362aa91
refactor(graph): make ordering pass prefailed routing explicit
gabewillen Mar 5, 2026
5d29a51
refactor(graph): make placement pass prefailed routing explicit
gabewillen Mar 5, 2026
d3f1753
refactor(graph): make reuse decision prefailed routing explicit
gabewillen Mar 5, 2026
c2783c6
refactor(token): make batcher unknown error guard explicit
gabewillen Mar 5, 2026
07ee7c2
refactor(model): make loader unclassified error routing explicit
gabewillen Mar 5, 2026
9fffd7c
refactor(text): make bpe unclassified error routing explicit
gabewillen Mar 5, 2026
5a5c4c7
refactor(text): make wpm unclassified error routing explicit
gabewillen Mar 5, 2026
3e83380
refactor(text): make fallback unclassified error routing explicit
gabewillen Mar 5, 2026
80e9058
refactor(text): make rwkv unclassified error routing explicit
gabewillen Mar 5, 2026
b3b2098
refactor(text): make plamo2 unclassified error routing explicit
gabewillen Mar 5, 2026
aad3723
refactor(text): make ugm unclassified error routing explicit
gabewillen Mar 5, 2026
3edca13
refactor(text): make spm unclassified error routing explicit
gabewillen Mar 5, 2026
cbf1e37
refactor(memory): make recurrent branch-copy routing explicit
gabewillen Mar 5, 2026
32d1f45
refactor(token): make batcher mode fallback routing explicit
gabewillen Mar 5, 2026
292bf5f
refactor(text): make classifier parser fallback routing explicit
gabewillen Mar 5, 2026
e4a12a7
build(bench,fuzz): localize bench errors and fix apple fuzz linking
gabewillen Mar 5, 2026
20cf6a0
perf(batch,gbnf,jinja): reduce benchmark regressions
gabewillen Mar 5, 2026
fb29612
build(fuzz): restore macos fuzz smoke
gabewillen Mar 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,16 @@ NEVER put runtime branching statements (`if`, `else if`, `switch`, `?:`) in
actions or in functions called from actions.
ALWAYS model all runtime control flow as explicit guards or explicit choice
states/transitions.
NEVER emulate runtime branching with loop constructs in actions, detail helpers,
state machine member methods, or functions called from them.
NEVER use single-pass loop patterns such as
`for (bool cond = ...; cond; cond = false)` to choose control paths.
NEVER use branch-case loop patterns such as
`for (size_t emel_case_* = emel_branch_*; ...)` to choose control paths.
NEVER use runtime-indexed handler/candidate arrays (including function-pointer
tables) as a substitute for explicit guards/states/transitions.
ALWAYS use loops in actions/detail only for data-plane iteration with monotonic
progress and bounded work.
ONLY compile-time conditionals (`if constexpr`, `#if`) are allowed inside
actions, state machine member methods, or functions called from actions.
NEVER perform I/O waits, mutex waits, or sleeps inside guards/actions.
Expand Down
6 changes: 6 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,12 @@ if(EMEL_ENABLE_FUZZ)
set(CMAKE_AR "/usr/bin/ar" CACHE FILEPATH "" FORCE)
set(CMAKE_RANLIB "/usr/bin/ranlib" CACHE FILEPATH "" FORCE)
endif()

# Current ld64 can mis-handle sanitizer-instrumented libFuzzer objects on macOS
# and fail with invalid relocation diagnostics such as "invalid r_symbolnum=1".
list(APPEND EMEL_FUZZ_EXTRA_LINK_OPTIONS
"-Wl,-ld_classic"
)
endif()

function(emel_configure_fuzzer target_name)
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,4 +131,4 @@ environments, while Zig remains the default for day-to-day builds.
scripts/generate_docs.sh
```

Use `scripts/generate_docs.sh --check` in CI to validate generated artifacts.
Use `scripts/generate_docs.sh --check` in CI to validate generated artifacts.
78 changes: 58 additions & 20 deletions docs/architecture/batch_planner_modes_equal.md

Large diffs are not rendered by default.

38 changes: 28 additions & 10 deletions docs/architecture/batch_planner_modes_sequential.md

Large diffs are not rendered by default.

30 changes: 22 additions & 8 deletions docs/architecture/batch_planner_modes_simple.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,31 +8,45 @@ Source: [`emel/batch/planner/modes/simple/sm.hpp`](https://github.com/stateforwa
stateDiagram-v2
direction TB
[*] --> preparing
preparing --> planning : completion_request_runtime_ [always] / lambda_actions_13_39
planning --> planning_decision : completion_request_runtime_ [always] / lambda_actions_17_37
planning_decision --> planning_done : completion_request_runtime_ [lambda_guards_7_44] / none
planning_decision --> planning_failed : completion_request_runtime_ [lambda_guards_13_5] / none
preparing --> planning : completion_request_runtime_ [always] / lambda_actions_34_39
planning --> planning_input_decision : completion_request_runtime_ [always] / none
planning_input_decision --> planning_failed : completion_request_runtime_ [lambda_guards_25_5] / lambda_actions_38_48
planning_input_decision --> planning_capacity_decision : completion_request_runtime_ [lambda_guards_19_5] / none
planning_capacity_decision --> planning_failed : completion_request_runtime_ [lambda_guards_31_5] / lambda_actions_43_48
planning_capacity_decision --> planning_failed : completion_request_runtime_ [lambda_guards_37_5] / lambda_actions_48_50
planning_capacity_decision --> planning_decision : completion_request_runtime_ [lambda_guards_43_5] / lambda_actions_58_37
planning_decision --> planning_done : completion_request_runtime_ [lambda_guards_50_44] / none
planning_decision --> planning_failed : completion_request_runtime_ [lambda_guards_56_5] / lambda_actions_53_56
planning_done --> terminate : [always] / none
planning_failed --> terminate : [always] / none
planning_done --> planning_failed : _ [always] / none
planning_failed --> planning_failed : _ [always] / none
preparing --> planning_failed : _ [always] / none
planning --> planning_failed : _ [always] / none
planning_input_decision --> planning_failed : _ [always] / none
planning_capacity_decision --> planning_failed : _ [always] / none
planning_decision --> planning_failed : _ [always] / none
```

## Transitions

| Source | Event | Guard | Action | Target |
| --- | --- | --- | --- | --- |
| [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`completion<request_runtime>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`lambda_actions_13_39`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`planning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) |
| [`planning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`completion<request_runtime>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`lambda_actions_17_37`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`planning_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) |
| [`planning_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`completion<request_runtime>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`lambda_guards_7_44`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`planning_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) |
| [`planning_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`completion<request_runtime>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`lambda_guards_13_5`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`planning_failed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) |
| [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`completion<request_runtime>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`lambda_actions_34_39`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`planning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) |
| [`planning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`completion<request_runtime>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`planning_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) |
| [`planning_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`completion<request_runtime>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`lambda_guards_25_5`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`lambda_actions_38_48`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`planning_failed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) |
| [`planning_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`completion<request_runtime>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`lambda_guards_19_5`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`planning_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) |
| [`planning_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`completion<request_runtime>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`lambda_guards_31_5`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`lambda_actions_43_48`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`planning_failed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) |
| [`planning_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`completion<request_runtime>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`lambda_guards_37_5`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`lambda_actions_48_50`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`planning_failed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) |
| [`planning_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`completion<request_runtime>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`lambda_guards_43_5`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`lambda_actions_58_37`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`planning_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) |
| [`planning_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`completion<request_runtime>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`lambda_guards_50_44`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`planning_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) |
| [`planning_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`completion<request_runtime>`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`lambda_guards_56_5`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`lambda_actions_53_56`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`planning_failed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) |
| [`planning_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`terminate`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) |
| [`planning_failed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | - | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`terminate`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) |
| [`planning_done`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`planning_failed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) |
| [`planning_failed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`planning_failed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) |
| [`preparing`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`planning_failed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) |
| [`planning`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`planning_failed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) |
| [`planning_input_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`planning_failed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) |
| [`planning_capacity_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`planning_failed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) |
| [`planning_decision`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`_`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`always`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`none`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) | [`planning_failed`](https://github.com/stateforward/emel.cpp/blob/main/src/emel/batch/planner/modes/simple/sm.hpp) |
Loading