openoracle-node-sdk
Version:
OpenOracle Node.js SDK - Intelligent Oracle Routing with Multiple LLM Providers
153 lines (135 loc) • 3.97 kB
text/typescript
/**
* OpenOracle SDK - Pure AI Oracle Routing for Prediction Markets
*
* A comprehensive Node.js SDK for building prediction markets with pure AI-based
* oracle selection and market creation.
*
* Key Components:
* - MarketCreationService: Complete market creation with AI routing
* - MarketOptimizerService: Transform invalid questions into valid markets
* - PureAIRouter: Pure AI-based oracle selection
* - SchemaValidator: Type-safe data validation with Zod
*
* @example
* ```typescript
* import { MarketCreationService } from '@openoracle/node-sdk'
*
* // Initialize the service with OpenRouter API key
* const service = new MarketCreationService({
* openrouterApiKey: process.env.OPENROUTER_API_KEY,
* web3RpcUrl: 'https://mainnet.base.org'
* })
*
* // Create a prediction market
* const response = await service.createPredictionMarket({
* text: "Will BTC exceed $100k by end of 2024?",
* creator_address: "0x...",
* initial_liquidity: 100
* })
* console.log(`Market ID: ${response.market_id}`)
* console.log(`Oracle: ${response.routing.oracle_provider}`)
* ```
*/
export const VERSION = '0.1.0'
export const AUTHOR = 'OpenOracle Team'
export const LICENSE = 'MIT'
export const DESCRIPTION = 'Intelligent Oracle Routing for Prediction Markets'
// Core services - main public API
export { MarketCreationService } from './services/MarketCreationService'
export { MarketOptimizerService } from './services/MarketOptimizerService'
export { InteractiveMarketService } from './services/InteractiveMarketService'
export { ProxyClient, RateLimiter } from './services/ProxyClient'
export { SecureAIRouter, type AIRoutingConfig } from './services/SecureAIRouter'
export { WalrusStorage, type SDKCallRecord, type WalrusBlobInfo } from './services/WalrusStorage'
export { PureAIRouter } from './ai/pure-ai-router'
export { OracleConfig, getConfig, setConfig } from './core/config'
export { OracleClient } from './core/client'
// Exceptions
export * from './core/exceptions'
// API clients
export { OracleAPI } from './api/oracle-api'
export { TwitterAPI } from './api/twitter-api'
export { PollAPI } from './api/poll-api'
// Schema validation and models
export * from './schemas/prediction-market-schemas'
export * from './schemas/oracle-schemas'
// Database (optional)
export { SupabaseClient } from './database/supabase-client'
// Enums and constants
export * from './types/enums'
// Utilities
export { getLogger, OracleLogger, createTimer, logPerformance } from './utils/logger'
export * from './utils/async-helpers'
// LLM Providers
export {
LLMProvider,
LLMRouter,
BaseLLMProvider,
OpenAIProvider,
OpenRouterProvider,
WebLLMProvider,
ChatMessage,
MessageRole,
LLMRequest,
LLMResponse,
TokenUsage,
ProviderConfig,
createOpenAIProvider,
createOpenRouterProvider,
createWebLLMProvider,
createLLMRouter,
generateResponse,
generateJsonResponse
} from './ai/llm-providers'
// Package metadata
export const META = {
name: 'openoracle-sdk',
version: VERSION,
description: DESCRIPTION,
author: AUTHOR,
license: LICENSE,
nodeRequires: '>=16.0.0',
homepage: 'https://github.com/openoracle/node-sdk',
documentation: 'https://docs.openoracle.ai',
repository: 'https://github.com/openoracle/node-sdk.git',
}
/**
* Get the current version of the OpenOracle SDK.
*/
export function getVersion(): string {
return VERSION
}
/**
* Get package information as an object.
*/
export function getInfo(): typeof META {
return { ...META }
}
// Default export for convenience
export default {
// Core Services
MarketCreationService,
MarketOptimizerService,
InteractiveMarketService,
ProxyClient,
RateLimiter,
SecureAIRouter,
WalrusStorage,
PureAIRouter,
OracleConfig,
OracleClient,
getConfig,
setConfig,
// APIs
OracleAPI,
TwitterAPI,
PollAPI,
// Database
SupabaseClient,
// Utils
getVersion,
getInfo,
// Metadata
VERSION,
META
}