opentool 0.8.27 → 0.8.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -0
- package/dist/adapters/hyperliquid/index.js +8 -1
- package/dist/adapters/hyperliquid/index.js.map +1 -1
- package/dist/cli/index.d.ts +2 -2
- package/dist/cli/index.js +95 -12
- package/dist/cli/index.js.map +1 -1
- package/dist/index.d.ts +18 -5
- package/dist/index.js +121 -15
- package/dist/index.js.map +1 -1
- package/dist/store/index.d.ts +12 -1
- package/dist/store/index.js +14 -2
- package/dist/store/index.js.map +1 -1
- package/dist/{validate-C4a9tmrQ.d.ts → validate-3WEA0Ezt.d.ts} +7 -1
- package/package.json +2 -2
- package/templates/base/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
2
|
-
import { I as InternalToolDefinition, T as ToolResponse } from './validate-
|
|
3
|
-
export { B as BuildConfig, m as BuildMetadata, p as ConnectedApp, C as CronSpec,
|
|
2
|
+
import { I as InternalToolDefinition, T as ToolResponse } from './validate-3WEA0Ezt.js';
|
|
3
|
+
export { B as BuildConfig, m as BuildMetadata, p as ConnectedApp, C as CronSpec, s as GetHandler, H as HTTP_METHODS, f as HttpHandlerDefinition, e as HttpMethod, h as McpConfig, M as Metadata, N as NormalizedSchedule, P as PaymentConfig, t as PostHandler, S as ScheduleType, i as ServerConfig, q as TemplatePreviewProfile, j as Tool, o as ToolAsset, n as ToolCategory, d as ToolContent, k as ToolMetadataOverrides, x as ToolModule, u as ToolModuleGET, w as ToolModulePOST, r as ToolProfile, b as generateMetadata, g as generateMetadataCommand, l as loadAndValidateTools, v as validateCommand } from './validate-3WEA0Ezt.js';
|
|
4
4
|
export { CurrencySpec, DEFAULT_FACILITATOR, DefineX402PaymentConfig, EIP3009Authorization, PAYMENT_HEADERS, RequireX402PaymentOptions, RequireX402PaymentOutcome, RequireX402PaymentSuccess, SUPPORTED_CURRENCIES, X402BrowserClient, X402BrowserClientConfig, X402Client, X402ClientConfig, X402FacilitatorConfig, X402PayRequest, X402PayResult, X402Payment, X402PaymentContext, X402PaymentDefinition, X402PaymentRequiredError, X402VerificationResult, defineX402Payment, getX402PaymentContext, payX402, payX402WithWallet, requireX402Payment, withX402Payment } from './x402/index.js';
|
|
5
5
|
export { DEFAULT_CHAIN, DEFAULT_TOKENS, chains, getRpcUrl, registry, tokens, wallet, walletToolkit } from './wallet/index.js';
|
|
6
6
|
export { DEFAULT_HYPERLIQUID_MARKET_SLIPPAGE_BPS, HyperliquidAbstraction, HyperliquidAccountMode, HyperliquidApiError, HyperliquidApproveBuilderFeeOptions, HyperliquidApproveBuilderFeeResponse, HyperliquidBuilderApprovalError, HyperliquidBuilderApprovalRecordInput, HyperliquidBuilderFee, HyperliquidChain, HyperliquidClearinghouseState, HyperliquidDepositResult, HyperliquidEnvironment, HyperliquidExchangeClient, HyperliquidExchangeResponse, HyperliquidGrouping, HyperliquidGuardError, HyperliquidInfoClient, HyperliquidMarketIdentityInput, HyperliquidMarketType, HyperliquidOrderIntent, HyperliquidOrderOptions, HyperliquidOrderResponse, HyperliquidOrderStatus, HyperliquidPerpMarketInfo, HyperliquidProfileAsset, HyperliquidProfileAssetInput, HyperliquidProfileChain, HyperliquidSpotMarketInfo, HyperliquidStoreNetwork, HyperliquidTermsError, HyperliquidTermsRecordInput, HyperliquidTickSize, HyperliquidTimeInForce, HyperliquidTriggerOptions, HyperliquidTriggerType, HyperliquidWithdrawResult, MarketIdentity, NonceSource, __hyperliquidInternals, __hyperliquidMarketDataInternals, approveHyperliquidBuilderFee, batchModifyHyperliquidOrders, buildHyperliquidMarketIdentity, buildHyperliquidProfileAssets, buildHyperliquidSpotUsdPriceMap, cancelAllHyperliquidOrders, cancelHyperliquidOrders, cancelHyperliquidOrdersByCloid, cancelHyperliquidTwapOrder, computeHyperliquidMarketIocLimitPrice, createHyperliquidSubAccount, createMonotonicNonceFactory, depositToHyperliquidBridge, extractHyperliquidDex, extractHyperliquidOrderIds, fetchHyperliquidAllMids, fetchHyperliquidAssetCtxs, fetchHyperliquidClearinghouseState, fetchHyperliquidFrontendOpenOrders, fetchHyperliquidHistoricalOrders, fetchHyperliquidMeta, fetchHyperliquidMetaAndAssetCtxs, fetchHyperliquidOpenOrders, fetchHyperliquidOrderStatus, fetchHyperliquidPerpMarketInfo, fetchHyperliquidPreTransferCheck, fetchHyperliquidSizeDecimals, fetchHyperliquidSpotAccountValue, fetchHyperliquidSpotAssetCtxs, fetchHyperliquidSpotClearinghouseState, fetchHyperliquidSpotMarketInfo, fetchHyperliquidSpotMeta, fetchHyperliquidSpotMetaAndAssetCtxs, fetchHyperliquidSpotTickSize, fetchHyperliquidSpotUsdPriceMap, fetchHyperliquidTickSize, fetchHyperliquidUserFills, fetchHyperliquidUserFillsByTime, fetchHyperliquidUserRateLimit, formatHyperliquidMarketablePrice, formatHyperliquidOrderSize, formatHyperliquidPrice, formatHyperliquidSize, getHyperliquidMaxBuilderFee, isHyperliquidSpotSymbol, modifyHyperliquidOrder, normalizeHyperliquidBaseSymbol, normalizeHyperliquidMetaSymbol, normalizeSpotTokenName, parseSpotPairSymbol, placeHyperliquidOrder, placeHyperliquidTwapOrder, readHyperliquidAccountValue, readHyperliquidNumber, readHyperliquidPerpPosition, readHyperliquidPerpPositionSize, readHyperliquidSpotAccountValue, readHyperliquidSpotBalance, readHyperliquidSpotBalanceSize, recordHyperliquidBuilderApproval, recordHyperliquidTermsAcceptance, reserveHyperliquidRequestWeight, resolveHyperliquidAbstractionFromMode, resolveHyperliquidChain, resolveHyperliquidChainConfig, resolveHyperliquidErrorDetail, resolveHyperliquidOrderRef, resolveHyperliquidOrderSymbol, resolveHyperliquidPair, resolveHyperliquidProfileChain, resolveHyperliquidRpcEnvVar, resolveHyperliquidStoreNetwork, resolveHyperliquidSymbol, resolveSpotMidCandidates, resolveSpotTokenCandidates, roundHyperliquidPriceToTick, scheduleHyperliquidCancel, sendHyperliquidSpot, setHyperliquidAccountAbstractionMode, setHyperliquidDexAbstraction, setHyperliquidPortfolioMargin, transferHyperliquidSubAccount, updateHyperliquidIsolatedMargin, updateHyperliquidLeverage, withdrawFromHyperliquid } from './adapters/hyperliquid/index.js';
|
|
7
7
|
import { c as WalletFullContext } from './types-BVLpaY4O.js';
|
|
8
8
|
export { C as ChainMetadata, i as ChainReference, a as ChainTokenMap, H as Hex, g as HexAddress, R as RpcProviderOptions, h as RpcUrlResolver, T as TokenMetadata, l as TurnkeyOptions, k as TurnkeySignWith, r as WalletBaseContext, s as WalletContext, n as WalletOptions, m as WalletOptionsBase, b as WalletPrivateKeyOptions, j as WalletProviderType, f as WalletReadonlyContext, e as WalletReadonlyOptions, W as WalletRegistry, o as WalletSendTransactionParams, q as WalletSignerContext, p as WalletTransferParams, d as WalletTurnkeyOptions } from './types-BVLpaY4O.js';
|
|
9
9
|
export { AIAbortError, AIClientConfig, AIError, AIFetchError, AIRequestMetadata, AIResponseError, ChatCompletionChoice, ChatCompletionLogProbs, ChatCompletionResponse, ChatCompletionUsage, ChatMessage, ChatMessageContentPart, ChatMessageContentPartImageUrl, ChatMessageContentPartText, ChatMessageRole, DEFAULT_BASE_URL, DEFAULT_MODEL, DEFAULT_TIMEOUT_MS, FunctionToolDefinition, GenerateTextOptions, GenerateTextResult, GenerationParameters, JsonSchema, ResolvedAIClientConfig, ResponseErrorDetails, StreamTextOptions, StreamTextResult, StreamingEventHandlers, ToolChoice, ToolDefinition, ToolExecutionPolicy, WEBSEARCH_TOOL_DEFINITION, WEBSEARCH_TOOL_NAME, WebSearchOptions, createAIClient, ensureTextContent, flattenMessageContent, generateText, getModelConfig, isStreamingSupported, isToolCallingSupported, listModels, normalizeModelName, resolveConfig, resolveToolset, streamText } from './ai/index.js';
|
|
10
|
-
export { AgentDigestRequest, MyToolsResponse, StoreAction, StoreError, StoreEventInput, StoreEventLevel, StoreOptions, StoreResponse, StoreRetrieveParams, StoreRetrieveResult, ToolExecuteRequest, ToolExecuteResponse, executeTool, getMyPerformance, getMyTools, postAgentDigest, retrieve, store } from './store/index.js';
|
|
11
|
-
import { ZodSchema } from 'zod';
|
|
10
|
+
export { AgentDigestRequest, MyToolsResponse, StoreAction, StoreError, StoreEventInput, StoreEventLevel, StoreMode, StoreOptions, StoreResponse, StoreRetrieveParams, StoreRetrieveResult, StoreSimulationConfig, ToolExecuteRequest, ToolExecuteResponse, executeTool, getMyPerformance, getMyTools, postAgentDigest, retrieve, store } from './store/index.js';
|
|
11
|
+
import { z, ZodSchema } from 'zod';
|
|
12
12
|
import 'viem';
|
|
13
13
|
import 'viem/accounts';
|
|
14
14
|
|
|
@@ -336,6 +336,19 @@ declare function fetchPolymarketPriceHistory(params: {
|
|
|
336
336
|
environment?: PolymarketEnvironment;
|
|
337
337
|
}): Promise<PolymarketPriceHistoryPoint[]>;
|
|
338
338
|
|
|
339
|
+
declare const backtestDecisionRequestSchema: z.ZodObject<{
|
|
340
|
+
mode: z.ZodLiteral<"backtest_decisions">;
|
|
341
|
+
source: z.ZodOptional<z.ZodString>;
|
|
342
|
+
symbol: z.ZodOptional<z.ZodString>;
|
|
343
|
+
lookbackDays: z.ZodOptional<z.ZodNumber>;
|
|
344
|
+
timeframeStart: z.ZodOptional<z.ZodString>;
|
|
345
|
+
timeframeEnd: z.ZodOptional<z.ZodString>;
|
|
346
|
+
from: z.ZodOptional<z.ZodNumber>;
|
|
347
|
+
to: z.ZodOptional<z.ZodNumber>;
|
|
348
|
+
initialEquityUsd: z.ZodOptional<z.ZodNumber>;
|
|
349
|
+
}, z.core.$strict>;
|
|
350
|
+
type BacktestDecisionRequest = z.infer<typeof backtestDecisionRequestSchema>;
|
|
351
|
+
|
|
339
352
|
interface CreateMcpAdapterOptions {
|
|
340
353
|
name: string;
|
|
341
354
|
schema?: ZodSchema;
|
|
@@ -348,4 +361,4 @@ interface CreateMcpAdapterOptions {
|
|
|
348
361
|
declare function createMcpAdapter(options: CreateMcpAdapterOptions): (rawArguments: unknown) => Promise<ToolResponse>;
|
|
349
362
|
declare function responseToToolResponse(response: Response): Promise<ToolResponse>;
|
|
350
363
|
|
|
351
|
-
export { InternalToolDefinition, POLYMARKET_CHAIN_ID, POLYMARKET_CLOB_AUTH_DOMAIN, POLYMARKET_CLOB_DOMAIN, POLYMARKET_ENDPOINTS, POLYMARKET_EXCHANGE_ADDRESSES, type PolymarketApiCredentials, PolymarketApiError, type PolymarketApiKeyResponse, PolymarketAuthError, type PolymarketEnvironment, PolymarketExchangeClient, PolymarketInfoClient, type PolymarketMarket, type PolymarketOrderIntent, type PolymarketOrderType, type PolymarketOrderbook, type PolymarketPlaceOrderResponse, type PolymarketPriceHistoryPoint, type PolymarketSide, type PolymarketSignatureType, type PolymarketSignedOrderPayload, ToolResponse, WalletFullContext, buildHmacSignature, buildL1Headers, buildL2Headers, buildPolymarketOrderAmounts, buildSignedOrderPayload, cancelAllPolymarketOrders, cancelMarketPolymarketOrders, cancelPolymarketOrder, cancelPolymarketOrders, createDevServer, createMcpAdapter, createPolymarketApiKey, createStdioServer, derivePolymarketApiKey, fetchPolymarketMarket, fetchPolymarketMarkets, fetchPolymarketMidpoint, fetchPolymarketOrderbook, fetchPolymarketPrice, fetchPolymarketPriceHistory, normalizeNumberArrayish, normalizeStringArrayish, placePolymarketOrder, resolveExchangeAddress, resolvePolymarketBaseUrl, resolveRuntimePath, responseToToolResponse };
|
|
364
|
+
export { type BacktestDecisionRequest, InternalToolDefinition, POLYMARKET_CHAIN_ID, POLYMARKET_CLOB_AUTH_DOMAIN, POLYMARKET_CLOB_DOMAIN, POLYMARKET_ENDPOINTS, POLYMARKET_EXCHANGE_ADDRESSES, type PolymarketApiCredentials, PolymarketApiError, type PolymarketApiKeyResponse, PolymarketAuthError, type PolymarketEnvironment, PolymarketExchangeClient, PolymarketInfoClient, type PolymarketMarket, type PolymarketOrderIntent, type PolymarketOrderType, type PolymarketOrderbook, type PolymarketPlaceOrderResponse, type PolymarketPriceHistoryPoint, type PolymarketSide, type PolymarketSignatureType, type PolymarketSignedOrderPayload, ToolResponse, WalletFullContext, backtestDecisionRequestSchema, buildHmacSignature, buildL1Headers, buildL2Headers, buildPolymarketOrderAmounts, buildSignedOrderPayload, cancelAllPolymarketOrders, cancelMarketPolymarketOrders, cancelPolymarketOrder, cancelPolymarketOrders, createDevServer, createMcpAdapter, createPolymarketApiKey, createStdioServer, derivePolymarketApiKey, fetchPolymarketMarket, fetchPolymarketMarkets, fetchPolymarketMidpoint, fetchPolymarketOrderbook, fetchPolymarketPrice, fetchPolymarketPriceHistory, normalizeNumberArrayish, normalizeStringArrayish, placePolymarketOrder, resolveExchangeAddress, resolvePolymarketBaseUrl, resolveRuntimePath, responseToToolResponse };
|
package/dist/index.js
CHANGED
|
@@ -1761,8 +1761,14 @@ async function requestJson(url, options, init) {
|
|
|
1761
1761
|
}
|
|
1762
1762
|
async function store(input, options) {
|
|
1763
1763
|
const normalizedInput = normalizeStoreInput(input);
|
|
1764
|
+
const mode = normalizedInput.mode ?? "live";
|
|
1764
1765
|
const eventLevel = normalizedInput.eventLevel;
|
|
1765
1766
|
const normalizedAction = normalizeAction(normalizedInput.action);
|
|
1767
|
+
if (mode === "backtest" && !normalizedInput.backtestRunId) {
|
|
1768
|
+
throw new StoreError(
|
|
1769
|
+
`backtestRunId is required when mode is "backtest"`
|
|
1770
|
+
);
|
|
1771
|
+
}
|
|
1766
1772
|
if (eventLevel === "execution" || eventLevel === "lifecycle") {
|
|
1767
1773
|
if (!normalizedAction || !EXECUTION_ACTIONS_SET.has(normalizedAction)) {
|
|
1768
1774
|
throw new StoreError(
|
|
@@ -1782,7 +1788,8 @@ async function store(input, options) {
|
|
|
1782
1788
|
);
|
|
1783
1789
|
}
|
|
1784
1790
|
const { baseUrl, apiKey, fetchFn } = resolveConfig(options);
|
|
1785
|
-
const
|
|
1791
|
+
const path8 = mode === "backtest" ? "/apps/backtests/tx" : "/apps/positions/tx";
|
|
1792
|
+
const url = `${baseUrl}${path8}`;
|
|
1786
1793
|
let response;
|
|
1787
1794
|
try {
|
|
1788
1795
|
response = await fetchFn(url, {
|
|
@@ -1821,7 +1828,9 @@ async function store(input, options) {
|
|
|
1821
1828
|
}
|
|
1822
1829
|
async function retrieve(params, options) {
|
|
1823
1830
|
const { baseUrl, apiKey, fetchFn } = resolveConfig(options);
|
|
1824
|
-
const
|
|
1831
|
+
const mode = params?.mode ?? "live";
|
|
1832
|
+
const path8 = mode === "backtest" ? "/apps/backtests/tx" : "/apps/positions/tx";
|
|
1833
|
+
const url = new URL(`${baseUrl}${path8}`);
|
|
1825
1834
|
if (params?.source) url.searchParams.set("source", params.source);
|
|
1826
1835
|
if (params?.walletAddress) url.searchParams.set("walletAddress", params.walletAddress);
|
|
1827
1836
|
if (params?.symbol) url.searchParams.set("symbol", params.symbol);
|
|
@@ -1831,6 +1840,9 @@ async function retrieve(params, options) {
|
|
|
1831
1840
|
if (typeof params?.limit === "number") url.searchParams.set("limit", params.limit.toString());
|
|
1832
1841
|
if (params?.cursor) url.searchParams.set("cursor", params.cursor);
|
|
1833
1842
|
if (params?.history) url.searchParams.set("history", "true");
|
|
1843
|
+
if (params?.backtestRunId) {
|
|
1844
|
+
url.searchParams.set("backtestRunId", params.backtestRunId);
|
|
1845
|
+
}
|
|
1834
1846
|
let response;
|
|
1835
1847
|
try {
|
|
1836
1848
|
response = await fetchFn(url.toString(), {
|
|
@@ -6315,6 +6327,17 @@ function toAbortError(reason) {
|
|
|
6315
6327
|
}
|
|
6316
6328
|
return new AIAbortError(String(reason ?? "AI request aborted"));
|
|
6317
6329
|
}
|
|
6330
|
+
var backtestDecisionRequestSchema = z.object({
|
|
6331
|
+
mode: z.literal("backtest_decisions"),
|
|
6332
|
+
source: z.string().min(1).optional(),
|
|
6333
|
+
symbol: z.string().min(1).optional(),
|
|
6334
|
+
lookbackDays: z.number().positive().optional(),
|
|
6335
|
+
timeframeStart: z.string().optional(),
|
|
6336
|
+
timeframeEnd: z.string().optional(),
|
|
6337
|
+
from: z.number().int().nonnegative().optional(),
|
|
6338
|
+
to: z.number().int().nonnegative().optional(),
|
|
6339
|
+
initialEquityUsd: z.number().positive().optional()
|
|
6340
|
+
}).strict();
|
|
6318
6341
|
var METADATA_SPEC_VERSION = "1.1.0";
|
|
6319
6342
|
var McpAnnotationsSchema = z.object({
|
|
6320
6343
|
title: z.string().optional(),
|
|
@@ -6803,6 +6826,11 @@ var SUPPORTED_EXTENSIONS = [
|
|
|
6803
6826
|
".cjs"
|
|
6804
6827
|
];
|
|
6805
6828
|
var MIN_TEMPLATE_CONFIG_VERSION = 2;
|
|
6829
|
+
var TEMPLATE_PREVIEW_TITLE_MAX = 80;
|
|
6830
|
+
var TEMPLATE_PREVIEW_SUBTITLE_MAX = 120;
|
|
6831
|
+
var TEMPLATE_PREVIEW_DESCRIPTION_MAX = 1200;
|
|
6832
|
+
var TEMPLATE_PREVIEW_MIN_LINES = 3;
|
|
6833
|
+
var TEMPLATE_PREVIEW_MAX_LINES = 8;
|
|
6806
6834
|
function normalizeTemplateConfigVersion(value) {
|
|
6807
6835
|
if (typeof value === "number" && Number.isFinite(value)) {
|
|
6808
6836
|
return value;
|
|
@@ -6825,6 +6853,67 @@ function normalizeTemplateConfigVersion(value) {
|
|
|
6825
6853
|
const major = Number.parseInt(majorMatch[1], 10);
|
|
6826
6854
|
return Number.isFinite(major) ? major : null;
|
|
6827
6855
|
}
|
|
6856
|
+
function parseNonEmptyString(value, fieldPath, opts = {}) {
|
|
6857
|
+
const { max, required = false } = opts;
|
|
6858
|
+
if (value == null) {
|
|
6859
|
+
if (required) {
|
|
6860
|
+
throw new Error(`${fieldPath} is required and must be a non-empty string.`);
|
|
6861
|
+
}
|
|
6862
|
+
return null;
|
|
6863
|
+
}
|
|
6864
|
+
if (typeof value !== "string") {
|
|
6865
|
+
throw new Error(`${fieldPath} must be a string.`);
|
|
6866
|
+
}
|
|
6867
|
+
const trimmed = value.trim();
|
|
6868
|
+
if (!trimmed) {
|
|
6869
|
+
throw new Error(`${fieldPath} must be a non-empty string.`);
|
|
6870
|
+
}
|
|
6871
|
+
if (typeof max === "number" && trimmed.length > max) {
|
|
6872
|
+
throw new Error(`${fieldPath} must be <= ${max} characters.`);
|
|
6873
|
+
}
|
|
6874
|
+
return trimmed;
|
|
6875
|
+
}
|
|
6876
|
+
function normalizeTemplatePreview(value, file, toolName, requirePreview) {
|
|
6877
|
+
const pathPrefix = `${file}: profile.templatePreview`;
|
|
6878
|
+
if (value == null) {
|
|
6879
|
+
if (requirePreview) {
|
|
6880
|
+
throw new Error(
|
|
6881
|
+
`${pathPrefix} is required for strategy tools and must define subtitle + description.`
|
|
6882
|
+
);
|
|
6883
|
+
}
|
|
6884
|
+
return null;
|
|
6885
|
+
}
|
|
6886
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
6887
|
+
throw new Error(`${pathPrefix} must be an object.`);
|
|
6888
|
+
}
|
|
6889
|
+
const record = value;
|
|
6890
|
+
const title = parseNonEmptyString(record.title, `${pathPrefix}.title`, {
|
|
6891
|
+
max: TEMPLATE_PREVIEW_TITLE_MAX
|
|
6892
|
+
}) ?? toolName;
|
|
6893
|
+
const subtitle = parseNonEmptyString(record.subtitle, `${pathPrefix}.subtitle`, {
|
|
6894
|
+
required: true,
|
|
6895
|
+
max: TEMPLATE_PREVIEW_SUBTITLE_MAX
|
|
6896
|
+
});
|
|
6897
|
+
const description = parseNonEmptyString(
|
|
6898
|
+
record.description,
|
|
6899
|
+
`${pathPrefix}.description`,
|
|
6900
|
+
{
|
|
6901
|
+
required: true,
|
|
6902
|
+
max: TEMPLATE_PREVIEW_DESCRIPTION_MAX
|
|
6903
|
+
}
|
|
6904
|
+
);
|
|
6905
|
+
const descriptionLineCount = description.split(/\r?\n/).map((line) => line.trim()).filter((line) => line.length > 0).length;
|
|
6906
|
+
if (descriptionLineCount < TEMPLATE_PREVIEW_MIN_LINES || descriptionLineCount > TEMPLATE_PREVIEW_MAX_LINES) {
|
|
6907
|
+
throw new Error(
|
|
6908
|
+
`${pathPrefix}.description must contain ${TEMPLATE_PREVIEW_MIN_LINES}-${TEMPLATE_PREVIEW_MAX_LINES} non-empty lines (target ~5 lines).`
|
|
6909
|
+
);
|
|
6910
|
+
}
|
|
6911
|
+
return {
|
|
6912
|
+
title,
|
|
6913
|
+
subtitle,
|
|
6914
|
+
description
|
|
6915
|
+
};
|
|
6916
|
+
}
|
|
6828
6917
|
async function validateCommand(options) {
|
|
6829
6918
|
console.log("\u{1F50D} Validating OpenTool metadata...");
|
|
6830
6919
|
try {
|
|
@@ -6902,16 +6991,26 @@ async function loadAndValidateTools(toolsDir, options = {}) {
|
|
|
6902
6991
|
throw new Error(`${file}: export exactly one of GET or POST`);
|
|
6903
6992
|
}
|
|
6904
6993
|
let normalizedSchedule = null;
|
|
6905
|
-
const
|
|
6906
|
-
const
|
|
6907
|
-
const
|
|
6908
|
-
const allowedProfileCategories =
|
|
6909
|
-
|
|
6910
|
-
|
|
6911
|
-
|
|
6912
|
-
|
|
6994
|
+
const profileRaw = toolModule?.profile && typeof toolModule.profile === "object" ? toolModule.profile : null;
|
|
6995
|
+
const schedule = profileRaw?.schedule ?? null;
|
|
6996
|
+
const profileNotifyEmail = typeof profileRaw?.notifyEmail === "boolean" ? profileRaw.notifyEmail : void 0;
|
|
6997
|
+
const allowedProfileCategories = [
|
|
6998
|
+
"strategy",
|
|
6999
|
+
"tracker",
|
|
7000
|
+
"orchestrator"
|
|
7001
|
+
];
|
|
7002
|
+
const profileCategoryCandidate = typeof profileRaw?.category === "string" ? profileRaw.category : void 0;
|
|
7003
|
+
let profileCategoryRaw;
|
|
7004
|
+
if (profileCategoryCandidate !== void 0) {
|
|
7005
|
+
const isAllowed = allowedProfileCategories.includes(profileCategoryCandidate);
|
|
7006
|
+
if (!isAllowed) {
|
|
7007
|
+
throw new Error(
|
|
7008
|
+
`${file}: profile.category must be one of ${allowedProfileCategories.join(", ")}`
|
|
7009
|
+
);
|
|
7010
|
+
}
|
|
7011
|
+
profileCategoryRaw = profileCategoryCandidate;
|
|
6913
7012
|
}
|
|
6914
|
-
const profileAssetsRaw =
|
|
7013
|
+
const profileAssetsRaw = profileRaw?.assets;
|
|
6915
7014
|
if (profileAssetsRaw !== void 0) {
|
|
6916
7015
|
if (!Array.isArray(profileAssetsRaw)) {
|
|
6917
7016
|
throw new Error(`${file}: profile.assets must be an array.`);
|
|
@@ -6969,7 +7068,7 @@ async function loadAndValidateTools(toolsDir, options = {}) {
|
|
|
6969
7068
|
}
|
|
6970
7069
|
});
|
|
6971
7070
|
}
|
|
6972
|
-
const templateConfigRaw =
|
|
7071
|
+
const templateConfigRaw = profileRaw?.templateConfig;
|
|
6973
7072
|
if (templateConfigRaw !== void 0) {
|
|
6974
7073
|
if (!templateConfigRaw || typeof templateConfigRaw !== "object") {
|
|
6975
7074
|
throw new Error(`${file}: profile.templateConfig must be an object.`);
|
|
@@ -7006,6 +7105,13 @@ async function loadAndValidateTools(toolsDir, options = {}) {
|
|
|
7006
7105
|
);
|
|
7007
7106
|
}
|
|
7008
7107
|
}
|
|
7108
|
+
const normalizedTemplatePreview = normalizeTemplatePreview(
|
|
7109
|
+
profileRaw?.templatePreview,
|
|
7110
|
+
file,
|
|
7111
|
+
toolName,
|
|
7112
|
+
profileCategoryRaw === "strategy"
|
|
7113
|
+
);
|
|
7114
|
+
const normalizedProfile = profileRaw && normalizedTemplatePreview ? { ...profileRaw, templatePreview: normalizedTemplatePreview } : profileRaw;
|
|
7009
7115
|
if (hasGET && schedule && typeof schedule.cron === "string" && schedule.cron.trim().length > 0) {
|
|
7010
7116
|
normalizedSchedule = normalizeScheduleExpression(schedule.cron, file);
|
|
7011
7117
|
if (typeof schedule.enabled === "boolean") {
|
|
@@ -7075,9 +7181,9 @@ async function loadAndValidateTools(toolsDir, options = {}) {
|
|
|
7075
7181
|
handler: async (params) => adapter(params),
|
|
7076
7182
|
payment: paymentExport ?? null,
|
|
7077
7183
|
schedule: normalizedSchedule,
|
|
7078
|
-
profile:
|
|
7184
|
+
profile: normalizedProfile,
|
|
7079
7185
|
...profileNotifyEmail !== void 0 ? { notifyEmail: profileNotifyEmail } : {},
|
|
7080
|
-
profileDescription: typeof
|
|
7186
|
+
profileDescription: typeof profileRaw?.description === "string" ? profileRaw.description : null,
|
|
7081
7187
|
...profileCategoryRaw ? { profileCategory: profileCategoryRaw } : {}
|
|
7082
7188
|
};
|
|
7083
7189
|
tools.push(tool);
|
|
@@ -7310,6 +7416,6 @@ function timestamp() {
|
|
|
7310
7416
|
return (/* @__PURE__ */ new Date()).toISOString().replace("T", " ").slice(0, 19);
|
|
7311
7417
|
}
|
|
7312
7418
|
|
|
7313
|
-
export { AIAbortError, AIError, AIFetchError, AIResponseError, DEFAULT_BASE_URL, DEFAULT_CHAIN, DEFAULT_FACILITATOR, DEFAULT_HYPERLIQUID_MARKET_SLIPPAGE_BPS, DEFAULT_MODEL, DEFAULT_TIMEOUT_MS, DEFAULT_TOKENS, HTTP_METHODS2 as HTTP_METHODS, HyperliquidApiError, HyperliquidBuilderApprovalError, HyperliquidExchangeClient, HyperliquidGuardError, HyperliquidInfoClient, HyperliquidTermsError, PAYMENT_HEADERS, POLYMARKET_CHAIN_ID, POLYMARKET_CLOB_AUTH_DOMAIN, POLYMARKET_CLOB_DOMAIN, POLYMARKET_ENDPOINTS, POLYMARKET_EXCHANGE_ADDRESSES, PolymarketApiError, PolymarketAuthError, PolymarketExchangeClient, PolymarketInfoClient, SUPPORTED_CURRENCIES, StoreError, WEBSEARCH_TOOL_DEFINITION, WEBSEARCH_TOOL_NAME, X402BrowserClient, X402Client, X402PaymentRequiredError, __hyperliquidInternals, __hyperliquidMarketDataInternals, approveHyperliquidBuilderFee, batchModifyHyperliquidOrders, buildHmacSignature, buildHyperliquidMarketIdentity, buildHyperliquidProfileAssets, buildHyperliquidSpotUsdPriceMap, buildL1Headers, buildL2Headers, buildPolymarketOrderAmounts, buildSignedOrderPayload, cancelAllHyperliquidOrders, cancelAllPolymarketOrders, cancelHyperliquidOrders, cancelHyperliquidOrdersByCloid, cancelHyperliquidTwapOrder, cancelMarketPolymarketOrders, cancelPolymarketOrder, cancelPolymarketOrders, chains, computeHyperliquidMarketIocLimitPrice, createAIClient, createDevServer, createHyperliquidSubAccount, createMcpAdapter, createMonotonicNonceFactory, createPolymarketApiKey, createStdioServer, defineX402Payment, depositToHyperliquidBridge, derivePolymarketApiKey, ensureTextContent, executeTool, extractHyperliquidDex, extractHyperliquidOrderIds, fetchHyperliquidAllMids, fetchHyperliquidAssetCtxs, fetchHyperliquidClearinghouseState, fetchHyperliquidFrontendOpenOrders, fetchHyperliquidHistoricalOrders, fetchHyperliquidMeta, fetchHyperliquidMetaAndAssetCtxs, fetchHyperliquidOpenOrders, fetchHyperliquidOrderStatus, fetchHyperliquidPerpMarketInfo, fetchHyperliquidPreTransferCheck, fetchHyperliquidSizeDecimals, fetchHyperliquidSpotAccountValue, fetchHyperliquidSpotAssetCtxs, fetchHyperliquidSpotClearinghouseState, fetchHyperliquidSpotMarketInfo, fetchHyperliquidSpotMeta, fetchHyperliquidSpotMetaAndAssetCtxs, fetchHyperliquidSpotTickSize, fetchHyperliquidSpotUsdPriceMap, fetchHyperliquidTickSize, fetchHyperliquidUserFills, fetchHyperliquidUserFillsByTime, fetchHyperliquidUserRateLimit, fetchPolymarketMarket, fetchPolymarketMarkets, fetchPolymarketMidpoint, fetchPolymarketOrderbook, fetchPolymarketPrice, fetchPolymarketPriceHistory, flattenMessageContent, formatHyperliquidMarketablePrice, formatHyperliquidOrderSize, formatHyperliquidPrice, formatHyperliquidSize, generateMetadata, generateMetadataCommand, generateText, getHyperliquidMaxBuilderFee, getModelConfig, getMyPerformance, getMyTools, getRpcUrl, getX402PaymentContext, isHyperliquidSpotSymbol, isStreamingSupported, isToolCallingSupported, listModels, loadAndValidateTools, modifyHyperliquidOrder, normalizeHyperliquidBaseSymbol, normalizeHyperliquidMetaSymbol, normalizeModelName, normalizeNumberArrayish, normalizeSpotTokenName2 as normalizeSpotTokenName, normalizeStringArrayish, parseSpotPairSymbol, payX402, payX402WithWallet, placeHyperliquidOrder, placeHyperliquidTwapOrder, placePolymarketOrder, postAgentDigest, readHyperliquidAccountValue, readHyperliquidNumber, readHyperliquidPerpPosition, readHyperliquidPerpPositionSize, readHyperliquidSpotAccountValue, readHyperliquidSpotBalance, readHyperliquidSpotBalanceSize, recordHyperliquidBuilderApproval, recordHyperliquidTermsAcceptance, registry, requireX402Payment, reserveHyperliquidRequestWeight, resolveConfig2 as resolveConfig, resolveExchangeAddress, resolveHyperliquidAbstractionFromMode, resolveHyperliquidChain, resolveHyperliquidChainConfig, resolveHyperliquidErrorDetail, resolveHyperliquidOrderRef, resolveHyperliquidOrderSymbol, resolveHyperliquidPair, resolveHyperliquidProfileChain, resolveHyperliquidRpcEnvVar, resolveHyperliquidStoreNetwork, resolveHyperliquidSymbol, resolvePolymarketBaseUrl, resolveRuntimePath, resolveSpotMidCandidates, resolveSpotTokenCandidates, resolveToolset, responseToToolResponse, retrieve, roundHyperliquidPriceToTick, scheduleHyperliquidCancel, sendHyperliquidSpot, setHyperliquidAccountAbstractionMode, setHyperliquidDexAbstraction, setHyperliquidPortfolioMargin, store, streamText, tokens, transferHyperliquidSubAccount, updateHyperliquidIsolatedMargin, updateHyperliquidLeverage, validateCommand, wallet, walletToolkit, withX402Payment, withdrawFromHyperliquid };
|
|
7419
|
+
export { AIAbortError, AIError, AIFetchError, AIResponseError, DEFAULT_BASE_URL, DEFAULT_CHAIN, DEFAULT_FACILITATOR, DEFAULT_HYPERLIQUID_MARKET_SLIPPAGE_BPS, DEFAULT_MODEL, DEFAULT_TIMEOUT_MS, DEFAULT_TOKENS, HTTP_METHODS2 as HTTP_METHODS, HyperliquidApiError, HyperliquidBuilderApprovalError, HyperliquidExchangeClient, HyperliquidGuardError, HyperliquidInfoClient, HyperliquidTermsError, PAYMENT_HEADERS, POLYMARKET_CHAIN_ID, POLYMARKET_CLOB_AUTH_DOMAIN, POLYMARKET_CLOB_DOMAIN, POLYMARKET_ENDPOINTS, POLYMARKET_EXCHANGE_ADDRESSES, PolymarketApiError, PolymarketAuthError, PolymarketExchangeClient, PolymarketInfoClient, SUPPORTED_CURRENCIES, StoreError, WEBSEARCH_TOOL_DEFINITION, WEBSEARCH_TOOL_NAME, X402BrowserClient, X402Client, X402PaymentRequiredError, __hyperliquidInternals, __hyperliquidMarketDataInternals, approveHyperliquidBuilderFee, backtestDecisionRequestSchema, batchModifyHyperliquidOrders, buildHmacSignature, buildHyperliquidMarketIdentity, buildHyperliquidProfileAssets, buildHyperliquidSpotUsdPriceMap, buildL1Headers, buildL2Headers, buildPolymarketOrderAmounts, buildSignedOrderPayload, cancelAllHyperliquidOrders, cancelAllPolymarketOrders, cancelHyperliquidOrders, cancelHyperliquidOrdersByCloid, cancelHyperliquidTwapOrder, cancelMarketPolymarketOrders, cancelPolymarketOrder, cancelPolymarketOrders, chains, computeHyperliquidMarketIocLimitPrice, createAIClient, createDevServer, createHyperliquidSubAccount, createMcpAdapter, createMonotonicNonceFactory, createPolymarketApiKey, createStdioServer, defineX402Payment, depositToHyperliquidBridge, derivePolymarketApiKey, ensureTextContent, executeTool, extractHyperliquidDex, extractHyperliquidOrderIds, fetchHyperliquidAllMids, fetchHyperliquidAssetCtxs, fetchHyperliquidClearinghouseState, fetchHyperliquidFrontendOpenOrders, fetchHyperliquidHistoricalOrders, fetchHyperliquidMeta, fetchHyperliquidMetaAndAssetCtxs, fetchHyperliquidOpenOrders, fetchHyperliquidOrderStatus, fetchHyperliquidPerpMarketInfo, fetchHyperliquidPreTransferCheck, fetchHyperliquidSizeDecimals, fetchHyperliquidSpotAccountValue, fetchHyperliquidSpotAssetCtxs, fetchHyperliquidSpotClearinghouseState, fetchHyperliquidSpotMarketInfo, fetchHyperliquidSpotMeta, fetchHyperliquidSpotMetaAndAssetCtxs, fetchHyperliquidSpotTickSize, fetchHyperliquidSpotUsdPriceMap, fetchHyperliquidTickSize, fetchHyperliquidUserFills, fetchHyperliquidUserFillsByTime, fetchHyperliquidUserRateLimit, fetchPolymarketMarket, fetchPolymarketMarkets, fetchPolymarketMidpoint, fetchPolymarketOrderbook, fetchPolymarketPrice, fetchPolymarketPriceHistory, flattenMessageContent, formatHyperliquidMarketablePrice, formatHyperliquidOrderSize, formatHyperliquidPrice, formatHyperliquidSize, generateMetadata, generateMetadataCommand, generateText, getHyperliquidMaxBuilderFee, getModelConfig, getMyPerformance, getMyTools, getRpcUrl, getX402PaymentContext, isHyperliquidSpotSymbol, isStreamingSupported, isToolCallingSupported, listModels, loadAndValidateTools, modifyHyperliquidOrder, normalizeHyperliquidBaseSymbol, normalizeHyperliquidMetaSymbol, normalizeModelName, normalizeNumberArrayish, normalizeSpotTokenName2 as normalizeSpotTokenName, normalizeStringArrayish, parseSpotPairSymbol, payX402, payX402WithWallet, placeHyperliquidOrder, placeHyperliquidTwapOrder, placePolymarketOrder, postAgentDigest, readHyperliquidAccountValue, readHyperliquidNumber, readHyperliquidPerpPosition, readHyperliquidPerpPositionSize, readHyperliquidSpotAccountValue, readHyperliquidSpotBalance, readHyperliquidSpotBalanceSize, recordHyperliquidBuilderApproval, recordHyperliquidTermsAcceptance, registry, requireX402Payment, reserveHyperliquidRequestWeight, resolveConfig2 as resolveConfig, resolveExchangeAddress, resolveHyperliquidAbstractionFromMode, resolveHyperliquidChain, resolveHyperliquidChainConfig, resolveHyperliquidErrorDetail, resolveHyperliquidOrderRef, resolveHyperliquidOrderSymbol, resolveHyperliquidPair, resolveHyperliquidProfileChain, resolveHyperliquidRpcEnvVar, resolveHyperliquidStoreNetwork, resolveHyperliquidSymbol, resolvePolymarketBaseUrl, resolveRuntimePath, resolveSpotMidCandidates, resolveSpotTokenCandidates, resolveToolset, responseToToolResponse, retrieve, roundHyperliquidPriceToTick, scheduleHyperliquidCancel, sendHyperliquidSpot, setHyperliquidAccountAbstractionMode, setHyperliquidDexAbstraction, setHyperliquidPortfolioMargin, store, streamText, tokens, transferHyperliquidSubAccount, updateHyperliquidIsolatedMargin, updateHyperliquidLeverage, validateCommand, wallet, walletToolkit, withX402Payment, withdrawFromHyperliquid };
|
|
7314
7420
|
//# sourceMappingURL=index.js.map
|
|
7315
7421
|
//# sourceMappingURL=index.js.map
|