@continuumdao/continuum-node-sdk 1.3.39 → 1.3.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-host-catalog.json +1318 -52
- package/dist/core/agent/user-folder.d.ts +22 -0
- package/dist/core/agent/user-folder.d.ts.map +1 -0
- package/dist/core/agent/user-folder.js +82 -0
- package/dist/core/agent/user-folder.js.map +1 -0
- package/dist/core/chart/analysis/analyze-tools.d.ts +79 -5
- package/dist/core/chart/analysis/analyze-tools.d.ts.map +1 -1
- package/dist/core/chart/analysis/analyze-tools.js +6 -1
- package/dist/core/chart/analysis/analyze-tools.js.map +1 -1
- package/dist/core/chart/analysis/bollinger-analyze-tools.d.ts +9 -0
- package/dist/core/chart/analysis/bollinger-analyze-tools.d.ts.map +1 -1
- package/dist/core/chart/analysis/bollinger-analyze-tools.js +39 -19
- package/dist/core/chart/analysis/bollinger-analyze-tools.js.map +1 -1
- package/dist/core/chart/analysis/chart-patterns-drawings-tools.d.ts +28 -0
- package/dist/core/chart/analysis/chart-patterns-drawings-tools.d.ts.map +1 -1
- package/dist/core/chart/analysis/chart-patterns-tools.d.ts +28 -0
- package/dist/core/chart/analysis/chart-patterns-tools.d.ts.map +1 -1
- package/dist/core/chart/analysis/divergence-analyze-tools.d.ts +15 -0
- package/dist/core/chart/analysis/divergence-analyze-tools.d.ts.map +1 -1
- package/dist/core/chart/analysis/divergence-analyze-tools.js +2 -0
- package/dist/core/chart/analysis/divergence-analyze-tools.js.map +1 -1
- package/dist/core/chart/analysis/elliott-waves-analyze-tools.d.ts +15 -0
- package/dist/core/chart/analysis/elliott-waves-analyze-tools.d.ts.map +1 -1
- package/dist/core/chart/analysis/elliott-waves-analyze-tools.js +2 -0
- package/dist/core/chart/analysis/elliott-waves-analyze-tools.js.map +1 -1
- package/dist/core/chart/analysis/moving-averages-analyze-tools.d.ts +4 -2
- package/dist/core/chart/analysis/moving-averages-analyze-tools.d.ts.map +1 -1
- package/dist/core/chart/analysis/moving-averages-analyze-tools.js +23 -23
- package/dist/core/chart/analysis/moving-averages-analyze-tools.js.map +1 -1
- package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.d.ts +14 -0
- package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.d.ts.map +1 -1
- package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.js +48 -4
- package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.js.map +1 -1
- package/dist/core/chart/analysis/trade-setups/build-trade.d.ts.map +1 -1
- package/dist/core/chart/analysis/trade-setups/build-trade.js +4 -1
- package/dist/core/chart/analysis/trade-setups/build-trade.js.map +1 -1
- package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.d.ts +14 -0
- package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.d.ts.map +1 -1
- package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.js +16 -0
- package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.js.map +1 -1
- package/dist/core/chart/ohlcv-session-store.d.ts +2 -0
- package/dist/core/chart/ohlcv-session-store.d.ts.map +1 -1
- package/dist/core/chart/ohlcv-session-store.js +66 -9
- package/dist/core/chart/ohlcv-session-store.js.map +1 -1
- package/dist/core/chart/overlay-schemas.d.ts.map +1 -1
- package/dist/core/chart/overlay-schemas.js +2 -0
- package/dist/core/chart/overlay-schemas.js.map +1 -1
- package/dist/core/mpc/forge-dry-run-build.d.ts +35 -0
- package/dist/core/mpc/forge-dry-run-build.d.ts.map +1 -0
- package/dist/core/mpc/forge-dry-run-build.js +200 -0
- package/dist/core/mpc/forge-dry-run-build.js.map +1 -0
- package/dist/core/mpc/forge-dry-run-request.d.ts +30 -0
- package/dist/core/mpc/forge-dry-run-request.d.ts.map +1 -0
- package/dist/core/mpc/forge-dry-run-request.js +144 -0
- package/dist/core/mpc/forge-dry-run-request.js.map +1 -0
- package/dist/core/mpc/join-multisign-request.d.ts.map +1 -1
- package/dist/core/mpc/join-multisign-request.js +41 -1
- package/dist/core/mpc/join-multisign-request.js.map +1 -1
- package/dist/core/mpc/mpc-input-coerce.d.ts +2 -0
- package/dist/core/mpc/mpc-input-coerce.d.ts.map +1 -1
- package/dist/core/mpc/mpc-input-coerce.js +53 -0
- package/dist/core/mpc/mpc-input-coerce.js.map +1 -1
- package/dist/core/mpc/schemas.d.ts +61 -2
- package/dist/core/mpc/schemas.d.ts.map +1 -1
- package/dist/core/mpc/schemas.js +137 -3
- package/dist/core/mpc/schemas.js.map +1 -1
- package/dist/evm/forge-dry-run-paths.d.ts +13 -0
- package/dist/evm/forge-dry-run-paths.d.ts.map +1 -0
- package/dist/evm/forge-dry-run-paths.js +39 -0
- package/dist/evm/forge-dry-run-paths.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/agent-chart-data-access-gate.d.ts +1 -1
- package/dist/mcp/agent-chart-data-access-gate.d.ts.map +1 -1
- package/dist/mcp/agent-chart-data-access-gate.js.map +1 -1
- package/dist/mcp/agent-cron-jobs.d.ts +1 -1
- package/dist/mcp/agent-cron-jobs.d.ts.map +1 -1
- package/dist/mcp/agent-cron-jobs.js +9 -0
- package/dist/mcp/agent-cron-jobs.js.map +1 -1
- package/dist/mcp/agent-environment-variables.d.ts +1 -1
- package/dist/mcp/agent-environment-variables.d.ts.map +1 -1
- package/dist/mcp/agent-environment-variables.js +3 -0
- package/dist/mcp/agent-environment-variables.js.map +1 -1
- package/dist/mcp/agent-host-catalog.d.ts +15 -2
- package/dist/mcp/agent-host-catalog.d.ts.map +1 -1
- package/dist/mcp/agent-host-catalog.js +52 -12
- package/dist/mcp/agent-host-catalog.js.map +1 -1
- package/dist/mcp/agent-input-coerce-register.d.ts +8 -0
- package/dist/mcp/agent-input-coerce-register.d.ts.map +1 -0
- package/dist/mcp/agent-input-coerce-register.js +22 -0
- package/dist/mcp/agent-input-coerce-register.js.map +1 -0
- package/dist/mcp/agent-input-coerce.d.ts +13 -0
- package/dist/mcp/agent-input-coerce.d.ts.map +1 -0
- package/dist/mcp/agent-input-coerce.js +292 -0
- package/dist/mcp/agent-input-coerce.js.map +1 -0
- package/dist/mcp/agent-mcp-servers.d.ts +1 -1
- package/dist/mcp/agent-mcp-servers.d.ts.map +1 -1
- package/dist/mcp/agent-mcp-servers.js +7 -0
- package/dist/mcp/agent-mcp-servers.js.map +1 -1
- package/dist/mcp/agent-skills.d.ts +1 -1
- package/dist/mcp/agent-skills.d.ts.map +1 -1
- package/dist/mcp/agent-skills.js +5 -0
- package/dist/mcp/agent-skills.js.map +1 -1
- package/dist/mcp/agent-webhooks.d.ts +1 -1
- package/dist/mcp/agent-webhooks.d.ts.map +1 -1
- package/dist/mcp/agent-webhooks.js +9 -0
- package/dist/mcp/agent-webhooks.js.map +1 -1
- package/dist/mcp/chart.d.ts +1 -1
- package/dist/mcp/chart.d.ts.map +1 -1
- package/dist/mcp/chart.js +38 -0
- package/dist/mcp/chart.js.map +1 -1
- package/dist/mcp/coinbase-public/register.d.ts +1 -1
- package/dist/mcp/coinbase-public/register.d.ts.map +1 -1
- package/dist/mcp/coinbase-public/register.js +6 -1
- package/dist/mcp/coinbase-public/register.js.map +1 -1
- package/dist/mcp/coinmarketcap-public/register.d.ts +1 -1
- package/dist/mcp/coinmarketcap-public/register.d.ts.map +1 -1
- package/dist/mcp/coinmarketcap-public/register.js +14 -1
- package/dist/mcp/coinmarketcap-public/register.js.map +1 -1
- package/dist/mcp/continuum-docs/config.d.ts +12 -0
- package/dist/mcp/continuum-docs/config.d.ts.map +1 -0
- package/dist/mcp/continuum-docs/config.js +35 -0
- package/dist/mcp/continuum-docs/config.js.map +1 -0
- package/dist/mcp/continuum-docs/fetch-page.d.ts +21 -0
- package/dist/mcp/continuum-docs/fetch-page.d.ts.map +1 -0
- package/dist/mcp/continuum-docs/fetch-page.js +76 -0
- package/dist/mcp/continuum-docs/fetch-page.js.map +1 -0
- package/dist/mcp/continuum-docs/index-store.d.ts +17 -0
- package/dist/mcp/continuum-docs/index-store.d.ts.map +1 -0
- package/dist/mcp/continuum-docs/index-store.js +79 -0
- package/dist/mcp/continuum-docs/index-store.js.map +1 -0
- package/dist/mcp/continuum-docs/markdown-sections.d.ts +16 -0
- package/dist/mcp/continuum-docs/markdown-sections.d.ts.map +1 -0
- package/dist/mcp/continuum-docs/markdown-sections.js +98 -0
- package/dist/mcp/continuum-docs/markdown-sections.js.map +1 -0
- package/dist/mcp/continuum-docs/register.d.ts +3 -0
- package/dist/mcp/continuum-docs/register.d.ts.map +1 -0
- package/dist/mcp/continuum-docs/register.js +69 -0
- package/dist/mcp/continuum-docs/register.js.map +1 -0
- package/dist/mcp/continuum-docs/search.d.ts +13 -0
- package/dist/mcp/continuum-docs/search.d.ts.map +1 -0
- package/dist/mcp/continuum-docs/search.js +92 -0
- package/dist/mcp/continuum-docs/search.js.map +1 -0
- package/dist/mcp/continuum-docs/types.d.ts +81 -0
- package/dist/mcp/continuum-docs/types.d.ts.map +1 -0
- package/dist/mcp/continuum-docs/types.js +60 -0
- package/dist/mcp/continuum-docs/types.js.map +1 -0
- package/dist/mcp/deferred/discovery-tools.d.ts +1 -1
- package/dist/mcp/deferred/discovery-tools.d.ts.map +1 -1
- package/dist/mcp/deferred/discovery-tools.js +57 -15
- package/dist/mcp/deferred/discovery-tools.js.map +1 -1
- package/dist/mcp/deferred/session.d.ts +15 -2
- package/dist/mcp/deferred/session.d.ts.map +1 -1
- package/dist/mcp/deferred/session.js +128 -80
- package/dist/mcp/deferred/session.js.map +1 -1
- package/dist/mcp/deferred/tool-group-map.d.ts +15 -2
- package/dist/mcp/deferred/tool-group-map.d.ts.map +1 -1
- package/dist/mcp/deferred/tool-group-map.js +624 -72
- package/dist/mcp/deferred/tool-group-map.js.map +1 -1
- package/dist/mcp/defi/bitquery-api-key.d.ts +1 -1
- package/dist/mcp/defi/bitquery-api-key.d.ts.map +1 -1
- package/dist/mcp/defi/discovery.d.ts +1 -1
- package/dist/mcp/defi/discovery.d.ts.map +1 -1
- package/dist/mcp/defi/discovery.js +15 -3
- package/dist/mcp/defi/discovery.js.map +1 -1
- package/dist/mcp/defi/handler.d.ts +13 -6
- package/dist/mcp/defi/handler.d.ts.map +1 -1
- package/dist/mcp/defi/mcp-json-schema.d.ts +23 -0
- package/dist/mcp/defi/mcp-json-schema.d.ts.map +1 -0
- package/dist/mcp/defi/mcp-json-schema.js +173 -0
- package/dist/mcp/defi/mcp-json-schema.js.map +1 -0
- package/dist/mcp/defi/register-protocol-tools.d.ts +1 -1
- package/dist/mcp/defi/register-protocol-tools.d.ts.map +1 -1
- package/dist/mcp/defi/register-protocol-tools.js +41 -4
- package/dist/mcp/defi/register-protocol-tools.js.map +1 -1
- package/dist/mcp/defi/the-graph-api-key.d.ts +1 -1
- package/dist/mcp/defi/the-graph-api-key.d.ts.map +1 -1
- package/dist/mcp/defi/tool-schemas.d.ts +4 -3
- package/dist/mcp/defi/tool-schemas.d.ts.map +1 -1
- package/dist/mcp/defi/tool-schemas.js +6 -4
- package/dist/mcp/defi/tool-schemas.js.map +1 -1
- package/dist/mcp/defi/uniswap-api-key.d.ts +1 -1
- package/dist/mcp/defi/uniswap-api-key.d.ts.map +1 -1
- package/dist/mcp/defi/venice-api-key.d.ts +1 -1
- package/dist/mcp/defi/venice-api-key.d.ts.map +1 -1
- package/dist/mcp/docs/search-index.json +2594 -0
- package/dist/mcp/group.d.ts +1 -1
- package/dist/mcp/group.d.ts.map +1 -1
- package/dist/mcp/group.js +3 -3
- package/dist/mcp/group.js.map +1 -1
- package/dist/mcp/keygen-messaging.d.ts +1 -1
- package/dist/mcp/keygen-messaging.d.ts.map +1 -1
- package/dist/mcp/keygen-messaging.js +10 -0
- package/dist/mcp/keygen-messaging.js.map +1 -1
- package/dist/mcp/keygen.d.ts +1 -1
- package/dist/mcp/keygen.d.ts.map +1 -1
- package/dist/mcp/keygen.js +6 -3
- package/dist/mcp/keygen.js.map +1 -1
- package/dist/mcp/management-signer.d.ts +1 -1
- package/dist/mcp/management-signer.d.ts.map +1 -1
- package/dist/mcp/management-signer.js +1 -1
- package/dist/mcp/management-signer.js.map +1 -1
- package/dist/mcp/mcp-resources.d.ts +1 -1
- package/dist/mcp/mcp-resources.d.ts.map +1 -1
- package/dist/mcp/mpc.d.ts +1 -1
- package/dist/mcp/mpc.d.ts.map +1 -1
- package/dist/mcp/mpc.js +57 -7
- package/dist/mcp/mpc.js.map +1 -1
- package/dist/mcp/node.d.ts +1 -1
- package/dist/mcp/node.d.ts.map +1 -1
- package/dist/mcp/node.js +7 -1
- package/dist/mcp/node.js.map +1 -1
- package/dist/mcp/ohlcv-session-wrapper.d.ts +1 -2
- package/dist/mcp/ohlcv-session-wrapper.d.ts.map +1 -1
- package/dist/mcp/ohlcv-session-wrapper.js.map +1 -1
- package/dist/mcp/register.d.ts +1 -1
- package/dist/mcp/register.d.ts.map +1 -1
- package/dist/mcp/register.js +6 -6
- package/dist/mcp/register.js.map +1 -1
- package/dist/mcp/registry/address-book.d.ts +1 -1
- package/dist/mcp/registry/address-book.d.ts.map +1 -1
- package/dist/mcp/registry/address-book.js +1 -0
- package/dist/mcp/registry/address-book.js.map +1 -1
- package/dist/mcp/registry/networks.d.ts +1 -1
- package/dist/mcp/registry/networks.d.ts.map +1 -1
- package/dist/mcp/registry/networks.js +3 -1
- package/dist/mcp/registry/networks.js.map +1 -1
- package/dist/mcp/registry/tokens.d.ts +1 -1
- package/dist/mcp/registry/tokens.d.ts.map +1 -1
- package/dist/mcp/registry/tokens.js +2 -0
- package/dist/mcp/registry/tokens.js.map +1 -1
- package/dist/mcp/resources/chart-analysis.md +1 -1
- package/dist/mcp/resources/mpc.md +11 -1
- package/dist/mcp/server/http-transport.d.ts +1 -1
- package/dist/mcp/server/http-transport.d.ts.map +1 -1
- package/dist/mcp/server/http-transport.js +30 -118
- package/dist/mcp/server/http-transport.js.map +1 -1
- package/dist/mcp/server/index.js +8 -1
- package/dist/mcp/server/index.js.map +1 -1
- package/dist/mcp/ta/register.d.ts +1 -1
- package/dist/mcp/ta/register.d.ts.map +1 -1
- package/dist/mcp/ta/register.js +3 -1
- package/dist/mcp/ta/register.js.map +1 -1
- package/dist/mcp/ta-server/index.js +3 -4
- package/dist/mcp/ta-server/index.js.map +1 -1
- package/dist/mcp/tool-utils.d.ts +1 -1
- package/dist/mcp/tool-utils.d.ts.map +1 -1
- package/dist/mcp/trade-tools.d.ts +1 -1
- package/dist/mcp/trade-tools.d.ts.map +1 -1
- package/dist/mcp/trade-tools.js +5 -0
- package/dist/mcp/trade-tools.js.map +1 -1
- package/dist/mcp/vpn.d.ts +1 -1
- package/dist/mcp/vpn.d.ts.map +1 -1
- package/dist/mcp/vpn.js +9 -1
- package/dist/mcp/vpn.js.map +1 -1
- package/package.json +8 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/mcp/coinmarketcap-public/register.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/mcp/coinmarketcap-public/register.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const DEFAULT_CONTINUUM_DOCS_INDEX_URL = "https://docs.continuumdao.org/search-index.json";
|
|
2
|
+
export declare const DEFAULT_CONTINUUM_DOCS_BASE_URL = "https://docs.continuumdao.org";
|
|
3
|
+
export declare const CONTINUUM_DOCS_INDEX_TTL_MS: number;
|
|
4
|
+
export declare const CONTINUUM_DOCS_FETCH_TIMEOUT_MS = 15000;
|
|
5
|
+
export declare const CONTINUUM_DOCS_MAX_PAGE_BYTES = 512000;
|
|
6
|
+
export declare function continuumDocsIndexUrlFromEnv(): string;
|
|
7
|
+
export declare function continuumDocsBaseUrlFromEnv(): string;
|
|
8
|
+
/** Normalize doc path: no leading slash, no .md suffix, reject traversal. */
|
|
9
|
+
export declare function normalizeContinuumDocPath(raw: string): string;
|
|
10
|
+
export declare function continuumDocPublicUrl(baseUrl: string, path: string): string;
|
|
11
|
+
export declare function continuumDocMarkdownUrl(baseUrl: string, path: string): string;
|
|
12
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/mcp/continuum-docs/config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gCAAgC,oDACK,CAAC;AACnD,eAAO,MAAM,+BAA+B,kCAAkC,CAAC;AAE/E,eAAO,MAAM,2BAA2B,QAAiB,CAAC;AAC1D,eAAO,MAAM,+BAA+B,QAAS,CAAC;AACtD,eAAO,MAAM,6BAA6B,SAAU,CAAC;AAErD,wBAAgB,4BAA4B,IAAI,MAAM,CAGrD;AAED,wBAAgB,2BAA2B,IAAI,MAAM,CAGpD;AAED,6EAA6E;AAC7E,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAY7D;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAG3E;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7E"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export const DEFAULT_CONTINUUM_DOCS_INDEX_URL = 'https://docs.continuumdao.org/search-index.json';
|
|
2
|
+
export const DEFAULT_CONTINUUM_DOCS_BASE_URL = 'https://docs.continuumdao.org';
|
|
3
|
+
export const CONTINUUM_DOCS_INDEX_TTL_MS = 60 * 60 * 1000;
|
|
4
|
+
export const CONTINUUM_DOCS_FETCH_TIMEOUT_MS = 15_000;
|
|
5
|
+
export const CONTINUUM_DOCS_MAX_PAGE_BYTES = 512_000;
|
|
6
|
+
export function continuumDocsIndexUrlFromEnv() {
|
|
7
|
+
const raw = process.env['CONTINUUM_DOCS_INDEX_URL']?.trim();
|
|
8
|
+
return raw || DEFAULT_CONTINUUM_DOCS_INDEX_URL;
|
|
9
|
+
}
|
|
10
|
+
export function continuumDocsBaseUrlFromEnv() {
|
|
11
|
+
const raw = process.env['CONTINUUM_DOCS_BASE_URL']?.trim();
|
|
12
|
+
return raw || DEFAULT_CONTINUUM_DOCS_BASE_URL;
|
|
13
|
+
}
|
|
14
|
+
/** Normalize doc path: no leading slash, no .md suffix, reject traversal. */
|
|
15
|
+
export function normalizeContinuumDocPath(raw) {
|
|
16
|
+
let path = raw.trim().replace(/\\/g, '/');
|
|
17
|
+
if (path.startsWith('/')) {
|
|
18
|
+
path = path.slice(1);
|
|
19
|
+
}
|
|
20
|
+
if (path.toLowerCase().endsWith('.md')) {
|
|
21
|
+
path = path.slice(0, -3);
|
|
22
|
+
}
|
|
23
|
+
if (!path || path.includes('..') || !/^[A-Za-z0-9_./-]+$/.test(path)) {
|
|
24
|
+
throw new Error(`invalid doc path: ${raw}`);
|
|
25
|
+
}
|
|
26
|
+
return path;
|
|
27
|
+
}
|
|
28
|
+
export function continuumDocPublicUrl(baseUrl, path) {
|
|
29
|
+
const base = baseUrl.replace(/\/+$/, '');
|
|
30
|
+
return `${base}/${path}`;
|
|
31
|
+
}
|
|
32
|
+
export function continuumDocMarkdownUrl(baseUrl, path) {
|
|
33
|
+
return `${continuumDocPublicUrl(baseUrl, path)}.md`;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/mcp/continuum-docs/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gCAAgC,GAC5C,iDAAiD,CAAC;AACnD,MAAM,CAAC,MAAM,+BAA+B,GAAG,+BAA+B,CAAC;AAE/E,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC1D,MAAM,CAAC,MAAM,+BAA+B,GAAG,MAAM,CAAC;AACtD,MAAM,CAAC,MAAM,6BAA6B,GAAG,OAAO,CAAC;AAErD,MAAM,UAAU,4BAA4B;IAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,EAAE,IAAI,EAAE,CAAC;IAC5D,OAAO,GAAG,IAAI,gCAAgC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,2BAA2B;IAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC;IAC3D,OAAO,GAAG,IAAI,+BAA+B,CAAC;AAC/C,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,yBAAyB,CAAC,GAAW;IACpD,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC1C,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACxC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAe,EAAE,IAAY;IAClE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzC,OAAO,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAe,EAAE,IAAY;IACpE,OAAO,GAAG,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type FetchContinuumDocPageOptions = {
|
|
2
|
+
path: string;
|
|
3
|
+
sectionId?: string;
|
|
4
|
+
offset?: number;
|
|
5
|
+
limit?: number;
|
|
6
|
+
baseUrl?: string;
|
|
7
|
+
fetchImpl?: typeof fetch;
|
|
8
|
+
};
|
|
9
|
+
export type FetchContinuumDocPageResult = {
|
|
10
|
+
path: string;
|
|
11
|
+
url: string;
|
|
12
|
+
content: string;
|
|
13
|
+
truncated: boolean;
|
|
14
|
+
offset: number;
|
|
15
|
+
totalChars: number;
|
|
16
|
+
sectionId?: string;
|
|
17
|
+
sectionTitle?: string;
|
|
18
|
+
};
|
|
19
|
+
export declare function fetchContinuumDocPage(options: FetchContinuumDocPageOptions): Promise<FetchContinuumDocPageResult>;
|
|
20
|
+
export declare function extractContinuumDocTitle(markdown: string): string | undefined;
|
|
21
|
+
//# sourceMappingURL=fetch-page.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-page.d.ts","sourceRoot":"","sources":["../../../src/mcp/continuum-docs/fetch-page.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,4BAA4B,GAAG;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAsB,qBAAqB,CAC1C,OAAO,EAAE,4BAA4B,GACnC,OAAO,CAAC,2BAA2B,CAAC,CAoEtC;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ7E"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { CONTINUUM_DOCS_FETCH_TIMEOUT_MS, CONTINUUM_DOCS_MAX_PAGE_BYTES, continuumDocMarkdownUrl, continuumDocsBaseUrlFromEnv, normalizeContinuumDocPath, } from './config.js';
|
|
2
|
+
import { docUrlWithSection, extractMarkdownSection } from './markdown-sections.js';
|
|
3
|
+
export async function fetchContinuumDocPage(options) {
|
|
4
|
+
const docPath = normalizeContinuumDocPath(options.path);
|
|
5
|
+
const baseUrl = options.baseUrl ?? continuumDocsBaseUrlFromEnv();
|
|
6
|
+
const url = continuumDocMarkdownUrl(baseUrl, docPath);
|
|
7
|
+
const fetchImpl = options.fetchImpl ?? fetch;
|
|
8
|
+
const controller = new AbortController();
|
|
9
|
+
const timer = setTimeout(() => controller.abort(), CONTINUUM_DOCS_FETCH_TIMEOUT_MS);
|
|
10
|
+
let body;
|
|
11
|
+
try {
|
|
12
|
+
const res = await fetchImpl(url, {
|
|
13
|
+
signal: controller.signal,
|
|
14
|
+
headers: { Accept: 'text/markdown, text/plain, */*' },
|
|
15
|
+
});
|
|
16
|
+
if (!res.ok) {
|
|
17
|
+
throw new Error(`HTTP ${res.status} fetching ${url}`);
|
|
18
|
+
}
|
|
19
|
+
const buf = await res.arrayBuffer();
|
|
20
|
+
if (buf.byteLength > CONTINUUM_DOCS_MAX_PAGE_BYTES) {
|
|
21
|
+
throw new Error(`doc exceeds ${CONTINUUM_DOCS_MAX_PAGE_BYTES} bytes`);
|
|
22
|
+
}
|
|
23
|
+
body = new TextDecoder('utf8').decode(buf);
|
|
24
|
+
}
|
|
25
|
+
finally {
|
|
26
|
+
clearTimeout(timer);
|
|
27
|
+
}
|
|
28
|
+
const publicUrl = `${baseUrl.replace(/\/+$/, '')}/${docPath}`;
|
|
29
|
+
let sectionId;
|
|
30
|
+
let sectionTitle;
|
|
31
|
+
let working = body;
|
|
32
|
+
if (options.sectionId?.trim()) {
|
|
33
|
+
const extracted = extractMarkdownSection(body, options.sectionId);
|
|
34
|
+
if (!extracted) {
|
|
35
|
+
throw new Error(`section ${JSON.stringify(options.sectionId)} not found in ${docPath}; use search_continuum_docs for sectionId`);
|
|
36
|
+
}
|
|
37
|
+
sectionId = options.sectionId.trim().toLowerCase();
|
|
38
|
+
sectionTitle = extracted.title;
|
|
39
|
+
working = extracted.content;
|
|
40
|
+
}
|
|
41
|
+
const totalChars = working.length;
|
|
42
|
+
const offset = Math.max(0, options.offset ?? 0);
|
|
43
|
+
const limit = options.limit;
|
|
44
|
+
let content = working;
|
|
45
|
+
let truncated = false;
|
|
46
|
+
if (offset > 0) {
|
|
47
|
+
content = content.slice(offset);
|
|
48
|
+
}
|
|
49
|
+
if (limit !== undefined && limit >= 0 && content.length > limit) {
|
|
50
|
+
content = content.slice(0, limit);
|
|
51
|
+
truncated = true;
|
|
52
|
+
}
|
|
53
|
+
if (offset + content.length < totalChars) {
|
|
54
|
+
truncated = true;
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
path: docPath,
|
|
58
|
+
url: docUrlWithSection(publicUrl, sectionId),
|
|
59
|
+
content,
|
|
60
|
+
truncated,
|
|
61
|
+
offset,
|
|
62
|
+
totalChars,
|
|
63
|
+
sectionId,
|
|
64
|
+
sectionTitle,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
export function extractContinuumDocTitle(markdown) {
|
|
68
|
+
for (const line of markdown.split('\n')) {
|
|
69
|
+
const m = line.match(/^#\s+(.+)/);
|
|
70
|
+
if (m) {
|
|
71
|
+
return m[1].trim();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=fetch-page.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-page.js","sourceRoot":"","sources":["../../../src/mcp/continuum-docs/fetch-page.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type ContinuumDocsIndex } from './types.js';
|
|
2
|
+
export declare function resolveBundledDocsIndexPath(): string;
|
|
3
|
+
export declare function clearContinuumDocsIndexCacheForTests(): void;
|
|
4
|
+
export declare function loadContinuumDocsIndex(options?: {
|
|
5
|
+
ttlMs?: number;
|
|
6
|
+
nowMs?: number;
|
|
7
|
+
fetchLive?: () => Promise<ContinuumDocsIndex>;
|
|
8
|
+
readBundled?: () => Promise<ContinuumDocsIndex>;
|
|
9
|
+
}): Promise<{
|
|
10
|
+
index: ContinuumDocsIndex;
|
|
11
|
+
source: 'live' | 'bundled';
|
|
12
|
+
}>;
|
|
13
|
+
export declare function findDocPageByPath(index: ContinuumDocsIndex, docPath: string): {
|
|
14
|
+
title: string;
|
|
15
|
+
url: string;
|
|
16
|
+
} | undefined;
|
|
17
|
+
//# sourceMappingURL=index-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-store.d.ts","sourceRoot":"","sources":["../../../src/mcp/continuum-docs/index-store.ts"],"names":[],"mappings":"AAOA,OAAO,EAA2B,KAAK,kBAAkB,EAAC,MAAM,YAAY,CAAC;AAQ7E,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AA2BD,wBAAgB,oCAAoC,IAAI,IAAI,CAI3D;AAED,wBAAsB,sBAAsB,CAAC,OAAO,CAAC,EAAE;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC9C,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAChD,GAAG,OAAO,CAAC;IAAC,KAAK,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAAC,CAAC,CA8BnE;AAED,wBAAgB,iBAAiB,CAChC,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,MAAM,GACb;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAC,GAAG,SAAS,CAM1C"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { promises as fs } from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { CONTINUUM_DOCS_FETCH_TIMEOUT_MS, continuumDocsIndexUrlFromEnv, } from './config.js';
|
|
5
|
+
import { ContinuumDocsIndexSchema } from './types.js';
|
|
6
|
+
const moduleDir = path.dirname(fileURLToPath(import.meta.url));
|
|
7
|
+
let cachedIndex = null;
|
|
8
|
+
let cachedAtMs = 0;
|
|
9
|
+
let cachedSource = 'live';
|
|
10
|
+
export function resolveBundledDocsIndexPath() {
|
|
11
|
+
return path.join(moduleDir, '..', 'docs', 'search-index.json');
|
|
12
|
+
}
|
|
13
|
+
async function readBundledDocsIndex() {
|
|
14
|
+
const filePath = resolveBundledDocsIndexPath();
|
|
15
|
+
const text = await fs.readFile(filePath, 'utf8');
|
|
16
|
+
return ContinuumDocsIndexSchema.parse(JSON.parse(text));
|
|
17
|
+
}
|
|
18
|
+
async function fetchLiveDocsIndex() {
|
|
19
|
+
const url = continuumDocsIndexUrlFromEnv();
|
|
20
|
+
const controller = new AbortController();
|
|
21
|
+
const timer = setTimeout(() => controller.abort(), CONTINUUM_DOCS_FETCH_TIMEOUT_MS);
|
|
22
|
+
try {
|
|
23
|
+
const res = await fetch(url, {
|
|
24
|
+
signal: controller.signal,
|
|
25
|
+
headers: { Accept: 'application/json' },
|
|
26
|
+
});
|
|
27
|
+
if (!res.ok) {
|
|
28
|
+
throw new Error(`HTTP ${res.status} fetching ${url}`);
|
|
29
|
+
}
|
|
30
|
+
const json = await res.json();
|
|
31
|
+
return ContinuumDocsIndexSchema.parse(json);
|
|
32
|
+
}
|
|
33
|
+
finally {
|
|
34
|
+
clearTimeout(timer);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export function clearContinuumDocsIndexCacheForTests() {
|
|
38
|
+
cachedIndex = null;
|
|
39
|
+
cachedAtMs = 0;
|
|
40
|
+
cachedSource = 'live';
|
|
41
|
+
}
|
|
42
|
+
export async function loadContinuumDocsIndex(options) {
|
|
43
|
+
const ttlMs = options?.ttlMs ?? 60 * 60 * 1000;
|
|
44
|
+
const nowMs = options?.nowMs ?? Date.now();
|
|
45
|
+
if (cachedIndex && nowMs - cachedAtMs < ttlMs) {
|
|
46
|
+
return { index: cachedIndex, source: cachedSource };
|
|
47
|
+
}
|
|
48
|
+
const fetchLive = options?.fetchLive ?? fetchLiveDocsIndex;
|
|
49
|
+
const readBundled = options?.readBundled ?? readBundledDocsIndex;
|
|
50
|
+
try {
|
|
51
|
+
const index = await fetchLive();
|
|
52
|
+
cachedIndex = index;
|
|
53
|
+
cachedAtMs = nowMs;
|
|
54
|
+
cachedSource = 'live';
|
|
55
|
+
return { index, source: 'live' };
|
|
56
|
+
}
|
|
57
|
+
catch (liveErr) {
|
|
58
|
+
try {
|
|
59
|
+
const index = await readBundled();
|
|
60
|
+
cachedIndex = index;
|
|
61
|
+
cachedAtMs = nowMs;
|
|
62
|
+
cachedSource = 'bundled';
|
|
63
|
+
return { index, source: 'bundled' };
|
|
64
|
+
}
|
|
65
|
+
catch (bundledErr) {
|
|
66
|
+
const liveMsg = liveErr instanceof Error ? liveErr.message : String(liveErr);
|
|
67
|
+
const bundledMsg = bundledErr instanceof Error ? bundledErr.message : String(bundledErr);
|
|
68
|
+
throw new Error(`Continuum docs index unavailable (live: ${liveMsg}; bundled: ${bundledMsg})`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
export function findDocPageByPath(index, docPath) {
|
|
73
|
+
const page = index.pages.find(p => p.path === docPath);
|
|
74
|
+
if (!page) {
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
return { title: page.title, url: page.url };
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=index-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-store.js","sourceRoot":"","sources":["../../../src/mcp/continuum-docs/index-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** Docsify-style heading anchor (matches ?id= links on docs.continuumdao.org). */
|
|
2
|
+
export declare function headingTitleToAnchor(title: string): string;
|
|
3
|
+
export type ParsedMarkdownSection = {
|
|
4
|
+
id: string;
|
|
5
|
+
title: string;
|
|
6
|
+
level: number;
|
|
7
|
+
excerpt: string;
|
|
8
|
+
};
|
|
9
|
+
/** Walk markdown headings and return searchable section metadata. */
|
|
10
|
+
export declare function parseMarkdownSections(markdown: string): ParsedMarkdownSection[];
|
|
11
|
+
export declare function extractMarkdownSection(markdown: string, sectionId: string): {
|
|
12
|
+
title: string;
|
|
13
|
+
content: string;
|
|
14
|
+
} | undefined;
|
|
15
|
+
export declare function docUrlWithSection(pageUrl: string, sectionId?: string): string;
|
|
16
|
+
//# sourceMappingURL=markdown-sections.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-sections.d.ts","sourceRoot":"","sources":["../../../src/mcp/continuum-docs/markdown-sections.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAS1D;AAED,MAAM,MAAM,qBAAqB,GAAG;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CAChB,CAAC;AAaF,qEAAqE;AACrE,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,EAAE,CA+B/E;AAED,wBAAgB,sBAAsB,CACrC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GACf;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,GAAG,SAAS,CAmC9C;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAM7E"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/** Docsify-style heading anchor (matches ?id= links on docs.continuumdao.org). */
|
|
2
|
+
export function headingTitleToAnchor(title) {
|
|
3
|
+
return title
|
|
4
|
+
.replace(/\*\*/g, '')
|
|
5
|
+
.replace(/`/g, '')
|
|
6
|
+
.trim()
|
|
7
|
+
.toLowerCase()
|
|
8
|
+
.replace(/&/g, 'amp')
|
|
9
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
10
|
+
.replace(/^-+|-+$/g, '');
|
|
11
|
+
}
|
|
12
|
+
function sectionExcerpt(lines) {
|
|
13
|
+
const text = lines
|
|
14
|
+
.join('\n')
|
|
15
|
+
.replace(/^#+\s.+$/gm, '')
|
|
16
|
+
.replace(/\[([^\]]+)\]\([^)]+\)/g, '$1')
|
|
17
|
+
.replace(/[*_`>#|-]/g, ' ')
|
|
18
|
+
.replace(/\s+/g, ' ')
|
|
19
|
+
.trim();
|
|
20
|
+
return text.slice(0, 300);
|
|
21
|
+
}
|
|
22
|
+
/** Walk markdown headings and return searchable section metadata. */
|
|
23
|
+
export function parseMarkdownSections(markdown) {
|
|
24
|
+
const lines = markdown.split('\n');
|
|
25
|
+
const sections = [];
|
|
26
|
+
for (let i = 0; i < lines.length; i++) {
|
|
27
|
+
const m = lines[i].match(/^(#{1,6})\s+(.+)/);
|
|
28
|
+
if (!m) {
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
const level = m[1].length;
|
|
32
|
+
const rawTitle = m[2].trim();
|
|
33
|
+
const title = rawTitle.replace(/\*\*/g, '').trim();
|
|
34
|
+
const id = headingTitleToAnchor(rawTitle);
|
|
35
|
+
if (!id) {
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
const body = [];
|
|
39
|
+
for (let j = i + 1; j < lines.length; j++) {
|
|
40
|
+
const next = lines[j].match(/^(#{1,6})\s+/);
|
|
41
|
+
if (next && next[1].length <= level) {
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
body.push(lines[j]);
|
|
45
|
+
}
|
|
46
|
+
sections.push({
|
|
47
|
+
id,
|
|
48
|
+
title,
|
|
49
|
+
level,
|
|
50
|
+
excerpt: sectionExcerpt(body),
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return sections;
|
|
54
|
+
}
|
|
55
|
+
export function extractMarkdownSection(markdown, sectionId) {
|
|
56
|
+
const needle = sectionId.trim().toLowerCase();
|
|
57
|
+
if (!needle) {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
const lines = markdown.split('\n');
|
|
61
|
+
let start = -1;
|
|
62
|
+
let startLevel = 0;
|
|
63
|
+
let title = '';
|
|
64
|
+
for (let i = 0; i < lines.length; i++) {
|
|
65
|
+
const m = lines[i].match(/^(#{1,6})\s+(.+)/);
|
|
66
|
+
if (!m) {
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
const rawTitle = m[2].trim();
|
|
70
|
+
if (headingTitleToAnchor(rawTitle) !== needle) {
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
start = i;
|
|
74
|
+
startLevel = m[1].length;
|
|
75
|
+
title = rawTitle.replace(/\*\*/g, '').trim();
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
if (start < 0) {
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
const out = [lines[start]];
|
|
82
|
+
for (let i = start + 1; i < lines.length; i++) {
|
|
83
|
+
const next = lines[i].match(/^(#{1,6})\s+/);
|
|
84
|
+
if (next && next[1].length <= startLevel) {
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
out.push(lines[i]);
|
|
88
|
+
}
|
|
89
|
+
return { title, content: out.join('\n') };
|
|
90
|
+
}
|
|
91
|
+
export function docUrlWithSection(pageUrl, sectionId) {
|
|
92
|
+
const base = pageUrl.replace(/\?.*$/, '');
|
|
93
|
+
if (!sectionId) {
|
|
94
|
+
return base;
|
|
95
|
+
}
|
|
96
|
+
return `${base}?id=${encodeURIComponent(sectionId)}`;
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=markdown-sections.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-sections.js","sourceRoot":"","sources":["../../../src/mcp/continuum-docs/markdown-sections.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/mcp/continuum-docs/register.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,8BAA8B,CAAC;AAU5D,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkFlE"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { findDocPageByPath, loadContinuumDocsIndex } from './index-store.js';
|
|
3
|
+
import { fetchContinuumDocPage, extractContinuumDocTitle } from './fetch-page.js';
|
|
4
|
+
import { searchContinuumDocPages } from './search.js';
|
|
5
|
+
import { GetContinuumDocOutputSchema, SearchContinuumDocsOutputSchema, } from './types.js';
|
|
6
|
+
export function registerContinuumDocsTools(server) {
|
|
7
|
+
server.registerTool('search_continuum_docs', {
|
|
8
|
+
description: 'Search official ContinuumDAO product documentation (docs.continuumdao.org). Returns ranked hits with path, optional sectionId/sectionTitle (in-page anchors like Tokenomics on the White Paper), excerpt, and public URL. Follow with get_continuum_doc using path and sectionId when present.',
|
|
9
|
+
inputSchema: z
|
|
10
|
+
.object({
|
|
11
|
+
q: z.string().min(1),
|
|
12
|
+
section: z.string().optional(),
|
|
13
|
+
limit: z.number().int().positive().max(50).optional(),
|
|
14
|
+
})
|
|
15
|
+
.strict(),
|
|
16
|
+
outputSchema: SearchContinuumDocsOutputSchema,
|
|
17
|
+
}, async ({ q, section, limit }) => {
|
|
18
|
+
const { index, source } = await loadContinuumDocsIndex();
|
|
19
|
+
const hits = searchContinuumDocPages(index, q, section, limit ?? 20);
|
|
20
|
+
const payload = {
|
|
21
|
+
hits,
|
|
22
|
+
indexSource: source,
|
|
23
|
+
indexGeneratedAt: index.generatedAt,
|
|
24
|
+
};
|
|
25
|
+
return {
|
|
26
|
+
content: [{ type: 'text', text: JSON.stringify(payload) }],
|
|
27
|
+
structuredContent: payload,
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
server.registerTool('get_continuum_doc', {
|
|
31
|
+
description: 'Fetch official ContinuumDAO documentation markdown. Use path from search_continuum_docs (e.g. ContinuumDAO/WhitePaper). For in-page sections (e.g. tokenomics on the White Paper), pass sectionId from search hits (?id= anchors on docs.continuumdao.org). Optional offset/limit slice long content.',
|
|
32
|
+
inputSchema: z
|
|
33
|
+
.object({
|
|
34
|
+
path: z.string().min(1),
|
|
35
|
+
sectionId: z.string().optional(),
|
|
36
|
+
offset: z.number().int().nonnegative().optional(),
|
|
37
|
+
limit: z.number().int().positive().max(200_000).optional(),
|
|
38
|
+
})
|
|
39
|
+
.strict(),
|
|
40
|
+
outputSchema: GetContinuumDocOutputSchema,
|
|
41
|
+
}, async ({ path: docPath, sectionId, offset, limit, }) => {
|
|
42
|
+
const page = await fetchContinuumDocPage({ path: docPath, sectionId, offset, limit });
|
|
43
|
+
let title = page.sectionTitle;
|
|
44
|
+
try {
|
|
45
|
+
const { index } = await loadContinuumDocsIndex();
|
|
46
|
+
title ??= findDocPageByPath(index, page.path)?.title;
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
// index optional for title when page fetch succeeded
|
|
50
|
+
}
|
|
51
|
+
title ??= extractContinuumDocTitle(page.content);
|
|
52
|
+
const payload = {
|
|
53
|
+
path: page.path,
|
|
54
|
+
url: page.url,
|
|
55
|
+
title,
|
|
56
|
+
sectionId: page.sectionId,
|
|
57
|
+
sectionTitle: page.sectionTitle,
|
|
58
|
+
content: page.content,
|
|
59
|
+
truncated: page.truncated,
|
|
60
|
+
offset: page.offset,
|
|
61
|
+
totalChars: page.totalChars,
|
|
62
|
+
};
|
|
63
|
+
return {
|
|
64
|
+
content: [{ type: 'text', text: JSON.stringify(payload) }],
|
|
65
|
+
structuredContent: payload,
|
|
66
|
+
};
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=register.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/mcp/continuum-docs/register.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ContinuumDocsIndex } from './types.js';
|
|
2
|
+
export type DocSearchHit = {
|
|
3
|
+
path: string;
|
|
4
|
+
title: string;
|
|
5
|
+
section: string;
|
|
6
|
+
excerpt: string;
|
|
7
|
+
url: string;
|
|
8
|
+
score: number;
|
|
9
|
+
sectionId?: string;
|
|
10
|
+
sectionTitle?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare function searchContinuumDocPages(index: ContinuumDocsIndex, q: string, sectionFilter: string | undefined, limit: number): DocSearchHit[];
|
|
13
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/mcp/continuum-docs/search.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAmB,kBAAkB,EAAC,MAAM,YAAY,CAAC;AAErE,MAAM,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAgB,uBAAuB,CACtC,KAAK,EAAE,kBAAkB,EACzB,CAAC,EAAE,MAAM,EACT,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,KAAK,EAAE,MAAM,GACX,YAAY,EAAE,CAiBhB"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { CATALOG_SEARCH_STOPWORDS } from '../deferred/session.js';
|
|
2
|
+
import { docUrlWithSection, headingTitleToAnchor } from './markdown-sections.js';
|
|
3
|
+
export function searchContinuumDocPages(index, q, sectionFilter, limit) {
|
|
4
|
+
const tokens = tokenizeQuery(q);
|
|
5
|
+
const sectionNeedle = sectionFilter?.trim().toLowerCase();
|
|
6
|
+
const hits = [];
|
|
7
|
+
for (const page of index.pages) {
|
|
8
|
+
if (sectionNeedle) {
|
|
9
|
+
const pageSection = page.section.toLowerCase();
|
|
10
|
+
if (pageSection !== sectionNeedle && !pageSection.includes(sectionNeedle)) {
|
|
11
|
+
continue;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
scorePage(page, tokens, hits);
|
|
15
|
+
scorePageSections(page, tokens, hits);
|
|
16
|
+
}
|
|
17
|
+
return hits.sort((a, b) => b.score - a.score).slice(0, limit);
|
|
18
|
+
}
|
|
19
|
+
function tokenizeQuery(q) {
|
|
20
|
+
return q
|
|
21
|
+
.toLowerCase()
|
|
22
|
+
.split(/\s+/)
|
|
23
|
+
.map(t => t.replace(/^[\s.,!?;:'"()[\]]+|[\s.,!?;:'"()[\]]+$/g, ''))
|
|
24
|
+
.filter(t => t.length > 0 && !CATALOG_SEARCH_STOPWORDS.has(t));
|
|
25
|
+
}
|
|
26
|
+
function scorePage(page, tokens, hits) {
|
|
27
|
+
const hay = [
|
|
28
|
+
page.path,
|
|
29
|
+
page.title,
|
|
30
|
+
page.section,
|
|
31
|
+
page.excerpt,
|
|
32
|
+
...page.headings,
|
|
33
|
+
...(page.sections?.flatMap(s => [s.id, s.title, s.excerpt]) ?? []),
|
|
34
|
+
]
|
|
35
|
+
.join(' ')
|
|
36
|
+
.toLowerCase();
|
|
37
|
+
const score = scoreHaystack(hay, page.title.toLowerCase(), page.path.split('/').pop()?.toLowerCase() ?? '', tokens);
|
|
38
|
+
if (score > 0) {
|
|
39
|
+
hits.push({
|
|
40
|
+
path: page.path,
|
|
41
|
+
title: page.title,
|
|
42
|
+
section: page.section,
|
|
43
|
+
excerpt: page.excerpt,
|
|
44
|
+
url: page.url,
|
|
45
|
+
score,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function scorePageSections(page, tokens, hits) {
|
|
50
|
+
if (!page.sections?.length) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
for (const sec of page.sections) {
|
|
54
|
+
const hay = [sec.id, sec.title, sec.excerpt].join(' ').toLowerCase();
|
|
55
|
+
let score = scoreHaystack(hay, sec.title.toLowerCase(), sec.id, tokens);
|
|
56
|
+
if (tokens.length === 1 && tokens[0] === sec.id) {
|
|
57
|
+
score += 15;
|
|
58
|
+
}
|
|
59
|
+
if (score <= 0) {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
hits.push({
|
|
63
|
+
path: page.path,
|
|
64
|
+
title: page.title,
|
|
65
|
+
section: page.section,
|
|
66
|
+
excerpt: sec.excerpt || page.excerpt,
|
|
67
|
+
url: docUrlWithSection(page.url, sec.id),
|
|
68
|
+
score,
|
|
69
|
+
sectionId: sec.id,
|
|
70
|
+
sectionTitle: sec.title,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
function scoreHaystack(hay, title, pathTail, tokens) {
|
|
75
|
+
let score = 0;
|
|
76
|
+
for (const t of tokens) {
|
|
77
|
+
if (title === t || pathTail === t) {
|
|
78
|
+
score += 12;
|
|
79
|
+
}
|
|
80
|
+
else if (headingTitleToAnchor(t) !== '' && hay.includes(headingTitleToAnchor(t))) {
|
|
81
|
+
score += 10;
|
|
82
|
+
}
|
|
83
|
+
else if (title.includes(t)) {
|
|
84
|
+
score += 5;
|
|
85
|
+
}
|
|
86
|
+
else if (hay.includes(t)) {
|
|
87
|
+
score += 1;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return score;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/mcp/continuum-docs/search.ts"],"names":[],"mappings":"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"}
|