ai-kodu-runner 0.1.0

Community self-hosted Docker runner for versioned AI coding jobs
// Copyright 2026 Kotelnikovekb
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://apache.org
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
use crate::job::JobSpec;
use anyhow::Result;
use std::path::Path;
#[allow(dead_code)]
pub struct FileControlPlane {
    path: std::path::PathBuf,
}
#[allow(dead_code)]
impl FileControlPlane {
    pub fn new(path: &Path) -> Self {
        Self {
            path: path.to_owned(),
        }
    }
    pub fn read(&self) -> Result<JobSpec> {
        Ok(serde_json::from_slice(&std::fs::read(&self.path)?)?)
    }
}