Skip to content
Closed

main #221

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .ao/workflows.yaml
Original file line number Diff line number Diff line change
@@ -1 +1,20 @@
# Default workflow reference for AO tasks
default_workflow_ref: standard

# Feature Branch Workflow Configuration
# The standard workflow now includes automatic feature branch handling:
# - Creates a feature branch for implementation work
# - Prevents direct pushes to main during task execution
# - Automatically creates a pull request after all phases succeed
# - Requires explicit PR review and merge (auto_merge: false)
# - Cleans up the feature branch worktree after merge
#
# This workflow ensures:
# 1. Implementation happens on isolated feature branches
# 2. All code is reviewed via pull requests
# 3. Main branch remains protected from direct pushes
# 4. Worktrees are cleaned up automatically to prevent stale checkouts
#
# To override this behavior (e.g., for quick fixes or direct merges),
# create custom workflow definitions in .ao/workflows/ that override
# the post_success merge configuration as needed.
18 changes: 9 additions & 9 deletions .ao/workflows/common.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ agents:
default:
model: claude-haiku-4-5
tool: claude
tool_profile: sparkcube
# tool_profile removed — sparkcube profile not in global config
mcp_servers:
- ao
- context7
Expand All @@ -52,7 +52,7 @@ agents:
Read the task, search the codebase, write concrete criteria, update via ao.task.update.
model: claude-sonnet-4-6
tool: claude
tool_profile: sparkcube
# tool_profile removed — sparkcube profile not in global config
mcp_servers:
- ao
- context7
Expand All @@ -64,7 +64,7 @@ agents:
Use ao.task.checklist-update and ao.task.update to record your findings.
model: claude-opus-4-6
tool: claude
tool_profile: sparkcube
# tool_profile removed — sparkcube profile not in global config
mcp_servers:
- ao
triager:
Expand All @@ -89,7 +89,7 @@ agents:
\ just task titles.\n- Use \"advance\" verdict after successful dispatch, \"skip\" for invalid/done/duplicate tasks.\n"
model: claude-haiku-4-5
tool: claude
tool_profile: sparkcube
# tool_profile removed — sparkcube profile not in global config
mcp_servers:
- ao
reconciler:
Expand All @@ -116,7 +116,7 @@ agents:
- Process leaf tasks first.\n"
model: claude-haiku-4-5
tool: claude
tool_profile: sparkcube
# tool_profile removed — sparkcube profile not in global config
mcp_servers:
- ao
work-planner:
Expand All @@ -134,7 +134,7 @@ agents:
\ queue first.\n"
model: claude-haiku-4-5
tool: claude
tool_profile: sparkcube
# tool_profile removed — sparkcube profile not in global config
mcp_servers:
- ao
skills:
Expand Down Expand Up @@ -743,12 +743,12 @@ schedules:
- id: work-planner
cron: "*/30 * * * *"
workflow_ref: work-planner
enabled: true
enabled: false
- id: task-reconciler
cron: "*/30 * * * *"
workflow_ref: task-reconciler
enabled: true
enabled: false
- id: sync-main
cron: "*/30 * * * *"
workflow_ref: sync-main
enabled: true
enabled: false
4 changes: 2 additions & 2 deletions .ao/workflows/project-management.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ agents:
- Only one release branch at a time.\n- Never force-push.\n"
model: claude-haiku-4-5
tool: claude
tool_profile: sparkcube
# tool_profile removed — sparkcube profile not in global config
mcp_servers:
- ao

Expand Down Expand Up @@ -53,4 +53,4 @@ schedules:
- id: release-manager
cron: "0 9 * * *"
workflow_ref: release-manager
enabled: true
enabled: false
22 changes: 11 additions & 11 deletions .ao/workflows/providers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,19 @@ agents:
clean, tested code.
model: kimi-code/kimi-for-coding
tool: claude
tool_profile: sparkcube
# tool_profile removed — sparkcube profile not in global config
minimax-default:
system_prompt: You are an expert Rust developer working on the AO CLI workspace. Follow existing code patterns. Write
clean, tested code.
model: minimax/MiniMax-M2.7
tool: claude
tool_profile: sparkcube
# tool_profile removed — sparkcube profile not in global config
glm-default:
system_prompt: You are an expert Rust developer working on the AO CLI workspace. Follow existing code patterns. Write
clean, tested code.
model: zai-coding-plan/glm-5-turbo
model: claude-haiku-4-5
tool: claude
tool_profile: sparkcube
# tool_profile removed — sparkcube profile not in global config
gemini-default:
system_prompt: You are an expert Rust developer working on the AO CLI workspace. Follow existing code patterns. Write
clean, tested code.
Expand All @@ -27,7 +27,7 @@ agents:
\ architecture, complex refactors, critical fixes. Write exceptional, production-ready code."
model: claude-opus-4-6
tool: claude
tool_profile: sparkcube
# tool_profile removed — sparkcube profile not in global config
mcp_servers:
- ao
- context7
Expand All @@ -45,7 +45,7 @@ agents:
mcp_task_stats\", \"mcp_queue_stats\"]}\n\nKeep it brief. Do not modify any files or tasks.\n"
model: minimax/MiniMax-M2.5
tool: claude
tool_profile: sparkcube
# tool_profile removed — sparkcube profile not in global config
glm-smoke-test:
system_prompt: "You are a smoke test agent running on GLM (Z-AI) via oai-runner.\nYour job is to verify the oai-runner\
\ \u2192 Z-AI API pipeline is working.\n\nOn each run:\n1. Confirm you can read files: run `cat CLAUDE.md | head -5`\
Expand All @@ -55,9 +55,9 @@ agents:
\ your model name, a timestamp, and \"PASS\" or \"FAIL\" for each check.\n7. If everything works, output a single JSON\
\ line:\n {\"status\": \"pass\", \"model\": \"glm\", \"checks\": [\"file_read\", \"dir_list\", \"tool_use\", \"mcp_task_stats\"\
, \"mcp_queue_stats\"]}\n\nKeep it brief. Do not modify any files or tasks.\n"
model: zai-coding-plan/glm-5-turbo
model: claude-haiku-4-5
tool: claude
tool_profile: sparkcube
# tool_profile removed — sparkcube profile not in global config
phases:
kimi-implementation:
mode: agent
Expand All @@ -66,7 +66,7 @@ phases:
code.
runtime:
fallback_models:
- zai-coding-plan/glm-5-turbo
- claude-haiku-4-5
- minimax/MiniMax-M2.5
- claude-sonnet-4-6
timeout_secs: 900
Expand All @@ -79,7 +79,7 @@ phases:
code.
runtime:
fallback_models:
- zai-coding-plan/glm-5-turbo
- claude-haiku-4-5
- claude-sonnet-4-6
capabilities:
mutates_state: true
Expand All @@ -89,7 +89,7 @@ phases:
directive: Refine the task into implementation-ready requirements with clear acceptance criteria.
runtime:
fallback_models:
- zai-coding-plan/glm-5-turbo
- claude-haiku-4-5
- claude-sonnet-4-6
capabilities:
mutates_state: true
Expand Down
8 changes: 4 additions & 4 deletions .ao/workflows/requirements.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ agents:
- Check queue before every dispatch to avoid duplicates
model: claude-haiku-4-5
tool: claude
tool_profile: sparkcube
# tool_profile removed — sparkcube profile not in global config
mcp_servers:
- ao

Expand Down Expand Up @@ -108,7 +108,7 @@ agents:
- If the requirement status is already "refined", just verify and skip — do not re-refine
model: claude-sonnet-4-6
tool: claude
tool_profile: sparkcube
# tool_profile removed — sparkcube profile not in global config
mcp_servers:
- ao
- context7
Expand Down Expand Up @@ -173,7 +173,7 @@ agents:
- When sending back for rework, be specific about what's wrong
model: claude-opus-4-6
tool: claude
tool_profile: sparkcube
# tool_profile removed — sparkcube profile not in global config
mcp_servers:
- ao
- context7
Expand Down Expand Up @@ -279,4 +279,4 @@ schedules:
- id: req-dispatch
cron: "*/10 * * * *"
workflow_ref: req-dispatch
enabled: true
enabled: false
16 changes: 8 additions & 8 deletions .ao/workflows/research.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ agents:
\ (over-coupling)\n- Public API surface issues (leaking internals)\n- Compile time bottlenecks\n- Unused dependencies\
\ in Cargo.toml\n- Trait boundary violations\nRead Cargo.toml in each crate to map the dependency graph.\nCheck ao.requirements.list\
\ before creating \u2014 NEVER duplicate.\nTag requirements with \"architect-rust\". Max 2 per run.\n"
model: zai-coding-plan/glm-5
model: claude-haiku-4-5
tool: claude
tool_profile: sparkcube
# tool_profile removed — sparkcube profile not in global config
mcp_servers:
- ao
- rust-docs
Expand All @@ -17,9 +17,9 @@ agents:
\ configuration\n- Release pipeline improvements\n- Build performance (caching, incremental compilation)\n- Cross-platform\
\ support (macOS, Linux, Windows)\nCheck ao.requirements.list before creating \u2014 NEVER duplicate.\nTag requirements\
\ with \"architect-infra\". Max 2 per run.\n"
model: zai-coding-plan/glm-5
model: claude-haiku-4-5
tool: claude
tool_profile: sparkcube
# tool_profile removed — sparkcube profile not in global config
mcp_servers:
- ao
researcher-models:
Expand All @@ -28,9 +28,9 @@ agents:
\ alternatives)\n- New model capabilities (vision, tool use, structured output)\n- Provider API stability reports\n\
Use WebSearch to find latest model announcements and pricing.\nCheck ao.requirements.list before creating \u2014 NEVER\
\ duplicate.\nTag requirements with \"researcher-models\". Max 2 per run.\n"
model: zai-coding-plan/glm-5
model: claude-haiku-4-5
tool: claude
tool_profile: sparkcube
# tool_profile removed — sparkcube profile not in global config
mcp_servers:
- ao
researcher-ecosystem:
Expand All @@ -39,9 +39,9 @@ agents:
- Testing frameworks and patterns\n- Performance optimization tools\n- Security scanning tools\nUse context7 and rust-docs\
\ to check current crate APIs.\nCheck ao.requirements.list before creating \u2014 NEVER duplicate.\nTag requirements\
\ with \"researcher-ecosystem\". Max 2 per run.\n"
model: zai-coding-plan/glm-5
model: claude-haiku-4-5
tool: claude
tool_profile: sparkcube
# tool_profile removed — sparkcube profile not in global config
mcp_servers:
- ao
- context7
Expand Down
9 changes: 5 additions & 4 deletions .ao/workflows/review.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ agents:
- Only dispatch — let the review agent handle each PR
- Skip PRs targeting "main" — those are release PRs
- Maximum 5 dispatches per sweep to avoid queue flooding
model: zai-coding-plan/glm-5
model: claude-haiku-4-5
tool: claude
tool_profile: sparkcube
# tool_profile removed — sparkcube profile not in global config
mcp_servers: ["ao"]
skills:
- queue-management
Expand Down Expand Up @@ -95,9 +95,9 @@ agents:
- Be concise in review comments
- Approve and merge good PRs quickly — don't block on style nits
- Focus on correctness, security, and breaking changes
model: zai-coding-plan/glm-5
model: claude-haiku-4-5
tool: claude
tool_profile: sparkcube
# tool_profile removed — sparkcube profile not in global config
mcp_servers: ["ao"]
skills:
- code-review
Expand Down Expand Up @@ -171,3 +171,4 @@ schedules:
name: PR Sweep
cron: "*/30 * * * *"
workflow_ref: pr-sweep
enabled: false
82 changes: 82 additions & 0 deletions crates/orchestrator-cli/src/cli_types/cloud_types.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
use clap::{Parser, Subcommand};

#[derive(Debug, Subcommand)]
pub(crate) enum CloudCommand {
/// Configure the sync server connection for this project.
Setup(CloudSetupArgs),
/// Push local tasks and requirements to the sync server.
Push,
/// Pull tasks and requirements from the sync server into local state.
Pull,
/// Show sync configuration and last sync status.
Status,
/// Link this project to a specific remote project by ID.
Link(CloudLinkArgs),
/// Manage deployments on ao-cloud.
Deploy {
#[command(subcommand)]
command: DeployCommand,
},
}

#[derive(Debug, Subcommand)]
pub(crate) enum DeployCommand {
/// Create a new deployment
Create(DeployCreateArgs),
/// Destroy an existing deployment
Destroy(DeployDestroyArgs),
/// Start a created deployment
Start(DeployStartArgs),
/// Stop a running deployment
Stop(DeployStopArgs),
/// Show deployment state
Status(DeployStatusArgs),
}

#[derive(Debug, Parser)]
pub(crate) struct CloudSetupArgs {
#[arg(long, help = "Sync server URL, e.g. https://ao-sync-production.up.railway.app")]
pub(crate) server: String,
#[arg(long, help = "Bearer token for authentication")]
pub(crate) token: String,
}

#[derive(Debug, Parser)]
pub(crate) struct CloudLinkArgs {
#[arg(long, help = "Remote project ID to link to")]
pub(crate) project_id: String,
}

#[derive(Debug, Parser)]
pub(crate) struct DeployCreateArgs {
#[arg(long, help = "Application name for the deployment")]
pub(crate) app_name: String,
#[arg(long, help = "Deployment region (e.g., fra)")]
pub(crate) region: String,
#[arg(long, help = "Machine size (e.g., shared-cpu-1x, performance-1x)")]
pub(crate) machine_size: String,
}

#[derive(Debug, Parser)]
pub(crate) struct DeployDestroyArgs {
#[arg(long, help = "Application name of the deployment to destroy")]
pub(crate) app_name: String,
}

#[derive(Debug, Parser)]
pub(crate) struct DeployStartArgs {
#[arg(long, help = "Application name of the deployment to start")]
pub(crate) app_name: String,
}

#[derive(Debug, Parser)]
pub(crate) struct DeployStopArgs {
#[arg(long, help = "Application name of the deployment to stop")]
pub(crate) app_name: String,
}

#[derive(Debug, Parser)]
pub(crate) struct DeployStatusArgs {
#[arg(long, help = "Application name to check status for")]
pub(crate) app_name: String,
}
2 changes: 2 additions & 0 deletions crates/orchestrator-cli/src/cli_types/mcp_types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@ use clap::Subcommand;
pub(crate) enum McpCommand {
/// Start the MCP server in the current process.
Serve,
/// Start the memory context MCP server for workflow phases.
Memory,
}
Loading
Loading