@openenthrium/oe-runtime 1.8.6 → 1.8.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +96 -359
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,56 +1,94 @@
|
|
|
1
1
|
# Open Enthrium AI Agent Runtime · `@openenthrium/oe-runtime`
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**Standalone AI Agent Executor · Apache-2.0 · Windows · Linux · macOS**
|
|
4
4
|
|
|
5
|
-
Run
|
|
5
|
+
Run SKILL.md agents and YAML workflows against any enterprise data source — no cloud, no platform, just a single binary.
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/@openenthrium/oe-runtime)
|
|
8
8
|
[](https://github.com/enthrium/open-enthrium-ai-agent-runtime/blob/main/LICENSE)
|
|
9
9
|
[](https://github.com/enthrium/open-enthrium-ai-agent-runtime/releases)
|
|
10
|
-
[](https://www.openenthrium.com
|
|
10
|
+
[](https://www.openenthrium.com)
|
|
11
11
|
[](https://discord.com/invite/vWsZ24Msn)
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
15
15
|
## What is OE Runtime?
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
A standalone binary that reads a declarative agent file, connects to your enterprise data sources, and runs an AI workflow — locally or as an HTTP API server. No Python. No LangChain. No Docker required.
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
- **
|
|
22
|
-
- **
|
|
23
|
-
- **HTTP server mode.** `--serve` turns the runtime into a persistent API server any app can call.
|
|
24
|
-
- **SDK.** `@openenthrium/oe-runtime-sdk` lets you embed agent execution directly inside your Node.js app — same engine, no subprocess, no HTTP call. `npm install @openenthrium/oe-runtime-sdk`
|
|
25
|
-
- **Messaging platform integration.** Receive messages from Telegram, Slack, WhatsApp, Teams and run agents in response — same YAML agents, same connectors, universal command language (`/run`, `/agents`, `/approve`, `/status`).
|
|
26
|
-
- **Project system.** `oe-project.json` registers multiple agents by name, sets a default agent, and links projects together — one config, many agents.
|
|
27
|
-
- **Self-hosted.** Runs entirely on your own machine. No call-home. Own your data.
|
|
19
|
+
Supports two agent formats:
|
|
20
|
+
|
|
21
|
+
- **SKILL.md** — portable Markdown-based agent skills ([agentskills.io](https://agentskills.io) spec). The same file runs on Claude, Cursor, Windsurf, or OE Runtime unchanged.
|
|
22
|
+
- **agent.yaml** — OE-native YAML format with inline steps, chains, and scheduling.
|
|
28
23
|
|
|
29
24
|
---
|
|
30
25
|
|
|
31
|
-
##
|
|
26
|
+
## Quick Start
|
|
32
27
|
|
|
33
|
-
|
|
28
|
+
```bash
|
|
29
|
+
npx -y @openenthrium/oe-runtime ./skills/hello-world
|
|
30
|
+
```
|
|
34
31
|
|
|
35
|
-
|
|
32
|
+
> **`-y` is required** — without it npx blocks waiting for keyboard input and the agent never runs.
|
|
36
33
|
|
|
37
|
-
|
|
34
|
+
OE Runtime automatically finds `oe-config.json` in the agent's folder or your current directory.
|
|
38
35
|
|
|
39
36
|
---
|
|
40
37
|
|
|
41
|
-
##
|
|
38
|
+
## Running SKILL.md Agents
|
|
39
|
+
|
|
40
|
+
A SKILL.md skill is a Markdown file — frontmatter carries the metadata, `## Step` headings define the workflow. Connector wiring stays in `agent.yaml` + `oe-config.json`, keeping the skill itself portable.
|
|
41
|
+
|
|
42
|
+
**Folder structure:**
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
my-skill/
|
|
46
|
+
├── SKILL.md ← the portable skill (agentskills.io format)
|
|
47
|
+
├── agent.yaml ← wires SKILL.md to your connectors
|
|
48
|
+
└── oe-config.json ← LLM key + connector credentials
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**agent.yaml:**
|
|
52
|
+
|
|
53
|
+
```yaml
|
|
54
|
+
name: SQL Database Analyst
|
|
55
|
+
description: Query a database and summarise results in plain English
|
|
56
|
+
connectors:
|
|
57
|
+
- connection_name: My Database
|
|
58
|
+
connection_type: postgresql
|
|
59
|
+
skills:
|
|
60
|
+
- path: ./SKILL.md
|
|
61
|
+
trigger_type: auto
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**SKILL.md:**
|
|
42
65
|
|
|
43
|
-
|
|
66
|
+
```markdown
|
|
67
|
+
---
|
|
68
|
+
name: SQL Database Analyst
|
|
69
|
+
version: 1.0.0
|
|
70
|
+
description: Query a database and summarise results in plain English
|
|
71
|
+
author: Your Name
|
|
72
|
+
license: Apache-2.0
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
You are a data analyst. Use the available database tools to answer the user's question clearly.
|
|
44
76
|
|
|
45
|
-
|
|
77
|
+
## Step 1: Explore Schema
|
|
78
|
+
List the available tables and understand the data structure.
|
|
79
|
+
|
|
80
|
+
## Step 2: Query
|
|
81
|
+
Run the most relevant query for the user's request.
|
|
82
|
+
|
|
83
|
+
## Step 3: Report
|
|
84
|
+
Summarise the findings in plain English with key numbers highlighted.
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**oe-config.json:**
|
|
46
88
|
|
|
47
89
|
```json
|
|
48
90
|
{
|
|
49
|
-
"llm": {
|
|
50
|
-
"provider": "openai",
|
|
51
|
-
"apiKey": "sk-...",
|
|
52
|
-
"model": "gpt-4o"
|
|
53
|
-
},
|
|
91
|
+
"llm": { "provider": "openai", "apiKey": "sk-...", "model": "gpt-4o" },
|
|
54
92
|
"connectors": [
|
|
55
93
|
{
|
|
56
94
|
"connection_name": "My Database",
|
|
@@ -60,388 +98,99 @@ No binary download needed — `npx` handles everything automatically.
|
|
|
60
98
|
"database": "mydb",
|
|
61
99
|
"user": "postgres",
|
|
62
100
|
"password": "YOUR_DB_PASSWORD"
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
"connection_name": "My Telegram Bot",
|
|
66
|
-
"connection_type": "telegram",
|
|
67
|
-
"baseUrl": "https://api.telegram.org/botYOUR_BOT_TOKEN"
|
|
68
101
|
}
|
|
69
|
-
]
|
|
70
|
-
"server": {
|
|
71
|
-
"enabled": false,
|
|
72
|
-
"port": 3333,
|
|
73
|
-
"apiKey": "your-secret"
|
|
74
|
-
}
|
|
102
|
+
]
|
|
75
103
|
}
|
|
76
104
|
```
|
|
77
105
|
|
|
78
|
-
**
|
|
79
|
-
|
|
80
|
-
Agents are plain YAML files. No Python. No framework to learn.
|
|
81
|
-
|
|
82
|
-
```yaml
|
|
83
|
-
name: DB Summary Agent
|
|
84
|
-
description: Queries a database and sends a summary to Telegram
|
|
85
|
-
instructions: |
|
|
86
|
-
You are a data analyst. Query the database for key metrics,
|
|
87
|
-
summarise the findings clearly, and send the report to Telegram.
|
|
88
|
-
Complete all steps fully before writing your report.
|
|
89
|
-
steps:
|
|
90
|
-
- name: Query metrics
|
|
91
|
-
content: |
|
|
92
|
-
Run exactly this query against My Database, no other queries:
|
|
93
|
-
SELECT table_name FROM information_schema.tables
|
|
94
|
-
WHERE table_schema = 'public';
|
|
95
|
-
Summarise the results.
|
|
96
|
-
- name: Get chat ID
|
|
97
|
-
content: |
|
|
98
|
-
Call My Telegram Bot:
|
|
99
|
-
GET /getUpdates with params: { "limit": "1" }
|
|
100
|
-
Extract the chat_id from the most recent message.
|
|
101
|
-
- name: Send report
|
|
102
|
-
content: |
|
|
103
|
-
Send the summary via My Telegram Bot:
|
|
104
|
-
POST /sendMessage with body:
|
|
105
|
-
{
|
|
106
|
-
"chat_id": "<chat_id from previous step>",
|
|
107
|
-
"text": "<your summary>",
|
|
108
|
-
"parse_mode": "Markdown"
|
|
109
|
-
}
|
|
110
|
-
connectors:
|
|
111
|
-
- connection_name: My Database
|
|
112
|
-
connection_type: postgresql
|
|
113
|
-
- connection_name: My Telegram Bot
|
|
114
|
-
connection_type: telegram
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
### YAML Agent Reference
|
|
118
|
-
|
|
119
|
-
| Field | Required | Description |
|
|
120
|
-
|---|---|---|
|
|
121
|
-
| `name` | No | Display name shown in terminal |
|
|
122
|
-
| `description` | No | Short description |
|
|
123
|
-
| `instructions` | Yes | System prompt — what the agent does and how |
|
|
124
|
-
| `params` | No | Named parameters; substituted via `{{name}}` in prompt and steps |
|
|
125
|
-
| `connectors` | No | Connector references matched to credentials in `oe-config.json` |
|
|
126
|
-
| `steps` | No | Named workflow steps injected sequentially into the system prompt |
|
|
127
|
-
| `maxRounds` | No | Max LLM tool-call iterations (default: 25) |
|
|
128
|
-
| `chains` | No | Agents to run after this one completes — see Agent Chains below |
|
|
129
|
-
|
|
130
|
-
**`chains` syntax:**
|
|
131
|
-
```yaml
|
|
132
|
-
chains:
|
|
133
|
-
- next_agent: ./followup.yaml # relative path from this agent file
|
|
134
|
-
trigger_type: auto # fires immediately, output passed as context
|
|
135
|
-
|
|
136
|
-
- next_agent: ./notify.yaml
|
|
137
|
-
trigger_type: manual # CLI: y/n prompt · HTTP: /approve-chain · MCP: approve_chain tool
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
**3. Run it**
|
|
106
|
+
**Run it:**
|
|
141
107
|
|
|
142
108
|
```bash
|
|
143
|
-
npx -y @openenthrium/oe-runtime
|
|
109
|
+
npx -y @openenthrium/oe-runtime ./my-skill
|
|
144
110
|
```
|
|
145
111
|
|
|
146
|
-
|
|
112
|
+
Pass the folder — OE Runtime resolves `agent.yaml` inside it automatically.
|
|
147
113
|
|
|
148
114
|
---
|
|
149
115
|
|
|
150
|
-
##
|
|
116
|
+
## Skills Library
|
|
151
117
|
|
|
152
|
-
|
|
153
|
-
|---|---|---|
|
|
154
|
-
| **CLI** | `npx -y @openenthrium/oe-runtime agent.yaml --config oe-config.json` | One-shot agent runs, scripts, CI/CD |
|
|
155
|
-
| **HTTP Server** | `npx -y @openenthrium/oe-runtime --serve --config oe-config.json` | Persistent API server any app can call |
|
|
118
|
+
Download [oe-runtime-skills.zip](https://github.com/enthrium/open-enthrium-ai-agent-runtime/releases/latest/download/oe-runtime-skills.zip) — 27 ready-to-run skills covering:
|
|
156
119
|
|
|
157
|
-
|
|
120
|
+
`sql-databases` · `nosql-cache` · `email` · `team-messaging` · `cloud-drives` · `file-storage` · `web-search` · `rest-api` · `graphql` · `ssh` · `image-generation` · `speech-audio` · `video-generation` · `music-generation` · `ocr-vision` · `iot-messaging` · `message-queues` · `blockchain-web3` · `productivity-crm` · `directory-identity` · `local-exec` · `hello-world` · and more
|
|
121
|
+
|
|
122
|
+
Each skill has a `SKILL.md` + `agent.yaml` + `oe-config.json` ready to go.
|
|
158
123
|
|
|
159
124
|
---
|
|
160
125
|
|
|
161
126
|
## HTTP Server Mode
|
|
162
127
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
**Step 1 — Enable server mode in `oe-config.json`:**
|
|
128
|
+
Enable server mode in `oe-config.json`:
|
|
166
129
|
|
|
167
130
|
```json
|
|
168
131
|
{
|
|
169
132
|
"llm": { "provider": "openai", "apiKey": "sk-...", "model": "gpt-4o" },
|
|
170
|
-
"server": {
|
|
171
|
-
"enabled": true,
|
|
172
|
-
"port": 3333,
|
|
173
|
-
"apiKey": "your-secret-api-key"
|
|
174
|
-
},
|
|
133
|
+
"server": { "enabled": true, "port": 3333, "apiKey": "your-secret" },
|
|
175
134
|
"connectors": [ ... ]
|
|
176
135
|
}
|
|
177
136
|
```
|
|
178
137
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
**Step 2 — Start in serve mode:**
|
|
138
|
+
Start:
|
|
182
139
|
|
|
183
140
|
```bash
|
|
184
141
|
npx -y @openenthrium/oe-runtime --serve --config oe-config.json
|
|
185
|
-
# 🚀 OE Runtime Server v1.6.1
|
|
186
|
-
# Run AI agents via HTTP
|
|
187
|
-
# Listening http://localhost:3333
|
|
188
142
|
```
|
|
189
143
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
All endpoints require the `x-api-key` header when `server.apiKey` is set in your config.
|
|
144
|
+
**Endpoints:**
|
|
193
145
|
|
|
194
146
|
| Method | Path | Description |
|
|
195
147
|
|---|---|---|
|
|
196
|
-
| `GET` | `/health` | Liveness check
|
|
197
|
-
| `
|
|
198
|
-
| `POST` | `/
|
|
199
|
-
| `POST` | `/run` | Run an agent from an inline YAML string |
|
|
200
|
-
| `POST` | `/run-file` | Run an agent from a YAML file path on disk |
|
|
148
|
+
| `GET` | `/health` | Liveness check |
|
|
149
|
+
| `POST` | `/run` | Run an agent from inline YAML |
|
|
150
|
+
| `POST` | `/run-file` | Run an agent from a file path on disk |
|
|
201
151
|
| `POST` | `/approve-chain` | Approve or reject a pending manual chain |
|
|
202
|
-
| `POST` | `/webhook/telegram` | Telegram webhook receiver (enabled via `server.webhook`) |
|
|
203
|
-
| `POST` | `/webhook/slack` | Slack webhook receiver (enabled via `server.webhook`) |
|
|
204
152
|
|
|
205
|
-
**POST /run** — body (inline YAML):
|
|
206
|
-
```json
|
|
207
|
-
{
|
|
208
|
-
"yaml": "name: My Agent\nsteps:\n - name: Run\n content: Execute the task",
|
|
209
|
-
"params": {},
|
|
210
|
-
"input": "run"
|
|
211
|
-
}
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
**POST /run-file** — body (file path on server disk):
|
|
215
|
-
```json
|
|
216
|
-
{
|
|
217
|
-
"file": "/path/to/agent.yaml",
|
|
218
|
-
"params": { "topic": "AI trends" },
|
|
219
|
-
"input": "run"
|
|
220
|
-
}
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
**Response** (both /run and /run-file):
|
|
224
|
-
```json
|
|
225
|
-
{
|
|
226
|
-
"success": true,
|
|
227
|
-
"output": "Agent output...",
|
|
228
|
-
"chains": [
|
|
229
|
-
{ "agent": "Follow-up Agent", "output": "Chain complete ✅", "chains": [], "pending_chains": [] }
|
|
230
|
-
],
|
|
231
|
-
"pending_chains": [
|
|
232
|
-
{ "chain_id": "abc123xyz", "next_agent": "./notify.yaml", "output_preview": "Agent output..." }
|
|
233
|
-
],
|
|
234
|
-
"duration_ms": 1234
|
|
235
|
-
}
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
**POST /approve-chain** — approve or reject a manual chain:
|
|
239
|
-
```json
|
|
240
|
-
{ "chain_id": "abc123xyz", "approved": true }
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
Response:
|
|
244
|
-
```json
|
|
245
|
-
{ "success": true, "approved": true, "output": "...", "chains": [], "pending_chains": [], "duration_ms": 890 }
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
**Example curl:**
|
|
249
153
|
```bash
|
|
250
|
-
#
|
|
251
|
-
curl http://localhost:3333/health -H "x-api-key: your-secret"
|
|
252
|
-
|
|
253
|
-
# Run agent from inline YAML
|
|
254
|
-
curl -X POST http://localhost:3333/run \
|
|
255
|
-
-H "x-api-key: your-secret" \
|
|
256
|
-
-H "Content-Type: application/json" \
|
|
257
|
-
-d '{"yaml": "name: Hi\nsteps:\n - name: Greet\n content: Say hi!", "params": {}, "input": "run"}'
|
|
258
|
-
|
|
259
|
-
# Run agent from file on disk (with chain support)
|
|
154
|
+
# Run a SKILL.md agent via HTTP
|
|
260
155
|
curl -X POST http://localhost:3333/run-file \
|
|
261
156
|
-H "x-api-key: your-secret" \
|
|
262
157
|
-H "Content-Type: application/json" \
|
|
263
|
-
-d '{"file": "/path/to/agent.yaml", "params": {}, "input": "run"}'
|
|
264
|
-
|
|
265
|
-
# Approve a pending manual chain
|
|
266
|
-
curl -X POST http://localhost:3333/approve-chain \
|
|
267
|
-
-H "x-api-key: your-secret" \
|
|
268
|
-
-H "Content-Type: application/json" \
|
|
269
|
-
-d '{"chain_id":"abc123xyz","approved":true}'
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
---
|
|
273
|
-
|
|
274
|
-
## Project System
|
|
275
|
-
|
|
276
|
-
`oe-project.json` sits alongside `oe-config.json` and registers multiple agents by name — so any interface (Telegram, Slack, HTTP, MCP) can invoke them by name rather than file path.
|
|
277
|
-
|
|
278
|
-
```json
|
|
279
|
-
{
|
|
280
|
-
"name": "Sales Pipeline",
|
|
281
|
-
"version": "1.0.0",
|
|
282
|
-
"description": "Outbound sales automation",
|
|
283
|
-
"author": "Your Name",
|
|
284
|
-
"tags": ["sales", "outbound"],
|
|
285
|
-
"agents": [
|
|
286
|
-
{ "name": "prospecting", "file": "./prospecting.yaml", "description": "Find and qualify leads" },
|
|
287
|
-
{ "name": "outreach", "file": "./outreach.yaml", "description": "Send personalised emails" },
|
|
288
|
-
{ "name": "chat", "file": "./chat-bot.yaml", "description": "Conversational assistant", "default": true }
|
|
289
|
-
],
|
|
290
|
-
"links": [
|
|
291
|
-
{ "name": "support", "project": "../support-project/oe-project.json" }
|
|
292
|
-
]
|
|
293
|
-
}
|
|
294
|
-
```
|
|
295
|
-
|
|
296
|
-
| Field | Description |
|
|
297
|
-
|---|---|
|
|
298
|
-
| `name`, `version`, `author`, `tags` | Project metadata |
|
|
299
|
-
| `agents[].name` | Short name used to invoke the agent (`/run prospecting`) |
|
|
300
|
-
| `agents[].file` | Path to the YAML agent file (relative to `oe-project.json`) |
|
|
301
|
-
| `agents[].default` | `true` — runs this agent when user sends a plain message (no command) |
|
|
302
|
-
| `links` | Cross-project references — run agents from linked projects |
|
|
303
|
-
|
|
304
|
-
---
|
|
305
|
-
|
|
306
|
-
## Messaging Platforms (Telegram, Slack, WhatsApp, Teams)
|
|
307
|
-
|
|
308
|
-
OE Runtime's HTTP server can receive messages from any webhook-based messaging platform and run agents in response — no separate bot framework needed.
|
|
309
|
-
|
|
310
|
-
**`oe-config.json` — enable webhook receiver:**
|
|
311
|
-
|
|
312
|
-
```json
|
|
313
|
-
{
|
|
314
|
-
"llm": { "provider": "openai", "apiKey": "sk-...", "model": "gpt-4o" },
|
|
315
|
-
"server": {
|
|
316
|
-
"enabled": true,
|
|
317
|
-
"port": 3333,
|
|
318
|
-
"publicUrl": "https://your-public-domain.com",
|
|
319
|
-
"webhook": {
|
|
320
|
-
"enabled": true,
|
|
321
|
-
"auto_reply": true
|
|
322
|
-
}
|
|
323
|
-
},
|
|
324
|
-
"connectors": [
|
|
325
|
-
{
|
|
326
|
-
"connection_name": "My Telegram Bot",
|
|
327
|
-
"connection_type": "telegram",
|
|
328
|
-
"baseUrl": "https://api.telegram.org/botYOUR_BOT_TOKEN"
|
|
329
|
-
}
|
|
330
|
-
]
|
|
331
|
-
}
|
|
332
|
-
```
|
|
333
|
-
|
|
334
|
-
OE Runtime automatically calls Telegram's `setWebhook` on startup. For Slack, paste the URL shown in the terminal into your Slack app's Event Subscriptions.
|
|
335
|
-
|
|
336
|
-
**Universal command language** — same commands work from Telegram, Slack, HTTP, or MCP:
|
|
337
|
-
|
|
338
|
-
| Command | Action |
|
|
339
|
-
|---|---|
|
|
340
|
-
| `/run <name>` | Run agent by name (from `oe-project.json`) |
|
|
341
|
-
| `/run <path>` | Run agent by file path |
|
|
342
|
-
| `/agents` | List all registered agents |
|
|
343
|
-
| `/approve` | Approve a pending manual chain |
|
|
344
|
-
| `/cancel` | Cancel a pending chain |
|
|
345
|
-
| `/status` | Health check — LLM, connectors, uptime |
|
|
346
|
-
| `/projects` | List linked projects |
|
|
347
|
-
| `/help` | Show all commands |
|
|
348
|
-
| Any message | Runs the `"default": true` agent |
|
|
349
|
-
|
|
350
|
-
**POST /command** — same commands from HTTP clients:
|
|
351
|
-
```bash
|
|
352
|
-
curl -X POST http://localhost:3333/command \
|
|
353
|
-
-H "x-api-key: your-secret" \
|
|
354
|
-
-H "Content-Type: application/json" \
|
|
355
|
-
-d '{"text": "/run prospecting"}'
|
|
158
|
+
-d '{"file": "/path/to/my-skill/agent.yaml", "params": {}, "input": "run"}'
|
|
356
159
|
```
|
|
357
160
|
|
|
358
|
-
**Supported platforms:**
|
|
359
|
-
|
|
360
|
-
| Platform | Webhook endpoint | Auto-registers |
|
|
361
|
-
|---|---|---|
|
|
362
|
-
| Telegram | `POST /webhook/telegram` | ✅ Yes — calls `setWebhook` on startup |
|
|
363
|
-
| Slack | `POST /webhook/slack` | No — paste URL in Slack Event Subscriptions |
|
|
364
|
-
| WhatsApp (Meta) | `POST /webhook/whatsapp` | No — paste URL in Meta Developer dashboard |
|
|
365
|
-
| GitHub | `POST /webhook/github` | No — paste URL in repo webhook settings |
|
|
366
|
-
|
|
367
161
|
---
|
|
368
162
|
|
|
369
|
-
## Embed in
|
|
370
|
-
|
|
371
|
-
Need to call agents from inside a Node.js application — without spawning a subprocess or making HTTP calls? Use the **OE Runtime SDK**:
|
|
163
|
+
## Embed in Node.js (SDK)
|
|
372
164
|
|
|
373
165
|
```bash
|
|
374
|
-
npm install @openenthrium/oe-runtime-sdk
|
|
166
|
+
npm install @openenthrium/oe-runtime-sdk
|
|
375
167
|
```
|
|
376
168
|
|
|
377
169
|
```js
|
|
378
170
|
const { runAgent } = require("@openenthrium/oe-runtime-sdk");
|
|
379
171
|
|
|
380
|
-
const result = await runAgent("./agent.yaml", "./oe-config.json"
|
|
172
|
+
const result = await runAgent("./my-skill/agent.yaml", "./oe-config.json");
|
|
381
173
|
console.log(result.output);
|
|
382
174
|
```
|
|
383
175
|
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
→ **[`@openenthrium/oe-runtime-sdk` on npm](https://www.npmjs.com/package/@openenthrium/oe-runtime-sdk)**
|
|
176
|
+
→ [npm package](https://www.npmjs.com/package/@openenthrium/oe-runtime-sdk)
|
|
387
177
|
|
|
388
178
|
---
|
|
389
179
|
|
|
390
|
-
##
|
|
391
|
-
|
|
392
|
-
Both **`npx @openenthrium/oe-runtime`** and the standalone binary exclude Oracle, MSSQL, SQLite, and Snowflake — these use native C++ addons that cannot be bundled into a single executable. npx downloads the same binary under the hood, so it has the same limitation.
|
|
393
|
-
|
|
394
|
-
If you need any of these four, run with Node.js directly instead:
|
|
395
|
-
```bash
|
|
396
|
-
git clone https://github.com/enthrium/open-enthrium-ai-agent-runtime.git
|
|
397
|
-
cd open-enthrium-ai-agent-runtime/server
|
|
398
|
-
yarn install
|
|
399
|
-
node cli/index.js agent.yaml --config oe-config.json
|
|
400
|
-
# or serve mode
|
|
401
|
-
node cli/index.js --serve --config oe-config.json
|
|
402
|
-
```
|
|
180
|
+
## Supported LLM Providers
|
|
403
181
|
|
|
404
|
-
|
|
182
|
+
`openai` · `anthropic` · `azure` · `groq` · `gemini` · `ollama` · `mistral` · `deepseek` · `together` · `fireworks` · `bedrock` · and more
|
|
405
183
|
|
|
406
184
|
---
|
|
407
185
|
|
|
408
|
-
##
|
|
409
|
-
|
|
410
|
-
**Connectors across multiple categories** — built in, no custom code required.
|
|
186
|
+
## Part of Open Enthrium
|
|
411
187
|
|
|
412
|
-
|
|
|
188
|
+
| | |
|
|
413
189
|
|---|---|
|
|
414
|
-
|
|
|
415
|
-
| **
|
|
416
|
-
| **
|
|
417
|
-
|
|
|
418
|
-
| **Filesystem** | Local directories — list, read, write, search files |
|
|
419
|
-
| **Email** | Gmail, Outlook, Zoho Mail, SMTP, IMAP, SendGrid |
|
|
420
|
-
| **Team Messaging** | Slack, Microsoft Teams, Discord, Telegram |
|
|
421
|
-
| **CRM / Productivity** | HubSpot, Salesforce, Notion, Airtable, Confluence |
|
|
422
|
-
| **Issue Tracking** | GitHub, Jira, GitLab, Linear |
|
|
423
|
-
| **REST API** | Any HTTP/REST endpoint — bearer, API key, basic auth |
|
|
424
|
-
| **GraphQL** | Any GraphQL endpoint |
|
|
425
|
-
| **SSH / SFTP** | Remote command execution and file transfer |
|
|
426
|
-
| **Message Queues** | Kafka, AWS SQS, Azure Service Bus, Google Pub/Sub, RabbitMQ |
|
|
427
|
-
| **IoT / MQTT** | MQTT brokers, AWS IoT |
|
|
428
|
-
| **Search** | Perplexity, Google Custom Search, Bing |
|
|
429
|
-
| **LDAP / Directory** | Active Directory, OpenLDAP, Azure AD |
|
|
430
|
-
| **OCR / Vision** | Azure Vision, Google Vision, AWS Textract |
|
|
431
|
-
| **Image Generation** | OpenAI gpt-image-1, FLUX, Stable Diffusion, Ideogram |
|
|
432
|
-
| **Speech & Audio** | ElevenLabs, OpenAI TTS, Azure Speech, Google TTS |
|
|
433
|
-
| **Video Generation** | Runway, Kling, Pika |
|
|
434
|
-
| **Music Generation** | kie.ai, Udio |
|
|
435
|
-
| **Web3 / Blockchain** | Ethereum, Polygon, Solana via web3.js / ethers.js |
|
|
436
|
-
| **Helpdesk** | Zendesk, Freshdesk, Intercom |
|
|
437
|
-
| **ERP** | SAP, Oracle ERP, Microsoft Dynamics |
|
|
438
|
-
| **+ more** | Healthcare (FHIR), Marketing, Analytics, Finance, HR, E-commerce, ... |
|
|
439
|
-
|
|
440
|
-
---
|
|
441
|
-
|
|
442
|
-
## Supported LLM Providers
|
|
443
|
-
|
|
444
|
-
`openai` · `anthropic` · `azure` · `groq` · `gemini` · `ollama` · `mistral` · `deepseek` · `together` · `fireworks` · `bedrock` · and more
|
|
190
|
+
| 🖥️ **Platform** | [open-enthrium-ai-platform](https://github.com/enthrium/open-enthrium-ai-platform) — full web app with workspaces, RAG, Agent Builder |
|
|
191
|
+
| 🔌 **MCP Server** | [open-enthrium-ai-mcp-server](https://github.com/enthrium/open-enthrium-ai-mcp-server) — connect Claude Code, Cursor, Windsurf to enterprise data |
|
|
192
|
+
| 📦 **Node.js SDK** | [@openenthrium/oe-runtime-sdk](https://www.npmjs.com/package/@openenthrium/oe-runtime-sdk) |
|
|
193
|
+
| 🌐 **Website** | [openenthrium.com](https://www.openenthrium.com) |
|
|
445
194
|
|
|
446
195
|
---
|
|
447
196
|
|
|
@@ -456,21 +205,9 @@ Contributions are welcome. Before opening a PR:
|
|
|
456
205
|
|
|
457
206
|
Where contributions are most valuable:
|
|
458
207
|
|
|
459
|
-
- New connector adapters
|
|
460
|
-
- Agent
|
|
461
|
-
- Bug fixes with clear reproduction steps
|
|
462
|
-
|
|
463
|
-
---
|
|
464
|
-
|
|
465
|
-
## Part of Open Enthrium
|
|
466
|
-
|
|
467
|
-
OE Agent Runtime is the open-source standalone execution layer of the [Open Enthrium](https://openenthrium.com) platform.
|
|
468
|
-
|
|
469
|
-
| | |
|
|
470
|
-
|---|---|
|
|
471
|
-
| 🖥️ **Platform** | [open-enthrium-ai-platform](https://github.com/enthrium/open-enthrium-ai-platform) — full web app with workspaces, RAG, Agent Builder, DLP |
|
|
472
|
-
| 🔌 **MCP Server** | [open-enthrium-ai-mcp-server](https://github.com/enthrium/open-enthrium-ai-mcp-server) — connect Claude Code, Cursor, Windsurf to enterprise data |
|
|
473
|
-
| 🌐 **Website** | [openenthrium.com](https://openenthrium.com) |
|
|
208
|
+
- **New connector adapters** — add to the platform repo; works across Runtime, Platform, and MCP automatically
|
|
209
|
+
- **Agent SKILL.md examples** for the community marketplace
|
|
210
|
+
- **Bug fixes** with clear reproduction steps
|
|
474
211
|
|
|
475
212
|
---
|
|
476
213
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openenthrium/oe-runtime",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.8",
|
|
4
4
|
"description": "OE Runtime - run AI agents against enterprise data sources. One binary, one YAML agent, one config file.",
|
|
5
5
|
"homepage": "https://www.openenthrium.com/runtime.html",
|
|
6
6
|
"repository": {
|