opentool 0.10.5 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/adapters/polymarket/base.ts","../../../src/adapters/polymarket/exchange.ts","../../../src/adapters/polymarket/info.ts"],"names":["requestJson"],"mappings":"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","file":"index.js","sourcesContent":["import { createHmac, randomBytes } from \"node:crypto\";\nimport { parseUnits } from \"viem\";\nimport type { WalletFullContext } from \"../../wallet/types\";\n\nexport type PolymarketEnvironment = \"mainnet\" | \"testnet\";\n\nexport type PolymarketSide = \"BUY\" | \"SELL\";\nexport type PolymarketOrderType = \"GTC\" | \"FOK\" | \"FAK\" | \"GTD\";\nexport type PolymarketSignatureType = 0 | 1 | 2;\n\nexport interface PolymarketApiCredentials {\n apiKey: string;\n secret: string;\n passphrase: string;\n}\n\nexport interface PolymarketMarket {\n id: string;\n slug?: string | null;\n question?: string | null;\n description?: string | null;\n eventId?: string | null;\n eventSlug?: string | null;\n conditionId?: string | null;\n marketMakerAddress?: string | null;\n category?: string | null;\n tags?: string[];\n active?: boolean;\n closed?: boolean;\n resolved?: boolean;\n startDate?: string | null;\n endDate?: string | null;\n createdAt?: string | null;\n updatedAt?: string | null;\n closedTime?: string | null;\n volume?: string | null;\n liquidity?: string | null;\n openInterest?: string | null;\n outcomes?: string[];\n outcomePrices?: number[];\n clobTokenIds?: string[];\n icon?: string | null;\n image?: string | null;\n}\n\nexport interface PolymarketOrderbookLevel {\n price: number;\n size: number;\n}\n\nexport interface PolymarketOrderbook {\n market: string;\n bids: PolymarketOrderbookLevel[];\n asks: PolymarketOrderbookLevel[];\n timestamp?: string | null;\n}\n\nexport interface PolymarketPriceHistoryPoint {\n t: number;\n p: number;\n}\n\nexport interface PolymarketSignedOrderPayload {\n salt: string;\n maker: `0x${string}`;\n signer: `0x${string}`;\n taker: `0x${string}`;\n tokenId: string;\n makerAmount: string;\n takerAmount: string;\n expiration: string;\n nonce: string;\n feeRateBps: string;\n side: 0 | 1;\n signatureType: PolymarketSignatureType;\n signature: `0x${string}`;\n}\n\nexport class PolymarketApiError extends Error {\n constructor(\n message: string,\n public readonly response: unknown,\n ) {\n super(message);\n this.name = \"PolymarketApiError\";\n }\n}\n\nexport class PolymarketAuthError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"PolymarketAuthError\";\n }\n}\n\nexport const POLYMARKET_ENDPOINTS = {\n gamma: {\n mainnet: \"https://gamma-api.polymarket.com\",\n testnet: \"https://gamma-api.polymarket.com\",\n },\n clob: {\n mainnet: \"https://clob.polymarket.com\",\n testnet: \"https://clob.polymarket.com\",\n },\n data: {\n mainnet: \"https://data-api.polymarket.com\",\n testnet: \"https://data-api.polymarket.com\",\n },\n} as const satisfies Record<\"gamma\" | \"clob\" | \"data\", Record<PolymarketEnvironment, string>>;\n\nexport const POLYMARKET_CHAIN_ID: Record<PolymarketEnvironment, number> = {\n mainnet: 137,\n testnet: 80002,\n};\n\nexport const POLYMARKET_EXCHANGE_ADDRESSES: Record<\n PolymarketEnvironment,\n { ctf: `0x${string}`; negRisk: `0x${string}` }\n> = {\n mainnet: {\n ctf: \"0x4bfb41d5b3570defd03c39a9a4d8de6bd8b8982e\",\n negRisk: \"0xc5d563a36ae78145c45a50134d48a1215220f80a\",\n },\n testnet: {\n ctf: \"0xdfe02eb6733538f8ea35d585af8de5958ad99e40\",\n negRisk: \"0xdfe02eb6733538f8ea35d585af8de5958ad99e40\",\n },\n};\n\nexport const POLYMARKET_CLOB_DOMAIN = {\n name: \"Polymarket CTF Exchange\",\n version: \"1\",\n};\n\nexport const POLYMARKET_CLOB_AUTH_DOMAIN = {\n name: \"ClobAuthDomain\",\n version: \"1\",\n};\n\nexport const ZERO_ADDRESS = \"0x0000000000000000000000000000000000000000\" as const;\n\nexport function resolvePolymarketBaseUrl(\n service: keyof typeof POLYMARKET_ENDPOINTS,\n environment: PolymarketEnvironment,\n): string {\n return POLYMARKET_ENDPOINTS[service][environment];\n}\n\nexport function assertWalletSigner(wallet: WalletFullContext | undefined) {\n if (!wallet?.account || !wallet.walletClient) {\n throw new Error(\"Polymarket requires a wallet with signing capabilities.\");\n }\n}\n\nexport function toDecimalString(value: string | number | bigint): string {\n if (typeof value === \"string\") return value;\n if (typeof value === \"bigint\") return value.toString();\n if (!Number.isFinite(value)) {\n throw new Error(\"Numeric values must be finite.\");\n }\n const asString = value.toString();\n if (/e/i.test(asString)) {\n const [mantissa, exponentPart] = asString.split(/e/i);\n const exponent = Number(exponentPart);\n const [integerPart, fractionalPart = \"\"] = mantissa.split(\".\");\n if (exponent >= 0) {\n return integerPart + fractionalPart.padEnd(exponent + fractionalPart.length, \"0\");\n }\n const zeros = \"0\".repeat(Math.abs(exponent) - 1);\n return `0.${zeros}${integerPart}${fractionalPart}`.replace(/\\.0+$/, \"\");\n }\n return asString;\n}\n\nfunction normalizeArrayish(value: unknown): unknown[] {\n if (Array.isArray(value)) return value;\n if (typeof value === \"string\") {\n const trimmed = value.trim();\n if (!trimmed) return [];\n if (trimmed.startsWith(\"[\")) {\n try {\n const parsed = JSON.parse(trimmed);\n return Array.isArray(parsed) ? parsed : [];\n } catch {\n return [];\n }\n }\n return [trimmed];\n }\n return [];\n}\n\nexport function normalizeStringArrayish(value: unknown): string[] {\n return normalizeArrayish(value)\n .map((entry) => (entry == null ? \"\" : String(entry).trim()))\n .filter((entry) => entry.length > 0);\n}\n\nexport function normalizeNumberArrayish(value: unknown): number[] {\n return normalizeArrayish(value)\n .map((entry) => (typeof entry === \"number\" ? entry : Number.parseFloat(String(entry))))\n .filter((entry) => Number.isFinite(entry));\n}\n\nexport function normalizeTags(value: unknown): string[] {\n if (!Array.isArray(value)) return [];\n const tags = value\n .map((entry) => {\n if (entry && typeof entry === \"object\") {\n const record = entry as Record<string, unknown>;\n const label = record.label ?? record.id ?? record.tag;\n return label ? String(label).trim() : \"\";\n }\n return String(entry ?? \"\").trim();\n })\n .filter((entry) => entry.length > 0);\n return Array.from(new Set(tags));\n}\n\nexport function parseOptionalDate(value: unknown): string | null {\n if (!value) return null;\n if (typeof value === \"string\") {\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : null;\n }\n if (typeof value === \"number\" && Number.isFinite(value)) {\n const ts = value > 1_000_000_000_000 ? value : value * 1000;\n const date = new Date(ts);\n return Number.isNaN(date.getTime()) ? null : date.toISOString();\n }\n return null;\n}\n\nexport function buildHmacSignature(args: {\n secret: string;\n timestamp: number | string;\n method: string;\n path: string;\n body?: string | Record<string, unknown> | null;\n}): string {\n const timestamp = args.timestamp.toString();\n const method = args.method.toUpperCase();\n const path = args.path;\n const body =\n args.body == null ? \"\" : typeof args.body === \"string\" ? args.body : JSON.stringify(args.body);\n const payload = `${timestamp}${method}${path}${body}`;\n const key = Buffer.from(args.secret, \"base64\");\n return createHmac(\"sha256\", key).update(payload).digest(\"hex\");\n}\n\nexport function buildL2Headers(args: {\n credentials: PolymarketApiCredentials;\n address: `0x${string}`;\n timestamp?: number;\n method: string;\n path: string;\n body?: Record<string, unknown> | string | null;\n}): Record<string, string> {\n const timestamp = args.timestamp ?? Math.floor(Date.now() / 1000);\n const signature = buildHmacSignature({\n secret: args.credentials.secret,\n timestamp,\n method: args.method,\n path: args.path,\n body: args.body ?? null,\n });\n return {\n POLY_ADDRESS: args.address,\n POLY_API_KEY: args.credentials.apiKey,\n POLY_PASSPHRASE: args.credentials.passphrase,\n POLY_TIMESTAMP: timestamp.toString(),\n POLY_SIGNATURE: signature,\n };\n}\n\nexport async function buildL1Headers(args: {\n wallet: WalletFullContext;\n timestamp?: number;\n nonce?: number;\n environment?: PolymarketEnvironment;\n message?: string;\n}): Promise<Record<string, string>> {\n assertWalletSigner(args.wallet);\n const timestamp = args.timestamp ?? Math.floor(Date.now() / 1000);\n const nonce = args.nonce ?? Date.now();\n const chainId = POLYMARKET_CHAIN_ID[args.environment ?? \"mainnet\"];\n const address = args.wallet.address as `0x${string}`;\n const message = args.message ?? \"Create or derive a Polymarket API key\";\n\n const signature = await args.wallet.walletClient.signTypedData({\n account: args.wallet.account,\n domain: {\n ...POLYMARKET_CLOB_AUTH_DOMAIN,\n chainId,\n },\n types: {\n ClobAuth: [\n { name: \"address\", type: \"address\" },\n { name: \"timestamp\", type: \"string\" },\n { name: \"nonce\", type: \"uint256\" },\n { name: \"message\", type: \"string\" },\n ],\n },\n primaryType: \"ClobAuth\",\n message: {\n address,\n timestamp: timestamp.toString(),\n nonce: BigInt(nonce),\n message,\n },\n });\n\n return {\n POLY_ADDRESS: address,\n POLY_TIMESTAMP: timestamp.toString(),\n POLY_NONCE: nonce.toString(),\n POLY_SIGNATURE: signature,\n };\n}\n\nexport function resolveExchangeAddress(args: {\n environment: PolymarketEnvironment;\n negRisk?: boolean;\n exchangeAddress?: `0x${string}`;\n}): `0x${string}` {\n if (args.exchangeAddress) return args.exchangeAddress;\n const env = args.environment;\n return args.negRisk\n ? POLYMARKET_EXCHANGE_ADDRESSES[env].negRisk\n : POLYMARKET_EXCHANGE_ADDRESSES[env].ctf;\n}\n\nfunction parseUintString(value: string, name: string): bigint {\n const trimmed = value.trim();\n if (!/^\\d+$/.test(trimmed)) {\n throw new Error(`${name} must be a base-10 integer string.`);\n }\n return BigInt(trimmed);\n}\n\nexport function buildPolymarketOrderAmounts(args: {\n side: PolymarketSide;\n price: string | number | bigint;\n size: string | number | bigint;\n tickSize?: string | number | bigint;\n}): { makerAmount: bigint; takerAmount: bigint } {\n const priceStr = toDecimalString(args.price);\n const sizeStr = toDecimalString(args.size);\n if (!priceStr || !sizeStr) {\n throw new Error(\"Order price and size are required.\");\n }\n const priceFloat = Number(priceStr);\n if (!Number.isFinite(priceFloat) || priceFloat <= 0 || priceFloat >= 1) {\n throw new Error(\"Order price must be between 0 and 1 (exclusive).\");\n }\n const sizeFloat = Number(sizeStr);\n if (!Number.isFinite(sizeFloat) || sizeFloat <= 0) {\n throw new Error(\"Order size must be positive.\");\n }\n\n let priceUnits = parseUnits(priceStr, 6);\n if (args.tickSize !== undefined) {\n const tickUnits = parseUnits(toDecimalString(args.tickSize), 6);\n if (tickUnits <= 0n) {\n throw new Error(\"tickSize must be positive.\");\n }\n priceUnits = (priceUnits / tickUnits) * tickUnits;\n }\n\n const sizeUnits = parseUnits(sizeStr, 6);\n const quoteUnits = (priceUnits * sizeUnits) / 1_000_000n;\n\n if (args.side === \"BUY\") {\n return { makerAmount: quoteUnits, takerAmount: sizeUnits };\n }\n return { makerAmount: sizeUnits, takerAmount: quoteUnits };\n}\n\nexport async function buildSignedOrderPayload(args: {\n wallet: WalletFullContext;\n environment?: PolymarketEnvironment;\n tokenId: string;\n side: PolymarketSide;\n price: string | number | bigint;\n size: string | number | bigint;\n expiration?: number;\n nonce?: number;\n feeRateBps?: number;\n tickSize?: string | number | bigint;\n maker?: `0x${string}`;\n signer?: `0x${string}`;\n taker?: `0x${string}`;\n signatureType?: PolymarketSignatureType;\n negRisk?: boolean;\n exchangeAddress?: `0x${string}`;\n}): Promise<PolymarketSignedOrderPayload> {\n assertWalletSigner(args.wallet);\n const environment = args.environment ?? \"mainnet\";\n const chainId = POLYMARKET_CHAIN_ID[environment];\n const exchangeAddress = resolveExchangeAddress({\n environment,\n ...(args.negRisk !== undefined ? { negRisk: args.negRisk } : {}),\n ...(args.exchangeAddress ? { exchangeAddress: args.exchangeAddress } : {}),\n });\n\n const maker = args.maker ?? (args.wallet.address as `0x${string}`);\n const signer = args.signer ?? (args.wallet.address as `0x${string}`);\n const taker = args.taker ?? ZERO_ADDRESS;\n const sideValue: 0 | 1 = args.side === \"BUY\" ? 0 : 1;\n const signatureType: PolymarketSignatureType = args.signatureType ?? 0;\n\n const tokenIdValue = args.tokenId.startsWith(\"0x\")\n ? BigInt(args.tokenId)\n : parseUintString(args.tokenId, \"tokenId\");\n\n const { makerAmount, takerAmount } = buildPolymarketOrderAmounts({\n side: args.side,\n price: args.price,\n size: args.size,\n ...(args.tickSize !== undefined ? { tickSize: args.tickSize } : {}),\n });\n\n const salt = BigInt(`0x${randomBytes(16).toString(\"hex\")}`);\n const expiration = BigInt(args.expiration ?? 0);\n const nonce = BigInt(args.nonce ?? 0);\n const feeRateBps = BigInt(args.feeRateBps ?? 0);\n\n const message = {\n salt,\n maker,\n signer,\n taker,\n tokenId: tokenIdValue,\n makerAmount,\n takerAmount,\n expiration,\n nonce,\n feeRateBps,\n side: sideValue,\n signatureType,\n };\n\n const signature = await args.wallet.walletClient.signTypedData({\n account: args.wallet.account,\n domain: {\n ...POLYMARKET_CLOB_DOMAIN,\n chainId,\n verifyingContract: exchangeAddress,\n },\n types: {\n Order: [\n { name: \"salt\", type: \"uint256\" },\n { name: \"maker\", type: \"address\" },\n { name: \"signer\", type: \"address\" },\n { name: \"taker\", type: \"address\" },\n { name: \"tokenId\", type: \"uint256\" },\n { name: \"makerAmount\", type: \"uint256\" },\n { name: \"takerAmount\", type: \"uint256\" },\n { name: \"expiration\", type: \"uint256\" },\n { name: \"nonce\", type: \"uint256\" },\n { name: \"feeRateBps\", type: \"uint256\" },\n { name: \"side\", type: \"uint8\" },\n { name: \"signatureType\", type: \"uint8\" },\n ],\n },\n primaryType: \"Order\",\n message,\n });\n\n return {\n salt: message.salt.toString(),\n maker,\n signer,\n taker,\n tokenId: tokenIdValue.toString(),\n makerAmount: message.makerAmount.toString(),\n takerAmount: message.takerAmount.toString(),\n expiration: message.expiration.toString(),\n nonce: message.nonce.toString(),\n feeRateBps: message.feeRateBps.toString(),\n side: sideValue,\n signatureType,\n signature: signature as `0x${string}`,\n };\n}\n","import type { WalletFullContext } from \"../../wallet/types\";\nimport {\n PolymarketApiCredentials,\n PolymarketApiError,\n PolymarketAuthError,\n PolymarketEnvironment,\n PolymarketOrderType,\n PolymarketSide,\n PolymarketSignatureType,\n buildL1Headers,\n buildL2Headers,\n buildSignedOrderPayload,\n resolvePolymarketBaseUrl,\n} from \"./base\";\n\nexport interface PolymarketApiKeyResponse {\n apiKey: string;\n secret: string;\n passphrase: string;\n}\n\nexport interface PolymarketOrderIntent {\n tokenId: string;\n side: PolymarketSide;\n price: string | number | bigint;\n size: string | number | bigint;\n expiration?: number;\n nonce?: number;\n feeRateBps?: number;\n tickSize?: string | number | bigint;\n maker?: `0x${string}`;\n signer?: `0x${string}`;\n taker?: `0x${string}`;\n signatureType?: PolymarketSignatureType;\n negRisk?: boolean;\n exchangeAddress?: `0x${string}`;\n}\n\nexport interface PolymarketPlaceOrderResponse {\n orderId?: string;\n status?: string;\n message?: string;\n [key: string]: unknown;\n}\n\nasync function resolveAuthContext(args: {\n wallet?: WalletFullContext;\n walletAddress?: `0x${string}`;\n credentials?: PolymarketApiCredentials;\n environment?: PolymarketEnvironment;\n}): Promise<{ credentials: PolymarketApiCredentials; address: `0x${string}` }> {\n if (args.wallet) {\n const credentials =\n args.credentials ??\n (await createPolymarketApiKey({\n wallet: args.wallet,\n ...(args.environment ? { environment: args.environment } : {}),\n }));\n return {\n credentials,\n address: args.wallet.address as `0x${string}`,\n };\n }\n\n if (args.walletAddress && args.credentials) {\n return { credentials: args.credentials, address: args.walletAddress };\n }\n\n throw new PolymarketAuthError(\n \"Polymarket auth requires a wallet (preferred) or credentials + walletAddress.\",\n );\n}\n\nasync function requestJson(url: string, init?: RequestInit) {\n const response = await fetch(url, init);\n const text = await response.text().catch(() => \"\");\n let data: unknown = null;\n try {\n data = text ? JSON.parse(text) : null;\n } catch {\n data = text;\n }\n if (!response.ok) {\n throw new PolymarketApiError(\n `Polymarket request failed (${response.status}).`,\n data ?? { status: response.status },\n );\n }\n return data;\n}\n\nfunction resolvePath(url: string): string {\n const parsed = new URL(url);\n return `${parsed.pathname}${parsed.search}`;\n}\n\nexport async function createPolymarketApiKey(args: {\n wallet: WalletFullContext;\n environment?: PolymarketEnvironment;\n timestamp?: number;\n nonce?: number;\n message?: string;\n}): Promise<PolymarketApiKeyResponse> {\n const environment = args.environment ?? \"mainnet\";\n const baseUrl = resolvePolymarketBaseUrl(\"clob\", environment);\n const url = `${baseUrl}/auth/api-key`;\n const headers = await buildL1Headers({\n wallet: args.wallet,\n environment,\n ...(args.timestamp !== undefined ? { timestamp: args.timestamp } : {}),\n ...(args.nonce !== undefined ? { nonce: args.nonce } : {}),\n ...(args.message !== undefined ? { message: args.message } : {}),\n });\n const data = (await requestJson(url, {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify({}),\n })) as Partial<PolymarketApiKeyResponse>;\n\n if (!data?.apiKey || !data?.secret || !data?.passphrase) {\n throw new PolymarketAuthError(\"Failed to create Polymarket API key.\");\n }\n\n return {\n apiKey: data.apiKey,\n secret: data.secret,\n passphrase: data.passphrase,\n };\n}\n\nexport async function derivePolymarketApiKey(args: {\n wallet: WalletFullContext;\n environment?: PolymarketEnvironment;\n timestamp?: number;\n nonce?: number;\n message?: string;\n}): Promise<PolymarketApiKeyResponse> {\n const environment = args.environment ?? \"mainnet\";\n const baseUrl = resolvePolymarketBaseUrl(\"clob\", environment);\n const url = `${baseUrl}/auth/derive-api-key`;\n const headers = await buildL1Headers({\n wallet: args.wallet,\n environment,\n ...(args.timestamp !== undefined ? { timestamp: args.timestamp } : {}),\n ...(args.nonce !== undefined ? { nonce: args.nonce } : {}),\n ...(args.message !== undefined ? { message: args.message } : {}),\n });\n const data = (await requestJson(url, {\n method: \"GET\",\n headers: {\n \"content-type\": \"application/json\",\n ...headers,\n },\n })) as Partial<PolymarketApiKeyResponse>;\n\n if (!data?.apiKey || !data?.secret || !data?.passphrase) {\n throw new PolymarketAuthError(\"Failed to derive Polymarket API key.\");\n }\n\n return {\n apiKey: data.apiKey,\n secret: data.secret,\n passphrase: data.passphrase,\n };\n}\n\nexport async function placePolymarketOrder(args: {\n wallet: WalletFullContext;\n credentials?: PolymarketApiCredentials;\n order: PolymarketOrderIntent;\n orderType?: PolymarketOrderType;\n environment?: PolymarketEnvironment;\n}): Promise<PolymarketPlaceOrderResponse> {\n const environment = args.environment ?? \"mainnet\";\n const baseUrl = resolvePolymarketBaseUrl(\"clob\", environment);\n const url = `${baseUrl}/order`;\n\n const signedOrder = await buildSignedOrderPayload({\n wallet: args.wallet,\n environment,\n ...args.order,\n });\n\n const auth = await resolveAuthContext({\n wallet: args.wallet,\n ...(args.credentials ? { credentials: args.credentials } : {}),\n environment,\n });\n\n const body = {\n order: signedOrder,\n owner: auth.credentials.apiKey,\n orderType: args.orderType ?? \"GTC\",\n };\n\n const headers = buildL2Headers({\n credentials: auth.credentials,\n address: auth.address,\n method: \"POST\",\n path: resolvePath(url),\n body,\n });\n\n return (await requestJson(url, {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(body),\n })) as PolymarketPlaceOrderResponse;\n}\n\nexport async function cancelPolymarketOrder(args: {\n orderId: string;\n wallet?: WalletFullContext;\n walletAddress?: `0x${string}`;\n credentials?: PolymarketApiCredentials;\n environment?: PolymarketEnvironment;\n}): Promise<Record<string, unknown>> {\n const environment = args.environment ?? \"mainnet\";\n const baseUrl = resolvePolymarketBaseUrl(\"clob\", environment);\n const url = `${baseUrl}/order`;\n const body = { orderID: args.orderId };\n\n const auth = await resolveAuthContext({\n ...(args.wallet ? { wallet: args.wallet } : {}),\n ...(args.walletAddress ? { walletAddress: args.walletAddress } : {}),\n ...(args.credentials ? { credentials: args.credentials } : {}),\n environment,\n });\n\n const headers = buildL2Headers({\n credentials: auth.credentials,\n address: auth.address,\n method: \"DELETE\",\n path: resolvePath(url),\n body,\n });\n\n return (await requestJson(url, {\n method: \"DELETE\",\n headers: {\n \"content-type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(body),\n })) as Record<string, unknown>;\n}\n\nexport async function cancelPolymarketOrders(args: {\n orderIds: string[];\n wallet?: WalletFullContext;\n walletAddress?: `0x${string}`;\n credentials?: PolymarketApiCredentials;\n environment?: PolymarketEnvironment;\n}): Promise<Record<string, unknown>> {\n const environment = args.environment ?? \"mainnet\";\n const baseUrl = resolvePolymarketBaseUrl(\"clob\", environment);\n const url = `${baseUrl}/orders`;\n const body = { orderIDs: args.orderIds };\n\n const auth = await resolveAuthContext({\n ...(args.wallet ? { wallet: args.wallet } : {}),\n ...(args.walletAddress ? { walletAddress: args.walletAddress } : {}),\n ...(args.credentials ? { credentials: args.credentials } : {}),\n environment,\n });\n\n const headers = buildL2Headers({\n credentials: auth.credentials,\n address: auth.address,\n method: \"DELETE\",\n path: resolvePath(url),\n body,\n });\n\n return (await requestJson(url, {\n method: \"DELETE\",\n headers: {\n \"content-type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(body),\n })) as Record<string, unknown>;\n}\n\nexport async function cancelAllPolymarketOrders(args: {\n wallet?: WalletFullContext;\n walletAddress?: `0x${string}`;\n credentials?: PolymarketApiCredentials;\n environment?: PolymarketEnvironment;\n}): Promise<Record<string, unknown>> {\n const environment = args.environment ?? \"mainnet\";\n const baseUrl = resolvePolymarketBaseUrl(\"clob\", environment);\n const url = `${baseUrl}/cancel-all`;\n const auth = await resolveAuthContext({\n ...(args.wallet ? { wallet: args.wallet } : {}),\n ...(args.walletAddress ? { walletAddress: args.walletAddress } : {}),\n ...(args.credentials ? { credentials: args.credentials } : {}),\n environment,\n });\n const headers = buildL2Headers({\n credentials: auth.credentials,\n address: auth.address,\n method: \"DELETE\",\n path: resolvePath(url),\n });\n\n return (await requestJson(url, {\n method: \"DELETE\",\n headers: {\n \"content-type\": \"application/json\",\n ...headers,\n },\n })) as Record<string, unknown>;\n}\n\nexport async function cancelMarketPolymarketOrders(args: {\n tokenId: string;\n wallet?: WalletFullContext;\n walletAddress?: `0x${string}`;\n credentials?: PolymarketApiCredentials;\n environment?: PolymarketEnvironment;\n}): Promise<Record<string, unknown>> {\n const environment = args.environment ?? \"mainnet\";\n const baseUrl = resolvePolymarketBaseUrl(\"clob\", environment);\n const url = `${baseUrl}/cancel-market-orders`;\n const body = { market: args.tokenId };\n const auth = await resolveAuthContext({\n ...(args.wallet ? { wallet: args.wallet } : {}),\n ...(args.walletAddress ? { walletAddress: args.walletAddress } : {}),\n ...(args.credentials ? { credentials: args.credentials } : {}),\n environment,\n });\n const headers = buildL2Headers({\n credentials: auth.credentials,\n address: auth.address,\n method: \"DELETE\",\n path: resolvePath(url),\n body,\n });\n\n return (await requestJson(url, {\n method: \"DELETE\",\n headers: {\n \"content-type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(body),\n })) as Record<string, unknown>;\n}\n\nexport class PolymarketExchangeClient {\n private readonly wallet: WalletFullContext;\n private readonly credentials: PolymarketApiCredentials | undefined;\n private readonly environment: PolymarketEnvironment;\n private cachedCredentials: PolymarketApiCredentials | undefined;\n\n constructor(args: {\n wallet: WalletFullContext;\n credentials?: PolymarketApiCredentials;\n environment?: PolymarketEnvironment;\n }) {\n this.wallet = args.wallet;\n this.credentials = args.credentials;\n this.environment = args.environment ?? \"mainnet\";\n }\n\n private async getCredentials() {\n if (this.cachedCredentials) return this.cachedCredentials;\n const resolved = await resolveAuthContext({\n wallet: this.wallet,\n ...(this.credentials ? { credentials: this.credentials } : {}),\n environment: this.environment,\n });\n this.cachedCredentials = resolved.credentials;\n return resolved.credentials;\n }\n\n async placeOrder(order: PolymarketOrderIntent, orderType?: PolymarketOrderType) {\n const credentials = await this.getCredentials();\n return placePolymarketOrder({\n wallet: this.wallet,\n credentials,\n environment: this.environment,\n order,\n ...(orderType !== undefined ? { orderType } : {}),\n });\n }\n\n async cancelOrder(orderId: string) {\n const credentials = await this.getCredentials();\n return cancelPolymarketOrder({\n orderId,\n wallet: this.wallet,\n credentials,\n environment: this.environment,\n });\n }\n\n async cancelOrders(orderIds: string[]) {\n const credentials = await this.getCredentials();\n return cancelPolymarketOrders({\n orderIds,\n wallet: this.wallet,\n credentials,\n environment: this.environment,\n });\n }\n\n async cancelAll() {\n const credentials = await this.getCredentials();\n return cancelAllPolymarketOrders({\n wallet: this.wallet,\n credentials,\n environment: this.environment,\n });\n }\n\n async cancelMarket(tokenId: string) {\n const credentials = await this.getCredentials();\n return cancelMarketPolymarketOrders({\n tokenId,\n wallet: this.wallet,\n credentials,\n environment: this.environment,\n });\n }\n}\n","import {\n PolymarketApiError,\n PolymarketEnvironment,\n PolymarketMarket,\n PolymarketOrderbook,\n PolymarketOrderbookLevel,\n PolymarketPriceHistoryPoint,\n normalizeNumberArrayish,\n normalizeStringArrayish,\n normalizeTags,\n parseOptionalDate,\n resolvePolymarketBaseUrl,\n} from \"./base\";\n\ntype GammaEvent = Record<string, unknown>;\ntype GammaMarket = Record<string, unknown>;\n\ntype FetchParams = {\n environment?: PolymarketEnvironment;\n limit?: number;\n offset?: number;\n order?: string;\n ascending?: boolean;\n tagId?: string;\n relatedTags?: boolean;\n excludeTagId?: string;\n category?: string;\n slug?: string;\n active?: boolean;\n closed?: boolean;\n};\n\nconst DEFAULT_EVENT_LIMIT = 50;\n\nasync function requestJson(url: string, init?: RequestInit) {\n const response = await fetch(url, init);\n const text = await response.text().catch(() => \"\");\n let data: unknown = null;\n try {\n data = text ? JSON.parse(text) : null;\n } catch {\n data = text;\n }\n if (!response.ok) {\n throw new PolymarketApiError(\n `Polymarket request failed (${response.status}).`,\n data ?? { status: response.status },\n );\n }\n return data;\n}\n\nfunction getString(value: unknown): string | null {\n if (value == null) return null;\n const str = String(value).trim();\n return str.length ? str : null;\n}\n\nfunction normalizeOrderbookLevels(raw: unknown): PolymarketOrderbookLevel[] {\n if (!Array.isArray(raw)) return [];\n return raw\n .map((entry) => {\n if (Array.isArray(entry)) {\n const [price, size] = entry;\n const p = Number(price);\n const s = Number(size);\n if (!Number.isFinite(p) || !Number.isFinite(s)) return null;\n return { price: p, size: s };\n }\n if (entry && typeof entry === \"object\") {\n const record = entry as Record<string, unknown>;\n const p = Number(record.price ?? record.p);\n const s = Number(record.size ?? record.s ?? record.quantity);\n if (!Number.isFinite(p) || !Number.isFinite(s)) return null;\n return { price: p, size: s };\n }\n return null;\n })\n .filter((entry): entry is PolymarketOrderbookLevel => Boolean(entry));\n}\n\nfunction normalizeGammaMarket(market: GammaMarket, event?: GammaEvent): PolymarketMarket {\n const eventTags = normalizeTags(event?.tags);\n const marketTags = normalizeTags(market.tags);\n const mergedTags = Array.from(new Set([...marketTags, ...eventTags]));\n\n const category =\n getString(market.category) ?? getString(event?.category) ?? getString(event?.title) ?? null;\n\n const normalized: PolymarketMarket = {\n id: getString(market.id) ?? \"\",\n slug: getString(market.slug),\n question: getString(market.question),\n description: getString(market.description),\n eventId: getString(market.eventId ?? event?.id),\n eventSlug: getString(event?.slug),\n conditionId: getString(market.conditionId),\n marketMakerAddress: getString(market.marketMakerAddress),\n category,\n startDate:\n parseOptionalDate(market.startDate) ??\n parseOptionalDate(event?.startDate) ??\n parseOptionalDate(event?.eventStartTime),\n endDate:\n parseOptionalDate(market.endDate) ??\n parseOptionalDate(event?.endDate) ??\n parseOptionalDate(event?.eventEndTime),\n createdAt:\n parseOptionalDate(market.createdAt) ??\n parseOptionalDate(event?.createdAt) ??\n parseOptionalDate(event?.creationDate),\n updatedAt: parseOptionalDate(market.updatedAt) ?? parseOptionalDate(event?.updatedAt),\n closedTime: parseOptionalDate(market.closedTime) ?? parseOptionalDate(event?.closedTime),\n volume: getString(market.volume),\n liquidity: getString(market.liquidity),\n openInterest: getString(market.openInterest),\n outcomes: normalizeStringArrayish(market.outcomes),\n outcomePrices: normalizeNumberArrayish(market.outcomePrices),\n clobTokenIds: normalizeStringArrayish(market.clobTokenIds),\n icon: getString(market.icon),\n image: getString(market.image),\n };\n\n if (mergedTags.length) {\n normalized.tags = mergedTags;\n }\n if (typeof market.active === \"boolean\") {\n normalized.active = market.active;\n }\n if (typeof market.closed === \"boolean\") {\n normalized.closed = market.closed;\n }\n if (typeof market.resolved === \"boolean\") {\n normalized.resolved = market.resolved;\n }\n\n return normalized;\n}\n\nexport class PolymarketInfoClient {\n private readonly environment: PolymarketEnvironment;\n\n constructor(environment: PolymarketEnvironment = \"mainnet\") {\n this.environment = environment;\n }\n\n markets(params: FetchParams = {}) {\n return fetchPolymarketMarkets({ ...params, environment: this.environment });\n }\n\n market(params: { id?: string; slug?: string; conditionId?: string }) {\n return fetchPolymarketMarket({ ...params, environment: this.environment });\n }\n\n orderbook(tokenId: string) {\n return fetchPolymarketOrderbook({ tokenId, environment: this.environment });\n }\n\n price(tokenId: string, side: \"BUY\" | \"SELL\") {\n return fetchPolymarketPrice({ tokenId, side, environment: this.environment });\n }\n\n midpoint(tokenId: string) {\n return fetchPolymarketMidpoint({ tokenId, environment: this.environment });\n }\n\n priceHistory(params: {\n tokenId: string;\n startTs?: number;\n endTs?: number;\n interval?: string;\n fidelity?: number;\n }) {\n return fetchPolymarketPriceHistory({ ...params, environment: this.environment });\n }\n}\n\nexport async function fetchPolymarketMarkets(\n params: FetchParams = {},\n): Promise<PolymarketMarket[]> {\n if (params.active !== undefined && params.active !== true) {\n throw new Error(\"Polymarket market list requires active=true.\");\n }\n if (params.closed !== undefined && params.closed !== false) {\n throw new Error(\"Polymarket market list requires closed=false.\");\n }\n\n const environment = params.environment ?? \"mainnet\";\n const baseUrl = resolvePolymarketBaseUrl(\"gamma\", environment);\n const url = new URL(\"/events\", baseUrl);\n const limit = params.limit ?? DEFAULT_EVENT_LIMIT;\n const offset = params.offset ?? 0;\n\n url.searchParams.set(\"limit\", String(limit));\n url.searchParams.set(\"offset\", String(offset));\n url.searchParams.set(\"active\", \"true\");\n url.searchParams.set(\"closed\", \"false\");\n url.searchParams.set(\"order\", params.order ?? \"id\");\n url.searchParams.set(\"ascending\", params.ascending ? \"true\" : \"false\");\n\n if (params.tagId) url.searchParams.set(\"tag_id\", params.tagId);\n if (params.relatedTags) url.searchParams.set(\"related_tags\", \"true\");\n if (params.excludeTagId) url.searchParams.set(\"exclude_tag_id\", params.excludeTagId);\n if (params.slug) url.searchParams.set(\"slug\", params.slug);\n\n const data = (await requestJson(url.toString())) as GammaEvent[];\n const markets = data.flatMap((event) =>\n Array.isArray(event?.markets)\n ? (event.markets as GammaMarket[]).map((market) => normalizeGammaMarket(market, event))\n : [],\n );\n\n const filtered = params.category\n ? markets.filter((market) =>\n (market.category ?? \"\").toLowerCase().includes(params.category!.toLowerCase()),\n )\n : markets;\n\n return typeof params.limit === \"number\" ? filtered.slice(0, params.limit) : filtered;\n}\n\nexport async function fetchPolymarketMarket(params: {\n id?: string;\n slug?: string;\n conditionId?: string;\n environment?: PolymarketEnvironment;\n}): Promise<PolymarketMarket | null> {\n const environment = params.environment ?? \"mainnet\";\n const baseUrl = resolvePolymarketBaseUrl(\"gamma\", environment);\n\n if (params.slug) {\n const url = new URL(`/markets/slug/${params.slug}`, baseUrl);\n const data = (await requestJson(url.toString())) as GammaMarket | null;\n if (!data) return null;\n return normalizeGammaMarket(data);\n }\n\n if (params.id) {\n const url = new URL(`/markets/${params.id}`, baseUrl);\n const data = (await requestJson(url.toString())) as GammaMarket | null;\n if (!data) return null;\n return normalizeGammaMarket(data);\n }\n\n if (params.conditionId) {\n const url = new URL(`/markets`, baseUrl);\n url.searchParams.set(\"condition_id\", params.conditionId);\n const data = (await requestJson(url.toString())) as GammaMarket[] | GammaMarket | null;\n if (!data) return null;\n const market = Array.isArray(data) ? data[0] : data;\n return market ? normalizeGammaMarket(market) : null;\n }\n\n throw new Error(\"id, slug, or conditionId is required.\");\n}\n\nexport async function fetchPolymarketOrderbook(params: {\n tokenId: string;\n environment?: PolymarketEnvironment;\n}): Promise<PolymarketOrderbook> {\n const environment = params.environment ?? \"mainnet\";\n const baseUrl = resolvePolymarketBaseUrl(\"clob\", environment);\n const url = new URL(\"/book\", baseUrl);\n url.searchParams.set(\"token_id\", params.tokenId);\n const data = (await requestJson(url.toString())) as Record<string, unknown>;\n\n return {\n market: params.tokenId,\n bids: normalizeOrderbookLevels(data.bids),\n asks: normalizeOrderbookLevels(data.asks),\n timestamp: getString(data.timestamp),\n };\n}\n\nexport async function fetchPolymarketPrice(params: {\n tokenId: string;\n side: \"BUY\" | \"SELL\";\n environment?: PolymarketEnvironment;\n}): Promise<number | null> {\n const environment = params.environment ?? \"mainnet\";\n const baseUrl = resolvePolymarketBaseUrl(\"clob\", environment);\n const url = new URL(\"/price\", baseUrl);\n url.searchParams.set(\"token_id\", params.tokenId);\n url.searchParams.set(\"side\", params.side);\n const data = (await requestJson(url.toString())) as Record<string, unknown>;\n const price = Number(data.price ?? data?.p);\n return Number.isFinite(price) ? price : null;\n}\n\nexport async function fetchPolymarketMidpoint(params: {\n tokenId: string;\n environment?: PolymarketEnvironment;\n}): Promise<number | null> {\n const baseArgs = {\n tokenId: params.tokenId,\n ...(params.environment ? { environment: params.environment } : {}),\n };\n const buy = await fetchPolymarketPrice({ ...baseArgs, side: \"BUY\" });\n const sell = await fetchPolymarketPrice({ ...baseArgs, side: \"SELL\" });\n if (buy == null || sell == null) return null;\n return (buy + sell) / 2;\n}\n\nexport async function fetchPolymarketPriceHistory(params: {\n tokenId: string;\n startTs?: number;\n endTs?: number;\n interval?: string;\n fidelity?: number;\n environment?: PolymarketEnvironment;\n}): Promise<PolymarketPriceHistoryPoint[]> {\n const environment = params.environment ?? \"mainnet\";\n const baseUrl = resolvePolymarketBaseUrl(\"clob\", environment);\n const url = new URL(\"/prices-history\", baseUrl);\n url.searchParams.set(\"market\", params.tokenId);\n if (params.startTs) url.searchParams.set(\"startTs\", params.startTs.toString());\n if (params.endTs) url.searchParams.set(\"endTs\", params.endTs.toString());\n if (params.interval) url.searchParams.set(\"interval\", params.interval);\n if (params.fidelity) url.searchParams.set(\"fidelity\", params.fidelity.toString());\n\n const data = (await requestJson(url.toString())) as\n | { history?: Array<{ t: number; p: number }> }\n | Array<{ t: number; p: number }>;\n\n const points = Array.isArray(data) ? data : (data?.history ?? []);\n return points\n .map((point) => ({\n t: Number(point.t),\n p: Number(point.p),\n }))\n .filter((point) => Number.isFinite(point.t) && Number.isFinite(point.p));\n}\n"]}
@@ -0,0 +1,58 @@
1
+ import { z } from 'zod';
2
+
3
+ declare const BACKTEST_DECISION_MODE: "backtest_decisions";
4
+ type BacktestMode = typeof BACKTEST_DECISION_MODE;
5
+ declare const backtestDecisionRequestSchema: z.ZodObject<{
6
+ mode: z.ZodLiteral<"backtest_decisions">;
7
+ source: z.ZodOptional<z.ZodString>;
8
+ symbol: z.ZodOptional<z.ZodString>;
9
+ lookbackDays: z.ZodOptional<z.ZodNumber>;
10
+ timeframeStart: z.ZodOptional<z.ZodString>;
11
+ timeframeEnd: z.ZodOptional<z.ZodString>;
12
+ from: z.ZodOptional<z.ZodNumber>;
13
+ to: z.ZodOptional<z.ZodNumber>;
14
+ initialEquityUsd: z.ZodOptional<z.ZodNumber>;
15
+ }, z.core.$strict>;
16
+ type BacktestDecisionRequest = z.infer<typeof backtestDecisionRequestSchema>;
17
+ type BacktestResolution = "1" | "5" | "15" | "30" | "60" | "240" | "1D" | "1W";
18
+ declare function parseTimeToSeconds(value: unknown): number | null;
19
+ declare function resolutionToSeconds(resolution: BacktestResolution): number;
20
+ declare function estimateCountBack(params: {
21
+ fallback: number;
22
+ lookbackDays?: number;
23
+ resolution: BacktestResolution;
24
+ fromSeconds?: number;
25
+ toSeconds?: number;
26
+ minCountBack?: number;
27
+ bufferBars?: number;
28
+ }): number;
29
+ declare function resolveBacktestMode(value: unknown): BacktestMode | null;
30
+ type ResolvedBacktestWindow = {
31
+ fromSeconds?: number;
32
+ toSeconds?: number;
33
+ countBack: number;
34
+ };
35
+ declare function resolveBacktestWindow(params: {
36
+ fallbackCountBack: number;
37
+ lookbackDays?: unknown;
38
+ resolution: BacktestResolution;
39
+ from?: unknown;
40
+ to?: unknown;
41
+ timeframeStart?: unknown;
42
+ timeframeEnd?: unknown;
43
+ minCountBack?: number;
44
+ bufferBars?: number;
45
+ }): ResolvedBacktestWindow;
46
+ declare function resolveBacktestAccountValueUsd(value: unknown): number | undefined;
47
+ type BacktestDecisionSeriesInput = {
48
+ symbol?: string;
49
+ timeframeStart?: string;
50
+ timeframeEnd?: string;
51
+ from?: number;
52
+ to?: number;
53
+ lookbackDays?: number;
54
+ accountValueUsd?: number;
55
+ };
56
+ declare function buildBacktestDecisionSeriesInput(request: Partial<BacktestDecisionRequest>): BacktestDecisionSeriesInput;
57
+
58
+ export { BACKTEST_DECISION_MODE, type BacktestDecisionRequest, type BacktestDecisionSeriesInput, type BacktestMode, type BacktestResolution, type ResolvedBacktestWindow, backtestDecisionRequestSchema, buildBacktestDecisionSeriesInput, estimateCountBack, parseTimeToSeconds, resolutionToSeconds, resolveBacktestAccountValueUsd, resolveBacktestMode, resolveBacktestWindow };
@@ -0,0 +1,122 @@
1
+ import { z } from 'zod';
2
+
3
+ // src/backtest/index.ts
4
+ var BACKTEST_DECISION_MODE = "backtest_decisions";
5
+ var backtestDecisionRequestSchema = z.object({
6
+ mode: z.literal(BACKTEST_DECISION_MODE),
7
+ source: z.string().min(1).optional(),
8
+ symbol: z.string().min(1).optional(),
9
+ lookbackDays: z.number().positive().optional(),
10
+ timeframeStart: z.string().optional(),
11
+ timeframeEnd: z.string().optional(),
12
+ from: z.number().int().nonnegative().optional(),
13
+ to: z.number().int().nonnegative().optional(),
14
+ initialEquityUsd: z.number().positive().optional()
15
+ }).strict();
16
+ var RESOLUTION_SECONDS = {
17
+ "1": 60,
18
+ "5": 300,
19
+ "15": 900,
20
+ "30": 1800,
21
+ "60": 3600,
22
+ "240": 14400,
23
+ "1D": 86400,
24
+ "1W": 604800
25
+ };
26
+ function parseTimeToSeconds(value) {
27
+ if (typeof value === "number" && Number.isFinite(value)) {
28
+ return Math.max(0, Math.trunc(value));
29
+ }
30
+ if (typeof value === "string" && value.trim().length > 0) {
31
+ const trimmed = value.trim();
32
+ if (/^-?(?:\d+\.?\d*|\.\d+)$/.test(trimmed)) {
33
+ const numeric = Number.parseFloat(trimmed);
34
+ return Math.max(0, Math.trunc(numeric));
35
+ }
36
+ const parsedDate = new Date(value);
37
+ if (!Number.isNaN(parsedDate.getTime())) {
38
+ return Math.max(0, Math.trunc(parsedDate.getTime() / 1e3));
39
+ }
40
+ }
41
+ return null;
42
+ }
43
+ function resolutionToSeconds(resolution) {
44
+ return RESOLUTION_SECONDS[resolution];
45
+ }
46
+ function estimateCountBack(params) {
47
+ const {
48
+ fallback,
49
+ lookbackDays,
50
+ resolution,
51
+ fromSeconds,
52
+ toSeconds,
53
+ minCountBack = 50,
54
+ bufferBars = 5
55
+ } = params;
56
+ if (typeof lookbackDays === "number" && Number.isFinite(lookbackDays) && lookbackDays > 0) {
57
+ const interval = resolutionToSeconds(resolution);
58
+ const bars = Math.ceil(lookbackDays * 86400 / interval);
59
+ return Math.max(minCountBack, bars + bufferBars);
60
+ }
61
+ if (typeof fromSeconds === "number" && Number.isFinite(fromSeconds) && typeof toSeconds === "number" && Number.isFinite(toSeconds) && toSeconds > fromSeconds) {
62
+ const interval = resolutionToSeconds(resolution);
63
+ const bars = Math.ceil((toSeconds - fromSeconds) / interval);
64
+ return Math.max(minCountBack, bars + bufferBars);
65
+ }
66
+ return fallback;
67
+ }
68
+ function resolveBacktestMode(value) {
69
+ if (typeof value !== "string") return null;
70
+ const normalized = value.trim().toLowerCase();
71
+ return normalized === BACKTEST_DECISION_MODE ? BACKTEST_DECISION_MODE : null;
72
+ }
73
+ function resolveBacktestWindow(params) {
74
+ const fromSeconds = parseTimeToSeconds(params.from) ?? parseTimeToSeconds(params.timeframeStart);
75
+ const toSeconds = parseTimeToSeconds(params.to) ?? parseTimeToSeconds(params.timeframeEnd);
76
+ const hasWindow = fromSeconds != null && toSeconds != null && Number.isFinite(fromSeconds) && Number.isFinite(toSeconds) && toSeconds > fromSeconds;
77
+ const resolvedFrom = hasWindow ? fromSeconds : void 0;
78
+ const resolvedTo = hasWindow ? toSeconds : void 0;
79
+ const lookbackDays = typeof params.lookbackDays === "number" && Number.isFinite(params.lookbackDays) ? params.lookbackDays : void 0;
80
+ const countBack = estimateCountBack({
81
+ fallback: params.fallbackCountBack,
82
+ resolution: params.resolution,
83
+ ...lookbackDays != null ? { lookbackDays } : {},
84
+ ...resolvedFrom != null ? { fromSeconds: resolvedFrom } : {},
85
+ ...resolvedTo != null ? { toSeconds: resolvedTo } : {},
86
+ ...typeof params.minCountBack === "number" ? { minCountBack: params.minCountBack } : {},
87
+ ...typeof params.bufferBars === "number" ? { bufferBars: params.bufferBars } : {}
88
+ });
89
+ return {
90
+ ...resolvedFrom != null ? { fromSeconds: resolvedFrom } : {},
91
+ ...resolvedTo != null ? { toSeconds: resolvedTo } : {},
92
+ countBack
93
+ };
94
+ }
95
+ function resolveBacktestAccountValueUsd(value) {
96
+ if (typeof value === "number" && Number.isFinite(value) && value > 0) {
97
+ return value;
98
+ }
99
+ if (typeof value === "string" && value.trim().length > 0) {
100
+ const parsed = Number.parseFloat(value.trim());
101
+ if (Number.isFinite(parsed) && parsed > 0) {
102
+ return parsed;
103
+ }
104
+ }
105
+ return void 0;
106
+ }
107
+ function buildBacktestDecisionSeriesInput(request) {
108
+ const accountValueUsd = resolveBacktestAccountValueUsd(request.initialEquityUsd);
109
+ return {
110
+ ...request.symbol ? { symbol: request.symbol } : {},
111
+ ...request.timeframeStart ? { timeframeStart: request.timeframeStart } : {},
112
+ ...request.timeframeEnd ? { timeframeEnd: request.timeframeEnd } : {},
113
+ ...request.from != null ? { from: request.from } : {},
114
+ ...request.to != null ? { to: request.to } : {},
115
+ ...request.lookbackDays != null ? { lookbackDays: request.lookbackDays } : {},
116
+ ...accountValueUsd != null ? { accountValueUsd } : {}
117
+ };
118
+ }
119
+
120
+ export { BACKTEST_DECISION_MODE, backtestDecisionRequestSchema, buildBacktestDecisionSeriesInput, estimateCountBack, parseTimeToSeconds, resolutionToSeconds, resolveBacktestAccountValueUsd, resolveBacktestMode, resolveBacktestWindow };
121
+ //# sourceMappingURL=index.js.map
122
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/backtest/index.ts"],"names":[],"mappings":";;;AAEO,IAAM,sBAAA,GAAyB;AAG/B,IAAM,6BAAA,GAAgC,EAC1C,MAAA,CAAO;AAAA,EACN,IAAA,EAAM,CAAA,CAAE,OAAA,CAAQ,sBAAsB,CAAA;AAAA,EACtC,QAAQ,CAAA,CAAE,MAAA,GAAS,GAAA,CAAI,CAAC,EAAE,QAAA,EAAS;AAAA,EACnC,QAAQ,CAAA,CAAE,MAAA,GAAS,GAAA,CAAI,CAAC,EAAE,QAAA,EAAS;AAAA,EACnC,cAAc,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,EAC7C,cAAA,EAAgB,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACpC,YAAA,EAAc,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAClC,IAAA,EAAM,EAAE,MAAA,EAAO,CAAE,KAAI,CAAE,WAAA,GAAc,QAAA,EAAS;AAAA,EAC9C,EAAA,EAAI,EAAE,MAAA,EAAO,CAAE,KAAI,CAAE,WAAA,GAAc,QAAA,EAAS;AAAA,EAC5C,kBAAkB,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA;AAC1C,CAAC,EACA,MAAA;AAMH,IAAM,kBAAA,GAAyD;AAAA,EAC7D,GAAA,EAAK,EAAA;AAAA,EACL,GAAA,EAAK,GAAA;AAAA,EACL,IAAA,EAAM,GAAA;AAAA,EACN,IAAA,EAAM,IAAA;AAAA,EACN,IAAA,EAAM,IAAA;AAAA,EACN,KAAA,EAAO,KAAA;AAAA,EACP,IAAA,EAAM,KAAA;AAAA,EACN,IAAA,EAAM;AACR,CAAA;AAEO,SAAS,mBAAmB,KAAA,EAA+B;AAChE,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,EAAG;AACvD,IAAA,OAAO,KAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,KAAA,CAAM,KAAK,CAAC,CAAA;AAAA,EACtC;AACA,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,MAAM,IAAA,EAAK,CAAE,SAAS,CAAA,EAAG;AACxD,IAAA,MAAM,OAAA,GAAU,MAAM,IAAA,EAAK;AAC3B,IAAA,IAAI,yBAAA,CAA0B,IAAA,CAAK,OAAO,CAAA,EAAG;AAC3C,MAAA,MAAM,OAAA,GAAU,MAAA,CAAO,UAAA,CAAW,OAAO,CAAA;AACzC,MAAA,OAAO,KAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,KAAA,CAAM,OAAO,CAAC,CAAA;AAAA,IACxC;AACA,IAAA,MAAM,UAAA,GAAa,IAAI,IAAA,CAAK,KAAK,CAAA;AACjC,IAAA,IAAI,CAAC,MAAA,CAAO,KAAA,CAAM,UAAA,CAAW,OAAA,EAAS,CAAA,EAAG;AACvC,MAAA,OAAO,IAAA,CAAK,IAAI,CAAA,EAAG,IAAA,CAAK,MAAM,UAAA,CAAW,OAAA,EAAQ,GAAI,GAAI,CAAC,CAAA;AAAA,IAC5D;AAAA,EACF;AACA,EAAA,OAAO,IAAA;AACT;AAEO,SAAS,oBAAoB,UAAA,EAAwC;AAC1E,EAAA,OAAO,mBAAmB,UAAU,CAAA;AACtC;AAEO,SAAS,kBAAkB,MAAA,EAQvB;AACT,EAAA,MAAM;AAAA,IACJ,QAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAA;AAAA,IACA,YAAA,GAAe,EAAA;AAAA,IACf,UAAA,GAAa;AAAA,GACf,GAAI,MAAA;AAEJ,EAAA,IAAI,OAAO,iBAAiB,QAAA,IAAY,MAAA,CAAO,SAAS,YAAY,CAAA,IAAK,eAAe,CAAA,EAAG;AACzF,IAAA,MAAM,QAAA,GAAW,oBAAoB,UAAU,CAAA;AAC/C,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,IAAA,CAAM,YAAA,GAAe,QAAS,QAAQ,CAAA;AACxD,IAAA,OAAO,IAAA,CAAK,GAAA,CAAI,YAAA,EAAc,IAAA,GAAO,UAAU,CAAA;AAAA,EACjD;AAEA,EAAA,IACE,OAAO,WAAA,KAAgB,QAAA,IACvB,MAAA,CAAO,SAAS,WAAW,CAAA,IAC3B,OAAO,SAAA,KAAc,YACrB,MAAA,CAAO,QAAA,CAAS,SAAS,CAAA,IACzB,YAAY,WAAA,EACZ;AACA,IAAA,MAAM,QAAA,GAAW,oBAAoB,UAAU,CAAA;AAC/C,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,IAAA,CAAA,CAAM,SAAA,GAAY,eAAe,QAAQ,CAAA;AAC3D,IAAA,OAAO,IAAA,CAAK,GAAA,CAAI,YAAA,EAAc,IAAA,GAAO,UAAU,CAAA;AAAA,EACjD;AAEA,EAAA,OAAO,QAAA;AACT;AAEO,SAAS,oBAAoB,KAAA,EAAqC;AACvE,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,EAAU,OAAO,IAAA;AACtC,EAAA,MAAM,UAAA,GAAa,KAAA,CAAM,IAAA,EAAK,CAAE,WAAA,EAAY;AAC5C,EAAA,OAAO,UAAA,KAAe,yBAAyB,sBAAA,GAAyB,IAAA;AAC1E;AAQO,SAAS,sBAAsB,MAAA,EAUX;AACzB,EAAA,MAAM,cAAc,kBAAA,CAAmB,MAAA,CAAO,IAAI,CAAA,IAAK,kBAAA,CAAmB,OAAO,cAAc,CAAA;AAC/F,EAAA,MAAM,YAAY,kBAAA,CAAmB,MAAA,CAAO,EAAE,CAAA,IAAK,kBAAA,CAAmB,OAAO,YAAY,CAAA;AACzF,EAAA,MAAM,SAAA,GACJ,WAAA,IAAe,IAAA,IACf,SAAA,IAAa,IAAA,IACb,MAAA,CAAO,QAAA,CAAS,WAAW,CAAA,IAC3B,MAAA,CAAO,QAAA,CAAS,SAAS,KACzB,SAAA,GAAY,WAAA;AAEd,EAAA,MAAM,YAAA,GAAe,YAAY,WAAA,GAAc,MAAA;AAC/C,EAAA,MAAM,UAAA,GAAa,YAAY,SAAA,GAAY,MAAA;AAC3C,EAAA,MAAM,YAAA,GACJ,OAAO,MAAA,CAAO,YAAA,KAAiB,QAAA,IAAY,MAAA,CAAO,QAAA,CAAS,MAAA,CAAO,YAAY,CAAA,GAC1E,MAAA,CAAO,YAAA,GACP,MAAA;AAEN,EAAA,MAAM,YAAY,iBAAA,CAAkB;AAAA,IAClC,UAAU,MAAA,CAAO,iBAAA;AAAA,IACjB,YAAY,MAAA,CAAO,UAAA;AAAA,IACnB,GAAI,YAAA,IAAgB,IAAA,GAAO,EAAE,YAAA,KAAiB,EAAC;AAAA,IAC/C,GAAI,YAAA,IAAgB,IAAA,GAAO,EAAE,WAAA,EAAa,YAAA,KAAiB,EAAC;AAAA,IAC5D,GAAI,UAAA,IAAc,IAAA,GAAO,EAAE,SAAA,EAAW,UAAA,KAAe,EAAC;AAAA,IACtD,GAAI,OAAO,MAAA,CAAO,YAAA,KAAiB,QAAA,GAAW,EAAE,YAAA,EAAc,MAAA,CAAO,YAAA,EAAa,GAAI,EAAC;AAAA,IACvF,GAAI,OAAO,MAAA,CAAO,UAAA,KAAe,QAAA,GAAW,EAAE,UAAA,EAAY,MAAA,CAAO,UAAA,EAAW,GAAI;AAAC,GAClF,CAAA;AAED,EAAA,OAAO;AAAA,IACL,GAAI,YAAA,IAAgB,IAAA,GAAO,EAAE,WAAA,EAAa,YAAA,KAAiB,EAAC;AAAA,IAC5D,GAAI,UAAA,IAAc,IAAA,GAAO,EAAE,SAAA,EAAW,UAAA,KAAe,EAAC;AAAA,IACtD;AAAA,GACF;AACF;AAEO,SAAS,+BAA+B,KAAA,EAAoC;AACjF,EAAA,IAAI,OAAO,UAAU,QAAA,IAAY,MAAA,CAAO,SAAS,KAAK,CAAA,IAAK,QAAQ,CAAA,EAAG;AACpE,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,MAAM,IAAA,EAAK,CAAE,SAAS,CAAA,EAAG;AACxD,IAAA,MAAM,MAAA,GAAS,MAAA,CAAO,UAAA,CAAW,KAAA,CAAM,MAAM,CAAA;AAC7C,IAAA,IAAI,MAAA,CAAO,QAAA,CAAS,MAAM,CAAA,IAAK,SAAS,CAAA,EAAG;AACzC,MAAA,OAAO,MAAA;AAAA,IACT;AAAA,EACF;AACA,EAAA,OAAO,MAAA;AACT;AAYO,SAAS,iCACd,OAAA,EAC6B;AAC7B,EAAA,MAAM,eAAA,GAAkB,8BAAA,CAA+B,OAAA,CAAQ,gBAAgB,CAAA;AAC/E,EAAA,OAAO;AAAA,IACL,GAAI,QAAQ,MAAA,GAAS,EAAE,QAAQ,OAAA,CAAQ,MAAA,KAAW,EAAC;AAAA,IACnD,GAAI,QAAQ,cAAA,GAAiB,EAAE,gBAAgB,OAAA,CAAQ,cAAA,KAAmB,EAAC;AAAA,IAC3E,GAAI,QAAQ,YAAA,GAAe,EAAE,cAAc,OAAA,CAAQ,YAAA,KAAiB,EAAC;AAAA,IACrE,GAAI,QAAQ,IAAA,IAAQ,IAAA,GAAO,EAAE,IAAA,EAAM,OAAA,CAAQ,IAAA,EAAK,GAAI,EAAC;AAAA,IACrD,GAAI,QAAQ,EAAA,IAAM,IAAA,GAAO,EAAE,EAAA,EAAI,OAAA,CAAQ,EAAA,EAAG,GAAI,EAAC;AAAA,IAC/C,GAAI,QAAQ,YAAA,IAAgB,IAAA,GAAO,EAAE,YAAA,EAAc,OAAA,CAAQ,YAAA,EAAa,GAAI,EAAC;AAAA,IAC7E,GAAI,eAAA,IAAmB,IAAA,GAAO,EAAE,eAAA,KAAoB;AAAC,GACvD;AACF","file":"index.js","sourcesContent":["import { z } from \"zod\";\n\nexport const BACKTEST_DECISION_MODE = \"backtest_decisions\" as const;\nexport type BacktestMode = typeof BACKTEST_DECISION_MODE;\n\nexport const backtestDecisionRequestSchema = z\n .object({\n mode: z.literal(BACKTEST_DECISION_MODE),\n source: z.string().min(1).optional(),\n symbol: z.string().min(1).optional(),\n lookbackDays: z.number().positive().optional(),\n timeframeStart: z.string().optional(),\n timeframeEnd: z.string().optional(),\n from: z.number().int().nonnegative().optional(),\n to: z.number().int().nonnegative().optional(),\n initialEquityUsd: z.number().positive().optional(),\n })\n .strict();\n\nexport type BacktestDecisionRequest = z.infer<typeof backtestDecisionRequestSchema>;\n\nexport type BacktestResolution = \"1\" | \"5\" | \"15\" | \"30\" | \"60\" | \"240\" | \"1D\" | \"1W\";\n\nconst RESOLUTION_SECONDS: Record<BacktestResolution, number> = {\n \"1\": 60,\n \"5\": 300,\n \"15\": 900,\n \"30\": 1800,\n \"60\": 3600,\n \"240\": 14400,\n \"1D\": 86400,\n \"1W\": 604800,\n};\n\nexport function parseTimeToSeconds(value: unknown): number | null {\n if (typeof value === \"number\" && Number.isFinite(value)) {\n return Math.max(0, Math.trunc(value));\n }\n if (typeof value === \"string\" && value.trim().length > 0) {\n const trimmed = value.trim();\n if (/^-?(?:\\d+\\.?\\d*|\\.\\d+)$/.test(trimmed)) {\n const numeric = Number.parseFloat(trimmed);\n return Math.max(0, Math.trunc(numeric));\n }\n const parsedDate = new Date(value);\n if (!Number.isNaN(parsedDate.getTime())) {\n return Math.max(0, Math.trunc(parsedDate.getTime() / 1000));\n }\n }\n return null;\n}\n\nexport function resolutionToSeconds(resolution: BacktestResolution): number {\n return RESOLUTION_SECONDS[resolution];\n}\n\nexport function estimateCountBack(params: {\n fallback: number;\n lookbackDays?: number;\n resolution: BacktestResolution;\n fromSeconds?: number;\n toSeconds?: number;\n minCountBack?: number;\n bufferBars?: number;\n}): number {\n const {\n fallback,\n lookbackDays,\n resolution,\n fromSeconds,\n toSeconds,\n minCountBack = 50,\n bufferBars = 5,\n } = params;\n\n if (typeof lookbackDays === \"number\" && Number.isFinite(lookbackDays) && lookbackDays > 0) {\n const interval = resolutionToSeconds(resolution);\n const bars = Math.ceil((lookbackDays * 86400) / interval);\n return Math.max(minCountBack, bars + bufferBars);\n }\n\n if (\n typeof fromSeconds === \"number\" &&\n Number.isFinite(fromSeconds) &&\n typeof toSeconds === \"number\" &&\n Number.isFinite(toSeconds) &&\n toSeconds > fromSeconds\n ) {\n const interval = resolutionToSeconds(resolution);\n const bars = Math.ceil((toSeconds - fromSeconds) / interval);\n return Math.max(minCountBack, bars + bufferBars);\n }\n\n return fallback;\n}\n\nexport function resolveBacktestMode(value: unknown): BacktestMode | null {\n if (typeof value !== \"string\") return null;\n const normalized = value.trim().toLowerCase();\n return normalized === BACKTEST_DECISION_MODE ? BACKTEST_DECISION_MODE : null;\n}\n\nexport type ResolvedBacktestWindow = {\n fromSeconds?: number;\n toSeconds?: number;\n countBack: number;\n};\n\nexport function resolveBacktestWindow(params: {\n fallbackCountBack: number;\n lookbackDays?: unknown;\n resolution: BacktestResolution;\n from?: unknown;\n to?: unknown;\n timeframeStart?: unknown;\n timeframeEnd?: unknown;\n minCountBack?: number;\n bufferBars?: number;\n}): ResolvedBacktestWindow {\n const fromSeconds = parseTimeToSeconds(params.from) ?? parseTimeToSeconds(params.timeframeStart);\n const toSeconds = parseTimeToSeconds(params.to) ?? parseTimeToSeconds(params.timeframeEnd);\n const hasWindow =\n fromSeconds != null &&\n toSeconds != null &&\n Number.isFinite(fromSeconds) &&\n Number.isFinite(toSeconds) &&\n toSeconds > fromSeconds;\n\n const resolvedFrom = hasWindow ? fromSeconds : undefined;\n const resolvedTo = hasWindow ? toSeconds : undefined;\n const lookbackDays =\n typeof params.lookbackDays === \"number\" && Number.isFinite(params.lookbackDays)\n ? params.lookbackDays\n : undefined;\n\n const countBack = estimateCountBack({\n fallback: params.fallbackCountBack,\n resolution: params.resolution,\n ...(lookbackDays != null ? { lookbackDays } : {}),\n ...(resolvedFrom != null ? { fromSeconds: resolvedFrom } : {}),\n ...(resolvedTo != null ? { toSeconds: resolvedTo } : {}),\n ...(typeof params.minCountBack === \"number\" ? { minCountBack: params.minCountBack } : {}),\n ...(typeof params.bufferBars === \"number\" ? { bufferBars: params.bufferBars } : {}),\n });\n\n return {\n ...(resolvedFrom != null ? { fromSeconds: resolvedFrom } : {}),\n ...(resolvedTo != null ? { toSeconds: resolvedTo } : {}),\n countBack,\n };\n}\n\nexport function resolveBacktestAccountValueUsd(value: unknown): number | undefined {\n if (typeof value === \"number\" && Number.isFinite(value) && value > 0) {\n return value;\n }\n if (typeof value === \"string\" && value.trim().length > 0) {\n const parsed = Number.parseFloat(value.trim());\n if (Number.isFinite(parsed) && parsed > 0) {\n return parsed;\n }\n }\n return undefined;\n}\n\nexport type BacktestDecisionSeriesInput = {\n symbol?: string;\n timeframeStart?: string;\n timeframeEnd?: string;\n from?: number;\n to?: number;\n lookbackDays?: number;\n accountValueUsd?: number;\n};\n\nexport function buildBacktestDecisionSeriesInput(\n request: Partial<BacktestDecisionRequest>,\n): BacktestDecisionSeriesInput {\n const accountValueUsd = resolveBacktestAccountValueUsd(request.initialEquityUsd);\n return {\n ...(request.symbol ? { symbol: request.symbol } : {}),\n ...(request.timeframeStart ? { timeframeStart: request.timeframeStart } : {}),\n ...(request.timeframeEnd ? { timeframeEnd: request.timeframeEnd } : {}),\n ...(request.from != null ? { from: request.from } : {}),\n ...(request.to != null ? { to: request.to } : {}),\n ...(request.lookbackDays != null ? { lookbackDays: request.lookbackDays } : {}),\n ...(accountValueUsd != null ? { accountValueUsd } : {}),\n };\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
- import { M as Metadata, I as InternalToolDefinition } from '../validate-DbhJ_r0Z.js';
3
- export { G as GenerateMetadataOptions, a as GenerateMetadataResult, V as ValidateOptions, g as generateMetadata, b as generateMetadataCommand, l as loadAndValidateTools, v as validateCommand, c as validateFullCommand } from '../validate-DbhJ_r0Z.js';
2
+ import { e as Metadata, I as InternalToolDefinition } from '../index-9Z3wo28l.js';
3
+ export { V as ValidateOptions, l as loadAndValidateTools, v as validateCommand, a as validateFullCommand } from '../index-BnQsRvND.js';
4
4
  import 'zod';
5
- import '../payment-orkZA9se.js';
5
+ import '../payment-BLm1ltur.js';
6
6
 
7
7
  interface BuildOptions {
8
8
  input: string;
@@ -42,4 +42,17 @@ interface DevOptions {
42
42
  }
43
43
  declare function devCommand(options: DevOptions): Promise<void>;
44
44
 
45
- export { type BuildOptions, type DevOptions, buildCommand, buildProject, devCommand };
45
+ interface GenerateMetadataOptions {
46
+ input: string;
47
+ output?: string;
48
+ }
49
+ interface GenerateMetadataResult {
50
+ metadata: Metadata;
51
+ defaultsApplied: string[];
52
+ tools: InternalToolDefinition[];
53
+ outputPath: string;
54
+ }
55
+ declare function generateMetadataCommand(options: GenerateMetadataOptions): Promise<void>;
56
+ declare function generateMetadata(options: GenerateMetadataOptions): Promise<GenerateMetadataResult>;
57
+
58
+ export { type BuildOptions, type DevOptions, type GenerateMetadataOptions, type GenerateMetadataResult, buildCommand, buildProject, devCommand, generateMetadata, generateMetadataCommand };
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { X as X402Payment } from './payment-orkZA9se.js';
2
+ import { d as X402Payment } from './payment-BLm1ltur.js';
3
3
 
4
4
  declare const PaymentConfigSchema: z.ZodUnion<readonly [z.ZodObject<{
5
5
  definition: z.ZodObject<{
@@ -443,27 +443,4 @@ interface BuildConfig {
443
443
  serverVersion?: string;
444
444
  }
445
445
 
446
- interface GenerateMetadataOptions {
447
- input: string;
448
- output?: string;
449
- }
450
- interface GenerateMetadataResult {
451
- metadata: Metadata;
452
- defaultsApplied: string[];
453
- tools: InternalToolDefinition[];
454
- outputPath: string;
455
- }
456
- declare function generateMetadataCommand(options: GenerateMetadataOptions): Promise<void>;
457
- declare function generateMetadata(options: GenerateMetadataOptions): Promise<GenerateMetadataResult>;
458
-
459
- interface ValidateOptions {
460
- input: string;
461
- }
462
- interface LoadToolsOptions {
463
- projectRoot?: string;
464
- }
465
- declare function validateCommand(options: ValidateOptions): Promise<void>;
466
- declare function validateFullCommand(options: ValidateOptions): Promise<void>;
467
- declare function loadAndValidateTools(toolsDir: string, options?: LoadToolsOptions): Promise<InternalToolDefinition[]>;
468
-
469
- export { type BuildConfig as B, type ConnectedApp as C, type GenerateMetadataOptions as G, HTTP_METHODS as H, type InternalToolDefinition as I, type Metadata as M, type NormalizedSchedule as N, type PaymentConfig as P, type ScheduleType as S, type ToolResponse as T, type ValidateOptions as V, type GenerateMetadataResult as a, generateMetadataCommand as b, validateFullCommand as c, type BuildMetadata as d, type CronSpec as e, type GetHandler as f, generateMetadata as g, type HttpHandlerDefinition as h, type HttpMethod as i, type McpConfig as j, type PostHandler as k, loadAndValidateTools as l, type ServerConfig as m, type TemplatePreviewProfile as n, type Tool as o, type ToolAsset as p, type ToolCategory as q, type ToolContent as r, type ToolMetadataOverrides as s, type ToolModule as t, type ToolModuleGET as u, validateCommand as v, type ToolModulePOST as w, type ToolProfile as x };
446
+ export { type BuildConfig as B, type ConnectedApp as C, type GetHandler as G, HTTP_METHODS as H, type InternalToolDefinition as I, type McpConfig as M, type NormalizedSchedule as N, type PaymentConfig as P, type ScheduleType as S, type ToolResponse as T, type BuildMetadata as a, type CronSpec as b, type HttpHandlerDefinition as c, type HttpMethod as d, type Metadata as e, type PostHandler as f, type ServerConfig as g, type TemplatePreviewProfile as h, type Tool as i, type ToolAsset as j, type ToolCategory as k, type ToolContent as l, type ToolMetadataOverrides as m, type ToolModule as n, type ToolModuleGET as o, type ToolModulePOST as p, type ToolProfile as q };
@@ -0,0 +1,13 @@
1
+ import { I as InternalToolDefinition } from './index-9Z3wo28l.js';
2
+
3
+ interface ValidateOptions {
4
+ input: string;
5
+ }
6
+ interface LoadToolsOptions {
7
+ projectRoot?: string;
8
+ }
9
+ declare function validateCommand(options: ValidateOptions): Promise<void>;
10
+ declare function validateFullCommand(options: ValidateOptions): Promise<void>;
11
+ declare function loadAndValidateTools(toolsDir: string, options?: LoadToolsOptions): Promise<InternalToolDefinition[]>;
12
+
13
+ export { type ValidateOptions as V, validateFullCommand as a, loadAndValidateTools as l, validateCommand as v };