@t2000/engine 0.5.3 → 0.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +10 -1
- package/dist/index.js +37 -7
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -939,6 +939,15 @@ declare const voloStatsTool: Tool<{}, {
|
|
|
939
939
|
totalVSui: number;
|
|
940
940
|
}>;
|
|
941
941
|
|
|
942
|
+
declare const saveContactTool: Tool<{
|
|
943
|
+
name: string;
|
|
944
|
+
address: string;
|
|
945
|
+
}, {
|
|
946
|
+
saved: boolean;
|
|
947
|
+
name: string;
|
|
948
|
+
address: string;
|
|
949
|
+
}>;
|
|
950
|
+
|
|
942
951
|
declare const defillamaYieldPoolsTool: Tool<{
|
|
943
952
|
limit?: number | undefined;
|
|
944
953
|
chain?: string | undefined;
|
|
@@ -1052,4 +1061,4 @@ declare function clearPriceCache(): void;
|
|
|
1052
1061
|
|
|
1053
1062
|
declare const DEFAULT_SYSTEM_PROMPT = "You are a financial agent on Sui. You manage money and access paid APIs via MPP micropayments.\n\n## Response rules\n- 1-2 sentences max. No bullet lists unless asked. No preambles.\n- Never say \"Would you like me to...\", \"Sure!\", \"Great question!\", \"Absolutely!\" \u2014 just do it or say you can't.\n- Lead with the result. After tool calls, state the outcome with real numbers. Done.\n- Present amounts as $1,234.56 and rates as X.XX% APY.\n- Show top 3 results unless asked for more. Summarize totals in one line.\n\n## Execution rule\nOnly offer to execute actions you have tools for. If you retrieved a quote, data, or information but have no tool to act on it, give the user the result and tell them where to execute manually \u2014 in one sentence. Never say \"Would you like me to proceed?\" unless you have a tool that can actually proceed.\n\n## Before acting\n- ALWAYS call a read tool first before any write tool \u2014 balance_check before save/send/borrow, savings_info before withdraw.\n- Show real numbers from tools \u2014 never fabricate rates, amounts, or balances.\n- When user says \"all\" or an imprecise amount, call the read tool first to get the exact number.\n\n## Tool usage\n- Use tools proactively \u2014 don't refuse requests you can handle.\n- For real-world questions (weather, search, news, prices), use pay_api. Tell the user the cost first.\n- For broad market data (yields across protocols, token prices, TVL, protocol comparisons), use defillama_* tools.\n- To discover Sui protocols, use defillama_sui_protocols first, then defillama_protocol_info with the slug.\n- Run multiple read-only tools in parallel when you need several data points.\n- If a tool errors, say what went wrong and what to try instead. One sentence.\n\n## Multi-step flows\n- \"How much X for Y?\": swap_quote first, then swap_execute if user confirms.\n- \"Swap then save\": swap_execute \u2192 balance_check \u2192 save_deposit. Confirm each step.\n- \"Buy $X of token\": defillama_token_prices \u2192 calculate amount \u2192 swap_execute.\n- \"Best yield on SUI\": compare rates_info (NAVI lending) + defillama_yield_pools (broader) + volo_stats.\n- save_deposit supports any NAVI asset: USDC (default), USDT, SUI, USDe, USDsui. Pass asset param for non-USDC.\n- \"Deposit SUI to earn yield\": save_deposit with asset=\"SUI\" for NAVI lending, or volo_stake for liquid staking.\n- \"What protocols are on Sui?\": defillama_sui_protocols \u2192 defillama_protocol_info for details.\n\n## Safety\n- Never encourage risky financial behavior.\n- Warn when health factor < 1.5.\n- All amounts in USDC unless stated otherwise.";
|
|
1054
1063
|
|
|
1055
|
-
export { AnthropicProvider, type AnthropicProviderConfig, type BalancePrices, type BalanceResult, type BuildToolOptions, type ChatParams, type CompactOptions, type ContentBlock, type CostSnapshot, CostTracker, type CostTrackerConfig, DEFAULT_SYSTEM_PROMPT, type EngineConfig, type EngineEvent, type HealthFactorResult, type LLMProvider, type McpCallResult, McpClientManager, McpResponseCache, type McpServerConfig, type McpServerConnection, type McpToolAdapterConfig, type McpToolDescriptor, MemorySessionStore, type Message, NAVI_MCP_CONFIG, NAVI_MCP_URL, NAVI_SERVER_NAME, type NaviRawCoin, type NaviRawHealthFactor, type NaviRawPool, type NaviRawPosition, type NaviRawPositionsResponse, type NaviRawProtocolStats, type NaviRawRewardsResponse, type NaviReadOptions, NaviTools, type PendingAction, type PendingReward, type PendingToolCall, type PermissionLevel, type PermissionResponse, type PositionEntry, type ProtocolStats, type ProviderEvent, QueryEngine, READ_TOOLS, type RatesResult, type SSEEvent, type SavingsResult, type ServerPositionData, type SessionData, type SessionStore, type StopReason, type SuiCoinBalance, type Tool, type ToolChoice, type ToolContext, type ToolDefinition, type ToolJsonSchema, type ToolResult, TxMutex, WRITE_TOOLS, type WalletCoin, adaptAllMcpTools, adaptAllServerTools, adaptMcpTool, balanceCheckTool, borrowTool, buildMcpTools, buildTool, claimRewardsTool, clearPriceCache, compactMessages, defillamaChainTvlTool, defillamaPriceChangeTool, defillamaProtocolFeesTool, defillamaProtocolInfoTool, defillamaSuiProtocolsTool, defillamaTokenPricesTool, defillamaYieldPoolsTool, engineToSSE, estimateTokens, extractMcpText, fetchAvailableRewards, fetchBalance, fetchHealthFactor, fetchPositions, fetchProtocolStats, fetchRates, fetchSavings, fetchTokenPrices, fetchWalletCoins, findTool, getDefaultTools, getMcpManager, getWalletAddress, hasNaviMcp, healthCheckTool, parseMcpJson, parseSSE, payApiTool, ratesInfoTool, registerEngineTools, repayDebtTool, requireAgent, runTools, saveDepositTool, savingsInfoTool, sendTransferTool, serializeSSE, swapExecuteTool, swapQuoteTool, toolsToDefinitions, transactionHistoryTool, transformBalance, transformHealthFactor, transformPositions, transformRates, transformRewards, transformSavings, validateHistory, voloStakeTool, voloStatsTool, voloUnstakeTool, withdrawTool };
|
|
1064
|
+
export { AnthropicProvider, type AnthropicProviderConfig, type BalancePrices, type BalanceResult, type BuildToolOptions, type ChatParams, type CompactOptions, type ContentBlock, type CostSnapshot, CostTracker, type CostTrackerConfig, DEFAULT_SYSTEM_PROMPT, type EngineConfig, type EngineEvent, type HealthFactorResult, type LLMProvider, type McpCallResult, McpClientManager, McpResponseCache, type McpServerConfig, type McpServerConnection, type McpToolAdapterConfig, type McpToolDescriptor, MemorySessionStore, type Message, NAVI_MCP_CONFIG, NAVI_MCP_URL, NAVI_SERVER_NAME, type NaviRawCoin, type NaviRawHealthFactor, type NaviRawPool, type NaviRawPosition, type NaviRawPositionsResponse, type NaviRawProtocolStats, type NaviRawRewardsResponse, type NaviReadOptions, NaviTools, type PendingAction, type PendingReward, type PendingToolCall, type PermissionLevel, type PermissionResponse, type PositionEntry, type ProtocolStats, type ProviderEvent, QueryEngine, READ_TOOLS, type RatesResult, type SSEEvent, type SavingsResult, type ServerPositionData, type SessionData, type SessionStore, type StopReason, type SuiCoinBalance, type Tool, type ToolChoice, type ToolContext, type ToolDefinition, type ToolJsonSchema, type ToolResult, TxMutex, WRITE_TOOLS, type WalletCoin, adaptAllMcpTools, adaptAllServerTools, adaptMcpTool, balanceCheckTool, borrowTool, buildMcpTools, buildTool, claimRewardsTool, clearPriceCache, compactMessages, defillamaChainTvlTool, defillamaPriceChangeTool, defillamaProtocolFeesTool, defillamaProtocolInfoTool, defillamaSuiProtocolsTool, defillamaTokenPricesTool, defillamaYieldPoolsTool, engineToSSE, estimateTokens, extractMcpText, fetchAvailableRewards, fetchBalance, fetchHealthFactor, fetchPositions, fetchProtocolStats, fetchRates, fetchSavings, fetchTokenPrices, fetchWalletCoins, findTool, getDefaultTools, getMcpManager, getWalletAddress, hasNaviMcp, healthCheckTool, parseMcpJson, parseSSE, payApiTool, ratesInfoTool, registerEngineTools, repayDebtTool, requireAgent, runTools, saveContactTool, saveDepositTool, savingsInfoTool, sendTransferTool, serializeSSE, swapExecuteTool, swapQuoteTool, toolsToDefinitions, transactionHistoryTool, transformBalance, transformHealthFactor, transformPositions, transformRates, transformRewards, transformSavings, validateHistory, voloStakeTool, voloStatsTool, voloUnstakeTool, withdrawTool };
|
package/dist/index.js
CHANGED
|
@@ -1358,6 +1358,30 @@ var voloStatsTool = buildTool({
|
|
|
1358
1358
|
};
|
|
1359
1359
|
}
|
|
1360
1360
|
});
|
|
1361
|
+
var saveContactTool = buildTool({
|
|
1362
|
+
name: "save_contact",
|
|
1363
|
+
description: "Save a contact with a friendly name and Sui address so the user can send to them by name later.",
|
|
1364
|
+
inputSchema: z.object({
|
|
1365
|
+
name: z.string().describe('Friendly name for the contact (e.g. "Alex", "Mom")'),
|
|
1366
|
+
address: z.string().describe("Full Sui address (0x...)")
|
|
1367
|
+
}),
|
|
1368
|
+
jsonSchema: {
|
|
1369
|
+
type: "object",
|
|
1370
|
+
properties: {
|
|
1371
|
+
name: { type: "string", description: "Friendly name for the contact" },
|
|
1372
|
+
address: { type: "string", description: "Full Sui address (0x...)" }
|
|
1373
|
+
},
|
|
1374
|
+
required: ["name", "address"]
|
|
1375
|
+
},
|
|
1376
|
+
isReadOnly: false,
|
|
1377
|
+
permissionLevel: "confirm",
|
|
1378
|
+
async call(input) {
|
|
1379
|
+
return {
|
|
1380
|
+
data: { saved: true, name: input.name, address: input.address },
|
|
1381
|
+
displayText: `Saved contact "${input.name}" (${input.address.slice(0, 8)}\u2026)`
|
|
1382
|
+
};
|
|
1383
|
+
}
|
|
1384
|
+
});
|
|
1361
1385
|
var LLAMA_API = "https://api.llama.fi";
|
|
1362
1386
|
var YIELDS_API = "https://yields.llama.fi";
|
|
1363
1387
|
var COINS_API = "https://coins.llama.fi";
|
|
@@ -1651,7 +1675,8 @@ var WRITE_TOOLS = [
|
|
|
1651
1675
|
payApiTool,
|
|
1652
1676
|
swapExecuteTool,
|
|
1653
1677
|
voloStakeTool,
|
|
1654
|
-
voloUnstakeTool
|
|
1678
|
+
voloUnstakeTool,
|
|
1679
|
+
saveContactTool
|
|
1655
1680
|
];
|
|
1656
1681
|
function getDefaultTools() {
|
|
1657
1682
|
return [...READ_TOOLS, ...WRITE_TOOLS];
|
|
@@ -1851,7 +1876,7 @@ var QueryEngine = class {
|
|
|
1851
1876
|
yield { type: "turn_complete", stopReason: "end_turn" };
|
|
1852
1877
|
return;
|
|
1853
1878
|
}
|
|
1854
|
-
yield* this.agentLoop(null, signal);
|
|
1879
|
+
yield* this.agentLoop(null, signal, false);
|
|
1855
1880
|
}
|
|
1856
1881
|
interrupt() {
|
|
1857
1882
|
this.abortController?.abort();
|
|
@@ -1881,7 +1906,7 @@ var QueryEngine = class {
|
|
|
1881
1906
|
*
|
|
1882
1907
|
* @param freshPrompt - The original user prompt (for corrupt-history retry). Null on resume.
|
|
1883
1908
|
*/
|
|
1884
|
-
async *agentLoop(freshPrompt, signal) {
|
|
1909
|
+
async *agentLoop(freshPrompt, signal, applyToolChoice = true) {
|
|
1885
1910
|
const context = {
|
|
1886
1911
|
agent: this.agent,
|
|
1887
1912
|
mcpManager: this.mcpManager,
|
|
@@ -1926,7 +1951,7 @@ ${summary.join("\n")}`);
|
|
|
1926
1951
|
model: this.model,
|
|
1927
1952
|
maxTokens: this.maxTokens,
|
|
1928
1953
|
temperature: this.temperature,
|
|
1929
|
-
toolChoice: turns === 1 ? this.toolChoice : void 0,
|
|
1954
|
+
toolChoice: applyToolChoice && turns === 1 ? this.toolChoice : void 0,
|
|
1930
1955
|
signal
|
|
1931
1956
|
});
|
|
1932
1957
|
for await (const event of stream) {
|
|
@@ -2156,6 +2181,11 @@ function validateHistory(messages) {
|
|
|
2156
2181
|
}
|
|
2157
2182
|
return merged;
|
|
2158
2183
|
}
|
|
2184
|
+
function resolveTokenSymbol(nameOrType) {
|
|
2185
|
+
if (!nameOrType.includes("::")) return nameOrType;
|
|
2186
|
+
const parts = nameOrType.split("::");
|
|
2187
|
+
return parts[parts.length - 1];
|
|
2188
|
+
}
|
|
2159
2189
|
function describeAction(tool, call) {
|
|
2160
2190
|
const input = call.input;
|
|
2161
2191
|
switch (tool.name) {
|
|
@@ -2181,8 +2211,8 @@ function describeAction(tool, call) {
|
|
|
2181
2211
|
return `Pay for API call to ${url} (~$${cost})`;
|
|
2182
2212
|
}
|
|
2183
2213
|
case "swap_execute": {
|
|
2184
|
-
const from = input.from ?? "?";
|
|
2185
|
-
const to = input.to ?? "?";
|
|
2214
|
+
const from = resolveTokenSymbol(String(input.from ?? "?"));
|
|
2215
|
+
const to = resolveTokenSymbol(String(input.to ?? "?"));
|
|
2186
2216
|
const amt = input.amount ?? "?";
|
|
2187
2217
|
const slippagePct = (input.slippage ?? 0.01) * 100;
|
|
2188
2218
|
return `Swap ${amt} ${from} for ${to} (${slippagePct}% max slippage)`;
|
|
@@ -2917,6 +2947,6 @@ function sanitizeAnthropicMessages(messages) {
|
|
|
2917
2947
|
return merged;
|
|
2918
2948
|
}
|
|
2919
2949
|
|
|
2920
|
-
export { AnthropicProvider, CostTracker, DEFAULT_SYSTEM_PROMPT, McpClientManager, McpResponseCache, MemorySessionStore, NAVI_MCP_CONFIG, NAVI_MCP_URL, NAVI_SERVER_NAME, NaviTools, QueryEngine, READ_TOOLS, TxMutex, WRITE_TOOLS, adaptAllMcpTools, adaptAllServerTools, adaptMcpTool, balanceCheckTool, borrowTool, buildMcpTools, buildTool, claimRewardsTool, clearPriceCache, compactMessages, defillamaChainTvlTool, defillamaPriceChangeTool, defillamaProtocolFeesTool, defillamaProtocolInfoTool, defillamaSuiProtocolsTool, defillamaTokenPricesTool, defillamaYieldPoolsTool, engineToSSE, estimateTokens, extractMcpText, fetchAvailableRewards, fetchBalance, fetchHealthFactor, fetchPositions, fetchProtocolStats, fetchRates, fetchSavings, fetchTokenPrices, fetchWalletCoins, findTool, getDefaultTools, getMcpManager, getWalletAddress, hasNaviMcp, healthCheckTool, parseMcpJson, parseSSE, payApiTool, ratesInfoTool, registerEngineTools, repayDebtTool, requireAgent, runTools, saveDepositTool, savingsInfoTool, sendTransferTool, serializeSSE, swapExecuteTool, swapQuoteTool, toolsToDefinitions, transactionHistoryTool, transformBalance, transformHealthFactor, transformPositions, transformRates, transformRewards, transformSavings, validateHistory, voloStakeTool, voloStatsTool, voloUnstakeTool, withdrawTool };
|
|
2950
|
+
export { AnthropicProvider, CostTracker, DEFAULT_SYSTEM_PROMPT, McpClientManager, McpResponseCache, MemorySessionStore, NAVI_MCP_CONFIG, NAVI_MCP_URL, NAVI_SERVER_NAME, NaviTools, QueryEngine, READ_TOOLS, TxMutex, WRITE_TOOLS, adaptAllMcpTools, adaptAllServerTools, adaptMcpTool, balanceCheckTool, borrowTool, buildMcpTools, buildTool, claimRewardsTool, clearPriceCache, compactMessages, defillamaChainTvlTool, defillamaPriceChangeTool, defillamaProtocolFeesTool, defillamaProtocolInfoTool, defillamaSuiProtocolsTool, defillamaTokenPricesTool, defillamaYieldPoolsTool, engineToSSE, estimateTokens, extractMcpText, fetchAvailableRewards, fetchBalance, fetchHealthFactor, fetchPositions, fetchProtocolStats, fetchRates, fetchSavings, fetchTokenPrices, fetchWalletCoins, findTool, getDefaultTools, getMcpManager, getWalletAddress, hasNaviMcp, healthCheckTool, parseMcpJson, parseSSE, payApiTool, ratesInfoTool, registerEngineTools, repayDebtTool, requireAgent, runTools, saveContactTool, saveDepositTool, savingsInfoTool, sendTransferTool, serializeSSE, swapExecuteTool, swapQuoteTool, toolsToDefinitions, transactionHistoryTool, transformBalance, transformHealthFactor, transformPositions, transformRates, transformRewards, transformSavings, validateHistory, voloStakeTool, voloStatsTool, voloUnstakeTool, withdrawTool };
|
|
2921
2951
|
//# sourceMappingURL=index.js.map
|
|
2922
2952
|
//# sourceMappingURL=index.js.map
|