Skip to main content

Getting Started

Add Nexora to your project​

From 0.5.0 the library modules are on Maven Central under the group me.virul.nexora. Import the BOM, nexora-all, so every Nexora module resolves to the same version, then add nexora-api, which brings in the engine:

<dependencyManagement>
<dependencies>
<dependency>
<groupId>me.virul.nexora</groupId>
<artifactId>nexora-all</artifactId>
<version>0.5.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

<dependencies>
<dependency>
<groupId>me.virul.nexora</groupId>
<artifactId>nexora-api</artifactId>
</dependency>
</dependencies>

Gradle (Kotlin DSL):

dependencies {
implementation(platform("me.virul.nexora:nexora-all:0.5.0"))
implementation("me.virul.nexora:nexora-api")
}

Add nexora-tracing-otel for OpenTelemetry tracing. A plugin built as its own JAR needs only nexora-plugin-spi, as provided (Gradle: compileOnly), since the engine supplies it at runtime. The Java packages are me.virul.nexora.*. nexora-api shows how to build and run an engine.

The CLI (nexora.jar) and the LLM planner plugin JAR are not on Maven Central; download them from the GitHub Releases, or build them from source as below.

Build from source​

You can build the project using Maven:

mvn install -DskipTests

The CLI fat JAR ends up at nexora-cli/target/nexora.jar.

Try it immediately​

No config file needed. The demo command showcases all three differentiating features in a single run:

java -jar nexora-cli/target/nexora.jar demo

You should see output similar to this:

Nexora Feature Demo
===================

Features demonstrated:
1. Pluggable planner SPI - rule-based planner wired via CompositePlanner
2. Reactive plan amendment - validate_order injects audit_log at runtime
3. Capability contracts - charge_card declares p99 SLA + fallback

Initial DAG (from planner):
validate_order --+
+--> charge_card --> send_receipt
fetch_inventory -+

validate_order will amend the plan at runtime, injecting:
--> audit_log (runs after validate_order, before send_receipt)

Execution:
✓ validate_order 37ms
~ plan amended: ADD_STEP -> audit_log
~ plan amended: MODIFY_INPUT -> send_receipt
✓ fetch_inventory 54ms
✓ audit_log 16ms
✓ charge_card 86ms
✓ send_receipt 22ms

Result: COMPLETED
Steps: 5 executed

Contract health (charge_card):
samples=1 error-rate=0% p99=86ms

The plan started with 4 steps and finished with 5. validate_order injected audit_log mid-run. charge_card was monitored against its declared p99=200ms SLA throughout.