Skip to content

Commit 5095ab7

Browse files
author
ArdurAI
committed
feat(automation): add proactive schedule loop
ARD-458: add a durable proactive automation loop with schedule storage, attenuated cap-token validation, per-fire provisioning, and channel delivery hooks. Signed-off-by: Ardur <team@ardur.ai>
1 parent f0594fd commit 5095ab7

11 files changed

Lines changed: 967 additions & 85 deletions

File tree

Cargo.lock

Lines changed: 51 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ members = [
2121
"crates/memory-qdrant",
2222
"crates/runtime",
2323
"crates/automation",
24+
"crates/cron",
25+
"crates/standing-goals",
26+
"crates/task-flow",
2427
"crates/cost-gate",
2528
"crates/provider-runtime",
2629
"crates/media-decode",
@@ -230,6 +233,9 @@ ardur-memory-qdrant = { path = "crates/memory-qdrant" }
230233
ardur-runtime = { path = "crates/runtime" }
231234
ardur-acp = { path = "crates/acp" }
232235
ardur-automation = { path = "crates/automation" }
236+
ardur-cron = { path = "crates/cron" }
237+
ardur-standing-goals = { path = "crates/standing-goals" }
238+
ardur-task-flow = { path = "crates/task-flow" }
233239
ardur-cost-gate = { path = "crates/cost-gate" }
234240
ardur-provider-runtime = { path = "crates/provider-runtime" }
235241
ardur-media-decode = { path = "crates/media-decode" }

crates/automation/Cargo.toml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,23 @@ ardur-cap-token = { workspace = true }
1414
# §11.0 policy decisions are referenced by id in conditional receipts; actual
1515
# Cedar evaluation lands in a later phase.
1616
ardur-cedar-policy = { workspace = true }
17+
ardur-cost-gate = { workspace = true }
18+
ardur-cron = { workspace = true }
19+
ardur-fused-runtime = { workspace = true }
1720
# §11.14 receipt vocabulary supplies digests and cost accounting types for task
1821
# and per-step receipt bodies.
1922
ardur-receipt = { workspace = true }
2023
# §1.0 runtime owns provider/tool/session placeholder ids reused by task steps.
2124
ardur-runtime = { workspace = true }
25+
ardur-standing-goals = { workspace = true }
2226
async-trait = { workspace = true }
27+
chrono = { workspace = true }
2328
serde = { workspace = true }
2429
serde_json = { workspace = true }
2530
thiserror = { workspace = true }
31+
tokio = { workspace = true }
2632
uuid = { workspace = true }
2733

2834
[dev-dependencies]
2935
tokio = { workspace = true }
36+
tempfile = { workspace = true }

crates/automation/src/lib.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,17 @@
2525

2626
mod error;
2727
pub mod learning;
28+
pub mod proactive;
2829
mod task_record;
2930
pub mod tasks;
3031

3132
pub use error::TaskFlowError;
33+
pub use proactive::{
34+
AutomationAttenuation, AutomationChannel, AutomationDeliveryEvent, AutomationRuntime,
35+
AutomationSchedule, AutomationScheduleId, AutomationScheduleStatus, FileScheduleStore,
36+
FireReport, FusedAutomationRuntime, InMemoryScheduleStore, MpscAutomationChannel,
37+
ProactiveAutomationError, ProactiveAutomationLoop, ScheduleStore, ScheduledCapToken,
38+
};
3239
pub use task_record::{TaskRecord, TaskStatus};
3340
pub use tasks::flow::{
3441
BranchOutcome, BranchState, BundleHash, CapTokenJti, CedarDecisionId, CedarExpression,

0 commit comments

Comments
 (0)