@scriptmasterlabs/mcp-x402 2.1.0 → 2.1.1
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/.well-known/x402.json +37 -0
- package/LICENSE +57 -21
- package/README.md +185 -227
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-wrapper.d.ts +71 -0
- package/dist/mcp-wrapper.d.ts.map +1 -0
- package/dist/mcp-wrapper.js +104 -0
- package/dist/mcp-wrapper.js.map +1 -0
- package/dist/x402-middleware.d.ts +76 -0
- package/dist/x402-middleware.d.ts.map +1 -0
- package/dist/x402-middleware.js +113 -0
- package/dist/x402-middleware.js.map +1 -0
- package/dist/xrpl-facilitator.d.ts +77 -0
- package/dist/xrpl-facilitator.d.ts.map +1 -0
- package/dist/xrpl-facilitator.js +156 -0
- package/dist/xrpl-facilitator.js.map +1 -0
- package/llms.txt +108 -170
- package/package.json +43 -56
- package/schema.jsonld +97 -0
- package/.well-known/agentcard.json +0 -34
- package/.well-known/ai.txt +0 -32
- package/CONTRIBUTING.md +0 -76
- package/agents.json +0 -81
- package/ai/faq.json +0 -74
- package/ai/summary.json +0 -157
- package/dist/lib/chains/base.d.ts +0 -10
- package/dist/lib/chains/base.d.ts.map +0 -1
- package/dist/lib/chains/base.js +0 -75
- package/dist/lib/chains/base.js.map +0 -1
- package/dist/lib/chains/solana.d.ts +0 -10
- package/dist/lib/chains/solana.d.ts.map +0 -1
- package/dist/lib/chains/solana.js +0 -49
- package/dist/lib/chains/solana.js.map +0 -1
- package/dist/lib/chains/xrpl.d.ts +0 -10
- package/dist/lib/chains/xrpl.d.ts.map +0 -1
- package/dist/lib/chains/xrpl.js +0 -55
- package/dist/lib/chains/xrpl.js.map +0 -1
- package/dist/lib/credit/bureau.d.ts +0 -16
- package/dist/lib/credit/bureau.d.ts.map +0 -1
- package/dist/lib/credit/bureau.js +0 -88
- package/dist/lib/credit/bureau.js.map +0 -1
- package/dist/lib/sml-api/agentcard.d.ts +0 -17
- package/dist/lib/sml-api/agentcard.d.ts.map +0 -1
- package/dist/lib/sml-api/agentcard.js +0 -30
- package/dist/lib/sml-api/agentcard.js.map +0 -1
- package/dist/lib/sml-api/backtest.d.ts +0 -22
- package/dist/lib/sml-api/backtest.d.ts.map +0 -1
- package/dist/lib/sml-api/backtest.js +0 -28
- package/dist/lib/sml-api/backtest.js.map +0 -1
- package/dist/lib/sml-api/brokers.d.ts +0 -40
- package/dist/lib/sml-api/brokers.d.ts.map +0 -1
- package/dist/lib/sml-api/brokers.js +0 -128
- package/dist/lib/sml-api/brokers.js.map +0 -1
- package/dist/lib/sml-api/copytrader.d.ts +0 -11
- package/dist/lib/sml-api/copytrader.d.ts.map +0 -1
- package/dist/lib/sml-api/copytrader.js +0 -30
- package/dist/lib/sml-api/copytrader.js.map +0 -1
- package/dist/lib/sml-api/crawl.d.ts +0 -20
- package/dist/lib/sml-api/crawl.d.ts.map +0 -1
- package/dist/lib/sml-api/crawl.js +0 -32
- package/dist/lib/sml-api/crawl.js.map +0 -1
- package/dist/lib/sml-api/echo.d.ts +0 -10
- package/dist/lib/sml-api/echo.d.ts.map +0 -1
- package/dist/lib/sml-api/echo.js +0 -23
- package/dist/lib/sml-api/echo.js.map +0 -1
- package/dist/lib/sml-api/forge.d.ts +0 -11
- package/dist/lib/sml-api/forge.d.ts.map +0 -1
- package/dist/lib/sml-api/forge.js +0 -29
- package/dist/lib/sml-api/forge.js.map +0 -1
- package/dist/lib/sml-api/ftd.d.ts +0 -18
- package/dist/lib/sml-api/ftd.d.ts.map +0 -1
- package/dist/lib/sml-api/ftd.js +0 -43
- package/dist/lib/sml-api/ftd.js.map +0 -1
- package/dist/lib/sml-api/ghost.d.ts +0 -13
- package/dist/lib/sml-api/ghost.d.ts.map +0 -1
- package/dist/lib/sml-api/ghost.js +0 -29
- package/dist/lib/sml-api/ghost.js.map +0 -1
- package/dist/lib/sml-api/launchpad.d.ts +0 -20
- package/dist/lib/sml-api/launchpad.d.ts.map +0 -1
- package/dist/lib/sml-api/launchpad.js +0 -31
- package/dist/lib/sml-api/launchpad.js.map +0 -1
- package/dist/lib/sml-api/leviathan.d.ts +0 -22
- package/dist/lib/sml-api/leviathan.d.ts.map +0 -1
- package/dist/lib/sml-api/leviathan.js +0 -33
- package/dist/lib/sml-api/leviathan.js.map +0 -1
- package/dist/lib/sml-api/nexus.d.ts +0 -18
- package/dist/lib/sml-api/nexus.d.ts.map +0 -1
- package/dist/lib/sml-api/nexus.js +0 -40
- package/dist/lib/sml-api/nexus.js.map +0 -1
- package/dist/lib/sml-api/proof402.d.ts +0 -6
- package/dist/lib/sml-api/proof402.d.ts.map +0 -1
- package/dist/lib/sml-api/proof402.js +0 -30
- package/dist/lib/sml-api/proof402.js.map +0 -1
- package/dist/lib/sml-api/rails.d.ts +0 -12
- package/dist/lib/sml-api/rails.d.ts.map +0 -1
- package/dist/lib/sml-api/rails.js +0 -29
- package/dist/lib/sml-api/rails.js.map +0 -1
- package/dist/lib/sml-api/shadow.d.ts +0 -15
- package/dist/lib/sml-api/shadow.d.ts.map +0 -1
- package/dist/lib/sml-api/shadow.js +0 -27
- package/dist/lib/sml-api/shadow.js.map +0 -1
- package/dist/lib/sml-api/squeezeos.d.ts +0 -21
- package/dist/lib/sml-api/squeezeos.d.ts.map +0 -1
- package/dist/lib/sml-api/squeezeos.js +0 -97
- package/dist/lib/sml-api/squeezeos.js.map +0 -1
- package/dist/lib/sml-api/xdeo.d.ts +0 -13
- package/dist/lib/sml-api/xdeo.d.ts.map +0 -1
- package/dist/lib/sml-api/xdeo.js +0 -34
- package/dist/lib/sml-api/xdeo.js.map +0 -1
- package/dist/lib/sml-api/xmit.d.ts +0 -13
- package/dist/lib/sml-api/xmit.d.ts.map +0 -1
- package/dist/lib/sml-api/xmit.js +0 -34
- package/dist/lib/sml-api/xmit.js.map +0 -1
- package/dist/server/health.d.ts +0 -16
- package/dist/server/health.d.ts.map +0 -1
- package/dist/server/health.js +0 -39
- package/dist/server/health.js.map +0 -1
- package/dist/server/index.d.ts +0 -3
- package/dist/server/index.d.ts.map +0 -1
- package/dist/server/index.js +0 -322
- package/dist/server/index.js.map +0 -1
- package/dist/server/payments/ap2.d.ts +0 -17
- package/dist/server/payments/ap2.d.ts.map +0 -1
- package/dist/server/payments/ap2.js +0 -77
- package/dist/server/payments/ap2.js.map +0 -1
- package/dist/server/payments/receipt.d.ts +0 -28
- package/dist/server/payments/receipt.d.ts.map +0 -1
- package/dist/server/payments/receipt.js +0 -60
- package/dist/server/payments/receipt.js.map +0 -1
- package/dist/server/payments/router.d.ts +0 -23
- package/dist/server/payments/router.d.ts.map +0 -1
- package/dist/server/payments/router.js +0 -69
- package/dist/server/payments/router.js.map +0 -1
- package/dist/server/payments/wallet.d.ts +0 -18
- package/dist/server/payments/wallet.d.ts.map +0 -1
- package/dist/server/payments/wallet.js +0 -107
- package/dist/server/payments/wallet.js.map +0 -1
- package/dist/server/payments/x402.d.ts +0 -29
- package/dist/server/payments/x402.d.ts.map +0 -1
- package/dist/server/payments/x402.js +0 -138
- package/dist/server/payments/x402.js.map +0 -1
- package/dist/server/registry/catalog.d.ts +0 -12
- package/dist/server/registry/catalog.d.ts.map +0 -1
- package/dist/server/registry/catalog.js +0 -55
- package/dist/server/registry/catalog.js.map +0 -1
- package/dist/server/registry/discovery.d.ts +0 -16
- package/dist/server/registry/discovery.d.ts.map +0 -1
- package/dist/server/registry/discovery.js +0 -33
- package/dist/server/registry/discovery.js.map +0 -1
- package/dist/server/registry/pricing.d.ts +0 -10
- package/dist/server/registry/pricing.d.ts.map +0 -1
- package/dist/server/registry/pricing.js +0 -123
- package/dist/server/registry/pricing.js.map +0 -1
- package/dist/server/security/acl.d.ts +0 -28
- package/dist/server/security/acl.d.ts.map +0 -1
- package/dist/server/security/acl.js +0 -36
- package/dist/server/security/acl.js.map +0 -1
- package/dist/server/security/audit.d.ts +0 -15
- package/dist/server/security/audit.d.ts.map +0 -1
- package/dist/server/security/audit.js +0 -77
- package/dist/server/security/audit.js.map +0 -1
- package/dist/server/security/rate-limit.d.ts +0 -12
- package/dist/server/security/rate-limit.d.ts.map +0 -1
- package/dist/server/security/rate-limit.js +0 -72
- package/dist/server/security/rate-limit.js.map +0 -1
- package/dist/server/security/sandbox.d.ts +0 -7
- package/dist/server/security/sandbox.d.ts.map +0 -1
- package/dist/server/security/sandbox.js +0 -42
- package/dist/server/security/sandbox.js.map +0 -1
- package/dist/server/tools/agentcard.d.ts +0 -3
- package/dist/server/tools/agentcard.d.ts.map +0 -1
- package/dist/server/tools/agentcard.js +0 -118
- package/dist/server/tools/agentcard.js.map +0 -1
- package/dist/server/tools/backtest.d.ts +0 -3
- package/dist/server/tools/backtest.d.ts.map +0 -1
- package/dist/server/tools/backtest.js +0 -112
- package/dist/server/tools/backtest.js.map +0 -1
- package/dist/server/tools/brokers.d.ts +0 -3
- package/dist/server/tools/brokers.d.ts.map +0 -1
- package/dist/server/tools/brokers.js +0 -223
- package/dist/server/tools/brokers.js.map +0 -1
- package/dist/server/tools/copytrader.d.ts +0 -3
- package/dist/server/tools/copytrader.d.ts.map +0 -1
- package/dist/server/tools/copytrader.js +0 -90
- package/dist/server/tools/copytrader.js.map +0 -1
- package/dist/server/tools/crawl.d.ts +0 -3
- package/dist/server/tools/crawl.d.ts.map +0 -1
- package/dist/server/tools/crawl.js +0 -60
- package/dist/server/tools/crawl.js.map +0 -1
- package/dist/server/tools/discovery.d.ts +0 -3
- package/dist/server/tools/discovery.d.ts.map +0 -1
- package/dist/server/tools/discovery.js +0 -188
- package/dist/server/tools/discovery.js.map +0 -1
- package/dist/server/tools/echo.d.ts +0 -3
- package/dist/server/tools/echo.d.ts.map +0 -1
- package/dist/server/tools/echo.js +0 -48
- package/dist/server/tools/echo.js.map +0 -1
- package/dist/server/tools/forge.d.ts +0 -3
- package/dist/server/tools/forge.d.ts.map +0 -1
- package/dist/server/tools/forge.js +0 -77
- package/dist/server/tools/forge.js.map +0 -1
- package/dist/server/tools/ftd.d.ts +0 -3
- package/dist/server/tools/ftd.d.ts.map +0 -1
- package/dist/server/tools/ftd.js +0 -70
- package/dist/server/tools/ftd.js.map +0 -1
- package/dist/server/tools/ghost.d.ts +0 -3
- package/dist/server/tools/ghost.d.ts.map +0 -1
- package/dist/server/tools/ghost.js +0 -83
- package/dist/server/tools/ghost.js.map +0 -1
- package/dist/server/tools/index.d.ts +0 -3
- package/dist/server/tools/index.d.ts.map +0 -1
- package/dist/server/tools/index.js +0 -44
- package/dist/server/tools/index.js.map +0 -1
- package/dist/server/tools/launchpad.d.ts +0 -3
- package/dist/server/tools/launchpad.d.ts.map +0 -1
- package/dist/server/tools/launchpad.js +0 -151
- package/dist/server/tools/launchpad.js.map +0 -1
- package/dist/server/tools/leviathan.d.ts +0 -3
- package/dist/server/tools/leviathan.d.ts.map +0 -1
- package/dist/server/tools/leviathan.js +0 -73
- package/dist/server/tools/leviathan.js.map +0 -1
- package/dist/server/tools/nexus.d.ts +0 -3
- package/dist/server/tools/nexus.d.ts.map +0 -1
- package/dist/server/tools/nexus.js +0 -65
- package/dist/server/tools/nexus.js.map +0 -1
- package/dist/server/tools/proof402.d.ts +0 -3
- package/dist/server/tools/proof402.d.ts.map +0 -1
- package/dist/server/tools/proof402.js +0 -74
- package/dist/server/tools/proof402.js.map +0 -1
- package/dist/server/tools/rails.d.ts +0 -3
- package/dist/server/tools/rails.d.ts.map +0 -1
- package/dist/server/tools/rails.js +0 -82
- package/dist/server/tools/rails.js.map +0 -1
- package/dist/server/tools/shadow.d.ts +0 -3
- package/dist/server/tools/shadow.d.ts.map +0 -1
- package/dist/server/tools/shadow.js +0 -114
- package/dist/server/tools/shadow.js.map +0 -1
- package/dist/server/tools/squeezeos.d.ts +0 -3
- package/dist/server/tools/squeezeos.d.ts.map +0 -1
- package/dist/server/tools/squeezeos.js +0 -231
- package/dist/server/tools/squeezeos.js.map +0 -1
- package/dist/server/tools/xdeo.d.ts +0 -3
- package/dist/server/tools/xdeo.d.ts.map +0 -1
- package/dist/server/tools/xdeo.js +0 -58
- package/dist/server/tools/xdeo.js.map +0 -1
- package/dist/server/tools/xmit.d.ts +0 -3
- package/dist/server/tools/xmit.d.ts.map +0 -1
- package/dist/server/tools/xmit.js +0 -59
- package/dist/server/tools/xmit.js.map +0 -1
- package/server.json +0 -52
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CreditBureau = void 0;
|
|
4
|
-
const SCORE_CACHE_TTL = 300_000; // 5 minutes
|
|
5
|
-
// Dedicated Agent Credit Bureau (primary) — FICO 300-850 for XRPL wallets
|
|
6
|
-
const BUREAU_PRIMARY = process.env['AGENT_CREDIT_BUREAU_URL'] ?? 'https://sml-agent-credit-bureau.onrender.com';
|
|
7
|
-
// 402Proof (fallback) — legacy endpoint
|
|
8
|
-
const BUREAU_FALLBACK = process.env['PROOF402_URL'] ?? 'https://four02proof.onrender.com';
|
|
9
|
-
class CreditBureau {
|
|
10
|
-
static instance;
|
|
11
|
-
cache = new Map();
|
|
12
|
-
constructor() { }
|
|
13
|
-
static getInstance() {
|
|
14
|
-
if (!CreditBureau.instance) {
|
|
15
|
-
CreditBureau.instance = new CreditBureau();
|
|
16
|
-
}
|
|
17
|
-
return CreditBureau.instance;
|
|
18
|
-
}
|
|
19
|
-
async getScore(wallet) {
|
|
20
|
-
const now = Date.now();
|
|
21
|
-
const cached = this.cache.get(wallet);
|
|
22
|
-
if (cached && now - cached.fetchedAt < SCORE_CACHE_TTL) {
|
|
23
|
-
return cached.score;
|
|
24
|
-
}
|
|
25
|
-
// Try dedicated Agent Credit Bureau first
|
|
26
|
-
try {
|
|
27
|
-
const res = await fetch(`${BUREAU_PRIMARY}/v1/agent/score?wallet=${encodeURIComponent(wallet)}`, { signal: AbortSignal.timeout(5000) });
|
|
28
|
-
if (res.ok) {
|
|
29
|
-
const body = (await res.json());
|
|
30
|
-
this.cache.set(wallet, { score: body.score, grade: body.grade ?? 'D', fetchedAt: now });
|
|
31
|
-
return body.score;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
catch {
|
|
35
|
-
// Fall through to legacy endpoint
|
|
36
|
-
}
|
|
37
|
-
// Fallback: 402Proof legacy endpoint
|
|
38
|
-
try {
|
|
39
|
-
const res = await fetch(`${BUREAU_FALLBACK}/v1/score/${wallet}`, {
|
|
40
|
-
signal: AbortSignal.timeout(5000),
|
|
41
|
-
});
|
|
42
|
-
if (res.ok) {
|
|
43
|
-
const body = (await res.json());
|
|
44
|
-
this.cache.set(wallet, { score: body.score, grade: 'D', fetchedAt: now });
|
|
45
|
-
return body.score;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
catch {
|
|
49
|
-
// Fall through to default
|
|
50
|
-
}
|
|
51
|
-
// Default score for new/unknown agents
|
|
52
|
-
const defaultScore = 300;
|
|
53
|
-
this.cache.set(wallet, { score: defaultScore, grade: 'D', fetchedAt: now });
|
|
54
|
-
return defaultScore;
|
|
55
|
-
}
|
|
56
|
-
async getFullScore(wallet) {
|
|
57
|
-
try {
|
|
58
|
-
const res = await fetch(`${BUREAU_PRIMARY}/v1/agent/score?wallet=${encodeURIComponent(wallet)}`, { signal: AbortSignal.timeout(5000) });
|
|
59
|
-
if (res.ok) {
|
|
60
|
-
const body = (await res.json());
|
|
61
|
-
this.cache.set(wallet, { score: body.score, grade: body.grade, fetchedAt: Date.now() });
|
|
62
|
-
return body;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
catch {
|
|
66
|
-
// Fall through
|
|
67
|
-
}
|
|
68
|
-
const score = await this.getScore(wallet);
|
|
69
|
-
return { score, grade: 'D', risk: 'VERY_HIGH', creditLimit: 0, cached: false };
|
|
70
|
-
}
|
|
71
|
-
async incrementScore(wallet, delta) {
|
|
72
|
-
try {
|
|
73
|
-
// Notify legacy endpoint (bureau doesn't expose increment — it reads from XRPL)
|
|
74
|
-
await fetch(`${BUREAU_FALLBACK}/v1/score/${wallet}/increment`, {
|
|
75
|
-
method: 'POST',
|
|
76
|
-
headers: { 'Content-Type': 'application/json' },
|
|
77
|
-
body: JSON.stringify({ delta }),
|
|
78
|
-
signal: AbortSignal.timeout(3000),
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
catch {
|
|
82
|
-
// Non-fatal
|
|
83
|
-
}
|
|
84
|
-
this.cache.delete(wallet);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
exports.CreditBureau = CreditBureau;
|
|
88
|
-
//# sourceMappingURL=bureau.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bureau.js","sourceRoot":"","sources":["../../../src/lib/credit/bureau.ts"],"names":[],"mappings":";;;AAMA,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,YAAY;AAE7C,0EAA0E;AAC1E,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,8CAA8C,CAAC;AAChH,wCAAwC;AACxC,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,kCAAkC,CAAC;AAE1F,MAAa,YAAY;IACf,MAAM,CAAC,QAAQ,CAAe;IACrB,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;IAEvD,gBAAuB,CAAC;IAExB,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC3B,YAAY,CAAC,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QAC7C,CAAC;QACD,OAAO,YAAY,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEtC,IAAI,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,GAAG,eAAe,EAAE,CAAC;YACvD,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB,CAAC;QAED,0CAA0C;QAC1C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,GAAG,cAAc,0BAA0B,kBAAkB,CAAC,MAAM,CAAC,EAAE,EACvE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CACtC,CAAC;YACF,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACX,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAqC,CAAC;gBACpE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;gBACxF,OAAO,IAAI,CAAC,KAAK,CAAC;YACpB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kCAAkC;QACpC,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,eAAe,aAAa,MAAM,EAAE,EAAE;gBAC/D,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;aAClC,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACX,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAsB,CAAC;gBACrD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC1E,OAAO,IAAI,CAAC,KAAK,CAAC;YACpB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;QAED,uCAAuC;QACvC,MAAM,YAAY,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5E,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc;QAC/B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,GAAG,cAAc,0BAA0B,kBAAkB,CAAC,MAAM,CAAC,EAAE,EACvE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CACtC,CAAC;YACF,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACX,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyF,CAAC;gBACxH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACxF,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,eAAe;QACjB,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC1C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACjF,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,KAAa;QAChD,IAAI,CAAC;YACH,gFAAgF;YAChF,MAAM,KAAK,CAAC,GAAG,eAAe,aAAa,MAAM,YAAY,EAAE;gBAC7D,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;gBAC/B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;aAClC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;CACF;AAxFD,oCAwFC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export interface AgentCardMintParams {
|
|
2
|
-
walletAddress: string;
|
|
3
|
-
name: string;
|
|
4
|
-
did?: string;
|
|
5
|
-
metadata?: Record<string, unknown>;
|
|
6
|
-
}
|
|
7
|
-
export interface AgentCardVerifyParams {
|
|
8
|
-
walletAddress: string;
|
|
9
|
-
message: string;
|
|
10
|
-
signature: string;
|
|
11
|
-
}
|
|
12
|
-
export declare const AgentCardAPI: {
|
|
13
|
-
lookup: (walletOrDid: string) => Promise<unknown>;
|
|
14
|
-
verify: (params: AgentCardVerifyParams) => Promise<unknown>;
|
|
15
|
-
mint: (params: AgentCardMintParams) => Promise<unknown>;
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=agentcard.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agentcard.d.ts","sourceRoot":"","sources":["../../../src/lib/sml-api/agentcard.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAaD,eAAO,MAAM,YAAY;0BACD,MAAM;qBACX,qBAAqB;mBACvB,mBAAmB;CACnC,CAAC"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AgentCardAPI = void 0;
|
|
4
|
-
const AGENTCARD_BASE = process.env['AGENTCARD_URL'] ?? 'https://agentcard.onrender.com';
|
|
5
|
-
async function acGet(path) {
|
|
6
|
-
const res = await fetch(`${AGENTCARD_BASE}${path}`, {
|
|
7
|
-
headers: { 'Accept': 'application/json' },
|
|
8
|
-
signal: AbortSignal.timeout(10_000),
|
|
9
|
-
});
|
|
10
|
-
if (!res.ok)
|
|
11
|
-
throw new Error(`AgentCard GET ${path}: HTTP ${res.status}`);
|
|
12
|
-
return res.json();
|
|
13
|
-
}
|
|
14
|
-
async function acPost(path, body) {
|
|
15
|
-
const res = await fetch(`${AGENTCARD_BASE}${path}`, {
|
|
16
|
-
method: 'POST',
|
|
17
|
-
headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' },
|
|
18
|
-
body: JSON.stringify(body),
|
|
19
|
-
signal: AbortSignal.timeout(15_000),
|
|
20
|
-
});
|
|
21
|
-
if (!res.ok)
|
|
22
|
-
throw new Error(`AgentCard POST ${path}: HTTP ${res.status}`);
|
|
23
|
-
return res.json();
|
|
24
|
-
}
|
|
25
|
-
exports.AgentCardAPI = {
|
|
26
|
-
lookup: (walletOrDid) => acGet(`/v1/card/${encodeURIComponent(walletOrDid)}`),
|
|
27
|
-
verify: (params) => acPost('/v1/verify', params),
|
|
28
|
-
mint: (params) => acPost('/v1/mint', params),
|
|
29
|
-
};
|
|
30
|
-
//# sourceMappingURL=agentcard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agentcard.js","sourceRoot":"","sources":["../../../src/lib/sml-api/agentcard.ts"],"names":[],"mappings":";;;AAAA,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,gCAAgC,CAAC;AAExF,KAAK,UAAU,KAAK,CAAC,IAAY;IAC/B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,cAAc,GAAG,IAAI,EAAE,EAAE;QAClD,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE;QACzC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;KACpC,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,UAAU,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1E,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAeD,KAAK,UAAU,MAAM,CAAC,IAAY,EAAE,IAAa;IAC/C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,cAAc,GAAG,IAAI,EAAE,EAAE;QAClD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC7E,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAC1B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;KACpC,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,UAAU,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3E,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAEY,QAAA,YAAY,GAAG;IAC1B,MAAM,EAAE,CAAC,WAAmB,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;IACrF,MAAM,EAAE,CAAC,MAA6B,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC;IACvE,IAAI,EAAE,CAAC,MAA2B,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC;CAClE,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export interface BacktestParams {
|
|
2
|
-
ticker: string;
|
|
3
|
-
lookback_days?: number;
|
|
4
|
-
signals?: number[];
|
|
5
|
-
fees?: number;
|
|
6
|
-
slippage?: number;
|
|
7
|
-
momentum_window?: number;
|
|
8
|
-
momentum_threshold?: number;
|
|
9
|
-
}
|
|
10
|
-
export interface ValidateParams {
|
|
11
|
-
ticker: string;
|
|
12
|
-
lookback_days?: number;
|
|
13
|
-
train_ratio?: number;
|
|
14
|
-
fees?: number;
|
|
15
|
-
slippage?: number;
|
|
16
|
-
}
|
|
17
|
-
export declare const BacktestAPI: {
|
|
18
|
-
health: () => Promise<unknown>;
|
|
19
|
-
backtest: (params: BacktestParams) => Promise<unknown>;
|
|
20
|
-
walkForward: (params: ValidateParams) => Promise<unknown>;
|
|
21
|
-
};
|
|
22
|
-
//# sourceMappingURL=backtest.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backtest.d.ts","sourceRoot":"","sources":["../../../src/lib/sml-api/backtest.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAgBD,eAAO,MAAM,WAAW;kBACJ,OAAO,CAAC,OAAO,CAAC;uBAKf,cAAc,KAAG,OAAO,CAAC,OAAO,CAAC;0BAE9B,cAAc,KAAG,OAAO,CAAC,OAAO,CAAC;CACxD,CAAC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// backtester-mcp microservice client
|
|
3
|
-
// Wraps the Python backtest_service.py running at BACKTEST_BASE_URL
|
|
4
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.BacktestAPI = void 0;
|
|
6
|
-
const BASE = process.env.BACKTEST_BASE_URL ?? 'http://localhost:8300';
|
|
7
|
-
async function post(path, body) {
|
|
8
|
-
const res = await fetch(`${BASE}${path}`, {
|
|
9
|
-
method: 'POST',
|
|
10
|
-
headers: { 'Content-Type': 'application/json' },
|
|
11
|
-
body: JSON.stringify(body),
|
|
12
|
-
signal: AbortSignal.timeout(30_000),
|
|
13
|
-
});
|
|
14
|
-
if (!res.ok) {
|
|
15
|
-
const err = await res.json().catch(() => ({ error: res.statusText }));
|
|
16
|
-
throw new Error(err.error ?? res.statusText);
|
|
17
|
-
}
|
|
18
|
-
return res.json();
|
|
19
|
-
}
|
|
20
|
-
exports.BacktestAPI = {
|
|
21
|
-
health: async () => {
|
|
22
|
-
const res = await fetch(`${BASE}/health`, { signal: AbortSignal.timeout(5_000) });
|
|
23
|
-
return res.json();
|
|
24
|
-
},
|
|
25
|
-
backtest: (params) => post('/backtest', params),
|
|
26
|
-
walkForward: (params) => post('/validate', params),
|
|
27
|
-
};
|
|
28
|
-
//# sourceMappingURL=backtest.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backtest.js","sourceRoot":"","sources":["../../../src/lib/sml-api/backtest.ts"],"names":[],"mappings":";AAAA,qCAAqC;AACrC,oEAAoE;;;AAEpE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,uBAAuB,CAAC;AAoBtE,KAAK,UAAU,IAAI,CAAC,IAAY,EAAE,IAAY;IAC5C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE;QACxC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAC1B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;KACpC,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACtE,MAAM,IAAI,KAAK,CAAE,GAA0B,CAAC,KAAK,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAEY,QAAA,WAAW,GAAG;IACzB,MAAM,EAAE,KAAK,IAAsB,EAAE;QACnC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,SAAS,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClF,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAED,QAAQ,EAAE,CAAC,MAAsB,EAAoB,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;IAEjF,WAAW,EAAE,CAAC,MAAsB,EAAoB,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;CACrF,CAAC"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
export interface TradierQuoteParams {
|
|
2
|
-
symbols: string;
|
|
3
|
-
}
|
|
4
|
-
export interface TradierOrderParams {
|
|
5
|
-
account_id: string;
|
|
6
|
-
symbol: string;
|
|
7
|
-
side: 'buy' | 'sell';
|
|
8
|
-
quantity: number;
|
|
9
|
-
type: 'market' | 'limit' | 'stop' | 'stop_limit';
|
|
10
|
-
duration: 'day' | 'gtc' | 'pre' | 'post';
|
|
11
|
-
price?: number;
|
|
12
|
-
stop?: number;
|
|
13
|
-
}
|
|
14
|
-
export declare const TradierAPI: {
|
|
15
|
-
quote: (params: TradierQuoteParams) => Promise<unknown>;
|
|
16
|
-
optionChain: (symbol: string, expiration: string) => Promise<unknown>;
|
|
17
|
-
order: (params: TradierOrderParams) => Promise<unknown>;
|
|
18
|
-
positions: (account_id: string) => Promise<unknown>;
|
|
19
|
-
balances: (account_id: string) => Promise<unknown>;
|
|
20
|
-
orderStatus: (account_id: string, order_id: string) => Promise<unknown>;
|
|
21
|
-
};
|
|
22
|
-
export interface RobinhoodOrderParams {
|
|
23
|
-
symbol: string;
|
|
24
|
-
side: 'buy' | 'sell';
|
|
25
|
-
quantity: number;
|
|
26
|
-
type: 'market' | 'limit';
|
|
27
|
-
time_in_force: 'gfd' | 'gtc' | 'ioc' | 'opg';
|
|
28
|
-
price?: number;
|
|
29
|
-
}
|
|
30
|
-
export declare const RobinhoodAPI: {
|
|
31
|
-
quote: (symbol: string) => Promise<{}>;
|
|
32
|
-
instruments: (symbol: string) => Promise<{
|
|
33
|
-
url: string;
|
|
34
|
-
} | undefined>;
|
|
35
|
-
order: (params: RobinhoodOrderParams) => Promise<unknown>;
|
|
36
|
-
portfolio: () => Promise<unknown>;
|
|
37
|
-
positions: () => Promise<unknown>;
|
|
38
|
-
orderHistory: () => Promise<unknown>;
|
|
39
|
-
};
|
|
40
|
-
//# sourceMappingURL=brokers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"brokers.d.ts","sourceRoot":"","sources":["../../../src/lib/sml-api/brokers.ts"],"names":[],"mappings":"AAwEA,MAAM,WAAW,kBAAkB;IAAG,OAAO,EAAE,MAAM,CAAA;CAAE;AACvD,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,YAAY,CAAC;IACjD,QAAQ,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,UAAU;oBACL,kBAAkB;0BAGZ,MAAM,cAAc,MAAM;oBAGhC,kBAAkB;4BAcV,MAAM;2BAGP,MAAM;8BAGH,MAAM,YAAY,MAAM;CAEnD,CAAC;AAIF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,aAAa,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,YAAY;oBACD,MAAM;0BAKA,MAAM;aACwD,MAAM;;oBAI1E,oBAAoB;;;;CAsB3C,CAAC"}
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// Broker execution rails — Robinhood + Tradier
|
|
3
|
-
// Robinhood: OAuth2 Bearer token (ROBINHOOD_ACCESS_TOKEN env)
|
|
4
|
-
// Tradier: Bearer token (TRADIER_API_KEY env, TRADIER_ENV=sandbox|production)
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.RobinhoodAPI = exports.TradierAPI = void 0;
|
|
7
|
-
const TRADIER_BASE = process.env.TRADIER_ENV === 'production'
|
|
8
|
-
? 'https://api.tradier.com/v1'
|
|
9
|
-
: 'https://sandbox.tradier.com/v1';
|
|
10
|
-
const ROBINHOOD_BASE = 'https://api.robinhood.com';
|
|
11
|
-
// ── Shared fetch helpers ────────────────────────────────────────────────────
|
|
12
|
-
async function tradierGet(path, params) {
|
|
13
|
-
const token = process.env.TRADIER_API_KEY;
|
|
14
|
-
if (!token)
|
|
15
|
-
throw new Error('TRADIER_API_KEY not configured');
|
|
16
|
-
const url = new URL(`${TRADIER_BASE}${path}`);
|
|
17
|
-
if (params)
|
|
18
|
-
Object.entries(params).forEach(([k, v]) => url.searchParams.set(k, v));
|
|
19
|
-
const res = await fetch(url.toString(), {
|
|
20
|
-
headers: { Authorization: `Bearer ${token}`, Accept: 'application/json' },
|
|
21
|
-
signal: AbortSignal.timeout(10_000),
|
|
22
|
-
});
|
|
23
|
-
if (!res.ok)
|
|
24
|
-
throw new Error(`Tradier ${res.status}: ${res.statusText}`);
|
|
25
|
-
return res.json();
|
|
26
|
-
}
|
|
27
|
-
async function tradierPost(path, body) {
|
|
28
|
-
const token = process.env.TRADIER_API_KEY;
|
|
29
|
-
if (!token)
|
|
30
|
-
throw new Error('TRADIER_API_KEY not configured');
|
|
31
|
-
const res = await fetch(`${TRADIER_BASE}${path}`, {
|
|
32
|
-
method: 'POST',
|
|
33
|
-
headers: {
|
|
34
|
-
Authorization: `Bearer ${token}`,
|
|
35
|
-
Accept: 'application/json',
|
|
36
|
-
'Content-Type': 'application/x-www-form-urlencoded',
|
|
37
|
-
},
|
|
38
|
-
body: new URLSearchParams(body).toString(),
|
|
39
|
-
signal: AbortSignal.timeout(10_000),
|
|
40
|
-
});
|
|
41
|
-
if (!res.ok)
|
|
42
|
-
throw new Error(`Tradier ${res.status}: ${res.statusText}`);
|
|
43
|
-
return res.json();
|
|
44
|
-
}
|
|
45
|
-
async function robinhoodGet(path) {
|
|
46
|
-
const token = process.env.ROBINHOOD_ACCESS_TOKEN;
|
|
47
|
-
if (!token)
|
|
48
|
-
throw new Error('ROBINHOOD_ACCESS_TOKEN not configured');
|
|
49
|
-
const res = await fetch(`${ROBINHOOD_BASE}${path}`, {
|
|
50
|
-
headers: { Authorization: `Bearer ${token}`, Accept: 'application/json' },
|
|
51
|
-
signal: AbortSignal.timeout(10_000),
|
|
52
|
-
});
|
|
53
|
-
if (!res.ok)
|
|
54
|
-
throw new Error(`Robinhood ${res.status}: ${res.statusText}`);
|
|
55
|
-
return res.json();
|
|
56
|
-
}
|
|
57
|
-
async function robinhoodPost(path, body) {
|
|
58
|
-
const token = process.env.ROBINHOOD_ACCESS_TOKEN;
|
|
59
|
-
if (!token)
|
|
60
|
-
throw new Error('ROBINHOOD_ACCESS_TOKEN not configured');
|
|
61
|
-
const res = await fetch(`${ROBINHOOD_BASE}${path}`, {
|
|
62
|
-
method: 'POST',
|
|
63
|
-
headers: {
|
|
64
|
-
Authorization: `Bearer ${token}`,
|
|
65
|
-
Accept: 'application/json',
|
|
66
|
-
'Content-Type': 'application/json',
|
|
67
|
-
},
|
|
68
|
-
body: JSON.stringify(body),
|
|
69
|
-
signal: AbortSignal.timeout(10_000),
|
|
70
|
-
});
|
|
71
|
-
if (!res.ok)
|
|
72
|
-
throw new Error(`Robinhood ${res.status}: ${res.statusText}`);
|
|
73
|
-
return res.json();
|
|
74
|
-
}
|
|
75
|
-
exports.TradierAPI = {
|
|
76
|
-
quote: (params) => tradierGet('/markets/quotes', { symbols: params.symbols, greeks: 'false' }),
|
|
77
|
-
optionChain: (symbol, expiration) => tradierGet('/markets/options/chains', { symbol, expiration, greeks: 'true' }),
|
|
78
|
-
order: (params) => {
|
|
79
|
-
const body = {
|
|
80
|
-
class: 'equity',
|
|
81
|
-
symbol: params.symbol,
|
|
82
|
-
side: params.side,
|
|
83
|
-
quantity: String(params.quantity),
|
|
84
|
-
type: params.type,
|
|
85
|
-
duration: params.duration,
|
|
86
|
-
};
|
|
87
|
-
if (params.price !== undefined)
|
|
88
|
-
body.price = String(params.price);
|
|
89
|
-
if (params.stop !== undefined)
|
|
90
|
-
body.stop = String(params.stop);
|
|
91
|
-
return tradierPost(`/accounts/${params.account_id}/orders`, body);
|
|
92
|
-
},
|
|
93
|
-
positions: (account_id) => tradierGet(`/accounts/${account_id}/positions`),
|
|
94
|
-
balances: (account_id) => tradierGet(`/accounts/${account_id}/balances`),
|
|
95
|
-
orderStatus: (account_id, order_id) => tradierGet(`/accounts/${account_id}/orders/${order_id}`),
|
|
96
|
-
};
|
|
97
|
-
exports.RobinhoodAPI = {
|
|
98
|
-
quote: async (symbol) => {
|
|
99
|
-
const data = await robinhoodGet(`/quotes/?symbols=${symbol}`);
|
|
100
|
-
return data.results?.[0] ?? data;
|
|
101
|
-
},
|
|
102
|
-
instruments: async (symbol) => {
|
|
103
|
-
const data = await robinhoodGet(`/instruments/?symbol=${symbol}`);
|
|
104
|
-
return data.results?.[0];
|
|
105
|
-
},
|
|
106
|
-
order: async (params) => {
|
|
107
|
-
const instrument = await exports.RobinhoodAPI.instruments(params.symbol);
|
|
108
|
-
if (!instrument?.url)
|
|
109
|
-
throw new Error(`Instrument not found: ${params.symbol}`);
|
|
110
|
-
const body = {
|
|
111
|
-
account: `/accounts/${process.env.ROBINHOOD_ACCOUNT_ID}/`,
|
|
112
|
-
instrument: instrument.url,
|
|
113
|
-
symbol: params.symbol,
|
|
114
|
-
side: params.side,
|
|
115
|
-
quantity: params.quantity,
|
|
116
|
-
type: params.type,
|
|
117
|
-
time_in_force: params.time_in_force,
|
|
118
|
-
trigger: 'immediate',
|
|
119
|
-
};
|
|
120
|
-
if (params.price !== undefined)
|
|
121
|
-
body.price = String(params.price);
|
|
122
|
-
return robinhoodPost('/orders/', body);
|
|
123
|
-
},
|
|
124
|
-
portfolio: () => robinhoodGet('/portfolios/'),
|
|
125
|
-
positions: () => robinhoodGet('/positions/?nonzero=true'),
|
|
126
|
-
orderHistory: () => robinhoodGet('/orders/?page_size=20'),
|
|
127
|
-
};
|
|
128
|
-
//# sourceMappingURL=brokers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"brokers.js","sourceRoot":"","sources":["../../../src/lib/sml-api/brokers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export interface CopyTraderSubscribeParams {
|
|
2
|
-
whaleAddress: string;
|
|
3
|
-
subscriberAddress: string;
|
|
4
|
-
maxCopyAmountXrp: number;
|
|
5
|
-
}
|
|
6
|
-
export declare const CopyTraderAPI: {
|
|
7
|
-
status: () => Promise<unknown>;
|
|
8
|
-
whales: () => Promise<unknown>;
|
|
9
|
-
subscribe: (params: CopyTraderSubscribeParams) => Promise<unknown>;
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=copytrader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"copytrader.d.ts","sourceRoot":"","sources":["../../../src/lib/sml-api/copytrader.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAaD,eAAO,MAAM,aAAa;;;wBAGJ,yBAAyB;CAC9C,CAAC"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CopyTraderAPI = void 0;
|
|
4
|
-
const COPYTRADER_BASE = process.env['SML_COPYTRADER_URL'] ?? 'https://sml-copytrader.onrender.com';
|
|
5
|
-
async function ctGet(path) {
|
|
6
|
-
const res = await fetch(`${COPYTRADER_BASE}${path}`, {
|
|
7
|
-
headers: { 'Accept': 'application/json' },
|
|
8
|
-
signal: AbortSignal.timeout(15_000),
|
|
9
|
-
});
|
|
10
|
-
if (!res.ok)
|
|
11
|
-
throw new Error(`CopyTrader GET ${path}: HTTP ${res.status}`);
|
|
12
|
-
return res.json();
|
|
13
|
-
}
|
|
14
|
-
async function ctPost(path, body) {
|
|
15
|
-
const res = await fetch(`${COPYTRADER_BASE}${path}`, {
|
|
16
|
-
method: 'POST',
|
|
17
|
-
headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' },
|
|
18
|
-
body: JSON.stringify(body),
|
|
19
|
-
signal: AbortSignal.timeout(15_000),
|
|
20
|
-
});
|
|
21
|
-
if (!res.ok)
|
|
22
|
-
throw new Error(`CopyTrader POST ${path}: HTTP ${res.status}`);
|
|
23
|
-
return res.json();
|
|
24
|
-
}
|
|
25
|
-
exports.CopyTraderAPI = {
|
|
26
|
-
status: () => ctGet('/status'),
|
|
27
|
-
whales: () => ctGet('/whales'),
|
|
28
|
-
subscribe: (params) => ctPost('/subscribe', params),
|
|
29
|
-
};
|
|
30
|
-
//# sourceMappingURL=copytrader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"copytrader.js","sourceRoot":"","sources":["../../../src/lib/sml-api/copytrader.ts"],"names":[],"mappings":";;;AAAA,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,qCAAqC,CAAC;AAEnG,KAAK,UAAU,KAAK,CAAC,IAAY;IAC/B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,eAAe,GAAG,IAAI,EAAE,EAAE;QACnD,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE;QACzC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;KACpC,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,UAAU,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3E,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAQD,KAAK,UAAU,MAAM,CAAC,IAAY,EAAE,IAAa;IAC/C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,eAAe,GAAG,IAAI,EAAE,EAAE;QACnD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC7E,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAC1B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;KACpC,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,UAAU,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAEY,QAAA,aAAa,GAAG;IAC3B,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IAC9B,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IAC9B,SAAS,EAAE,CAAC,MAAiC,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/E,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export interface CrawlParams {
|
|
2
|
-
url: string;
|
|
3
|
-
extract: 'text' | 'links' | 'tables' | 'structured' | 'all';
|
|
4
|
-
userAgent?: string;
|
|
5
|
-
}
|
|
6
|
-
export interface CrawlResult {
|
|
7
|
-
url: string;
|
|
8
|
-
content: string | unknown;
|
|
9
|
-
status_code: number;
|
|
10
|
-
content_type: string;
|
|
11
|
-
fetched_at: string;
|
|
12
|
-
}
|
|
13
|
-
export declare class CrawlClient {
|
|
14
|
-
private static instance;
|
|
15
|
-
private readonly baseUrl;
|
|
16
|
-
private constructor();
|
|
17
|
-
static getInstance(): CrawlClient;
|
|
18
|
-
fetch(params: CrawlParams): Promise<CrawlResult>;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=crawl.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"crawl.d.ts","sourceRoot":"","sources":["../../../src/lib/sml-api/crawl.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,KAAK,CAAC;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,OAAO;IAIP,MAAM,CAAC,WAAW,IAAI,WAAW;IAO3B,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAcvD"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CrawlClient = void 0;
|
|
4
|
-
class CrawlClient {
|
|
5
|
-
static instance;
|
|
6
|
-
baseUrl;
|
|
7
|
-
constructor() {
|
|
8
|
-
this.baseUrl = process.env['SML_API_BASE'] ?? 'https://api.scriptmasterlabs.com';
|
|
9
|
-
}
|
|
10
|
-
static getInstance() {
|
|
11
|
-
if (!CrawlClient.instance) {
|
|
12
|
-
CrawlClient.instance = new CrawlClient();
|
|
13
|
-
}
|
|
14
|
-
return CrawlClient.instance;
|
|
15
|
-
}
|
|
16
|
-
async fetch(params) {
|
|
17
|
-
const res = await fetch(`${this.baseUrl}/crawl/v1/fetch`, {
|
|
18
|
-
method: 'POST',
|
|
19
|
-
headers: {
|
|
20
|
-
'Content-Type': 'application/json',
|
|
21
|
-
...(params.userAgent ? { 'X-Crawl-User-Agent': params.userAgent } : {}),
|
|
22
|
-
},
|
|
23
|
-
body: JSON.stringify({ url: params.url, extract: params.extract }),
|
|
24
|
-
signal: AbortSignal.timeout(30_000),
|
|
25
|
-
});
|
|
26
|
-
if (!res.ok)
|
|
27
|
-
throw new Error(`Crawl API error: HTTP ${res.status}`);
|
|
28
|
-
return res.json();
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
exports.CrawlClient = CrawlClient;
|
|
32
|
-
//# sourceMappingURL=crawl.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"crawl.js","sourceRoot":"","sources":["../../../src/lib/sml-api/crawl.ts"],"names":[],"mappings":";;;AAcA,MAAa,WAAW;IACd,MAAM,CAAC,QAAQ,CAAc;IACpB,OAAO,CAAS;IAEjC;QACE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,kCAAkC,CAAC;IACnF,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC1B,WAAW,CAAC,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;QAC3C,CAAC;QACD,OAAO,WAAW,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAmB;QAC7B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,iBAAiB,EAAE;YACxD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxE;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;YAClE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;SACpC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,OAAO,GAAG,CAAC,IAAI,EAA0B,CAAC;IAC5C,CAAC;CACF;AA7BD,kCA6BC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export interface EchoPatternParams {
|
|
2
|
-
symbol: string;
|
|
3
|
-
lookbackDays: number;
|
|
4
|
-
topN?: number;
|
|
5
|
-
walletAddress: string;
|
|
6
|
-
}
|
|
7
|
-
export declare const EchoForgeAPI: {
|
|
8
|
-
patternMatch: (params: EchoPatternParams) => Promise<unknown>;
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=echo.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"echo.d.ts","sourceRoot":"","sources":["../../../src/lib/sml-api/echo.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,YAAY;2BACM,iBAAiB,KAAG,OAAO,CAAC,OAAO,CAAC;CAgBlE,CAAC"}
|
package/dist/lib/sml-api/echo.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// echo-forge — historical pattern similarity engine (Polygon.io + ML cosine similarity)
|
|
3
|
-
// Status: NOT YET DEPLOYED. Returns informative stub response until service is live.
|
|
4
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.EchoForgeAPI = void 0;
|
|
6
|
-
exports.EchoForgeAPI = {
|
|
7
|
-
patternMatch: async (params) => {
|
|
8
|
-
// Service not yet deployed to Render — surface clear coming-soon message.
|
|
9
|
-
return {
|
|
10
|
-
status: 'coming_soon',
|
|
11
|
-
service: 'echo-forge',
|
|
12
|
-
message: 'echo-forge (historical pattern similarity engine) is not yet deployed. ' +
|
|
13
|
-
'It uses Polygon.io data + ML cosine similarity to find historical analogs. ' +
|
|
14
|
-
'Check https://github.com/Timwal78/echo-forge for status updates.',
|
|
15
|
-
params_received: {
|
|
16
|
-
symbol: params.symbol,
|
|
17
|
-
lookback_days: params.lookbackDays,
|
|
18
|
-
top_n: params.topN ?? 5,
|
|
19
|
-
},
|
|
20
|
-
};
|
|
21
|
-
},
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=echo.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"echo.js","sourceRoot":"","sources":["../../../src/lib/sml-api/echo.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,qFAAqF;;;AASxE,QAAA,YAAY,GAAG;IAC1B,YAAY,EAAE,KAAK,EAAE,MAAyB,EAAoB,EAAE;QAClE,0EAA0E;QAC1E,OAAO;YACL,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,YAAY;YACrB,OAAO,EACL,yEAAyE;gBACzE,6EAA6E;gBAC7E,kEAAkE;YACpE,eAAe,EAAE;gBACf,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,aAAa,EAAE,MAAM,CAAC,YAAY;gBAClC,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC;aACxB;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export interface ForgeLLMParams {
|
|
2
|
-
model: string;
|
|
3
|
-
prompt: string;
|
|
4
|
-
maxTokens?: number;
|
|
5
|
-
walletAddress: string;
|
|
6
|
-
}
|
|
7
|
-
export declare const ForgeGatewayAPI: {
|
|
8
|
-
status: () => Promise<unknown>;
|
|
9
|
-
llm: (params: ForgeLLMParams) => Promise<unknown>;
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=forge.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"forge.d.ts","sourceRoot":"","sources":["../../../src/lib/sml-api/forge.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AAaD,eAAO,MAAM,eAAe;;kBAEZ,cAAc;CAC7B,CAAC"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ForgeGatewayAPI = void 0;
|
|
4
|
-
const FORGE_BASE = process.env['FORGE_GATEWAY_URL'] ?? 'https://forge-gateway-a822.onrender.com';
|
|
5
|
-
async function forgeGet(path) {
|
|
6
|
-
const res = await fetch(`${FORGE_BASE}${path}`, {
|
|
7
|
-
headers: { 'Accept': 'application/json' },
|
|
8
|
-
signal: AbortSignal.timeout(15_000),
|
|
9
|
-
});
|
|
10
|
-
if (!res.ok)
|
|
11
|
-
throw new Error(`Forge Gateway GET ${path}: HTTP ${res.status}`);
|
|
12
|
-
return res.json();
|
|
13
|
-
}
|
|
14
|
-
async function forgePost(path, body) {
|
|
15
|
-
const res = await fetch(`${FORGE_BASE}${path}`, {
|
|
16
|
-
method: 'POST',
|
|
17
|
-
headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' },
|
|
18
|
-
body: JSON.stringify(body),
|
|
19
|
-
signal: AbortSignal.timeout(60_000),
|
|
20
|
-
});
|
|
21
|
-
if (!res.ok)
|
|
22
|
-
throw new Error(`Forge Gateway POST ${path}: HTTP ${res.status}`);
|
|
23
|
-
return res.json();
|
|
24
|
-
}
|
|
25
|
-
exports.ForgeGatewayAPI = {
|
|
26
|
-
status: () => forgeGet('/health'),
|
|
27
|
-
llm: (params) => forgePost('/v1/llm', params),
|
|
28
|
-
};
|
|
29
|
-
//# sourceMappingURL=forge.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"forge.js","sourceRoot":"","sources":["../../../src/lib/sml-api/forge.ts"],"names":[],"mappings":";;;AAAA,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,yCAAyC,CAAC;AAEjG,KAAK,UAAU,QAAQ,CAAC,IAAY;IAClC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,UAAU,GAAG,IAAI,EAAE,EAAE;QAC9C,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE;QACzC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;KACpC,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,UAAU,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9E,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AASD,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,IAAa;IAClD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,UAAU,GAAG,IAAI,EAAE,EAAE;QAC9C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC7E,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAC1B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;KACpC,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,UAAU,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/E,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAEY,QAAA,eAAe,GAAG;IAC7B,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;IACjC,GAAG,EAAE,CAAC,MAAsB,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;CAC9D,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export interface FtdAlertParams {
|
|
2
|
-
ticker?: string;
|
|
3
|
-
minSpikeMultiplier: number;
|
|
4
|
-
}
|
|
5
|
-
export interface FtdScanParams {
|
|
6
|
-
ticker?: string;
|
|
7
|
-
scanType: 'full' | 'spike_history';
|
|
8
|
-
minSpikeMultiplier: number;
|
|
9
|
-
}
|
|
10
|
-
export declare class FtdClient {
|
|
11
|
-
private static instance;
|
|
12
|
-
private readonly baseUrl;
|
|
13
|
-
private constructor();
|
|
14
|
-
static getInstance(): FtdClient;
|
|
15
|
-
getAlerts(params: FtdAlertParams): Promise<unknown>;
|
|
16
|
-
getFullScan(params: FtdScanParams): Promise<unknown>;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=ftd.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ftd.d.ts","sourceRoot":"","sources":["../../../src/lib/sml-api/ftd.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,eAAe,CAAC;IACnC,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,OAAO;IAIP,MAAM,CAAC,WAAW,IAAI,SAAS;IAOzB,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAYnD,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;CAc3D"}
|