Skip to content
Merged
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
7 changes: 3 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,23 +54,23 @@ jobs:

### Linux (x86_64)
```bash
curl -LO https://github.com/Pama-Lee/Ordo/releases/download/${{ github.ref_name }}/ordo-x86_64-unknown-linux-gnu.tar.gz
curl -LO https://github.com/Ordo-Engine/Ordo/releases/download/${{ github.ref_name }}/ordo-x86_64-unknown-linux-gnu.tar.gz
tar -xzf ordo-x86_64-unknown-linux-gnu.tar.gz
chmod +x ordo-server
./ordo-server
```

### macOS (Apple Silicon)
```bash
curl -LO https://github.com/Pama-Lee/Ordo/releases/download/${{ github.ref_name }}/ordo-aarch64-apple-darwin.tar.gz
curl -LO https://github.com/Ordo-Engine/Ordo/releases/download/${{ github.ref_name }}/ordo-aarch64-apple-darwin.tar.gz
tar -xzf ordo-aarch64-apple-darwin.tar.gz
chmod +x ordo-server
./ordo-server
```

### macOS (Intel)
```bash
curl -LO https://github.com/Pama-Lee/Ordo/releases/download/${{ github.ref_name }}/ordo-x86_64-apple-darwin.tar.gz
curl -LO https://github.com/Ordo-Engine/Ordo/releases/download/${{ github.ref_name }}/ordo-x86_64-apple-darwin.tar.gz
tar -xzf ordo-x86_64-apple-darwin.tar.gz
chmod +x ordo-server
./ordo-server
Expand Down Expand Up @@ -220,4 +220,3 @@ jobs:
platforms: linux/amd64,linux/arm64
cache-from: type=gha
cache-to: type=gha,mode=max

188 changes: 94 additions & 94 deletions CHANGELOG.md

Large diffs are not rendered by default.

9 changes: 9 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ members = [
"crates/ordo-server",
"crates/ordo-platform",
"crates/ordo-wasm",
"examples/capability-demo",
]

[workspace.package]
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
</p>

<p align="center">
<a href="https://pama-lee.github.io/Ordo/"><img src="https://img.shields.io/badge/demo-playground-brightgreen" alt="Playground" /></a>
<a href="https://ordo-engine.github.io/Ordo/"><img src="https://img.shields.io/badge/demo-playground-brightgreen" alt="Playground" /></a>
<img src="https://img.shields.io/badge/rust-1.83%2B-orange?logo=rust" alt="Rust" />
<img src="https://img.shields.io/badge/license-MIT-blue" alt="License" />
<a href="https://www.npmjs.com/package/@ordo-engine/editor-core"><img src="https://img.shields.io/npm/v/@ordo-engine/editor-core?label=npm&color=cb3837" alt="npm" /></a>
Expand Down Expand Up @@ -53,7 +53,7 @@ docker compose up # platform + engine + studio
# open http://localhost:5173
```

Or use the hosted **[Live Playground](https://pama-lee.github.io/Ordo/)** — no install needed.
Or use the hosted **[Live Playground](https://ordo-engine.github.io/Ordo/)** — no install needed.

### Engine only

Expand Down Expand Up @@ -140,12 +140,12 @@ ordo/
| **Govern** | v0.8 | Change requests, impact analysis, approval flows |
| **Ordo Cloud** | v1.0 | Managed platform with hosted engine |

Full roadmap → [docs/roadmap](https://pama-lee.github.io/Ordo/docs/en/roadmap)
Full roadmap → [docs/roadmap](https://ordo-engine.github.io/Ordo/docs/en/roadmap)

---

## License

MIT — see [LICENSE](LICENSE).

<p align="center"><sub>Built with Rust · <a href="https://discord.gg/Y529FkArhh">Discord</a> · <a href="https://pama-lee.github.io/Ordo/">Docs</a></sub></p>
<p align="center"><sub>Built with Rust · <a href="https://discord.gg/Y529FkArhh">Discord</a> · <a href="https://ordo-engine.github.io/Ordo/">Docs</a></sub></p>
6 changes: 3 additions & 3 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

For the full roadmap with details on each milestone, visit our documentation site:

- **English**: [Roadmap](https://pama-lee.github.io/Ordo/docs/en/roadmap)
- **中文**: [产品路线图](https://pama-lee.github.io/Ordo/docs/zh/roadmap)
- **English**: [Roadmap](https://ordo-engine.github.io/Ordo/docs/en/roadmap)
- **中文**: [产品路线图](https://ordo-engine.github.io/Ordo/docs/zh/roadmap)

## Quick Overview

Expand All @@ -20,4 +20,4 @@ Milestones 1–5 are fully open source (MIT). Ordo Cloud adds managed hosting an

---

Have feedback on priorities? [Open an issue](https://github.com/Pama-Lee/Ordo/issues) or join our [Discord](https://discord.gg/Y529FkArhh).
Have feedback on priorities? [Open an issue](https://github.com/Ordo-Engine/Ordo/issues) or join our [Discord](https://discord.gg/Y529FkArhh).
6 changes: 3 additions & 3 deletions cliff.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
"""
body = """
{%- macro remote_url() -%}
https://github.com/Pama-Lee/Ordo
https://github.com/Ordo-Engine/Ordo
{%- endmacro -%}

{% if version -%}
Expand Down Expand Up @@ -41,7 +41,7 @@ body = """
"""
footer = """
{%- macro remote_url() -%}
https://github.com/Pama-Lee/Ordo
https://github.com/Ordo-Engine/Ordo
{%- endmacro -%}

{% for release in releases -%}
Expand All @@ -64,7 +64,7 @@ split_commits = false

commit_preprocessors = [
# Link PR numbers to GitHub
{ pattern = '\(#(\d+)\)', replace = '([#${1}](https://github.com/Pama-Lee/Ordo/pull/${1}))' },
{ pattern = '\(#(\d+)\)', replace = '([#${1}](https://github.com/Ordo-Engine/Ordo/pull/${1}))' },
]

# Strip commit body to keep changelog concise — only the first line matters
Expand Down
72 changes: 72 additions & 0 deletions crates/ordo-core/src/capability/mod.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
mod provider;
mod registry;

pub use provider::{
CapabilityCategory, CapabilityConfig, CapabilityDescriptor, CapabilityInvoker,
CapabilityProvider, CapabilityRequest, CapabilityResponse, CircuitBreakerConfig, RetryPolicy,
};
pub use registry::CapabilityRegistry;

#[cfg(test)]
mod tests {
use super::*;
use crate::prelude::{Action, ActionKind, Expr, RuleExecutor, RuleSet, Step, TerminalResult};
use crate::{context::Value, error::Result};
use std::sync::Arc;

struct EchoProvider;

impl CapabilityProvider for EchoProvider {
fn descriptor(&self) -> CapabilityDescriptor {
CapabilityDescriptor::new("demo.echo", CapabilityCategory::Compute)
.with_description("Echo payloads back to the caller")
}

fn invoke(&self, request: &CapabilityRequest) -> Result<CapabilityResponse> {
Ok(CapabilityResponse::new(request.payload.clone()))
}
}

#[test]
fn executor_external_call_routes_through_capability_registry() {
let registry = Arc::new(CapabilityRegistry::new());
registry.register(Arc::new(EchoProvider));

let mut ruleset = RuleSet::new("capability_demo", "call_echo");
ruleset.add_step(Step::action(
"call_echo",
"Call echo",
vec![Action {
kind: ActionKind::ExternalCall {
service: "demo.echo".to_string(),
method: "echo".to_string(),
params: vec![("amount".to_string(), Expr::field("amount"))],
timeout_ms: 250,
result_variable: Some("capability_result".to_string()),
},
description: String::new(),
}],
"done",
));
ruleset.add_step(Step::terminal(
"done",
"Done",
TerminalResult::new("OK").with_output(
"echoed_amount",
Expr::field("$capability_result.payload.amount"),
),
));

let mut executor = RuleExecutor::new();
executor.set_capability_invoker(registry);

let input: Value = serde_json::from_str(r#"{"amount": 42}"#).unwrap();
let result = executor.execute(&ruleset, input).unwrap();

let amount = result
.output
.get_path("echoed_amount")
.expect("echoed amount missing");
assert_eq!(amount, &Value::int(42));
}
}
Loading
Loading