summaryrefslogtreecommitdiff
path: root/makima/src/daemon/chain/runner.rs
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-02-05 23:42:48 +0000
committersoryu <soryu@soryu.co>2026-02-05 23:42:48 +0000
commit88a4f15ce1310f8ee8693835be14aa5280233f17 (patch)
tree5c1a0417e02071d2198d13478ffa85533b19f891 /makima/src/daemon/chain/runner.rs
parentf1a50b80f3969d150bd1c31edde0aff05369157e (diff)
downloadsoryu-88a4f15ce1310f8ee8693835be14aa5280233f17.tar.gz
soryu-88a4f15ce1310f8ee8693835be14aa5280233f17.zip
Add directive-first chain system redesign
Redesigns the chain system with a directive-first architecture where Directive is the top-level entity (the "why/what") and Chains are generated execution plans (the "how") that can be dynamically modified. Backend: - Add database migration for directive system tables - Add Directive, DirectiveChain, ChainStep, DirectiveEvent models - Add DirectiveVerifier and DirectiveApproval models - Add orchestration module with engine, planner, and verifier - Add comprehensive API handlers for directives - Add daemon CLI commands for directive management - Add directive skill documentation - Integrate contract completion with directive engine - Add SSE endpoint for real-time directive events Frontend: - Add directives route with split-view layout - Add 6-tab detail view (Overview, Chain, Events, Evaluations, Approvals, Verifiers) - Add React Flow DAG visualization for chain steps - Add SSE subscription hook for real-time event updates - Add useDirectives and useDirectiveEventSubscription hooks - Add directive types and API functions Fixes: - Fix test failures in ws/protocol, task_output, completion_gate, patch - Fix word boundary matching in looks_like_task() - Fix parse_last() to find actual last completion gate - Fix create_export_patch when merge-base equals HEAD - Clean up clippy warnings in new code Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'makima/src/daemon/chain/runner.rs')
-rw-r--r--makima/src/daemon/chain/runner.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/makima/src/daemon/chain/runner.rs b/makima/src/daemon/chain/runner.rs
index dfbcfa7..1814581 100644
--- a/makima/src/daemon/chain/runner.rs
+++ b/makima/src/daemon/chain/runner.rs
@@ -37,8 +37,10 @@ pub enum RunnerError {
/// Chain runner for creating and managing chains.
pub struct ChainRunner {
/// Base API URL
+ #[allow(dead_code)]
api_url: String,
/// API key for authentication
+ #[allow(dead_code)]
api_key: String,
}
@@ -116,6 +118,7 @@ impl ChainRunner {
CreateChainRequest {
name: chain.name.clone(),
description: chain.description.clone(),
+ repository_url: None, // Legacy field, repositories take precedence
repositories: if repositories.is_empty() {
None
} else {
@@ -242,7 +245,9 @@ mod tests {
let yaml = r#"
name: Test Chain
description: A test chain
-repo: https://github.com/test/repo
+repositories:
+ - name: main
+ repository_url: https://github.com/test/repo
contracts:
- name: Research
type: simple
@@ -270,8 +275,11 @@ loop:
assert_eq!(request.name, "Test Chain");
assert_eq!(request.description, Some("A test chain".to_string()));
+ // Repositories are now in a separate array
+ let repos = request.repositories.unwrap();
+ assert_eq!(repos.len(), 1);
assert_eq!(
- request.repository_url,
+ repos[0].repository_url,
Some("https://github.com/test/repo".to_string())
);
assert_eq!(request.loop_enabled, Some(true));