diff --git a/lib/crates/fabro-workflows/src/core_adapter/lifecycle/artifact.rs b/lib/crates/fabro-workflows/src/core_adapter/lifecycle/artifact.rs
index 8471ddde6..0c6a7abe7 100644
--- a/lib/crates/fabro-workflows/src/core_adapter/lifecycle/artifact.rs
+++ b/lib/crates/fabro-workflows/src/core_adapter/lifecycle/artifact.rs
@@ -1,11 +1,160 @@
+use std::path::PathBuf;
+use std::sync::{Arc, Mutex};
+
use async_trait::async_trait;
-use fabro_core::lifecycle::RunLifecycle;
+use fabro_core::graph::NodeSpec;
+use fabro_core::lifecycle::{AttemptContext, AttemptResultContext, RunLifecycle};
+use fabro_core::outcome::NodeResult;
+use fabro_core::state::RunState;
use super::super::graph::WorkflowGraph;
+use super::super::WorkflowNode;
+use crate::artifact::{offload_large_values, sync_artifacts_to_env, ArtifactStore};
+use crate::engine;
+use crate::event::{EventEmitter, RunNoticeLevel, WorkflowRunEvent};
+use crate::outcome::StageUsage;
+use fabro_core::lifecycle::NodeDecision;
+
+type WfRunState = RunState