dero-mcp-server 0.4.6 → 0.4.8

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # DERO MCP server
2
2
 
3
- > **A read-only Model Context Protocol server for the DERO privacy blockchain** — a private-by-default Layer 1 with encrypted balances, private smart contracts (DVM-BASIC), and no public transaction graph. 21 daemon primitives + 9 composite tools (including TELA on-chain app inspection), with a bundled documentation index spanning derod, tela, hologram, and deropay.
3
+ > **A read-only Model Context Protocol server for the DERO privacy blockchain** — a private-by-default Layer 1 with encrypted balances, private smart contracts (DVM-BASIC), and no public transaction graph. 21 daemon primitives + 11 composite tools (including TELA on-chain app inspection and dURL→SCID discovery), with a bundled documentation index spanning derod, tela, hologram, and deropay.
4
4
 
5
5
  [![MCP Registry](https://img.shields.io/badge/MCP-io.github.DHEBP%2Fdero--mcp--server-blue)](https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.DHEBP/dero-mcp-server)
6
6
  [![CI](https://github.com/DHEBP/dero-mcp-server/actions/workflows/ci.yml/badge.svg)](https://github.com/DHEBP/dero-mcp-server/actions/workflows/ci.yml)
@@ -269,7 +269,7 @@ curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.DHE
269
269
 
270
270
  ## MCP Surface
271
271
 
272
- - **Tools (30):** 21 daemon read/analysis primitives + 9 composites, including TELA app inspection (`tela_inspect`, `tela_get_doc_content`) and docs retrieval (`dero_docs_search`, `dero_docs_get_page`, `dero_docs_list`)
272
+ - **Tools (32):** 21 daemon read/analysis primitives + 11 composites, including TELA app inspection (`tela_inspect`, `tela_get_doc_content`), TELA discovery (`dero_durl_to_scid`, `dero_tela_list_apps`), and docs retrieval (`dero_docs_search`, `dero_docs_get_page`, `dero_docs_list`)
273
273
  - **Resources (4):** `dero://mcp/server-info`, `dero://mcp/safety-boundary`, `dero://mcp/example-flows`, `dero://mcp/composites`
274
274
  - **Prompts (5):** `network_health_check`, `inspect_smart_contract`, `trace_transaction`, `find_dero_docs_for_intent`, `estimate_deploy_for_contract`
275
275
 
package/SKILL.md CHANGED
@@ -39,7 +39,7 @@ Before answering the first user question that needs DERO knowledge, read the MCP
39
39
 
40
40
  1. `dero://mcp/server-info` — server metadata, tool list, resource list, prompt names
41
41
  2. `dero://mcp/example-flows` — agent flow recipes (composites first, primitives second)
42
- 3. `dero://mcp/composites` — full catalog of the 9 composite tools and when to use each
42
+ 3. `dero://mcp/composites` — full catalog of the 11 composite tools and when to use each
43
43
  4. `dero://mcp/safety-boundary` — read-only posture, excluded methods, write-path guidance
44
44
 
45
45
  These four resources document the canonical agent workflows. Skim them once per session.
@@ -79,6 +79,8 @@ The MCP exposes both **primitive** tools (one daemon RPC method per tool) and **
79
79
  | `dero_forge_demo_proof` | (varies) | Generate demo proof strings for testing |
80
80
  | `tela_inspect` | get_sc + manual TELA schema parsing | User references a TELA SCID / `.tela` app: "what is this TELA contract", "what files does this app have" (auto-detects INDEX vs DOC) |
81
81
  | `tela_get_doc_content` | get_sc + comment-block extraction | User wants the actual file content (HTML/CSS/JS) a TELA-DOC stores |
82
+ | `dero_durl_to_scid` | (chain discovery — no external indexer) | User asks "what's the SCID for vault.tela" / a `.tela` dURL → resolves to SCID(s). For a NAME like "quickbrownfox" use `dero_name_to_address` instead |
83
+ | `dero_tela_list_apps` | (chain discovery — no external indexer) | User wants to browse/search what TELA apps exist on-chain |
82
84
 
83
85
  Fall back to primitives only when the composite is unavailable or returns `_meta.error`.
84
86
 
@@ -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,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"}
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,CAsNnE,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
@@ -235,6 +235,30 @@ export const RELATED_DOCS_BY_TOOL = {
235
235
  title: 'TELA-INDEX-1 Specification | Application Manifest Smart Contract Standard',
236
236
  },
237
237
  ],
238
+ dero_durl_to_scid: [
239
+ {
240
+ product: 'tela',
241
+ slug: 'advanced-features/durl-explained',
242
+ title: 'Understanding dURLs | Decentralized URL Identity & Resolution',
243
+ },
244
+ {
245
+ product: 'tela',
246
+ slug: 'tela-cli/gnomon-guide',
247
+ title: 'Gnomon Indexer Deep-Dive Guide | TELA Content Discovery and Indexing',
248
+ },
249
+ ],
250
+ dero_tela_list_apps: [
251
+ {
252
+ product: 'tela',
253
+ slug: 'tela-cli/gnomon-guide',
254
+ title: 'Gnomon Indexer Deep-Dive Guide | TELA Content Discovery and Indexing',
255
+ },
256
+ {
257
+ product: 'tela',
258
+ slug: 'tela/tela-index-specification',
259
+ title: 'TELA-INDEX-1 Specification | Application Manifest Smart Contract Standard',
260
+ },
261
+ ],
238
262
  };
239
263
  /**
240
264
  * Resolve the hand-curated related docs list for a tool name and return it
@@ -1 +1 @@
1
- {"version":3,"file":"citations.js","sourceRoot":"","sources":["../src/citations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,aAAa,EAAuB,MAAM,iBAAiB,CAAA;AAapE,SAAS,iBAAiB,CAAC,OAAuB,EAAE,IAAY;IAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IAC9C,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAA;IACjD,yEAAyE;IACzE,yEAAyE;IACzE,kEAAkE;IAClE,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,CAAA;AAClD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAuB,EACvB,IAAY,EACZ,KAAa;IAEb,OAAO;QACL,MAAM,EAAE,WAAW;QACnB,OAAO;QACP,IAAI;QACJ,KAAK;QACL,aAAa,EAAE,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC;QAC/C,OAAO,EAAE,IAAI;KACd,CAAA;AACH,CAAC;AAiBD,MAAM,CAAC,MAAM,oBAAoB,GAAgD;IAC/E,aAAa,EAAE;QACb;YACE,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,wBAAwB;YAC9B,KAAK,EAAE,iEAAiE;SACzE;QACD;YACE,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,mEAAmE;SAC3E;KACF;IACD,WAAW,EAAE;QACX;YACE,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,iCAAiC;YACvC,KAAK,EAAE,6EAA6E;SACrF;QACD;YACE,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,0BAA0B;YAChC,KAAK,EAAE,+EAA+E;SACvF;KACF;IACD,qBAAqB,EAAE;QACrB;YACE,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,wBAAwB;YAC9B,KAAK,EAAE,iEAAiE;SACzE;QACD;YACE,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,sCAAsC;YAC5C,KAAK,EAAE,uEAAuE;SAC/E;KACF;IACD,qBAAqB,EAAE;QACrB;YACE,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,mEAAmE;SAC3E;QACD;YACE,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,wBAAwB;YAC9B,KAAK,EAAE,iEAAiE;SACzE;KACF;IACD,8BAA8B,EAAE;QAC9B;YACE,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,wBAAwB;YAC9B,KAAK,EAAE,iEAAiE;SACzE;QACD;YACE,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,iCAAiC;YACvC,KAAK,EAAE,6EAA6E;SACrF;KACF;IACD,oBAAoB,EAAE;QACpB;YACE,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,sCAAsC;YAC5C,KAAK,EAAE,uEAAuE;SAC/E;QACD;YACE,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,mEAAmE;SAC3E;KACF;IACD,wBAAwB,EAAE;QACxB;YACE,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,yCAAyC;YAC/C,KAAK,EAAE,yEAAyE;SACjF;QACD;YACE,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,wCAAwC;YAC9C,KAAK,EAAE,6EAA6E;SACrF;KACF;IACD,0BAA0B,EAAE;QAC1B;YACE,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,yCAAyC;YAC/C,KAAK,EAAE,yEAAyE;SACjF;QACD;YACE,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,wCAAwC;YAC9C,KAAK,EAAE,6EAA6E;SACrF;KACF;IACD,qBAAqB,EAAE;QACrB;YACE,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,yCAAyC;YAC/C,KAAK,EAAE,yEAAyE;SACjF;QACD;YACE,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,wCAAwC;YAC9C,KAAK,EAAE,6EAA6E;SACrF;QACD;YACE,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,iCAAiC;YACvC,KAAK,EAAE,+EAA+E;SACvF;KACF;IACD,2EAA2E;IAC3E,yEAAyE;IACzE,uEAAuE;IACvE,sEAAsE;IACtE,oEAAoE;IACpE,2BAA2B;IAC3B,sBAAsB,EAAE;QACtB;YACE,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,iCAAiC;YACvC,KAAK,EAAE,6EAA6E;SACrF;QACD;YACE,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,mEAAmE;SAC3E;QACD;YACE,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,0BAA0B;YAChC,KAAK,EAAE,+EAA+E;SACvF;QACD;YACE,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,sCAAsC;YAC5C,KAAK,EAAE,uEAAuE;SAC/E;QACD,2EAA2E;QAC3E,sEAAsE;QACtE;YACE,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,+BAA+B;YACrC,KAAK,EAAE,2EAA2E;SACnF;QACD;YACE,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,6BAA6B;YACnC,KAAK,EAAE,qEAAqE;SAC7E;KACF;IACD,2EAA2E;IAC3E,gDAAgD;IAChD,YAAY,EAAE;QACZ;YACE,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,+BAA+B;YACrC,KAAK,EAAE,2EAA2E;SACnF;QACD;YACE,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,6BAA6B;YACnC,KAAK,EAAE,qEAAqE;SAC7E;QACD;YACE,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,kCAAkC;YACxC,KAAK,EAAE,+DAA+D;SACvE;QACD;YACE,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,uBAAuB;YAC7B,KAAK,EAAE,sEAAsE;SAC9E;KACF;IACD,oBAAoB,EAAE;QACpB;YACE,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,6BAA6B;YACnC,KAAK,EAAE,qEAAqE;SAC7E;QACD;YACE,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,+BAA+B;YACrC,KAAK,EAAE,2EAA2E;SACnF;KACF;CACO,CAAA;AAEV;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAA;IAC9C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IACtD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;AAC1F,CAAC;AA8CD,MAAM,CAAC,MAAM,uBAAuB,GAA+B;IACjE;QACE,EAAE,EAAE,sBAAsB;QAC1B,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE;YACxC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,kEAAkE,EAAE;YACjG,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,kEAAkE,EAAE;YAC9F;gBACE,IAAI,EAAE,cAAc;gBACpB,KAAK,EACH,yJAAyJ;aAC5J;SACF;QACD,YAAY,EACV,iTAAiT;QACnT,gBAAgB,EAAE,gBAAgB;QAClC,0EAA0E;QAC1E,iDAAiD;QACjD,4FAA4F;QAC5F,YAAY,EAAE;YACZ;gBACE,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,wCAAwC;gBAC9C,KAAK,EAAE,6EAA6E;aACrF;YACD;gBACE,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,yCAAyC;gBAC/C,KAAK,EAAE,yEAAyE;aACjF;YACD;gBACE,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,gCAAgC;gBACtC,KAAK,EAAE,2EAA2E;aACnF;SACF;KACF;CACO,CAAA;AAgBV,qGAAqG;AACrG,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;AACnC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAA2B;IAE3B,MAAM,OAAO,GAAsB,EAAE,CAAA;IAErC,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACpF,MAAM,aAAa,GAAa,EAAE,CAAA;IAClC,IAAI,KAAK,CAAC,OAAO;QAAE,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;IAClE,IAAI,KAAK,CAAC,SAAS;QAAE,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS;YAAE,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;IACzF,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,CAAA;IAE7C,KAAK,MAAM,QAAQ,IAAI,uBAAuB,EAAE,CAAC;QAC/C,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACvC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;gBACf,KAAK,YAAY;oBACf,OAAO,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,CAAC,KAAK,CAAA;gBACvE,KAAK,YAAY;oBACf,OAAO,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;gBACjF,KAAK,SAAS;oBACZ,OAAO,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;gBACtD,KAAK,cAAc;oBACjB,OAAO,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,CAAC,CAAC,KAAK,CAAA;YAC7D,CAAC;QACH,CAAC,CAAC,CAAA;QACF,IAAI,GAAG;YAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAA2B,EAC3B,eAA2C;IAE3C,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAA;IAC/C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAE1C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAEpE,2EAA2E;IAC3E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,MAAM,MAAM,GAAmB,EAAE,CAAA;IACjC,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;YACtE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACjB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,eAAe,EAAE,CAAC;QACpB,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACjB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,CAAA;AAC/C,CAAC"}
1
+ {"version":3,"file":"citations.js","sourceRoot":"","sources":["../src/citations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * TELA discovery tools — turn a dURL or a browse request into on-chain SCIDs,
3
+ * powered by the lightweight in-process indexer in src/gnomon.ts.
4
+ *
5
+ * - dero_durl_to_scid: "what's the SCID for vault.tela" → SCID(s) + metadata.
6
+ * - dero_tela_list_apps: "what TELA apps exist" → the discovered catalog.
7
+ *
8
+ * Read-only. The first call triggers a ~10s cold-start scan of the newest
9
+ * chain SCIDs (cached ~10 min after). For a registered DERO NAME like
10
+ * "quickbrownfox" (no dot, not a dURL), use dero_name_to_address instead.
11
+ */
12
+ import { z } from 'zod';
13
+ import { type DeroDaemonRpc } from './_shared.js';
14
+ export declare const deroDurlToScidInputSchema: {
15
+ readonly durl: z.ZodString;
16
+ };
17
+ type DurlToScidInput = {
18
+ durl: string;
19
+ };
20
+ export declare function deroDurlToScid(rpc: DeroDaemonRpc, args: DurlToScidInput): Promise<({
21
+ query: string;
22
+ normalized: string;
23
+ found: boolean;
24
+ match_count: number;
25
+ hint: string;
26
+ } & {
27
+ related_docs?: import("../citations.js").DeroCitation[];
28
+ }) | ({
29
+ query: string;
30
+ normalized: string;
31
+ found: boolean;
32
+ match_count: number;
33
+ scid: string;
34
+ primary: {
35
+ scid: string;
36
+ durl: string | null;
37
+ name: string | null;
38
+ install_height: number;
39
+ doc_count: number;
40
+ };
41
+ collision: boolean;
42
+ other_candidates: {
43
+ scid: string;
44
+ durl: string | null;
45
+ name: string | null;
46
+ install_height: number;
47
+ doc_count: number;
48
+ }[];
49
+ narrative: string;
50
+ } & {
51
+ related_docs?: import("../citations.js").DeroCitation[];
52
+ })>;
53
+ export declare const deroTelaListAppsInputSchema: {
54
+ readonly query: z.ZodOptional<z.ZodString>;
55
+ readonly limit: z.ZodOptional<z.ZodNumber>;
56
+ };
57
+ type TelaListInput = {
58
+ query?: string;
59
+ limit?: number;
60
+ };
61
+ export declare function deroTelaListApps(rpc: DeroDaemonRpc, args: TelaListInput): Promise<{
62
+ query: string | null;
63
+ total_matched: number;
64
+ returned: number;
65
+ truncated: boolean;
66
+ apps: {
67
+ scid: string;
68
+ durl: string | null;
69
+ name: string | null;
70
+ install_height: number;
71
+ doc_count: number;
72
+ }[];
73
+ index_meta: {
74
+ apps_indexed: number;
75
+ scanned_scids: number;
76
+ registry_total: number;
77
+ newest_height: number;
78
+ };
79
+ narrative: string;
80
+ } & {
81
+ related_docs?: import("../citations.js").DeroCitation[];
82
+ }>;
83
+ export {};
84
+ //# sourceMappingURL=tela-discovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tela-discovery.d.ts","sourceRoot":"","sources":["../../src/composites/tela-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAA;AAGlE,eAAO,MAAM,yBAAyB;;CAK5B,CAAA;AAEV,KAAK,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAMvC,wBAAsB,cAAc,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA0C7E;AAED,eAAO,MAAM,2BAA2B;;;CAY9B,CAAA;AAEV,KAAK,aAAa,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAEvD,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;GAkC7E"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * TELA discovery tools — turn a dURL or a browse request into on-chain SCIDs,
3
+ * powered by the lightweight in-process indexer in src/gnomon.ts.
4
+ *
5
+ * - dero_durl_to_scid: "what's the SCID for vault.tela" → SCID(s) + metadata.
6
+ * - dero_tela_list_apps: "what TELA apps exist" → the discovered catalog.
7
+ *
8
+ * Read-only. The first call triggers a ~10s cold-start scan of the newest
9
+ * chain SCIDs (cached ~10 min after). For a registered DERO NAME like
10
+ * "quickbrownfox" (no dot, not a dURL), use dero_name_to_address instead.
11
+ */
12
+ import { z } from 'zod';
13
+ import { attachCitations } from './_shared.js';
14
+ import { getDiscoveryIndex, resolveDurl, normalizeDurl } from '../gnomon.js';
15
+ export const deroDurlToScidInputSchema = {
16
+ durl: z
17
+ .string()
18
+ .min(1)
19
+ .describe('A TELA dURL to resolve, e.g. "vault.tela" or "dero://feed.tela". NOT a registered DERO name (use dero_name_to_address for names like "quickbrownfox").'),
20
+ };
21
+ function appView(a) {
22
+ return { scid: a.scid, durl: a.durl, name: a.name, install_height: a.height, doc_count: a.doc_count };
23
+ }
24
+ export async function deroDurlToScid(rpc, args) {
25
+ const query = args.durl.trim();
26
+ const matches = await resolveDurl(rpc, query);
27
+ if (matches.length === 0) {
28
+ // Honest miss: distinguish "looks like a name, not a dURL" from "not found".
29
+ const looksLikeName = !query.includes('.') && !query.includes('/');
30
+ const hint = looksLikeName
31
+ ? `"${query}" looks like a registered DERO name, not a TELA dURL. Use dero_name_to_address to resolve a name to an address.`
32
+ : `No indexed TELA app advertises the dURL "${query}". It may not exist, or the discovery scan may not reach it (TELA apps in the newest chain SCIDs are indexed; very old or just-deployed apps can be missed). Try dero_tela_list_apps to browse what is indexed.`;
33
+ return attachCitations({
34
+ query,
35
+ normalized: normalizeDurl(query),
36
+ found: false,
37
+ match_count: 0,
38
+ hint,
39
+ }, 'dero_durl_to_scid');
40
+ }
41
+ // dURLs are non-unique. Newest = canonical primary; disclose the rest.
42
+ const [primary, ...others] = matches;
43
+ return attachCitations({
44
+ query,
45
+ normalized: normalizeDurl(query),
46
+ found: true,
47
+ match_count: matches.length,
48
+ scid: primary.scid,
49
+ primary: appView(primary),
50
+ // Only present when more than one contract claims this dURL.
51
+ collision: others.length > 0,
52
+ other_candidates: others.map(appView),
53
+ narrative: matches.length === 1
54
+ ? `dURL "${query}" resolves to SCID ${primary.scid} ("${primary.name ?? 'unnamed'}"). Inspect it with tela_inspect.`
55
+ : `dURL "${query}" is claimed by ${matches.length} contracts (dURLs are NOT unique). Returning the newest (install height ${primary.height}, SCID ${primary.scid}) as primary; ${others.length} other candidate(s) are listed under other_candidates. Verify which you intend before trusting it.`,
56
+ }, 'dero_durl_to_scid');
57
+ }
58
+ export const deroTelaListAppsInputSchema = {
59
+ query: z
60
+ .string()
61
+ .optional()
62
+ .describe('Optional case-insensitive filter matched against dURL and name (e.g. "chess", "vault").'),
63
+ limit: z
64
+ .number()
65
+ .int()
66
+ .min(1)
67
+ .max(200)
68
+ .optional()
69
+ .describe('Max apps to return (default 50, max 200).'),
70
+ };
71
+ export async function deroTelaListApps(rpc, args) {
72
+ const index = await getDiscoveryIndex(rpc);
73
+ const limit = Math.max(1, Math.min(args.limit ?? 50, 200));
74
+ const q = args.query?.toLowerCase().trim();
75
+ let apps = index.apps;
76
+ if (q) {
77
+ apps = apps.filter((a) => (a.durl ?? '').toLowerCase().includes(q) || (a.name ?? '').toLowerCase().includes(q));
78
+ }
79
+ const total = apps.length;
80
+ const shown = apps.slice(0, limit);
81
+ return attachCitations({
82
+ query: args.query ?? null,
83
+ total_matched: total,
84
+ returned: shown.length,
85
+ truncated: total > shown.length,
86
+ apps: shown.map(appView),
87
+ index_meta: {
88
+ apps_indexed: index.apps.length,
89
+ scanned_scids: index.scanned,
90
+ registry_total: index.registry_total,
91
+ newest_height: index.newest_height,
92
+ },
93
+ narrative: q
94
+ ? `${total} indexed TELA app(s) match "${args.query}"${total > shown.length ? ` (showing ${shown.length})` : ''}. Resolve a dURL with dero_durl_to_scid or inspect a SCID with tela_inspect.`
95
+ : `${index.apps.length} TELA app(s) indexed from the newest ${index.scanned} of ${index.registry_total} on-chain contracts${total > shown.length ? ` (showing ${shown.length})` : ''}. Use the query filter to narrow, dero_durl_to_scid to resolve a dURL, or tela_inspect to inspect a SCID.`,
96
+ }, 'dero_tela_list_apps');
97
+ }
98
+ //# sourceMappingURL=tela-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tela-discovery.js","sourceRoot":"","sources":["../../src/composites/tela-discovery.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,11 @@
7
7
  * content via the shared extractTelaDocContent. Large files are chunked with
8
8
  * offset pagination (mirrors dero_docs_get_page).
9
9
  *
10
+ * TELA-CLI gzips files (a `.gz` filename), storing them base64-encoded. This
11
+ * tool transparently base64-decodes + gunzips such content (Node's built-in
12
+ * zlib, no new dependency) and returns the real plaintext file — so an agent
13
+ * never has to shell out to decompress.
14
+ *
10
15
  * Read-only; one RPC call. We surface the content verbatim and report the
11
16
  * author signature's presence — we do NOT claim to have verified it (the
12
17
  * server performs no signature check), only that the contract carries one.
@@ -27,6 +32,7 @@ export declare function telaGetDocContent(rpc: DeroDaemonRpc, args: TelaGetDocCo
27
32
  scid: string;
28
33
  topoheight: number | null;
29
34
  filename: string | null;
35
+ stored_filename: string | null;
30
36
  doc_type: string | null;
31
37
  sub_dir: string | null;
32
38
  content_embedded: boolean;
@@ -36,6 +42,7 @@ export declare function telaGetDocContent(rpc: DeroDaemonRpc, args: TelaGetDocCo
36
42
  content_truncated: boolean;
37
43
  next_offset: number | null;
38
44
  compressed: boolean;
45
+ decompressed: boolean;
39
46
  signature: {
40
47
  present: boolean;
41
48
  file_check_c_present: boolean;
@@ -1 +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"}
1
+ {"version":3,"file":"tela-get-doc-content.d.ts","sourceRoot":"","sources":["../../src/composites/tela-get-doc-content.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,EAAmB,KAAK,aAAa,EAAwB,MAAM,cAAc,CAAA;AAyBxF,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;;;;;;;;;;;;;;;;;;;;;;;;;GAuFvF"}
@@ -7,16 +7,41 @@
7
7
  * content via the shared extractTelaDocContent. Large files are chunked with
8
8
  * offset pagination (mirrors dero_docs_get_page).
9
9
  *
10
+ * TELA-CLI gzips files (a `.gz` filename), storing them base64-encoded. This
11
+ * tool transparently base64-decodes + gunzips such content (Node's built-in
12
+ * zlib, no new dependency) and returns the real plaintext file — so an agent
13
+ * never has to shell out to decompress.
14
+ *
10
15
  * Read-only; one RPC call. We surface the content verbatim and report the
11
16
  * author signature's presence — we do NOT claim to have verified it (the
12
17
  * server performs no signature check), only that the contract carries one.
13
18
  */
14
19
  import { z } from 'zod';
20
+ import zlib from 'node:zlib';
21
+ import { Buffer } from 'node:buffer';
15
22
  import { attachCitations } from './_shared.js';
16
23
  import { classifyTela, parseTelaDoc, extractTelaDocContent } from '../tela-parse.js';
17
24
  const SCID_HEX_REGEX = /^[0-9a-fA-F]{64}$/;
18
25
  // Per-call content cap, matching dero_docs_get_page's PAGE_CONTENT_CHUNK.
19
26
  const DOC_CONTENT_CHUNK = 60000;
27
+ /**
28
+ * TELA-CLI stores gzipped DOC files as base64-encoded gzip. Decode + gunzip
29
+ * back to the plaintext file. Defensive: returns null (caller keeps the raw
30
+ * content) if the bytes are not actually base64'd gzip, so a mislabeled or
31
+ * truncated file never throws.
32
+ */
33
+ function decompressGzipBase64(content) {
34
+ try {
35
+ const buf = Buffer.from(content.trim(), 'base64');
36
+ // gzip magic bytes 0x1f 0x8b — bail early if absent (not really gzip).
37
+ if (buf.length < 2 || buf[0] !== 0x1f || buf[1] !== 0x8b)
38
+ return null;
39
+ return zlib.gunzipSync(buf).toString('utf8');
40
+ }
41
+ catch {
42
+ return null;
43
+ }
44
+ }
20
45
  export const telaGetDocContentInputSchema = {
21
46
  scid: z
22
47
  .string()
@@ -50,17 +75,44 @@ export async function telaGetDocContent(rpc, args) {
50
75
  const doc = parseTelaDoc(stringkeys, code);
51
76
  const extracted = extractTelaDocContent(code);
52
77
  const responseTopoheight = typeof args.topoheight === 'number' && Number.isFinite(args.topoheight) ? args.topoheight : null;
53
- const full = extracted.content ?? '';
78
+ // A `.gz` filename means TELA-CLI stored the file as base64'd gzip.
79
+ // Transparently decompress to the plaintext file so the agent reads real
80
+ // HTML/JS/CSS, not a compressed blob. If decompression fails (not actually
81
+ // gzip), fall back to the raw content and flag it.
82
+ const rawExtracted = extracted.content ?? '';
83
+ const looksGzipped = !!doc.filename && /\.gz$/i.test(doc.filename);
84
+ let decompressed = false;
85
+ let decompressFailed = false;
86
+ let full = rawExtracted;
87
+ let displayFilename = doc.filename;
88
+ if (looksGzipped && extracted.embedded && rawExtracted) {
89
+ const out = decompressGzipBase64(rawExtracted);
90
+ if (out !== null) {
91
+ full = out;
92
+ decompressed = true;
93
+ // Surface the real filename (strip the .gz the user never sees).
94
+ displayFilename = doc.filename.replace(/\.gz$/i, '');
95
+ }
96
+ else {
97
+ decompressFailed = true;
98
+ }
99
+ }
54
100
  const total = full.length;
55
101
  const offset = Math.max(0, Math.min(args.offset ?? 0, total));
56
102
  const end = Math.min(offset + DOC_CONTENT_CHUNK, total);
57
103
  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);
104
+ const note = extracted.note
105
+ ? extracted.note
106
+ : decompressed
107
+ ? `File was gzip-compressed on-chain (stored as ${doc.filename}); transparently decompressed to plaintext here.`
108
+ : decompressFailed
109
+ ? `Filename is ${doc.filename} but the content did not decode as base64 gzip; returning raw bytes.`
110
+ : undefined;
60
111
  const payload = {
61
112
  scid: args.scid,
62
113
  topoheight: responseTopoheight,
63
- filename: doc.filename,
114
+ filename: displayFilename,
115
+ stored_filename: doc.filename,
64
116
  doc_type: doc.doc_type,
65
117
  sub_dir: doc.sub_dir,
66
118
  content_embedded: extracted.embedded,
@@ -69,12 +121,13 @@ export async function telaGetDocContent(rpc, args) {
69
121
  content_length: total,
70
122
  content_truncated: truncated,
71
123
  next_offset: truncated ? end : null,
72
- compressed,
124
+ compressed: looksGzipped,
125
+ decompressed,
73
126
  signature: doc.signature,
74
127
  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),
128
+ note,
76
129
  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.' : ''}`
130
+ ? `Fetched ${total} bytes of "${displayFilename ?? 'file'}" (${doc.doc_type ?? 'unknown type'}) from TELA-DOC-1 ${args.scid}.${decompressed ? ' Gzip content was decompressed to plaintext.' : ''}${truncated ? ` Returning bytes ${offset}–${end}; paginate with next_offset.` : ''}`
78
131
  : `TELA-DOC-1 ${args.scid} ("${doc.filename ?? 'file'}") has no inline file content (${extracted.note ?? 'DocShard, STATIC, or external'}).`,
79
132
  };
80
133
  return attachCitations(payload, 'tela_get_doc_content');
@@ -1 +1 @@
1
- {"version":3,"file":"tela-get-doc-content.js","sourceRoot":"","sources":["../../src/composites/tela-get-doc-content.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tela-get-doc-content.js","sourceRoot":"","sources":["../../src/composites/tela-get-doc-content.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Lightweight, in-process TELA discovery — a tiny "Gnomon" that resolves a
3
+ * dURL (e.g. "vault.tela") to its on-chain SCID(s), WITHOUT a separate Gnomon
4
+ * indexer service, a bundled Go binary, or a multi-hundred-MB database.
5
+ *
6
+ * How it works (validated live against mainnet, 2026-06-12):
7
+ * 1. The GnomonSC registry contract (a05395bb…) stores every known SCID with
8
+ * its install height — fetched in ONE DERO.GetSC call (~5s, 50k SCIDs).
9
+ * 2. TELA is a recent platform: 100% of indexed TELA apps live in the newest
10
+ * ~1,500 SCIDs (measured: scanning ranks 1,500–5,000 found ZERO more).
11
+ * So we read only the newest N contracts (default 3,000 for headroom),
12
+ * classify each via the shared tela-parse, and keep the TELA-INDEX apps.
13
+ * 3. The result is a small { dURL → apps } map, cached in-process with a TTL.
14
+ * A refresh only re-scans SCIDs newer than the last-seen height.
15
+ *
16
+ * Cold start: ~10s once (1,500–3,000 concurrent GetSC reads), then instant from
17
+ * cache. Pure Node; reuses the existing rpc closure and tela-parse. No Go.
18
+ *
19
+ * Scope: TELA-INDEX discovery only (apps + their dURLs). It does NOT index
20
+ * tokens/NFAs/arbitrary contracts — that is the full Gnomon's job and is not
21
+ * what dURL→SCID resolution needs.
22
+ */
23
+ export declare const GNOMON_REGISTRY_SCID = "a05395bb0cf77adc850928b0db00eb5ca7a9ccbafd9a38d021c8d299ad5ce1a4";
24
+ export type DeroDaemonRpc = <T = unknown>(method: string, params?: unknown) => Promise<T>;
25
+ export type TelaApp = {
26
+ scid: string;
27
+ durl: string | null;
28
+ name: string | null;
29
+ height: number;
30
+ doc_count: number;
31
+ };
32
+ export type DiscoveryIndex = {
33
+ apps: TelaApp[];
34
+ /** Lowercased, dero://-stripped dURL → apps (a dURL can map to several). */
35
+ byDurl: Map<string, TelaApp[]>;
36
+ scanned: number;
37
+ registry_total: number;
38
+ newest_height: number;
39
+ built_at: number;
40
+ };
41
+ type RegistryEntry = {
42
+ scid: string;
43
+ height: number;
44
+ };
45
+ /** Normalize a dURL for matching: lowercase, trim, strip a leading dero://. */
46
+ export declare function normalizeDurl(durl: string): string;
47
+ /**
48
+ * Parse the GnomonSC registry's stringkeys into {scid, height} entries.
49
+ * Keys are "<scid>" (bare), "<scid>height", "<scid>owner"; we take height.
50
+ * Pure + exported for offline testing.
51
+ */
52
+ export declare function parseRegistry(stringkeys: Record<string, unknown> | undefined): RegistryEntry[];
53
+ /**
54
+ * Get the discovery index, using the in-process cache when fresh. Concurrent
55
+ * callers during a cold start share one in-flight build (no thundering herd).
56
+ * `forceRefresh` rebuilds; otherwise a stale cache triggers an incremental
57
+ * rescan of only newer SCIDs merged into the prior result.
58
+ */
59
+ export declare function getDiscoveryIndex(rpc: DeroDaemonRpc, opts?: {
60
+ forceRefresh?: boolean;
61
+ }): Promise<DiscoveryIndex>;
62
+ /**
63
+ * Resolve a dURL to its TELA app(s). dURLs are NOT unique (re-deploys, forks,
64
+ * squatters), so we return ALL matches sorted newest-first; the caller marks
65
+ * the newest as the canonical primary and discloses the collision.
66
+ */
67
+ export declare function resolveDurl(rpc: DeroDaemonRpc, durl: string): Promise<TelaApp[]>;
68
+ /** Reset the in-process cache (test helper). */
69
+ export declare function _resetGnomonCache(): void;
70
+ export {};
71
+ //# sourceMappingURL=gnomon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gnomon.d.ts","sourceRoot":"","sources":["../src/gnomon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAMH,eAAO,MAAM,oBAAoB,qEACmC,CAAA;AAepE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;AAEzF,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,OAAO,EAAE,CAAA;IACf,4EAA4E;IAC5E,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,KAAK,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAWrD,+EAA+E;AAC/E,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,aAAa,EAAE,CAgB9F;AA8ED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,aAAa,EAClB,IAAI,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GACpC,OAAO,CAAC,cAAc,CAAC,CAwBzB;AA0BD;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAGtF;AAED,gDAAgD;AAChD,wBAAgB,iBAAiB,IAAI,IAAI,CAGxC"}