@toromarket/sdk 0.1.0
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/dist/index.cjs +895 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +801 -0
- package/dist/index.d.ts +801 -0
- package/dist/index.js +849 -0
- package/dist/index.js.map +1 -0
- package/package.json +36 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/client.ts","../src/errors.ts","../src/resources/auth.ts","../src/resources/chat.ts","../src/resources/funds.ts","../src/resources/leaderboards.ts","../src/resources/markets.ts","../src/resources/portfolio.ts","../src/resources/predictions.ts","../src/resources/profiles.ts","../src/resources/intelligence.ts","../src/resources/performance.ts","../src/resources/wars.ts","../src/resources/search.ts","../src/resources/watchlist.ts","../src/resources/social.ts","../src/resources/billing.ts","../src/resources/operators.ts","../src/resources/stake.ts","../src/resources/traces.ts"],"sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { ToromarketError } from \"./errors.js\";\nimport { AuthResource } from \"./resources/auth.js\";\nimport { ChatResource } from \"./resources/chat.js\";\nimport { FundsResource } from \"./resources/funds.js\";\nimport { LeaderboardsResource } from \"./resources/leaderboards.js\";\nimport { MarketsResource } from \"./resources/markets.js\";\nimport { PortfolioResource } from \"./resources/portfolio.js\";\nimport { PredictionsResource } from \"./resources/predictions.js\";\nimport { ProfilesResource } from \"./resources/profiles.js\";\nimport { IntelligenceResource } from \"./resources/intelligence.js\";\nimport { PerformanceResource } from \"./resources/performance.js\";\nimport { WarsResource } from \"./resources/wars.js\";\nimport { SearchResource } from \"./resources/search.js\";\nimport { WatchlistResource } from \"./resources/watchlist.js\";\nimport { SocialResource } from \"./resources/social.js\";\nimport { BillingResource } from \"./resources/billing.js\";\nimport { OperatorsResource } from \"./resources/operators.js\";\nimport { StakeResource } from \"./resources/stake.js\";\nimport { TracesResource } from \"./resources/traces.js\";\nimport type { ApiEnvelope } from \"./types.js\";\n\nconst MUTATING_METHODS = new Set([\"POST\", \"PUT\", \"PATCH\", \"DELETE\"]);\n\nexport interface ToromarketClientConfig {\n baseUrl: string;\n token?: string;\n apiKey?: string;\n clientId?: string;\n agentSecret?: string;\n timeoutMs?: number;\n}\n\nconst DEFAULT_TIMEOUT_MS = 30_000;\nconst MAX_RETRY_ATTEMPTS = 2;\nconst RETRY_DELAY_MS = 1_000;\n\nexport class ToromarketClient {\n private readonly baseUrl: string;\n private readonly clientId: string | null;\n private readonly apiKey: string | null;\n private readonly agentSecret: string | null;\n private readonly timeoutMs: number;\n private token: string | null;\n\n public readonly auth: AuthResource;\n public readonly predictions: PredictionsResource;\n public readonly portfolio: PortfolioResource;\n public readonly markets: MarketsResource;\n public readonly chat: ChatResource;\n public readonly funds: FundsResource;\n public readonly leaderboards: LeaderboardsResource;\n public readonly profiles: ProfilesResource;\n public readonly intelligence: IntelligenceResource;\n public readonly performance: PerformanceResource;\n public readonly wars: WarsResource;\n public readonly search: SearchResource;\n public readonly watchlist: WatchlistResource;\n public readonly social: SocialResource;\n public readonly billing: BillingResource;\n public readonly traces: TracesResource;\n public readonly operators: OperatorsResource;\n public readonly stake: StakeResource;\n\n public constructor(config: ToromarketClientConfig) {\n this.baseUrl = config.baseUrl.replace(/\\/+$/, \"\");\n this.token = config.token ?? null;\n this.apiKey = config.apiKey ?? null;\n this.clientId = config.clientId ?? null;\n this.agentSecret = config.agentSecret ?? null;\n this.timeoutMs = config.timeoutMs ?? DEFAULT_TIMEOUT_MS;\n\n this.auth = new AuthResource(this);\n this.predictions = new PredictionsResource(this);\n this.portfolio = new PortfolioResource(this);\n this.markets = new MarketsResource(this);\n this.chat = new ChatResource(this);\n this.funds = new FundsResource(this);\n this.leaderboards = new LeaderboardsResource(this);\n this.profiles = new ProfilesResource(this);\n this.intelligence = new IntelligenceResource(this);\n this.performance = new PerformanceResource(this);\n this.wars = new WarsResource(this);\n this.search = new SearchResource(this);\n this.watchlist = new WatchlistResource(this);\n this.social = new SocialResource(this);\n this.billing = new BillingResource(this);\n this.traces = new TracesResource(this);\n this.operators = new OperatorsResource(this);\n this.stake = new StakeResource(this);\n }\n\n public setToken(token: string | null): void {\n this.token = token;\n }\n\n public getToken(): string | null {\n return this.token;\n }\n\n public getAgentSecret(): string | null {\n return this.agentSecret;\n }\n\n private isRetryableStatus(status: number): boolean {\n return status >= 500;\n }\n\n public async request<T>(\n method: string,\n path: string,\n body?: unknown,\n options?: { headers?: Record<string, string> }\n ): Promise<T> {\n const upperMethod = method.toUpperCase();\n\n // Generate Idempotency-Key once before the loop so retries reuse the same key\n const idempotencyKey = MUTATING_METHODS.has(upperMethod)\n ? randomUUID()\n : undefined;\n\n for (let attempt = 0; attempt < MAX_RETRY_ATTEMPTS; attempt++) {\n const isLastAttempt = attempt === MAX_RETRY_ATTEMPTS - 1;\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), this.timeoutMs);\n\n const init: RequestInit = {\n method,\n headers: {\n \"Content-Type\": \"application/json\",\n ...(this.clientId ? { \"x-toromarket-client\": this.clientId } : {}),\n ...(this.apiKey ? { \"X-API-Key\": this.apiKey } : {}),\n ...(this.token ? { Authorization: `Bearer ${this.token}` } : {}),\n ...(idempotencyKey\n ? { \"Idempotency-Key\": idempotencyKey }\n : {}),\n ...options?.headers\n },\n signal: controller.signal,\n };\n if (body !== undefined) {\n init.body = JSON.stringify(body);\n }\n\n let response: Response;\n try {\n response = await fetch(`${this.baseUrl}${path}`, init);\n } catch (fetchError) {\n clearTimeout(timeoutId);\n\n // Network errors and timeouts are retryable\n if (!isLastAttempt) {\n if (\n fetchError instanceof TypeError ||\n (fetchError instanceof DOMException && fetchError.name === \"AbortError\")\n ) {\n await new Promise((resolve) => setTimeout(resolve, RETRY_DELAY_MS));\n continue;\n }\n }\n\n if (fetchError instanceof DOMException && fetchError.name === \"AbortError\") {\n throw new ToromarketError(\n \"Request timed out\",\n 408,\n \"TIMEOUT\"\n );\n }\n if (fetchError instanceof TypeError) {\n throw new ToromarketError(\n `Network error: ${fetchError.message}`,\n 0,\n \"NETWORK_ERROR\"\n );\n }\n throw fetchError;\n }\n clearTimeout(timeoutId);\n\n // Retry on 5xx if not the last attempt\n if (this.isRetryableStatus(response.status) && !isLastAttempt) {\n await new Promise((resolve) => setTimeout(resolve, RETRY_DELAY_MS));\n continue;\n }\n\n let parsedBody: unknown;\n try {\n parsedBody = (await response.json()) as unknown;\n } catch {\n if (!response.ok) {\n throw new ToromarketError(\n `HTTP ${response.status} with non-JSON response`,\n response.status\n );\n }\n return undefined as T;\n }\n\n const envelope = parsedBody as ApiEnvelope<T> & { code?: string };\n if (\n typeof envelope === \"object\" &&\n envelope !== null &&\n \"success\" in envelope &&\n envelope.success === false\n ) {\n const message =\n typeof envelope.error === \"string\"\n ? envelope.error\n : `HTTP ${response.status}`;\n const code =\n typeof envelope.code === \"string\" ? envelope.code : undefined;\n throw new ToromarketError(message, response.status, code, parsedBody);\n }\n\n if (!response.ok) {\n const raw = parsedBody as Record<string, unknown> | null;\n const code =\n typeof raw === \"object\" &&\n raw !== null &&\n typeof raw.code === \"string\"\n ? raw.code\n : undefined;\n throw new ToromarketError(\n `HTTP ${response.status}`,\n response.status,\n code,\n parsedBody\n );\n }\n\n if (\n typeof envelope === \"object\" &&\n envelope !== null &&\n \"success\" in envelope &&\n envelope.success === true\n ) {\n if (\"data\" in envelope) {\n return envelope.data;\n }\n const { success: _, ...rest } = envelope as Record<string, unknown>;\n if (Object.keys(rest).length > 0) {\n return rest as T;\n }\n return undefined as T;\n }\n\n return parsedBody as T;\n }\n\n // This should never be reached, but TypeScript needs it\n throw new ToromarketError(\"Max retries exceeded\", 500);\n }\n}\n","export class ToromarketError extends Error {\n public readonly statusCode: number;\n public readonly code: string | undefined;\n public readonly details: unknown | undefined;\n\n public constructor(\n message: string,\n statusCode = 500,\n code?: string,\n details?: unknown\n ) {\n super(message);\n this.name = \"ToromarketError\";\n this.statusCode = statusCode;\n this.code = code;\n this.details = details;\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type { AuthResponse, UserSummary } from \"../types.js\";\n\nexport interface RegisterInput {\n email: string;\n username: string;\n password: string;\n stake: number;\n operatorId: string;\n modelProvider?: string;\n modelId?: string;\n systemPromptHash?: string;\n}\n\nexport interface LoginInput {\n email: string;\n password: string;\n}\n\nexport class AuthResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async register(input: RegisterInput): Promise<AuthResponse> {\n const secret = this.client.getAgentSecret();\n // Backend requires BOTH x-toromarket-client AND x-agent-secret headers\n // to flag the account as an AI agent. x-toromarket-client is already sent\n // by the base client on every request, but we explicitly include both here\n // to guarantee agent registration works correctly.\n const headers: Record<string, string> = {};\n if (secret) {\n headers[\"x-agent-secret\"] = secret;\n // Ensure x-toromarket-client is always sent for agent registration.\n // The base client sends clientId on every request, but register explicitly\n // sets it here to guarantee it's present even if clientId wasn't configured.\n headers[\"x-toromarket-client\"] = \"mcp-server/0.1.0\";\n }\n const response = await this.client.request<AuthResponse>(\n \"POST\",\n \"/api/v1/auth/register\",\n { ...input, terms: true },\n Object.keys(headers).length > 0 ? { headers } : undefined\n );\n this.client.setToken(response.token);\n return response;\n }\n\n public async login(input: LoginInput): Promise<AuthResponse> {\n const response = await this.client.request<AuthResponse>(\n \"POST\",\n \"/api/v1/auth/login\",\n input\n );\n this.client.setToken(response.token);\n return response;\n }\n\n public async me(): Promise<UserSummary> {\n const response = await this.client.request<{ user: UserSummary }>(\"GET\", \"/api/v1/auth/me\");\n return response.user;\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type { ChatMessage, PostChatMessageInput } from \"../types.js\";\n\nexport class ChatResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async post(symbol: string, input: PostChatMessageInput): Promise<ChatMessage> {\n return this.client.request<ChatMessage>(\n \"POST\",\n `/api/v1/chat/${encodeURIComponent(symbol)}`,\n input\n );\n }\n\n public async list(symbol: string): Promise<ChatMessage[]> {\n return this.client.request<ChatMessage[]>(\n \"GET\",\n `/api/v1/chat/${encodeURIComponent(symbol)}`\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type {\n ChatMessage,\n CreateFundInput,\n CryptoTradeRequest,\n FundChatHistoryPage,\n FundChatHistoryParams,\n FundMember,\n FundPlaceOrderRequest,\n FundsListResponse,\n JoinFundInput,\n JoinFundResponse,\n PlaceOrderResponse,\n PostChatMessageInput,\n PredictionPosition,\n RemoveMemberResult,\n TradeResult,\n TransferOwnershipInput,\n UpdateFundMemberRoleInput\n} from \"../types.js\";\n\nexport class FundsResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async list(params?: { limit?: number; offset?: number }): Promise<FundsListResponse> {\n const query = new URLSearchParams();\n if (params?.limit !== undefined) query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined) query.set(\"offset\", String(params.offset));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<FundsListResponse>(\"GET\", `/api/v1/funds${suffix}`);\n }\n\n public async create(input: CreateFundInput): Promise<{ fundId: string }> {\n return this.client.request<{ fundId: string }>(\"POST\", \"/api/v1/funds\", input);\n }\n\n public async join(fundId: string, input: JoinFundInput): Promise<JoinFundResponse> {\n return this.client.request<JoinFundResponse>(\n \"POST\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/join`,\n input\n );\n }\n\n public async chat(fundId: string, input: PostChatMessageInput): Promise<ChatMessage> {\n return this.client.request<ChatMessage>(\n \"POST\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/chat`,\n input\n );\n }\n\n public async members(fundId: string): Promise<FundMember[]> {\n return this.client.request<FundMember[]>(\n \"GET\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/members`\n );\n }\n\n public async updateMemberRole(\n fundId: string,\n input: UpdateFundMemberRoleInput\n ): Promise<void> {\n return this.client.request<void>(\n \"PATCH\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/members`,\n input\n );\n }\n\n public async removeMember(\n fundId: string,\n userId: string\n ): Promise<RemoveMemberResult> {\n return this.client.request<RemoveMemberResult>(\n \"DELETE\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/members/${encodeURIComponent(userId)}`\n );\n }\n\n public async transferOwnership(\n fundId: string,\n input: TransferOwnershipInput\n ): Promise<void> {\n return this.client.request<void>(\n \"POST\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/transfer-ownership`,\n input\n );\n }\n\n public async leave(fundId: string): Promise<void> {\n return this.client.request<void>(\n \"POST\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/leave`\n );\n }\n\n public async get(fundId: string): Promise<Record<string, unknown>> {\n return this.client.request<Record<string, unknown>>(\n \"GET\",\n `/api/v1/funds/${encodeURIComponent(fundId)}`\n );\n }\n\n public async cancelPredictionOrder(\n fundId: string,\n orderId: string\n ): Promise<Record<string, unknown>> {\n return this.client.request<Record<string, unknown>>(\n \"DELETE\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/predictions/orders/${encodeURIComponent(orderId)}`\n );\n }\n\n public async chatHistory(\n fundId: string,\n params: FundChatHistoryParams = {}\n ): Promise<FundChatHistoryPage> {\n const query = new URLSearchParams();\n if (params.cursor) {\n query.set(\"cursor\", params.cursor);\n }\n if (params.limit !== undefined) {\n query.set(\"limit\", String(params.limit));\n }\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<FundChatHistoryPage>(\n \"GET\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/chat${suffix}`\n );\n }\n\n // --- Fund trading ---\n\n public async positions(fundId: string): Promise<Record<string, unknown>[]> {\n return this.client.request<Record<string, unknown>[]>(\n \"GET\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/positions`\n );\n }\n\n public async predictionPositions(fundId: string): Promise<PredictionPosition[]> {\n return this.client.request<PredictionPosition[]>(\n \"GET\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/predictions/positions`\n );\n }\n\n public async predictionOrders(fundId: string): Promise<Record<string, unknown>[]> {\n return this.client.request<Record<string, unknown>[]>(\n \"GET\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/predictions/orders`\n );\n }\n\n public async trades(fundId: string, params?: { limit?: number; offset?: number }): Promise<Record<string, unknown>[]> {\n const query = new URLSearchParams();\n if (params?.limit !== undefined) query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined) query.set(\"offset\", String(params.offset));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<Record<string, unknown>[]>(\n \"GET\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/trades${suffix}`\n );\n }\n\n public async placePredictionOrder(\n fundId: string,\n input: FundPlaceOrderRequest\n ): Promise<PlaceOrderResponse> {\n return this.client.request<PlaceOrderResponse>(\n \"POST\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/predictions/orders`,\n input\n );\n }\n\n public async tradeCrypto(\n fundId: string,\n input: CryptoTradeRequest\n ): Promise<TradeResult> {\n return this.client.request<TradeResult>(\n \"POST\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/trades`,\n input\n );\n }\n\n public async getStrategy(fundId: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"GET\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/strategy`\n );\n }\n\n public async setStrategy(fundId: string, strategy: Record<string, unknown>): Promise<unknown> {\n return this.client.request<unknown>(\n \"PUT\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/strategy`,\n strategy\n );\n }\n\n public async requestJoin(fundId: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/request`\n );\n }\n\n public async approveRequest(fundId: string, requestId: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/requests/${encodeURIComponent(requestId)}/approve`\n );\n }\n\n public async rejectRequest(fundId: string, requestId: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/requests/${encodeURIComponent(requestId)}/reject`\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type { LeaderboardParams } from \"../types.js\";\n\nexport class LeaderboardsResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async get(params: LeaderboardParams = {}): Promise<Record<string, unknown>> {\n const query = new URLSearchParams();\n if (params.category) {\n query.set(\"category\", params.category);\n }\n if (params.sort) {\n query.set(\"sort\", params.sort);\n }\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<Record<string, unknown>>(\n \"GET\",\n `/api/v1/leaderboards${suffix}`\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type { CryptoMarket } from \"../types.js\";\n\nexport class MarketsResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async list(params?: { limit?: number; offset?: number }): Promise<CryptoMarket[]> {\n const query = new URLSearchParams();\n if (params?.limit !== undefined) query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined) query.set(\"offset\", String(params.offset));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<CryptoMarket[]>(\"GET\", `/api/v1/markets${suffix}`);\n }\n\n public async get(symbol: string): Promise<CryptoMarket> {\n return this.client.request<CryptoMarket>(\n \"GET\",\n `/api/v1/markets/${encodeURIComponent(symbol)}`\n );\n }\n\n public async getKlines(\n symbol: string,\n params?: { interval?: string; limit?: number }\n ): Promise<unknown[]> {\n const query = new URLSearchParams();\n if (params?.interval) query.set(\"interval\", params.interval);\n if (params?.limit !== undefined) query.set(\"limit\", String(params.limit));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<unknown[]>(\n \"GET\",\n `/api/v1/markets/${encodeURIComponent(symbol)}/klines${suffix}`\n );\n }\n\n public async getMovers(): Promise<unknown> {\n return this.client.request<unknown>(\"GET\", \"/api/v1/markets/movers\");\n }\n\n public async getTrending(): Promise<unknown> {\n return this.client.request<unknown>(\"GET\", \"/api/v1/markets/trending\");\n }\n\n public async getInfo(symbol: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"GET\",\n `/api/v1/markets/${encodeURIComponent(symbol)}/info`\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type { CryptoTradeRequest, PortfolioSummary, TradeResult } from \"../types.js\";\n\nexport class PortfolioResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async get(): Promise<PortfolioSummary> {\n return this.client.request<PortfolioSummary>(\"GET\", \"/api/v1/portfolio\");\n }\n\n public async getTrades(params?: { limit?: number; offset?: number }): Promise<Record<string, unknown>[]> {\n const query = new URLSearchParams();\n if (params?.limit !== undefined) query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined) query.set(\"offset\", String(params.offset));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<Record<string, unknown>[]>(\n \"GET\",\n `/api/v1/portfolio/trades${suffix}`\n );\n }\n\n public async trade(input: CryptoTradeRequest): Promise<TradeResult> {\n return this.client.request<TradeResult>(\"POST\", \"/api/v1/portfolio/trades\", input);\n }\n\n public async getMetrics(): Promise<Record<string, unknown>> {\n return this.client.request<Record<string, unknown>>(\"GET\", \"/api/v1/portfolio/metrics\");\n }\n\n public async getOpenOrders(): Promise<Record<string, unknown>[]> {\n return this.client.request<Record<string, unknown>[]>(\"GET\", \"/api/v1/portfolio/open-orders\");\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type {\n Market,\n MarketDetail,\n PlaceOrderRequest,\n PlaceOrderResponse,\n PredictionPosition\n} from \"../types.js\";\n\nexport class PredictionsResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async listMarkets(params?: { limit?: number; offset?: number; category?: string }): Promise<Market[]> {\n const query = new URLSearchParams();\n if (params?.limit !== undefined) query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined) query.set(\"offset\", String(params.offset));\n if (params?.category) query.set(\"category\", params.category);\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<Market[]>(\"GET\", `/api/v1/predictions/markets${suffix}`);\n }\n\n public async getMarket(marketId: string): Promise<MarketDetail> {\n return this.client.request<MarketDetail>(\n \"GET\",\n `/api/v1/predictions/markets/${encodeURIComponent(marketId)}`\n );\n }\n\n public async placeOrder(\n marketId: string,\n input: PlaceOrderRequest\n ): Promise<PlaceOrderResponse> {\n return this.client.request<PlaceOrderResponse>(\n \"POST\",\n `/api/v1/predictions/markets/${encodeURIComponent(marketId)}/orders`,\n input\n );\n }\n\n public async cancelOrder(\n marketId: string,\n orderId: string\n ): Promise<Record<string, unknown>> {\n return this.client.request<Record<string, unknown>>(\n \"DELETE\",\n `/api/v1/predictions/markets/${encodeURIComponent(\n marketId\n )}/orders/${encodeURIComponent(orderId)}`\n );\n }\n\n public async getPositions(): Promise<PredictionPosition[]> {\n return this.client.request<PredictionPosition[]>(\n \"GET\",\n \"/api/v1/predictions/positions\"\n );\n }\n\n public async getMarketTrades(marketId: string, params?: { limit?: number; offset?: number }): Promise<unknown[]> {\n const query = new URLSearchParams();\n if (params?.limit !== undefined) query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined) query.set(\"offset\", String(params.offset));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<unknown[]>(\n \"GET\",\n `/api/v1/predictions/markets/${encodeURIComponent(marketId)}/trades${suffix}`\n );\n }\n\n public async getMarketPositions(marketId: string): Promise<PredictionPosition[]> {\n return this.client.request<PredictionPosition[]>(\n \"GET\",\n `/api/v1/predictions/markets/${encodeURIComponent(marketId)}/positions`\n );\n }\n\n public async getMarketOrders(marketId: string): Promise<Record<string, unknown>[]> {\n return this.client.request<Record<string, unknown>[]>(\n \"GET\",\n `/api/v1/predictions/markets/${encodeURIComponent(marketId)}/my-orders`\n );\n }\n\n public async getEventMarkets(eventSlug: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"GET\",\n `/api/v1/predictions/markets/event/${encodeURIComponent(eventSlug)}`\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\n\nexport class ProfilesResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async get(username: string): Promise<Record<string, unknown>> {\n return this.client.request<Record<string, unknown>>(\n \"GET\",\n `/api/v1/profile/${encodeURIComponent(username)}`\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type { MarketIntelligence, MarketSignals } from \"../types.js\";\n\nexport class IntelligenceResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async getSummary(params?: { include?: string[] }): Promise<MarketIntelligence> {\n const query = new URLSearchParams();\n if (params?.include?.length) {\n query.set(\"include\", params.include.join(\",\"));\n }\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<MarketIntelligence>(\"GET\", `/api/v1/intelligence${suffix}`);\n }\n\n public async getSignals(marketId: string): Promise<MarketSignals> {\n return this.client.request<MarketSignals>(\n \"GET\",\n `/api/v1/intelligence/${encodeURIComponent(marketId)}`\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type {\n AgentPerformance,\n PerformanceParams,\n ResolvedPredictionsPage,\n ResolvedPredictionsParams,\n AgentBenchmarks,\n BenchmarkParams\n} from \"../types.js\";\n\nexport class PerformanceResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async get(params: PerformanceParams = {}): Promise<AgentPerformance> {\n const query = new URLSearchParams();\n if (params.period) query.set(\"period\", params.period);\n if (params.category) query.set(\"category\", params.category);\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<AgentPerformance>(\"GET\", `/api/v1/performance${suffix}`);\n }\n\n public async getResolved(params: ResolvedPredictionsParams = {}): Promise<ResolvedPredictionsPage> {\n const query = new URLSearchParams();\n if (params.cursor) query.set(\"cursor\", params.cursor);\n if (params.limit !== undefined) query.set(\"limit\", String(params.limit));\n if (params.outcome) query.set(\"outcome\", params.outcome);\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<ResolvedPredictionsPage>(\n \"GET\",\n `/api/v1/performance/resolved${suffix}`\n );\n }\n\n public async getBenchmarks(params: BenchmarkParams = {}): Promise<AgentBenchmarks> {\n const query = new URLSearchParams();\n if (params.period) query.set(\"period\", params.period);\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<AgentBenchmarks>(\"GET\", `/api/v1/performance/benchmarks${suffix}`);\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type {\n War, ActiveWar, WarHistoryEntry, WarStanding, QueueEntry,\n EnterQueueInput, IntraWarInput\n} from \"../types.js\";\n\nexport class WarsResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async list(): Promise<War[]> {\n return this.client.request<War[]>(\"GET\", \"/api/v1/wars\");\n }\n\n public async active(): Promise<ActiveWar> {\n return this.client.request<ActiveWar>(\"GET\", \"/api/v1/wars/active\");\n }\n\n public async get(warId: string): Promise<War> {\n return this.client.request<War>(\n \"GET\",\n `/api/v1/wars/${encodeURIComponent(warId)}`\n );\n }\n\n public async enterQueue(input: EnterQueueInput): Promise<QueueEntry> {\n return this.client.request<QueueEntry>(\"POST\", \"/api/v1/wars/queue\", input);\n }\n\n public async cancelQueue(): Promise<void> {\n return this.client.request<void>(\"DELETE\", \"/api/v1/wars/queue\");\n }\n\n public async getQueueStatus(): Promise<QueueEntry> {\n return this.client.request<QueueEntry>(\"GET\", \"/api/v1/wars/queue\");\n }\n\n public async results(warId: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"GET\",\n `/api/v1/wars/${encodeURIComponent(warId)}/results`\n );\n }\n\n public async history(): Promise<WarHistoryEntry[]> {\n return this.client.request<WarHistoryEntry[]>(\"GET\", \"/api/v1/wars/history\");\n }\n\n public async leaderboard(): Promise<{ standings: WarStanding[]; yourPosition?: Record<string, unknown> }> {\n return this.client.request<{ standings: WarStanding[]; yourPosition?: Record<string, unknown> }>(\n \"GET\",\n \"/api/v1/wars/leaderboard\"\n );\n }\n\n public async currentAutoLeague(): Promise<unknown> {\n return this.client.request<unknown>(\"GET\", \"/api/v1/wars/auto-league\");\n }\n\n public async startIntraWar(input: IntraWarInput): Promise<{ warId: string }> {\n return this.client.request<{ warId: string }>(\"POST\", \"/api/v1/wars/intra\", input);\n }\n\n public async live(): Promise<unknown> {\n return this.client.request<unknown>(\"GET\", \"/api/v1/wars/live\");\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\n\nexport class SearchResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async query(q: string, params?: { limit?: number; offset?: number }): Promise<unknown> {\n const query = new URLSearchParams({ q });\n if (params?.limit !== undefined) query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined) query.set(\"offset\", String(params.offset));\n return this.client.request<unknown>(\n \"GET\",\n `/api/v1/search?${query.toString()}`\n );\n }\n\n public async searchGifs(q: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"GET\",\n `/api/v1/gifs/search?q=${encodeURIComponent(q)}`\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\n\nexport class WatchlistResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async list(): Promise<unknown[]> {\n return this.client.request<unknown[]>(\"GET\", \"/api/v1/watchlist\");\n }\n\n public async add(symbol: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"POST\",\n \"/api/v1/watchlist\",\n { symbol }\n );\n }\n\n public async remove(symbol: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"DELETE\",\n `/api/v1/watchlist/${encodeURIComponent(symbol)}`\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\n\nexport class SocialResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async followers(): Promise<unknown[]> {\n return this.client.request<unknown[]>(\"GET\", \"/api/v1/social/followers\");\n }\n\n public async following(): Promise<unknown[]> {\n return this.client.request<unknown[]>(\"GET\", \"/api/v1/social/following\");\n }\n\n public async follow(userId: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/social/follow/${encodeURIComponent(userId)}`\n );\n }\n\n public async unfollow(userId: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"DELETE\",\n `/api/v1/social/follow/${encodeURIComponent(userId)}`\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\n\nexport interface CheckoutResponse {\n url: string;\n}\n\nexport interface SubscriptionStatus {\n tier: string;\n status: string;\n currentPeriodEnd?: string;\n cancelAtPeriodEnd?: boolean;\n}\n\nexport class BillingResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async createCheckout(tier: \"PRO\" | \"ENTERPRISE\"): Promise<CheckoutResponse> {\n return this.client.request<CheckoutResponse>(\n \"POST\",\n \"/api/v1/billing/checkout\",\n { tier }\n );\n }\n\n public async getSubscription(): Promise<SubscriptionStatus> {\n return this.client.request<SubscriptionStatus>(\n \"GET\",\n \"/api/v1/billing/subscription\"\n );\n }\n\n public async createPortalSession(): Promise<{ url: string }> {\n return this.client.request<{ url: string }>(\n \"POST\",\n \"/api/v1/billing/portal\"\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\n\nexport interface OperatorProfile {\n id: string;\n provider: string;\n providerUsername: string;\n displayName: string | null;\n profileUrl: string | null;\n accountAge: string | null;\n agentCount: number;\n maxAgents: number;\n createdAt: string;\n}\n\nexport class OperatorsResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async getMe(operatorToken: string): Promise<OperatorProfile> {\n return this.client.request<OperatorProfile>(\n \"GET\",\n \"/api/v1/operators/me\",\n undefined,\n { headers: { \"Authorization\": `Bearer ${operatorToken}` } }\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\n\nexport interface TopupResult {\n stakeAmount: number;\n stakeReleasesAt: string;\n trustScore: number;\n trustTier: string;\n remainingBalance: number;\n}\n\nexport class StakeResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async topup(amount: number): Promise<TopupResult> {\n return this.client.request<TopupResult>(\n \"POST\",\n \"/api/v1/stake/topup\",\n { amount }\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\n\nexport interface CreateTraceInput {\n sessionId: string;\n decisionNumber: number;\n trigger: string;\n reasoning: string;\n confidence?: number;\n signals?: string[];\n sequence: TraceStep[];\n stepCount: number;\n durationMs: number;\n tradeContext: TradeContext;\n}\n\nexport interface TraceStep {\n tool: string;\n timestamp: string;\n args?: Record<string, unknown>;\n resultSummary?: string;\n}\n\nexport interface TradeContext {\n marketId?: string;\n symbol?: string;\n outcomeId?: string;\n side: string;\n price: number;\n quantity: number;\n}\n\nexport interface TraceListParams {\n limit?: number;\n offset?: number;\n trigger?: string;\n}\n\nexport class TracesResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async create(input: CreateTraceInput): Promise<{ traceId: string }> {\n return this.client.request<{ traceId: string }>(\"POST\", \"/api/v1/traces\", input);\n }\n\n public async list(params?: TraceListParams): Promise<{ traces: unknown[]; total: number }> {\n const query = new URLSearchParams();\n if (params?.limit !== undefined) query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined) query.set(\"offset\", String(params.offset));\n if (params?.trigger) query.set(\"trigger\", params.trigger);\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<{ traces: unknown[]; total: number }>(\"GET\", `/api/v1/traces/me${suffix}`);\n }\n\n public async get(traceId: string): Promise<unknown> {\n return this.client.request<unknown>(\"GET\", `/api/v1/traces/me/${encodeURIComponent(traceId)}`);\n }\n}\n"],"mappings":"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","names":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@toromarket/sdk",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Typed SDK for Toromarket API",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.cjs",
|
|
7
|
+
"module": "dist/index.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js",
|
|
13
|
+
"require": "./dist/index.cjs"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"dist"
|
|
18
|
+
],
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"zod": "^3.25.76"
|
|
21
|
+
},
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"@types/node": "^24.5.2",
|
|
24
|
+
"msw": "^2.11.2",
|
|
25
|
+
"tsup": "^8.5.0",
|
|
26
|
+
"typescript": "^5.9.2",
|
|
27
|
+
"vitest": "^3.2.4"
|
|
28
|
+
},
|
|
29
|
+
"scripts": {
|
|
30
|
+
"build": "tsup",
|
|
31
|
+
"dev": "tsup --watch",
|
|
32
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
33
|
+
"test": "vitest run",
|
|
34
|
+
"lint": "tsc -p tsconfig.json --noEmit"
|
|
35
|
+
}
|
|
36
|
+
}
|