1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//! End-to-end coverage for dynamic trigger creation from ordinary conversation.
//!
//! The model is simulated with a deterministic stream: the first user prompt creates a
//! dynamic rule via the model-facing `new_trigger` tool, and a later runtime `Trigger`
//! causes the trigger sub-agent to call `bash` for the matching rule action.
//!
//! Layout: shared fixtures live in `helpers.rs`; the tests are split by domain into
//! `natural_language.rs` (creation from conversation), `promoted.rs` (chat promotion +
//! skill catalog inheritance), and `periodic.rs` (periodic hook, audit-only matches,
//! home fixture flow).
// The src `triggers` module is pulled in by path and references
// `crate::trigger_engine::...`; forward to the lib crate so all code sees ONE
// type identity (no duplicated path-include types).