@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.
Files changed (4) hide show
  1. package/README.md +117 -0
  2. package/bin.js +31 -0
  3. package/package.json +44 -0
  4. 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
+ [![npm](https://img.shields.io/npm/v/@openenthrium/oe-runtime?color=4f46e5)](https://www.npmjs.com/package/@openenthrium/oe-runtime)
6
+ [![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-4f46e5.svg)](https://github.com/enthrium/open-enthrium-ai-agent-runtime/blob/main/LICENSE)
7
+ [![Website](https://img.shields.io/badge/Website-openenthrium.com-4f46e5)](https://www.openenthrium.com/runtime.html)
8
+ [![Discord](https://img.shields.io/badge/Discord-Community-5865F2?logo=discord&logoColor=white)](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
+ });