package artifacts import "os" // Ref identifies a pipeline artifact and its local/remote coordinates. type Ref struct { Kind string Category string SessionID string RelativePath string AbsolutePath string RemoteKey string Checksum string } // Store is the local artifact/workdir abstraction used by orchestration code. type Store interface { SessionPaths(sessionID string) SessionPaths EnsureLayout(sessionID string) (SessionPaths, error) CopyInput(sessionID, srcPath, destRelativePath string) (Ref, error) Exists(path string) (bool, error) ExistsRef(ref Ref) (bool, error) WriteFileAtomic(path string, data []byte, perm os.FileMode) error Checksum(path string) (string, error) AcquireSessionLock(sessionID string) (*LockHandle, error) ReleaseSessionLock(lock *LockHandle) error }