@cyanheads/hn-mcp-server 0.5.22 → 0.6.1
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/AGENTS.md +24 -11
- package/CLAUDE.md +24 -11
- package/Dockerfile +9 -3
- package/README.md +25 -15
- package/changelog/0.6.x/0.6.0.md +38 -0
- package/changelog/0.6.x/0.6.1.md +34 -0
- package/changelog/template.md +10 -3
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-stories.tool.d.ts +14 -0
- package/dist/mcp-server/tools/definitions/get-stories.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-stories.tool.js +25 -6
- package/dist/mcp-server/tools/definitions/get-stories.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-thread.tool.d.ts +8 -0
- package/dist/mcp-server/tools/definitions/get-thread.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-thread.tool.js +304 -182
- package/dist/mcp-server/tools/definitions/get-thread.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-user.tool.d.ts +15 -0
- package/dist/mcp-server/tools/definitions/get-user.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-user.tool.js +177 -104
- package/dist/mcp-server/tools/definitions/get-user.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/search-content.tool.d.ts +28 -4
- package/dist/mcp-server/tools/definitions/search-content.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-content.tool.js +291 -190
- package/dist/mcp-server/tools/definitions/search-content.tool.js.map +1 -1
- package/dist/mcp-server/tools/response-budget.d.ts +111 -0
- package/dist/mcp-server/tools/response-budget.d.ts.map +1 -0
- package/dist/mcp-server/tools/response-budget.js +204 -0
- package/dist/mcp-server/tools/response-budget.js.map +1 -0
- package/dist/services/hn/hn-service.d.ts +56 -12
- package/dist/services/hn/hn-service.d.ts.map +1 -1
- package/dist/services/hn/hn-service.js +147 -25
- package/dist/services/hn/hn-service.js.map +1 -1
- package/dist/services/hn/types.d.ts +4 -0
- package/dist/services/hn/types.d.ts.map +1 -1
- package/package.json +12 -11
- package/server.json +3 -3
- package/skills/hn-guide/SKILL.md +39 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-content.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-content.tool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"search-content.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-content.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EACL,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,SAAS,GACV,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,oBAAoB,GACrB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AAGrC,yEAAyE;AACzE,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB,+DAA+D;AAC/D,MAAM,aAAa,GAAG,IAAI,CAAC;AAE3B;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,QAAgB;IACrC,IAAI,IAAI,GAAG,SAAS,CAAC;IACrB,OAAO,QAAQ,GAAG,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,eAAe,IAAI,WAAW,QAAQ,GAAG,IAAI,2BAA2B,CAAC;IACvF,IAAI,IAAI,GAAG,CAAC,IAAI,SAAS;QAAE,OAAO,GAAG,KAAK,GAAG,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/B,OAAO,GAAG,KAAK,eAAe,SAAS,WAAW,IAAI,aAAa,KAAK,IAAI,KAAK,GAAG,SAAS,GAAG,CAAC,uBAAuB,QAAQ,GAAG,CAAC;AACtI,CAAC;AAED,4EAA4E;AAC5E,MAAM,WAAW,GAAG,IAAI,CAAC;AAEzB,wCAAwC;AACxC,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAU,CAAC;AAEpG,kHAAkH;AAClH,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAU,CAAC;AAI1E;;;;;GAKG;AACH,SAAS,OAAO,CAAC,IAAmC;IAClD,OAAO,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,EAAkB,EAAE,CAAE,SAA+B,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED;;;;;GAKG;AACH,MAAM,kBAAkB,GACtB,+GAA+G,CAAC;AAElH,MAAM,aAAa,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAEvE;;;;GAIG;AACH,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,4EAA4E;IAC5E,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,OAAe,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC;IACtE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACjE,OAAO,CACL,IAAI,KAAK,SAAS;QAClB,GAAG,IAAI,CAAC;QACR,GAAG,IAAI,IAAI;QACX,IAAI,IAAI,EAAE;QACV,MAAM,IAAI,EAAE;QACZ,MAAM,IAAI,EAAE;QACZ,UAAU,IAAI,EAAE;QAChB,YAAY,IAAI,EAAE,CACnB,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAG,GAAG,EAAE,CACrB,CAAC;KACE,MAAM,EAAE;KACR,KAAK,CACJ,kBAAkB,EAClB,wIAAwI,CACzI;KACA,MAAM,CACL,eAAe,EACf,sGAAsG,CACvG;KACA,QAAQ,EAAE,CAAC;AAEhB,gHAAgH;AAChH,MAAM,UAAU,GAAG,mCAAmC,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACvE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;AACtE,CAAC;AAED,0FAA0F;AAC1F,MAAM,cAAc,GAAG,CAAC;KACrB,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACrE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;IACxF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IACtF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAC3D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACrE,SAAS,EAAE,CAAC;SACT,MAAM,CAAC;QACN,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,+HAA+H,CAChI;QACH,GAAG,EAAE,CAAC;aACH,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,4HAA4H,CAC7H;KACJ,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CAAC,sEAAsE,CAAC;IACnF,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAChE,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,CAAC,2EAA2E,CAAC;IACxF,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;CAC9E,CAAC;KACD,QAAQ,CACP,0PAA0P,CAC3P,CAAC;AAIJ,wEAAwE;AACxE,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,EAAE,CACrC,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAE/D,0GAA0G;AAC1G,SAAS,cAAc,CAAC,CAAiB;IACvC,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,IAAI;QAC5B,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI;QAC/D,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI;KAC7D,CAAC;IACF,MAAM,KAAK,GAAG;QACZ,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;QACzC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;QAC/D,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI;QAClD,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI;QACxD,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI;QAC9D,MAAM,CAAC,CAAC,CAAC,cAAc,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;QACjE,SAAS,CAAC,CAAC,IAAI,EAAE;QACjB,UAAU,CAAC,CAAC,KAAK,EAAE;QACnB,SAAS,CAAC,CAAC,IAAI,EAAE;KAClB,CAAC;IACF,OAAO,iBAAiB,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AAC9D,CAAC;AAED,qHAAqH;AACrH,SAAS,cAAc,CACrB,KAGC;IAED,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,KAAK,CAAC,IAAI;QAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI;QAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI;QAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvD,IAAI,KAAK,CAAC,WAAW,IAAI,IAAI;QAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3D,IAAI,KAAK,CAAC,SAAS,EAAE,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE,GAAG;QAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9E,OAAO,OAAO,CAAC;AACjB,CAAC;AAgCD;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CAAC,KAAwB;IACjD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IACrD,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC;IAC/F,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,GAAG,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC;QAC9E,IAAI,IAAI,GAAG,CAAC,GAAG,UAAU,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,yBAAyB,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACxF,OAAO,WAAW,KAAK,OAAO,KAAK,eAAe,IAAI,OAAO,UAAU,WAAW,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,YAAY,UAAU,GAAG,CAAC;QACjI,CAAC;QACD,OAAO,SAAS,GAAG,WAAW;YAC5B,CAAC,CAAC,QAAQ,IAAI,yGAAyG,KAAK,+DAA+D;YAC3L,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IACD,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,QAAQ,IAAI,4NAA4N,CAAC;QAClP,CAAC;QACD,wEAAwE;QACxE,MAAM,KAAK,GACT,UAAU,KAAK,CAAC;YACd,CAAC,CAAC,QAAQ,SAAS,CAAC,CAAC,CAAC,iBAAiB;YACvC,CAAC,CAAC,QAAQ,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,+CAA+C,CAAC;QACvF,OAAO,QAAQ,IAAI,sCAAsC,SAAS,gBAAgB,UAAU,QAAQ,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,EAAE,CAAC;IAC/I,CAAC;IACD,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;QACxB,OAAO,mCAAmC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC;IACxF,CAAC;IACD,OAAO,OAAO,CAAC,MAAM;QACnB,CAAC,CAAC,iDAAiD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QACxE,CAAC,CAAC,0CAA0C,CAAC;AACjD,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,KAAwB;IAC9C,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,KAAK,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC;QAChC,SAAS,CAAC,IAAI,CACZ,iBAAiB,KAAK,CAAC,aAAa,yGAAyG,CAC9I,CAAC;QACF,IAAI,cAAc,EAAE,CAAC;YACnB,SAAS,CAAC,IAAI,CACZ,4GAA4G,CAC7G,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IACE,KAAK,CAAC,IAAI,KAAK,YAAY;QAC3B,CAAC,cAAc,IAAI,KAAK,CAAC,SAAS,EAAE,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,EAClE,CAAC;QACD,SAAS,CAAC,IAAI,CACZ,yLAAyL,CAC1L,CAAC;IACJ,CAAC;IACD,IAAI,cAAc,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACnC,SAAS,CAAC,IAAI,CACZ,4GAA4G,CAC7G,CAAC;IACJ,CAAC;IACD,IAAI,cAAc,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;QAC5C,SAAS,CAAC,IAAI,CACZ,8OAA8O,CAC/O,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC1B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC;IACvE,IAAI,OAAO,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;QAC/C,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACjE,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACrB,SAAS,CAAC,IAAI,CACZ,QAAQ,OAAO,CAAC,IAAI,aAAa,OAAO,CAAC,KAAK,mCAAmC,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,KAAK,oBAAoB,CACxI,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAUD,8EAA8E;AAC9E,SAAS,cAAc,CAAC,EAAE,qBAAqB,EAAE,MAAM,EAAgB;IACrE,MAAM,MAAM,GAAG,sBAAsB,oBAAoB,wBAAwB,CAAC;IAClF,MAAM,OAAO,GAAG,2CAA2C,CAAC;IAC5D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QACrB,OAAO,GAAG,MAAM,IAAI,OAAO,+CAA+C,CAAC;IAC7E,MAAM,GAAG,GAAG,eAAe,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;IACpG,OAAO,GAAG,MAAM,IAAI,qBAAqB,CAAC,CAAC,CAAC,GAAG,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,mHAAmH,CAAC;AAC9L,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAwB;IAC1D,MAAM,SAAS,GAAG;QAChB,iBAAiB,CAAC,KAAK,CAAC;QACxB,GAAG,cAAc,CAAC,KAAK,CAAC;QACxB,KAAK,CAAC,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC;KAC7C,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;IACzC,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAChE,CAAC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,KAAa;IACzC,OAAO,KAAK;SACT,KAAK,CAAC,WAAW,CAAC;SAClB,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;SACjE,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,iBAAiB,CAAC,GAAe,EAAE,WAAoB;IAC9D,MAAM,CAAC,GAAG,GAAG,CAAC,gBAAgB,CAAC;IAC/B,IAAI,CAAC,CAAC;QAAE,OAAO;IAEf,MAAM,OAAO,GAAG,CAAC,CAAoC,EAA8B,EAAE,CACnF,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC;IAEvC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC;QACpC,CAAC,CAAC,CAAC,CAAC,YAAY;QAChB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;YACrB,CAAC,CAAC,CAAC,CAAC,UAAU;YACd,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,IAAI,GAAG,WAAW,IAAI,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAErF,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;IACvF,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAEvF,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEvE,OAAO;QACL,GAAG,CAAC,KAAK,IAAI,IAAI,IAAI,EAAE,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;QAC7B,YAAY;KACb,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAG,CAAC;KAChB,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;IACtF,IAAI,EAAE,CAAC;SACJ,IAAI,CAAC,SAAS,CAAC;SACf,QAAQ,EAAE;SACV,QAAQ,CACP,0KAA0K,CAC3K;IACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IAC3F,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IACzD,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,8HAA8H,CAC/H;IACH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC/C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACxD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAC7D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC3D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;IAC/F,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,oJAAoJ,CACrJ;IACH,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,mLAAmL,CACpL;IACH,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,yIAAyI,CAC1I;IACH,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,qNAAqN,oBAAoB,sKAAsK,CAChZ;IACH,aAAa,EAAE,CAAC;SACb,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACP,iFAAiF,oBAAoB,iGAAiG,CACvM;IACH,UAAU,EAAE,CAAC;SACV,MAAM,CAAC;QACN,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,4QAA4Q,CAC7Q;QACH,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,uYAAuY,CACxY;QACH,YAAY,EAAE,CAAC;aACZ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,CACP,+HAA+H,CAChI;KACJ,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CACP,qHAAqH,CACtH;CACJ,CAAC;KACD,QAAQ,CAAC,0EAA0E,CAAC,CAAC;AAIxF;;;;GAIG;AACH,SAAS,UAAU,CAAC,GAAe,EAAE,IAAa,EAAE,aAAsB;IACxE,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxF,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChC,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACxB,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;QACrB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;QACpE,GAAG;QACH,MAAM;QACN,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,SAAS;QAC/B,WAAW,EAAE,GAAG,CAAC,YAAY,IAAI,SAAS;QAC1C,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,UAAU,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;QACrF,OAAO,EAAE,GAAG,CAAC,QAAQ,IAAI,SAAS;QAClC,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC;QACzD,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC7B,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS;QAC3D,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,CAAC;KAClC,CAAC;AACJ,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IACzE,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,qHAAqH,CACtH;CACJ,CAAC,CAAC;AAIH,MAAM,aAAa,GAAG;IACpB,QAAQ,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE;CACrC,CAAC;AAEF;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,EAAwC;IAChE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,EAAE,CAAC,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,eAAe,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChE,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/E,IAAI,EAAE,CAAC,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAChF,CAAC;AAED,4GAA4G;AAC5G,SAAS,UAAU,CAAC,CAAY;IAC9B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACnE,CAAC;AAED;;;;GAIG;AACH,SAAS,QAAQ,CAAC,CAAY;IAC5B,OAAO;QACL,MAAM,CAAC,CAAC,EAAE,EAAE;QACZ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;QAChC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;QAClD,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,IAAI;QAC3C,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,WAAW,CAAC,CAAC,CAAC,IAAI;QAC1D,CAAC,CAAC,SAAS;KACZ;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC;AAED,2FAA2F;AAC3F,SAAS,WAAW,CAAC,CAAY;IAC/B,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,YAAY,CAAC,MAAoB;IACxC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EACF,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa;aACzF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,MAAM,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACzB,qFAAqF;YACrF,OAAO,sBAAsB,CAAC,CAAC,MAAM,KAAK,IAAI,GAAG,KAAK,yDAAyD,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;QACjI,CAAC;QACD,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACZ,6IAA6I;YAC7I,MAAM,SAAS,GACb,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU;gBACvD,CAAC,CAAC,aAAa,YAAY,CAAC,CAAC,CAAC,UAAU,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,GAAG,EAAE;gBACvE,CAAC,CAAC,EAAE,CAAC;YACT,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAChD,OAAO,OAAO,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM,KAAK,IAAI,GAAG,SAAS,GAAG,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC;QACvG,CAAC;QACD,8CAA8C;QAC9C,OAAO,mBAAmB,YAAY,CAAC,CAAC,CAAC,UAAU,IAAI,SAAS,CAAC,eAAe,CAAC,CAAC,OAAO,IAAI,GAAG,MAAM,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC;IAChJ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GACV,MAAM,CAAC,KAAK,IAAI,IAAI;QAClB,CAAC,CAAC,OAAO,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB;QACvD,CAAC,CAAC,kCAAkC,CAAC;IACzC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE;IAChD,WAAW,EACT,qNAAqN;IACvN,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;IACnC,MAAM,EAAE;QACN;YACE,MAAM,EAAE,yBAAyB;YACjC,IAAI,EAAE,gBAAgB,CAAC,aAAa;YACpC,IAAI,EAAE,gFAAgF;YACtF,QAAQ,EACN,iKAAiK;YACnK,QAAQ,EAAE,QAAQ;SACnB;QACD;YACE,MAAM,EAAE,oBAAoB;YAC5B,IAAI,EAAE,gBAAgB,CAAC,aAAa;YACpC,IAAI,EAAE,0EAA0E;YAChF,QAAQ,EACN,yHAAyH;YAC3H,QAAQ,EAAE,QAAQ;SACnB;QACD;YACE,MAAM,EAAE,0BAA0B;YAClC,IAAI,EAAE,gBAAgB,CAAC,aAAa;YACpC,IAAI,EAAE,kGAAkG;YACxG,QAAQ,EACN,oIAAoI;YACtI,QAAQ,EAAE,QAAQ;SACnB;QACD;YACE,MAAM,EAAE,4BAA4B;YACpC,IAAI,EAAE,gBAAgB,CAAC,aAAa;YACpC,IAAI,EAAE,6GAA6G;YACnH,QAAQ,EACN,sJAAsJ;YACxJ,QAAQ,EAAE,QAAQ;SACnB;QACD;YACE,MAAM,EAAE,sBAAsB;YAC9B,IAAI,EAAE,gBAAgB,CAAC,aAAa;YACpC,IAAI,EAAE,gLAAgL;YACtL,QAAQ,EACN,8LAA8L;YAChM,QAAQ,EAAE,QAAQ;SACnB;QACD;YACE,MAAM,EAAE,mBAAmB;YAC3B,IAAI,EAAE,gBAAgB,CAAC,aAAa;YACpC,IAAI,EAAE,uFAAuF;YAC7F,QAAQ,EAAE,+EAA+E;YACzF,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,MAAM,EAAE,uBAAuB;YAC/B,IAAI,EAAE,gBAAgB,CAAC,WAAW;YAClC,IAAI,EAAE,iCAAiC;YACvC,QAAQ,EACN,kIAAkI;YACpI,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,MAAM,EAAE,sBAAsB;YAC9B,IAAI,EAAE,gBAAgB,CAAC,kBAAkB;YACzC,IAAI,EAAE,qCAAqC;YAC3C,QAAQ,EAAE,8EAA8E;YACxF,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,MAAM,EAAE,eAAe;YACvB,IAAI,EAAE,gBAAgB,CAAC,kBAAkB;YACzC,IAAI,EAAE,wGAAwG;YAC9G,QAAQ,EAAE,0EAA0E;YACpF,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,MAAM,EAAE,oBAAoB;YAC5B,IAAI,EAAE,gBAAgB,CAAC,kBAAkB;YACzC,IAAI,EAAE,iEAAiE;YACvE,QAAQ,EAAE,kFAAkF;YAC5F,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,SAAS;SACpB;KACF;IACD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,IAAI,EAAE;aACN,GAAG,CACF,CAAC,EACD,0GAA0G,CAC3G;aACA,QAAQ,EAAE;aACV,QAAQ,CACP,+tBAA+tB,CAChuB;QACH,IAAI,EAAE,CAAC;aACJ,IAAI,CAAC,WAAW,CAAC;aACjB,QAAQ,EAAE;aACV,QAAQ,CACP,iiBAAiiB,CACliB;QACH,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,EAAE,sEAAsE,CAAC;aAC9E,QAAQ,EAAE;aACV,QAAQ,CACP,iRAAiR,CAClR;QACH,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,QAAQ,EAAE;aACV,QAAQ,CACP,0WAA0W,CAC3W;QACH,IAAI,EAAE,CAAC;aACJ,IAAI,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;aAC3B,OAAO,CAAC,WAAW,CAAC;aACpB,QAAQ,CAAC,uEAAuE,CAAC;QACpF,SAAS,EAAE,CAAC;aACT,MAAM,CAAC;YACN,KAAK,EAAE,SAAS,EAAE,CAAC,QAAQ,CACzB,iTAAiT,CAClT;YACD,GAAG,EAAE,SAAS,EAAE,CAAC,QAAQ,CACvB,wPAAwP,CACzP;SACF,CAAC;aACD,QAAQ,EAAE;aACV,QAAQ,CACP,uHAAuH,CACxH;QACH,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,EAAE;aACV,QAAQ,CACP,oPAAoP,CACrP;QACH,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,EAAE;aACV,QAAQ,CACP,qVAAqV,CACtV;QACH,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,aAAa,CAAC;aAClB,OAAO,CAAC,EAAE,CAAC;aACX,QAAQ,CACP,wCAAwC,SAAS,0CAA0C,SAAS,8BAA8B,SAAS,wKAAwK,SAAS,QAAQ,CACrU;QACH,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,OAAO,CAAC,CAAC,CAAC;aACV,QAAQ,CAAC,4EAA4E,CAAC;QACzF,IAAI,EAAE,CAAC;aACJ,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;aACzB,OAAO,CAAC,MAAM,CAAC;aACf,QAAQ,CACP,yEAAyE,oBAAoB,unBAAunB,CACrtB;KACJ,CAAC;IACF,MAAM,EAAE,YAAY;IAEpB,UAAU,EAAE;QACV,QAAQ,EAAE,cAAc;QACxB,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,QAAQ,CACP,uNAAuN,CACxN;QACH,cAAc,EAAE,CAAC;aACd,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CACP,yOAAyO,CAC1O;QACH,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,CACP,0JAA0J,CAC3J;QACH,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,CACP,mQAAmQ,CACpQ;QACH,aAAa,EAAE,CAAC;aACb,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,qMAAqM,CACtM;QACH,SAAS,EAAE,CAAC;aACT,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CACP,6GAA6G,CAC9G;QACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QACjE,GAAG,EAAE,CAAC;aACH,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,yCAAyC,SAAS,iCAAiC,CACpF;QACH,qBAAqB,EAAE,CAAC;aACrB,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CACP,iGAAiG,oBAAoB,oFAAoF,CAC1M;QACH,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,uXAAuX,oBAAoB,6HAA6H,CACzgB;KACJ;IACD,iBAAiB,EAAE,aAAa;IAEhC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACtB,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAC5B,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC;YACjC,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;gBACnB,MAAM,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,iDAAiD,CAAC,CAAC;YAC1F,CAAC;YACD,IAAI,KAAK,IAAI,GAAG,IAAI,kBAAkB,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzE,MAAM,GAAG,CAAC,IAAI,CACZ,oBAAoB,EACpB,oBAAoB,KAAK,kCAAkC,GAAG,4DAA4D,CAC3H,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAClF,MAAM,GAAG,CAAC,IAAI,CACZ,0BAA0B,EAC1B,gCAAgC,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,gEAAgE,CAC3H,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YACpF,MAAM,GAAG,CAAC,IAAI,CACZ,4BAA4B,EAC5B,kCAAkC,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,yEAAyE,CACtI,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,MAAM,GAAG,CAAC,IAAI,CACZ,yBAAyB,EACzB,yEAAyE,CAC1E,CAAC;QACJ,CAAC;QAED,8FAA8F;QAC9F,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/F,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1C,IAAI,OAAO,IAAI,QAAQ,GAAG,SAAS,KAAK,CAAC,EAAE,CAAC;YAC1C,MAAM,GAAG,CAAC,IAAI,CACZ,sBAAsB,EACtB,SAAS,KAAK,CAAC,KAAK,iCAAiC,SAAS,cAAc,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,KAAK,iBAAiB,QAAQ,2BAA2B,SAAS,eAAe,EAC1L,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,CACtF,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG;YACb,GAAG,KAAK;YACR,GAAG,CAAC,QAAQ,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;YAC1C,GAAG,CAAC,OAAO,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,GAAG,SAAS,EAAE,CAAC;SACjE,CAAC;QACF,MAAM,EAAE,GAAG,YAAY,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAE5C,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;QAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;QAEjF,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,IAAI,CAAC,MAAM;YACjB,SAAS,EAAE,MAAM,CAAC,MAAM;SACzB,CAAC,CAAC;QAEH,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QAChE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,8FAA8F;QAC9F,MAAM,WAAW,GAAG,KAAK,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,UAAU,KAAK,CAAC,CAAC;QAChE,MAAM,cAAc,GAAG,WAAW;YAChC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,MAAM,UAAU,GAAG;YACjB,QAAQ,EAAE;gBACR,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;gBACjD,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;gBACvD,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC1D,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;gBAChE,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;gBACtE,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI;oBAClD,SAAS,EAAE;wBACT,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;wBAChE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;qBAC3D;iBACF,CAAC;gBACF,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB;YACD,SAAS;YACT,GAAG,CAAC,cAAc,IAAI,IAAI,IAAI,EAAE,cAAc,EAAE,CAAC;YACjD,IAAI;YACJ,UAAU;YACV,GAAG,CAAC,SAAS,GAAG,WAAW,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;SAC/D,CAAC;QACF,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,UAAU,CAAC;QACrD,MAAM,WAAW,GAAsB;YACrC,GAAG,MAAM;YACT,aAAa,EAAE,QAAQ,EAAE,aAAa;YACtC,KAAK;YACL,IAAI;YACJ,SAAS;YACT,cAAc;YACd,UAAU;YACV,OAAO;SACR,CAAC;QAEF,0FAA0F;QAC1F,MAAM,OAAO,GAAG,CAAC,MAAmB,EAAE,MAAqB,EAAE,EAAE,CAAC,CAAC;YAC/D,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE;YAC9E,MAAM,EAAE,mBAAmB,CAAC,EAAE,GAAG,WAAW,EAAE,MAAM,EAAE,CAAC;YACvD,qBAAqB,EAAE,MAAM,EAAE,qBAAqB,KAAK,IAAI;SAC9D,CAAC,CAAC;QAEH,8FAA8F;QAC9F,MAAM,OAAO,GAAG,CAAC,QAAoC,EAAE,EAAE,CACvD,eAAe,CAAC;YACd,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC;YACtC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,UAAU,EAAE;gBACV,GAAG,UAAU;gBACb,GAAG,CAAC,QAAQ,CAAC,qBAAqB,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC;gBACtE,GAAG,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC/D,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;aAC5D;YACD,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QAEL,IAAI,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,WAAW,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YAClD,+FAA+F;YAC/F,MAAM,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC;YAC/E,MAAM,IAAI,GAAG,qBAAqB;gBAChC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBACxD,CAAC,CAAC,IAAI,CAAC;YACT,IAAI,qBAAqB;gBAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,qBAAqB,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3F,IAAI,CAAC,qBAAqB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBAC7D,2EAA2E;gBAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxF,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,EAAE;oBAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAC3C,GAAG,CAAC,IAAI,IAAI,KAAK,GAAG,KAAK;wBACvB,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE;wBACpE,CAAC,CAAC,GAAG,CACR,CAAC;oBACF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC9E,OAAO,OAAO,CAAC,MAAM,EAAE,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC5D,CAAC,CAAC;gBACF,MAAM,KAAK,GAAG,mBAAmB,CAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAChC,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAC3C,CAAC;gBACF,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;gBACxB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,2CAA2C,EAAE;oBACxD,UAAU,EAAE,KAAK;oBACjB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;iBACrF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,GAAG,CAAC,MAAM,CAAC;YACT,GAAG,UAAU;YACb,GAAG,CAAC,QAAQ,CAAC,qBAAqB,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC;SACvE,CAAC,CAAC;QACH,IAAI,SAAS;YAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAClE,IAAI,QAAQ,CAAC,MAAM;YAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAExD,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAED,MAAM,EAAE,YAAY;CACrB,CAAC,CAAC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview The fixed byte budget a page-returning tool holds each response
|
|
3
|
+
* surface to, and the arithmetic that keeps a page within it: measure both
|
|
4
|
+
* surfaces as the caller receives them — whole, or as a page plus the
|
|
5
|
+
* enrichment the framework adds — then either cut the longest bodies to the
|
|
6
|
+
* largest byte limit they can share, on a code-point boundary, or serve the
|
|
7
|
+
* longest prefix of the page that fits. The tool decides what is cuttable or
|
|
8
|
+
* droppable and how the cut is disclosed.
|
|
9
|
+
* @module mcp-server/tools/response-budget
|
|
10
|
+
*/
|
|
11
|
+
/** Bytes each surface may carry: all `content[]` text, the enrichment trailer included, and the `structuredContent` JSON. */
|
|
12
|
+
export declare const RESPONSE_BUDGET_BYTES = 64000;
|
|
13
|
+
/** {@link RESPONSE_BUDGET_BYTES} as the descriptions and notices write it. */
|
|
14
|
+
export declare const RESPONSE_BUDGET_TEXT: string;
|
|
15
|
+
/** The line `content[]` puts after a body cut to the budget, outside its quote. */
|
|
16
|
+
export declare const cutPointer: (id: number) => string;
|
|
17
|
+
/** UTF-8 length of `text`. */
|
|
18
|
+
export declare function byteLength(text: string): number;
|
|
19
|
+
/**
|
|
20
|
+
* The longest prefix of `text` within `maxBytes` UTF-8 bytes. It ends on a
|
|
21
|
+
* code-point boundary: a character that would straddle the limit, a surrogate
|
|
22
|
+
* pair included, is left out whole.
|
|
23
|
+
*/
|
|
24
|
+
export declare function cutToBytes(text: string, maxBytes: number): string;
|
|
25
|
+
/** A response as the handler is about to return it. */
|
|
26
|
+
export interface ResponseDraft {
|
|
27
|
+
/** The blocks the definition's `format()` renders for `result`. */
|
|
28
|
+
content: readonly {
|
|
29
|
+
type: string;
|
|
30
|
+
text?: string;
|
|
31
|
+
}[];
|
|
32
|
+
/** Every enrichment field the call writes, `notice` included, as the framework will hold them. */
|
|
33
|
+
enrichment: Readonly<Record<string, unknown>>;
|
|
34
|
+
/** The handler's return value. */
|
|
35
|
+
result: Readonly<Record<string, unknown>>;
|
|
36
|
+
/** The definition's `enrichmentTrailer`. */
|
|
37
|
+
trailer?: Readonly<Record<string, {
|
|
38
|
+
label?: string;
|
|
39
|
+
render?: (value: never) => string;
|
|
40
|
+
} | undefined>> | undefined;
|
|
41
|
+
}
|
|
42
|
+
/** A response's size on each surface. */
|
|
43
|
+
export interface ResponseBytes {
|
|
44
|
+
contentBytes: number;
|
|
45
|
+
structuredBytes: number;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* The bytes the framework adds to each surface for `enrichment`: its
|
|
49
|
+
* `content[]` trailer, and the `"key":value` members it merges into the
|
|
50
|
+
* `structuredContent` object, each with the comma before it. Exact for a
|
|
51
|
+
* result that serializes with at least one member and shares no key with the
|
|
52
|
+
* enrichment. A tool that sizes its page as it builds it adds this to the
|
|
53
|
+
* page's own bytes; {@link measureResponse} does the same for a whole draft.
|
|
54
|
+
*
|
|
55
|
+
* @throws TypeError for a string or object field with no `render`, as
|
|
56
|
+
* {@link measureResponse} does.
|
|
57
|
+
*/
|
|
58
|
+
export declare function enrichmentBytes(enrichment: ResponseDraft['enrichment'], trailer?: ResponseDraft['trailer']): ResponseBytes;
|
|
59
|
+
/**
|
|
60
|
+
* Size a response on both surfaces as the caller receives it: every `content[]`
|
|
61
|
+
* text block plus the enrichment trailer the framework appends, and the
|
|
62
|
+
* `structuredContent` JSON — the handler's return merged with its enrichment,
|
|
63
|
+
* which shares none of the return's keys.
|
|
64
|
+
*/
|
|
65
|
+
export declare function measureResponse(draft: ResponseDraft): ResponseBytes;
|
|
66
|
+
/** True when both surfaces are within {@link RESPONSE_BUDGET_BYTES}. */
|
|
67
|
+
export declare function fitsBudget(bytes: ResponseBytes): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* The largest byte limit at which the page fits the budget when every body
|
|
70
|
+
* longer than the limit is cut to it and every other body stays whole.
|
|
71
|
+
*
|
|
72
|
+
* Every body reaches each surface at least once, whole or cut, so a page cut
|
|
73
|
+
* at a limit carries at least the bodies' bytes at that limit on each surface.
|
|
74
|
+
* No limit whose body bytes alone exceed the budget can fit, and none is
|
|
75
|
+
* measured: every page `measure` renders is within the budget in body bytes,
|
|
76
|
+
* however long the bodies are.
|
|
77
|
+
*
|
|
78
|
+
* A page's size is not monotone in the limit: raising it to a body's length
|
|
79
|
+
* returns that body whole, which drops its cut disclosure, so a page can fit at
|
|
80
|
+
* a body's length and not one byte below. The limits are therefore searched as
|
|
81
|
+
* cut sets — the longest body alone, then the two longest — each tried at its
|
|
82
|
+
* lowest limit, where it cuts its bodies furthest. The answer is the first set
|
|
83
|
+
* that fits there, bisected within, where the size does grow with the limit.
|
|
84
|
+
* The first set the body bytes allow is measured, then the last; between them
|
|
85
|
+
* the sets are bisected, on the assumption that once one set fits every larger
|
|
86
|
+
* one does — where an earlier set also fits, a smaller limit is served. That is
|
|
87
|
+
* at most two measurements plus a bisection over the sets and one within.
|
|
88
|
+
*
|
|
89
|
+
* @param bodyBytes UTF-8 length of each cuttable body; 0 for an item without
|
|
90
|
+
* one. Each body must reach both surfaces, at least once, cut or whole.
|
|
91
|
+
* @param measure Both surfaces with every body longer than `limitBytes` cut to
|
|
92
|
+
* it. With the same bodies cut, a larger limit must never measure smaller.
|
|
93
|
+
* @returns 0 when even cutting every body to nothing leaves the page over
|
|
94
|
+
* budget — the smallest page cutting can make.
|
|
95
|
+
*/
|
|
96
|
+
export declare function largestFittingLimit(bodyBytes: readonly number[], measure: (limitBytes: number) => ResponseBytes): number;
|
|
97
|
+
/**
|
|
98
|
+
* Which of a page's `count` prefixes to serve: the longest that fits the
|
|
99
|
+
* budget, or the first — the shortest the caller allows, served even over
|
|
100
|
+
* budget — when none does.
|
|
101
|
+
*
|
|
102
|
+
* Prefixes are measured from the longest down, each at most once and the first
|
|
103
|
+
* never. A prefix's overflow says nothing about a shorter one: what a response
|
|
104
|
+
* adds beyond its page, such as a cursor of the entries still unread, can shrink
|
|
105
|
+
* as the page shortens as well as grow.
|
|
106
|
+
*
|
|
107
|
+
* @param measure The whole response serving prefix `index`.
|
|
108
|
+
* @returns The index of the prefix to serve.
|
|
109
|
+
*/
|
|
110
|
+
export declare function longestFittingPrefix(count: number, measure: (index: number) => ResponseBytes): number;
|
|
111
|
+
//# sourceMappingURL=response-budget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-budget.d.ts","sourceRoot":"","sources":["../../../src/mcp-server/tools/response-budget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,6HAA6H;AAC7H,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAE5C,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,QAAgD,CAAC;AAElF,mFAAmF;AACnF,eAAO,MAAM,UAAU,OAAQ,MAAM,WAC4D,CAAC;AAIlG,8BAA8B;AAC9B,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIjE;AAED,uDAAuD;AACvD,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,OAAO,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACpD,kGAAkG;IAClG,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9C,kCAAkC;IAClC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1C,4CAA4C;IAC5C,OAAO,CAAC,EACJ,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,CAAC,GAC3F,SAAS,CAAC;CACf;AAED,yCAAyC;AACzC,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAqCD;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,aAAa,CAAC,YAAY,CAAC,EACvC,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,GACjC,aAAa,CASf;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,aAAa,CAUnE;AAED,wEAAwE;AACxE,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAIxD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,aAAa,GAC7C,MAAM,CAyCR;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,aAAa,GACxC,MAAM,CAKR"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview The fixed byte budget a page-returning tool holds each response
|
|
3
|
+
* surface to, and the arithmetic that keeps a page within it: measure both
|
|
4
|
+
* surfaces as the caller receives them — whole, or as a page plus the
|
|
5
|
+
* enrichment the framework adds — then either cut the longest bodies to the
|
|
6
|
+
* largest byte limit they can share, on a code-point boundary, or serve the
|
|
7
|
+
* longest prefix of the page that fits. The tool decides what is cuttable or
|
|
8
|
+
* droppable and how the cut is disclosed.
|
|
9
|
+
* @module mcp-server/tools/response-budget
|
|
10
|
+
*/
|
|
11
|
+
/** Bytes each surface may carry: all `content[]` text, the enrichment trailer included, and the `structuredContent` JSON. */
|
|
12
|
+
export const RESPONSE_BUDGET_BYTES = 64_000;
|
|
13
|
+
/** {@link RESPONSE_BUDGET_BYTES} as the descriptions and notices write it. */
|
|
14
|
+
export const RESPONSE_BUDGET_TEXT = RESPONSE_BUDGET_BYTES.toLocaleString('en-US');
|
|
15
|
+
/** The line `content[]` puts after a body cut to the budget, outside its quote. */
|
|
16
|
+
export const cutPointer = (id) => `Text cut short to fit the response budget — hn_get_thread with itemId ${id} returns it whole.`;
|
|
17
|
+
const utf8 = new TextEncoder();
|
|
18
|
+
/** UTF-8 length of `text`. */
|
|
19
|
+
export function byteLength(text) {
|
|
20
|
+
return utf8.encode(text).byteLength;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* The longest prefix of `text` within `maxBytes` UTF-8 bytes. It ends on a
|
|
24
|
+
* code-point boundary: a character that would straddle the limit, a surrogate
|
|
25
|
+
* pair included, is left out whole.
|
|
26
|
+
*/
|
|
27
|
+
export function cutToBytes(text, maxBytes) {
|
|
28
|
+
/** `encodeInto` stops before the first code point that does not fit; `read` counts the UTF-16 units it consumed. */
|
|
29
|
+
const { read } = utf8.encodeInto(text, new Uint8Array(maxBytes));
|
|
30
|
+
return text.slice(0, read);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The bytes the framework's `content[]` trailer takes for `enrichment`, at
|
|
34
|
+
* most one byte per field over. The trailer is rendered after `format()`, out
|
|
35
|
+
* of the handler's sight, so each field is sized as the framework renders it —
|
|
36
|
+
* the definition's `render`, the `notice` as a block quote, any other value as
|
|
37
|
+
* `**key:** value` — plus two bytes: the trailer opens with a blank line and
|
|
38
|
+
* joins its fields with one line break, or two after a block quote.
|
|
39
|
+
*
|
|
40
|
+
* @throws TypeError for a string or object field with no `render`, which the
|
|
41
|
+
* framework renders as a code literal this does not size.
|
|
42
|
+
*/
|
|
43
|
+
function trailerBytes(enrichment, trailer) {
|
|
44
|
+
let bytes = 0;
|
|
45
|
+
for (const [key, value] of Object.entries(enrichment)) {
|
|
46
|
+
const field = trailer?.[key];
|
|
47
|
+
let line;
|
|
48
|
+
if (field?.render) {
|
|
49
|
+
line = field.render(value);
|
|
50
|
+
}
|
|
51
|
+
else if (key === 'notice') {
|
|
52
|
+
line = String(value)
|
|
53
|
+
.split(/\r\n|\r|\n/)
|
|
54
|
+
.map((part) => (part === '' ? '>' : `> ${part}`))
|
|
55
|
+
.join('\n');
|
|
56
|
+
}
|
|
57
|
+
else if (value == null || typeof value === 'number' || typeof value === 'boolean') {
|
|
58
|
+
line = `**${field?.label ?? key}:** ${String(value)}`;
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
throw new TypeError(`Cannot size enrichment field "${key}" (${typeof value}) for the response budget: give it an enrichmentTrailer render.`);
|
|
62
|
+
}
|
|
63
|
+
bytes += 2 + byteLength(line);
|
|
64
|
+
}
|
|
65
|
+
return bytes;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The bytes the framework adds to each surface for `enrichment`: its
|
|
69
|
+
* `content[]` trailer, and the `"key":value` members it merges into the
|
|
70
|
+
* `structuredContent` object, each with the comma before it. Exact for a
|
|
71
|
+
* result that serializes with at least one member and shares no key with the
|
|
72
|
+
* enrichment. A tool that sizes its page as it builds it adds this to the
|
|
73
|
+
* page's own bytes; {@link measureResponse} does the same for a whole draft.
|
|
74
|
+
*
|
|
75
|
+
* @throws TypeError for a string or object field with no `render`, as
|
|
76
|
+
* {@link measureResponse} does.
|
|
77
|
+
*/
|
|
78
|
+
export function enrichmentBytes(enrichment, trailer) {
|
|
79
|
+
let structuredBytes = 0;
|
|
80
|
+
for (const [key, value] of Object.entries(enrichment)) {
|
|
81
|
+
/** `undefined` is what JSON.stringify returns for a value it leaves out of an object. */
|
|
82
|
+
const json = JSON.stringify(value);
|
|
83
|
+
if (json !== undefined)
|
|
84
|
+
structuredBytes += 2 + byteLength(JSON.stringify(key)) + byteLength(json);
|
|
85
|
+
}
|
|
86
|
+
return { contentBytes: trailerBytes(enrichment, trailer), structuredBytes };
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Size a response on both surfaces as the caller receives it: every `content[]`
|
|
90
|
+
* text block plus the enrichment trailer the framework appends, and the
|
|
91
|
+
* `structuredContent` JSON — the handler's return merged with its enrichment,
|
|
92
|
+
* which shares none of the return's keys.
|
|
93
|
+
*/
|
|
94
|
+
export function measureResponse(draft) {
|
|
95
|
+
const added = enrichmentBytes(draft.enrichment, draft.trailer);
|
|
96
|
+
let contentBytes = added.contentBytes;
|
|
97
|
+
for (const block of draft.content) {
|
|
98
|
+
if (block.type === 'text' && block.text != null)
|
|
99
|
+
contentBytes += byteLength(block.text);
|
|
100
|
+
}
|
|
101
|
+
const result = JSON.stringify(draft.result);
|
|
102
|
+
/** Merged into an object with no members, the first field takes no comma. */
|
|
103
|
+
const noComma = result === '{}' && added.structuredBytes > 0 ? 1 : 0;
|
|
104
|
+
return { contentBytes, structuredBytes: byteLength(result) + added.structuredBytes - noComma };
|
|
105
|
+
}
|
|
106
|
+
/** True when both surfaces are within {@link RESPONSE_BUDGET_BYTES}. */
|
|
107
|
+
export function fitsBudget(bytes) {
|
|
108
|
+
return (bytes.contentBytes <= RESPONSE_BUDGET_BYTES && bytes.structuredBytes <= RESPONSE_BUDGET_BYTES);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* The largest byte limit at which the page fits the budget when every body
|
|
112
|
+
* longer than the limit is cut to it and every other body stays whole.
|
|
113
|
+
*
|
|
114
|
+
* Every body reaches each surface at least once, whole or cut, so a page cut
|
|
115
|
+
* at a limit carries at least the bodies' bytes at that limit on each surface.
|
|
116
|
+
* No limit whose body bytes alone exceed the budget can fit, and none is
|
|
117
|
+
* measured: every page `measure` renders is within the budget in body bytes,
|
|
118
|
+
* however long the bodies are.
|
|
119
|
+
*
|
|
120
|
+
* A page's size is not monotone in the limit: raising it to a body's length
|
|
121
|
+
* returns that body whole, which drops its cut disclosure, so a page can fit at
|
|
122
|
+
* a body's length and not one byte below. The limits are therefore searched as
|
|
123
|
+
* cut sets — the longest body alone, then the two longest — each tried at its
|
|
124
|
+
* lowest limit, where it cuts its bodies furthest. The answer is the first set
|
|
125
|
+
* that fits there, bisected within, where the size does grow with the limit.
|
|
126
|
+
* The first set the body bytes allow is measured, then the last; between them
|
|
127
|
+
* the sets are bisected, on the assumption that once one set fits every larger
|
|
128
|
+
* one does — where an earlier set also fits, a smaller limit is served. That is
|
|
129
|
+
* at most two measurements plus a bisection over the sets and one within.
|
|
130
|
+
*
|
|
131
|
+
* @param bodyBytes UTF-8 length of each cuttable body; 0 for an item without
|
|
132
|
+
* one. Each body must reach both surfaces, at least once, cut or whole.
|
|
133
|
+
* @param measure Both surfaces with every body longer than `limitBytes` cut to
|
|
134
|
+
* it. With the same bodies cut, a larger limit must never measure smaller.
|
|
135
|
+
* @returns 0 when even cutting every body to nothing leaves the page over
|
|
136
|
+
* budget — the smallest page cutting can make.
|
|
137
|
+
*/
|
|
138
|
+
export function largestFittingLimit(bodyBytes, measure) {
|
|
139
|
+
const lengths = [...new Set(bodyBytes)].filter((n) => n > 0).sort((a, b) => b - a);
|
|
140
|
+
const longest = lengths[0];
|
|
141
|
+
if (longest === undefined)
|
|
142
|
+
return 0;
|
|
143
|
+
/** The body bytes a page cut at `limit` carries on each surface, at least. */
|
|
144
|
+
const bodiesAt = (limit) => bodyBytes.reduce((sum, bytes) => sum + Math.min(bytes, limit), 0);
|
|
145
|
+
/** The highest limit whose body bytes fit; nothing above it can. */
|
|
146
|
+
let ceiling = 0;
|
|
147
|
+
for (let high = longest; ceiling < high;) {
|
|
148
|
+
const mid = Math.ceil((ceiling + high) / 2);
|
|
149
|
+
if (bodiesAt(mid) <= RESPONSE_BUDGET_BYTES)
|
|
150
|
+
ceiling = mid;
|
|
151
|
+
else
|
|
152
|
+
high = mid - 1;
|
|
153
|
+
}
|
|
154
|
+
/** Cut set `i` takes limits from its lowest, `lowestOf(i)`, up to one below its own length. */
|
|
155
|
+
const lowestOf = (i) => lengths[i + 1] ?? 0;
|
|
156
|
+
const fitsAtLowest = (i) => fitsBudget(measure(lowestOf(i)));
|
|
157
|
+
const last = lengths.length - 1;
|
|
158
|
+
let set = lengths.findIndex((_, i) => lowestOf(i) <= ceiling);
|
|
159
|
+
if (!fitsAtLowest(set)) {
|
|
160
|
+
if (set === last || !fitsAtLowest(last))
|
|
161
|
+
return 0;
|
|
162
|
+
/** `set` overflows at its lowest limit and `fitting` fits at its own. */
|
|
163
|
+
let fitting = last;
|
|
164
|
+
while (fitting - set > 1) {
|
|
165
|
+
const mid = Math.floor((set + fitting) / 2);
|
|
166
|
+
if (fitsAtLowest(mid))
|
|
167
|
+
fitting = mid;
|
|
168
|
+
else
|
|
169
|
+
set = mid;
|
|
170
|
+
}
|
|
171
|
+
set = fitting;
|
|
172
|
+
}
|
|
173
|
+
let lowest = lowestOf(set);
|
|
174
|
+
let highest = Math.min(lengths[set] - 1, ceiling);
|
|
175
|
+
while (lowest < highest) {
|
|
176
|
+
const mid = Math.ceil((lowest + highest) / 2);
|
|
177
|
+
if (fitsBudget(measure(mid)))
|
|
178
|
+
lowest = mid;
|
|
179
|
+
else
|
|
180
|
+
highest = mid - 1;
|
|
181
|
+
}
|
|
182
|
+
return lowest;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Which of a page's `count` prefixes to serve: the longest that fits the
|
|
186
|
+
* budget, or the first — the shortest the caller allows, served even over
|
|
187
|
+
* budget — when none does.
|
|
188
|
+
*
|
|
189
|
+
* Prefixes are measured from the longest down, each at most once and the first
|
|
190
|
+
* never. A prefix's overflow says nothing about a shorter one: what a response
|
|
191
|
+
* adds beyond its page, such as a cursor of the entries still unread, can shrink
|
|
192
|
+
* as the page shortens as well as grow.
|
|
193
|
+
*
|
|
194
|
+
* @param measure The whole response serving prefix `index`.
|
|
195
|
+
* @returns The index of the prefix to serve.
|
|
196
|
+
*/
|
|
197
|
+
export function longestFittingPrefix(count, measure) {
|
|
198
|
+
for (let index = count - 1; index > 0; index--) {
|
|
199
|
+
if (fitsBudget(measure(index)))
|
|
200
|
+
return index;
|
|
201
|
+
}
|
|
202
|
+
return 0;
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=response-budget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-budget.js","sourceRoot":"","sources":["../../../src/mcp-server/tools/response-budget.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,17 @@
|
|
|
5
5
|
import type { Context } from '@cyanheads/mcp-ts-core';
|
|
6
6
|
import { McpError } from '@cyanheads/mcp-ts-core/errors';
|
|
7
7
|
import type { AlgoliaResponse, HnFeedType, HnItem, HnUser } from './types.js';
|
|
8
|
+
/** One attempt's timeout, the body read included. */
|
|
9
|
+
export declare const REQUEST_TIMEOUT_MS = 10000;
|
|
10
|
+
/**
|
|
11
|
+
* The time budget of one tool call that chains batch fetches, counted from the
|
|
12
|
+
* call's start and shared by every request in it, retries and backoff included.
|
|
13
|
+
* One hung fetch's whole retry ladder (four attempts and three backoffs, at most
|
|
14
|
+
* 48.75 s with jitter) fits, so a single slow item settles as it would unbounded;
|
|
15
|
+
* the margin under the MCP SDK client's 60-second default request timeout covers
|
|
16
|
+
* transport and serialization.
|
|
17
|
+
*/
|
|
18
|
+
export declare const CALL_BUDGET_MS = 50000;
|
|
8
19
|
/** Decode numeric and named HTML entities. An undeclared name stays as typed. */
|
|
9
20
|
export declare function decodeHtmlEntities(text: string): string;
|
|
10
21
|
/**
|
|
@@ -17,7 +28,7 @@ export declare function decodeHtmlEntities(text: string): string;
|
|
|
17
28
|
*/
|
|
18
29
|
export declare function stripHtml(html: string): string;
|
|
19
30
|
/**
|
|
20
|
-
* {@link stripHtml} for an Algolia highlight
|
|
31
|
+
* {@link stripHtml} for an Algolia highlight value, which is the field's HTML
|
|
21
32
|
* with `<em>` inserted around matched terms: the `<em>…</em>` markers survive,
|
|
22
33
|
* including inside a link collapsed to its href.
|
|
23
34
|
*/
|
|
@@ -63,9 +74,10 @@ export declare function dateRangeToEpochSeconds(range: {
|
|
|
63
74
|
*
|
|
64
75
|
* - `item` — HN returned the item. It may be dead or deleted; callers filter.
|
|
65
76
|
* - `absent` — HN answered `null`: no item exists under this ID.
|
|
66
|
-
* - `failed` — the fetch failed after retries,
|
|
67
|
-
* earlier slot was rate-limited
|
|
68
|
-
*
|
|
77
|
+
* - `failed` — the fetch failed after retries, the batch's deadline cut it, or
|
|
78
|
+
* it never started because an earlier slot was rate-limited or the deadline
|
|
79
|
+
* had passed. `error` is the classified failure. A later call may succeed, so
|
|
80
|
+
* a caller reports the ID rather than dropping it.
|
|
69
81
|
*/
|
|
70
82
|
export type ItemSlot = {
|
|
71
83
|
kind: 'item';
|
|
@@ -82,8 +94,9 @@ export type ItemSlot = {
|
|
|
82
94
|
/**
|
|
83
95
|
* Settle one page of a batch for the paged tools: the live items in input
|
|
84
96
|
* order, and the IDs whose fetch failed. Dead, deleted, and absent slots drop
|
|
85
|
-
* out of both. When every slot failed, throws the
|
|
86
|
-
*
|
|
97
|
+
* out of both. When every slot failed, throws the page's dominant cause
|
|
98
|
+
* ({@link pageFailure}), since an empty success would read as a page with
|
|
99
|
+
* nothing on it.
|
|
87
100
|
*/
|
|
88
101
|
export declare function settlePage(slots: readonly ItemSlot[]): {
|
|
89
102
|
items: HnItem[];
|
|
@@ -91,18 +104,40 @@ export declare function settlePage(slots: readonly ItemSlot[]): {
|
|
|
91
104
|
};
|
|
92
105
|
/** True for the classified 429 `getJson` throws once retries are spent or the wait outlasts them. */
|
|
93
106
|
export declare function isRateLimited(err: unknown): err is McpError;
|
|
107
|
+
/**
|
|
108
|
+
* True for a failure a deadline caused: a retry ladder it cut short
|
|
109
|
+
* (`retry_deadline_exceeded`) or a {@link HnService.fetchItems} slot it left
|
|
110
|
+
* unstarted (`deadline_exceeded`). A hung fetch whose whole ladder ran out
|
|
111
|
+
* before the deadline is an ordinary `Timeout`, not a cut.
|
|
112
|
+
*/
|
|
113
|
+
export declare function isDeadlineCut(err: unknown): err is McpError;
|
|
114
|
+
/**
|
|
115
|
+
* The sentence, leading space included, a paged tool's failure notice adds when
|
|
116
|
+
* the call's time budget cut some of the failed `slots`; empty when it cut none.
|
|
117
|
+
*/
|
|
118
|
+
export declare function timeBudgetCutSentence(slots: readonly ItemSlot[]): string;
|
|
94
119
|
export declare class HnService {
|
|
95
120
|
private readonly concurrencyLimit;
|
|
121
|
+
/**
|
|
122
|
+
* Names this server, at the version it advertises, to the HN API and
|
|
123
|
+
* Algolia, in place of the runtime's default client string.
|
|
124
|
+
*/
|
|
125
|
+
private readonly userAgent;
|
|
96
126
|
constructor(concurrencyLimit: number);
|
|
97
127
|
/**
|
|
98
128
|
* GET a JSON document from an upstream, with retries around the full
|
|
99
129
|
* fetch-and-parse pipeline and both failure shapes — non-2xx status and
|
|
100
|
-
* HTML-instead-of-JSON — classified onto a contract reason.
|
|
130
|
+
* HTML-instead-of-JSON — classified onto a contract reason. Every attempt
|
|
131
|
+
* sends this server's `User-Agent`.
|
|
101
132
|
*
|
|
102
133
|
* `deadline`, a `Date.now()` instant, bounds every attempt and backoff
|
|
103
134
|
* together; past it the call fails with a `Timeout` whose `data.reason` is
|
|
104
135
|
* `retry_deadline_exceeded`, unless the last attempt failed on an HTTP
|
|
105
136
|
* status, which keeps its contract reason. A caller abort still wins over it.
|
|
137
|
+
*
|
|
138
|
+
* An attempt keeps its full request timeout even with less of the deadline
|
|
139
|
+
* left: the deadline's own signal then ends it, so a cut always reads as the
|
|
140
|
+
* deadline's rather than racing an attempt timer set to the same instant.
|
|
106
141
|
*/
|
|
107
142
|
private getJson;
|
|
108
143
|
/**
|
|
@@ -114,11 +149,15 @@ export declare class HnService {
|
|
|
114
149
|
* Fetch a user profile by username. Returns null when the user does not exist.
|
|
115
150
|
* The username is percent-encoded as a single path segment — an unencoded
|
|
116
151
|
* value containing `/` or dot-segments would otherwise escape the `/user/`
|
|
117
|
-
* route and resolve to a different Firebase resource.
|
|
152
|
+
* route and resolve to a different Firebase resource. `deadline` bounds its
|
|
153
|
+
* retries as in {@link HnService.getJson}.
|
|
154
|
+
*/
|
|
155
|
+
fetchUser(username: string, ctx: Context, deadline?: number): Promise<HnUser | null>;
|
|
156
|
+
/**
|
|
157
|
+
* Fetch a feed's ID array. Throws on upstream failure after retries.
|
|
158
|
+
* `deadline` bounds its retries as in {@link HnService.getJson}.
|
|
118
159
|
*/
|
|
119
|
-
|
|
120
|
-
/** Fetch a feed's ID array. Throws on upstream failure after retries. */
|
|
121
|
-
fetchFeed(type: HnFeedType, ctx: Context): Promise<number[]>;
|
|
160
|
+
fetchFeed(type: HnFeedType, ctx: Context, deadline?: number): Promise<number[]>;
|
|
122
161
|
/**
|
|
123
162
|
* Batch-fetch items with concurrency limiting: one {@link ItemSlot} per ID,
|
|
124
163
|
* in input order. A per-item failure after exhausted retries fills a
|
|
@@ -134,7 +173,11 @@ export declare class HnService {
|
|
|
134
173
|
* throttled upstream.
|
|
135
174
|
*
|
|
136
175
|
* With a `deadline` (a `Date.now()` instant), a fetch still retrying when it
|
|
137
|
-
* passes fails its slot with a `Timeout` instead of finishing its ladder
|
|
176
|
+
* passes fails its slot with a `Timeout` instead of finishing its ladder, and
|
|
177
|
+
* no fetch starts past it: every slot not yet started is reported `failed`
|
|
178
|
+
* with one `Timeout` (`data.reason: 'deadline_exceeded'`), or with the rate
|
|
179
|
+
* limit when one also stopped the batch. {@link isDeadlineCut} tells both
|
|
180
|
+
* kinds of cut slot from an ordinary failure.
|
|
138
181
|
*/
|
|
139
182
|
fetchItems(ids: readonly number[], ctx: Context, deadline?: number): Promise<ItemSlot[]>;
|
|
140
183
|
/**
|
|
@@ -153,6 +196,7 @@ export declare class HnService {
|
|
|
153
196
|
end?: string | undefined;
|
|
154
197
|
} | undefined;
|
|
155
198
|
minPoints?: number | undefined;
|
|
199
|
+
minComments?: number | undefined;
|
|
156
200
|
count: number;
|
|
157
201
|
page: number;
|
|
158
202
|
}, ctx: Context): Promise<AlgoliaResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hn-service.d.ts","sourceRoot":"","sources":["../../../src/services/hn/hn-service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"hn-service.d.ts","sourceRoot":"","sources":["../../../src/services/hn/hn-service.ts"],"names":[],"mappings":"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"}
|