@sharpe-terminal/mcp-server 1.6.1 → 1.7.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.
- package/README.md +4 -4
- package/dist/api-client.d.ts +2 -5
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +8 -18
- package/dist/api-client.js.map +1 -1
- package/dist/contracts/manifest.d.ts.map +1 -1
- package/dist/contracts/manifest.js +1 -1
- package/dist/contracts/manifest.js.map +1 -1
- package/dist/server.d.ts +9 -3
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +33 -8
- package/dist/server.js.map +1 -1
- package/dist/tool-runtime.d.ts +1 -12
- package/dist/tool-runtime.d.ts.map +1 -1
- package/dist/tool-runtime.js +1 -18
- package/dist/tool-runtime.js.map +1 -1
- package/package.json +1 -1
- package/dist/composite-tools.d.ts +0 -60
- package/dist/composite-tools.d.ts.map +0 -1
- package/dist/composite-tools.js +0 -595
- package/dist/composite-tools.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/contracts/manifest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAsCH,sGAAsG;AACtG,MAAM,CAAC,MAAM,QAAQ,GAAkB,IAAI,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/contracts/manifest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAsCH,sGAAsG;AACtG,MAAM,CAAC,MAAM,QAAQ,GAAkB,IAAI,CAAC,KAAK,CAAC,+2xdAA+2xd,CAAkB,CAAC"}
|
package/dist/server.d.ts
CHANGED
|
@@ -7,8 +7,10 @@
|
|
|
7
7
|
* description and input JSON Schema (and its output schema, when the manifest
|
|
8
8
|
* publishes them) exactly as the synced agent manifest renders them from
|
|
9
9
|
* src/contracts (endpoint-tools.ts), and the Python server serves the same
|
|
10
|
-
* document. The three
|
|
11
|
-
*
|
|
10
|
+
* document. The three report tools (analyze_coin, market_briefing,
|
|
11
|
+
* find_opportunities) print the markdown report their endpoint renders on the
|
|
12
|
+
* server (src/lib/reports, L6 WP-U13), byte for byte, and keep their own
|
|
13
|
+
* schemas.
|
|
12
14
|
*/
|
|
13
15
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
14
16
|
import { type CallToolResult, type Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
@@ -26,7 +28,11 @@ interface CompositeTool {
|
|
|
26
28
|
inputSchema: Tool["inputSchema"];
|
|
27
29
|
run: (callApi: ApiCaller, args: Record<string, unknown>) => Promise<CallToolResult>;
|
|
28
30
|
}
|
|
29
|
-
/**
|
|
31
|
+
/**
|
|
32
|
+
* The composite tools, each served by its own endpoint since L6 WP-U13: the report is composed and rendered on the
|
|
33
|
+
* server (/api/v1/coins/{coin}/analysis, /api/v1/briefing, /api/v1/opportunities and their free twins), so this
|
|
34
|
+
* server, the Python server and `sharpe analyze|briefing|opportunities` print the same bytes.
|
|
35
|
+
*/
|
|
30
36
|
export declare const COMPOSITE_TOOLS: readonly CompositeTool[];
|
|
31
37
|
/** tools/list: the endpoint tools as the manifest renders them, then the composites. */
|
|
32
38
|
export declare function listTools(): Tool[];
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,IAAI,EACV,MAAM,oCAAoC,CAAC;AAE5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAqBjD,MAAM,WAAW,sBAAsB;IACrC,0EAA0E;IAC1E,OAAO,EAAE,SAAS,CAAC;IACnB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAkDD,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACjC,GAAG,EAAE,CACH,OAAO,EAAE,SAAS,EAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,OAAO,CAAC,cAAc,CAAC,CAAC;CAC9B;AAmCD;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EA0CnD,CAAC;AAIF,wFAAwF;AACxF,wBAAgB,SAAS,IAAI,IAAI,EAAE,CAyBlC;AA0BD,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,sBAAsB,GAC9B,SAAS,CAqNX"}
|
package/dist/server.js
CHANGED
|
@@ -7,13 +7,14 @@
|
|
|
7
7
|
* description and input JSON Schema (and its output schema, when the manifest
|
|
8
8
|
* publishes them) exactly as the synced agent manifest renders them from
|
|
9
9
|
* src/contracts (endpoint-tools.ts), and the Python server serves the same
|
|
10
|
-
* document. The three
|
|
11
|
-
*
|
|
10
|
+
* document. The three report tools (analyze_coin, market_briefing,
|
|
11
|
+
* find_opportunities) print the markdown report their endpoint renders on the
|
|
12
|
+
* server (src/lib/reports, L6 WP-U13), byte for byte, and keep their own
|
|
13
|
+
* schemas.
|
|
12
14
|
*/
|
|
13
15
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
14
16
|
import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
15
17
|
import { z } from "zod/v3";
|
|
16
|
-
import { analyzeCoin, marketBriefing, findOpportunities, } from "./composite-tools.js";
|
|
17
18
|
import { MANIFEST } from "./contracts/manifest.js";
|
|
18
19
|
import { ENDPOINT_TOOLS, callEndpointTool, propertyIssue, } from "./endpoint-tools.js";
|
|
19
20
|
import { FUTURES_CHARTS, EXCHANGES_DATA, NARRATIVE_SLUGS, ECOSYSTEM_SLUGS, } from "./resources.js";
|
|
@@ -45,7 +46,7 @@ const COIN_PARAM_SCHEMA = {
|
|
|
45
46
|
coin: z.string().describe("Coin ticker (e.g. BTC, ETH, SOL)"),
|
|
46
47
|
};
|
|
47
48
|
const JSON_SCHEMA_DRAFT_7 = "http://json-schema.org/draft-07/schema#";
|
|
48
|
-
/** What a
|
|
49
|
+
/** What a report tool answers: its markdown report (and analyze_coin's coin). */
|
|
49
50
|
const COMPOSITE_OUTPUT_SCHEMA = {
|
|
50
51
|
type: "object",
|
|
51
52
|
properties: {
|
|
@@ -62,7 +63,31 @@ const COMPOSITE_OUTPUT_SCHEMA = {
|
|
|
62
63
|
additionalProperties: false,
|
|
63
64
|
$schema: JSON_SCHEMA_DRAFT_7,
|
|
64
65
|
};
|
|
65
|
-
|
|
66
|
+
function isRecord(value) {
|
|
67
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* The report an endpoint renders (its `report_md`), read from the endpoint's routes in the manifest: v1 with a key,
|
|
71
|
+
* the free twin without one, `{param}` segments filled.
|
|
72
|
+
*/
|
|
73
|
+
async function reportOf(callApi, endpoint, pathParams = {}) {
|
|
74
|
+
const routes = MANIFEST.routes[endpoint];
|
|
75
|
+
if (routes === undefined || routes.v1 === null) {
|
|
76
|
+
throw new Error(`No report endpoint ${endpoint}`);
|
|
77
|
+
}
|
|
78
|
+
const fill = (path) => path.replace(/\{(\w+)\}/g, (_, name) => encodeURIComponent(pathParams[name] ?? ""));
|
|
79
|
+
const data = await callApi(fill(routes.v1), fill(routes.public ?? routes.v1), {});
|
|
80
|
+
const report = isRecord(data) ? data.report_md : undefined;
|
|
81
|
+
if (typeof report !== "string") {
|
|
82
|
+
throw new Error(`The ${endpoint} endpoint answered without a report.`);
|
|
83
|
+
}
|
|
84
|
+
return report;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* The composite tools, each served by its own endpoint since L6 WP-U13: the report is composed and rendered on the
|
|
88
|
+
* server (/api/v1/coins/{coin}/analysis, /api/v1/briefing, /api/v1/opportunities and their free twins), so this
|
|
89
|
+
* server, the Python server and `sharpe analyze|briefing|opportunities` print the same bytes.
|
|
90
|
+
*/
|
|
66
91
|
export const COMPOSITE_TOOLS = [
|
|
67
92
|
{
|
|
68
93
|
name: "analyze_coin",
|
|
@@ -82,7 +107,7 @@ export const COMPOSITE_TOOLS = [
|
|
|
82
107
|
},
|
|
83
108
|
run: async (callApi, args) => {
|
|
84
109
|
const coin = typeof args.coin === "string" ? args.coin : "BTC";
|
|
85
|
-
const text = await
|
|
110
|
+
const text = await reportOf(callApi, "coin-analysis", { coin });
|
|
86
111
|
return toTextToolResult(text, { coin: coin.toUpperCase() });
|
|
87
112
|
},
|
|
88
113
|
},
|
|
@@ -91,14 +116,14 @@ export const COMPOSITE_TOOLS = [
|
|
|
91
116
|
title: "Market Briefing",
|
|
92
117
|
description: "Market briefing with market overview, top narratives, and a funding rate summary.",
|
|
93
118
|
inputSchema: { type: "object", properties: {} },
|
|
94
|
-
run: async (callApi) => toTextToolResult(await
|
|
119
|
+
run: async (callApi) => toTextToolResult(await reportOf(callApi, "briefing")),
|
|
95
120
|
},
|
|
96
121
|
{
|
|
97
122
|
name: "find_opportunities",
|
|
98
123
|
title: "Find Opportunities",
|
|
99
124
|
description: "Scan all exchanges for the best funding rate arbitrage opportunities across spot-perp basis trades and cross-exchange funding arb.",
|
|
100
125
|
inputSchema: { type: "object", properties: {} },
|
|
101
|
-
run: async (callApi) => toTextToolResult(await
|
|
126
|
+
run: async (callApi) => toTextToolResult(await reportOf(callApi, "opportunities")),
|
|
102
127
|
},
|
|
103
128
|
];
|
|
104
129
|
const EXECUTION = { taskSupport: "forbidden" };
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/tool-runtime.d.ts
CHANGED
|
@@ -3,17 +3,6 @@ import type { ZodRawShapeCompat } from "@modelcontextprotocol/sdk/server/zod-com
|
|
|
3
3
|
export declare const MAX_ITEMS = 200;
|
|
4
4
|
export declare const CHARACTER_LIMIT = 25000;
|
|
5
5
|
export declare const READ_ONLY_MARKET_DATA_TOOL_ANNOTATIONS: ToolAnnotations;
|
|
6
|
-
/**
|
|
7
|
-
* Splits a composite's API answer into rows + pagination. The api-client keeps
|
|
8
|
-
* the pagination envelope of paginated endpoints (funding/rates,
|
|
9
|
-
* gem-finder/data); metadata riding beside a page (a futures chart's
|
|
10
|
-
* `chart`/`coverage`/`source`) comes back as `extras`.
|
|
11
|
-
*/
|
|
12
|
-
export declare function splitPaginated(result: unknown): {
|
|
13
|
-
rows: unknown;
|
|
14
|
-
pagination: unknown | null;
|
|
15
|
-
extras: Record<string, unknown>;
|
|
16
|
-
};
|
|
17
6
|
/**
|
|
18
7
|
* A row's time in epoch ms, read from the keys the futures routes sort on
|
|
19
8
|
* (`snapshot_at ?? settled_at ?? timestamp`). Null when absent or unparseable.
|
|
@@ -56,7 +45,7 @@ export declare function toTextToolResult(report: string, extra?: Record<string,
|
|
|
56
45
|
text: string;
|
|
57
46
|
}[];
|
|
58
47
|
};
|
|
59
|
-
/** A
|
|
48
|
+
/** A report tool's failure: `{ error }` as structured content, and as text. */
|
|
60
49
|
export declare function toToolErrorResult(error: unknown): {
|
|
61
50
|
structuredContent: {
|
|
62
51
|
error: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-runtime.d.ts","sourceRoot":"","sources":["../src/tool-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AAGxF,eAAO,MAAM,SAAS,MAAM,CAAC;AAC7B,eAAO,MAAM,eAAe,QAAQ,CAAC;AAErC,eAAO,MAAM,sCAAsC,EAAE,eAKpD,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"tool-runtime.d.ts","sourceRoot":"","sources":["../src/tool-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AAGxF,eAAO,MAAM,SAAS,MAAM,CAAC;AAC7B,eAAO,MAAM,eAAe,QAAQ,CAAC;AAErC,eAAO,MAAM,sCAAsC,EAAE,eAKpD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAOrD;AAwBD,eAAO,MAAM,kBAAkB,+JAC+H,CAAC;AAE/J,uFAAuF;AACvF,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED,wHAAwH;AACxH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE/C;AAmGD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG;IAC3C,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACxC,CA0CA;AAED,eAAO,MAAM,uBAAuB,EAOpB,iBAAiB,CAAC;AAElC,sHAAsH;AACtH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;EAOrE;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;;;EAWhC;AAED,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO;;;;;;;;;EAY/C;AAED,8GAA8G;AAC9G,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO;;;;;;EAM/C"}
|
package/dist/tool-runtime.js
CHANGED
|
@@ -7,23 +7,6 @@ export const READ_ONLY_MARKET_DATA_TOOL_ANNOTATIONS = {
|
|
|
7
7
|
idempotentHint: true,
|
|
8
8
|
openWorldHint: true,
|
|
9
9
|
};
|
|
10
|
-
/**
|
|
11
|
-
* Splits a composite's API answer into rows + pagination. The api-client keeps
|
|
12
|
-
* the pagination envelope of paginated endpoints (funding/rates,
|
|
13
|
-
* gem-finder/data); metadata riding beside a page (a futures chart's
|
|
14
|
-
* `chart`/`coverage`/`source`) comes back as `extras`.
|
|
15
|
-
*/
|
|
16
|
-
export function splitPaginated(result) {
|
|
17
|
-
if (result &&
|
|
18
|
-
typeof result === "object" &&
|
|
19
|
-
!Array.isArray(result) &&
|
|
20
|
-
"pagination" in result &&
|
|
21
|
-
"data" in result) {
|
|
22
|
-
const { data, pagination, ...extras } = result;
|
|
23
|
-
return { rows: data, pagination: pagination ?? null, extras };
|
|
24
|
-
}
|
|
25
|
-
return { rows: result, pagination: null, extras: {} };
|
|
26
|
-
}
|
|
27
10
|
/**
|
|
28
11
|
* A row's time in epoch ms, read from the keys the futures routes sort on
|
|
29
12
|
* (`snapshot_at ?? settled_at ?? timestamp`). Null when absent or unparseable.
|
|
@@ -190,7 +173,7 @@ export function toTextToolResult(report, extra) {
|
|
|
190
173
|
],
|
|
191
174
|
};
|
|
192
175
|
}
|
|
193
|
-
/** A
|
|
176
|
+
/** A report tool's failure: `{ error }` as structured content, and as text. */
|
|
194
177
|
export function toToolErrorResult(error) {
|
|
195
178
|
const message = error instanceof Error ? error.message : String(error);
|
|
196
179
|
return {
|
package/dist/tool-runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-runtime.js","sourceRoot":"","sources":["../src/tool-runtime.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC;AAC7B,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AAErC,MAAM,CAAC,MAAM,sCAAsC,GAAoB;IACrE,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,IAAI;IACpB,aAAa,EAAE,IAAI;CACpB,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"tool-runtime.js","sourceRoot":"","sources":["../src/tool-runtime.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Composite tools that call several API endpoints concurrently and return
|
|
3
|
-
* formatted markdown. Mirrors the Python server's analyze_coin,
|
|
4
|
-
* market_briefing and find_opportunities line for line.
|
|
5
|
-
*
|
|
6
|
-
* Every number a composite prints is a field the API serves, the value the web
|
|
7
|
-
* page and /api/v1 give for the same request (engine L4 WP-D14): the
|
|
8
|
-
* rankings, floors, averages and APRs are request parameters and response
|
|
9
|
-
* fields, never recomputed here. A report ends with the freshness of every
|
|
10
|
-
* answer it read.
|
|
11
|
-
*/
|
|
12
|
-
import { type DataFreshness } from "./api-client.ts";
|
|
13
|
-
export declare function fmtUsd(value: number | null | undefined): string;
|
|
14
|
-
export declare function fmtPct(value: number | null | undefined): string;
|
|
15
|
-
export declare function fmtRate(value: number | null | undefined): string;
|
|
16
|
-
/** An annualized fraction (0.25 = 25%) as a percentage, or N/A. */
|
|
17
|
-
export declare function fmtApr(value: unknown): string;
|
|
18
|
-
/**
|
|
19
|
-
* The open-interest floor (USD) the composites ask the API to apply: funding
|
|
20
|
-
* extremes (`min_oi_usd`), the spot-perp perp leg and both cross-exchange legs
|
|
21
|
-
* (`minOiUsd`, `minVolUsd`). Unfloored, every extreme was a dust market (ESIM
|
|
22
|
-
* on KuCoin: $33K of OI at -16,862% APR, 2026-09-24 audit). The API applies
|
|
23
|
-
* it; unknown open interest fails it there.
|
|
24
|
-
*/
|
|
25
|
-
export declare const LIQUIDITY_FLOOR_USD = 1000000;
|
|
26
|
-
/**
|
|
27
|
-
* `max_age_h` on the funding calls: v1 leaves out rows not written for six
|
|
28
|
-
* hours (V1_MAX_AGE_HOURS in the funding read model), so a keyless answer
|
|
29
|
-
* counts the same rows as a keyed one. v1 ignores the parameter.
|
|
30
|
-
*/
|
|
31
|
-
export declare const FUNDING_MAX_AGE_HOURS = 6;
|
|
32
|
-
/** One answer's freshness, as the Python server prints it: `dataset · as of … · status[ · degraded] (warnings)`. */
|
|
33
|
-
export declare function freshnessLine(freshness: DataFreshness): string;
|
|
34
|
-
/**
|
|
35
|
-
* The report with a closing line naming the freshness of every answer it read
|
|
36
|
-
* (engine L5 WP-S12), each once, in the order the calls were made. Nothing
|
|
37
|
-
* changes when no answer said anything.
|
|
38
|
-
*/
|
|
39
|
-
export declare function withFreshnessReport(report: string, answers: unknown[]): string;
|
|
40
|
-
type ApiCaller = (apiPath: string, fallbackPath: string, args: Record<string, unknown>) => Promise<unknown>;
|
|
41
|
-
/**
|
|
42
|
-
* Find the prediction row for a ticker in the endpoint's own coverage list.
|
|
43
|
-
*
|
|
44
|
-
* The price-prediction endpoint is keyed by CoinGecko slug ("bitcoin",
|
|
45
|
-
* "avalanche-2", "matic-network"), never by ticker, and a lowercased ticker is
|
|
46
|
-
* not a slug. Guessing one either 404s or — far worse — resolves to whichever
|
|
47
|
-
* unrelated asset happens to own that slug, and tickers are shared across
|
|
48
|
-
* thousands of assets in this dataset. So the guess is a silent wrong-coin
|
|
49
|
-
* risk, never a convenience: it is resolve-or-say-so here.
|
|
50
|
-
*
|
|
51
|
-
* The list response (`GET .../price-prediction/data` with no `coin`) carries
|
|
52
|
-
* both the ticker (`coin`) and the `slug` for every covered asset, so an exact
|
|
53
|
-
* ticker match against it is the endpoint's own documented contract.
|
|
54
|
-
*/
|
|
55
|
-
export declare function findPredictionRow(payload: unknown, ticker: string): Record<string, unknown> | null;
|
|
56
|
-
export declare function analyzeCoin(callApi: ApiCaller, coin: string): Promise<string>;
|
|
57
|
-
export declare function marketBriefing(callApi: ApiCaller): Promise<string>;
|
|
58
|
-
export declare function findOpportunities(callApi: ApiCaller): Promise<string>;
|
|
59
|
-
export {};
|
|
60
|
-
//# sourceMappingURL=composite-tools.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"composite-tools.d.ts","sourceRoot":"","sources":["../src/composite-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMlE,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAW/D;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAG/D;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAGhE;AAED,mEAAmE;AACnE,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAG7C;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,UAAY,CAAC;AAE7C;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAgDvC,oHAAoH;AACpH,wBAAgB,aAAa,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM,CAW9D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAAE,GACjB,MAAM,CAcR;AAID,KAAK,SAAS,GAAG,CACf,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,OAAO,CAAC,OAAO,CAAC,CAAC;AA4CtB;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAchC;AAuED,wBAAsB,WAAW,CAC/B,OAAO,EAAE,SAAS,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,CAsIjB;AAQD,wBAAsB,cAAc,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAsKxE;AAaD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAmG3E"}
|