@openenthrium/oe-runtime 1.5.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 +117 -0
- package/bin.js +31 -0
- package/package.json +44 -0
- package/postinstall.js +65 -0
package/README.md
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# OE Runtime · `@openenthrium/oe-runtime`
|
|
2
|
+
|
|
3
|
+
**Run AI agents against 2,600+ enterprise data sources — databases, APIs, files, SSH, messaging, and more. One binary. One YAML agent. One config file.**
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@openenthrium/oe-runtime)
|
|
6
|
+
[](https://github.com/enthrium/open-enthrium-ai-agent-runtime/blob/main/LICENSE)
|
|
7
|
+
[](https://www.openenthrium.com/runtime.html)
|
|
8
|
+
[](https://discord.com/invite/vWsZ24Msn)
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## What is OE Runtime?
|
|
13
|
+
|
|
14
|
+
OE Runtime is a standalone binary that reads a declarative YAML agent file, connects to your enterprise data sources, and runs an AI-powered workflow — locally or as an HTTP API server. No Python, no LangChain, no code.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Quick Start
|
|
19
|
+
|
|
20
|
+
**1. Create your config file** (`oe-config.json`)
|
|
21
|
+
|
|
22
|
+
```json
|
|
23
|
+
{
|
|
24
|
+
"llm": {
|
|
25
|
+
"provider": "openai",
|
|
26
|
+
"apiKey": "sk-...",
|
|
27
|
+
"model": "gpt-4o"
|
|
28
|
+
},
|
|
29
|
+
"connectors": [
|
|
30
|
+
{
|
|
31
|
+
"connection_name": "my-db",
|
|
32
|
+
"connection_type": "postgresql",
|
|
33
|
+
"host": "localhost",
|
|
34
|
+
"port": 5432,
|
|
35
|
+
"database": "mydb",
|
|
36
|
+
"user": "postgres",
|
|
37
|
+
"password": "secret"
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**2. Create your agent file** (`agent.yaml`)
|
|
44
|
+
|
|
45
|
+
```yaml
|
|
46
|
+
name: DB Summary Agent
|
|
47
|
+
description: Summarises recent activity in the database
|
|
48
|
+
instructions: You are a data analyst. Use the available tools to answer questions about the database.
|
|
49
|
+
steps:
|
|
50
|
+
- name: Check recent orders
|
|
51
|
+
content: Query the last 10 orders and summarise the results.
|
|
52
|
+
connectors:
|
|
53
|
+
- connection_name: my-db
|
|
54
|
+
connection_type: postgresql
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**3. Run it**
|
|
58
|
+
|
|
59
|
+
macOS / Linux:
|
|
60
|
+
```bash
|
|
61
|
+
npx -y @openenthrium/oe-runtime agent.yaml --config oe-config.json
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Windows:
|
|
65
|
+
```bash
|
|
66
|
+
npx -y @openenthrium/oe-runtime agent.yaml --config oe-config.json
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
> **Note:** `-y` skips npx's install confirmation prompt — without it, npx blocks waiting for keyboard input and the agent never runs.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Run Modes
|
|
74
|
+
|
|
75
|
+
| Mode | Command | Best for |
|
|
76
|
+
|---|---|---|
|
|
77
|
+
| **CLI** | `npx -y @openenthrium/oe-runtime agent.yaml --config oe-config.json` | One-shot agent runs, scripts, CI/CD |
|
|
78
|
+
| **HTTP Server** | `npx -y @openenthrium/oe-runtime --serve --config oe-config.json` | Persistent API server any app can call |
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Supported Connectors
|
|
83
|
+
|
|
84
|
+
**2,600+ connectors across 45+ categories:**
|
|
85
|
+
|
|
86
|
+
| Category | Examples |
|
|
87
|
+
|---|---|
|
|
88
|
+
| **SQL Databases** | PostgreSQL, MySQL, MSSQL, Oracle, SQLite, Snowflake, BigQuery, Redshift |
|
|
89
|
+
| **NoSQL / Cache** | MongoDB, Redis, Elasticsearch, DynamoDB, Cassandra |
|
|
90
|
+
| **Object Storage** | AWS S3, GCS, Azure Blob, MinIO, Cloudflare R2 |
|
|
91
|
+
| **Cloud Drives** | Google Drive, OneDrive, Dropbox, Box |
|
|
92
|
+
| **Filesystem** | Local directories — list, read, write, search |
|
|
93
|
+
| **Email** | Gmail, Outlook, Zoho Mail, SMTP |
|
|
94
|
+
| **Team Messaging** | Slack, Microsoft Teams, Discord, Telegram |
|
|
95
|
+
| **CRM** | HubSpot, Salesforce, Notion, Airtable |
|
|
96
|
+
| **Issue Tracking** | GitHub, Jira, GitLab, Linear |
|
|
97
|
+
| **REST API** | Any HTTP/REST endpoint |
|
|
98
|
+
| **SSH / SFTP** | Remote command execution, file transfer |
|
|
99
|
+
| **Message Queues** | Kafka, AWS SQS, Google Pub/Sub, RabbitMQ |
|
|
100
|
+
| **+ more** | LDAP, OCR, Image Generation, Healthcare, ERP, Web3, ... |
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Links
|
|
105
|
+
|
|
106
|
+
- [Full Documentation](https://www.openenthrium.com/runtime.html)
|
|
107
|
+
- [GitHub Repository](https://github.com/enthrium/open-enthrium-ai-agent-runtime)
|
|
108
|
+
- [Sample Agents](https://github.com/enthrium/open-enthrium-ai-agent-runtime/releases/latest/download/oe-runtime-samples.zip) — 20 ready-to-use agent YAML files
|
|
109
|
+
- [Discord Community](https://discord.com/invite/vWsZ24Msn)
|
|
110
|
+
- [OE Platform](https://www.openenthrium.com/platform.html) — full web app with Agent Builder, RAG, workspaces
|
|
111
|
+
- [OE MCP Server](https://www.openenthrium.com/mcp.html) — connect Claude Code, Cursor & Windsurf to enterprise data
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## License
|
|
116
|
+
|
|
117
|
+
[Apache-2.0](https://github.com/enthrium/open-enthrium-ai-agent-runtime/blob/main/LICENSE) — free to use, modify, and deploy for any purpose including commercial use.
|
package/bin.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
const path = require("path");
|
|
5
|
+
const fs = require("fs");
|
|
6
|
+
const { spawn } = require("child_process");
|
|
7
|
+
|
|
8
|
+
const BINARY = {
|
|
9
|
+
win32: "oe-runtime-win.exe",
|
|
10
|
+
linux: "oe-runtime-linux",
|
|
11
|
+
darwin: "oe-runtime-macos",
|
|
12
|
+
}[process.platform];
|
|
13
|
+
|
|
14
|
+
if (!BINARY) {
|
|
15
|
+
console.error(`OE Runtime: unsupported platform "${process.platform}"`);
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const BIN_PATH = path.join(__dirname, "bin", BINARY);
|
|
20
|
+
|
|
21
|
+
if (!fs.existsSync(BIN_PATH)) {
|
|
22
|
+
console.error("OE Runtime: binary not found. Try reinstalling: npm install -g @openenthrium/oe-runtime");
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const child = spawn(BIN_PATH, process.argv.slice(2), { stdio: "inherit" });
|
|
27
|
+
child.on("exit", (code) => process.exit(code ?? 0));
|
|
28
|
+
child.on("error", (err) => {
|
|
29
|
+
console.error("OE Runtime:", err.message);
|
|
30
|
+
process.exit(1);
|
|
31
|
+
});
|
package/package.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@openenthrium/oe-runtime",
|
|
3
|
+
"version": "1.5.8",
|
|
4
|
+
"description": "OE Runtime - run AI agents against 2,600+ enterprise data sources. One binary, one YAML agent, one config file.",
|
|
5
|
+
"homepage": "https://www.openenthrium.com/runtime.html",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/enthrium/open-enthrium-ai-agent-runtime.git"
|
|
9
|
+
},
|
|
10
|
+
"license": "Apache-2.0",
|
|
11
|
+
"bin": {
|
|
12
|
+
"oe-runtime": "bin.js"
|
|
13
|
+
},
|
|
14
|
+
"scripts": {
|
|
15
|
+
"postinstall": "node postinstall.js"
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"bin.js",
|
|
19
|
+
"postinstall.js",
|
|
20
|
+
"README.md"
|
|
21
|
+
],
|
|
22
|
+
"engines": {
|
|
23
|
+
"node": ">=18"
|
|
24
|
+
},
|
|
25
|
+
"keywords": [
|
|
26
|
+
"ai-agents",
|
|
27
|
+
"agent-runtime",
|
|
28
|
+
"yaml-agents",
|
|
29
|
+
"enterprise-ai",
|
|
30
|
+
"ai-automation",
|
|
31
|
+
"claude",
|
|
32
|
+
"openai",
|
|
33
|
+
"database",
|
|
34
|
+
"postgresql",
|
|
35
|
+
"mysql",
|
|
36
|
+
"mongodb",
|
|
37
|
+
"s3",
|
|
38
|
+
"slack",
|
|
39
|
+
"github",
|
|
40
|
+
"ssh",
|
|
41
|
+
"rest-api",
|
|
42
|
+
"workflow-automation"
|
|
43
|
+
]
|
|
44
|
+
}
|
package/postinstall.js
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
const https = require("https");
|
|
5
|
+
const fs = require("fs");
|
|
6
|
+
const path = require("path");
|
|
7
|
+
|
|
8
|
+
const VERSION = require("./package.json").version;
|
|
9
|
+
|
|
10
|
+
const BINARY = {
|
|
11
|
+
win32: "oe-runtime-win.exe",
|
|
12
|
+
linux: "oe-runtime-linux",
|
|
13
|
+
darwin: "oe-runtime-macos",
|
|
14
|
+
}[process.platform];
|
|
15
|
+
|
|
16
|
+
if (!BINARY) {
|
|
17
|
+
console.error(`OE Runtime: unsupported platform "${process.platform}"`);
|
|
18
|
+
process.exit(1);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const URL = `https://github.com/enthrium/open-enthrium-ai-agent-runtime/releases/download/v${VERSION}/${BINARY}`;
|
|
22
|
+
const DEST = path.join(__dirname, "bin", BINARY);
|
|
23
|
+
|
|
24
|
+
function download(url, dest, redirects) {
|
|
25
|
+
if (redirects > 5) return Promise.reject(new Error("Too many redirects"));
|
|
26
|
+
return new Promise((resolve, reject) => {
|
|
27
|
+
fs.mkdirSync(path.dirname(dest), { recursive: true });
|
|
28
|
+
const tmp = dest + ".tmp";
|
|
29
|
+
const file = fs.createWriteStream(tmp);
|
|
30
|
+
https.get(url, (res) => {
|
|
31
|
+
if (res.statusCode === 301 || res.statusCode === 302) {
|
|
32
|
+
file.close();
|
|
33
|
+
fs.unlinkSync(tmp);
|
|
34
|
+
return download(res.headers.location, dest, redirects + 1).then(resolve).catch(reject);
|
|
35
|
+
}
|
|
36
|
+
if (res.statusCode !== 200) {
|
|
37
|
+
file.close();
|
|
38
|
+
fs.unlinkSync(tmp);
|
|
39
|
+
return reject(new Error(`HTTP ${res.statusCode} for ${url}`));
|
|
40
|
+
}
|
|
41
|
+
res.pipe(file);
|
|
42
|
+
file.on("finish", () => {
|
|
43
|
+
file.close(() => {
|
|
44
|
+
fs.renameSync(tmp, dest);
|
|
45
|
+
resolve();
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
}).on("error", (err) => {
|
|
49
|
+
file.close();
|
|
50
|
+
if (fs.existsSync(tmp)) fs.unlinkSync(tmp);
|
|
51
|
+
reject(err);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
(async () => {
|
|
57
|
+
console.log(`OE Runtime: downloading binary for ${process.platform}...`);
|
|
58
|
+
await download(URL, DEST, 0);
|
|
59
|
+
if (process.platform !== "win32") fs.chmodSync(DEST, "755");
|
|
60
|
+
console.log("OE Runtime: ready.");
|
|
61
|
+
})().catch((err) => {
|
|
62
|
+
console.error("OE Runtime: failed to download binary —", err.message);
|
|
63
|
+
console.error(`Download manually from: ${URL}`);
|
|
64
|
+
process.exit(1);
|
|
65
|
+
});
|