overai 1.4.7 → 1.4.9
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 +50 -0
- package/dist/enterprise/license.d.ts +32 -0
- package/dist/enterprise/license.js +65 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +7 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -205,6 +205,56 @@ To contribute or modify the framework:
|
|
|
205
205
|
npm run build
|
|
206
206
|
```
|
|
207
207
|
|
|
208
|
+
## 💰 Business-in-a-Box (SaaS Starter Kit)
|
|
209
|
+
|
|
210
|
+
Launch your own AI API business in minutes. We provide a complete **SaaS Server Example** including:
|
|
211
|
+
* **Stripe Integration** (Mock): Simulate payments and top-ups.
|
|
212
|
+
* **Credit System**: Deduct credits per request (1 credit = 1 request).
|
|
213
|
+
* **API Authentication**: Secure endpoints with API Keys.
|
|
214
|
+
* **Rate Limiting**: Prevent abuse from free users.
|
|
215
|
+
|
|
216
|
+
**Run the SaaS Server:**
|
|
217
|
+
```bash
|
|
218
|
+
# Install dependencies
|
|
219
|
+
npm install express @types/express
|
|
220
|
+
|
|
221
|
+
# Run the server
|
|
222
|
+
npx ts-node examples/saas-server.ts
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
**Test your API:**
|
|
226
|
+
```bash
|
|
227
|
+
curl -X POST http://localhost:3001/api/v1/agent/chat \
|
|
228
|
+
-H "Content-Type: application/json" \
|
|
229
|
+
-H "x-api-key: sk_demo_12345" \
|
|
230
|
+
-d '{"message": "Hello, explain how you work in 1 sentence."}'
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
## 🏢 Enterprise & Licensing (Open Core)
|
|
234
|
+
|
|
235
|
+
OverAI follows an **Open Core** model. The core framework is MIT-licensed and free forever.
|
|
236
|
+
For enterprises requiring advanced features, we provide a commercial license that unlocks:
|
|
237
|
+
|
|
238
|
+
* **SSO & Identity**: Integrate with Okta, Active Directory, and Google Workspace.
|
|
239
|
+
* **Audit Logs**: Comprehensive tracking of every agent action for compliance.
|
|
240
|
+
* **Role-Based Access Control (RBAC)**: Fine-grained permissions for teams.
|
|
241
|
+
* **Priority Support**: SLA-backed support with < 4h response time.
|
|
242
|
+
|
|
243
|
+
To enable enterprise features:
|
|
244
|
+
|
|
245
|
+
```typescript
|
|
246
|
+
import { license } from 'overai';
|
|
247
|
+
|
|
248
|
+
// Verify your license key
|
|
249
|
+
await license.setLicenseKey(process.env.OVERAI_LICENSE_KEY);
|
|
250
|
+
|
|
251
|
+
if (license.hasFeature('audit_logs')) {
|
|
252
|
+
console.log("✅ Enterprise Audit Logs Enabled");
|
|
253
|
+
}
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
Contact **sales@overai.com** for pricing and details.
|
|
257
|
+
|
|
208
258
|
## License
|
|
209
259
|
|
|
210
260
|
MIT
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OverAI Enterprise License Manager
|
|
3
|
+
*
|
|
4
|
+
* This module allows verifying enterprise license keys to unlock premium features
|
|
5
|
+
* such as SSO, Audit Logs, and Advanced Analytics.
|
|
6
|
+
*/
|
|
7
|
+
export interface LicenseInfo {
|
|
8
|
+
tier: 'free' | 'pro' | 'enterprise';
|
|
9
|
+
valid: boolean;
|
|
10
|
+
expiresAt?: Date;
|
|
11
|
+
features: string[];
|
|
12
|
+
}
|
|
13
|
+
export declare class LicenseManager {
|
|
14
|
+
private static instance;
|
|
15
|
+
private currentLicense;
|
|
16
|
+
private constructor();
|
|
17
|
+
static getInstance(): LicenseManager;
|
|
18
|
+
/**
|
|
19
|
+
* Set and verify a license key
|
|
20
|
+
* @param key The license key string (e.g. "OVERAI_ENT_...")
|
|
21
|
+
*/
|
|
22
|
+
setLicenseKey(key: string): Promise<boolean>;
|
|
23
|
+
/**
|
|
24
|
+
* Check if a specific feature is enabled
|
|
25
|
+
*/
|
|
26
|
+
hasFeature(feature: string): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Get current license info
|
|
29
|
+
*/
|
|
30
|
+
getInfo(): LicenseInfo;
|
|
31
|
+
}
|
|
32
|
+
export declare const license: LicenseManager;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* OverAI Enterprise License Manager
|
|
4
|
+
*
|
|
5
|
+
* This module allows verifying enterprise license keys to unlock premium features
|
|
6
|
+
* such as SSO, Audit Logs, and Advanced Analytics.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.license = exports.LicenseManager = void 0;
|
|
10
|
+
class LicenseManager {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.currentLicense = {
|
|
13
|
+
tier: 'free',
|
|
14
|
+
valid: true,
|
|
15
|
+
features: []
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
static getInstance() {
|
|
19
|
+
if (!LicenseManager.instance) {
|
|
20
|
+
LicenseManager.instance = new LicenseManager();
|
|
21
|
+
}
|
|
22
|
+
return LicenseManager.instance;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Set and verify a license key
|
|
26
|
+
* @param key The license key string (e.g. "OVERAI_ENT_...")
|
|
27
|
+
*/
|
|
28
|
+
async setLicenseKey(key) {
|
|
29
|
+
// TODO: In production, verify this key against your backend API
|
|
30
|
+
// For now, we simulate a check
|
|
31
|
+
if (key.startsWith('OVERAI_ENT_')) {
|
|
32
|
+
this.currentLicense = {
|
|
33
|
+
tier: 'enterprise',
|
|
34
|
+
valid: true,
|
|
35
|
+
expiresAt: new Date(new Date().setFullYear(new Date().getFullYear() + 1)),
|
|
36
|
+
features: ['sso', 'audit_logs', 'priority_support']
|
|
37
|
+
};
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
else if (key.startsWith('OVERAI_PRO_')) {
|
|
41
|
+
this.currentLicense = {
|
|
42
|
+
tier: 'pro',
|
|
43
|
+
valid: true,
|
|
44
|
+
expiresAt: new Date(new Date().setMonth(new Date().getMonth() + 1)),
|
|
45
|
+
features: ['analytics', 'increased_limits']
|
|
46
|
+
};
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Check if a specific feature is enabled
|
|
53
|
+
*/
|
|
54
|
+
hasFeature(feature) {
|
|
55
|
+
return this.currentLicense.features.includes(feature);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get current license info
|
|
59
|
+
*/
|
|
60
|
+
getInfo() {
|
|
61
|
+
return { ...this.currentLicense };
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.LicenseManager = LicenseManager;
|
|
65
|
+
exports.license = LicenseManager.getInstance();
|
package/dist/index.d.ts
CHANGED
|
@@ -90,3 +90,4 @@ export { generateText as aiGenerateText, streamText as aiStreamText, type Genera
|
|
|
90
90
|
export { createSlackBot, SlackBot, verifySlackSignature, parseSlackMessage, type SlackConfig, type SlackMessage, type SlackResponse, type SlackEventHandler, } from './integrations/slack';
|
|
91
91
|
export { createNLPostgres, NLPostgresClient, createPostgresTool, type PostgresConfig as NLPostgresConfig, type TableSchema, type ColumnSchema, type QueryResult, type NLQueryResult, } from './integrations/postgres';
|
|
92
92
|
export { createComputerUse, ComputerUseClient, createComputerUseAgent, createCLIApprovalPrompt, type ComputerUseConfig, type ComputerUseTools, type ComputerAction, type ScreenshotResult, } from './integrations/computer-use';
|
|
93
|
+
export { LicenseManager, license, type LicenseInfo } from './enterprise/license';
|
package/dist/index.js
CHANGED
|
@@ -59,7 +59,7 @@ exports.MemoryObservabilityAdapter = exports.noopAdapter = exports.NoopObservabi
|
|
|
59
59
|
exports.createScheduler = exports.Scheduler = exports.MODE_POLICIES = exports.cliApprovalPrompt = exports.createAutonomyManager = exports.AutonomyManager = exports.DEFAULT_BLOCKED_PATHS = exports.DEFAULT_BLOCKED_COMMANDS = exports.CommandValidator = exports.sandboxExec = exports.createSandboxExecutor = exports.SandboxExecutor = exports.createDiffViewer = exports.DiffViewer = exports.createGitManager = exports.GitManager = exports.DEFAULT_IGNORE_PATTERNS = exports.getRepoTree = exports.createRepoMap = exports.RepoMap = exports.createHistoryManager = exports.HistoryManager = exports.createStatusDisplay = exports.StatusDisplay = exports.createInteractiveTUI = exports.InteractiveTUI = exports.MODEL_PRICING = exports.formatCost = exports.estimateTokens = exports.createCostTracker = exports.CostTracker = exports.isSlashCommand = exports.executeSlashCommand = exports.parseSlashCommand = exports.registerCommand = exports.createSlashCommandHandler = exports.SlashCommandHandler = exports.ADAPTERS = exports.COMMUNITY_PROVIDERS = exports.PROVIDER_ALIASES = exports.AISDK_PROVIDERS = exports.trace = exports.resetObservabilityAdapter = exports.getObservabilityAdapter = exports.setObservabilityAdapter = exports.clearAdapterCache = exports.createObservabilityAdapter = exports.createConsoleAdapter = exports.ConsoleObservabilityAdapter = exports.createMemoryAdapter = void 0;
|
|
60
60
|
exports.applyMiddleware = exports.wrapModel = exports.createAILoggingMiddleware = exports.createCachingMiddleware = exports.resolveModelAlias = exports.hasModelAlias = exports.listModelAliases = exports.MODEL_ALIASES = exports.parseModel = exports.getModel = exports.createModel = exports.functionToTool = exports.createToolSet = exports.defineTool = exports.aiEmbedMany = exports.aiEmbed = exports.aiGenerateImage = exports.aiStreamObject = exports.aiGenerateObject = exports.aiStreamText = exports.aiGenerateText = exports.getQuickContext = exports.createFastContext = exports.FastContext = exports.triggerN8NWebhook = exports.createN8NIntegration = exports.N8NIntegration = exports.externalAgentAsTool = exports.createExternalAgent = exports.getExternalAgentRegistry = exports.GenericExternalAgent = exports.AiderAgent = exports.CodexCliAgent = exports.GeminiCliAgent = exports.ClaudeCodeAgent = exports.BaseExternalAgent = exports.renderWorkflow = exports.createFlowDisplay = exports.FlowDisplay = exports.createFileCheckpointStorage = exports.FileCheckpointStorage = exports.MemoryCheckpointStorage = exports.createCheckpointManager = exports.CheckpointManager = exports.createFileJobStorage = exports.FileJobStorage = exports.MemoryJobStorage = exports.createJobQueue = exports.JobQueue = exports.cronExpressions = void 0;
|
|
61
61
|
exports.generateSpeech = exports.createDangerousPatternChecker = exports.isDangerous = exports.DANGEROUS_PATTERNS = exports.ToolApprovalTimeoutError = exports.ToolApprovalDeniedError = exports.withApproval = exports.setApprovalManager = exports.getApprovalManager = exports.ApprovalManager = exports.pipeUIMessageStreamToResponse = exports.toUIMessageStreamResponse = exports.createApprovalResponse = exports.getToolsNeedingApproval = exports.hasPendingApprovals = exports.createSystemMessage = exports.createTextMessage = exports.safeValidateUIMessages = exports.validateUIMessages = exports.convertToUIMessages = exports.convertToModelMessages = exports.stopWhen = exports.stopWhenNoToolCalls = exports.stopAfterSteps = exports.AgentLoop = exports.createAgentLoop = exports.createPagesHandler = exports.createRouteHandler = exports.createNestHandler = exports.createFastifyHandler = exports.createHonoHandler = exports.createExpressHandler = exports.createHttpHandler = exports.mcpToolsToAITools = exports.closeAllMCPClients = exports.closeMCPClient = exports.getMCPClient = exports.createMCP = exports.isDataUrl = exports.isUrl = exports.uint8ArrayToBase64 = exports.base64ToUint8Array = exports.toMessageContent = exports.createMultimodalMessage = exports.createTextPart = exports.createPdfPart = exports.createFilePart = exports.createImagePart = exports.getAICacheStats = exports.clearAICache = void 0;
|
|
62
|
-
exports.createCLIApprovalPrompt = exports.createComputerUseAgent = exports.ComputerUseClient = exports.createComputerUse = exports.createPostgresTool = exports.NLPostgresClient = exports.createNLPostgres = exports.parseSlackMessage = exports.verifySlackSignature = exports.SlackBot = exports.createSlackBot = exports.createTelemetrySettings = exports.clearEvents = exports.getEvents = exports.recordEvent = exports.createTelemetryMiddleware = exports.withSpan = exports.createAISpan = exports.getTracer = exports.initOpenTelemetry = exports.isTelemetryEnabled = exports.disableAITelemetry = exports.enableAITelemetry = exports.getTelemetrySettings = exports.configureTelemetry = exports.autoEnableDevTools = exports.createDevToolsMiddleware = exports.getDevToolsUrl = exports.getDevToolsState = exports.isDevToolsEnabled = exports.disableDevTools = exports.enableDevTools = exports.TRANSCRIPTION_MODELS = exports.SPEECH_MODELS = exports.transcribe = void 0;
|
|
62
|
+
exports.license = exports.LicenseManager = exports.createCLIApprovalPrompt = exports.createComputerUseAgent = exports.ComputerUseClient = exports.createComputerUse = exports.createPostgresTool = exports.NLPostgresClient = exports.createNLPostgres = exports.parseSlackMessage = exports.verifySlackSignature = exports.SlackBot = exports.createSlackBot = exports.createTelemetrySettings = exports.clearEvents = exports.getEvents = exports.recordEvent = exports.createTelemetryMiddleware = exports.withSpan = exports.createAISpan = exports.getTracer = exports.initOpenTelemetry = exports.isTelemetryEnabled = exports.disableAITelemetry = exports.enableAITelemetry = exports.getTelemetrySettings = exports.configureTelemetry = exports.autoEnableDevTools = exports.createDevToolsMiddleware = exports.getDevToolsUrl = exports.getDevToolsState = exports.isDevToolsEnabled = exports.disableDevTools = exports.enableDevTools = exports.TRANSCRIPTION_MODELS = exports.SPEECH_MODELS = exports.transcribe = void 0;
|
|
63
63
|
// ============================================================================
|
|
64
64
|
// CORE API - The main classes users should use
|
|
65
65
|
// ============================================================================
|
|
@@ -608,3 +608,9 @@ Object.defineProperty(exports, "createComputerUse", { enumerable: true, get: fun
|
|
|
608
608
|
Object.defineProperty(exports, "ComputerUseClient", { enumerable: true, get: function () { return computer_use_1.ComputerUseClient; } });
|
|
609
609
|
Object.defineProperty(exports, "createComputerUseAgent", { enumerable: true, get: function () { return computer_use_1.createComputerUseAgent; } });
|
|
610
610
|
Object.defineProperty(exports, "createCLIApprovalPrompt", { enumerable: true, get: function () { return computer_use_1.createCLIApprovalPrompt; } });
|
|
611
|
+
// ============================================================================
|
|
612
|
+
// ENTERPRISE & LICENSING
|
|
613
|
+
// ============================================================================
|
|
614
|
+
var license_1 = require("./enterprise/license");
|
|
615
|
+
Object.defineProperty(exports, "LicenseManager", { enumerable: true, get: function () { return license_1.LicenseManager; } });
|
|
616
|
+
Object.defineProperty(exports, "license", { enumerable: true, get: function () { return license_1.license; } });
|