@balchemyai/agent-sdk 0.1.0 → 0.1.2

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/CHANGELOG.md ADDED
@@ -0,0 +1,48 @@
1
+ # Changelog
2
+
3
+ All notable changes to `@balchemy/agent-sdk` are documented here.
4
+
5
+ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
6
+ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ---
9
+
10
+ ## [0.1.0] — 2026-03-15
11
+
12
+ ### Added
13
+
14
+ - `BalchemyAgentSdk` — main SDK class with SIWE and Identity onboarding flows
15
+ - `requestSiweNonce()` — fetch SIWS nonce + message
16
+ - `onboardWithSiwe()` — wallet-signed onboarding
17
+ - `onboardWithIdentity()` — walletless provider-token onboarding
18
+ - `revokeIdentityToken()` — revoke a provider token by JTI
19
+ - `getIdentityTokenRevokeStatus()` — check revocation status
20
+ - `connectMcp()` — instantiate a typed MCP client
21
+ - `BalchemyMcpClient` — JSON-RPC MCP client with automatic retry and SSE envelope parsing
22
+ - Typed convenience methods: `askBot`, `tradeCommand`, `agentExecute`, `agentResearch`, `agentPortfolio`, `agentStatus`, `agentConfig`
23
+ - EVM helpers: `evmQuote`, `evmSwap`
24
+ - `requestSeed()` — disabled stub (throws `AgentSdkError` deterministically)
25
+ - `listTools()`, `callTool()`, `ping()`
26
+ - `connectMcp()` — factory shortcut for `BalchemyMcpClient`
27
+ - `getToolText()`, `parseToolJson<T>()`, `isToolError()` — tool response helpers
28
+ - `SseEventStream` — async-iterable + callback-based SSE consumer with auto-reconnect
29
+ - `TokenStore` — token lifecycle manager with pluggable refresh callback
30
+ - `AgentSdkError` — typed error class with `code`, `status`, `message`, `details`
31
+ - Full TypeScript type exports:
32
+ - `AgentSdkConfig`, `AgentOnboardingMode`, `AgentScope`
33
+ - `IdentityAccess`, `OnboardingResponse`, `OnboardWithSiweInput`, `OnboardWithIdentityInput`
34
+ - `SiweNonceResponse`, `RequestSiweNonceInput`
35
+ - `RevokeIdentityTokenInput`, `IdentityTokenRevokeStatusInput`, `IdentityTokenRevokeResponse`
36
+ - `McpTool`, `McpListToolsResponse`, `McpCallToolResponse`
37
+ - `StoredToken`, `TokenRefreshFn`, `TokenStoreOptions`
38
+ - `SseEvent`, `SseStreamOptions`
39
+ - `AgentSdkErrorCode`
40
+ - `AskBotArgs`, `TradeCommandArgs`, `AgentExecuteArgs`, `AgentResearchArgs`, `AgentConfigArgs`, `EvmQuoteArgs`, `EvmSwapArgs`
41
+ - `exports` field in `package.json` for ESM/CJS dual resolution and TypeScript `moduleResolution: bundler` compatibility
42
+ - Retry utility with configurable exponential backoff (`withRetry`, `RetryOptions`)
43
+
44
+ ### Notes
45
+
46
+ - Default MCP endpoint exposes 7 tools; full 100-tool catalog requires `MCP_EXPOSE_GRANULAR_TOOLS=true` on the platform
47
+ - `agent_seed_request` is permanently disabled; `requestSeed()` always throws
48
+ - Minimum Node.js version: 18.0.0
package/README.md CHANGED
@@ -1,11 +1,11 @@
1
- # @balchemyai/agent-sdk
1
+ # @balchemy/agent-sdk
2
2
 
3
3
  TypeScript SDK for Balchemy external AI agents. Handles onboarding (SIWE wallet-based or walletless Identity flow), MCP tool access, token lifecycle management, and real-time SSE event streaming.
4
4
 
5
5
  ## Installation
6
6
 
7
7
  ```sh
8
- npm install @balchemyai/agent-sdk
8
+ npm install @balchemy/agent-sdk
9
9
  ```
10
10
 
11
11
  ## Auth Paths
@@ -15,7 +15,7 @@ npm install @balchemyai/agent-sdk
15
15
  Use this when your agent controls a Solana or EVM wallet and can sign messages.
16
16
 
17
17
  ```ts
18
- import { BalchemyAgentSdk } from "@balchemyai/agent-sdk";
18
+ import { BalchemyAgentSdk } from "@balchemy/agent-sdk";
19
19
 
20
20
  const sdk = new BalchemyAgentSdk({
21
21
  apiBaseUrl: "https://api.balchemy.ai/api",
@@ -52,7 +52,7 @@ const mcp = sdk.connectMcp({
52
52
  Use this when your agent has an HMAC-signed identity token (for balchemy native) or ES256 JWT (for external providers) from a provider registered with Balchemy.
53
53
 
54
54
  ```ts
55
- import { BalchemyAgentSdk } from "@balchemyai/agent-sdk";
55
+ import { BalchemyAgentSdk } from "@balchemy/agent-sdk";
56
56
 
57
57
  const sdk = new BalchemyAgentSdk({
58
58
  apiBaseUrl: "https://api.balchemy.ai/api",
@@ -124,8 +124,8 @@ Pass `scope` during onboarding to receive an MCP key with the appropriate permis
124
124
  All SDK methods throw `AgentSdkError` on failure.
125
125
 
126
126
  ```ts
127
- import { AgentSdkError } from "@balchemyai/agent-sdk";
128
- import type { AgentSdkErrorCode } from "@balchemyai/agent-sdk";
127
+ import { AgentSdkError } from "@balchemy/agent-sdk";
128
+ import type { AgentSdkErrorCode } from "@balchemy/agent-sdk";
129
129
 
130
130
  try {
131
131
  const result = await mcp.agentExecute({ instruction: "..." });
@@ -142,7 +142,7 @@ try {
142
142
  ## Tool Response Helpers
143
143
 
144
144
  ```ts
145
- import { getToolText, parseToolJson, isToolError } from "@balchemyai/agent-sdk";
145
+ import { getToolText, parseToolJson, isToolError } from "@balchemy/agent-sdk";
146
146
 
147
147
  const response = await mcp.agentPortfolio();
148
148
 
@@ -157,7 +157,7 @@ if (isToolError(response)) {
157
157
  ## Token Management
158
158
 
159
159
  ```ts
160
- import { TokenStore } from "@balchemyai/agent-sdk";
160
+ import { TokenStore } from "@balchemy/agent-sdk";
161
161
 
162
162
  const store = new TokenStore({
163
163
  // Called when the stored token nears expiry — return a fresh OnboardingResponse
@@ -175,7 +175,7 @@ const token = await store.get(); // auto-refreshes if expiry < threshold
175
175
  The `OnboardingResponse` includes an `identityAccess` field when the platform issues a short-lived access token alongside the MCP key.
176
176
 
177
177
  ```ts
178
- import type { IdentityAccess } from "@balchemyai/agent-sdk";
178
+ import type { IdentityAccess } from "@balchemy/agent-sdk";
179
179
 
180
180
  const access: IdentityAccess | undefined = response.identityAccess;
181
181
  if (access) {
@@ -187,8 +187,8 @@ if (access) {
187
187
  ## SSE Event Streaming
188
188
 
189
189
  ```ts
190
- import { SseEventStream } from "@balchemyai/agent-sdk";
191
- import type { SseEvent } from "@balchemyai/agent-sdk";
190
+ import { SseEventStream } from "@balchemy/agent-sdk";
191
+ import type { SseEvent } from "@balchemy/agent-sdk";
192
192
 
193
193
  const stream = new SseEventStream(
194
194
  "https://api.balchemy.ai/api/events",
@@ -251,7 +251,7 @@ To enable agent onboarding, the following environment variables must be configur
251
251
 
252
252
  1. Install the SDK:
253
253
  ```sh
254
- npm install @balchemyai/agent-sdk
254
+ npm install @balchemy/agent-sdk
255
255
  ```
256
256
 
257
257
  2. Create an MCP API key for your bot via the Hub UI: `Hub > Your Bot > API Keys > Create Key`.
@@ -21,6 +21,12 @@ export declare class AgentLoop {
21
21
  private seenTraceIds;
22
22
  private portfolioCache;
23
23
  private rulesCache;
24
+ /** Client-side behavior rule limits for pre-check enforcement. */
25
+ private readonly ruleLimits;
26
+ /** Trades executed in the current clock-hour (reset each hour). */
27
+ private tradesThisHour;
28
+ /** Timestamp (ms) of the hour boundary when tradesThisHour was last reset. */
29
+ private currentHourStart;
24
30
  /** publicId extracted from the MCP endpoint path (last path segment). */
25
31
  private readonly publicId;
26
32
  constructor(config: AgentLoopConfig);
@@ -49,6 +55,11 @@ export declare class AgentLoop {
49
55
  * so decisions still proceed without rule context.
50
56
  */
51
57
  private fetchBehaviorRules;
58
+ /**
59
+ * Reset the hourly trade counter when the clock rolls to a new hour.
60
+ * Uses truncated-hour comparison so the counter resets on exact hour boundaries.
61
+ */
62
+ private resetHourlyCounterIfNeeded;
52
63
  private createLlmAdapter;
53
64
  }
54
65
  //# sourceMappingURL=agent-loop.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../src/agent-loop/agent-loop.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EAMZ,MAAM,SAAS,CAAC;AAejB,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAC7C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAoB;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,cAAc,CAA6B;IAEnD,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,YAAY,CAAqB;IAEzC,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,UAAU,CAA2B;IAE7C,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,MAAM,EAAE,eAAe;IAuC7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0CtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B,SAAS,IAAI,WAAW;IAkBxB;;;;;OAKG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBnD,OAAO,CAAC,WAAW;YAsCL,YAAY;IAmF1B;;;;OAIG;YACW,cAAc;IAmB5B;;;;;OAKG;YACW,kBAAkB;IAmBhC,OAAO,CAAC,gBAAgB;CAuBzB"}
1
+ {"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../src/agent-loop/agent-loop.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EAMZ,MAAM,SAAS,CAAC;AAejB,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAC7C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAoB;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,cAAc,CAA6B;IAEnD,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,YAAY,CAAqB;IAEzC,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,UAAU,CAA2B;IAE7C,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAEhD,mEAAmE;IACnE,OAAO,CAAC,cAAc,CAAK;IAC3B,8EAA8E;IAC9E,OAAO,CAAC,gBAAgB,CAAK;IAE7B,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,MAAM,EAAE,eAAe;IA0C7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0CtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B,SAAS,IAAI,WAAW;IAkBxB;;;;;OAKG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBnD,OAAO,CAAC,WAAW;YAsCL,YAAY;IAqG1B;;;;OAIG;YACW,cAAc;IAmB5B;;;;;OAKG;YACW,kBAAkB;IAmBhC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAQlC,OAAO,CAAC,gBAAgB;CAuBzB"}
@@ -10,6 +10,7 @@ const openai_1 = require("./llm-adapters/openai");
10
10
  const anthropic_1 = require("./llm-adapters/anthropic");
11
11
  const model_router_1 = require("./model-router");
12
12
  const telemetry_reporter_1 = require("./telemetry-reporter");
13
+ const rule_checker_1 = require("./rule-checker");
13
14
  const PORTFOLIO_TTL_MS = 30_000; // 30 seconds
14
15
  const RULES_TTL_MS = 5 * 60_000; // 5 minutes
15
16
  class AgentLoop {
@@ -34,6 +35,12 @@ class AgentLoop {
34
35
  seenTraceIds = new Set();
35
36
  portfolioCache = null;
36
37
  rulesCache = null;
38
+ /** Client-side behavior rule limits for pre-check enforcement. */
39
+ ruleLimits;
40
+ /** Trades executed in the current clock-hour (reset each hour). */
41
+ tradesThisHour = 0;
42
+ /** Timestamp (ms) of the hour boundary when tradesThisHour was last reset. */
43
+ currentHourStart = 0;
37
44
  /** publicId extracted from the MCP endpoint path (last path segment). */
38
45
  publicId;
39
46
  constructor(config) {
@@ -64,6 +71,8 @@ class AgentLoop {
64
71
  else {
65
72
  this.modelRouter = null;
66
73
  }
74
+ // Extract client-side rule limits from behaviorRules config
75
+ this.ruleLimits = extractRuleLimits(config.behaviorRules);
67
76
  // Derive the telemetry endpoint from the MCP endpoint:
68
77
  // https://api.balchemy.ai/mcp/abc123 → https://api.balchemy.ai/api/agent-telemetry/abc123
69
78
  const telemetryEndpoint = config.mcpEndpoint.replace(/\/mcp\//, '/api/agent-telemetry/');
@@ -118,7 +127,7 @@ class AgentLoop {
118
127
  eventsReceived: this.eventsReceived,
119
128
  decisionsExecuted: this.decisionsExecuted,
120
129
  tradesExecuted: this.tradesExecuted,
121
- llmCallsToday: 0,
130
+ llmCallsToday: this.costTracker.getCallCount(),
122
131
  llmCostToday: this.costTracker.getTodaySpend(),
123
132
  maxDailyLlmCost: this.config.maxDailyLlmCost ?? 5,
124
133
  consecutiveLlmFailures: this.decisionHandler.getConsecutiveFailures(),
@@ -239,14 +248,30 @@ class AgentLoop {
239
248
  confidence: decision.confidence,
240
249
  reasoning: decision.reasoning,
241
250
  });
242
- // Execute via MCP
251
+ // Execute via MCP (with client-side rule pre-check)
243
252
  if (decision.action === 'buy' || decision.action === 'sell') {
253
+ // --- Client-side BehaviorRule pre-check ---
254
+ const tradeAmount = parseFloat(decision.amount ?? '0') || 0;
255
+ this.resetHourlyCounterIfNeeded();
256
+ const ruleCheck = (0, rule_checker_1.checkAllRules)(tradeAmount, this.tradesThisHour, this.ruleLimits);
257
+ if (!ruleCheck.allowed) {
258
+ // Block the trade: convert to "hold", notify via onError, skip MCP call
259
+ this.config.onError?.(new Error(`[rule-checker] Trade blocked: ${ruleCheck.reason}`));
260
+ decision.ruleCorrection = {
261
+ original: decision.action,
262
+ corrected: 'hold',
263
+ reason: ruleCheck.reason ?? 'behavior rule violation',
264
+ };
265
+ decision.action = 'hold';
266
+ this.config.onDecision?.(decision);
267
+ return;
268
+ }
269
+ const tradeMessage = `${decision.action} ${decision.amount ?? ''} SOL ${decision.token ?? ''}`.trim();
244
270
  const tradeResponse = await this.mcp.callTool('trade_command', {
245
- intent: decision.action,
246
- token: decision.token,
247
- amount: decision.amount,
271
+ message: tradeMessage,
248
272
  });
249
273
  this.tradesExecuted++;
274
+ this.tradesThisHour++;
250
275
  this.lastTradeAt = Date.now();
251
276
  // Fire trade result callback
252
277
  const resultText = tradeResponse.content?.find((c) => c.type === 'text')?.text ?? '';
@@ -309,6 +334,17 @@ class AgentLoop {
309
334
  return '';
310
335
  }
311
336
  }
337
+ /**
338
+ * Reset the hourly trade counter when the clock rolls to a new hour.
339
+ * Uses truncated-hour comparison so the counter resets on exact hour boundaries.
340
+ */
341
+ resetHourlyCounterIfNeeded() {
342
+ const nowHour = Math.floor(Date.now() / 3_600_000) * 3_600_000;
343
+ if (nowHour !== this.currentHourStart) {
344
+ this.tradesThisHour = 0;
345
+ this.currentHourStart = nowHour;
346
+ }
347
+ }
312
348
  createLlmAdapter() {
313
349
  switch (this.config.llmProvider) {
314
350
  case 'anthropic':
@@ -325,4 +361,20 @@ class AgentLoop {
325
361
  }
326
362
  }
327
363
  exports.AgentLoop = AgentLoop;
364
+ /**
365
+ * Extract the two hard-limit fields from the untyped behaviorRules config bag.
366
+ * Returns an empty object (no limits enforced) if the config is absent or malformed.
367
+ */
368
+ function extractRuleLimits(rules) {
369
+ if (!rules)
370
+ return {};
371
+ const limits = {};
372
+ if (typeof rules['maxTradeSol'] === 'number' && rules['maxTradeSol'] > 0) {
373
+ limits.maxTradeSol = rules['maxTradeSol'];
374
+ }
375
+ if (typeof rules['maxTradesPerHour'] === 'number' && rules['maxTradesPerHour'] > 0) {
376
+ limits.maxTradesPerHour = rules['maxTradesPerHour'];
377
+ }
378
+ return limits;
379
+ }
328
380
  //# sourceMappingURL=agent-loop.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-loop.js","sourceRoot":"","sources":["../../src/agent-loop/agent-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-loop.js","sourceRoot":"","sources":["../../src/agent-loop/agent-loop.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,12 @@ export interface LlmCostTrackerConfig {
4
4
  export declare class LlmCostTracker {
5
5
  private readonly maxDailyUsd;
6
6
  private todaySpendUsd;
7
+ private todayCallCount;
7
8
  private currentDay;
8
9
  constructor(config: LlmCostTrackerConfig);
9
10
  canCallLlm(): boolean;
10
11
  trackCall(inputTokens: number, outputTokens: number, model: string): void;
12
+ getCallCount(): number;
11
13
  getTodaySpend(): number;
12
14
  getRemainingBudget(): number;
13
15
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"llm-cost-tracker.d.ts","sourceRoot":"","sources":["../../src/agent-loop/llm-cost-tracker.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,EAAE,oBAAoB;IAKxC,UAAU,IAAI,OAAO;IAKrB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IASzE,aAAa,IAAI,MAAM;IAKvB,kBAAkB,IAAI,MAAM;IAK5B;;;OAGG;IACH,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAQjF,aAAa,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI;IAQ9B,OAAO,CAAC,SAAS;CAGlB"}
1
+ {"version":3,"file":"llm-cost-tracker.d.ts","sourceRoot":"","sources":["../../src/agent-loop/llm-cost-tracker.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,EAAE,oBAAoB;IAKxC,UAAU,IAAI,OAAO;IAKrB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAUzE,YAAY,IAAI,MAAM;IAKtB,aAAa,IAAI,MAAM;IAKvB,kBAAkB,IAAI,MAAM;IAK5B;;;OAGG;IACH,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAQjF,aAAa,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI;IAS9B,OAAO,CAAC,SAAS;CAGlB"}
@@ -15,6 +15,7 @@ const FALLBACK_PRICING = { input: 1.0, output: 5.0 };
15
15
  class LlmCostTracker {
16
16
  maxDailyUsd;
17
17
  todaySpendUsd = 0;
18
+ todayCallCount = 0;
18
19
  currentDay;
19
20
  constructor(config) {
20
21
  this.maxDailyUsd = config.maxDailyUsd;
@@ -30,6 +31,11 @@ class LlmCostTracker {
30
31
  const cost = (inputTokens / 1_000_000) * pricing.input +
31
32
  (outputTokens / 1_000_000) * pricing.output;
32
33
  this.todaySpendUsd += cost;
34
+ this.todayCallCount += 1;
35
+ }
36
+ getCallCount() {
37
+ this.resetIfNewDay(new Date());
38
+ return this.todayCallCount;
33
39
  }
34
40
  getTodaySpend() {
35
41
  this.resetIfNewDay(new Date());
@@ -52,6 +58,7 @@ class LlmCostTracker {
52
58
  const dayKey = this.getDayKey(now);
53
59
  if (dayKey !== this.currentDay) {
54
60
  this.todaySpendUsd = 0;
61
+ this.todayCallCount = 0;
55
62
  this.currentDay = dayKey;
56
63
  }
57
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"llm-cost-tracker.js","sourceRoot":"","sources":["../../src/agent-loop/llm-cost-tracker.ts"],"names":[],"mappings":";;;AAAA,iEAAiE;AACjE,MAAM,aAAa,GAAsD;IACvE,kBAAkB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACjD,iBAAiB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IAC/C,eAAe,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IAC9C,cAAc,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;IAC5C,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IAC3C,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IAC5C,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;CACxC,CAAC;AAEF,MAAM,gBAAgB,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAMrD,MAAa,cAAc;IACR,WAAW,CAAS;IAC7B,aAAa,GAAG,CAAC,CAAC;IAClB,UAAU,CAAS;IAE3B,YAAY,MAA4B;QACtC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC;IAC/C,CAAC;IAED,SAAS,CAAC,WAAmB,EAAE,YAAoB,EAAE,KAAa;QAChE,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC;QACzD,MAAM,IAAI,GACR,CAAC,WAAW,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,KAAK;YACzC,CAAC,YAAY,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9C,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;IAC7B,CAAC;IAED,aAAa;QACX,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5D,CAAC;IAED;;;OAGG;IACH,eAAe,CAAC,WAAmB,EAAE,YAAoB,EAAE,KAAa;QACtE,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC;QACzD,OAAO,CACL,CAAC,WAAW,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,KAAK;YACzC,CAAC,YAAY,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,MAAM,CAC5C,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,GAAS;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;YAC/B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QAC3B,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,IAAU;QAC1B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC;CACF;AAzDD,wCAyDC"}
1
+ {"version":3,"file":"llm-cost-tracker.js","sourceRoot":"","sources":["../../src/agent-loop/llm-cost-tracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Client-side BehaviorRule pre-check.
3
+ *
4
+ * Enforces hard limits BEFORE a trade_command reaches the backend.
5
+ * The backend has its own post-check (BehaviorRuleEngine); this is an
6
+ * early-exit guard that saves an MCP round-trip and provides immediate
7
+ * developer feedback via the onError callback.
8
+ *
9
+ * Only the two most critical limits are checked here:
10
+ * - maxTradeSol — per-trade SOL amount ceiling
11
+ * - maxTradesPerHour — hourly trade rate cap
12
+ *
13
+ * maxTradeUsd is intentionally omitted: the SDK has no SOL price oracle,
14
+ * and the backend already enforces USD limits server-side.
15
+ */
16
+ export interface BehaviorRuleLimits {
17
+ maxTradeSol?: number;
18
+ maxTradesPerHour?: number;
19
+ }
20
+ export interface RuleCheckResult {
21
+ allowed: boolean;
22
+ reason?: string;
23
+ }
24
+ /**
25
+ * Validate that a single trade amount does not exceed the per-trade SOL ceiling.
26
+ *
27
+ * @param amount - Trade amount in SOL (parsed from LLM decision).
28
+ * @param rules - Active behavior rule limits.
29
+ * @returns `{ allowed: true }` if within limit, or `{ allowed: false, reason }` if blocked.
30
+ */
31
+ export declare function checkTradeAmount(amount: number, rules: BehaviorRuleLimits): RuleCheckResult;
32
+ /**
33
+ * Validate that the hourly trade count has not been exceeded.
34
+ *
35
+ * @param tradesThisHour - Number of trades already executed in the current hour.
36
+ * @param rules - Active behavior rule limits.
37
+ * @returns `{ allowed: true }` if within limit, or `{ allowed: false, reason }` if blocked.
38
+ */
39
+ export declare function checkTradeRate(tradesThisHour: number, rules: BehaviorRuleLimits): RuleCheckResult;
40
+ /**
41
+ * Run all client-side rule checks against a pending trade decision.
42
+ * Returns the first failing check, or `{ allowed: true }` if all pass.
43
+ */
44
+ export declare function checkAllRules(amount: number, tradesThisHour: number, rules: BehaviorRuleLimits): RuleCheckResult;
45
+ //# sourceMappingURL=rule-checker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-checker.d.ts","sourceRoot":"","sources":["../../src/agent-loop/rule-checker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,kBAAkB,GACxB,eAAe,CAWjB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,kBAAkB,GACxB,eAAe,CAWjB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,kBAAkB,GACxB,eAAe,CAQjB"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ /**
3
+ * Client-side BehaviorRule pre-check.
4
+ *
5
+ * Enforces hard limits BEFORE a trade_command reaches the backend.
6
+ * The backend has its own post-check (BehaviorRuleEngine); this is an
7
+ * early-exit guard that saves an MCP round-trip and provides immediate
8
+ * developer feedback via the onError callback.
9
+ *
10
+ * Only the two most critical limits are checked here:
11
+ * - maxTradeSol — per-trade SOL amount ceiling
12
+ * - maxTradesPerHour — hourly trade rate cap
13
+ *
14
+ * maxTradeUsd is intentionally omitted: the SDK has no SOL price oracle,
15
+ * and the backend already enforces USD limits server-side.
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.checkTradeAmount = checkTradeAmount;
19
+ exports.checkTradeRate = checkTradeRate;
20
+ exports.checkAllRules = checkAllRules;
21
+ /**
22
+ * Validate that a single trade amount does not exceed the per-trade SOL ceiling.
23
+ *
24
+ * @param amount - Trade amount in SOL (parsed from LLM decision).
25
+ * @param rules - Active behavior rule limits.
26
+ * @returns `{ allowed: true }` if within limit, or `{ allowed: false, reason }` if blocked.
27
+ */
28
+ function checkTradeAmount(amount, rules) {
29
+ if (rules.maxTradeSol == null || rules.maxTradeSol <= 0) {
30
+ return { allowed: true };
31
+ }
32
+ if (amount > rules.maxTradeSol) {
33
+ return {
34
+ allowed: false,
35
+ reason: `Trade amount ${amount} SOL exceeds maxTradeSol limit of ${rules.maxTradeSol} SOL`,
36
+ };
37
+ }
38
+ return { allowed: true };
39
+ }
40
+ /**
41
+ * Validate that the hourly trade count has not been exceeded.
42
+ *
43
+ * @param tradesThisHour - Number of trades already executed in the current hour.
44
+ * @param rules - Active behavior rule limits.
45
+ * @returns `{ allowed: true }` if within limit, or `{ allowed: false, reason }` if blocked.
46
+ */
47
+ function checkTradeRate(tradesThisHour, rules) {
48
+ if (rules.maxTradesPerHour == null || rules.maxTradesPerHour <= 0) {
49
+ return { allowed: true };
50
+ }
51
+ if (tradesThisHour >= rules.maxTradesPerHour) {
52
+ return {
53
+ allowed: false,
54
+ reason: `Hourly trade limit reached: ${tradesThisHour}/${rules.maxTradesPerHour} trades this hour`,
55
+ };
56
+ }
57
+ return { allowed: true };
58
+ }
59
+ /**
60
+ * Run all client-side rule checks against a pending trade decision.
61
+ * Returns the first failing check, or `{ allowed: true }` if all pass.
62
+ */
63
+ function checkAllRules(amount, tradesThisHour, rules) {
64
+ const amountCheck = checkTradeAmount(amount, rules);
65
+ if (!amountCheck.allowed)
66
+ return amountCheck;
67
+ const rateCheck = checkTradeRate(tradesThisHour, rules);
68
+ if (!rateCheck.allowed)
69
+ return rateCheck;
70
+ return { allowed: true };
71
+ }
72
+ //# sourceMappingURL=rule-checker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-checker.js","sourceRoot":"","sources":["../../src/agent-loop/rule-checker.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;AAmBH,4CAcC;AASD,wCAcC;AAMD,sCAYC;AA9DD;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAC9B,MAAc,EACd,KAAyB;IAEzB,IAAI,KAAK,CAAC,WAAW,IAAI,IAAI,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC;QACxD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IACD,IAAI,MAAM,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAC/B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,gBAAgB,MAAM,qCAAqC,KAAK,CAAC,WAAW,MAAM;SAC3F,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,cAAc,CAC5B,cAAsB,EACtB,KAAyB;IAEzB,IAAI,KAAK,CAAC,gBAAgB,IAAI,IAAI,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,EAAE,CAAC;QAClE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IACD,IAAI,cAAc,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC7C,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,+BAA+B,cAAc,IAAI,KAAK,CAAC,gBAAgB,mBAAmB;SACnG,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAC3B,MAAc,EACd,cAAsB,EACtB,KAAyB;IAEzB,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpD,IAAI,CAAC,WAAW,CAAC,OAAO;QAAE,OAAO,WAAW,CAAC;IAE7C,MAAM,SAAS,GAAG,cAAc,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACxD,IAAI,CAAC,SAAS,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAEzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC"}
@@ -116,6 +116,11 @@ export interface AgentStatus {
116
116
  sseConnected: boolean;
117
117
  webhookActive: boolean;
118
118
  }
119
+ /** Hard limits extracted from behaviorRules for client-side pre-check. */
120
+ export interface BehaviorRuleLimits {
121
+ maxTradeSol?: number;
122
+ maxTradesPerHour?: number;
123
+ }
119
124
  export declare const DEFAULT_AGENT_LOOP_CONFIG: {
120
125
  readonly maxDailyLlmCost: 5;
121
126
  readonly llmTimeoutMs: 10000;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent-loop/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE5D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACvE,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,kBAAkB;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mHAAmH;IACnH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uDAAuD;IACvD,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,6CAA6C;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0FAA0F;IAC1F,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC;IAC1B,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,+BAA+B;IAC/B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACtC,8BAA8B;IAC9B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IAC/C,sBAAsB;IACtB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,+BAA+B;IAC/B,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IAC/C,4DAA4D;IAC5D,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACzG;AAED,2EAA2E;AAC3E,MAAM,WAAW,sBAAsB;IACrC,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,KAAK,GAAG,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,MAAM,eAAe,GACvB,UAAU,GACV,SAAS,GACT,QAAQ,GACR,kBAAkB,GAClB,aAAa,GACb,SAAS,GACT,OAAO,CAAC;AAEZ,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,yBAAyB;;;;;CAK5B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent-loop/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agent-loop/types.ts"],"names":[],"mappings":";;;AAkIa,QAAA,yBAAyB,GAAG;IACvC,eAAe,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM;IACpB,sBAAsB,EAAE,CAAC;IACzB,WAAW,EAAE,CAAC;CACN,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agent-loop/types.ts"],"names":[],"mappings":";;;AAwIa,QAAA,yBAAyB,GAAG;IACvC,eAAe,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM;IACpB,sBAAsB,EAAE,CAAC;IACzB,WAAW,EAAE,CAAC;CACN,CAAC"}
package/dist/index.d.ts CHANGED
@@ -15,7 +15,9 @@ export { DecisionHandler } from './agent-loop/decision-handler';
15
15
  export { WebhookReceiver } from './agent-loop/webhook-receiver';
16
16
  export { OpenAiAdapter } from './agent-loop/llm-adapters/openai';
17
17
  export { AnthropicAdapter } from './agent-loop/llm-adapters/anthropic';
18
- export type { AgentLoopConfig, AgentStatus, AgentLoopStatus, AgentEvent, AgentDecision, LlmAdapter, LlmMessage, LlmResponse, LlmProvider, } from './agent-loop/types';
18
+ export { checkTradeAmount, checkTradeRate, checkAllRules } from './agent-loop/rule-checker';
19
+ export type { RuleCheckResult } from './agent-loop/rule-checker';
20
+ export type { AgentLoopConfig, AgentStatus, AgentLoopStatus, AgentEvent, AgentDecision, BehaviorRuleLimits, LlmAdapter, LlmMessage, LlmResponse, LlmProvider, } from './agent-loop/types';
19
21
  export declare class BalchemyAgentSdk {
20
22
  private readonly onboarding;
21
23
  constructor(config: AgentSdkConfig);
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAc,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EACV,cAAc,EACd,2BAA2B,EAC3B,8BAA8B,EAC9B,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,8BAA8B,EAC9B,2BAA2B,EAC3B,qBAAqB,EACrB,iBAAiB,EACjB,OAAO,EACP,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1G,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAC/E,YAAY,EACV,WAAW,EACX,cAAc,EACd,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,YAAY,EACV,eAAe,EACf,WAAW,EACX,eAAe,EACf,UAAU,EACV,aAAa,EACb,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;gBAEvC,MAAM,EAAE,cAAc;IAU5B,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAI1E,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIzE,mBAAmB,CACvB,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,kBAAkB,CAAC;IAIxB,mBAAmB,CACvB,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,2BAA2B,CAAC;IAIjC,4BAA4B,CAChC,KAAK,EAAE,8BAA8B,GACpC,OAAO,CAAC,2BAA2B,CAAC;IAIvC,UAAU,CAAC,MAAM,EAAE;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;KACxB,GAAG,iBAAiB;CAGtB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAc,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EACV,cAAc,EACd,2BAA2B,EAC3B,8BAA8B,EAC9B,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,8BAA8B,EAC9B,2BAA2B,EAC3B,qBAAqB,EACrB,iBAAiB,EACjB,OAAO,EACP,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1G,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAC/E,YAAY,EACV,WAAW,EACX,cAAc,EACd,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC5F,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EACV,eAAe,EACf,WAAW,EACX,eAAe,EACf,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;gBAEvC,MAAM,EAAE,cAAc;IAU5B,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAI1E,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIzE,mBAAmB,CACvB,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,kBAAkB,CAAC;IAIxB,mBAAmB,CACvB,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,2BAA2B,CAAC;IAIjC,4BAA4B,CAChC,KAAK,EAAE,8BAA8B,GACpC,OAAO,CAAC,2BAA2B,CAAC;IAIvC,UAAU,CAAC,MAAM,EAAE;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;KACxB,GAAG,iBAAiB;CAGtB"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BalchemyAgentSdk = exports.AnthropicAdapter = exports.OpenAiAdapter = exports.WebhookReceiver = exports.DecisionHandler = exports.LlmCostTracker = exports.AgentLoop = exports.TokenStore = exports.SseEventStream = exports.isToolError = exports.parseToolJson = exports.getToolText = exports.connectMcp = exports.BalchemyMcpClient = exports.AgentSdkError = void 0;
3
+ exports.BalchemyAgentSdk = exports.checkAllRules = exports.checkTradeRate = exports.checkTradeAmount = exports.AnthropicAdapter = exports.OpenAiAdapter = exports.WebhookReceiver = exports.DecisionHandler = exports.LlmCostTracker = exports.AgentLoop = exports.TokenStore = exports.SseEventStream = exports.isToolError = exports.parseToolJson = exports.getToolText = exports.connectMcp = exports.BalchemyMcpClient = exports.AgentSdkError = void 0;
4
4
  const http_client_1 = require("./client/http-client");
5
5
  const onboarding_1 = require("./auth/onboarding");
6
6
  const mcp_client_1 = require("./mcp/mcp-client");
@@ -29,6 +29,10 @@ var openai_1 = require("./agent-loop/llm-adapters/openai");
29
29
  Object.defineProperty(exports, "OpenAiAdapter", { enumerable: true, get: function () { return openai_1.OpenAiAdapter; } });
30
30
  var anthropic_1 = require("./agent-loop/llm-adapters/anthropic");
31
31
  Object.defineProperty(exports, "AnthropicAdapter", { enumerable: true, get: function () { return anthropic_1.AnthropicAdapter; } });
32
+ var rule_checker_1 = require("./agent-loop/rule-checker");
33
+ Object.defineProperty(exports, "checkTradeAmount", { enumerable: true, get: function () { return rule_checker_1.checkTradeAmount; } });
34
+ Object.defineProperty(exports, "checkTradeRate", { enumerable: true, get: function () { return rule_checker_1.checkTradeRate; } });
35
+ Object.defineProperty(exports, "checkAllRules", { enumerable: true, get: function () { return rule_checker_1.checkAllRules; } });
32
36
  class BalchemyAgentSdk {
33
37
  onboarding;
34
38
  constructor(config) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,sDAAkD;AAClD,kDAA0D;AAC1D,iDAAiE;AAkCjE,4DAAyD;AAAhD,gHAAA,aAAa,OAAA;AACtB,+CAA0G;AAAjG,+GAAA,iBAAiB,OAAA;AAAE,wGAAA,UAAU,OAAA;AAAE,yGAAA,WAAW,OAAA;AAAE,2GAAA,aAAa,OAAA;AAAE,yGAAA,WAAW,OAAA;AAa/E,iEAA8D;AAArD,kHAAA,cAAc,OAAA;AAOvB,kDAAgD;AAAvC,yGAAA,UAAU,OAAA;AAEnB,aAAa;AACb,sDAAoD;AAA3C,uGAAA,SAAS,OAAA;AAClB,kEAA+D;AAAtD,kHAAA,cAAc,OAAA;AACvB,kEAAgE;AAAvD,mHAAA,eAAe,OAAA;AACxB,kEAAgE;AAAvD,mHAAA,eAAe,OAAA;AACxB,2DAAiE;AAAxD,uGAAA,aAAa,OAAA;AACtB,iEAAuE;AAA9D,6GAAA,gBAAgB,OAAA;AAazB,MAAa,gBAAgB;IACV,UAAU,CAAwB;IAEnD,YAAY,MAAsB;QAChC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,wBAAU,CAAC;YAC1B,OAAO,EAAE,MAAM,CAAC,UAAU;YAC1B,SAAS;YACT,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,IAAI,kCAAqB,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAA4B;QACjD,OAAO,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAA2B;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,KAA+B;QAE/B,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,KAA+B;QAE/B,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,4BAA4B,CAChC,KAAqC;QAErC,OAAO,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,UAAU,CAAC,MAKV;QACC,OAAO,IAAA,uBAAU,EAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;CACF;AA/CD,4CA+CC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,sDAAkD;AAClD,kDAA0D;AAC1D,iDAAiE;AAkCjE,4DAAyD;AAAhD,gHAAA,aAAa,OAAA;AACtB,+CAA0G;AAAjG,+GAAA,iBAAiB,OAAA;AAAE,wGAAA,UAAU,OAAA;AAAE,yGAAA,WAAW,OAAA;AAAE,2GAAA,aAAa,OAAA;AAAE,yGAAA,WAAW,OAAA;AAa/E,iEAA8D;AAArD,kHAAA,cAAc,OAAA;AAOvB,kDAAgD;AAAvC,yGAAA,UAAU,OAAA;AAEnB,aAAa;AACb,sDAAoD;AAA3C,uGAAA,SAAS,OAAA;AAClB,kEAA+D;AAAtD,kHAAA,cAAc,OAAA;AACvB,kEAAgE;AAAvD,mHAAA,eAAe,OAAA;AACxB,kEAAgE;AAAvD,mHAAA,eAAe,OAAA;AACxB,2DAAiE;AAAxD,uGAAA,aAAa,OAAA;AACtB,iEAAuE;AAA9D,6GAAA,gBAAgB,OAAA;AACzB,0DAA4F;AAAnF,gHAAA,gBAAgB,OAAA;AAAE,8GAAA,cAAc,OAAA;AAAE,6GAAA,aAAa,OAAA;AAexD,MAAa,gBAAgB;IACV,UAAU,CAAwB;IAEnD,YAAY,MAAsB;QAChC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,wBAAU,CAAC;YAC1B,OAAO,EAAE,MAAM,CAAC,UAAU;YAC1B,SAAS;YACT,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,IAAI,kCAAqB,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAA4B;QACjD,OAAO,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAA2B;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,KAA+B;QAE/B,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,KAA+B;QAE/B,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,4BAA4B,CAChC,KAAqC;QAErC,OAAO,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,UAAU,CAAC,MAKV;QACC,OAAO,IAAA,uBAAU,EAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;CACF;AA/CD,4CA+CC"}