dero-mcp-server 0.4.3 → 0.4.5
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 +8 -8
- package/SKILL.md +4 -2
- package/data/docs-index.json +125 -125
- package/dist/citations.d.ts.map +1 -1
- package/dist/citations.js +48 -0
- package/dist/citations.js.map +1 -1
- package/dist/composites/_shared.d.ts +27 -2
- package/dist/composites/_shared.d.ts.map +1 -1
- package/dist/composites/_shared.js +50 -6
- package/dist/composites/_shared.js.map +1 -1
- package/dist/composites/explain-smart-contract.d.ts +6 -2
- package/dist/composites/explain-smart-contract.d.ts.map +1 -1
- package/dist/composites/explain-smart-contract.js +26 -2
- package/dist/composites/explain-smart-contract.js.map +1 -1
- package/dist/composites/recommend-docs-path.d.ts.map +1 -1
- package/dist/composites/recommend-docs-path.js +70 -8
- package/dist/composites/recommend-docs-path.js.map +1 -1
- package/dist/composites/tela-get-doc-content.d.ts +51 -0
- package/dist/composites/tela-get-doc-content.d.ts.map +1 -0
- package/dist/composites/tela-get-doc-content.js +82 -0
- package/dist/composites/tela-get-doc-content.js.map +1 -0
- package/dist/composites/tela-inspect.d.ts +27 -0
- package/dist/composites/tela-inspect.d.ts.map +1 -0
- package/dist/composites/tela-inspect.js +126 -0
- package/dist/composites/tela-inspect.js.map +1 -0
- package/dist/docs-parse.d.ts +18 -0
- package/dist/docs-parse.d.ts.map +1 -1
- package/dist/docs-parse.js +79 -1
- package/dist/docs-parse.js.map +1 -1
- package/dist/docs.d.ts +10 -0
- package/dist/docs.d.ts.map +1 -1
- package/dist/docs.js +223 -36
- package/dist/docs.js.map +1 -1
- package/dist/http-server.d.ts.map +1 -1
- package/dist/http-server.js +5 -1
- package/dist/http-server.js.map +1 -1
- package/dist/server.d.ts +2 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +79 -18
- package/dist/server.js.map +1 -1
- package/dist/tela-parse.d.ts +114 -0
- package/dist/tela-parse.d.ts.map +1 -0
- package/dist/tela-parse.js +242 -0
- package/dist/tela-parse.js.map +1 -0
- package/dist/tool-descriptions.d.ts +3 -1
- package/dist/tool-descriptions.d.ts.map +1 -1
- package/dist/tool-descriptions.js +21 -2
- package/dist/tool-descriptions.js.map +1 -1
- package/package.json +6 -3
package/dist/citations.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"citations.d.ts","sourceRoot":"","sources":["../src/citations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEpE,MAAM,MAAM,YAAY,GAAG;IACzB,0FAA0F;IAC1F,MAAM,EAAE,WAAW,CAAA;IACnB,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,MAAM,CAAA;IACrB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAWD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,YAAY,CASd;AAED;;;;;;;;;;;;GAYG;AACH,KAAK,gBAAgB,GAAG;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"citations.d.ts","sourceRoot":"","sources":["../src/citations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEpE,MAAM,MAAM,YAAY,GAAG;IACzB,0FAA0F;IAC1F,MAAM,EAAE,WAAW,CAAA;IACnB,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,MAAM,CAAA;IACrB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAWD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,YAAY,CASd;AAED;;;;;;;;;;;;GAYG;AACH,KAAK,gBAAgB,GAAG;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CA8LnE,CAAA;AAEV;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE,GAAG,SAAS,CAI3E;AAsBD,MAAM,MAAM,sBAAsB,GAC9B;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE3C,MAAM,MAAM,eAAe,GAAG;IAC5B,gEAAgE;IAChE,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,SAAS,sBAAsB,EAAE,CAAA;IAC3C,8EAA8E;IAC9E,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,SAAS,gBAAgB,EAAE,CAAA;IACzC;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,SAAS,eAAe,EAqCpD,CAAA;AAEV;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAOD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,oBAAoB,GAC1B,eAAe,EAAE,CAyBnB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,oBAAoB,EAC3B,eAAe,EAAE,YAAY,EAAE,GAAG,SAAS,GAC1C;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,YAAY,EAAE,CAAA;CAAE,GAAG,SAAS,CA2BpE"}
|
package/dist/citations.js
CHANGED
|
@@ -186,6 +186,54 @@ export const RELATED_DOCS_BY_TOOL = {
|
|
|
186
186
|
slug: 'dvm/create-deploy-use-smart-contract',
|
|
187
187
|
title: 'Create, Deploy & Use a Smart Contract on DERO | Step-by-Step Tutorial',
|
|
188
188
|
},
|
|
189
|
+
// TELA specs: elevated when the classifier detects a tela_index / tela_doc
|
|
190
|
+
// contract (the heuristic re-orders the matching spec to position 0).
|
|
191
|
+
{
|
|
192
|
+
product: 'tela',
|
|
193
|
+
slug: 'tela/tela-index-specification',
|
|
194
|
+
title: 'TELA-INDEX-1 Specification | Application Manifest Smart Contract Standard',
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
product: 'tela',
|
|
198
|
+
slug: 'tela/tela-doc-specification',
|
|
199
|
+
title: 'TELA-DOC-1 Specification | Smart Contract Standard for File Storage',
|
|
200
|
+
},
|
|
201
|
+
],
|
|
202
|
+
// tela_inspect curates both specs (so the matching one elevates per kind),
|
|
203
|
+
// plus dURL and Gnomon context for the builder.
|
|
204
|
+
tela_inspect: [
|
|
205
|
+
{
|
|
206
|
+
product: 'tela',
|
|
207
|
+
slug: 'tela/tela-index-specification',
|
|
208
|
+
title: 'TELA-INDEX-1 Specification | Application Manifest Smart Contract Standard',
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
product: 'tela',
|
|
212
|
+
slug: 'tela/tela-doc-specification',
|
|
213
|
+
title: 'TELA-DOC-1 Specification | Smart Contract Standard for File Storage',
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
product: 'tela',
|
|
217
|
+
slug: 'advanced-features/durl-explained',
|
|
218
|
+
title: 'Understanding dURLs | Decentralized URL Identity & Resolution',
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
product: 'tela',
|
|
222
|
+
slug: 'tela-cli/gnomon-guide',
|
|
223
|
+
title: 'Gnomon Indexer Deep-Dive Guide | TELA Content Discovery and Indexing',
|
|
224
|
+
},
|
|
225
|
+
],
|
|
226
|
+
tela_get_doc_content: [
|
|
227
|
+
{
|
|
228
|
+
product: 'tela',
|
|
229
|
+
slug: 'tela/tela-doc-specification',
|
|
230
|
+
title: 'TELA-DOC-1 Specification | Smart Contract Standard for File Storage',
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
product: 'tela',
|
|
234
|
+
slug: 'tela/tela-index-specification',
|
|
235
|
+
title: 'TELA-INDEX-1 Specification | Application Manifest Smart Contract Standard',
|
|
236
|
+
},
|
|
189
237
|
],
|
|
190
238
|
};
|
|
191
239
|
/**
|
package/dist/citations.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"citations.js","sourceRoot":"","sources":["../src/citations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"citations.js","sourceRoot":"","sources":["../src/citations.ts"],"names":[],"mappings":"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"}
|
|
@@ -99,18 +99,43 @@ export type DeroScSurface = {
|
|
|
99
99
|
functions: DvmFunctionSignature[];
|
|
100
100
|
stringkeys: string[];
|
|
101
101
|
uint64keys: string[];
|
|
102
|
+
stringkeys_total: number;
|
|
103
|
+
uint64keys_total: number;
|
|
104
|
+
stringkeys_truncated: boolean;
|
|
105
|
+
uint64keys_truncated: boolean;
|
|
102
106
|
balances: Record<string, number | string>;
|
|
103
107
|
raw_code_length: number;
|
|
104
108
|
has_code: boolean;
|
|
105
109
|
};
|
|
110
|
+
/**
|
|
111
|
+
* Maximum number of state-variable keys surfaced per map. Real contracts
|
|
112
|
+
* like the on-chain name service hold tens of thousands of stringkeys
|
|
113
|
+
* (22,619 at time of writing), and an uncapped dump blows past every MCP
|
|
114
|
+
* host's token limit — turning the canonical `0000…0001` example into an
|
|
115
|
+
* unusable wall. The first N sorted keys are a deterministic, useful
|
|
116
|
+
* sample; `*_total` and `*_truncated` keep the response honest.
|
|
117
|
+
*/
|
|
118
|
+
export declare const SURFACE_KEY_CAP = 50;
|
|
119
|
+
/**
|
|
120
|
+
* Bound a raw `DERO.GetSC` variable map (`stringkeys` / `uint64keys`) for the
|
|
121
|
+
* `dero_get_sc` primitive, which returns the daemon payload verbatim. A map
|
|
122
|
+
* over `SURFACE_KEY_CAP` entries is replaced by a sorted sample plus
|
|
123
|
+
* `<field>_total` / `<field>_truncated` siblings so the response stays under
|
|
124
|
+
* host token limits without losing the count signal. Maps at or under the cap
|
|
125
|
+
* pass through untouched (no markers added). Returns the patch to spread onto
|
|
126
|
+
* the result; the field is deleted and re-added as a sample when truncated.
|
|
127
|
+
*/
|
|
128
|
+
export declare function capRawScVariables(result: Record<string, unknown>, field: 'stringkeys' | 'uint64keys'): void;
|
|
106
129
|
/**
|
|
107
130
|
* Convert a raw DERO.GetSC payload into a stable, agent-friendly surface.
|
|
108
131
|
*
|
|
109
132
|
* Behavior:
|
|
110
133
|
* - Returns `functions: []` when `code` is missing or the regex finds
|
|
111
134
|
* no Function declarations. Never throws on malformed code.
|
|
112
|
-
* - Sorts `stringkeys` / `uint64keys` alphabetically
|
|
113
|
-
* output
|
|
135
|
+
* - Sorts `stringkeys` / `uint64keys` alphabetically and caps each at
|
|
136
|
+
* `SURFACE_KEY_CAP` for deterministic, bounded output — large registries
|
|
137
|
+
* would otherwise overflow MCP host token limits. `*_total` /
|
|
138
|
+
* `*_truncated` report what was elided.
|
|
114
139
|
* - `balances` is passed through unchanged so callers can render asset
|
|
115
140
|
* balances; native DERO balance lives under `balance` on the raw
|
|
116
141
|
* payload and is left for callers to decide whether to surface.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_shared.d.ts","sourceRoot":"","sources":["../../src/composites/_shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAEnE;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,OAAO,IAAI;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,OAAO,CAAA;IACX,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAC3B,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,eAAe,EAAE,CAAA;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAkChF;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAIjF;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAIxE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,OAAO,EAAE,CAAC,EACV,QAAQ,EAAE,MAAM,GACf,CAAC,GAAG;IAAE,YAAY,CAAC,EAAE,YAAY,EAAE,CAAA;CAAE,CAIvC;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;AAUzF;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,oBAAoB,EAAE,CAAA;IACjC,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;IACzC,eAAe,EAAE,MAAM,CAAA;IACvB,QAAQ,EAAE,OAAO,CAAA;CAClB,CAAA;AA+BD
|
|
1
|
+
{"version":3,"file":"_shared.d.ts","sourceRoot":"","sources":["../../src/composites/_shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -89,6 +89,44 @@ export function attachCitations(payload, toolName) {
|
|
|
89
89
|
return payload;
|
|
90
90
|
return { ...payload, related_docs };
|
|
91
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Maximum number of state-variable keys surfaced per map. Real contracts
|
|
94
|
+
* like the on-chain name service hold tens of thousands of stringkeys
|
|
95
|
+
* (22,619 at time of writing), and an uncapped dump blows past every MCP
|
|
96
|
+
* host's token limit — turning the canonical `0000…0001` example into an
|
|
97
|
+
* unusable wall. The first N sorted keys are a deterministic, useful
|
|
98
|
+
* sample; `*_total` and `*_truncated` keep the response honest.
|
|
99
|
+
*/
|
|
100
|
+
export const SURFACE_KEY_CAP = 50;
|
|
101
|
+
/** Sort keys, take the first `SURFACE_KEY_CAP`, and report the full count. */
|
|
102
|
+
function capKeys(map) {
|
|
103
|
+
const all = map ? Object.keys(map).sort() : [];
|
|
104
|
+
return {
|
|
105
|
+
keys: all.slice(0, SURFACE_KEY_CAP),
|
|
106
|
+
total: all.length,
|
|
107
|
+
truncated: all.length > SURFACE_KEY_CAP,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Bound a raw `DERO.GetSC` variable map (`stringkeys` / `uint64keys`) for the
|
|
112
|
+
* `dero_get_sc` primitive, which returns the daemon payload verbatim. A map
|
|
113
|
+
* over `SURFACE_KEY_CAP` entries is replaced by a sorted sample plus
|
|
114
|
+
* `<field>_total` / `<field>_truncated` siblings so the response stays under
|
|
115
|
+
* host token limits without losing the count signal. Maps at or under the cap
|
|
116
|
+
* pass through untouched (no markers added). Returns the patch to spread onto
|
|
117
|
+
* the result; the field is deleted and re-added as a sample when truncated.
|
|
118
|
+
*/
|
|
119
|
+
export function capRawScVariables(result, field) {
|
|
120
|
+
const map = result[field];
|
|
121
|
+
if (!map || typeof map !== 'object')
|
|
122
|
+
return;
|
|
123
|
+
const entries = Object.entries(map).sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0);
|
|
124
|
+
if (entries.length <= SURFACE_KEY_CAP)
|
|
125
|
+
return;
|
|
126
|
+
result[field] = Object.fromEntries(entries.slice(0, SURFACE_KEY_CAP));
|
|
127
|
+
result[`${field}_total`] = entries.length;
|
|
128
|
+
result[`${field}_truncated`] = true;
|
|
129
|
+
}
|
|
92
130
|
// DVM-BASIC function declaration:
|
|
93
131
|
// Function Name(arg Type, ...) Uint64|String
|
|
94
132
|
//
|
|
@@ -121,8 +159,10 @@ function parseDvmFunctions(code) {
|
|
|
121
159
|
* Behavior:
|
|
122
160
|
* - Returns `functions: []` when `code` is missing or the regex finds
|
|
123
161
|
* no Function declarations. Never throws on malformed code.
|
|
124
|
-
* - Sorts `stringkeys` / `uint64keys` alphabetically
|
|
125
|
-
* output
|
|
162
|
+
* - Sorts `stringkeys` / `uint64keys` alphabetically and caps each at
|
|
163
|
+
* `SURFACE_KEY_CAP` for deterministic, bounded output — large registries
|
|
164
|
+
* would otherwise overflow MCP host token limits. `*_total` /
|
|
165
|
+
* `*_truncated` report what was elided.
|
|
126
166
|
* - `balances` is passed through unchanged so callers can render asset
|
|
127
167
|
* balances; native DERO balance lives under `balance` on the raw
|
|
128
168
|
* payload and is left for callers to decide whether to surface.
|
|
@@ -130,8 +170,8 @@ function parseDvmFunctions(code) {
|
|
|
130
170
|
export function extractScSurface(raw) {
|
|
131
171
|
const code = typeof raw?.code === 'string' ? raw.code : '';
|
|
132
172
|
const functions = code.length > 0 ? parseDvmFunctions(code) : [];
|
|
133
|
-
const stringkeys = raw?.stringkeys
|
|
134
|
-
const uint64keys = raw?.uint64keys
|
|
173
|
+
const stringkeys = capKeys(raw?.stringkeys);
|
|
174
|
+
const uint64keys = capKeys(raw?.uint64keys);
|
|
135
175
|
const balances = {};
|
|
136
176
|
if (raw?.balances && typeof raw.balances === 'object') {
|
|
137
177
|
for (const [scid, amount] of Object.entries(raw.balances)) {
|
|
@@ -142,8 +182,12 @@ export function extractScSurface(raw) {
|
|
|
142
182
|
}
|
|
143
183
|
return {
|
|
144
184
|
functions,
|
|
145
|
-
stringkeys,
|
|
146
|
-
uint64keys,
|
|
185
|
+
stringkeys: stringkeys.keys,
|
|
186
|
+
uint64keys: uint64keys.keys,
|
|
187
|
+
stringkeys_total: stringkeys.total,
|
|
188
|
+
uint64keys_total: uint64keys.total,
|
|
189
|
+
stringkeys_truncated: stringkeys.truncated,
|
|
190
|
+
uint64keys_truncated: uint64keys.truncated,
|
|
147
191
|
balances,
|
|
148
192
|
raw_code_length: code.length,
|
|
149
193
|
has_code: code.length > 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_shared.js","sourceRoot":"","sources":["../../src/composites/_shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,cAAc,EAAqB,MAAM,iBAAiB,CAAA;AA6BnE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,KAA2B;IACxD,MAAM,OAAO,GAAsB,EAAE,CAAA;IACrC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;IACnC,IAAI,QAAQ,GAAkB,IAAI,CAAA;IAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QACnC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,CAAA;YAC7B,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,EAAE,EAAE,IAAI;gBACR,KAAK;gBACL,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;aACrD,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBAC1E,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;aACrD,CAAC,CAAA;YACF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAA;gBACpB,MAAK;YACP,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO;QACP,QAAQ;QACR,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;KACnD,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAc,KAAkB,EAAE,IAAY;IACrE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;IACxD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,IAAI,CAAA;IACpC,OAAO,KAAK,CAAC,KAAU,CAAA;AACzB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAkB;IAC9C,MAAM,GAAG,GAA2B,EAAE,CAAA;IACtC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO;QAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAA;IACxD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAU,EACV,QAAgB;IAEhB,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IAC7C,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAA;IAC9D,OAAO,EAAE,GAAG,OAAO,EAAE,YAAY,EAAE,CAAA;AACrC,CAAC;
|
|
1
|
+
{"version":3,"file":"_shared.js","sourceRoot":"","sources":["../../src/composites/_shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,13 +34,13 @@ type ExplainInput = {
|
|
|
34
34
|
scid: string;
|
|
35
35
|
topoheight?: number;
|
|
36
36
|
};
|
|
37
|
-
type ContractKind = 'token' | 'registry' | 'minimal' | 'generic';
|
|
37
|
+
type ContractKind = 'tela_index' | 'tela_doc' | 'token' | 'registry' | 'minimal' | 'generic';
|
|
38
38
|
/**
|
|
39
39
|
* Classify a contract from its surface + raw code so we can pick the
|
|
40
40
|
* most relevant docs page as "primary". Pure function, deterministic,
|
|
41
41
|
* unit-testable. Returns the classification AND the slug to elevate.
|
|
42
42
|
*/
|
|
43
|
-
export declare function classifyContractAndPickDoc(surface: DeroScSurface, code: string): {
|
|
43
|
+
export declare function classifyContractAndPickDoc(surface: DeroScSurface, code: string, rawStringkeys?: Record<string, unknown>): {
|
|
44
44
|
kind: ContractKind;
|
|
45
45
|
primarySlug: string;
|
|
46
46
|
};
|
|
@@ -52,6 +52,10 @@ export declare function explainSmartContract(rpc: DeroDaemonRpc, args: ExplainIn
|
|
|
52
52
|
functions: import("./_shared.js").DvmFunctionSignature[];
|
|
53
53
|
stringkeys: string[];
|
|
54
54
|
uint64keys: string[];
|
|
55
|
+
stringkeys_total: number;
|
|
56
|
+
uint64keys_total: number;
|
|
57
|
+
stringkeys_truncated: boolean;
|
|
58
|
+
uint64keys_truncated: boolean;
|
|
55
59
|
balances: Record<string, string | number>;
|
|
56
60
|
};
|
|
57
61
|
narrative: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explain-smart-contract.d.ts","sourceRoot":"","sources":["../../src/composites/explain-smart-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAGL,KAAK,aAAa,EAElB,KAAK,aAAa,EACnB,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"explain-smart-contract.d.ts","sourceRoot":"","sources":["../../src/composites/explain-smart-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAGL,KAAK,aAAa,EAElB,KAAK,aAAa,EACnB,MAAM,cAAc,CAAA;AAKrB,eAAO,MAAM,+BAA+B;;;CAUlC,CAAA;AAEV,KAAK,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAazD,KAAK,YAAY,GAAG,YAAY,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAA;AAE5F;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACtC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAsC7C;AA6CD,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY;;;;;;;;;;;;;;;;;;;GA6DhF"}
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
*/
|
|
27
27
|
import { z } from 'zod';
|
|
28
28
|
import { attachCitations, extractScSurface, } from './_shared.js';
|
|
29
|
+
import { classifyTela } from '../tela-parse.js';
|
|
29
30
|
const SCID_HEX_REGEX = /^[0-9a-fA-F]{64}$/;
|
|
30
31
|
export const explainSmartContractInputSchema = {
|
|
31
32
|
scid: z
|
|
@@ -46,12 +47,24 @@ const DVM_DOC_FUNDAMENTALS = 'dvm/smart-contract-fundamentals';
|
|
|
46
47
|
const DVM_DOC_LANGUAGE = 'dvm/dvm-basic';
|
|
47
48
|
const DVM_DOC_DEPLOY = 'dvm/create-deploy-use-smart-contract';
|
|
48
49
|
const DVM_DOC_PLATFORM = 'dvm/dero-virtual-machine';
|
|
50
|
+
const TELA_DOC_INDEX_SPEC = 'tela/tela-index-specification';
|
|
51
|
+
const TELA_DOC_DOC_SPEC = 'tela/tela-doc-specification';
|
|
49
52
|
/**
|
|
50
53
|
* Classify a contract from its surface + raw code so we can pick the
|
|
51
54
|
* most relevant docs page as "primary". Pure function, deterministic,
|
|
52
55
|
* unit-testable. Returns the classification AND the slug to elevate.
|
|
53
56
|
*/
|
|
54
|
-
export function classifyContractAndPickDoc(surface, code) {
|
|
57
|
+
export function classifyContractAndPickDoc(surface, code, rawStringkeys) {
|
|
58
|
+
// TELA detection FIRST: a TELA contract's InitializePrivate contains
|
|
59
|
+
// `EXISTS("nameHdr")`, which the registry heuristic below would otherwise
|
|
60
|
+
// misclassify as a name registry. classifyTela keys on the TELA-specific
|
|
61
|
+
// markers (dURL/DOC1/docType/fileCheck) from both the raw stringkeys and the
|
|
62
|
+
// code literals, so it correctly distinguishes a TELA app from a registry.
|
|
63
|
+
const tela = classifyTela(rawStringkeys, code);
|
|
64
|
+
if (tela.kind === 'tela_index')
|
|
65
|
+
return { kind: 'tela_index', primarySlug: TELA_DOC_INDEX_SPEC };
|
|
66
|
+
if (tela.kind === 'tela_doc')
|
|
67
|
+
return { kind: 'tela_doc', primarySlug: TELA_DOC_DOC_SPEC };
|
|
55
68
|
const functionNames = new Set(surface.functions.map((f) => f.name.toLowerCase()));
|
|
56
69
|
const codeUpper = code.toUpperCase();
|
|
57
70
|
const looksLikeToken = codeUpper.includes('SEND_ASSET_TO_ADDRESS') ||
|
|
@@ -89,6 +102,8 @@ function buildNarrative(scid, topoheight, surface, kind) {
|
|
|
89
102
|
return `Found ${surface.raw_code_length} bytes of code at SCID ${scid} (topoheight ${topoheight ?? 'tip'}) but no DVM-BASIC Function declarations were recognized by the parser. The raw code is still available via dero_get_sc; ${stringCount} stored string keys and ${uint64Count} uint64 keys are present, with ${balanceCount} asset balance(s).`;
|
|
90
103
|
}
|
|
91
104
|
const kindPhrase = {
|
|
105
|
+
tela_index: 'is a TELA-INDEX-1 application manifest (the on-chain entrypoint listing an app’s DOC files)',
|
|
106
|
+
tela_doc: 'is a TELA-DOC-1 file contract (stores a single on-chain web-app file)',
|
|
92
107
|
token: 'has a token-style surface (transfer/asset operations)',
|
|
93
108
|
registry: 'has a registry-style surface (Register/Lookup/EXISTS pattern)',
|
|
94
109
|
minimal: 'is a minimal contract (Initialize-only or single function)',
|
|
@@ -114,7 +129,12 @@ export async function explainSmartContract(rpc, args) {
|
|
|
114
129
|
const raw = (await rpc('DERO.GetSC', params)) ?? {};
|
|
115
130
|
const surface = extractScSurface(raw);
|
|
116
131
|
const code = typeof raw.code === 'string' ? raw.code : '';
|
|
117
|
-
|
|
132
|
+
// Pass the RAW (uncapped) stringkeys so TELA marker detection is not affected
|
|
133
|
+
// by extractScSurface's 50-key cap.
|
|
134
|
+
const rawStringkeys = raw.stringkeys && typeof raw.stringkeys === 'object'
|
|
135
|
+
? raw.stringkeys
|
|
136
|
+
: undefined;
|
|
137
|
+
const { kind, primarySlug } = classifyContractAndPickDoc(surface, code, rawStringkeys);
|
|
118
138
|
const responseTopoheight = typeof args.topoheight === 'number' && Number.isFinite(args.topoheight)
|
|
119
139
|
? args.topoheight
|
|
120
140
|
: null;
|
|
@@ -131,6 +151,10 @@ export async function explainSmartContract(rpc, args) {
|
|
|
131
151
|
functions: surface.functions,
|
|
132
152
|
stringkeys: surface.stringkeys,
|
|
133
153
|
uint64keys: surface.uint64keys,
|
|
154
|
+
stringkeys_total: surface.stringkeys_total,
|
|
155
|
+
uint64keys_total: surface.uint64keys_total,
|
|
156
|
+
stringkeys_truncated: surface.stringkeys_truncated,
|
|
157
|
+
uint64keys_truncated: surface.uint64keys_truncated,
|
|
134
158
|
balances: surface.balances,
|
|
135
159
|
},
|
|
136
160
|
narrative,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explain-smart-contract.js","sourceRoot":"","sources":["../../src/composites/explain-smart-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EACL,eAAe,EACf,gBAAgB,GAIjB,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"explain-smart-contract.js","sourceRoot":"","sources":["../../src/composites/explain-smart-contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recommend-docs-path.d.ts","sourceRoot":"","sources":["../../src/composites/recommend-docs-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,
|
|
1
|
+
{"version":3,"file":"recommend-docs-path.d.ts","sourceRoot":"","sources":["../../src/composites/recommend-docs-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAetE,eAAO,MAAM,4BAA4B;;;;CAkB/B,CAAA;AAEV,KAAK,cAAc,GAAG;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,cAAc,CAAA;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED;;;;GAIG;AACH,KAAK,SAAS,GAAG;IACf,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,KAAK,gBAAgB,GAAG,MAAM,CAC5B,cAAc,EACd;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CACrE,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,cAAc,GAAG,SAAS,EACvC,aAAa,EAAE,WAAW,CAAC,cAAc,EAAE,SAAS,SAAS,EAAE,CAAC,GAC/D,cAAc,EAAE,CAmClB;AA+ED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,cAAc;;;;;;;GAoD3D"}
|
|
@@ -37,9 +37,18 @@
|
|
|
37
37
|
* `DOCS_UNAVAILABLE` classification from `searchDeroDocs`.
|
|
38
38
|
*/
|
|
39
39
|
import { z } from 'zod';
|
|
40
|
-
import { DERO_DOC_PRODUCTS, searchDeroDocs, } from '../docs.js';
|
|
40
|
+
import { DERO_DOC_PRODUCTS, getDeroDocPage, searchDeroDocs, } from '../docs.js';
|
|
41
41
|
import { buildDeroCitation } from '../citations.js';
|
|
42
42
|
const PRODUCT_HINT_BOOST = 1.5;
|
|
43
|
+
// Concept-intro nudge: when an intent reads as a beginner asking "what is
|
|
44
|
+
// DERO / where do I start", the canonical orientation page (basics/about) is
|
|
45
|
+
// not token-dense on the query words and loses to advanced, jargon-heavy
|
|
46
|
+
// pages. Detect conceptual-beginner intent and lift ONLY the about explainer.
|
|
47
|
+
// Deliberately narrow — NOT all basics/*, NOT overview/quick-start (those
|
|
48
|
+
// flood other products' landing pages). CI-guarded by check:docs-ranking.
|
|
49
|
+
const CONCEPT_INTENT_REGEX = /\bwhat is\b|\bnew to\b|\bunderstand\b|\blearn about\b|\bgetting started\b|\bget started\b|where (?:do|should) i (?:start|begin)|\bbrand new\b|\bcompletely new\b|\bbeginner\b/i;
|
|
50
|
+
const ABOUT_SLUG_REGEX = /(?:^|\/)about$/;
|
|
51
|
+
const CONCEPT_INTRO_BOOST = 2.2;
|
|
43
52
|
export const recommendDocsPathInputSchema = {
|
|
44
53
|
intent: z
|
|
45
54
|
.string()
|
|
@@ -66,16 +75,18 @@ export const recommendDocsPathInputSchema = {
|
|
|
66
75
|
export function rankRecommendations(intent, productHint, hitsByProduct) {
|
|
67
76
|
const out = [];
|
|
68
77
|
const seen = new Set();
|
|
78
|
+
const conceptIntent = CONCEPT_INTENT_REGEX.test(intent);
|
|
69
79
|
for (const [product, hits] of hitsByProduct) {
|
|
70
80
|
for (const hit of hits) {
|
|
71
81
|
const key = `${product}::${hit.slug}`;
|
|
72
82
|
if (seen.has(key))
|
|
73
83
|
continue;
|
|
74
84
|
seen.add(key);
|
|
75
|
-
const
|
|
76
|
-
const
|
|
85
|
+
const hintBoost = product === productHint ? PRODUCT_HINT_BOOST : 1;
|
|
86
|
+
const conceptBoost = conceptIntent && ABOUT_SLUG_REGEX.test(hit.slug) ? CONCEPT_INTRO_BOOST : 1;
|
|
87
|
+
const boostedScore = Math.round(hit.score * hintBoost * conceptBoost * 100) / 100;
|
|
77
88
|
const topHeading = hit.headings[0];
|
|
78
|
-
const rationale = buildRationale(intent, product, hit.score,
|
|
89
|
+
const rationale = buildRationale(intent, product, hit.score, hintBoost, topHeading, conceptBoost > 1);
|
|
79
90
|
out.push({
|
|
80
91
|
product,
|
|
81
92
|
slug: hit.slug,
|
|
@@ -87,13 +98,21 @@ export function rankRecommendations(intent, productHint, hitsByProduct) {
|
|
|
87
98
|
});
|
|
88
99
|
}
|
|
89
100
|
}
|
|
90
|
-
|
|
101
|
+
// Tie-break on product/slug for deterministic ordering at equal scores.
|
|
102
|
+
out.sort((a, b) => {
|
|
103
|
+
if (b.boosted_score !== a.boosted_score)
|
|
104
|
+
return b.boosted_score - a.boosted_score;
|
|
105
|
+
const ak = `${a.product}/${a.slug}`;
|
|
106
|
+
const bk = `${b.product}/${b.slug}`;
|
|
107
|
+
return ak < bk ? -1 : ak > bk ? 1 : 0;
|
|
108
|
+
});
|
|
91
109
|
return out;
|
|
92
110
|
}
|
|
93
|
-
function buildRationale(intent, product, rawScore, boost, topHeading) {
|
|
111
|
+
function buildRationale(intent, product, rawScore, boost, topHeading, conceptBoosted = false) {
|
|
94
112
|
const boostNote = boost > 1 ? ` (×${boost} product_hint boost applied)` : '';
|
|
113
|
+
const conceptNote = conceptBoosted ? ' (elevated as the beginner orientation page)' : '';
|
|
95
114
|
const headingPart = topHeading ? ` Top heading: "${topHeading.slice(0, 80)}".` : '';
|
|
96
|
-
return `Match for "${intent.slice(0, 60)}" under product=${product} (raw score ${rawScore}${boostNote}).${headingPart}`;
|
|
115
|
+
return `Match for "${intent.slice(0, 60)}" under product=${product} (raw score ${rawScore}${boostNote}${conceptNote}).${headingPart}`;
|
|
97
116
|
}
|
|
98
117
|
function summarizeByProduct(recs) {
|
|
99
118
|
const out = Object.create(null);
|
|
@@ -120,9 +139,43 @@ function citationsFromRecommendations(recs, topN) {
|
|
|
120
139
|
.slice(0, topN)
|
|
121
140
|
.map((rec) => buildDeroCitation(rec.product, rec.slug, rec.title));
|
|
122
141
|
}
|
|
142
|
+
const ORIENTATION_SLUG = 'basics/about';
|
|
143
|
+
/**
|
|
144
|
+
* Ensure derod/basics/about is in the derod candidate pool. If already
|
|
145
|
+
* present, leave it. If absent, fetch its metadata and inject it with a base
|
|
146
|
+
* score floored at the current derod top hit (so the ×2.2 nudge lands it near
|
|
147
|
+
* the top without fabricating an out-of-range number). Silent no-op if the
|
|
148
|
+
* page can't be fetched (keeps the composite resilient).
|
|
149
|
+
*/
|
|
150
|
+
async function ensureOrientationCandidate(hitsByProduct) {
|
|
151
|
+
const derodHits = hitsByProduct.get('derod') ?? [];
|
|
152
|
+
if (derodHits.some((h) => h.slug === ORIENTATION_SLUG))
|
|
153
|
+
return;
|
|
154
|
+
try {
|
|
155
|
+
const page = await getDeroDocPage({ product: 'derod', slug: ORIENTATION_SLUG });
|
|
156
|
+
const topScore = derodHits[0]?.score ?? 1;
|
|
157
|
+
const injected = {
|
|
158
|
+
product: 'derod',
|
|
159
|
+
slug: ORIENTATION_SLUG,
|
|
160
|
+
title: page.title,
|
|
161
|
+
description: page.description ?? undefined,
|
|
162
|
+
canonical_url: page.canonical_url,
|
|
163
|
+
headings: page.headings,
|
|
164
|
+
excerpt: page.content.slice(0, 420),
|
|
165
|
+
score: topScore,
|
|
166
|
+
};
|
|
167
|
+
hitsByProduct.set('derod', [injected, ...derodHits]);
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
// Orientation page unavailable (older bundle / fs override) — skip.
|
|
171
|
+
}
|
|
172
|
+
}
|
|
123
173
|
export async function recommendDocsPath(args) {
|
|
124
174
|
const intent = args.intent.trim();
|
|
125
|
-
|
|
175
|
+
// Default 4 (was 2) so a concept-intro page that ranks mid-pack per product
|
|
176
|
+
// can still survive the per-product cut and reach the merge where the
|
|
177
|
+
// beginner-intent nudge promotes it.
|
|
178
|
+
const limitPerProduct = args.limit_per_product ?? 4;
|
|
126
179
|
const productHint = args.product_hint;
|
|
127
180
|
// Always fan out to all four products. `searchDeroDocs` shares an
|
|
128
181
|
// in-process page cache (15s TTL) so the second+ calls in the batch
|
|
@@ -131,6 +184,15 @@ export async function recommendDocsPath(args) {
|
|
|
131
184
|
// product_hint.
|
|
132
185
|
const searches = await Promise.all(DERO_DOC_PRODUCTS.map((product) => searchDeroDocs({ query: intent, product, limit: limitPerProduct }).then((res) => [product, res.results])));
|
|
133
186
|
const hitsByProduct = new Map(searches);
|
|
187
|
+
// On a clearly-beginner conceptual intent, GUARANTEE the canonical
|
|
188
|
+
// orientation page (derod/basics/about — "Understanding DERO") is a
|
|
189
|
+
// candidate. It's a short, high-signal page that BM25 length-norm pushes
|
|
190
|
+
// below long jargon-dense pages, so it often never reaches the merge for the
|
|
191
|
+
// nudge to act on. Inject it (floored at the derod top score) only when it's
|
|
192
|
+
// absent; the ×2.2 concept nudge in rankRecommendations then elevates it.
|
|
193
|
+
if (CONCEPT_INTENT_REGEX.test(intent)) {
|
|
194
|
+
await ensureOrientationCandidate(hitsByProduct);
|
|
195
|
+
}
|
|
134
196
|
const recommended = rankRecommendations(intent, productHint, hitsByProduct);
|
|
135
197
|
if (recommended.length === 0) {
|
|
136
198
|
throw new Error(`No DERO docs matched intent: "${intent}" across products: ${DERO_DOC_PRODUCTS.join(', ')}. Try rephrasing with product-specific nouns (e.g. "TELA INDEX-1 contract", "DeroPay webhook").`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recommend-docs-path.js","sourceRoot":"","sources":["../../src/composites/recommend-docs-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EACL,iBAAiB,EACjB,cAAc,GAEf,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,iBAAiB,EAAqB,MAAM,iBAAiB,CAAA;AAEtE,MAAM,kBAAkB,GAAG,GAAG,CAAA;AAE9B,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CACP,oJAAoJ,CACrJ;IACH,YAAY,EAAE,CAAC;SACZ,IAAI,CAAC,iBAAiB,CAAC;SACvB,QAAQ,EAAE;SACV,QAAQ,CAAC,kFAAkF,CAAC;IAC/F,iBAAiB,EAAE,CAAC;SACjB,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,2DAA2D,CAAC;CAChE,CAAA;AAuCV;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAc,EACd,WAAuC,EACvC,aAAgE;IAEhE,MAAM,GAAG,GAAqB,EAAE,CAAA;IAChC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"recommend-docs-path.js","sourceRoot":"","sources":["../../src/composites/recommend-docs-path.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `tela_get_doc_content` — fetch a TELA-DOC-1's actual file content.
|
|
3
|
+
*
|
|
4
|
+
* A TELA-DOC-1 stores its file (HTML/CSS/JS/...) inside a DVM-BASIC comment
|
|
5
|
+
* block in the contract code, NOT in a stored variable. This tool fetches
|
|
6
|
+
* DERO.GetSC (code=true), confirms the SCID is a DOC, and extracts the file
|
|
7
|
+
* content via the shared extractTelaDocContent. Large files are chunked with
|
|
8
|
+
* offset pagination (mirrors dero_docs_get_page).
|
|
9
|
+
*
|
|
10
|
+
* Read-only; one RPC call. We surface the content verbatim and report the
|
|
11
|
+
* author signature's presence — we do NOT claim to have verified it (the
|
|
12
|
+
* server performs no signature check), only that the contract carries one.
|
|
13
|
+
*/
|
|
14
|
+
import { z } from 'zod';
|
|
15
|
+
import { type DeroDaemonRpc } from './_shared.js';
|
|
16
|
+
export declare const telaGetDocContentInputSchema: {
|
|
17
|
+
readonly scid: z.ZodString;
|
|
18
|
+
readonly offset: z.ZodOptional<z.ZodNumber>;
|
|
19
|
+
readonly topoheight: z.ZodOptional<z.ZodNumber>;
|
|
20
|
+
};
|
|
21
|
+
type TelaGetDocContentInput = {
|
|
22
|
+
scid: string;
|
|
23
|
+
offset?: number;
|
|
24
|
+
topoheight?: number;
|
|
25
|
+
};
|
|
26
|
+
export declare function telaGetDocContent(rpc: DeroDaemonRpc, args: TelaGetDocContentInput): Promise<{
|
|
27
|
+
scid: string;
|
|
28
|
+
topoheight: number | null;
|
|
29
|
+
filename: string | null;
|
|
30
|
+
doc_type: string | null;
|
|
31
|
+
sub_dir: string | null;
|
|
32
|
+
content_embedded: boolean;
|
|
33
|
+
content: string | null;
|
|
34
|
+
content_offset: number | null;
|
|
35
|
+
content_length: number;
|
|
36
|
+
content_truncated: boolean;
|
|
37
|
+
next_offset: number | null;
|
|
38
|
+
compressed: boolean;
|
|
39
|
+
signature: {
|
|
40
|
+
present: boolean;
|
|
41
|
+
file_check_c_present: boolean;
|
|
42
|
+
file_check_s_present: boolean;
|
|
43
|
+
};
|
|
44
|
+
signature_note: string;
|
|
45
|
+
note: string | undefined;
|
|
46
|
+
narrative: string;
|
|
47
|
+
} & {
|
|
48
|
+
related_docs?: import("../citations.js").DeroCitation[];
|
|
49
|
+
}>;
|
|
50
|
+
export {};
|
|
51
|
+
//# sourceMappingURL=tela-get-doc-content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tela-get-doc-content.d.ts","sourceRoot":"","sources":["../../src/composites/tela-get-doc-content.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAmB,KAAK,aAAa,EAAwB,MAAM,cAAc,CAAA;AAQxF,eAAO,MAAM,4BAA4B;;;;CAY/B,CAAA;AAEV,KAAK,sBAAsB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpF,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;GA2DvF"}
|