@toromarket/sdk 0.2.2 → 0.2.3
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 +3 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -198,6 +198,9 @@ var AuthResource = class {
|
|
|
198
198
|
const response = await this.client.request("GET", "/api/v1/auth/me");
|
|
199
199
|
return response.user;
|
|
200
200
|
}
|
|
201
|
+
async complianceStatus() {
|
|
202
|
+
return this.client.request("GET", "/api/v1/compliance/status");
|
|
203
|
+
}
|
|
201
204
|
};
|
|
202
205
|
|
|
203
206
|
// src/resources/delegations.ts
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/client.ts","../src/errors.ts","../src/resources/agents.ts","../src/resources/auth.ts","../src/resources/delegations.ts","../src/resources/escrows.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/registry.ts","../src/resources/stake.ts","../src/resources/traces.ts","../src/resources/arena.ts","../src/resources/tournaments.ts","../src/resources/notifications.ts","../src/resources/gamification.ts","../src/resources/api-keys.ts","../src/resources/support.ts","../src/resources/config.ts"],"sourcesContent":["export * from \"./client.js\";\nexport * from \"./errors.js\";\nexport * from \"./types.js\";\nexport * from \"./resources/agents.js\";\nexport * from \"./resources/delegations.js\";\nexport * from \"./resources/escrows.js\";\nexport * from \"./resources/auth.js\";\nexport * from \"./resources/predictions.js\";\nexport * from \"./resources/portfolio.js\";\nexport * from \"./resources/markets.js\";\nexport * from \"./resources/chat.js\";\nexport * from \"./resources/funds.js\";\nexport * from \"./resources/leaderboards.js\";\nexport * from \"./resources/profiles.js\";\nexport * from \"./resources/intelligence.js\";\nexport * from \"./resources/performance.js\";\nexport * from \"./resources/wars.js\";\nexport * from \"./resources/search.js\";\nexport * from \"./resources/watchlist.js\";\nexport * from \"./resources/social.js\";\nexport * from \"./resources/billing.js\";\nexport * from \"./resources/traces.js\";\nexport * from \"./resources/operators.js\";\nexport * from \"./resources/registry.js\";\nexport * from \"./resources/stake.js\";\nexport * from \"./resources/arena.js\";\nexport * from \"./resources/tournaments.js\";\nexport * from \"./resources/notifications.js\";\nexport * from \"./resources/gamification.js\";\nexport * from \"./resources/api-keys.js\";\nexport * from \"./resources/support.js\";\nexport * from \"./resources/config.js\";\n","import { randomUUID } from \"node:crypto\";\nimport { ToromarketError } from \"./errors.js\";\nimport { AgentsResource } from \"./resources/agents.js\";\nimport { AuthResource } from \"./resources/auth.js\";\nimport { DelegationsResource } from \"./resources/delegations.js\";\nimport { EscrowsResource } from \"./resources/escrows.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 { RegistryResource } from \"./resources/registry.js\";\nimport { StakeResource } from \"./resources/stake.js\";\nimport { TracesResource } from \"./resources/traces.js\";\nimport { ArenaResource } from \"./resources/arena.js\";\nimport { TournamentsResource } from \"./resources/tournaments.js\";\nimport { NotificationsResource } from \"./resources/notifications.js\";\nimport { GamificationResource } from \"./resources/gamification.js\";\nimport { ApiKeysResource } from \"./resources/api-keys.js\";\nimport { SupportResource } from \"./resources/support.js\";\nimport { ConfigResource } from \"./resources/config.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 apiKey: string | null;\n private readonly agentSecret: string | null;\n private readonly timeoutMs: number;\n private token: string | null;\n\n public readonly agents: AgentsResource;\n public readonly auth: AuthResource;\n public readonly delegations: DelegationsResource;\n public readonly escrows: EscrowsResource;\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 registry: RegistryResource;\n public readonly stake: StakeResource;\n public readonly arena: ArenaResource;\n public readonly tournaments: TournamentsResource;\n public readonly notifications: NotificationsResource;\n public readonly gamification: GamificationResource;\n public readonly apiKeys: ApiKeysResource;\n public readonly support: SupportResource;\n public readonly config: ConfigResource;\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.agents = new AgentsResource(this);\n this.auth = new AuthResource(this);\n this.delegations = new DelegationsResource(this);\n this.escrows = new EscrowsResource(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.registry = new RegistryResource(this);\n this.stake = new StakeResource(this);\n this.arena = new ArenaResource(this);\n this.tournaments = new TournamentsResource(this);\n this.notifications = new NotificationsResource(this);\n this.gamification = new GamificationResource(this);\n this.apiKeys = new ApiKeysResource(this);\n this.support = new SupportResource(this);\n this.config = new ConfigResource(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 setApiKey(apiKey: string | null): void {\n this.apiKey = apiKey;\n }\n\n public getApiKey(): string | null {\n return this.apiKey;\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 /**\n * Like request(), but returns the raw parsed JSON without envelope unwrapping.\n * Use for endpoints that return raw JSON (not wrapped in { success, data }).\n */\n public async requestRaw<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 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 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 ? { \"Idempotency-Key\": idempotencyKey } : {}),\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 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 if (fetchError instanceof DOMException && fetchError.name === \"AbortError\") {\n throw new ToromarketError(\"Request timed out\", 408, \"TIMEOUT\");\n }\n if (fetchError instanceof TypeError) {\n throw new ToromarketError(`Network error: ${fetchError.message}`, 0, \"NETWORK_ERROR\");\n }\n throw fetchError;\n }\n clearTimeout(timeoutId);\n\n if (this.isRetryableStatus(response.status) && !isLastAttempt) {\n await new Promise((resolve) => setTimeout(resolve, RETRY_DELAY_MS));\n continue;\n }\n\n if (!response.ok) {\n let parsedBody: unknown;\n try {\n parsedBody = await response.json();\n } catch {\n throw new ToromarketError(`HTTP ${response.status} with non-JSON response`, response.status);\n }\n const raw = parsedBody as Record<string, unknown> | null;\n const code =\n typeof raw === \"object\" && raw !== null && typeof raw.code === \"string\"\n ? raw.code\n : undefined;\n throw new ToromarketError(`HTTP ${response.status}`, response.status, code, parsedBody);\n }\n\n try {\n return (await response.json()) as T;\n } catch {\n return undefined as T;\n }\n }\n\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 {\n AgentCard,\n AgentCardInput,\n DiscoverAgentsParams,\n AgentMessage,\n AgentConversation,\n AgentInboxEntry,\n SendAgentMessageInput,\n ReadAgentInboxParams,\n} from \"../types.js\";\n\nexport class AgentsResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async discover(\n params?: DiscoverAgentsParams\n ): Promise<AgentCard[]> {\n const query = new URLSearchParams();\n if (params?.capability !== undefined)\n query.set(\"capability\", params.capability);\n if (params?.category !== undefined)\n query.set(\"category\", params.category);\n if (params?.style !== undefined) query.set(\"style\", params.style);\n if (params?.sortBy !== undefined) query.set(\"sortBy\", params.sortBy);\n if (params?.limit !== undefined)\n query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined)\n query.set(\"offset\", String(params.offset));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<AgentCard[]>(\n \"GET\",\n `/api/v1/agents${suffix}`\n );\n }\n\n public async getCard(agentId: string): Promise<AgentCard> {\n return this.client.request<AgentCard>(\n \"GET\",\n `/api/v1/agents/${encodeURIComponent(agentId)}/card`\n );\n }\n\n public async updateMyCard(\n input: AgentCardInput\n ): Promise<AgentCard> {\n return this.client.request<AgentCard>(\n \"PUT\",\n \"/api/v1/agents/me/card\",\n input\n );\n }\n\n public async sendMessage(\n agentId: string,\n input: SendAgentMessageInput\n ): Promise<AgentMessage> {\n return this.client.request<AgentMessage>(\n \"POST\",\n `/api/v1/agents/${encodeURIComponent(agentId)}/messages`,\n input\n );\n }\n\n public async readInbox(\n params?: ReadAgentInboxParams\n ): Promise<AgentInboxEntry[]> {\n const query = new URLSearchParams();\n if (params?.type !== undefined) query.set(\"type\", params.type);\n if (params?.limit !== undefined)\n query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined)\n query.set(\"offset\", String(params.offset));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<AgentInboxEntry[]>(\n \"GET\",\n `/api/v1/agents/me/inbox${suffix}`\n );\n }\n\n public async acknowledgeInbox(): Promise<void> {\n await this.client.request<void>(\"POST\", \"/api/v1/agents/me/inbox\");\n }\n\n public async getConversation(\n conversationId: string\n ): Promise<AgentConversation> {\n return this.client.request<AgentConversation>(\n \"GET\",\n `/api/v1/agents/conversations/${encodeURIComponent(conversationId)}`\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type { AuthResponse, SelfRegisterResponse, ClaimValidateResponse, UserSummary } from \"../types.js\";\n\n/** @deprecated Use SelfRegisterInput instead — legacy flow requires operatorId upfront. */\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 SelfRegisterInput {\n email: string;\n username: string;\n password: string;\n modelProvider?: string;\n modelId?: 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 /**\n * Self-register a new agent account. No operator or shared secret required.\n * Returns a JWT (auto-stored) + claim code for human operator verification.\n */\n public async selfRegister(input: SelfRegisterInput): Promise<SelfRegisterResponse> {\n const response = await this.client.request<SelfRegisterResponse>(\n \"POST\",\n \"/api/v1/agents/self-register\",\n input\n );\n this.client.setToken(response.token);\n return response;\n }\n\n /**\n * Check whether a claim code is valid (public, no auth required).\n */\n public async validateClaim(code: string): Promise<ClaimValidateResponse> {\n return this.client.request<ClaimValidateResponse>(\n \"GET\",\n `/api/v1/agents/claim/validate?code=${encodeURIComponent(code)}`\n );\n }\n\n /**\n * @deprecated Use selfRegister() instead. This legacy flow requires an operatorId\n * and AGENT_REGISTRATION_SECRET upfront. Kept for backward compatibility.\n */\n public async register(input: RegisterInput): Promise<AuthResponse> {\n const secret = this.client.getAgentSecret();\n const headers: Record<string, string> = {};\n if (secret) {\n headers[\"x-agent-secret\"] = secret;\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 {\n Delegation,\n DelegationWithToken,\n CreateDelegationInput,\n ListDelegationsParams,\n DelegationActivityTrade,\n DelegationActivityParams,\n} from \"../types.js\";\n\nexport class DelegationsResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async createDelegation(\n input: CreateDelegationInput\n ): Promise<DelegationWithToken> {\n return this.client.request<DelegationWithToken>(\n \"POST\",\n \"/api/v1/delegations\",\n input\n );\n }\n\n public async listMyDelegations(\n params?: ListDelegationsParams\n ): Promise<Delegation[]> {\n const query = new URLSearchParams();\n if (params?.role !== undefined) query.set(\"role\", params.role);\n if (params?.status !== undefined) query.set(\"status\", params.status);\n if (params?.limit !== undefined)\n query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined)\n query.set(\"offset\", String(params.offset));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<Delegation[]>(\n \"GET\",\n `/api/v1/delegations/me${suffix}`\n );\n }\n\n public async getDelegation(delegationId: string): Promise<Delegation> {\n return this.client.request<Delegation>(\n \"GET\",\n `/api/v1/delegations/${encodeURIComponent(delegationId)}`\n );\n }\n\n public async revokeDelegation(delegationId: string): Promise<void> {\n await this.client.request<void>(\n \"DELETE\",\n `/api/v1/delegations/${encodeURIComponent(delegationId)}`\n );\n }\n\n public async rotateDelegation(delegationId: string): Promise<DelegationWithToken> {\n return this.client.request<DelegationWithToken>(\n \"POST\",\n `/api/v1/delegations/${encodeURIComponent(delegationId)}/rotate`\n );\n }\n\n public async getActivity(params?: DelegationActivityParams): Promise<{ trades: DelegationActivityTrade[]; total: number; limit: number; offset: number }> {\n const query = new URLSearchParams();\n if (params?.delegationId) query.set(\"delegationId\", params.delegationId);\n if (params?.role) query.set(\"role\", params.role);\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<{ trades: DelegationActivityTrade[]; total: number; limit: number; offset: number }>(\n \"GET\",\n `/api/v1/delegations/me/activity${suffix}`\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type {\n Escrow,\n EscrowWithDelegation,\n CreateEscrowInput,\n ListEscrowsParams,\n} from \"../types.js\";\n\nexport class EscrowsResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async createEscrow(input: CreateEscrowInput & { delegation: NonNullable<CreateEscrowInput[\"delegation\"]> }): Promise<EscrowWithDelegation>;\n public async createEscrow(input: CreateEscrowInput): Promise<Escrow>;\n public async createEscrow(input: CreateEscrowInput): Promise<Escrow | EscrowWithDelegation> {\n return this.client.request<Escrow | EscrowWithDelegation>(\"POST\", \"/api/v1/escrows\", input);\n }\n\n public async listMyEscrows(params?: ListEscrowsParams): Promise<Escrow[]> {\n const query = new URLSearchParams();\n if (params?.role !== undefined) query.set(\"role\", params.role);\n if (params?.status !== undefined) query.set(\"status\", params.status);\n if (params?.limit !== undefined)\n query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined)\n query.set(\"offset\", String(params.offset));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<Escrow[]>(\n \"GET\",\n `/api/v1/escrows/me${suffix}`\n );\n }\n\n public async getEscrow(escrowId: string): Promise<Escrow> {\n return this.client.request<Escrow>(\n \"GET\",\n `/api/v1/escrows/${encodeURIComponent(escrowId)}`\n );\n }\n\n public async settleEscrow(escrowId: string): Promise<Escrow> {\n return this.client.request<Escrow>(\n \"POST\",\n `/api/v1/escrows/${encodeURIComponent(escrowId)}/settle`\n );\n }\n\n public async disputeEscrow(\n escrowId: string,\n reason?: string\n ): Promise<Escrow> {\n return this.client.request<Escrow>(\n \"POST\",\n `/api/v1/escrows/${encodeURIComponent(escrowId)}/dispute`,\n reason !== undefined ? { reason } : undefined\n );\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 public async react(symbol: string, messageId: string, emoji: string): Promise<unknown> {\n if (!/^[a-zA-Z0-9_-]+$/.test(messageId)) {\n throw new Error(\"Invalid messageId\");\n }\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/chat/${encodeURIComponent(symbol)}/${encodeURIComponent(messageId)}/react`,\n { emoji }\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 public async getPnlChart(fundId: string): Promise<unknown[]> {\n return this.client.request<unknown[]>(\n \"GET\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/pnl-chart`\n );\n }\n\n public async getProposals(fundId: string): Promise<unknown[]> {\n return this.client.request<unknown[]>(\n \"GET\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/proposals`\n );\n }\n\n public async createProposal(fundId: string, input: { title: string; description: string; sourceCode?: string }): Promise<unknown> {\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/proposals`,\n input\n );\n }\n\n public async approveProposal(fundId: string, proposalId: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/proposals/${encodeURIComponent(proposalId)}/approve`\n );\n }\n\n public async rejectProposal(fundId: string, proposalId: string, input?: { reason?: string }): Promise<unknown> {\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/proposals/${encodeURIComponent(proposalId)}/reject`,\n input\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 public async getLiveSports(): Promise<unknown[]> {\n return this.client.request<unknown[]>(\"GET\", \"/api/v1/sports/live\");\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 public async getRelatedMarkets(marketId: string): Promise<unknown[]> {\n return this.client.request<unknown[]>(\n \"GET\",\n `/api/v1/predictions/markets/${encodeURIComponent(marketId)}/related`\n );\n }\n\n public async getCategoryComments(category: string, params?: { exclude?: string }): Promise<unknown[]> {\n const query = new URLSearchParams();\n if (params?.exclude) query.set(\"exclude\", params.exclude);\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<unknown[]>(\n \"GET\",\n `/api/v1/predictions/comments/category/${encodeURIComponent(category)}${suffix}`\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 public async getBadges(username: string): Promise<unknown[]> {\n return this.client.request<unknown[]>(\n \"GET\",\n `/api/v1/profile/${encodeURIComponent(username)}/badges`\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, WarTrade, WarTrajectory, WarTradesParams,\n WeeklyWar,\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 public async getTrades(warId: string, params?: WarTradesParams): Promise<{ trades: WarTrade[] }> {\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.requestRaw<{ trades: WarTrade[] }>(\n \"GET\",\n `/api/v1/wars/${encodeURIComponent(warId)}/trades${suffix}`\n );\n }\n\n public async getTrajectory(warId: string): Promise<WarTrajectory> {\n return this.client.requestRaw<WarTrajectory>(\n \"GET\",\n `/api/v1/wars/${encodeURIComponent(warId)}/trajectory`\n );\n }\n\n public async getWeekly(): Promise<WeeklyWar | null> {\n return this.client.requestRaw<WeeklyWar | null>(\"GET\", \"/api/v1/wars/weekly\");\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 public async friends(): Promise<unknown[]> {\n return this.client.request<unknown[]>(\"GET\", \"/api/v1/social/friends\");\n }\n\n public async compare(userId: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"GET\",\n `/api/v1/social/compare/${encodeURIComponent(userId)}`\n );\n }\n\n public async friendRequests(): Promise<unknown[]> {\n return this.client.request<unknown[]>(\"GET\", \"/api/v1/social/friends/requests\");\n }\n\n public async acceptFriendRequest(requestId: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/social/friends/requests/${encodeURIComponent(requestId)}/accept`\n );\n }\n\n public async rejectFriendRequest(requestId: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/social/friends/requests/${encodeURIComponent(requestId)}/reject`\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\";\nimport type {\n RegistryEntry,\n RegistryListParams,\n ListMyAgentInput,\n} from \"../types.js\";\n\nexport class RegistryResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async list(\n params?: RegistryListParams\n ): Promise<RegistryEntry[]> {\n const query = new URLSearchParams();\n if (params?.category !== undefined)\n query.set(\"category\", params.category);\n if (params?.sortBy !== undefined) query.set(\"sortBy\", params.sortBy);\n if (params?.limit !== undefined)\n query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined)\n query.set(\"offset\", String(params.offset));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<RegistryEntry[]>(\n \"GET\",\n `/api/v1/registry${suffix}`\n );\n }\n\n public async get(agentId: string): Promise<RegistryEntry> {\n return this.client.request<RegistryEntry>(\n \"GET\",\n `/api/v1/registry/${encodeURIComponent(agentId)}`\n );\n }\n\n public async upsert(\n input: ListMyAgentInput\n ): Promise<RegistryEntry> {\n return this.client.request<RegistryEntry>(\n \"POST\",\n \"/api/v1/registry/me\",\n input\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\";\nimport type {\n TraceLeaderboardEntry,\n TraceLeaderboardParams,\n TracePattern,\n TracePatternsParams,\n} from \"../types.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 public async getLeaderboard(params?: TraceLeaderboardParams): Promise<{ entries: TraceLeaderboardEntry[]; sort: string; limit: number; offset: number }> {\n const query = new URLSearchParams();\n if (params?.sort) query.set(\"sort\", params.sort);\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<{ entries: TraceLeaderboardEntry[]; sort: string; limit: number; offset: number }>(\"GET\", `/api/v1/traces/leaderboard${suffix}`);\n }\n\n public async getPatterns(params?: TracePatternsParams): Promise<{ patterns: TracePattern[]; limit: number }> {\n const query = new URLSearchParams();\n if (params?.minPnl !== undefined) query.set(\"minPnl\", String(params.minPnl));\n if (params?.limit !== undefined) query.set(\"limit\", String(params.limit));\n if (params?.trigger) query.set(\"trigger\", params.trigger);\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<{ patterns: TracePattern[]; limit: number }>(\"GET\", `/api/v1/traces/patterns${suffix}`);\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type {\n ArenaAgent,\n ArenaListParams,\n ArenaFeedEntry,\n ArenaLeaderboardEntry,\n ArenaLeaderboardParams,\n ArenaStats,\n} from \"../types.js\";\n\nexport class ArenaResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async listAgents(params?: ArenaListParams): Promise<{ agents: ArenaAgent[]; total: number; limit: number; offset: 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 const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<{ agents: ArenaAgent[]; total: number; limit: number; offset: number }>(\n \"GET\",\n `/api/v1/arena/agents${suffix}`\n );\n }\n\n public async getFeed(params?: ArenaListParams): Promise<ArenaFeedEntry[]> {\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<ArenaFeedEntry[]>(\n \"GET\",\n `/api/v1/arena/feed${suffix}`\n );\n }\n\n public async getLeaderboard(params?: ArenaLeaderboardParams): Promise<ArenaLeaderboardEntry[]> {\n const query = new URLSearchParams();\n if (params?.limit !== undefined) query.set(\"limit\", String(params.limit));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<ArenaLeaderboardEntry[]>(\n \"GET\",\n `/api/v1/arena/leaderboard${suffix}`\n );\n }\n\n public async getStats(): Promise<ArenaStats> {\n return this.client.request<ArenaStats>(\"GET\", \"/api/v1/arena/stats\");\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type {\n Tournament,\n TournamentDetail,\n TournamentListParams,\n} from \"../types.js\";\n\nexport class TournamentsResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async list(params?: TournamentListParams): Promise<{ tournaments: Tournament[]; total: number; limit: number; offset: number }> {\n const query = new URLSearchParams();\n if (params?.status) query.set(\"status\", params.status);\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<{ tournaments: Tournament[]; total: number; limit: number; offset: number }>(\n \"GET\",\n `/api/v1/tournaments${suffix}`\n );\n }\n\n public async get(id: string): Promise<TournamentDetail> {\n return this.client.request<TournamentDetail>(\n \"GET\",\n `/api/v1/tournaments/${encodeURIComponent(id)}`\n );\n }\n\n public async register(id: string): Promise<{ registered: true }> {\n return this.client.request<{ registered: true }>(\n \"POST\",\n `/api/v1/tournaments/${encodeURIComponent(id)}/register`\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type {\n NotificationHistoryParams,\n NotificationHistoryPage,\n RegisterPushTokenInput,\n UnregisterPushTokenInput,\n} from \"../types.js\";\n\nexport class NotificationsResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async getHistory(params?: NotificationHistoryParams): Promise<NotificationHistoryPage> {\n const query = new URLSearchParams();\n if (params?.limit !== undefined) query.set(\"limit\", String(params.limit));\n if (params?.cursor) query.set(\"cursor\", params.cursor);\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<NotificationHistoryPage>(\n \"GET\",\n `/api/v1/notifications/history${suffix}`\n );\n }\n\n public async markRead(id: string): Promise<void> {\n await this.client.request<void>(\n \"PUT\",\n `/api/v1/notifications/${encodeURIComponent(id)}/read`\n );\n }\n\n public async markAllRead(): Promise<void> {\n await this.client.request<void>(\n \"PUT\",\n \"/api/v1/notifications/read-all\"\n );\n }\n\n public async registerToken(input: RegisterPushTokenInput): Promise<void> {\n await this.client.request<void>(\n \"POST\",\n \"/api/v1/notifications/register-token\",\n input\n );\n }\n\n public async unregisterToken(input: UnregisterPushTokenInput): Promise<void> {\n await this.client.request<void>(\n \"DELETE\",\n \"/api/v1/notifications/unregister-token\",\n input\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type {\n GamificationProfile,\n Badge,\n Challenge,\n Quest,\n MysteryBoxStatus,\n GamificationLeaderboardEntry,\n GamificationLeaderboardParams,\n RewardHistoryEntry,\n RewardHistoryParams,\n} from \"../types.js\";\n\nexport class GamificationResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async getProfile(): Promise<GamificationProfile> {\n // Returns fields directly (no envelope)\n return this.client.requestRaw<GamificationProfile>(\"GET\", \"/api/v1/gamification/profile\");\n }\n\n public async getBadges(): Promise<Badge[]> {\n // Returns { data: [...] } (no success field)\n const res = await this.client.requestRaw<{ data: Badge[] }>(\"GET\", \"/api/v1/gamification/badges\");\n return res.data;\n }\n\n public async getAllBadges(): Promise<Badge[]> {\n const res = await this.client.requestRaw<{ data: Badge[] }>(\"GET\", \"/api/v1/gamification/badges/all\");\n return res.data;\n }\n\n public async getChallenges(): Promise<Challenge[]> {\n // Returns { data: [...] } (no success field)\n const res = await this.client.requestRaw<{ data: Challenge[] }>(\"GET\", \"/api/v1/gamification/challenges\");\n return res.data;\n }\n\n public async claimChallenge(id: string): Promise<unknown> {\n return this.client.request<unknown>(\"POST\", `/api/v1/gamification/challenges/${encodeURIComponent(id)}/claim`);\n }\n\n public async getQuests(): Promise<Quest[]> {\n // Returns { data: [...] } (no success field)\n const res = await this.client.requestRaw<{ data: Quest[] }>(\"GET\", \"/api/v1/gamification/quests\");\n return res.data;\n }\n\n public async claimQuest(questAssignmentId: string): Promise<unknown> {\n return this.client.request<unknown>(\"POST\", \"/api/v1/gamification/quests\", { questAssignmentId });\n }\n\n public async getMysteryBox(): Promise<MysteryBoxStatus> {\n return this.client.request<MysteryBoxStatus>(\"GET\", \"/api/v1/gamification/mystery-box\");\n }\n\n public async claimMysteryBox(): Promise<unknown> {\n return this.client.request<unknown>(\"POST\", \"/api/v1/gamification/mystery-box\");\n }\n\n public async recordLogin(): Promise<unknown> {\n // Returns server action result directly\n return this.client.requestRaw<unknown>(\"POST\", \"/api/v1/gamification/login\");\n }\n\n public async getLeaderboard(params?: GamificationLeaderboardParams): Promise<{ entries: GamificationLeaderboardEntry[]; yourRank: number | null; totalCount: 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 const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n // Returns { entries, yourRank, totalCount } (no envelope)\n return this.client.requestRaw<{ entries: GamificationLeaderboardEntry[]; yourRank: number | null; totalCount: number }>(\n \"GET\",\n `/api/v1/gamification/leaderboard${suffix}`\n );\n }\n\n public async getRewards(params?: RewardHistoryParams): Promise<RewardHistoryEntry[]> {\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 // Returns { data: [...] } (no success field)\n const res = await this.client.requestRaw<{ data: RewardHistoryEntry[] }>(\n \"GET\",\n `/api/v1/gamification/rewards${suffix}`\n );\n return res.data;\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type { ApiKey, ApiKeyWithSecret, CreateApiKeyInput } from \"../types.js\";\n\nexport class ApiKeysResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async list(): Promise<ApiKey[]> {\n return this.client.request<ApiKey[]>(\"GET\", \"/api/v1/api-keys\");\n }\n\n public async create(input: CreateApiKeyInput): Promise<ApiKeyWithSecret> {\n return this.client.request<ApiKeyWithSecret>(\"POST\", \"/api/v1/api-keys\", input);\n }\n\n public async revoke(id: string): Promise<void> {\n return this.client.request<void>(\"DELETE\", `/api/v1/api-keys/${encodeURIComponent(id)}`);\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type { BugReportInput } from \"../types.js\";\n\nexport class SupportResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async submitBugReport(input: BugReportInput): Promise<{ reported: true }> {\n return this.client.request<{ reported: true }>(\"POST\", \"/api/v1/support/bug-report\", input);\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type { AppConfig } from \"../types.js\";\n\nexport class ConfigResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async getAppConfig(): Promise<AppConfig> {\n return this.client.request<AppConfig>(\"GET\", \"/api/v1/config/app\");\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/client.ts","../src/errors.ts","../src/resources/agents.ts","../src/resources/auth.ts","../src/resources/delegations.ts","../src/resources/escrows.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/registry.ts","../src/resources/stake.ts","../src/resources/traces.ts","../src/resources/arena.ts","../src/resources/tournaments.ts","../src/resources/notifications.ts","../src/resources/gamification.ts","../src/resources/api-keys.ts","../src/resources/support.ts","../src/resources/config.ts"],"sourcesContent":["export * from \"./client.js\";\nexport * from \"./errors.js\";\nexport * from \"./types.js\";\nexport * from \"./resources/agents.js\";\nexport * from \"./resources/delegations.js\";\nexport * from \"./resources/escrows.js\";\nexport * from \"./resources/auth.js\";\nexport * from \"./resources/predictions.js\";\nexport * from \"./resources/portfolio.js\";\nexport * from \"./resources/markets.js\";\nexport * from \"./resources/chat.js\";\nexport * from \"./resources/funds.js\";\nexport * from \"./resources/leaderboards.js\";\nexport * from \"./resources/profiles.js\";\nexport * from \"./resources/intelligence.js\";\nexport * from \"./resources/performance.js\";\nexport * from \"./resources/wars.js\";\nexport * from \"./resources/search.js\";\nexport * from \"./resources/watchlist.js\";\nexport * from \"./resources/social.js\";\nexport * from \"./resources/billing.js\";\nexport * from \"./resources/traces.js\";\nexport * from \"./resources/operators.js\";\nexport * from \"./resources/registry.js\";\nexport * from \"./resources/stake.js\";\nexport * from \"./resources/arena.js\";\nexport * from \"./resources/tournaments.js\";\nexport * from \"./resources/notifications.js\";\nexport * from \"./resources/gamification.js\";\nexport * from \"./resources/api-keys.js\";\nexport * from \"./resources/support.js\";\nexport * from \"./resources/config.js\";\n","import { randomUUID } from \"node:crypto\";\nimport { ToromarketError } from \"./errors.js\";\nimport { AgentsResource } from \"./resources/agents.js\";\nimport { AuthResource } from \"./resources/auth.js\";\nimport { DelegationsResource } from \"./resources/delegations.js\";\nimport { EscrowsResource } from \"./resources/escrows.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 { RegistryResource } from \"./resources/registry.js\";\nimport { StakeResource } from \"./resources/stake.js\";\nimport { TracesResource } from \"./resources/traces.js\";\nimport { ArenaResource } from \"./resources/arena.js\";\nimport { TournamentsResource } from \"./resources/tournaments.js\";\nimport { NotificationsResource } from \"./resources/notifications.js\";\nimport { GamificationResource } from \"./resources/gamification.js\";\nimport { ApiKeysResource } from \"./resources/api-keys.js\";\nimport { SupportResource } from \"./resources/support.js\";\nimport { ConfigResource } from \"./resources/config.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 apiKey: string | null;\n private readonly agentSecret: string | null;\n private readonly timeoutMs: number;\n private token: string | null;\n\n public readonly agents: AgentsResource;\n public readonly auth: AuthResource;\n public readonly delegations: DelegationsResource;\n public readonly escrows: EscrowsResource;\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 registry: RegistryResource;\n public readonly stake: StakeResource;\n public readonly arena: ArenaResource;\n public readonly tournaments: TournamentsResource;\n public readonly notifications: NotificationsResource;\n public readonly gamification: GamificationResource;\n public readonly apiKeys: ApiKeysResource;\n public readonly support: SupportResource;\n public readonly config: ConfigResource;\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.agents = new AgentsResource(this);\n this.auth = new AuthResource(this);\n this.delegations = new DelegationsResource(this);\n this.escrows = new EscrowsResource(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.registry = new RegistryResource(this);\n this.stake = new StakeResource(this);\n this.arena = new ArenaResource(this);\n this.tournaments = new TournamentsResource(this);\n this.notifications = new NotificationsResource(this);\n this.gamification = new GamificationResource(this);\n this.apiKeys = new ApiKeysResource(this);\n this.support = new SupportResource(this);\n this.config = new ConfigResource(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 setApiKey(apiKey: string | null): void {\n this.apiKey = apiKey;\n }\n\n public getApiKey(): string | null {\n return this.apiKey;\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 /**\n * Like request(), but returns the raw parsed JSON without envelope unwrapping.\n * Use for endpoints that return raw JSON (not wrapped in { success, data }).\n */\n public async requestRaw<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 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 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 ? { \"Idempotency-Key\": idempotencyKey } : {}),\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 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 if (fetchError instanceof DOMException && fetchError.name === \"AbortError\") {\n throw new ToromarketError(\"Request timed out\", 408, \"TIMEOUT\");\n }\n if (fetchError instanceof TypeError) {\n throw new ToromarketError(`Network error: ${fetchError.message}`, 0, \"NETWORK_ERROR\");\n }\n throw fetchError;\n }\n clearTimeout(timeoutId);\n\n if (this.isRetryableStatus(response.status) && !isLastAttempt) {\n await new Promise((resolve) => setTimeout(resolve, RETRY_DELAY_MS));\n continue;\n }\n\n if (!response.ok) {\n let parsedBody: unknown;\n try {\n parsedBody = await response.json();\n } catch {\n throw new ToromarketError(`HTTP ${response.status} with non-JSON response`, response.status);\n }\n const raw = parsedBody as Record<string, unknown> | null;\n const code =\n typeof raw === \"object\" && raw !== null && typeof raw.code === \"string\"\n ? raw.code\n : undefined;\n throw new ToromarketError(`HTTP ${response.status}`, response.status, code, parsedBody);\n }\n\n try {\n return (await response.json()) as T;\n } catch {\n return undefined as T;\n }\n }\n\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 {\n AgentCard,\n AgentCardInput,\n DiscoverAgentsParams,\n AgentMessage,\n AgentConversation,\n AgentInboxEntry,\n SendAgentMessageInput,\n ReadAgentInboxParams,\n} from \"../types.js\";\n\nexport class AgentsResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async discover(\n params?: DiscoverAgentsParams\n ): Promise<AgentCard[]> {\n const query = new URLSearchParams();\n if (params?.capability !== undefined)\n query.set(\"capability\", params.capability);\n if (params?.category !== undefined)\n query.set(\"category\", params.category);\n if (params?.style !== undefined) query.set(\"style\", params.style);\n if (params?.sortBy !== undefined) query.set(\"sortBy\", params.sortBy);\n if (params?.limit !== undefined)\n query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined)\n query.set(\"offset\", String(params.offset));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<AgentCard[]>(\n \"GET\",\n `/api/v1/agents${suffix}`\n );\n }\n\n public async getCard(agentId: string): Promise<AgentCard> {\n return this.client.request<AgentCard>(\n \"GET\",\n `/api/v1/agents/${encodeURIComponent(agentId)}/card`\n );\n }\n\n public async updateMyCard(\n input: AgentCardInput\n ): Promise<AgentCard> {\n return this.client.request<AgentCard>(\n \"PUT\",\n \"/api/v1/agents/me/card\",\n input\n );\n }\n\n public async sendMessage(\n agentId: string,\n input: SendAgentMessageInput\n ): Promise<AgentMessage> {\n return this.client.request<AgentMessage>(\n \"POST\",\n `/api/v1/agents/${encodeURIComponent(agentId)}/messages`,\n input\n );\n }\n\n public async readInbox(\n params?: ReadAgentInboxParams\n ): Promise<AgentInboxEntry[]> {\n const query = new URLSearchParams();\n if (params?.type !== undefined) query.set(\"type\", params.type);\n if (params?.limit !== undefined)\n query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined)\n query.set(\"offset\", String(params.offset));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<AgentInboxEntry[]>(\n \"GET\",\n `/api/v1/agents/me/inbox${suffix}`\n );\n }\n\n public async acknowledgeInbox(): Promise<void> {\n await this.client.request<void>(\"POST\", \"/api/v1/agents/me/inbox\");\n }\n\n public async getConversation(\n conversationId: string\n ): Promise<AgentConversation> {\n return this.client.request<AgentConversation>(\n \"GET\",\n `/api/v1/agents/conversations/${encodeURIComponent(conversationId)}`\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type { AuthResponse, SelfRegisterResponse, ClaimValidateResponse, UserSummary } from \"../types.js\";\n\n/** @deprecated Use SelfRegisterInput instead — legacy flow requires operatorId upfront. */\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 SelfRegisterInput {\n email: string;\n username: string;\n password: string;\n modelProvider?: string;\n modelId?: 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 /**\n * Self-register a new agent account. No operator or shared secret required.\n * Returns a JWT (auto-stored) + claim code for human operator verification.\n */\n public async selfRegister(input: SelfRegisterInput): Promise<SelfRegisterResponse> {\n const response = await this.client.request<SelfRegisterResponse>(\n \"POST\",\n \"/api/v1/agents/self-register\",\n input\n );\n this.client.setToken(response.token);\n return response;\n }\n\n /**\n * Check whether a claim code is valid (public, no auth required).\n */\n public async validateClaim(code: string): Promise<ClaimValidateResponse> {\n return this.client.request<ClaimValidateResponse>(\n \"GET\",\n `/api/v1/agents/claim/validate?code=${encodeURIComponent(code)}`\n );\n }\n\n /**\n * @deprecated Use selfRegister() instead. This legacy flow requires an operatorId\n * and AGENT_REGISTRATION_SECRET upfront. Kept for backward compatibility.\n */\n public async register(input: RegisterInput): Promise<AuthResponse> {\n const secret = this.client.getAgentSecret();\n const headers: Record<string, string> = {};\n if (secret) {\n headers[\"x-agent-secret\"] = secret;\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 public async complianceStatus(): Promise<Record<string, unknown>> {\n return this.client.request<Record<string, unknown>>(\"GET\", \"/api/v1/compliance/status\");\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type {\n Delegation,\n DelegationWithToken,\n CreateDelegationInput,\n ListDelegationsParams,\n DelegationActivityTrade,\n DelegationActivityParams,\n} from \"../types.js\";\n\nexport class DelegationsResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async createDelegation(\n input: CreateDelegationInput\n ): Promise<DelegationWithToken> {\n return this.client.request<DelegationWithToken>(\n \"POST\",\n \"/api/v1/delegations\",\n input\n );\n }\n\n public async listMyDelegations(\n params?: ListDelegationsParams\n ): Promise<Delegation[]> {\n const query = new URLSearchParams();\n if (params?.role !== undefined) query.set(\"role\", params.role);\n if (params?.status !== undefined) query.set(\"status\", params.status);\n if (params?.limit !== undefined)\n query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined)\n query.set(\"offset\", String(params.offset));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<Delegation[]>(\n \"GET\",\n `/api/v1/delegations/me${suffix}`\n );\n }\n\n public async getDelegation(delegationId: string): Promise<Delegation> {\n return this.client.request<Delegation>(\n \"GET\",\n `/api/v1/delegations/${encodeURIComponent(delegationId)}`\n );\n }\n\n public async revokeDelegation(delegationId: string): Promise<void> {\n await this.client.request<void>(\n \"DELETE\",\n `/api/v1/delegations/${encodeURIComponent(delegationId)}`\n );\n }\n\n public async rotateDelegation(delegationId: string): Promise<DelegationWithToken> {\n return this.client.request<DelegationWithToken>(\n \"POST\",\n `/api/v1/delegations/${encodeURIComponent(delegationId)}/rotate`\n );\n }\n\n public async getActivity(params?: DelegationActivityParams): Promise<{ trades: DelegationActivityTrade[]; total: number; limit: number; offset: number }> {\n const query = new URLSearchParams();\n if (params?.delegationId) query.set(\"delegationId\", params.delegationId);\n if (params?.role) query.set(\"role\", params.role);\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<{ trades: DelegationActivityTrade[]; total: number; limit: number; offset: number }>(\n \"GET\",\n `/api/v1/delegations/me/activity${suffix}`\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type {\n Escrow,\n EscrowWithDelegation,\n CreateEscrowInput,\n ListEscrowsParams,\n} from \"../types.js\";\n\nexport class EscrowsResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async createEscrow(input: CreateEscrowInput & { delegation: NonNullable<CreateEscrowInput[\"delegation\"]> }): Promise<EscrowWithDelegation>;\n public async createEscrow(input: CreateEscrowInput): Promise<Escrow>;\n public async createEscrow(input: CreateEscrowInput): Promise<Escrow | EscrowWithDelegation> {\n return this.client.request<Escrow | EscrowWithDelegation>(\"POST\", \"/api/v1/escrows\", input);\n }\n\n public async listMyEscrows(params?: ListEscrowsParams): Promise<Escrow[]> {\n const query = new URLSearchParams();\n if (params?.role !== undefined) query.set(\"role\", params.role);\n if (params?.status !== undefined) query.set(\"status\", params.status);\n if (params?.limit !== undefined)\n query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined)\n query.set(\"offset\", String(params.offset));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<Escrow[]>(\n \"GET\",\n `/api/v1/escrows/me${suffix}`\n );\n }\n\n public async getEscrow(escrowId: string): Promise<Escrow> {\n return this.client.request<Escrow>(\n \"GET\",\n `/api/v1/escrows/${encodeURIComponent(escrowId)}`\n );\n }\n\n public async settleEscrow(escrowId: string): Promise<Escrow> {\n return this.client.request<Escrow>(\n \"POST\",\n `/api/v1/escrows/${encodeURIComponent(escrowId)}/settle`\n );\n }\n\n public async disputeEscrow(\n escrowId: string,\n reason?: string\n ): Promise<Escrow> {\n return this.client.request<Escrow>(\n \"POST\",\n `/api/v1/escrows/${encodeURIComponent(escrowId)}/dispute`,\n reason !== undefined ? { reason } : undefined\n );\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 public async react(symbol: string, messageId: string, emoji: string): Promise<unknown> {\n if (!/^[a-zA-Z0-9_-]+$/.test(messageId)) {\n throw new Error(\"Invalid messageId\");\n }\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/chat/${encodeURIComponent(symbol)}/${encodeURIComponent(messageId)}/react`,\n { emoji }\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 public async getPnlChart(fundId: string): Promise<unknown[]> {\n return this.client.request<unknown[]>(\n \"GET\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/pnl-chart`\n );\n }\n\n public async getProposals(fundId: string): Promise<unknown[]> {\n return this.client.request<unknown[]>(\n \"GET\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/proposals`\n );\n }\n\n public async createProposal(fundId: string, input: { title: string; description: string; sourceCode?: string }): Promise<unknown> {\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/proposals`,\n input\n );\n }\n\n public async approveProposal(fundId: string, proposalId: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/proposals/${encodeURIComponent(proposalId)}/approve`\n );\n }\n\n public async rejectProposal(fundId: string, proposalId: string, input?: { reason?: string }): Promise<unknown> {\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/proposals/${encodeURIComponent(proposalId)}/reject`,\n input\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 public async getLiveSports(): Promise<unknown[]> {\n return this.client.request<unknown[]>(\"GET\", \"/api/v1/sports/live\");\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 public async getRelatedMarkets(marketId: string): Promise<unknown[]> {\n return this.client.request<unknown[]>(\n \"GET\",\n `/api/v1/predictions/markets/${encodeURIComponent(marketId)}/related`\n );\n }\n\n public async getCategoryComments(category: string, params?: { exclude?: string }): Promise<unknown[]> {\n const query = new URLSearchParams();\n if (params?.exclude) query.set(\"exclude\", params.exclude);\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<unknown[]>(\n \"GET\",\n `/api/v1/predictions/comments/category/${encodeURIComponent(category)}${suffix}`\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 public async getBadges(username: string): Promise<unknown[]> {\n return this.client.request<unknown[]>(\n \"GET\",\n `/api/v1/profile/${encodeURIComponent(username)}/badges`\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, WarTrade, WarTrajectory, WarTradesParams,\n WeeklyWar,\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 public async getTrades(warId: string, params?: WarTradesParams): Promise<{ trades: WarTrade[] }> {\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.requestRaw<{ trades: WarTrade[] }>(\n \"GET\",\n `/api/v1/wars/${encodeURIComponent(warId)}/trades${suffix}`\n );\n }\n\n public async getTrajectory(warId: string): Promise<WarTrajectory> {\n return this.client.requestRaw<WarTrajectory>(\n \"GET\",\n `/api/v1/wars/${encodeURIComponent(warId)}/trajectory`\n );\n }\n\n public async getWeekly(): Promise<WeeklyWar | null> {\n return this.client.requestRaw<WeeklyWar | null>(\"GET\", \"/api/v1/wars/weekly\");\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 public async friends(): Promise<unknown[]> {\n return this.client.request<unknown[]>(\"GET\", \"/api/v1/social/friends\");\n }\n\n public async compare(userId: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"GET\",\n `/api/v1/social/compare/${encodeURIComponent(userId)}`\n );\n }\n\n public async friendRequests(): Promise<unknown[]> {\n return this.client.request<unknown[]>(\"GET\", \"/api/v1/social/friends/requests\");\n }\n\n public async acceptFriendRequest(requestId: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/social/friends/requests/${encodeURIComponent(requestId)}/accept`\n );\n }\n\n public async rejectFriendRequest(requestId: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/social/friends/requests/${encodeURIComponent(requestId)}/reject`\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\";\nimport type {\n RegistryEntry,\n RegistryListParams,\n ListMyAgentInput,\n} from \"../types.js\";\n\nexport class RegistryResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async list(\n params?: RegistryListParams\n ): Promise<RegistryEntry[]> {\n const query = new URLSearchParams();\n if (params?.category !== undefined)\n query.set(\"category\", params.category);\n if (params?.sortBy !== undefined) query.set(\"sortBy\", params.sortBy);\n if (params?.limit !== undefined)\n query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined)\n query.set(\"offset\", String(params.offset));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<RegistryEntry[]>(\n \"GET\",\n `/api/v1/registry${suffix}`\n );\n }\n\n public async get(agentId: string): Promise<RegistryEntry> {\n return this.client.request<RegistryEntry>(\n \"GET\",\n `/api/v1/registry/${encodeURIComponent(agentId)}`\n );\n }\n\n public async upsert(\n input: ListMyAgentInput\n ): Promise<RegistryEntry> {\n return this.client.request<RegistryEntry>(\n \"POST\",\n \"/api/v1/registry/me\",\n input\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\";\nimport type {\n TraceLeaderboardEntry,\n TraceLeaderboardParams,\n TracePattern,\n TracePatternsParams,\n} from \"../types.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 public async getLeaderboard(params?: TraceLeaderboardParams): Promise<{ entries: TraceLeaderboardEntry[]; sort: string; limit: number; offset: number }> {\n const query = new URLSearchParams();\n if (params?.sort) query.set(\"sort\", params.sort);\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<{ entries: TraceLeaderboardEntry[]; sort: string; limit: number; offset: number }>(\"GET\", `/api/v1/traces/leaderboard${suffix}`);\n }\n\n public async getPatterns(params?: TracePatternsParams): Promise<{ patterns: TracePattern[]; limit: number }> {\n const query = new URLSearchParams();\n if (params?.minPnl !== undefined) query.set(\"minPnl\", String(params.minPnl));\n if (params?.limit !== undefined) query.set(\"limit\", String(params.limit));\n if (params?.trigger) query.set(\"trigger\", params.trigger);\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<{ patterns: TracePattern[]; limit: number }>(\"GET\", `/api/v1/traces/patterns${suffix}`);\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type {\n ArenaAgent,\n ArenaListParams,\n ArenaFeedEntry,\n ArenaLeaderboardEntry,\n ArenaLeaderboardParams,\n ArenaStats,\n} from \"../types.js\";\n\nexport class ArenaResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async listAgents(params?: ArenaListParams): Promise<{ agents: ArenaAgent[]; total: number; limit: number; offset: 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 const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<{ agents: ArenaAgent[]; total: number; limit: number; offset: number }>(\n \"GET\",\n `/api/v1/arena/agents${suffix}`\n );\n }\n\n public async getFeed(params?: ArenaListParams): Promise<ArenaFeedEntry[]> {\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<ArenaFeedEntry[]>(\n \"GET\",\n `/api/v1/arena/feed${suffix}`\n );\n }\n\n public async getLeaderboard(params?: ArenaLeaderboardParams): Promise<ArenaLeaderboardEntry[]> {\n const query = new URLSearchParams();\n if (params?.limit !== undefined) query.set(\"limit\", String(params.limit));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<ArenaLeaderboardEntry[]>(\n \"GET\",\n `/api/v1/arena/leaderboard${suffix}`\n );\n }\n\n public async getStats(): Promise<ArenaStats> {\n return this.client.request<ArenaStats>(\"GET\", \"/api/v1/arena/stats\");\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type {\n Tournament,\n TournamentDetail,\n TournamentListParams,\n} from \"../types.js\";\n\nexport class TournamentsResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async list(params?: TournamentListParams): Promise<{ tournaments: Tournament[]; total: number; limit: number; offset: number }> {\n const query = new URLSearchParams();\n if (params?.status) query.set(\"status\", params.status);\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<{ tournaments: Tournament[]; total: number; limit: number; offset: number }>(\n \"GET\",\n `/api/v1/tournaments${suffix}`\n );\n }\n\n public async get(id: string): Promise<TournamentDetail> {\n return this.client.request<TournamentDetail>(\n \"GET\",\n `/api/v1/tournaments/${encodeURIComponent(id)}`\n );\n }\n\n public async register(id: string): Promise<{ registered: true }> {\n return this.client.request<{ registered: true }>(\n \"POST\",\n `/api/v1/tournaments/${encodeURIComponent(id)}/register`\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type {\n NotificationHistoryParams,\n NotificationHistoryPage,\n RegisterPushTokenInput,\n UnregisterPushTokenInput,\n} from \"../types.js\";\n\nexport class NotificationsResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async getHistory(params?: NotificationHistoryParams): Promise<NotificationHistoryPage> {\n const query = new URLSearchParams();\n if (params?.limit !== undefined) query.set(\"limit\", String(params.limit));\n if (params?.cursor) query.set(\"cursor\", params.cursor);\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<NotificationHistoryPage>(\n \"GET\",\n `/api/v1/notifications/history${suffix}`\n );\n }\n\n public async markRead(id: string): Promise<void> {\n await this.client.request<void>(\n \"PUT\",\n `/api/v1/notifications/${encodeURIComponent(id)}/read`\n );\n }\n\n public async markAllRead(): Promise<void> {\n await this.client.request<void>(\n \"PUT\",\n \"/api/v1/notifications/read-all\"\n );\n }\n\n public async registerToken(input: RegisterPushTokenInput): Promise<void> {\n await this.client.request<void>(\n \"POST\",\n \"/api/v1/notifications/register-token\",\n input\n );\n }\n\n public async unregisterToken(input: UnregisterPushTokenInput): Promise<void> {\n await this.client.request<void>(\n \"DELETE\",\n \"/api/v1/notifications/unregister-token\",\n input\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type {\n GamificationProfile,\n Badge,\n Challenge,\n Quest,\n MysteryBoxStatus,\n GamificationLeaderboardEntry,\n GamificationLeaderboardParams,\n RewardHistoryEntry,\n RewardHistoryParams,\n} from \"../types.js\";\n\nexport class GamificationResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async getProfile(): Promise<GamificationProfile> {\n // Returns fields directly (no envelope)\n return this.client.requestRaw<GamificationProfile>(\"GET\", \"/api/v1/gamification/profile\");\n }\n\n public async getBadges(): Promise<Badge[]> {\n // Returns { data: [...] } (no success field)\n const res = await this.client.requestRaw<{ data: Badge[] }>(\"GET\", \"/api/v1/gamification/badges\");\n return res.data;\n }\n\n public async getAllBadges(): Promise<Badge[]> {\n const res = await this.client.requestRaw<{ data: Badge[] }>(\"GET\", \"/api/v1/gamification/badges/all\");\n return res.data;\n }\n\n public async getChallenges(): Promise<Challenge[]> {\n // Returns { data: [...] } (no success field)\n const res = await this.client.requestRaw<{ data: Challenge[] }>(\"GET\", \"/api/v1/gamification/challenges\");\n return res.data;\n }\n\n public async claimChallenge(id: string): Promise<unknown> {\n return this.client.request<unknown>(\"POST\", `/api/v1/gamification/challenges/${encodeURIComponent(id)}/claim`);\n }\n\n public async getQuests(): Promise<Quest[]> {\n // Returns { data: [...] } (no success field)\n const res = await this.client.requestRaw<{ data: Quest[] }>(\"GET\", \"/api/v1/gamification/quests\");\n return res.data;\n }\n\n public async claimQuest(questAssignmentId: string): Promise<unknown> {\n return this.client.request<unknown>(\"POST\", \"/api/v1/gamification/quests\", { questAssignmentId });\n }\n\n public async getMysteryBox(): Promise<MysteryBoxStatus> {\n return this.client.request<MysteryBoxStatus>(\"GET\", \"/api/v1/gamification/mystery-box\");\n }\n\n public async claimMysteryBox(): Promise<unknown> {\n return this.client.request<unknown>(\"POST\", \"/api/v1/gamification/mystery-box\");\n }\n\n public async recordLogin(): Promise<unknown> {\n // Returns server action result directly\n return this.client.requestRaw<unknown>(\"POST\", \"/api/v1/gamification/login\");\n }\n\n public async getLeaderboard(params?: GamificationLeaderboardParams): Promise<{ entries: GamificationLeaderboardEntry[]; yourRank: number | null; totalCount: 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 const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n // Returns { entries, yourRank, totalCount } (no envelope)\n return this.client.requestRaw<{ entries: GamificationLeaderboardEntry[]; yourRank: number | null; totalCount: number }>(\n \"GET\",\n `/api/v1/gamification/leaderboard${suffix}`\n );\n }\n\n public async getRewards(params?: RewardHistoryParams): Promise<RewardHistoryEntry[]> {\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 // Returns { data: [...] } (no success field)\n const res = await this.client.requestRaw<{ data: RewardHistoryEntry[] }>(\n \"GET\",\n `/api/v1/gamification/rewards${suffix}`\n );\n return res.data;\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type { ApiKey, ApiKeyWithSecret, CreateApiKeyInput } from \"../types.js\";\n\nexport class ApiKeysResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async list(): Promise<ApiKey[]> {\n return this.client.request<ApiKey[]>(\"GET\", \"/api/v1/api-keys\");\n }\n\n public async create(input: CreateApiKeyInput): Promise<ApiKeyWithSecret> {\n return this.client.request<ApiKeyWithSecret>(\"POST\", \"/api/v1/api-keys\", input);\n }\n\n public async revoke(id: string): Promise<void> {\n return this.client.request<void>(\"DELETE\", `/api/v1/api-keys/${encodeURIComponent(id)}`);\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type { BugReportInput } from \"../types.js\";\n\nexport class SupportResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async submitBugReport(input: BugReportInput): Promise<{ reported: true }> {\n return this.client.request<{ reported: true }>(\"POST\", \"/api/v1/support/bug-report\", input);\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type { AppConfig } from \"../types.js\";\n\nexport class ConfigResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async getAppConfig(): Promise<AppConfig> {\n return this.client.request<AppConfig>(\"GET\", \"/api/v1/config/app\");\n }\n}\n"],"mappings":"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","names":[]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1060,6 +1060,7 @@ declare class AuthResource {
|
|
|
1060
1060
|
register(input: RegisterInput): Promise<AuthResponse>;
|
|
1061
1061
|
login(input: LoginInput): Promise<AuthResponse>;
|
|
1062
1062
|
me(): Promise<UserSummary>;
|
|
1063
|
+
complianceStatus(): Promise<Record<string, unknown>>;
|
|
1063
1064
|
}
|
|
1064
1065
|
|
|
1065
1066
|
declare class DelegationsResource {
|
package/dist/index.d.ts
CHANGED
|
@@ -1060,6 +1060,7 @@ declare class AuthResource {
|
|
|
1060
1060
|
register(input: RegisterInput): Promise<AuthResponse>;
|
|
1061
1061
|
login(input: LoginInput): Promise<AuthResponse>;
|
|
1062
1062
|
me(): Promise<UserSummary>;
|
|
1063
|
+
complianceStatus(): Promise<Record<string, unknown>>;
|
|
1063
1064
|
}
|
|
1064
1065
|
|
|
1065
1066
|
declare class DelegationsResource {
|
package/dist/index.js
CHANGED
|
@@ -142,6 +142,9 @@ var AuthResource = class {
|
|
|
142
142
|
const response = await this.client.request("GET", "/api/v1/auth/me");
|
|
143
143
|
return response.user;
|
|
144
144
|
}
|
|
145
|
+
async complianceStatus() {
|
|
146
|
+
return this.client.request("GET", "/api/v1/compliance/status");
|
|
147
|
+
}
|
|
145
148
|
};
|
|
146
149
|
|
|
147
150
|
// src/resources/delegations.ts
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/client.ts","../src/errors.ts","../src/resources/agents.ts","../src/resources/auth.ts","../src/resources/delegations.ts","../src/resources/escrows.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/registry.ts","../src/resources/stake.ts","../src/resources/traces.ts","../src/resources/arena.ts","../src/resources/tournaments.ts","../src/resources/notifications.ts","../src/resources/gamification.ts","../src/resources/api-keys.ts","../src/resources/support.ts","../src/resources/config.ts"],"sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { ToromarketError } from \"./errors.js\";\nimport { AgentsResource } from \"./resources/agents.js\";\nimport { AuthResource } from \"./resources/auth.js\";\nimport { DelegationsResource } from \"./resources/delegations.js\";\nimport { EscrowsResource } from \"./resources/escrows.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 { RegistryResource } from \"./resources/registry.js\";\nimport { StakeResource } from \"./resources/stake.js\";\nimport { TracesResource } from \"./resources/traces.js\";\nimport { ArenaResource } from \"./resources/arena.js\";\nimport { TournamentsResource } from \"./resources/tournaments.js\";\nimport { NotificationsResource } from \"./resources/notifications.js\";\nimport { GamificationResource } from \"./resources/gamification.js\";\nimport { ApiKeysResource } from \"./resources/api-keys.js\";\nimport { SupportResource } from \"./resources/support.js\";\nimport { ConfigResource } from \"./resources/config.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 apiKey: string | null;\n private readonly agentSecret: string | null;\n private readonly timeoutMs: number;\n private token: string | null;\n\n public readonly agents: AgentsResource;\n public readonly auth: AuthResource;\n public readonly delegations: DelegationsResource;\n public readonly escrows: EscrowsResource;\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 registry: RegistryResource;\n public readonly stake: StakeResource;\n public readonly arena: ArenaResource;\n public readonly tournaments: TournamentsResource;\n public readonly notifications: NotificationsResource;\n public readonly gamification: GamificationResource;\n public readonly apiKeys: ApiKeysResource;\n public readonly support: SupportResource;\n public readonly config: ConfigResource;\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.agents = new AgentsResource(this);\n this.auth = new AuthResource(this);\n this.delegations = new DelegationsResource(this);\n this.escrows = new EscrowsResource(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.registry = new RegistryResource(this);\n this.stake = new StakeResource(this);\n this.arena = new ArenaResource(this);\n this.tournaments = new TournamentsResource(this);\n this.notifications = new NotificationsResource(this);\n this.gamification = new GamificationResource(this);\n this.apiKeys = new ApiKeysResource(this);\n this.support = new SupportResource(this);\n this.config = new ConfigResource(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 setApiKey(apiKey: string | null): void {\n this.apiKey = apiKey;\n }\n\n public getApiKey(): string | null {\n return this.apiKey;\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 /**\n * Like request(), but returns the raw parsed JSON without envelope unwrapping.\n * Use for endpoints that return raw JSON (not wrapped in { success, data }).\n */\n public async requestRaw<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 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 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 ? { \"Idempotency-Key\": idempotencyKey } : {}),\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 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 if (fetchError instanceof DOMException && fetchError.name === \"AbortError\") {\n throw new ToromarketError(\"Request timed out\", 408, \"TIMEOUT\");\n }\n if (fetchError instanceof TypeError) {\n throw new ToromarketError(`Network error: ${fetchError.message}`, 0, \"NETWORK_ERROR\");\n }\n throw fetchError;\n }\n clearTimeout(timeoutId);\n\n if (this.isRetryableStatus(response.status) && !isLastAttempt) {\n await new Promise((resolve) => setTimeout(resolve, RETRY_DELAY_MS));\n continue;\n }\n\n if (!response.ok) {\n let parsedBody: unknown;\n try {\n parsedBody = await response.json();\n } catch {\n throw new ToromarketError(`HTTP ${response.status} with non-JSON response`, response.status);\n }\n const raw = parsedBody as Record<string, unknown> | null;\n const code =\n typeof raw === \"object\" && raw !== null && typeof raw.code === \"string\"\n ? raw.code\n : undefined;\n throw new ToromarketError(`HTTP ${response.status}`, response.status, code, parsedBody);\n }\n\n try {\n return (await response.json()) as T;\n } catch {\n return undefined as T;\n }\n }\n\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 {\n AgentCard,\n AgentCardInput,\n DiscoverAgentsParams,\n AgentMessage,\n AgentConversation,\n AgentInboxEntry,\n SendAgentMessageInput,\n ReadAgentInboxParams,\n} from \"../types.js\";\n\nexport class AgentsResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async discover(\n params?: DiscoverAgentsParams\n ): Promise<AgentCard[]> {\n const query = new URLSearchParams();\n if (params?.capability !== undefined)\n query.set(\"capability\", params.capability);\n if (params?.category !== undefined)\n query.set(\"category\", params.category);\n if (params?.style !== undefined) query.set(\"style\", params.style);\n if (params?.sortBy !== undefined) query.set(\"sortBy\", params.sortBy);\n if (params?.limit !== undefined)\n query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined)\n query.set(\"offset\", String(params.offset));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<AgentCard[]>(\n \"GET\",\n `/api/v1/agents${suffix}`\n );\n }\n\n public async getCard(agentId: string): Promise<AgentCard> {\n return this.client.request<AgentCard>(\n \"GET\",\n `/api/v1/agents/${encodeURIComponent(agentId)}/card`\n );\n }\n\n public async updateMyCard(\n input: AgentCardInput\n ): Promise<AgentCard> {\n return this.client.request<AgentCard>(\n \"PUT\",\n \"/api/v1/agents/me/card\",\n input\n );\n }\n\n public async sendMessage(\n agentId: string,\n input: SendAgentMessageInput\n ): Promise<AgentMessage> {\n return this.client.request<AgentMessage>(\n \"POST\",\n `/api/v1/agents/${encodeURIComponent(agentId)}/messages`,\n input\n );\n }\n\n public async readInbox(\n params?: ReadAgentInboxParams\n ): Promise<AgentInboxEntry[]> {\n const query = new URLSearchParams();\n if (params?.type !== undefined) query.set(\"type\", params.type);\n if (params?.limit !== undefined)\n query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined)\n query.set(\"offset\", String(params.offset));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<AgentInboxEntry[]>(\n \"GET\",\n `/api/v1/agents/me/inbox${suffix}`\n );\n }\n\n public async acknowledgeInbox(): Promise<void> {\n await this.client.request<void>(\"POST\", \"/api/v1/agents/me/inbox\");\n }\n\n public async getConversation(\n conversationId: string\n ): Promise<AgentConversation> {\n return this.client.request<AgentConversation>(\n \"GET\",\n `/api/v1/agents/conversations/${encodeURIComponent(conversationId)}`\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type { AuthResponse, SelfRegisterResponse, ClaimValidateResponse, UserSummary } from \"../types.js\";\n\n/** @deprecated Use SelfRegisterInput instead — legacy flow requires operatorId upfront. */\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 SelfRegisterInput {\n email: string;\n username: string;\n password: string;\n modelProvider?: string;\n modelId?: 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 /**\n * Self-register a new agent account. No operator or shared secret required.\n * Returns a JWT (auto-stored) + claim code for human operator verification.\n */\n public async selfRegister(input: SelfRegisterInput): Promise<SelfRegisterResponse> {\n const response = await this.client.request<SelfRegisterResponse>(\n \"POST\",\n \"/api/v1/agents/self-register\",\n input\n );\n this.client.setToken(response.token);\n return response;\n }\n\n /**\n * Check whether a claim code is valid (public, no auth required).\n */\n public async validateClaim(code: string): Promise<ClaimValidateResponse> {\n return this.client.request<ClaimValidateResponse>(\n \"GET\",\n `/api/v1/agents/claim/validate?code=${encodeURIComponent(code)}`\n );\n }\n\n /**\n * @deprecated Use selfRegister() instead. This legacy flow requires an operatorId\n * and AGENT_REGISTRATION_SECRET upfront. Kept for backward compatibility.\n */\n public async register(input: RegisterInput): Promise<AuthResponse> {\n const secret = this.client.getAgentSecret();\n const headers: Record<string, string> = {};\n if (secret) {\n headers[\"x-agent-secret\"] = secret;\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 {\n Delegation,\n DelegationWithToken,\n CreateDelegationInput,\n ListDelegationsParams,\n DelegationActivityTrade,\n DelegationActivityParams,\n} from \"../types.js\";\n\nexport class DelegationsResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async createDelegation(\n input: CreateDelegationInput\n ): Promise<DelegationWithToken> {\n return this.client.request<DelegationWithToken>(\n \"POST\",\n \"/api/v1/delegations\",\n input\n );\n }\n\n public async listMyDelegations(\n params?: ListDelegationsParams\n ): Promise<Delegation[]> {\n const query = new URLSearchParams();\n if (params?.role !== undefined) query.set(\"role\", params.role);\n if (params?.status !== undefined) query.set(\"status\", params.status);\n if (params?.limit !== undefined)\n query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined)\n query.set(\"offset\", String(params.offset));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<Delegation[]>(\n \"GET\",\n `/api/v1/delegations/me${suffix}`\n );\n }\n\n public async getDelegation(delegationId: string): Promise<Delegation> {\n return this.client.request<Delegation>(\n \"GET\",\n `/api/v1/delegations/${encodeURIComponent(delegationId)}`\n );\n }\n\n public async revokeDelegation(delegationId: string): Promise<void> {\n await this.client.request<void>(\n \"DELETE\",\n `/api/v1/delegations/${encodeURIComponent(delegationId)}`\n );\n }\n\n public async rotateDelegation(delegationId: string): Promise<DelegationWithToken> {\n return this.client.request<DelegationWithToken>(\n \"POST\",\n `/api/v1/delegations/${encodeURIComponent(delegationId)}/rotate`\n );\n }\n\n public async getActivity(params?: DelegationActivityParams): Promise<{ trades: DelegationActivityTrade[]; total: number; limit: number; offset: number }> {\n const query = new URLSearchParams();\n if (params?.delegationId) query.set(\"delegationId\", params.delegationId);\n if (params?.role) query.set(\"role\", params.role);\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<{ trades: DelegationActivityTrade[]; total: number; limit: number; offset: number }>(\n \"GET\",\n `/api/v1/delegations/me/activity${suffix}`\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type {\n Escrow,\n EscrowWithDelegation,\n CreateEscrowInput,\n ListEscrowsParams,\n} from \"../types.js\";\n\nexport class EscrowsResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async createEscrow(input: CreateEscrowInput & { delegation: NonNullable<CreateEscrowInput[\"delegation\"]> }): Promise<EscrowWithDelegation>;\n public async createEscrow(input: CreateEscrowInput): Promise<Escrow>;\n public async createEscrow(input: CreateEscrowInput): Promise<Escrow | EscrowWithDelegation> {\n return this.client.request<Escrow | EscrowWithDelegation>(\"POST\", \"/api/v1/escrows\", input);\n }\n\n public async listMyEscrows(params?: ListEscrowsParams): Promise<Escrow[]> {\n const query = new URLSearchParams();\n if (params?.role !== undefined) query.set(\"role\", params.role);\n if (params?.status !== undefined) query.set(\"status\", params.status);\n if (params?.limit !== undefined)\n query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined)\n query.set(\"offset\", String(params.offset));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<Escrow[]>(\n \"GET\",\n `/api/v1/escrows/me${suffix}`\n );\n }\n\n public async getEscrow(escrowId: string): Promise<Escrow> {\n return this.client.request<Escrow>(\n \"GET\",\n `/api/v1/escrows/${encodeURIComponent(escrowId)}`\n );\n }\n\n public async settleEscrow(escrowId: string): Promise<Escrow> {\n return this.client.request<Escrow>(\n \"POST\",\n `/api/v1/escrows/${encodeURIComponent(escrowId)}/settle`\n );\n }\n\n public async disputeEscrow(\n escrowId: string,\n reason?: string\n ): Promise<Escrow> {\n return this.client.request<Escrow>(\n \"POST\",\n `/api/v1/escrows/${encodeURIComponent(escrowId)}/dispute`,\n reason !== undefined ? { reason } : undefined\n );\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 public async react(symbol: string, messageId: string, emoji: string): Promise<unknown> {\n if (!/^[a-zA-Z0-9_-]+$/.test(messageId)) {\n throw new Error(\"Invalid messageId\");\n }\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/chat/${encodeURIComponent(symbol)}/${encodeURIComponent(messageId)}/react`,\n { emoji }\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 public async getPnlChart(fundId: string): Promise<unknown[]> {\n return this.client.request<unknown[]>(\n \"GET\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/pnl-chart`\n );\n }\n\n public async getProposals(fundId: string): Promise<unknown[]> {\n return this.client.request<unknown[]>(\n \"GET\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/proposals`\n );\n }\n\n public async createProposal(fundId: string, input: { title: string; description: string; sourceCode?: string }): Promise<unknown> {\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/proposals`,\n input\n );\n }\n\n public async approveProposal(fundId: string, proposalId: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/proposals/${encodeURIComponent(proposalId)}/approve`\n );\n }\n\n public async rejectProposal(fundId: string, proposalId: string, input?: { reason?: string }): Promise<unknown> {\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/proposals/${encodeURIComponent(proposalId)}/reject`,\n input\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 public async getLiveSports(): Promise<unknown[]> {\n return this.client.request<unknown[]>(\"GET\", \"/api/v1/sports/live\");\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 public async getRelatedMarkets(marketId: string): Promise<unknown[]> {\n return this.client.request<unknown[]>(\n \"GET\",\n `/api/v1/predictions/markets/${encodeURIComponent(marketId)}/related`\n );\n }\n\n public async getCategoryComments(category: string, params?: { exclude?: string }): Promise<unknown[]> {\n const query = new URLSearchParams();\n if (params?.exclude) query.set(\"exclude\", params.exclude);\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<unknown[]>(\n \"GET\",\n `/api/v1/predictions/comments/category/${encodeURIComponent(category)}${suffix}`\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 public async getBadges(username: string): Promise<unknown[]> {\n return this.client.request<unknown[]>(\n \"GET\",\n `/api/v1/profile/${encodeURIComponent(username)}/badges`\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, WarTrade, WarTrajectory, WarTradesParams,\n WeeklyWar,\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 public async getTrades(warId: string, params?: WarTradesParams): Promise<{ trades: WarTrade[] }> {\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.requestRaw<{ trades: WarTrade[] }>(\n \"GET\",\n `/api/v1/wars/${encodeURIComponent(warId)}/trades${suffix}`\n );\n }\n\n public async getTrajectory(warId: string): Promise<WarTrajectory> {\n return this.client.requestRaw<WarTrajectory>(\n \"GET\",\n `/api/v1/wars/${encodeURIComponent(warId)}/trajectory`\n );\n }\n\n public async getWeekly(): Promise<WeeklyWar | null> {\n return this.client.requestRaw<WeeklyWar | null>(\"GET\", \"/api/v1/wars/weekly\");\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 public async friends(): Promise<unknown[]> {\n return this.client.request<unknown[]>(\"GET\", \"/api/v1/social/friends\");\n }\n\n public async compare(userId: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"GET\",\n `/api/v1/social/compare/${encodeURIComponent(userId)}`\n );\n }\n\n public async friendRequests(): Promise<unknown[]> {\n return this.client.request<unknown[]>(\"GET\", \"/api/v1/social/friends/requests\");\n }\n\n public async acceptFriendRequest(requestId: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/social/friends/requests/${encodeURIComponent(requestId)}/accept`\n );\n }\n\n public async rejectFriendRequest(requestId: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/social/friends/requests/${encodeURIComponent(requestId)}/reject`\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\";\nimport type {\n RegistryEntry,\n RegistryListParams,\n ListMyAgentInput,\n} from \"../types.js\";\n\nexport class RegistryResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async list(\n params?: RegistryListParams\n ): Promise<RegistryEntry[]> {\n const query = new URLSearchParams();\n if (params?.category !== undefined)\n query.set(\"category\", params.category);\n if (params?.sortBy !== undefined) query.set(\"sortBy\", params.sortBy);\n if (params?.limit !== undefined)\n query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined)\n query.set(\"offset\", String(params.offset));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<RegistryEntry[]>(\n \"GET\",\n `/api/v1/registry${suffix}`\n );\n }\n\n public async get(agentId: string): Promise<RegistryEntry> {\n return this.client.request<RegistryEntry>(\n \"GET\",\n `/api/v1/registry/${encodeURIComponent(agentId)}`\n );\n }\n\n public async upsert(\n input: ListMyAgentInput\n ): Promise<RegistryEntry> {\n return this.client.request<RegistryEntry>(\n \"POST\",\n \"/api/v1/registry/me\",\n input\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\";\nimport type {\n TraceLeaderboardEntry,\n TraceLeaderboardParams,\n TracePattern,\n TracePatternsParams,\n} from \"../types.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 public async getLeaderboard(params?: TraceLeaderboardParams): Promise<{ entries: TraceLeaderboardEntry[]; sort: string; limit: number; offset: number }> {\n const query = new URLSearchParams();\n if (params?.sort) query.set(\"sort\", params.sort);\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<{ entries: TraceLeaderboardEntry[]; sort: string; limit: number; offset: number }>(\"GET\", `/api/v1/traces/leaderboard${suffix}`);\n }\n\n public async getPatterns(params?: TracePatternsParams): Promise<{ patterns: TracePattern[]; limit: number }> {\n const query = new URLSearchParams();\n if (params?.minPnl !== undefined) query.set(\"minPnl\", String(params.minPnl));\n if (params?.limit !== undefined) query.set(\"limit\", String(params.limit));\n if (params?.trigger) query.set(\"trigger\", params.trigger);\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<{ patterns: TracePattern[]; limit: number }>(\"GET\", `/api/v1/traces/patterns${suffix}`);\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type {\n ArenaAgent,\n ArenaListParams,\n ArenaFeedEntry,\n ArenaLeaderboardEntry,\n ArenaLeaderboardParams,\n ArenaStats,\n} from \"../types.js\";\n\nexport class ArenaResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async listAgents(params?: ArenaListParams): Promise<{ agents: ArenaAgent[]; total: number; limit: number; offset: 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 const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<{ agents: ArenaAgent[]; total: number; limit: number; offset: number }>(\n \"GET\",\n `/api/v1/arena/agents${suffix}`\n );\n }\n\n public async getFeed(params?: ArenaListParams): Promise<ArenaFeedEntry[]> {\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<ArenaFeedEntry[]>(\n \"GET\",\n `/api/v1/arena/feed${suffix}`\n );\n }\n\n public async getLeaderboard(params?: ArenaLeaderboardParams): Promise<ArenaLeaderboardEntry[]> {\n const query = new URLSearchParams();\n if (params?.limit !== undefined) query.set(\"limit\", String(params.limit));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<ArenaLeaderboardEntry[]>(\n \"GET\",\n `/api/v1/arena/leaderboard${suffix}`\n );\n }\n\n public async getStats(): Promise<ArenaStats> {\n return this.client.request<ArenaStats>(\"GET\", \"/api/v1/arena/stats\");\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type {\n Tournament,\n TournamentDetail,\n TournamentListParams,\n} from \"../types.js\";\n\nexport class TournamentsResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async list(params?: TournamentListParams): Promise<{ tournaments: Tournament[]; total: number; limit: number; offset: number }> {\n const query = new URLSearchParams();\n if (params?.status) query.set(\"status\", params.status);\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<{ tournaments: Tournament[]; total: number; limit: number; offset: number }>(\n \"GET\",\n `/api/v1/tournaments${suffix}`\n );\n }\n\n public async get(id: string): Promise<TournamentDetail> {\n return this.client.request<TournamentDetail>(\n \"GET\",\n `/api/v1/tournaments/${encodeURIComponent(id)}`\n );\n }\n\n public async register(id: string): Promise<{ registered: true }> {\n return this.client.request<{ registered: true }>(\n \"POST\",\n `/api/v1/tournaments/${encodeURIComponent(id)}/register`\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type {\n NotificationHistoryParams,\n NotificationHistoryPage,\n RegisterPushTokenInput,\n UnregisterPushTokenInput,\n} from \"../types.js\";\n\nexport class NotificationsResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async getHistory(params?: NotificationHistoryParams): Promise<NotificationHistoryPage> {\n const query = new URLSearchParams();\n if (params?.limit !== undefined) query.set(\"limit\", String(params.limit));\n if (params?.cursor) query.set(\"cursor\", params.cursor);\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<NotificationHistoryPage>(\n \"GET\",\n `/api/v1/notifications/history${suffix}`\n );\n }\n\n public async markRead(id: string): Promise<void> {\n await this.client.request<void>(\n \"PUT\",\n `/api/v1/notifications/${encodeURIComponent(id)}/read`\n );\n }\n\n public async markAllRead(): Promise<void> {\n await this.client.request<void>(\n \"PUT\",\n \"/api/v1/notifications/read-all\"\n );\n }\n\n public async registerToken(input: RegisterPushTokenInput): Promise<void> {\n await this.client.request<void>(\n \"POST\",\n \"/api/v1/notifications/register-token\",\n input\n );\n }\n\n public async unregisterToken(input: UnregisterPushTokenInput): Promise<void> {\n await this.client.request<void>(\n \"DELETE\",\n \"/api/v1/notifications/unregister-token\",\n input\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type {\n GamificationProfile,\n Badge,\n Challenge,\n Quest,\n MysteryBoxStatus,\n GamificationLeaderboardEntry,\n GamificationLeaderboardParams,\n RewardHistoryEntry,\n RewardHistoryParams,\n} from \"../types.js\";\n\nexport class GamificationResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async getProfile(): Promise<GamificationProfile> {\n // Returns fields directly (no envelope)\n return this.client.requestRaw<GamificationProfile>(\"GET\", \"/api/v1/gamification/profile\");\n }\n\n public async getBadges(): Promise<Badge[]> {\n // Returns { data: [...] } (no success field)\n const res = await this.client.requestRaw<{ data: Badge[] }>(\"GET\", \"/api/v1/gamification/badges\");\n return res.data;\n }\n\n public async getAllBadges(): Promise<Badge[]> {\n const res = await this.client.requestRaw<{ data: Badge[] }>(\"GET\", \"/api/v1/gamification/badges/all\");\n return res.data;\n }\n\n public async getChallenges(): Promise<Challenge[]> {\n // Returns { data: [...] } (no success field)\n const res = await this.client.requestRaw<{ data: Challenge[] }>(\"GET\", \"/api/v1/gamification/challenges\");\n return res.data;\n }\n\n public async claimChallenge(id: string): Promise<unknown> {\n return this.client.request<unknown>(\"POST\", `/api/v1/gamification/challenges/${encodeURIComponent(id)}/claim`);\n }\n\n public async getQuests(): Promise<Quest[]> {\n // Returns { data: [...] } (no success field)\n const res = await this.client.requestRaw<{ data: Quest[] }>(\"GET\", \"/api/v1/gamification/quests\");\n return res.data;\n }\n\n public async claimQuest(questAssignmentId: string): Promise<unknown> {\n return this.client.request<unknown>(\"POST\", \"/api/v1/gamification/quests\", { questAssignmentId });\n }\n\n public async getMysteryBox(): Promise<MysteryBoxStatus> {\n return this.client.request<MysteryBoxStatus>(\"GET\", \"/api/v1/gamification/mystery-box\");\n }\n\n public async claimMysteryBox(): Promise<unknown> {\n return this.client.request<unknown>(\"POST\", \"/api/v1/gamification/mystery-box\");\n }\n\n public async recordLogin(): Promise<unknown> {\n // Returns server action result directly\n return this.client.requestRaw<unknown>(\"POST\", \"/api/v1/gamification/login\");\n }\n\n public async getLeaderboard(params?: GamificationLeaderboardParams): Promise<{ entries: GamificationLeaderboardEntry[]; yourRank: number | null; totalCount: 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 const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n // Returns { entries, yourRank, totalCount } (no envelope)\n return this.client.requestRaw<{ entries: GamificationLeaderboardEntry[]; yourRank: number | null; totalCount: number }>(\n \"GET\",\n `/api/v1/gamification/leaderboard${suffix}`\n );\n }\n\n public async getRewards(params?: RewardHistoryParams): Promise<RewardHistoryEntry[]> {\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 // Returns { data: [...] } (no success field)\n const res = await this.client.requestRaw<{ data: RewardHistoryEntry[] }>(\n \"GET\",\n `/api/v1/gamification/rewards${suffix}`\n );\n return res.data;\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type { ApiKey, ApiKeyWithSecret, CreateApiKeyInput } from \"../types.js\";\n\nexport class ApiKeysResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async list(): Promise<ApiKey[]> {\n return this.client.request<ApiKey[]>(\"GET\", \"/api/v1/api-keys\");\n }\n\n public async create(input: CreateApiKeyInput): Promise<ApiKeyWithSecret> {\n return this.client.request<ApiKeyWithSecret>(\"POST\", \"/api/v1/api-keys\", input);\n }\n\n public async revoke(id: string): Promise<void> {\n return this.client.request<void>(\"DELETE\", `/api/v1/api-keys/${encodeURIComponent(id)}`);\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type { BugReportInput } from \"../types.js\";\n\nexport class SupportResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async submitBugReport(input: BugReportInput): Promise<{ reported: true }> {\n return this.client.request<{ reported: true }>(\"POST\", \"/api/v1/support/bug-report\", input);\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type { AppConfig } from \"../types.js\";\n\nexport class ConfigResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async getAppConfig(): Promise<AppConfig> {\n return this.client.request<AppConfig>(\"GET\", \"/api/v1/config/app\");\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/client.ts","../src/errors.ts","../src/resources/agents.ts","../src/resources/auth.ts","../src/resources/delegations.ts","../src/resources/escrows.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/registry.ts","../src/resources/stake.ts","../src/resources/traces.ts","../src/resources/arena.ts","../src/resources/tournaments.ts","../src/resources/notifications.ts","../src/resources/gamification.ts","../src/resources/api-keys.ts","../src/resources/support.ts","../src/resources/config.ts"],"sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { ToromarketError } from \"./errors.js\";\nimport { AgentsResource } from \"./resources/agents.js\";\nimport { AuthResource } from \"./resources/auth.js\";\nimport { DelegationsResource } from \"./resources/delegations.js\";\nimport { EscrowsResource } from \"./resources/escrows.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 { RegistryResource } from \"./resources/registry.js\";\nimport { StakeResource } from \"./resources/stake.js\";\nimport { TracesResource } from \"./resources/traces.js\";\nimport { ArenaResource } from \"./resources/arena.js\";\nimport { TournamentsResource } from \"./resources/tournaments.js\";\nimport { NotificationsResource } from \"./resources/notifications.js\";\nimport { GamificationResource } from \"./resources/gamification.js\";\nimport { ApiKeysResource } from \"./resources/api-keys.js\";\nimport { SupportResource } from \"./resources/support.js\";\nimport { ConfigResource } from \"./resources/config.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 apiKey: string | null;\n private readonly agentSecret: string | null;\n private readonly timeoutMs: number;\n private token: string | null;\n\n public readonly agents: AgentsResource;\n public readonly auth: AuthResource;\n public readonly delegations: DelegationsResource;\n public readonly escrows: EscrowsResource;\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 registry: RegistryResource;\n public readonly stake: StakeResource;\n public readonly arena: ArenaResource;\n public readonly tournaments: TournamentsResource;\n public readonly notifications: NotificationsResource;\n public readonly gamification: GamificationResource;\n public readonly apiKeys: ApiKeysResource;\n public readonly support: SupportResource;\n public readonly config: ConfigResource;\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.agents = new AgentsResource(this);\n this.auth = new AuthResource(this);\n this.delegations = new DelegationsResource(this);\n this.escrows = new EscrowsResource(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.registry = new RegistryResource(this);\n this.stake = new StakeResource(this);\n this.arena = new ArenaResource(this);\n this.tournaments = new TournamentsResource(this);\n this.notifications = new NotificationsResource(this);\n this.gamification = new GamificationResource(this);\n this.apiKeys = new ApiKeysResource(this);\n this.support = new SupportResource(this);\n this.config = new ConfigResource(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 setApiKey(apiKey: string | null): void {\n this.apiKey = apiKey;\n }\n\n public getApiKey(): string | null {\n return this.apiKey;\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 /**\n * Like request(), but returns the raw parsed JSON without envelope unwrapping.\n * Use for endpoints that return raw JSON (not wrapped in { success, data }).\n */\n public async requestRaw<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 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 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 ? { \"Idempotency-Key\": idempotencyKey } : {}),\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 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 if (fetchError instanceof DOMException && fetchError.name === \"AbortError\") {\n throw new ToromarketError(\"Request timed out\", 408, \"TIMEOUT\");\n }\n if (fetchError instanceof TypeError) {\n throw new ToromarketError(`Network error: ${fetchError.message}`, 0, \"NETWORK_ERROR\");\n }\n throw fetchError;\n }\n clearTimeout(timeoutId);\n\n if (this.isRetryableStatus(response.status) && !isLastAttempt) {\n await new Promise((resolve) => setTimeout(resolve, RETRY_DELAY_MS));\n continue;\n }\n\n if (!response.ok) {\n let parsedBody: unknown;\n try {\n parsedBody = await response.json();\n } catch {\n throw new ToromarketError(`HTTP ${response.status} with non-JSON response`, response.status);\n }\n const raw = parsedBody as Record<string, unknown> | null;\n const code =\n typeof raw === \"object\" && raw !== null && typeof raw.code === \"string\"\n ? raw.code\n : undefined;\n throw new ToromarketError(`HTTP ${response.status}`, response.status, code, parsedBody);\n }\n\n try {\n return (await response.json()) as T;\n } catch {\n return undefined as T;\n }\n }\n\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 {\n AgentCard,\n AgentCardInput,\n DiscoverAgentsParams,\n AgentMessage,\n AgentConversation,\n AgentInboxEntry,\n SendAgentMessageInput,\n ReadAgentInboxParams,\n} from \"../types.js\";\n\nexport class AgentsResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async discover(\n params?: DiscoverAgentsParams\n ): Promise<AgentCard[]> {\n const query = new URLSearchParams();\n if (params?.capability !== undefined)\n query.set(\"capability\", params.capability);\n if (params?.category !== undefined)\n query.set(\"category\", params.category);\n if (params?.style !== undefined) query.set(\"style\", params.style);\n if (params?.sortBy !== undefined) query.set(\"sortBy\", params.sortBy);\n if (params?.limit !== undefined)\n query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined)\n query.set(\"offset\", String(params.offset));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<AgentCard[]>(\n \"GET\",\n `/api/v1/agents${suffix}`\n );\n }\n\n public async getCard(agentId: string): Promise<AgentCard> {\n return this.client.request<AgentCard>(\n \"GET\",\n `/api/v1/agents/${encodeURIComponent(agentId)}/card`\n );\n }\n\n public async updateMyCard(\n input: AgentCardInput\n ): Promise<AgentCard> {\n return this.client.request<AgentCard>(\n \"PUT\",\n \"/api/v1/agents/me/card\",\n input\n );\n }\n\n public async sendMessage(\n agentId: string,\n input: SendAgentMessageInput\n ): Promise<AgentMessage> {\n return this.client.request<AgentMessage>(\n \"POST\",\n `/api/v1/agents/${encodeURIComponent(agentId)}/messages`,\n input\n );\n }\n\n public async readInbox(\n params?: ReadAgentInboxParams\n ): Promise<AgentInboxEntry[]> {\n const query = new URLSearchParams();\n if (params?.type !== undefined) query.set(\"type\", params.type);\n if (params?.limit !== undefined)\n query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined)\n query.set(\"offset\", String(params.offset));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<AgentInboxEntry[]>(\n \"GET\",\n `/api/v1/agents/me/inbox${suffix}`\n );\n }\n\n public async acknowledgeInbox(): Promise<void> {\n await this.client.request<void>(\"POST\", \"/api/v1/agents/me/inbox\");\n }\n\n public async getConversation(\n conversationId: string\n ): Promise<AgentConversation> {\n return this.client.request<AgentConversation>(\n \"GET\",\n `/api/v1/agents/conversations/${encodeURIComponent(conversationId)}`\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type { AuthResponse, SelfRegisterResponse, ClaimValidateResponse, UserSummary } from \"../types.js\";\n\n/** @deprecated Use SelfRegisterInput instead — legacy flow requires operatorId upfront. */\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 SelfRegisterInput {\n email: string;\n username: string;\n password: string;\n modelProvider?: string;\n modelId?: 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 /**\n * Self-register a new agent account. No operator or shared secret required.\n * Returns a JWT (auto-stored) + claim code for human operator verification.\n */\n public async selfRegister(input: SelfRegisterInput): Promise<SelfRegisterResponse> {\n const response = await this.client.request<SelfRegisterResponse>(\n \"POST\",\n \"/api/v1/agents/self-register\",\n input\n );\n this.client.setToken(response.token);\n return response;\n }\n\n /**\n * Check whether a claim code is valid (public, no auth required).\n */\n public async validateClaim(code: string): Promise<ClaimValidateResponse> {\n return this.client.request<ClaimValidateResponse>(\n \"GET\",\n `/api/v1/agents/claim/validate?code=${encodeURIComponent(code)}`\n );\n }\n\n /**\n * @deprecated Use selfRegister() instead. This legacy flow requires an operatorId\n * and AGENT_REGISTRATION_SECRET upfront. Kept for backward compatibility.\n */\n public async register(input: RegisterInput): Promise<AuthResponse> {\n const secret = this.client.getAgentSecret();\n const headers: Record<string, string> = {};\n if (secret) {\n headers[\"x-agent-secret\"] = secret;\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 public async complianceStatus(): Promise<Record<string, unknown>> {\n return this.client.request<Record<string, unknown>>(\"GET\", \"/api/v1/compliance/status\");\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type {\n Delegation,\n DelegationWithToken,\n CreateDelegationInput,\n ListDelegationsParams,\n DelegationActivityTrade,\n DelegationActivityParams,\n} from \"../types.js\";\n\nexport class DelegationsResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async createDelegation(\n input: CreateDelegationInput\n ): Promise<DelegationWithToken> {\n return this.client.request<DelegationWithToken>(\n \"POST\",\n \"/api/v1/delegations\",\n input\n );\n }\n\n public async listMyDelegations(\n params?: ListDelegationsParams\n ): Promise<Delegation[]> {\n const query = new URLSearchParams();\n if (params?.role !== undefined) query.set(\"role\", params.role);\n if (params?.status !== undefined) query.set(\"status\", params.status);\n if (params?.limit !== undefined)\n query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined)\n query.set(\"offset\", String(params.offset));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<Delegation[]>(\n \"GET\",\n `/api/v1/delegations/me${suffix}`\n );\n }\n\n public async getDelegation(delegationId: string): Promise<Delegation> {\n return this.client.request<Delegation>(\n \"GET\",\n `/api/v1/delegations/${encodeURIComponent(delegationId)}`\n );\n }\n\n public async revokeDelegation(delegationId: string): Promise<void> {\n await this.client.request<void>(\n \"DELETE\",\n `/api/v1/delegations/${encodeURIComponent(delegationId)}`\n );\n }\n\n public async rotateDelegation(delegationId: string): Promise<DelegationWithToken> {\n return this.client.request<DelegationWithToken>(\n \"POST\",\n `/api/v1/delegations/${encodeURIComponent(delegationId)}/rotate`\n );\n }\n\n public async getActivity(params?: DelegationActivityParams): Promise<{ trades: DelegationActivityTrade[]; total: number; limit: number; offset: number }> {\n const query = new URLSearchParams();\n if (params?.delegationId) query.set(\"delegationId\", params.delegationId);\n if (params?.role) query.set(\"role\", params.role);\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<{ trades: DelegationActivityTrade[]; total: number; limit: number; offset: number }>(\n \"GET\",\n `/api/v1/delegations/me/activity${suffix}`\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type {\n Escrow,\n EscrowWithDelegation,\n CreateEscrowInput,\n ListEscrowsParams,\n} from \"../types.js\";\n\nexport class EscrowsResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async createEscrow(input: CreateEscrowInput & { delegation: NonNullable<CreateEscrowInput[\"delegation\"]> }): Promise<EscrowWithDelegation>;\n public async createEscrow(input: CreateEscrowInput): Promise<Escrow>;\n public async createEscrow(input: CreateEscrowInput): Promise<Escrow | EscrowWithDelegation> {\n return this.client.request<Escrow | EscrowWithDelegation>(\"POST\", \"/api/v1/escrows\", input);\n }\n\n public async listMyEscrows(params?: ListEscrowsParams): Promise<Escrow[]> {\n const query = new URLSearchParams();\n if (params?.role !== undefined) query.set(\"role\", params.role);\n if (params?.status !== undefined) query.set(\"status\", params.status);\n if (params?.limit !== undefined)\n query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined)\n query.set(\"offset\", String(params.offset));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<Escrow[]>(\n \"GET\",\n `/api/v1/escrows/me${suffix}`\n );\n }\n\n public async getEscrow(escrowId: string): Promise<Escrow> {\n return this.client.request<Escrow>(\n \"GET\",\n `/api/v1/escrows/${encodeURIComponent(escrowId)}`\n );\n }\n\n public async settleEscrow(escrowId: string): Promise<Escrow> {\n return this.client.request<Escrow>(\n \"POST\",\n `/api/v1/escrows/${encodeURIComponent(escrowId)}/settle`\n );\n }\n\n public async disputeEscrow(\n escrowId: string,\n reason?: string\n ): Promise<Escrow> {\n return this.client.request<Escrow>(\n \"POST\",\n `/api/v1/escrows/${encodeURIComponent(escrowId)}/dispute`,\n reason !== undefined ? { reason } : undefined\n );\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 public async react(symbol: string, messageId: string, emoji: string): Promise<unknown> {\n if (!/^[a-zA-Z0-9_-]+$/.test(messageId)) {\n throw new Error(\"Invalid messageId\");\n }\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/chat/${encodeURIComponent(symbol)}/${encodeURIComponent(messageId)}/react`,\n { emoji }\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 public async getPnlChart(fundId: string): Promise<unknown[]> {\n return this.client.request<unknown[]>(\n \"GET\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/pnl-chart`\n );\n }\n\n public async getProposals(fundId: string): Promise<unknown[]> {\n return this.client.request<unknown[]>(\n \"GET\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/proposals`\n );\n }\n\n public async createProposal(fundId: string, input: { title: string; description: string; sourceCode?: string }): Promise<unknown> {\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/proposals`,\n input\n );\n }\n\n public async approveProposal(fundId: string, proposalId: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/proposals/${encodeURIComponent(proposalId)}/approve`\n );\n }\n\n public async rejectProposal(fundId: string, proposalId: string, input?: { reason?: string }): Promise<unknown> {\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/funds/${encodeURIComponent(fundId)}/proposals/${encodeURIComponent(proposalId)}/reject`,\n input\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 public async getLiveSports(): Promise<unknown[]> {\n return this.client.request<unknown[]>(\"GET\", \"/api/v1/sports/live\");\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 public async getRelatedMarkets(marketId: string): Promise<unknown[]> {\n return this.client.request<unknown[]>(\n \"GET\",\n `/api/v1/predictions/markets/${encodeURIComponent(marketId)}/related`\n );\n }\n\n public async getCategoryComments(category: string, params?: { exclude?: string }): Promise<unknown[]> {\n const query = new URLSearchParams();\n if (params?.exclude) query.set(\"exclude\", params.exclude);\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<unknown[]>(\n \"GET\",\n `/api/v1/predictions/comments/category/${encodeURIComponent(category)}${suffix}`\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 public async getBadges(username: string): Promise<unknown[]> {\n return this.client.request<unknown[]>(\n \"GET\",\n `/api/v1/profile/${encodeURIComponent(username)}/badges`\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, WarTrade, WarTrajectory, WarTradesParams,\n WeeklyWar,\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 public async getTrades(warId: string, params?: WarTradesParams): Promise<{ trades: WarTrade[] }> {\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.requestRaw<{ trades: WarTrade[] }>(\n \"GET\",\n `/api/v1/wars/${encodeURIComponent(warId)}/trades${suffix}`\n );\n }\n\n public async getTrajectory(warId: string): Promise<WarTrajectory> {\n return this.client.requestRaw<WarTrajectory>(\n \"GET\",\n `/api/v1/wars/${encodeURIComponent(warId)}/trajectory`\n );\n }\n\n public async getWeekly(): Promise<WeeklyWar | null> {\n return this.client.requestRaw<WeeklyWar | null>(\"GET\", \"/api/v1/wars/weekly\");\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 public async friends(): Promise<unknown[]> {\n return this.client.request<unknown[]>(\"GET\", \"/api/v1/social/friends\");\n }\n\n public async compare(userId: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"GET\",\n `/api/v1/social/compare/${encodeURIComponent(userId)}`\n );\n }\n\n public async friendRequests(): Promise<unknown[]> {\n return this.client.request<unknown[]>(\"GET\", \"/api/v1/social/friends/requests\");\n }\n\n public async acceptFriendRequest(requestId: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/social/friends/requests/${encodeURIComponent(requestId)}/accept`\n );\n }\n\n public async rejectFriendRequest(requestId: string): Promise<unknown> {\n return this.client.request<unknown>(\n \"POST\",\n `/api/v1/social/friends/requests/${encodeURIComponent(requestId)}/reject`\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\";\nimport type {\n RegistryEntry,\n RegistryListParams,\n ListMyAgentInput,\n} from \"../types.js\";\n\nexport class RegistryResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async list(\n params?: RegistryListParams\n ): Promise<RegistryEntry[]> {\n const query = new URLSearchParams();\n if (params?.category !== undefined)\n query.set(\"category\", params.category);\n if (params?.sortBy !== undefined) query.set(\"sortBy\", params.sortBy);\n if (params?.limit !== undefined)\n query.set(\"limit\", String(params.limit));\n if (params?.offset !== undefined)\n query.set(\"offset\", String(params.offset));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<RegistryEntry[]>(\n \"GET\",\n `/api/v1/registry${suffix}`\n );\n }\n\n public async get(agentId: string): Promise<RegistryEntry> {\n return this.client.request<RegistryEntry>(\n \"GET\",\n `/api/v1/registry/${encodeURIComponent(agentId)}`\n );\n }\n\n public async upsert(\n input: ListMyAgentInput\n ): Promise<RegistryEntry> {\n return this.client.request<RegistryEntry>(\n \"POST\",\n \"/api/v1/registry/me\",\n input\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\";\nimport type {\n TraceLeaderboardEntry,\n TraceLeaderboardParams,\n TracePattern,\n TracePatternsParams,\n} from \"../types.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 public async getLeaderboard(params?: TraceLeaderboardParams): Promise<{ entries: TraceLeaderboardEntry[]; sort: string; limit: number; offset: number }> {\n const query = new URLSearchParams();\n if (params?.sort) query.set(\"sort\", params.sort);\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<{ entries: TraceLeaderboardEntry[]; sort: string; limit: number; offset: number }>(\"GET\", `/api/v1/traces/leaderboard${suffix}`);\n }\n\n public async getPatterns(params?: TracePatternsParams): Promise<{ patterns: TracePattern[]; limit: number }> {\n const query = new URLSearchParams();\n if (params?.minPnl !== undefined) query.set(\"minPnl\", String(params.minPnl));\n if (params?.limit !== undefined) query.set(\"limit\", String(params.limit));\n if (params?.trigger) query.set(\"trigger\", params.trigger);\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<{ patterns: TracePattern[]; limit: number }>(\"GET\", `/api/v1/traces/patterns${suffix}`);\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type {\n ArenaAgent,\n ArenaListParams,\n ArenaFeedEntry,\n ArenaLeaderboardEntry,\n ArenaLeaderboardParams,\n ArenaStats,\n} from \"../types.js\";\n\nexport class ArenaResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async listAgents(params?: ArenaListParams): Promise<{ agents: ArenaAgent[]; total: number; limit: number; offset: 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 const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<{ agents: ArenaAgent[]; total: number; limit: number; offset: number }>(\n \"GET\",\n `/api/v1/arena/agents${suffix}`\n );\n }\n\n public async getFeed(params?: ArenaListParams): Promise<ArenaFeedEntry[]> {\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<ArenaFeedEntry[]>(\n \"GET\",\n `/api/v1/arena/feed${suffix}`\n );\n }\n\n public async getLeaderboard(params?: ArenaLeaderboardParams): Promise<ArenaLeaderboardEntry[]> {\n const query = new URLSearchParams();\n if (params?.limit !== undefined) query.set(\"limit\", String(params.limit));\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<ArenaLeaderboardEntry[]>(\n \"GET\",\n `/api/v1/arena/leaderboard${suffix}`\n );\n }\n\n public async getStats(): Promise<ArenaStats> {\n return this.client.request<ArenaStats>(\"GET\", \"/api/v1/arena/stats\");\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type {\n Tournament,\n TournamentDetail,\n TournamentListParams,\n} from \"../types.js\";\n\nexport class TournamentsResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async list(params?: TournamentListParams): Promise<{ tournaments: Tournament[]; total: number; limit: number; offset: number }> {\n const query = new URLSearchParams();\n if (params?.status) query.set(\"status\", params.status);\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<{ tournaments: Tournament[]; total: number; limit: number; offset: number }>(\n \"GET\",\n `/api/v1/tournaments${suffix}`\n );\n }\n\n public async get(id: string): Promise<TournamentDetail> {\n return this.client.request<TournamentDetail>(\n \"GET\",\n `/api/v1/tournaments/${encodeURIComponent(id)}`\n );\n }\n\n public async register(id: string): Promise<{ registered: true }> {\n return this.client.request<{ registered: true }>(\n \"POST\",\n `/api/v1/tournaments/${encodeURIComponent(id)}/register`\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type {\n NotificationHistoryParams,\n NotificationHistoryPage,\n RegisterPushTokenInput,\n UnregisterPushTokenInput,\n} from \"../types.js\";\n\nexport class NotificationsResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async getHistory(params?: NotificationHistoryParams): Promise<NotificationHistoryPage> {\n const query = new URLSearchParams();\n if (params?.limit !== undefined) query.set(\"limit\", String(params.limit));\n if (params?.cursor) query.set(\"cursor\", params.cursor);\n const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n return this.client.request<NotificationHistoryPage>(\n \"GET\",\n `/api/v1/notifications/history${suffix}`\n );\n }\n\n public async markRead(id: string): Promise<void> {\n await this.client.request<void>(\n \"PUT\",\n `/api/v1/notifications/${encodeURIComponent(id)}/read`\n );\n }\n\n public async markAllRead(): Promise<void> {\n await this.client.request<void>(\n \"PUT\",\n \"/api/v1/notifications/read-all\"\n );\n }\n\n public async registerToken(input: RegisterPushTokenInput): Promise<void> {\n await this.client.request<void>(\n \"POST\",\n \"/api/v1/notifications/register-token\",\n input\n );\n }\n\n public async unregisterToken(input: UnregisterPushTokenInput): Promise<void> {\n await this.client.request<void>(\n \"DELETE\",\n \"/api/v1/notifications/unregister-token\",\n input\n );\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type {\n GamificationProfile,\n Badge,\n Challenge,\n Quest,\n MysteryBoxStatus,\n GamificationLeaderboardEntry,\n GamificationLeaderboardParams,\n RewardHistoryEntry,\n RewardHistoryParams,\n} from \"../types.js\";\n\nexport class GamificationResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async getProfile(): Promise<GamificationProfile> {\n // Returns fields directly (no envelope)\n return this.client.requestRaw<GamificationProfile>(\"GET\", \"/api/v1/gamification/profile\");\n }\n\n public async getBadges(): Promise<Badge[]> {\n // Returns { data: [...] } (no success field)\n const res = await this.client.requestRaw<{ data: Badge[] }>(\"GET\", \"/api/v1/gamification/badges\");\n return res.data;\n }\n\n public async getAllBadges(): Promise<Badge[]> {\n const res = await this.client.requestRaw<{ data: Badge[] }>(\"GET\", \"/api/v1/gamification/badges/all\");\n return res.data;\n }\n\n public async getChallenges(): Promise<Challenge[]> {\n // Returns { data: [...] } (no success field)\n const res = await this.client.requestRaw<{ data: Challenge[] }>(\"GET\", \"/api/v1/gamification/challenges\");\n return res.data;\n }\n\n public async claimChallenge(id: string): Promise<unknown> {\n return this.client.request<unknown>(\"POST\", `/api/v1/gamification/challenges/${encodeURIComponent(id)}/claim`);\n }\n\n public async getQuests(): Promise<Quest[]> {\n // Returns { data: [...] } (no success field)\n const res = await this.client.requestRaw<{ data: Quest[] }>(\"GET\", \"/api/v1/gamification/quests\");\n return res.data;\n }\n\n public async claimQuest(questAssignmentId: string): Promise<unknown> {\n return this.client.request<unknown>(\"POST\", \"/api/v1/gamification/quests\", { questAssignmentId });\n }\n\n public async getMysteryBox(): Promise<MysteryBoxStatus> {\n return this.client.request<MysteryBoxStatus>(\"GET\", \"/api/v1/gamification/mystery-box\");\n }\n\n public async claimMysteryBox(): Promise<unknown> {\n return this.client.request<unknown>(\"POST\", \"/api/v1/gamification/mystery-box\");\n }\n\n public async recordLogin(): Promise<unknown> {\n // Returns server action result directly\n return this.client.requestRaw<unknown>(\"POST\", \"/api/v1/gamification/login\");\n }\n\n public async getLeaderboard(params?: GamificationLeaderboardParams): Promise<{ entries: GamificationLeaderboardEntry[]; yourRank: number | null; totalCount: 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 const suffix = query.size > 0 ? `?${query.toString()}` : \"\";\n // Returns { entries, yourRank, totalCount } (no envelope)\n return this.client.requestRaw<{ entries: GamificationLeaderboardEntry[]; yourRank: number | null; totalCount: number }>(\n \"GET\",\n `/api/v1/gamification/leaderboard${suffix}`\n );\n }\n\n public async getRewards(params?: RewardHistoryParams): Promise<RewardHistoryEntry[]> {\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 // Returns { data: [...] } (no success field)\n const res = await this.client.requestRaw<{ data: RewardHistoryEntry[] }>(\n \"GET\",\n `/api/v1/gamification/rewards${suffix}`\n );\n return res.data;\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type { ApiKey, ApiKeyWithSecret, CreateApiKeyInput } from \"../types.js\";\n\nexport class ApiKeysResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async list(): Promise<ApiKey[]> {\n return this.client.request<ApiKey[]>(\"GET\", \"/api/v1/api-keys\");\n }\n\n public async create(input: CreateApiKeyInput): Promise<ApiKeyWithSecret> {\n return this.client.request<ApiKeyWithSecret>(\"POST\", \"/api/v1/api-keys\", input);\n }\n\n public async revoke(id: string): Promise<void> {\n return this.client.request<void>(\"DELETE\", `/api/v1/api-keys/${encodeURIComponent(id)}`);\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type { BugReportInput } from \"../types.js\";\n\nexport class SupportResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async submitBugReport(input: BugReportInput): Promise<{ reported: true }> {\n return this.client.request<{ reported: true }>(\"POST\", \"/api/v1/support/bug-report\", input);\n }\n}\n","import type { ToromarketClient } from \"../client.js\";\nimport type { AppConfig } from \"../types.js\";\n\nexport class ConfigResource {\n public constructor(private readonly client: ToromarketClient) {}\n\n public async getAppConfig(): Promise<AppConfig> {\n return this.client.request<AppConfig>(\"GET\", \"/api/v1/config/app\");\n }\n}\n"],"mappings":"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","names":[]}
|