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
|
@@ -0,0 +1,82 @@
|
|
|
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 { attachCitations } from './_shared.js';
|
|
16
|
+
import { classifyTela, parseTelaDoc, extractTelaDocContent } from '../tela-parse.js';
|
|
17
|
+
const SCID_HEX_REGEX = /^[0-9a-fA-F]{64}$/;
|
|
18
|
+
// Per-call content cap, matching dero_docs_get_page's PAGE_CONTENT_CHUNK.
|
|
19
|
+
const DOC_CONTENT_CHUNK = 60000;
|
|
20
|
+
export const telaGetDocContentInputSchema = {
|
|
21
|
+
scid: z
|
|
22
|
+
.string()
|
|
23
|
+
.regex(SCID_HEX_REGEX, 'Expected 64-character hex Smart Contract ID')
|
|
24
|
+
.describe('64-char hex Smart Contract ID of a TELA-DOC-1 file contract'),
|
|
25
|
+
offset: z
|
|
26
|
+
.number()
|
|
27
|
+
.int()
|
|
28
|
+
.min(0)
|
|
29
|
+
.optional()
|
|
30
|
+
.describe('Byte offset into the extracted file content; use next_offset to paginate large files'),
|
|
31
|
+
topoheight: z.number().int().optional().describe('Optional topo height; omit for latest committed state'),
|
|
32
|
+
};
|
|
33
|
+
export async function telaGetDocContent(rpc, args) {
|
|
34
|
+
const params = { scid: args.scid, code: true, variables: true };
|
|
35
|
+
if (args.topoheight !== undefined)
|
|
36
|
+
params.topoheight = args.topoheight;
|
|
37
|
+
const raw = (await rpc('DERO.GetSC', params)) ?? {};
|
|
38
|
+
const code = typeof raw.code === 'string' ? raw.code : '';
|
|
39
|
+
const stringkeys = raw.stringkeys && typeof raw.stringkeys === 'object'
|
|
40
|
+
? raw.stringkeys
|
|
41
|
+
: undefined;
|
|
42
|
+
const { kind } = classifyTela(stringkeys, code);
|
|
43
|
+
if (kind !== 'tela_doc') {
|
|
44
|
+
// Not a DOC — guide the agent rather than returning empty content.
|
|
45
|
+
const hint = kind === 'tela_index'
|
|
46
|
+
? 'This SCID is a TELA-INDEX-1 manifest, not a DOC. Use tela_inspect to list its DOC SCIDs, then call this tool on a DOC.'
|
|
47
|
+
: 'This SCID is not a TELA-DOC-1 contract. Use tela_inspect or explain_smart_contract to identify it.';
|
|
48
|
+
throw new Error(`INVALID_INPUT: ${hint}`);
|
|
49
|
+
}
|
|
50
|
+
const doc = parseTelaDoc(stringkeys, code);
|
|
51
|
+
const extracted = extractTelaDocContent(code);
|
|
52
|
+
const responseTopoheight = typeof args.topoheight === 'number' && Number.isFinite(args.topoheight) ? args.topoheight : null;
|
|
53
|
+
const full = extracted.content ?? '';
|
|
54
|
+
const total = full.length;
|
|
55
|
+
const offset = Math.max(0, Math.min(args.offset ?? 0, total));
|
|
56
|
+
const end = Math.min(offset + DOC_CONTENT_CHUNK, total);
|
|
57
|
+
const truncated = end < total;
|
|
58
|
+
// .gz filename ⇒ gzip-compressed content we cannot decompress in-process.
|
|
59
|
+
const compressed = !!doc.filename && /\.gz$/i.test(doc.filename);
|
|
60
|
+
const payload = {
|
|
61
|
+
scid: args.scid,
|
|
62
|
+
topoheight: responseTopoheight,
|
|
63
|
+
filename: doc.filename,
|
|
64
|
+
doc_type: doc.doc_type,
|
|
65
|
+
sub_dir: doc.sub_dir,
|
|
66
|
+
content_embedded: extracted.embedded,
|
|
67
|
+
content: extracted.embedded ? full.slice(offset, end) : null,
|
|
68
|
+
content_offset: extracted.embedded ? offset : null,
|
|
69
|
+
content_length: total,
|
|
70
|
+
content_truncated: truncated,
|
|
71
|
+
next_offset: truncated ? end : null,
|
|
72
|
+
compressed,
|
|
73
|
+
signature: doc.signature,
|
|
74
|
+
signature_note: 'The contract carries an author signature (fileCheckC/S). This tool reports its presence but does NOT cryptographically verify it.',
|
|
75
|
+
note: extracted.note ?? (compressed ? 'Content is gzip-compressed (.gz); shown bytes are compressed, not the plaintext file.' : undefined),
|
|
76
|
+
narrative: extracted.embedded
|
|
77
|
+
? `Fetched ${total} bytes of "${doc.filename ?? 'file'}" (${doc.doc_type ?? 'unknown type'}) from TELA-DOC-1 ${args.scid}.${truncated ? ` Returning bytes ${offset}–${end}; paginate with next_offset.` : ''}${compressed ? ' Content is gzip-compressed.' : ''}`
|
|
78
|
+
: `TELA-DOC-1 ${args.scid} ("${doc.filename ?? 'file'}") has no inline file content (${extracted.note ?? 'DocShard, STATIC, or external'}).`,
|
|
79
|
+
};
|
|
80
|
+
return attachCitations(payload, 'tela_get_doc_content');
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=tela-get-doc-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tela-get-doc-content.js","sourceRoot":"","sources":["../../src/composites/tela-get-doc-content.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,eAAe,EAA4C,MAAM,cAAc,CAAA;AACxF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAEpF,MAAM,cAAc,GAAG,mBAAmB,CAAA;AAE1C,0EAA0E;AAC1E,MAAM,iBAAiB,GAAG,KAAK,CAAA;AAE/B,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,KAAK,CAAC,cAAc,EAAE,6CAA6C,CAAC;SACpE,QAAQ,CAAC,6DAA6D,CAAC;IAC1E,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,sFAAsF,CAAC;IACnG,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;CACjG,CAAA;AAIV,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAkB,EAAE,IAA4B;IACtF,MAAM,MAAM,GAA4B,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;IACxF,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;IAEtE,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAkB,YAAY,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;IACpE,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IACzD,MAAM,UAAU,GACd,GAAG,CAAC,UAAU,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ;QAClD,CAAC,CAAE,GAAG,CAAC,UAAsC;QAC7C,CAAC,CAAC,SAAS,CAAA;IAEf,MAAM,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;IAC/C,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,mEAAmE;QACnE,MAAM,IAAI,GACR,IAAI,KAAK,YAAY;YACnB,CAAC,CAAC,wHAAwH;YAC1H,CAAC,CAAC,oGAAoG,CAAA;QAC1G,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAA;IAC3C,CAAC;IAED,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;IAC1C,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAA;IAE7C,MAAM,kBAAkB,GACtB,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAA;IAElG,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,IAAI,EAAE,CAAA;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;IACzB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;IAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,iBAAiB,EAAE,KAAK,CAAC,CAAA;IACvD,MAAM,SAAS,GAAG,GAAG,GAAG,KAAK,CAAA;IAE7B,0EAA0E;IAC1E,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAEhE,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,UAAU,EAAE,kBAAkB;QAC9B,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,gBAAgB,EAAE,SAAS,CAAC,QAAQ;QACpC,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;QAC5D,cAAc,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;QAClD,cAAc,EAAE,KAAK;QACrB,iBAAiB,EAAE,SAAS;QAC5B,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;QACnC,UAAU;QACV,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,cAAc,EACZ,mIAAmI;QACrI,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,uFAAuF,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1I,SAAS,EAAE,SAAS,CAAC,QAAQ;YAC3B,CAAC,CAAC,WAAW,KAAK,cAAc,GAAG,CAAC,QAAQ,IAAI,MAAM,MAAM,GAAG,CAAC,QAAQ,IAAI,cAAc,qBAAqB,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,oBAAoB,MAAM,IAAI,GAAG,8BAA8B,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,EAAE;YACjQ,CAAC,CAAC,cAAc,IAAI,CAAC,IAAI,MAAM,GAAG,CAAC,QAAQ,IAAI,MAAM,kCAAkC,SAAS,CAAC,IAAI,IAAI,+BAA+B,IAAI;KAC/I,CAAA;IAED,OAAO,eAAe,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAA;AACzD,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `tela_inspect` — foundation TELA chain tool.
|
|
3
|
+
*
|
|
4
|
+
* Given a SCID, fetch DERO.GetSC (code + variables) once and parse it as a
|
|
5
|
+
* TELA-INDEX-1 app manifest, a TELA-DOC-1 file contract, or report not_tela.
|
|
6
|
+
* Reads the RAW (uncapped) stringkeys directly via the shared tela-parse
|
|
7
|
+
* module so a large INDEX's full DOC1..DOCn list enumerates (extractScSurface
|
|
8
|
+
* would cap at 50 and silently drop entries).
|
|
9
|
+
*
|
|
10
|
+
* Read-only; one RPC call. Never throws on a non-TELA contract — returns
|
|
11
|
+
* kind:'not_tela' with a forensic hint, which is a SUCCESS, not an error.
|
|
12
|
+
*/
|
|
13
|
+
import { z } from 'zod';
|
|
14
|
+
import { type DeroDaemonRpc } from './_shared.js';
|
|
15
|
+
export declare const telaInspectInputSchema: {
|
|
16
|
+
readonly scid: z.ZodString;
|
|
17
|
+
readonly topoheight: z.ZodOptional<z.ZodNumber>;
|
|
18
|
+
};
|
|
19
|
+
type TelaInspectInput = {
|
|
20
|
+
scid: string;
|
|
21
|
+
topoheight?: number;
|
|
22
|
+
};
|
|
23
|
+
export declare function telaInspect(rpc: DeroDaemonRpc, args: TelaInspectInput): Promise<Record<string, unknown> & {
|
|
24
|
+
related_docs?: import("../citations.js").DeroCitation[];
|
|
25
|
+
}>;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=tela-inspect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tela-inspect.d.ts","sourceRoot":"","sources":["../../src/composites/tela-inspect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAmB,KAAK,aAAa,EAAwB,MAAM,cAAc,CAAA;AAWxF,eAAO,MAAM,sBAAsB;;;CAUzB,CAAA;AAEV,KAAK,gBAAgB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAmC7D,wBAAsB,WAAW,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB;;GA4E3E"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `tela_inspect` — foundation TELA chain tool.
|
|
3
|
+
*
|
|
4
|
+
* Given a SCID, fetch DERO.GetSC (code + variables) once and parse it as a
|
|
5
|
+
* TELA-INDEX-1 app manifest, a TELA-DOC-1 file contract, or report not_tela.
|
|
6
|
+
* Reads the RAW (uncapped) stringkeys directly via the shared tela-parse
|
|
7
|
+
* module so a large INDEX's full DOC1..DOCn list enumerates (extractScSurface
|
|
8
|
+
* would cap at 50 and silently drop entries).
|
|
9
|
+
*
|
|
10
|
+
* Read-only; one RPC call. Never throws on a non-TELA contract — returns
|
|
11
|
+
* kind:'not_tela' with a forensic hint, which is a SUCCESS, not an error.
|
|
12
|
+
*/
|
|
13
|
+
import { z } from 'zod';
|
|
14
|
+
import { attachCitations } from './_shared.js';
|
|
15
|
+
import { classifyTela, parseTelaIndex, parseTelaDoc, } from '../tela-parse.js';
|
|
16
|
+
const SCID_HEX_REGEX = /^[0-9a-fA-F]{64}$/;
|
|
17
|
+
export const telaInspectInputSchema = {
|
|
18
|
+
scid: z
|
|
19
|
+
.string()
|
|
20
|
+
.regex(SCID_HEX_REGEX, 'Expected 64-character hex Smart Contract ID')
|
|
21
|
+
.describe('64-char hex Smart Contract ID of a TELA-INDEX-1 or TELA-DOC-1 contract'),
|
|
22
|
+
topoheight: z
|
|
23
|
+
.number()
|
|
24
|
+
.int()
|
|
25
|
+
.optional()
|
|
26
|
+
.describe('Optional topo height; omit for the latest committed state'),
|
|
27
|
+
};
|
|
28
|
+
function asStringkeys(raw) {
|
|
29
|
+
return raw.stringkeys && typeof raw.stringkeys === 'object'
|
|
30
|
+
? raw.stringkeys
|
|
31
|
+
: undefined;
|
|
32
|
+
}
|
|
33
|
+
function indexNarrative(scid, topoheight, idx) {
|
|
34
|
+
const at = `topoheight ${topoheight ?? 'tip'}`;
|
|
35
|
+
const name = idx.name ?? '(unnamed)';
|
|
36
|
+
const durl = idx.durl ? ` (${idx.durl})` : '';
|
|
37
|
+
const docWord = idx.doc_count === 1 ? 'file' : 'files';
|
|
38
|
+
const entry = idx.docs.find((d) => d.is_entrypoint);
|
|
39
|
+
const entryNote = entry
|
|
40
|
+
? ` Entrypoint DOC1 → ${entry.scid}.`
|
|
41
|
+
: ' No DOC1 entrypoint found (the app may not render).';
|
|
42
|
+
const modNote = idx.mods.length ? ` MODs: ${idx.mods.join(', ')}.` : '';
|
|
43
|
+
const commitNote = idx.commit !== null ? ` At commit ${idx.commit} (${idx.version_history.length} version(s) on chain).` : '';
|
|
44
|
+
return `SCID ${scid} at ${at} is a TELA-INDEX-1 app manifest "${name}"${durl}, referencing ${idx.doc_count} ${docWord}.${entryNote}${modNote}${commitNote} ${idx.updateable_note}`;
|
|
45
|
+
}
|
|
46
|
+
function docNarrative(scid, topoheight, doc) {
|
|
47
|
+
const at = `topoheight ${topoheight ?? 'tip'}`;
|
|
48
|
+
const name = doc.filename ?? '(unnamed file)';
|
|
49
|
+
const type = doc.doc_type ?? 'unknown type';
|
|
50
|
+
const sub = doc.sub_dir ? ` under ${doc.sub_dir}` : '';
|
|
51
|
+
const sig = doc.signature.present ? 'signed by its author' : 'missing a complete signature';
|
|
52
|
+
const embed = doc.content_embedded
|
|
53
|
+
? 'Its file content is embedded in the contract code (fetch it with tela_get_doc_content).'
|
|
54
|
+
: 'Its file content is NOT embedded inline (DocShard, STATIC, or external).';
|
|
55
|
+
return `SCID ${scid} at ${at} is a TELA-DOC-1 file contract for "${name}"${sub} (${type}), ${sig}. ${embed} This contract is immutable.`;
|
|
56
|
+
}
|
|
57
|
+
export async function telaInspect(rpc, args) {
|
|
58
|
+
const params = { scid: args.scid, code: true, variables: true };
|
|
59
|
+
if (args.topoheight !== undefined)
|
|
60
|
+
params.topoheight = args.topoheight;
|
|
61
|
+
// Required call. Failure propagates through withStructuredErrors.
|
|
62
|
+
const raw = (await rpc('DERO.GetSC', params)) ?? {};
|
|
63
|
+
const code = typeof raw.code === 'string' ? raw.code : '';
|
|
64
|
+
const stringkeys = asStringkeys(raw);
|
|
65
|
+
const uint64keys = raw.uint64keys && typeof raw.uint64keys === 'object'
|
|
66
|
+
? raw.uint64keys
|
|
67
|
+
: undefined;
|
|
68
|
+
const responseTopoheight = typeof args.topoheight === 'number' && Number.isFinite(args.topoheight) ? args.topoheight : null;
|
|
69
|
+
const { kind, markers, collision } = classifyTela(stringkeys, code);
|
|
70
|
+
let payload;
|
|
71
|
+
if (kind === 'tela_index') {
|
|
72
|
+
const index = parseTelaIndex(stringkeys, uint64keys);
|
|
73
|
+
payload = {
|
|
74
|
+
scid: args.scid,
|
|
75
|
+
topoheight: responseTopoheight,
|
|
76
|
+
kind,
|
|
77
|
+
index,
|
|
78
|
+
collision,
|
|
79
|
+
has_code: code.length > 0,
|
|
80
|
+
raw_code_length: code.length,
|
|
81
|
+
narrative: indexNarrative(args.scid, responseTopoheight, index),
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
else if (kind === 'tela_doc') {
|
|
85
|
+
const doc = parseTelaDoc(stringkeys, code);
|
|
86
|
+
payload = {
|
|
87
|
+
scid: args.scid,
|
|
88
|
+
topoheight: responseTopoheight,
|
|
89
|
+
kind,
|
|
90
|
+
doc,
|
|
91
|
+
has_code: code.length > 0,
|
|
92
|
+
raw_code_length: code.length,
|
|
93
|
+
narrative: docNarrative(args.scid, responseTopoheight, doc),
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
const allKeys = stringkeys ? Object.keys(stringkeys) : [];
|
|
98
|
+
payload = {
|
|
99
|
+
scid: args.scid,
|
|
100
|
+
topoheight: responseTopoheight,
|
|
101
|
+
kind: 'not_tela',
|
|
102
|
+
reason: code.length === 0
|
|
103
|
+
? 'SCID returned no on-chain code (unknown contract, or never deployed).'
|
|
104
|
+
: 'Contract code/state lacks TELA-INDEX-1 or TELA-DOC-1 marker keys (dURL/DOC1 or docType/fileCheck).',
|
|
105
|
+
observed: {
|
|
106
|
+
stringkey_sample: allKeys.slice(0, 20),
|
|
107
|
+
stringkeys_total: allKeys.length,
|
|
108
|
+
has_code: code.length > 0,
|
|
109
|
+
markers,
|
|
110
|
+
},
|
|
111
|
+
narrative: `SCID ${args.scid} at topoheight ${responseTopoheight ?? 'tip'} is not a TELA contract. ${code.length === 0 ? 'It returned no code.' : 'Its stored keys do not match the TELA-INDEX-1 or TELA-DOC-1 schema.'} Use explain_smart_contract for a general DVM analysis.`,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
const withCitations = attachCitations(payload, 'tela_inspect');
|
|
115
|
+
// Elevate the spec matching the detected kind to citation position 0.
|
|
116
|
+
const primarySlug = kind === 'tela_doc' ? 'tela/tela-doc-specification' : 'tela/tela-index-specification';
|
|
117
|
+
if (withCitations.related_docs && withCitations.related_docs.length > 0) {
|
|
118
|
+
const i = withCitations.related_docs.findIndex((d) => d.slug === primarySlug);
|
|
119
|
+
if (i > 0) {
|
|
120
|
+
const [picked] = withCitations.related_docs.splice(i, 1);
|
|
121
|
+
withCitations.related_docs.unshift(picked);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return withCitations;
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=tela-inspect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tela-inspect.js","sourceRoot":"","sources":["../../src/composites/tela-inspect.ts"],"names":[],"mappings":"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"}
|
package/dist/docs-parse.d.ts
CHANGED
|
@@ -19,6 +19,24 @@ export type DocsIndexFile = {
|
|
|
19
19
|
page_count: number;
|
|
20
20
|
pages: DeroDocsPage[];
|
|
21
21
|
};
|
|
22
|
+
/**
|
|
23
|
+
* Curated stoplist: closed-class English plus a few low-signal connectors.
|
|
24
|
+
* Deliberately short. `vs` is LOAD-BEARING — it was literal-matching
|
|
25
|
+
* comparison-titled pages ("Claims vs. Evidence") and ranking them top for
|
|
26
|
+
* "dero vs monero". Do NOT add concept words like `new`/`start`/`about`:
|
|
27
|
+
* the recommend_docs_path beginner-intent nudge depends on them surviving.
|
|
28
|
+
* Any edit here must re-run `npm run check:docs-ranking`.
|
|
29
|
+
*/
|
|
30
|
+
export declare const DOCS_STOPWORDS: ReadonlySet<string>;
|
|
31
|
+
/**
|
|
32
|
+
* Tokenize text for search. Lowercase, word-boundary match keeping interior
|
|
33
|
+
* hyphens, expand standard-names to joined + parts, drop length-1 noise
|
|
34
|
+
* (except pure digits), and remove stopwords. Pure and deterministic.
|
|
35
|
+
*
|
|
36
|
+
* `keepStopwords` is used only by the query-path empty-fallback so a
|
|
37
|
+
* pure-stopword query ("how to") still yields a non-empty, deterministic set.
|
|
38
|
+
*/
|
|
39
|
+
export declare function tokenizeForSearch(text: string, keepStopwords?: boolean): string[];
|
|
22
40
|
export declare function normalizeSlug(input: string): string;
|
|
23
41
|
export declare function pathExists(targetPath: string): Promise<boolean>;
|
|
24
42
|
export declare function parseFrontmatter(raw: string): Record<string, string>;
|
package/dist/docs-parse.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs-parse.d.ts","sourceRoot":"","sources":["../src/docs-parse.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB,mDAAoD,CAAA;AAClF,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE/D,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAKxD,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAKxD,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,CAAC,CAAA;IACV,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,YAAY,EAAE,CAAA;CACtB,CAAA;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAYD,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOrE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWpE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAQ1D;AAyDD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"docs-parse.d.ts","sourceRoot":"","sources":["../src/docs-parse.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB,mDAAoD,CAAA;AAClF,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE/D,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAKxD,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAKxD,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,CAAC,CAAA;IACV,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,YAAY,EAAE,CAAA;CACtB,CAAA;AAYD;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,CAU7C,CAAA;AAYF;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,UAAQ,GAAG,MAAM,EAAE,CAqB/E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAYD,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOrE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWpE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAQ1D;AAyDD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiBlD;AAyCD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAqC7E;AAED,wBAAsB,mBAAmB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAkBrF"}
|
package/dist/docs-parse.js
CHANGED
|
@@ -13,6 +13,80 @@ export const DOC_BASE_URLS = {
|
|
|
13
13
|
hologram: 'https://hologram.derod.org',
|
|
14
14
|
deropay: 'https://pay.derod.org',
|
|
15
15
|
};
|
|
16
|
+
// ---------------- Search tokenization ----------------
|
|
17
|
+
//
|
|
18
|
+
// One shared tokenizer for both indexing and queries so the two stay
|
|
19
|
+
// symmetric — a page and a query that mention the same concept must produce
|
|
20
|
+
// the same tokens. Used by the BM25F scorer in docs.ts. The tokenizer is the
|
|
21
|
+
// structural fix for the old substring scorer's failures: word-boundary
|
|
22
|
+
// matching (so `i` no longer matches inside "private", `vs` no longer matches
|
|
23
|
+
// "Claims vs. Evidence"), standard-name handling (so `TELA-INDEX-1` is a real
|
|
24
|
+
// searchable token), and a curated stoplist.
|
|
25
|
+
/**
|
|
26
|
+
* Curated stoplist: closed-class English plus a few low-signal connectors.
|
|
27
|
+
* Deliberately short. `vs` is LOAD-BEARING — it was literal-matching
|
|
28
|
+
* comparison-titled pages ("Claims vs. Evidence") and ranking them top for
|
|
29
|
+
* "dero vs monero". Do NOT add concept words like `new`/`start`/`about`:
|
|
30
|
+
* the recommend_docs_path beginner-intent nudge depends on them surviving.
|
|
31
|
+
* Any edit here must re-run `npm run check:docs-ranking`.
|
|
32
|
+
*/
|
|
33
|
+
export const DOCS_STOPWORDS = new Set([
|
|
34
|
+
'a', 'an', 'and', 'the', 'or', 'but', 'if', 'then', 'else', 'of', 'to', 'in',
|
|
35
|
+
'on', 'at', 'by', 'for', 'with', 'as', 'is', 'are', 'was', 'were', 'be',
|
|
36
|
+
'been', 'being', 'it', 'its', 'this', 'that', 'these', 'those', 'i', 'me',
|
|
37
|
+
'my', 'we', 'our', 'you', 'your', 'he', 'she', 'they', 'them', 'their',
|
|
38
|
+
'do', 'does', 'did', 'done', 'have', 'has', 'had', 'can', 'could', 'should',
|
|
39
|
+
'would', 'will', 'shall', 'may', 'might', 'must', 'how', 'what', 'when',
|
|
40
|
+
'where', 'who', 'why', 'which', 'much', 'many', 'some', 'any', 'anyone',
|
|
41
|
+
'see', 'get', 'got', 'so', 'than', 'too', 'very', 'just', 'into', 'from',
|
|
42
|
+
'vs', 'versus', 'about',
|
|
43
|
+
]);
|
|
44
|
+
/**
|
|
45
|
+
* Standard-name shape: contains a digit (tela-index-1) or is a multi-part
|
|
46
|
+
* hyphenated identifier (dvm-basic, account-based). For these we emit the
|
|
47
|
+
* joined token AND the split parts so both "TELA-INDEX-1" and "tela index"
|
|
48
|
+
* find the spec page.
|
|
49
|
+
*/
|
|
50
|
+
function isStandardName(chunk) {
|
|
51
|
+
return /\d/.test(chunk) || /^[a-z]+(?:-[a-z0-9]+)+$/.test(chunk);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Tokenize text for search. Lowercase, word-boundary match keeping interior
|
|
55
|
+
* hyphens, expand standard-names to joined + parts, drop length-1 noise
|
|
56
|
+
* (except pure digits), and remove stopwords. Pure and deterministic.
|
|
57
|
+
*
|
|
58
|
+
* `keepStopwords` is used only by the query-path empty-fallback so a
|
|
59
|
+
* pure-stopword query ("how to") still yields a non-empty, deterministic set.
|
|
60
|
+
*/
|
|
61
|
+
export function tokenizeForSearch(text, keepStopwords = false) {
|
|
62
|
+
const out = [];
|
|
63
|
+
const matches = (text || '').toLowerCase().match(/[a-z0-9][a-z0-9-]*/g) ?? [];
|
|
64
|
+
for (const rawChunk of matches) {
|
|
65
|
+
const chunk = rawChunk.replace(/^-+|-+$/g, '');
|
|
66
|
+
if (!chunk)
|
|
67
|
+
continue;
|
|
68
|
+
const parts = [];
|
|
69
|
+
if (chunk.includes('-')) {
|
|
70
|
+
if (isStandardName(chunk))
|
|
71
|
+
parts.push(chunk);
|
|
72
|
+
for (const p of chunk.split('-'))
|
|
73
|
+
if (p)
|
|
74
|
+
parts.push(p);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
parts.push(chunk);
|
|
78
|
+
}
|
|
79
|
+
for (const tok of parts) {
|
|
80
|
+
// Drop length-1 noise (the `i`/`in`-substring problem) but keep digits.
|
|
81
|
+
if (tok.length < 2 && !/^\d$/.test(tok))
|
|
82
|
+
continue;
|
|
83
|
+
if (!keepStopwords && DOCS_STOPWORDS.has(tok))
|
|
84
|
+
continue;
|
|
85
|
+
out.push(tok);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return out;
|
|
89
|
+
}
|
|
16
90
|
export function normalizeSlug(input) {
|
|
17
91
|
return input.trim().replace(/^\/+/, '').replace(/\/+$/, '');
|
|
18
92
|
}
|
|
@@ -113,7 +187,11 @@ function shimAttributedQuotes(input) {
|
|
|
113
187
|
}
|
|
114
188
|
export function mdxToPlainText(raw) {
|
|
115
189
|
return decodeHtmlEntities(shimAttributedQuotes(raw)
|
|
116
|
-
|
|
190
|
+
// Keep fenced-code CONTENTS (curl/RPC/install examples are the most
|
|
191
|
+
// valuable thing an agent can cite); drop only the ``` fence and the
|
|
192
|
+
// optional language tag. Deleting the whole block silently stripped
|
|
193
|
+
// every code example from every page.
|
|
194
|
+
.replace(/```[\w-]*\n?([\s\S]*?)```/g, ' $1 ')
|
|
117
195
|
.replace(/^import\s+.*$/gm, ' ')
|
|
118
196
|
.replace(/<[^>]+>/gs, ' ')
|
|
119
197
|
.replace(/!\[([^\]]*)\]\([^)]+\)/g, '$1')
|
package/dist/docs-parse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs-parse.js","sourceRoot":"","sources":["../src/docs-parse.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"docs-parse.js","sourceRoot":"","sources":["../src/docs-parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,CAAU,CAAA;AAGlF,MAAM,CAAC,MAAM,aAAa,GAAmC;IAC3D,KAAK,EAAE,YAAY;IACnB,IAAI,EAAE,WAAW;IACjB,QAAQ,EAAE,eAAe;IACzB,OAAO,EAAE,cAAc;CACxB,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAmC;IAC3D,KAAK,EAAE,mBAAmB;IAC1B,IAAI,EAAE,wBAAwB;IAC9B,QAAQ,EAAE,4BAA4B;IACtC,OAAO,EAAE,uBAAuB;CACjC,CAAA;AAqBD,wDAAwD;AACxD,EAAE;AACF,qEAAqE;AACrE,4EAA4E;AAC5E,6EAA6E;AAC7E,wEAAwE;AACxE,8EAA8E;AAC9E,8EAA8E;AAC9E,6CAA6C;AAE7C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC;IACzD,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI;IACvE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IACtE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ;IAC3E,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM;IACvE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ;IACvE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACxE,IAAI,EAAE,QAAQ,EAAE,OAAO;CACxB,CAAC,CAAA;AAEF;;;;;GAKG;AACH,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAClE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,aAAa,GAAG,KAAK;IACnE,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,MAAM,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAA;IAC7E,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;QAC9C,IAAI,CAAC,KAAK;YAAE,SAAQ;QACpB,MAAM,KAAK,GAAa,EAAE,CAAA;QAC1B,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,cAAc,CAAC,KAAK,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC5C,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,wEAAwE;YACxE,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,SAAQ;YACjD,IAAI,CAAC,aAAa,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAQ;YACvD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACf,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AAC7D,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,IAAI,CAAC,IAAI;QAAE,OAAO,MAAM,CAAA;IACxB,OAAO,IAAI;SACR,KAAK,CAAC,GAAG,CAAC;SACV,EAAE,CAAC,CAAC,CAAC,CAAE;SACP,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,GAAG,CAAC,CAAA;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,UAAkB;IACjD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAC3B,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;IACnD,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAA;IAErB,MAAM,WAAW,GAA2B,EAAE,CAAA;IAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAA;QACxD,IAAI,CAAC,QAAQ;YAAE,SAAQ;QACvB,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;IAC3E,CAAC;IACD,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,OAAO,GAAG,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAA;AAClD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,MAAM,YAAY,GAAG,mBAAmB,CAAA;IACxC,IAAI,KAAK,GAA2B,IAAI,CAAA;IACxC,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACtD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IAChC,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,KAAa;IACvC,0EAA0E;IAC1E,2EAA2E;IAC3E,mEAAmE;IACnE,MAAM,MAAM,GAAG,CAAC,EAAU,EAAE,GAAW,EAAE,EAAE,CACzC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IAC5D,OAAO,KAAK;SACT,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;SAC1D,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACxE,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;AAC3B,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,OAAe,EAAE,IAAY;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,GAAG,IAAI,sBAAsB,IAAI,oBAAoB,CAAC,CAAC,CAAA;IAC9F,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;AACjC,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,oBAAoB,CAAC,KAAa;IACzC,MAAM,OAAO,GAAG,oDAAoD,CAAA;IACpE,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC1D,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,SAAS,CAAA;QACxD,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;QAC7C,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAA;QACnD,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAA;QACjD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAA;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAC5B,MAAM,WAAW,GAAG,CAAC,KAAK,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC7E,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,WAAW,KAAK,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW,CAAA;QAChE,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,6BAA6B,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QAC3E,OAAO,SAAS,QAAQ,UAAU,IAAI,MAAM,CAAA;IAC9C,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,OAAO,kBAAkB,CACvB,oBAAoB,CAAC,GAAG,CAAC;QACvB,oEAAoE;QACpE,qEAAqE;QACrE,oEAAoE;QACpE,sCAAsC;SACrC,OAAO,CAAC,4BAA4B,EAAE,MAAM,CAAC;SAC7C,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC;SAC/B,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC;SACzB,OAAO,CAAC,yBAAyB,EAAE,IAAI,CAAC;SACxC,OAAO,CAAC,wBAAwB,EAAE,IAAI,CAAC;SACvC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;SAC3B,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAC/B;SACE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAA;AACX,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAW;IACrC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9D,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QAC3C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YAC7C,SAAQ;QACV,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAuB,EAAE,IAAY;IAC9D,IAAI,CAAC,IAAI;QAAE,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAA;IAC9C,yEAAyE;IACzE,yEAAyE;IACzE,uCAAuC;IACvC,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,CAAA;AAC/C,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,QAAwB,EAAE,GAAW;IAC1D,yDAAyD;IACzD,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAC/C,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,GAAG,CAAA;IACpE,OAAO,GAAG,IAAI,MAAM,IAAI,EAAE,CAAA;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAY;IAClD,MAAM,KAAK,GAAmB,EAAE,CAAA;IAEhC,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;QAClD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;YAAE,SAAQ;QAE3C,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAA;QAC1C,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAC/C,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;YACzC,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YACjE,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAA;YACpG,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;YAEzC,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO;gBACP,IAAI;gBACJ,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,iBAAiB,CAAC,IAAI,CAAC;gBACnD,WAAW,EAAE,WAAW,CAAC,WAAW,IAAI,IAAI;gBAC5C,YAAY,EAAE,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,YAAY,IAAI,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAClG,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;gBAC7D,QAAQ;gBACR,SAAS,EAAE,cAAc,CAAC,OAAO,CAAC;gBAClC,WAAW,EAAE,WAAW,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,IAAI,IAAI;aACjE,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAClB,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QACtE,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;IAEF,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,UAAmB;IAC3D,MAAM,QAAQ,GAAG,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAA;IACzD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QACpE,OAAO,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA;IACzD,CAAC;IAED,MAAM,cAAc,GAAG;QACrB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC;KAC/C,CAAA;IAED,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QACrE,IAAI,MAAM,UAAU,CAAC,UAAU,CAAC;YAAE,OAAO,SAAS,CAAA;IACpD,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
|
package/dist/docs.d.ts
CHANGED
|
@@ -6,6 +6,16 @@ type SearchArgs = {
|
|
|
6
6
|
section?: string;
|
|
7
7
|
limit?: number;
|
|
8
8
|
};
|
|
9
|
+
/**
|
|
10
|
+
* Lightweight docs-index freshness metadata for /health and dero_docs_list,
|
|
11
|
+
* so an operator can see at a glance whether the live server is serving a
|
|
12
|
+
* current bundle. Reads the bundled index header only; returns nulls when
|
|
13
|
+
* docs come from a filesystem override or the index is unreadable.
|
|
14
|
+
*/
|
|
15
|
+
export declare function docsIndexMeta(): Promise<{
|
|
16
|
+
docs_generated_at: string | null;
|
|
17
|
+
docs_page_count: number | null;
|
|
18
|
+
}>;
|
|
9
19
|
export declare function listDeroDocs(product?: DeroDocProduct): Promise<{
|
|
10
20
|
total: number;
|
|
11
21
|
products: readonly ["derod", "tela", "hologram", "deropay"];
|
package/dist/docs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../src/docs.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,cAAc,
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../src/docs.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,cAAc,EASpB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,iBAAiB,EAAE,KAAK,cAAc,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAqF7F,KAAK,UAAU,GAAG;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAkLD;;;;;GAKG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC;IAC7C,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B,CAAC,CAaD;AAED,wBAAsB,YAAY,CAAC,OAAO,CAAC,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;GAgB1D;AAmBD,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDpD;AAOD,wBAAsB,cAAc,CAAC,MAAM,EAAE;IAC3C,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCA"}
|