clodds 1.1.0 → 1.2.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.
Files changed (115) hide show
  1. package/README.md +79 -47
  2. package/dist/agents/handlers/kalshi.d.ts +1 -2
  3. package/dist/agents/handlers/kalshi.js +369 -616
  4. package/dist/agents/handlers/kalshi.js.map +1 -1
  5. package/dist/agents/handlers/types.d.ts +1 -1
  6. package/dist/agents/index.d.ts +1 -1
  7. package/dist/agents/index.js +435 -710
  8. package/dist/agents/index.js.map +1 -1
  9. package/dist/bittensor/index.d.ts +3 -2
  10. package/dist/bittensor/index.js +44 -5
  11. package/dist/bittensor/index.js.map +1 -1
  12. package/dist/cli/commands/gateway.js +37 -2
  13. package/dist/cli/commands/gateway.js.map +1 -1
  14. package/dist/cli/commands/index.js +3 -2
  15. package/dist/cli/commands/index.js.map +1 -1
  16. package/dist/cli/index.js +6 -4
  17. package/dist/cli/index.js.map +1 -1
  18. package/dist/cron/index.d.ts +1 -1
  19. package/dist/cron/index.js +26 -34
  20. package/dist/cron/index.js.map +1 -1
  21. package/dist/db/index.d.ts +12 -0
  22. package/dist/db/index.js +51 -23
  23. package/dist/db/index.js.map +1 -1
  24. package/dist/db/migrations.js +36 -0
  25. package/dist/db/migrations.js.map +1 -1
  26. package/dist/evm/index.d.ts +1 -0
  27. package/dist/evm/index.js +2 -0
  28. package/dist/evm/index.js.map +1 -1
  29. package/dist/evm/pancakeswap.d.ts +55 -0
  30. package/dist/evm/pancakeswap.js +299 -0
  31. package/dist/evm/pancakeswap.js.map +1 -0
  32. package/dist/exchanges/lighter/index.d.ts +95 -0
  33. package/dist/exchanges/lighter/index.js +154 -0
  34. package/dist/exchanges/lighter/index.js.map +1 -0
  35. package/dist/gateway/server.d.ts +9 -0
  36. package/dist/gateway/server.js +208 -1
  37. package/dist/gateway/server.js.map +1 -1
  38. package/dist/gateway/signal-bus.d.ts +2 -43
  39. package/dist/gateway/signal-bus.js.map +1 -1
  40. package/dist/index.js +40 -3
  41. package/dist/index.js.map +1 -1
  42. package/dist/mcp/security.d.ts +44 -0
  43. package/dist/mcp/security.js +143 -0
  44. package/dist/mcp/security.js.map +1 -0
  45. package/dist/mcp/server.js +27 -2
  46. package/dist/mcp/server.js.map +1 -1
  47. package/dist/services/alt-data/index.d.ts +1 -1
  48. package/dist/sessions/index.js +66 -7
  49. package/dist/sessions/index.js.map +1 -1
  50. package/dist/signal-router/router.d.ts +1 -1
  51. package/dist/signal-router/types.d.ts +1 -1
  52. package/dist/skills/bundled/arbitrage/index.js +96 -63
  53. package/dist/skills/bundled/arbitrage/index.js.map +1 -1
  54. package/dist/skills/bundled/betfair/index.js +121 -83
  55. package/dist/skills/bundled/betfair/index.js.map +1 -1
  56. package/dist/skills/bundled/bridge/index.js +42 -13
  57. package/dist/skills/bundled/bridge/index.js.map +1 -1
  58. package/dist/skills/bundled/crypto-hft/index.js +267 -226
  59. package/dist/skills/bundled/crypto-hft/index.js.map +1 -1
  60. package/dist/skills/bundled/drift/index.js +83 -52
  61. package/dist/skills/bundled/drift/index.js.map +1 -1
  62. package/dist/skills/bundled/embeddings/index.js +87 -49
  63. package/dist/skills/bundled/embeddings/index.js.map +1 -1
  64. package/dist/skills/bundled/execution/index.js +47 -25
  65. package/dist/skills/bundled/execution/index.js.map +1 -1
  66. package/dist/skills/bundled/feeds/index.js +45 -25
  67. package/dist/skills/bundled/feeds/index.js.map +1 -1
  68. package/dist/skills/bundled/hyperliquid/index.js +91 -45
  69. package/dist/skills/bundled/hyperliquid/index.js.map +1 -1
  70. package/dist/skills/bundled/integrations/index.js +2 -1
  71. package/dist/skills/bundled/integrations/index.js.map +1 -1
  72. package/dist/skills/bundled/kamino/index.js +71 -43
  73. package/dist/skills/bundled/kamino/index.js.map +1 -1
  74. package/dist/skills/bundled/lighter/index.d.ts +19 -0
  75. package/dist/skills/bundled/lighter/index.js +385 -0
  76. package/dist/skills/bundled/lighter/index.js.map +1 -0
  77. package/dist/skills/bundled/marginfi/index.d.ts +21 -0
  78. package/dist/skills/bundled/marginfi/index.js +387 -0
  79. package/dist/skills/bundled/marginfi/index.js.map +1 -0
  80. package/dist/skills/bundled/opinion/index.js +44 -25
  81. package/dist/skills/bundled/opinion/index.js.map +1 -1
  82. package/dist/skills/bundled/pancakeswap/index.d.ts +19 -0
  83. package/dist/skills/bundled/pancakeswap/index.js +260 -0
  84. package/dist/skills/bundled/pancakeswap/index.js.map +1 -0
  85. package/dist/skills/bundled/setup/index.d.ts +16 -0
  86. package/dist/skills/bundled/setup/index.js +427 -0
  87. package/dist/skills/bundled/setup/index.js.map +1 -0
  88. package/dist/skills/bundled/solend/index.d.ts +22 -0
  89. package/dist/skills/bundled/solend/index.js +401 -0
  90. package/dist/skills/bundled/solend/index.js.map +1 -0
  91. package/dist/skills/bundled/trading-evm/index.js +42 -11
  92. package/dist/skills/bundled/trading-evm/index.js.map +1 -1
  93. package/dist/skills/errors.d.ts +20 -0
  94. package/dist/skills/errors.js +84 -0
  95. package/dist/skills/errors.js.map +1 -0
  96. package/dist/skills/executor.d.ts +1 -1
  97. package/dist/skills/executor.js +515 -41
  98. package/dist/skills/executor.js.map +1 -1
  99. package/dist/skills/help.d.ts +33 -0
  100. package/dist/skills/help.js +73 -0
  101. package/dist/skills/help.js.map +1 -0
  102. package/dist/solana/marginfi.d.ts +112 -0
  103. package/dist/solana/marginfi.js +340 -0
  104. package/dist/solana/marginfi.js.map +1 -0
  105. package/dist/solana/solend.d.ts +120 -0
  106. package/dist/solana/solend.js +261 -0
  107. package/dist/solana/solend.js.map +1 -0
  108. package/dist/trading/bridge.d.ts +1 -1
  109. package/dist/trading/position-bridge.d.ts +1 -1
  110. package/dist/types/signal-bus.d.ts +48 -0
  111. package/dist/types/signal-bus.js +9 -0
  112. package/dist/types/signal-bus.js.map +1 -0
  113. package/dist/types.d.ts +17 -0
  114. package/dist/utils/json-utils.d.ts +8 -8
  115. package/package.json +8 -6
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ /**
3
+ * MCP Security Layers
4
+ *
5
+ * Auth, tool allowlisting, rate limiting, audit logging, and input sanitization.
6
+ * All opt-in via env vars — zero breaking changes when unconfigured.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.loadSecurityConfig = loadSecurityConfig;
10
+ exports.isToolAllowed = isToolAllowed;
11
+ exports.filterTools = filterTools;
12
+ exports.checkRateLimit = checkRateLimit;
13
+ exports.sanitizeToolArgs = sanitizeToolArgs;
14
+ exports.logAudit = logAudit;
15
+ const index_js_1 = require("../security/index.js");
16
+ /** Tool profiles — predefined sets of allowed tool prefixes */
17
+ const TOOL_PROFILES = {
18
+ 'read-only': [
19
+ 'clodds_feeds', 'clodds_markets', 'clodds_analytics',
20
+ 'clodds_portfolio', 'clodds_watchlist', 'clodds_search',
21
+ ],
22
+ 'trading': [
23
+ 'clodds_feeds', 'clodds_markets', 'clodds_analytics',
24
+ 'clodds_portfolio', 'clodds_watchlist', 'clodds_search',
25
+ 'clodds_trading', 'clodds_execution', 'clodds_order',
26
+ ],
27
+ 'full': [],
28
+ };
29
+ function loadSecurityConfig() {
30
+ const allowed = process.env.CLODDS_MCP_ALLOWED_TOOLS?.trim();
31
+ const blocked = process.env.CLODDS_MCP_BLOCKED_TOOLS?.trim();
32
+ const rateLimit = parseInt(process.env.CLODDS_MCP_RATE_LIMIT || '60', 10);
33
+ const auditEnabled = process.env.CLODDS_MCP_AUDIT !== 'false';
34
+ const toolProfile = process.env.CLODDS_MCP_TOOL_PROFILE || 'full';
35
+ return {
36
+ allowedTools: allowed ? new Set(allowed.split(',').map((s) => s.trim())) : new Set(),
37
+ blockedTools: blocked ? new Set(blocked.split(',').map((s) => s.trim())) : new Set(),
38
+ rateLimit: isNaN(rateLimit) || rateLimit <= 0 ? 60 : rateLimit,
39
+ auditEnabled,
40
+ toolProfile,
41
+ };
42
+ }
43
+ // =============================================================================
44
+ // TOOL ALLOWLISTING
45
+ // =============================================================================
46
+ /** Check whether a single tool name is allowed by the config */
47
+ function isToolAllowed(toolName, config) {
48
+ // Blocklist always wins
49
+ if (config.blockedTools.has(toolName))
50
+ return false;
51
+ // Explicit allowlist
52
+ if (config.allowedTools.size > 0) {
53
+ return config.allowedTools.has(toolName);
54
+ }
55
+ // Profile-based filtering
56
+ const prefixes = TOOL_PROFILES[config.toolProfile];
57
+ if (prefixes && prefixes.length > 0) {
58
+ return prefixes.some((prefix) => toolName.startsWith(prefix));
59
+ }
60
+ // 'full' profile or unknown — allow everything
61
+ return true;
62
+ }
63
+ /** Filter a tools/list response to only include allowed tools */
64
+ function filterTools(tools, config) {
65
+ const hasFilters = config.blockedTools.size > 0 ||
66
+ config.allowedTools.size > 0 ||
67
+ (config.toolProfile !== 'full' && TOOL_PROFILES[config.toolProfile]?.length);
68
+ if (!hasFilters)
69
+ return tools;
70
+ return tools.filter((t) => isToolAllowed(t.name, config));
71
+ }
72
+ // =============================================================================
73
+ // RATE LIMITING
74
+ // =============================================================================
75
+ let rateLimiter = null;
76
+ function getRateLimiter(config) {
77
+ if (!rateLimiter) {
78
+ rateLimiter = new index_js_1.RateLimiter({
79
+ maxRequests: config.rateLimit,
80
+ windowMs: 60_000,
81
+ });
82
+ }
83
+ return rateLimiter;
84
+ }
85
+ /**
86
+ * Check rate limit for a client. Returns null if allowed,
87
+ * or an error message string if rate limited.
88
+ */
89
+ function checkRateLimit(clientId, config) {
90
+ const limiter = getRateLimiter(config);
91
+ const result = limiter.check(clientId);
92
+ if (!result.allowed) {
93
+ return `Rate limited: ${config.rateLimit} calls/min exceeded. Retry in ${Math.ceil(result.resetIn / 1000)}s`;
94
+ }
95
+ return null;
96
+ }
97
+ // =============================================================================
98
+ // INPUT SANITIZATION
99
+ // =============================================================================
100
+ /**
101
+ * Scan all string values in tool arguments for injection patterns.
102
+ * Returns null if clean, or a description of threats found.
103
+ */
104
+ function sanitizeToolArgs(args) {
105
+ const threats = [];
106
+ function scanValue(value, path) {
107
+ if (typeof value === 'string') {
108
+ const result = (0, index_js_1.detectInjection)(value);
109
+ if (!result.safe) {
110
+ threats.push(`${path}: ${result.threats.join(', ')}`);
111
+ }
112
+ }
113
+ else if (Array.isArray(value)) {
114
+ value.forEach((item, i) => scanValue(item, `${path}[${i}]`));
115
+ }
116
+ else if (value && typeof value === 'object') {
117
+ for (const [k, v] of Object.entries(value)) {
118
+ scanValue(v, `${path}.${k}`);
119
+ }
120
+ }
121
+ }
122
+ for (const [key, value] of Object.entries(args)) {
123
+ scanValue(value, key);
124
+ }
125
+ return threats.length > 0 ? `Injection detected: ${threats.join('; ')}` : null;
126
+ }
127
+ /** Log a structured audit entry to stderr (not pino — stdout would corrupt JSON-RPC) */
128
+ function logAudit(entry, config) {
129
+ if (!config.auditEnabled)
130
+ return;
131
+ const record = {
132
+ level: 'info',
133
+ time: entry.timestamp,
134
+ audit: true,
135
+ tool: entry.tool,
136
+ client: entry.clientId,
137
+ durationMs: entry.durationMs,
138
+ success: entry.success,
139
+ ...(entry.error ? { error: entry.error } : {}),
140
+ };
141
+ process.stderr.write(JSON.stringify(record) + '\n');
142
+ }
143
+ //# sourceMappingURL=security.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/mcp/security.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAoCH,gDAcC;AAOD,sCAiBC;AAGD,kCASC;AAsBD,wCAUC;AAUD,4CAuBC;AAgBD,4BAcC;AAnLD,mDAAoE;AAoBpE,+DAA+D;AAC/D,MAAM,aAAa,GAA6B;IAC9C,WAAW,EAAE;QACX,cAAc,EAAE,gBAAgB,EAAE,kBAAkB;QACpD,kBAAkB,EAAE,kBAAkB,EAAE,eAAe;KACxD;IACD,SAAS,EAAE;QACT,cAAc,EAAE,gBAAgB,EAAE,kBAAkB;QACpD,kBAAkB,EAAE,kBAAkB,EAAE,eAAe;QACvD,gBAAgB,EAAE,kBAAkB,EAAE,cAAc;KACrD;IACD,MAAM,EAAE,EAAE;CACX,CAAC;AAEF,SAAgB,kBAAkB;IAChC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,EAAE,CAAC;IAC7D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,EAAE,CAAC;IAC7D,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1E,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,OAAO,CAAC;IAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,MAAM,CAAC;IAElE,OAAO;QACL,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;QACpF,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;QACpF,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;QAC9D,YAAY;QACZ,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,gEAAgE;AAChE,SAAgB,aAAa,CAAC,QAAgB,EAAE,MAAyB;IACvE,wBAAwB;IACxB,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAEpD,qBAAqB;IACrB,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,0BAA0B;IAC1B,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACnD,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,+CAA+C;IAC/C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iEAAiE;AACjE,SAAgB,WAAW,CAAC,KAAgB,EAAE,MAAyB;IACrE,MAAM,UAAU,GACd,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC;QAC5B,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC;QAC5B,CAAC,MAAM,CAAC,WAAW,KAAK,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;IAE/E,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAE9B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF,IAAI,WAAW,GAAuB,IAAI,CAAC;AAE3C,SAAS,cAAc,CAAC,MAAyB;IAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,IAAI,sBAAW,CAAC;YAC5B,WAAW,EAAE,MAAM,CAAC,SAAS;YAC7B,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAC5B,QAAgB,EAChB,MAAyB;IAEzB,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,iBAAiB,MAAM,CAAC,SAAS,iCAAiC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;IAC/G,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,IAA6B;IAC5D,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,SAAS,SAAS,CAAC,KAAc,EAAE,IAAY;QAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAA,0BAAe,EAAC,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,CAAC;aAAM,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3C,SAAS,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACjF,CAAC;AAeD,wFAAwF;AACxF,SAAgB,QAAQ,CAAC,KAAiB,EAAE,MAAyB;IACnE,IAAI,CAAC,MAAM,CAAC,YAAY;QAAE,OAAO;IAEjC,MAAM,MAAM,GAAG;QACb,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,KAAK,CAAC,SAAS;QACrB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,KAAK,CAAC,QAAQ;QACtB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/C,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;AACtD,CAAC"}
@@ -41,6 +41,7 @@ var __importStar = (this && this.__importStar) || (function () {
41
41
  Object.defineProperty(exports, "__esModule", { value: true });
42
42
  exports.startMcpServer = startMcpServer;
43
43
  const readline_1 = require("readline");
44
+ const security_js_1 = require("./security.js");
44
45
  // =============================================================================
45
46
  // HELPERS
46
47
  // =============================================================================
@@ -54,6 +55,7 @@ function errorResponse(id, code, message) {
54
55
  // =============================================================================
55
56
  // SKILL LOADER (lazy)
56
57
  // =============================================================================
58
+ let securityConfig;
57
59
  let skillManifest = null;
58
60
  let executeSkill = null;
59
61
  async function ensureSkills() {
@@ -121,14 +123,36 @@ async function handleRequest(req) {
121
123
  return null;
122
124
  case 'tools/list': {
123
125
  const tools = await listTools();
124
- return { jsonrpc: '2.0', id: req.id, result: { tools } };
126
+ const filtered = (0, security_js_1.filterTools)(tools, securityConfig);
127
+ return { jsonrpc: '2.0', id: req.id, result: { tools: filtered } };
125
128
  }
126
129
  case 'tools/call': {
127
130
  const params = req.params;
128
131
  if (!params?.name) {
129
132
  return errorResponse(req.id, -32602, 'Missing tool name');
130
133
  }
131
- const toolResult = await callTool(params.name, params.arguments ?? {});
134
+ const toolName = params.name;
135
+ const toolArgs = params.arguments ?? {};
136
+ const clientId = 'stdio'; // single client for stdio transport
137
+ const start = Date.now();
138
+ // Security pipeline
139
+ if (!(0, security_js_1.isToolAllowed)(toolName, securityConfig)) {
140
+ (0, security_js_1.logAudit)({ tool: toolName, clientId, timestamp: start, durationMs: 0, success: false, error: 'blocked' }, securityConfig);
141
+ return errorResponse(req.id, -32600, `Tool not allowed: ${toolName}`);
142
+ }
143
+ const rateLimitMsg = (0, security_js_1.checkRateLimit)(clientId, securityConfig);
144
+ if (rateLimitMsg) {
145
+ (0, security_js_1.logAudit)({ tool: toolName, clientId, timestamp: start, durationMs: 0, success: false, error: 'rate_limited' }, securityConfig);
146
+ return errorResponse(req.id, -32000, rateLimitMsg);
147
+ }
148
+ const injectionMsg = (0, security_js_1.sanitizeToolArgs)(toolArgs);
149
+ if (injectionMsg) {
150
+ (0, security_js_1.logAudit)({ tool: toolName, clientId, timestamp: start, durationMs: 0, success: false, error: 'injection' }, securityConfig);
151
+ return errorResponse(req.id, -32602, injectionMsg);
152
+ }
153
+ const toolResult = await callTool(toolName, toolArgs);
154
+ const durationMs = Date.now() - start;
155
+ (0, security_js_1.logAudit)({ tool: toolName, clientId, timestamp: start, durationMs, success: !toolResult.isError }, securityConfig);
132
156
  return { jsonrpc: '2.0', id: req.id, result: toolResult };
133
157
  }
134
158
  default:
@@ -139,6 +163,7 @@ async function handleRequest(req) {
139
163
  // STDIO TRANSPORT
140
164
  // =============================================================================
141
165
  async function startMcpServer() {
166
+ securityConfig = (0, security_js_1.loadSecurityConfig)();
142
167
  // Redirect log output to stderr so stdout is clean for JSON-RPC
143
168
  process.env.LOG_LEVEL = 'silent';
144
169
  const rl = (0, readline_1.createInterface)({ input: process.stdin, terminal: false });
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * Ingests alternative data feeds, runs sentiment analysis, matches to markets,
5
5
  * and emits TradingSignals on the signal bus when confidence thresholds are met.
6
6
  */
7
- import type { SignalBus } from '../../gateway/signal-bus.js';
7
+ import type { SignalBus } from '../../types/signal-bus.js';
8
8
  import type { AltDataConfig, AltDataService } from './types.js';
9
9
  export type { AltDataService };
10
10
  export interface EmbeddingsLike {
@@ -50,8 +50,28 @@ function decryptTranscript(encryptedData, password) {
50
50
  decrypted += decipher.final('utf8');
51
51
  return decrypted;
52
52
  }
53
- /** Max conversation history to keep (prevent unbounded growth) */
54
- const MAX_HISTORY_LENGTH = 20;
53
+ /** Max messages to keep in the session JSON blob for LLM context.
54
+ * Full history lives in the messages table (unlimited, append-only). */
55
+ const MAX_LLM_CONTEXT = 20;
56
+ /** When compacting, keep this many recent messages and summarize the rest */
57
+ const COMPACT_KEEP_RECENT = 10;
58
+ /**
59
+ * Extractive summary: compress messages into a concise recap.
60
+ * No LLM call needed — just extracts key lines from each message.
61
+ */
62
+ function compactMessages(messages) {
63
+ const lines = [];
64
+ for (const msg of messages) {
65
+ const text = msg.content.trim();
66
+ if (!text)
67
+ continue;
68
+ const prefix = msg.role === 'user' ? 'User' : 'Assistant';
69
+ // Take first meaningful sentence (up to 120 chars)
70
+ const firstLine = text.split(/[.!?\n]/).filter(s => s.trim().length > 5)[0]?.trim() || text.slice(0, 120);
71
+ lines.push(`- ${prefix}: ${firstLine.slice(0, 120)}`);
72
+ }
73
+ return lines.join('\n');
74
+ }
55
75
  /** Default session configuration */
56
76
  const DEFAULT_CONFIG = {
57
77
  dmScope: 'per-channel-peer',
@@ -181,6 +201,7 @@ function createSessionManager(db, configInput) {
181
201
  ...context,
182
202
  messageCount: 0,
183
203
  conversationHistory: [],
204
+ contextSummary: undefined,
184
205
  checkpoint: undefined,
185
206
  checkpointRestoredAt: undefined,
186
207
  };
@@ -373,6 +394,11 @@ function createSessionManager(db, configInput) {
373
394
  db.deleteSession(key);
374
395
  },
375
396
  addToHistory(session, role, content) {
397
+ // Write to messages table (append-only, one row per message)
398
+ if (db.insertMessage) {
399
+ db.insertMessage(session.id, role, content);
400
+ }
401
+ // Keep in-memory LLM context window (last N messages only)
376
402
  if (!session.context.conversationHistory) {
377
403
  session.context.conversationHistory = [];
378
404
  }
@@ -381,17 +407,50 @@ function createSessionManager(db, configInput) {
381
407
  content,
382
408
  timestamp: Date.now(),
383
409
  });
384
- // Trim to max length (keep most recent)
385
- if (session.context.conversationHistory.length > MAX_HISTORY_LENGTH) {
386
- session.context.conversationHistory = session.context.conversationHistory.slice(-MAX_HISTORY_LENGTH);
410
+ // Compact: when history exceeds window, summarize oldest and keep recent
411
+ if (session.context.conversationHistory.length > MAX_LLM_CONTEXT) {
412
+ const overflow = session.context.conversationHistory.length - COMPACT_KEEP_RECENT;
413
+ if (overflow > 0) {
414
+ const evicted = session.context.conversationHistory.slice(0, overflow);
415
+ const newSummary = compactMessages(evicted);
416
+ // Append to existing summary (cap at ~3000 chars to keep JSON blob small)
417
+ const combined = session.context.contextSummary
418
+ ? session.context.contextSummary + '\n' + newSummary
419
+ : newSummary;
420
+ // If too long, keep only the most recent portion
421
+ session.context.contextSummary = combined.length > 3000
422
+ ? combined.slice(-3000)
423
+ : combined;
424
+ // Keep only the recent messages
425
+ session.context.conversationHistory = session.context.conversationHistory.slice(overflow);
426
+ }
387
427
  }
388
428
  this.updateSession(session);
389
429
  },
390
430
  getHistory(session) {
391
- return session.context.conversationHistory || [];
431
+ const history = session.context.conversationHistory || [];
432
+ let recent = history.slice(-MAX_LLM_CONTEXT);
433
+ // Prepend context summary so the LLM has awareness of earlier conversation
434
+ if (session.context.contextSummary) {
435
+ // Ensure recent starts with 'user' to maintain alternation after our synthetic pair
436
+ if (recent.length > 0 && recent[0].role === 'assistant') {
437
+ recent = recent.slice(1);
438
+ }
439
+ return [
440
+ { role: 'user', content: `[Previous conversation summary]\n${session.context.contextSummary}`, timestamp: 0 },
441
+ { role: 'assistant', content: 'Understood. I have context from our earlier conversation.', timestamp: 0 },
442
+ ...recent,
443
+ ];
444
+ }
445
+ return recent;
392
446
  },
393
447
  clearHistory(session) {
394
448
  session.context.conversationHistory = [];
449
+ session.context.contextSummary = undefined;
450
+ // Clear messages table too
451
+ if (db.deleteSessionMessages) {
452
+ db.deleteSessionMessages(session.id);
453
+ }
395
454
  this.updateSession(session);
396
455
  logger_1.logger.info({ sessionKey: session.key }, 'Conversation history cleared');
397
456
  },
@@ -401,7 +460,7 @@ function createSessionManager(db, configInput) {
401
460
  createdAt: Date.now(),
402
461
  messageCount: session.context.messageCount,
403
462
  summary,
404
- history: history.slice(-MAX_HISTORY_LENGTH),
463
+ history: history.slice(-MAX_LLM_CONTEXT),
405
464
  };
406
465
  this.updateSession(session);
407
466
  logger_1.logger.info({ sessionKey: session.key }, 'Session checkpoint saved');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sessions/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sessions/index.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  * Dry-run by default — opt-in to live execution.
9
9
  */
10
10
  import { EventEmitter } from 'eventemitter3';
11
- import type { SignalBus } from '../gateway/signal-bus.js';
11
+ import type { SignalBus } from '../types/signal-bus.js';
12
12
  import type { ExecutionService } from '../execution/index.js';
13
13
  import type { SmartRouter } from '../execution/smart-router.js';
14
14
  import type { MLSignalModel } from '../trading/ml-signals.js';
@@ -5,7 +5,7 @@
5
5
  * and position sizing into the execution service.
6
6
  */
7
7
  import type { Platform } from '../types.js';
8
- import type { TradingSignal } from '../gateway/signal-bus.js';
8
+ import type { TradingSignal } from '../types/signal-bus.js';
9
9
  export interface SignalRouterConfig {
10
10
  /** Master switch (default: false — opt-in) */
11
11
  enabled?: boolean;
@@ -18,6 +18,8 @@
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
19
  exports.execute = execute;
20
20
  const index_1 = require("../../../arbitrage/index");
21
+ const help_js_1 = require("../../help.js");
22
+ const errors_js_1 = require("../../errors.js");
21
23
  let arbService = null;
22
24
  function getService() {
23
25
  if (!arbService) {
@@ -178,70 +180,101 @@ async function handleStats() {
178
180
  }
179
181
  async function execute(args) {
180
182
  const parts = args.trim().split(/\s+/);
181
- const command = parts[0]?.toLowerCase() || 'help';
183
+ const cmd = parts[0]?.toLowerCase() || 'help';
182
184
  const rest = parts.slice(1);
183
- switch (command) {
184
- case 'start':
185
- return handleStart();
186
- case 'stop':
187
- return handleStop();
188
- case 'status':
189
- return handleStatus();
190
- case 'check':
191
- case 'scan':
192
- return handleCheck(rest.join(' '));
193
- case 'compare':
194
- if (rest.length < 2)
195
- return 'Usage: /arb compare <market-a> <market-b>';
196
- return handleCompare(rest[0], rest[1]);
197
- case 'opportunities':
198
- case 'opps':
199
- return handleOpportunities();
200
- case 'link':
201
- if (rest.length < 2)
202
- return 'Usage: /arb link <market-a> <market-b>';
203
- return handleLink(rest[0], rest[1]);
204
- case 'unlink':
205
- if (!rest[0])
206
- return 'Usage: /arb unlink <match-id>';
207
- return handleUnlink(rest[0]);
208
- case 'links':
209
- case 'matches':
210
- return handleLinks();
211
- case 'auto-match':
212
- case 'automatch':
213
- if (!rest[0])
214
- return 'Usage: /arb auto-match <query>';
215
- return handleAutoMatch(rest.join(' '));
216
- case 'stats':
217
- return handleStats();
218
- case 'help':
219
- default:
220
- return `**Arbitrage Commands**
221
-
222
- **Monitoring:**
223
- /arb start - Start monitoring
224
- /arb stop - Stop monitoring
225
- /arb status - Check status
226
-
227
- **Scanning:**
228
- /arb check [query] - One-time scan
229
- /arb compare <market-a> <market-b> - Compare two markets
230
- /arb opportunities - List opportunities
231
-
232
- **Market Linking:**
233
- /arb link <market-a> <market-b> - Link markets manually
234
- /arb unlink <match-id> - Remove link
235
- /arb links - View all links
236
- /arb auto-match <query> - Auto-detect matches
237
-
238
- **Statistics:**
239
- /arb stats - View statistics
240
-
241
- **Examples:**
242
- /arb check "trump election"
243
- /arb compare poly:12345 kalshi:TRUMP
244
- /arb link poly:abc123 kalshi:XYZ`;
185
+ try {
186
+ switch (cmd) {
187
+ case 'start':
188
+ return handleStart();
189
+ case 'stop':
190
+ return handleStop();
191
+ case 'status':
192
+ return handleStatus();
193
+ case 'check':
194
+ case 'scan':
195
+ return handleCheck(rest.join(' '));
196
+ case 'compare':
197
+ if (rest.length < 2)
198
+ return 'Usage: /arb compare <market-a> <market-b>';
199
+ return handleCompare(rest[0], rest[1]);
200
+ case 'opportunities':
201
+ case 'opps':
202
+ return handleOpportunities();
203
+ case 'link':
204
+ if (rest.length < 2)
205
+ return 'Usage: /arb link <market-a> <market-b>';
206
+ return handleLink(rest[0], rest[1]);
207
+ case 'unlink':
208
+ if (!rest[0])
209
+ return 'Usage: /arb unlink <match-id>';
210
+ return handleUnlink(rest[0]);
211
+ case 'links':
212
+ case 'matches':
213
+ return handleLinks();
214
+ case 'auto-match':
215
+ case 'automatch':
216
+ if (!rest[0])
217
+ return 'Usage: /arb auto-match <query>';
218
+ return handleAutoMatch(rest.join(' '));
219
+ case 'stats':
220
+ return handleStats();
221
+ case 'help':
222
+ default:
223
+ return (0, help_js_1.formatHelp)({
224
+ name: 'Arbitrage',
225
+ description: 'Automated cross-platform arbitrage detection and monitoring',
226
+ sections: [
227
+ {
228
+ title: 'Monitoring',
229
+ commands: [
230
+ { cmd: '/arb start', description: 'Start monitoring' },
231
+ { cmd: '/arb stop', description: 'Stop monitoring' },
232
+ { cmd: '/arb status', description: 'Check status' },
233
+ ],
234
+ },
235
+ {
236
+ title: 'Scanning',
237
+ commands: [
238
+ { cmd: '/arb check [query]', description: 'One-time scan' },
239
+ { cmd: '/arb compare <market-a> <market-b>', description: 'Compare two markets' },
240
+ { cmd: '/arb opportunities', description: 'List opportunities' },
241
+ ],
242
+ },
243
+ {
244
+ title: 'Market Linking',
245
+ commands: [
246
+ { cmd: '/arb link <market-a> <market-b>', description: 'Link markets manually' },
247
+ { cmd: '/arb unlink <match-id>', description: 'Remove link' },
248
+ { cmd: '/arb links', description: 'View all links' },
249
+ { cmd: '/arb auto-match <query>', description: 'Auto-detect matches' },
250
+ ],
251
+ },
252
+ {
253
+ title: 'Statistics',
254
+ commands: [
255
+ { cmd: '/arb stats', description: 'View statistics' },
256
+ ],
257
+ },
258
+ ],
259
+ examples: [
260
+ '/arb check "trump election"',
261
+ '/arb compare poly:12345 kalshi:TRUMP',
262
+ '/arb link poly:abc123 kalshi:XYZ',
263
+ ],
264
+ seeAlso: [
265
+ { cmd: '/poly', description: 'Polymarket trading' },
266
+ { cmd: '/bf', description: 'Betfair trading' },
267
+ { cmd: '/feeds', description: 'Market data feeds' },
268
+ { cmd: '/signals', description: 'Trading signals' },
269
+ ],
270
+ notes: [
271
+ 'Shortcuts: scan = check, opps = opportunities, matches = links, automatch = auto-match',
272
+ ],
273
+ });
274
+ }
275
+ }
276
+ catch (error) {
277
+ return (0, errors_js_1.wrapSkillError)('Arbitrage', cmd || 'command', error);
245
278
  }
246
279
  }
247
280
  exports.default = {