Implement TUI init insert and generate workflows

This commit is contained in:
Hermes Agent
2026-08-10 09:22:55 +00:00
parent 977eb236da
commit 6ea184cbc1
8 changed files with 1213 additions and 32 deletions

View File

@@ -268,6 +268,36 @@ pub enum AutomaticEntryCommitter {
None(NoGitEntryCommitter),
}
/// Storage-owned selection of pass-compatible automatic Git commits for a
/// recipient policy change.
pub enum AutomaticPolicyCommitter {
Git(Box<GitRepository>),
None(crate::recipient::NoGitCommitter),
}
impl AutomaticPolicyCommitter {
pub fn for_directory(
repository: &Repository,
directory: &str,
identity: GitIdentity,
) -> Result<Self, GitError> {
match GitRepository::open_innermost(repository, Path::new(directory), identity) {
Ok(git) => Ok(Self::Git(Box::new(git))),
Err(GitError::NotRepository) => Ok(Self::None(crate::recipient::NoGitCommitter)),
Err(error) => Err(error),
}
}
}
impl PolicyCommitter for AutomaticPolicyCommitter {
fn commit(&mut self, change: &PolicyCommit) -> Result<(), PolicyCommitError> {
match self {
Self::Git(git) => PolicyCommitter::commit(git.as_mut(), change),
Self::None(committer) => committer.commit(change),
}
}
}
impl AutomaticEntryCommitter {
pub fn for_entry(
repository: &Repository,