@waniwani/kit 0.4.0 → 0.4.2

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
@@ -483,6 +483,54 @@ for `/api/*` does not exist under `.well-known`, and the build writes no static
483
483
  file there, so the request misses the filesystem phase and the catch-all already
484
484
  in the tree carries it to the server.
485
485
 
486
+ ### Every app serves a /docs page
487
+
488
+ `GET /docs` on the deployed server answers an HTML page that documents the MCP
489
+ server for a person reading it. That is the URL to give anyone who asks for an
490
+ app's API or MCP documentation, such as an integration form or a store
491
+ submission:
492
+
493
+ ```
494
+ https://<your-mcp-host>/docs
495
+ ```
496
+
497
+ The page is rendered by the runtime from the same definitions `registerApp`
498
+ hands the framework, so it cannot drift from what `tools/list` returns. It
499
+ shows:
500
+
501
+ - the app's `title`, `name` and version, and its `overview`
502
+ - the URL to connect an MCP client to, built from the request's host
503
+ (`x-forwarded-host` and `x-forwarded-proto` first, the way the framework
504
+ builds its own URLs)
505
+ - every tool, widget and flow the deployment registers, with its title, name,
506
+ description, the hints it carries (read-only, destructive, idempotent, open
507
+ world) and a table of its input parameters: name, type, whether it is
508
+ required, description and default, with nested object fields listed as
509
+ `plans[].id`
510
+
511
+ Under a surface, the page lists that surface's tools, widgets and flows and
512
+ shows that surface's `overview`, the same narrowing `tools/list` gets. The
513
+ template's own tools, such as `search`, are registered by the template rather
514
+ than by the app, and the page does not list them.
515
+
516
+ The page is one self-contained response: inline CSS, no script, no external
517
+ request, light and dark from the reader's system setting. Every value on it is
518
+ escaped, and its `Content-Security-Policy` allows no script at all. It answers
519
+ `GET` and `HEAD` at exactly `/docs`; no app endpoint can take the path, because
520
+ endpoints live under `/api/` and `/.well-known/`. On Vercel it reaches the
521
+ server through the catch-all route with no routing of its own.
522
+
523
+ It is served without authentication, so anyone with the URL reads the tool
524
+ list and the overview. An app whose server is private turns it off:
525
+
526
+ ```ts
527
+ // waniwani.config.ts
528
+ export default defineApp({
529
+ name: "oney",
530
+ docs: false,
531
+ });
532
+ ```
533
+
486
534
  ### Styling is Tailwind, and only Tailwind
487
535
 
488
536
  A widget styles itself with utility classes in its `ui.tsx`. There is no
@@ -763,8 +811,9 @@ the same mistake before a deploy, along with any id in a surface that matches
763
811
  no file.
764
812
 
765
813
  Endpoints under `api/` and `well-known/` are served on every surface; the model
766
- never sees them. The template's own `search` tool is registered before the app's
767
- and is not part of a surface: `search: { enabled: false }` is what turns it off.
814
+ never sees them. The `/docs` page follows the surface. The template's own
815
+ `search` tool is registered before the app's and is not part of a surface:
816
+ `search: { enabled: false }` is what turns it off.
768
817
 
769
818
  ### What the build check catches
770
819
 
@@ -689,6 +689,9 @@ export async function registerApp(server: McpServer): Promise<void> {
689
689
  styleDomains: ${list(styleDomains.map((origin) => `"${origin}"`))},
690
690
  // Narrows the lists above; absent when WANIWANI_SURFACE is unset.
691
691
  surface,
692
+ // The heading and overview of the /docs page, which \`docs: false\` turns off.
693
+ app,
694
+ docs: config.docs,
692
695
  });
693
696
  }
694
697
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../cli/codegen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../cli/codegen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EACN,MAAM,EACN,UAAU,EACV,SAAS,EACT,WAAW,EACX,YAAY,EACZ,MAAM,EACN,QAAQ,EACR,aAAa,GACb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAwC3D;;;;;;;;;;;;;GAaG;AACH,SAAS,QAAQ,CAAC,IAAY,EAAE,QAAyB,cAAc;IACtE,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACd,6BAA6B,KAAK,IAAI,IAAI,wCAAwC;YACjF,+DAA+D,CAChE,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,aAAa,GAAG,wBAAwB,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,cAAc,GAAG;IACtB,OAAO;IACP,eAAe;IACf,aAAa;IACb,2EAA2E;IAC3E,0EAA0E;IAC1E,yEAAyE;IACzE,UAAU;IACV,WAAW;IACX,mBAAmB;IACnB,gBAAgB;IAChB,WAAW;CACX,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,eAAe,GAAG;IACvB,4EAA4E;IAC5E,iDAAiD;IACjD,SAAS;IACT,OAAO;IACP,0EAA0E;IAC1E,qCAAqC;IACrC,SAAS;IACT,WAAW;CACX,CAAC;AAEF;;;GAGG;AACH,MAAM,qBAAqB,GAAG;IAC7B,sEAAsE;IACtE,mBAAmB;IACnB,YAAY;IACZ,6EAA6E;IAC7E,oEAAoE;IACpE,UAAU;IACV,UAAU;IACV,UAAU;IACV,kBAAkB;IAClB,OAAO;CACP,CAAC;AAEF;;;GAGG;AACH,MAAM,gBAAgB,GAAG,CAAC,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;AAEnF;;;;;;;;;;GAUG;AACH,MAAM,WAAW,GAAG,eAAe,CAAC;AACpC,MAAM,QAAQ,GAAG,CAAC,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;AAElF;;;;;;;GAOG;AACH,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;AAE9D;;;;;;GAMG;AACH;;;;GAIG;AACH,MAAM,IAAI,GAAa;IACtB,YAAY,EAAE;QACb,SAAS,EAAE;YACV,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC;YAC9B,GAAG,EAAE,4FAA4F;SACjG;KACD;IACD,eAAe,EAAE;QAChB,qBAAqB,EAAE;YACtB,OAAO,EAAE,QAAQ,CAAC,qBAAqB,EAAE,iBAAiB,CAAC;YAC3D,GAAG,EAAE,kHAAkH;SACvH;KACD;CACD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,GAA4D;IACvE,YAAY,EAAE;QACb,eAAe,EAAE;YAChB,GAAG,EAAE,kGAAkG;SACvG;KACD;CACD,CAAC;AAEF,gFAAgF;AAChF,MAAM,OAAO,GAAa;IACzB,YAAY,EAAE,EAAE;IAChB,eAAe,EAAE;QAChB,6EAA6E;QAC7E,wEAAwE;QACxE,qBAAqB;QACrB,GAAG,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,mCAAmC,EAAE;QACrE,OAAO,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,iCAAiC,EAAE;KACvE;CACD,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,QAAQ,GAAa;IAC1B,YAAY,EAAE;QACb,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,sCAAsC,EAAE;QACtF,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,+CAA+C,EAAE;KACzF;IACD,eAAe,EAAE;QAChB,gBAAgB,EAAE;YACjB,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC;YACnC,GAAG,EAAE,+CAA+C;SACpD;QACD,aAAa,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE;KAC1E;CACD,CAAC;AAEF;;;GAGG;AACH,MAAM,gBAAgB,GAAqD;IAC1E,SAAS,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,qCAAqC,EAAE;CAClF,CAAC;AAEF;;;;GAIG;AACH,MAAM,eAAe,GAAoC;IACxD,WAAW,EAAE;QACZ,GAAG,EAAE,4EAA4E;KACjF;CACD,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,GAA+B;IAC3C,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE;IACzE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;CACxE,CAAC;AAEF,wDAAwD;AACxD,SAAS,OAAO,CAAC,MAAc;IAC9B,OAAO,KAAK,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;AACvC,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IAC1B,WAAW;IACX,cAAc;IACd,cAAc;IACd,MAAM;IACN,QAAQ;IACR,MAAM;IACN,YAAY;IACZ,4EAA4E;IAC5E,oCAAoC;IACpC,KAAK;IACL,YAAY;IACZ,6EAA6E;IAC7E,8EAA8E;IAC9E,qDAAqD;IACrD,SAAS;IACT,aAAa;IACb,6EAA6E;IAC7E,8DAA8D;IAC9D,WAAW;IACX,SAAS;IACT,2EAA2E;IAC3E,0CAA0C;IAC1C,UAAU;IACV,WAAW;IACX,mBAAmB;IACnB,gBAAgB;IAChB,WAAW;CACX,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,SAAS,GAAG,CAAC,iBAAiB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC;AAEzE,gEAAgE;AAChE,SAAS,KAAK,CAAC,IAAY;IAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;AAC/F,CAAC;AAED,2CAA2C;AAC3C,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAW;IACzB,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9B,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YAClC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,CAAC;QACZ,CAAC;IACF,CAAC;AACF,CAAC;AAED,SAAS,KAAK,CAAC,IAAY,EAAE,QAAgB;IAC5C,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED,wEAAwE;AACxE,QAAQ,CAAC,CAAC,aAAa,CAAC,GAAW,EAAE,MAAM,GAAG,EAAE;IAC/C,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAClD,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YAClC,KAAK,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACP,MAAM,GAAG,CAAC;QACX,CAAC;IACF,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,SAAS,OAAO,CAAC,IAAY,EAAE,QAAkB;IAChD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QACpB,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAC3D,CAAC,CAAC,IAAI,KAAK,OAAO,CACnB,CAAC;AACH,CAAC;AAED,4DAA4D;AAC5D,SAAS,YAAY,CAAC,QAAkB;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACJ,OAAO,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAqB,CAAC;IACpE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,kBAAkB,aAAa,uBAAuB,MAAM,EAAE,CAAC,CAAC;IACjF,CAAC;AACF,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CACzB,QAAkB,EAClB,UAAsB;IAEtB,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAExC,OAAO;QACN,QAAQ;QACR,OAAO,EAAE;YACR,GAAG,cAAc;YACjB,GAAG,CAAC,QAAQ,EAAE,OAAO,IAAI,eAAe,CAAC;YACzC,GAAG,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,YAAY,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACpF;QACD,QAAQ,EAAE,QAAQ,EAAE,QAAQ,IAAI,gBAAgB;KAChD,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,WAAmB,EAAE,MAAc;IAC1D,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC;SAC7C,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAE3F,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC,MAAM,MAAM,GAAG,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,aAAa,CACZ,WAAW,EACX,GAAG,QAAQ,GAAG,MAAM,mCAAmC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAC/E,CAAC;IACF,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,YAAY,CACpB,QAAkB,EAClB,IAAY,EACZ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAA6D;IAExF,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAChD,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;YAAE,SAAS;QAErC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAErC,IAAI,MAAM,CAAC,QAAQ,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAChD,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;gBAAE,SAAS;YACtC,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC3B,IAAI,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7E,SAAS;YACV,CAAC;QACF,CAAC;QAED,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,sEAAsE;AACtE,SAAS,UAAU,CAAC,MAAc;IACjC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAE3B,IAAI,MAAM,EAAE,CAAC;YACZ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBACnB,MAAM,GAAG,KAAK,CAAC;gBACf,GAAG,IAAI,IAAI,CAAC;YACb,CAAC;YACD,SAAS;QACV,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACb,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBAClC,OAAO,GAAG,KAAK,CAAC;gBAChB,CAAC,EAAE,CAAC;YACL,CAAC;YACD,SAAS;QACV,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACd,GAAG,IAAI,IAAI,CAAC;YACZ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBACnB,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1B,CAAC;iBAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACzB,QAAQ,GAAG,KAAK,CAAC;YAClB,CAAC;YACD,SAAS;QACV,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAClB,QAAQ,GAAG,IAAI,CAAC;YAChB,GAAG,IAAI,IAAI,CAAC;YACZ,SAAS;QACV,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAClC,MAAM,GAAG,IAAI,CAAC;YACd,CAAC,EAAE,CAAC;YACJ,SAAS;QACV,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAClC,OAAO,GAAG,IAAI,CAAC;YACf,CAAC,EAAE,CAAC;YACJ,SAAS;QACV,CAAC;QACD,GAAG,IAAI,IAAI,CAAC;IACb,CAAC;IAED,qDAAqD;IACrD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAkB,EAAE,IAAY;IACzD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACd,mBAAmB,QAAQ,CAAC,MAAM,WAAW,IAAI,8BAA8B,CAC/E,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAoB,CAAC;AACnE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAC7B,MAAc,EACd,QAAgB,EAChB,MAAc,EACd,UAAkB;IAElB,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE;QAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7F,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;IAClD,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC,OAAO,CACpB,4CAA4C,EAC5C,CAAC,MAAc,EAAE,KAAa,EAAE,OAAgB,EAAE,EAAE;QACnD,MAAM,IAAI,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;QAC9F,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC;IAC7C,CAAC,CACD,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,SAAS,WAAW,CAAC,GAAW,EAAE,MAAc,EAAE,UAAkB;IACnE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QACnD,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,qBAAqB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC5E,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC5B,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAChC,CAAC;IACF,CAAC;AACF,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,IAAY,EAAE,EAAU;IAC9C,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC;YAAE,SAAS;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACpC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YACpC,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACP,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC7B,CAAC;IACF,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,GAAW,EAAE,KAAa;IAC9C,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,cAAc;QAAE,OAAO,KAAK,CAAC;IACpE,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,OAAe;IACvC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC;YAAE,SAAS;QAC3C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,uBAAuB,GAA6B;IACzD,8BAA8B,EAAE,CAAC,2BAA2B,CAAC;CAC7D,CAAC;AAEF,SAAS,oBAAoB,CAAC,QAAkB;IAC/C,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;QAC1D,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YACJ,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC,CAAC,MAAM,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACR,SAAS;QACV,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,KAAK,MAAM,SAAS,IAAI,uBAAuB,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC;IACF,CAAC;IAED,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,+EAA+E;AAE/E,SAAS,iBAAiB,CACzB,GAAQ,EACR,MAAc,EACd,EACC,OAAO,EACP,YAAY,EACZ,OAAO,GACmF;IAE3F,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7B,MAAM,OAAO,GAAG;QACf,6CAA6C;QAC7C,oDAAoD;QACpD,4DAA4D,OAAO,CAAC,MAAM,IAAI;QAC9E,uBAAuB,IAAI,uBAAuB;QAClD,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC;QAC1F,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CACjB,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,YAAY,CAAC,CAAC,IAAI,cAAc,CACnF;QACD,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC;QAC1F,6EAA6E;QAC7E,gEAAgE;QAChE,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CACnB,CAAC,CAAC,EAAE,EAAE,CACL,mBAAmB,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAC5F;KACD,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAElB,MAAM,IAAI,GAAG,CAAC,KAAe,EAAE,EAAE,CAChC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;IAErE,OAAO;;EAEN,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;8BAcU,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,OAAO,CAAC;;;;;;;;;;;;;;;;;WAiBrD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,IAAI,gBAAgB,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC7E,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,IAAI,kBAAkB,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;WACrF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;;;;eAI/C,IAAI,CAChB,GAAG,CAAC,SAAS,CAAC,GAAG,CAChB,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,IAAI,oBAAoB,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAC5E,CACD;+BAC4B,WAAW;kBACxB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;;;;;;;;CAQlE,CAAC;AACF,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAiB,EAAE,MAAc;IAC5D,gEAAgE;IAChE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC7C,MAAM,GAAG,GAAG,GAAG,IAAI,YAAY,MAAM,CAAC,IAAI,EAAE,CAAC;IAE7C,6EAA6E;IAC7E,4EAA4E;IAC5E,8EAA8E;IAC9E,sEAAsE;IACtE,EAAE;IACF,wEAAwE;IACxE,4EAA4E;IAC5E,mEAAmE;IACnE,wEAAwE;IACxE,4EAA4E;IAC5E,4EAA4E;IAC5E,EAAE;IACF,iFAAiF;IACjF,yEAAyE;IACzE,gEAAgE;IAChE,4EAA4E;IAC5E,4EAA4E;IAC5E,6CAA6C;IAC7C,OAAO,6BAA6B,MAAM,CAAC,IAAI;;yBAEvB,GAAG;;;CAG3B,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,QAAkB;IAC3C,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAEzD,OAAO;QACN,GAAG,IAAI;QACP,wEAAwE;QACxE,8DAA8D;QAC9D,OAAO,EAAE,oBAAoB;QAC7B,eAAe,EAAE;YAChB,GAAI,IAAI,CAAC,eAAuD;YAChE,iDAAiD;YACjD,cAAc,EAAE,KAAK;YACrB,kBAAkB,EAAE,KAAK;SACzB;QACD,sEAAsE;QACtE,2EAA2E;QAC3E,OAAO,EAAE,CAAC,KAAK,EAAE,sBAAsB,CAAC;QACxC,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,CAAC;KAC9C,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,aAAa,CAAC,QAAkB,EAAE,MAAc;IACxD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC9C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnC,MAAM,IAAI,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAgB,CAAC;IACpE,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC;IACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAE5D,8EAA8E;IAC9E,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACxE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACvE,MAAM,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IAEpC,OAAO;QACN,GAAG,IAAI;QACP,GAAG,MAAM;QACT,KAAK,EAAE;YACN,GAAG,IAAI,CAAC,KAAK;YACb,QAAQ,EAAE;gBACT,GAAG,QAAQ;gBACX,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACvD,8DAA8D;gBAC9D,IAAI,MAAM,CAAC,UAAU,KAAK;gBAC1B,gBAAgB;gBAChB,eAAe;gBACf,GAAG,QAAQ;aACX;SACD;KACD,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAC3B,GAAQ,EACR,cAA2C,EAC3C,QAAkB,EAClB,MAAc;IAEd,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACxD,MAAM,SAAS,GAAe,EAAE,CAAC;IAEjC;;;;OAIG;IACH,MAAM,KAAK,GAAG,CACb,IAAqB,EACrB,OAA+B,EACN,EAAE;QAC3B,MAAM,MAAM,GAA2B,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;QAErE,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACzE,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;gBAChD,SAAS,CAAC,IAAI,CAAC;oBACd,IAAI;oBACJ,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC;oBACjB,GAAG,EAAE,2DAA2D,OAAO,EAAE;oBACzE,QAAQ,EAAE,IAAI;iBACd,CAAC,CAAC;gBACH,SAAS;YACV,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;gBAC9B,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QACxB,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC5E,IAAI,MAAM,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC3B,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;YACvB,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,yEAAyE;QACzE,yEAAyE;QACzE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC7E,IAAI,MAAM,CAAC,IAAI,CAAC;oBAAE,SAAS;gBAC3B,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;gBACvB,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAC5C,CAAC;QACF,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAClE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;gBACjC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;gBAChD,SAAS;YACV,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;gBAC7C,SAAS,CAAC,IAAI,CAAC;oBACd,IAAI;oBACJ,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC;oBAChB,GAAG,EAAE,SAAS,OAAO,CAAC,IAAI,CAAC,2BAA2B,GAAG,EAAE;oBAC3D,QAAQ,EAAE,IAAI;iBACd,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,OAAO,GAA2B,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC5D,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACzE,IAAI,OAAO,CAAC,IAAI,CAAC;YAAE,SAAS;QAC5B,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QACxB,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;QAC/D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,SAAS;QAC7B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,yEAAyE;IACzE,0EAA0E;IAC1E,kCAAkC;IAClC,MAAM,WAAW,GAA2B,EAAE,GAAG,cAAc,EAAE,YAAY,EAAE,CAAC;IAChF,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,WAAW,CAAC;IAC7D,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;IAE7D,6EAA6E;IAC7E,+EAA+E;IAC/E,IAAI,eAAe,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAChE,eAAe,CAAC,eAAe,CAAC,GAAG,IAAI,eAAe,EAAE,CAAC;QACzD,SAAS,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,UAAU;YAChB,EAAE,EAAE,IAAI,eAAe,EAAE;YACzB,GAAG,EAAE,2DAA2D;SAChE,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,cAAc,EAAE,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAExD,OAAO;QACN,WAAW,EAAE;YACZ,GAAG,IAAI;YACP,uEAAuE;YACvE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ;YAC9C,OAAO,EAAE,cAAc,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO;YAChD,WAAW,EAAE,SAAS;YACtB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,QAAQ;YACd,OAAO;YACP,YAAY,EAAE,KAAK,CAAC,cAAc,EAAE,eAAe,CAAC;YACpD,eAAe,EAAE,KAAK,CAAC,iBAAiB,EAAE,cAAc,EAAE,eAAe,IAAI,EAAE,CAAC;SAChF;QACD,SAAS;KACT,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,QAAkB;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACd,mBAAmB,QAAQ,CAAC,MAAM,WAAW,IAAI,CAAC,IAAI,KAAK;YAC1D,mDAAmD,CACpD,CAAC;IACH,CAAC;IAED,IAAI,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO;IAE9D,MAAM,IAAI,KAAK,CACd,mBAAmB,QAAQ,CAAC,MAAM,gBAAgB,IAAI,CAAC,MAAM,qBAAqB;QACjF,0EAA0E;QAC1E,gBAAgB,IAAI,CAAC,IAAI,OAAO;QAChC,2DAA2D;QAC3D,qCAAqC;QACrC,qEAAqE;QACrE,+DAA+D;QAC/D,YAAY;QACZ,aAAa,IAAI,CAAC,MAAM,wCAAwC,CACjE,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,SAAS,cAAc,CAAC,IAAY;IACnC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAC1C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAe,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACR,oEAAoE;QACpE,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,OAAe;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,MAAM,MAAM,GAAG,IAAI,GAAG,CACrB,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CACrF,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,MAAM,CAC/C,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAChD,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACjC,MAAM,MAAM,GAAG,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,aAAa,CAAC,IAAI,EAAE,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7F,CAAC;AAED,+EAA+E;AAE/E;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,QAAkB;IAClE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEnE,MAAM,YAAY,GAAG,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAC3D,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,KAAK,YAAY,CACtF,CAAC;IAEF,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACpE,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAC9B,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CACvB,GAAQ,EACR,EACC,QAAQ,EACR,MAAM,EAAE,UAAU,GAAG,OAAO,EAC5B,MAAM,MAC4D,EAAE;IAErE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzF,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,QAAgB,EAAE,EAAE;QAC/C,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAAE,SAAS;QACnD,MAAM,IAAI,KAAK,CACd,mBAAmB,QAAQ,CAAC,MAAM,WAAW,IAAI,KAAK;YACrD,mDAAmD,CACpD,CAAC;IACH,CAAC;IAED,UAAU,CAAC,QAAQ,CAAC,CAAC;IAErB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAEhF,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAErC,sEAAsE;IACtE,2EAA2E;IAC3E,wEAAwE;IACxE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,MAAM,GAAG,GAAG,KAAK,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;IAC/C,4EAA4E;IAC5E,0CAA0C;IAC1C,MAAM,OAAO,GAAG,QAAQ;QACvB,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,YAAY,EAAE,KAAK,EAAE,GAAG,GAAG,WAAW,EAAE;QAC1D,CAAC,CAAC,EAAE,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;IAE9D,IAAI,QAAQ,EAAE,CAAC;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,MAAM,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,4EAA4E;IAC5E,yEAAyE;IACzE,6EAA6E;IAC7E,sEAAsE;IACtE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjE,uEAAuE;IACvE,6CAA6C;IAC7C,IAAI,QAAQ,EAAE,CAAC;QACd,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,oDAAoD;IACpD,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEjF,yEAAyE;IACzE,uEAAuE;IACvE,qEAAqE;IACrE,yEAAyE;IACzE,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;QACzD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;YAC1C,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YAChC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;IACF,CAAC;IAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC1D,MAAM,cAAc,GAAG,UAAU,CAAC,kBAAkB,CAAC;QACpD,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAqB;QAC5E,CAAC,CAAC,SAAS,CAAC;IAEb,IAAI,CACH,iBAAiB,EACjB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE;QAC9B,OAAO;QACP,YAAY,EAAE,oBAAoB,CAAC,QAAQ,CAAC;QAC5C,OAAO,EAAE,cAAc,EAAE,OAAO;KAChC,CAAC,CACF,CAAC;IACF,4EAA4E;IAC5E,qEAAqE;IACrE,oEAAoE;IACpE,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC;IAC1E,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;QAC3C,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QACpE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,aAAa,MAAM,CAAC,IAAI,MAAM,EAAE,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,mBAAmB,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAE9F,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAClF,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAElE,wEAAwE;IACxE,oEAAoE;IACpE,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACrF,CAAC;IAED,2EAA2E;IAC3E,0EAA0E;IAC1E,IAAI,CACH,gBAAgB,EAChB,GAAG,IAAI,CAAC,SAAS,CAChB;QACC,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;QAC9C,iEAAiE;QACjE,+DAA+D;QAC/D,+DAA+D;QAC/D,iEAAiE;QACjE,iDAAiD;QACjD,EAAE;QACF,8DAA8D;QAC9D,iEAAiE;QACjE,gEAAgE;QAChE,gEAAgE;QAChE,6CAA6C;QAC7C,GAAG,EAAE,eAAe;QACpB,IAAI,EAAE,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CACrC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAC/D,CACD;QACD,KAAK,EAAE,MAAM,CAAC,WAAW,CACxB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAChD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,IAAuB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CACtF,CACD;QACD,4DAA4D;QAC5D,iEAAiE;QACjE,6DAA6D;QAC7D,8DAA8D;QAC9D,qDAAqD;QACrD,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACpE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAC5B;QACD,6DAA6D;QAC7D,6DAA6D;QAC7D,8BAA8B;QAC9B,KAAK;KACL,EACD,IAAI,EACJ,CAAC,CACD,IAAI,CACL,CAAC;IAEF,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QAC5B,sEAAsE;QACtE,wDAAwD;QACxD,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO;QACN,MAAM,EAAE,IAAI;QACZ,OAAO;QACP,SAAS;QACT,YAAY;QACZ,KAAK;QACL,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC;KAC3B,CAAC;AACH,CAAC"}
package/dist/docs.d.ts ADDED
@@ -0,0 +1,51 @@
1
+ /**
2
+ * The `/docs` page every app serves: a human-readable account of what its MCP
3
+ * server registers, for anyone who needs a URL to point at rather than an MCP
4
+ * client to connect with.
5
+ *
6
+ * It is rendered from the same definitions `registerApp` hands the framework,
7
+ * after surface narrowing, so the page lists what this deployment's `tools/list`
8
+ * lists from the app and nothing it does not.
9
+ *
10
+ * The markup is built at runtime and sent as a response, never written into an
11
+ * app's files. Every interpolated value goes through `html`, which escapes it
12
+ * unless it is a fragment `html` itself produced, so a description holding
13
+ * markup reaches the page as text.
14
+ */
15
+ import type { RequestHandler } from "express";
16
+ /** What the page says about the server itself. */
17
+ export type DocsApp = {
18
+ name: string;
19
+ title?: string;
20
+ version?: string;
21
+ /** The overview the server hands the model at `initialize`, surface applied. */
22
+ instructions?: string;
23
+ };
24
+ /** The MCP annotations a registered tool carries, as far as the page shows them. */
25
+ export type DocsAnnotations = {
26
+ readOnlyHint?: boolean;
27
+ destructiveHint?: boolean;
28
+ openWorldHint?: boolean;
29
+ idempotentHint?: boolean;
30
+ };
31
+ /** One registered tool, widget or flow. */
32
+ export type DocsEntry = {
33
+ name: string;
34
+ title?: string;
35
+ description?: string;
36
+ /** A Zod shape, or a Zod object schema: whatever the tool registered as `inputSchema`. */
37
+ input?: unknown;
38
+ annotations?: DocsAnnotations;
39
+ };
40
+ export type DocsModel = {
41
+ app?: DocsApp;
42
+ tools: DocsEntry[];
43
+ widgets: DocsEntry[];
44
+ flows: DocsEntry[];
45
+ };
46
+ /**
47
+ * The `GET /docs` handler. The page carries no script, and its CSP says so, so
48
+ * even markup that escaped escaping could not run.
49
+ */
50
+ export declare function docsHandler(model: DocsModel): RequestHandler;
51
+ //# sourceMappingURL=docs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../src/docs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAW,cAAc,EAAE,MAAM,SAAS,CAAC;AAGvD,kDAAkD;AAClD,MAAM,MAAM,OAAO,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,oFAAoF;AACpF,MAAM,MAAM,eAAe,GAAG;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,2CAA2C;AAC3C,MAAM,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0FAA0F;IAC1F,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,eAAe,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACvB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,KAAK,EAAE,SAAS,EAAE,CAAC;CACnB,CAAC;AAiSF;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,cAAc,CA6C5D"}
package/dist/docs.js ADDED
@@ -0,0 +1,296 @@
1
+ /**
2
+ * The `/docs` page every app serves: a human-readable account of what its MCP
3
+ * server registers, for anyone who needs a URL to point at rather than an MCP
4
+ * client to connect with.
5
+ *
6
+ * It is rendered from the same definitions `registerApp` hands the framework,
7
+ * after surface narrowing, so the page lists what this deployment's `tools/list`
8
+ * lists from the app and nothing it does not.
9
+ *
10
+ * The markup is built at runtime and sent as a response, never written into an
11
+ * app's files. Every interpolated value goes through `html`, which escapes it
12
+ * unless it is a fragment `html` itself produced, so a description holding
13
+ * markup reaches the page as text.
14
+ */
15
+ import { z } from "zod";
16
+ // ------------------------------------------------------------------- escaping
17
+ /** Markup `html` produced, and so already escaped. */
18
+ class Html {
19
+ value;
20
+ constructor(value) {
21
+ this.value = value;
22
+ }
23
+ }
24
+ const ENTITIES = {
25
+ "&": "&amp;",
26
+ "<": "&lt;",
27
+ ">": "&gt;",
28
+ '"': "&quot;",
29
+ "'": "&#39;",
30
+ };
31
+ function escapeText(value) {
32
+ return value.replace(/[&<>"']/g, (char) => ENTITIES[char]);
33
+ }
34
+ function flatten(part) {
35
+ if (part instanceof Html)
36
+ return part.value;
37
+ if (Array.isArray(part))
38
+ return part.map(flatten).join("");
39
+ if (part === null || part === undefined || part === false || part === true)
40
+ return "";
41
+ return escapeText(String(part));
42
+ }
43
+ /** Tagged template: literal markup passes through, every interpolation is escaped. */
44
+ function html(strings, ...parts) {
45
+ let out = strings[0];
46
+ for (let i = 0; i < parts.length; i++) {
47
+ out += flatten(parts[i]) + strings[i + 1];
48
+ }
49
+ return new Html(out);
50
+ }
51
+ /** Nested object fields are listed as `parent.child` down to this depth. */
52
+ const MAX_DEPTH = 3;
53
+ function isZodSchema(value) {
54
+ return typeof value === "object" && value !== null && "_zod" in value;
55
+ }
56
+ /**
57
+ * The JSON Schema a client receives for this input, read the way the MCP SDK
58
+ * reads it for `tools/list`: the input side of any transform or default.
59
+ *
60
+ * `null` when the schema cannot be represented, so the page says so for that
61
+ * one entry instead of failing to render.
62
+ */
63
+ function inputSchema(input) {
64
+ if (input === undefined)
65
+ return {};
66
+ try {
67
+ const schema = isZodSchema(input) ? input : z.object(input);
68
+ return z.toJSONSchema(schema, { io: "input", unrepresentable: "any" });
69
+ }
70
+ catch {
71
+ return null;
72
+ }
73
+ }
74
+ /** A schema value as JSON, or as plain text for one JSON cannot hold. */
75
+ function literal(value) {
76
+ try {
77
+ return JSON.stringify(value) ?? String(value);
78
+ }
79
+ catch {
80
+ return String(value);
81
+ }
82
+ }
83
+ function typeLabel(schema) {
84
+ if (schema.const !== undefined)
85
+ return literal(schema.const);
86
+ if (Array.isArray(schema.enum))
87
+ return schema.enum.map(literal).join(" | ");
88
+ const union = schema.anyOf ?? schema.oneOf;
89
+ if (union)
90
+ return union.map(typeLabel).join(" | ");
91
+ if (schema.type === "array") {
92
+ const item = typeLabel(schema.items ?? {});
93
+ return item.includes(" | ") ? `(${item})[]` : `${item}[]`;
94
+ }
95
+ if (Array.isArray(schema.type))
96
+ return schema.type.join(" | ");
97
+ if (schema.type)
98
+ return schema.format ? `${schema.type} (${schema.format})` : schema.type;
99
+ return schema.$ref ? "object" : "any";
100
+ }
101
+ /** The object schema whose fields are listed under a parameter, if it has one. */
102
+ function nestedObject(schema) {
103
+ if (schema.properties)
104
+ return { schema, suffix: "." };
105
+ if (schema.type === "array" && schema.items?.properties) {
106
+ return { schema: schema.items, suffix: "[]." };
107
+ }
108
+ return undefined;
109
+ }
110
+ function parameters(schema, prefix = "", depth = 0) {
111
+ const required = new Set(schema.required ?? []);
112
+ return Object.entries(schema.properties ?? {}).flatMap(([key, property]) => {
113
+ const name = prefix + key;
114
+ const row = {
115
+ name,
116
+ type: typeLabel(property),
117
+ required: required.has(key),
118
+ description: property.description,
119
+ default: property.default,
120
+ };
121
+ const nested = depth < MAX_DEPTH ? nestedObject(property) : undefined;
122
+ return nested ? [row, ...parameters(nested.schema, name + nested.suffix, depth + 1)] : [row];
123
+ });
124
+ }
125
+ const SECTIONS = [
126
+ { kind: "tool", key: "tools", heading: "Tools" },
127
+ { kind: "widget", key: "widgets", heading: "Widgets" },
128
+ { kind: "flow", key: "flows", heading: "Flows" },
129
+ ];
130
+ const HINTS = [
131
+ { key: "readOnlyHint", label: "read-only" },
132
+ { key: "destructiveHint", label: "destructive" },
133
+ { key: "idempotentHint", label: "idempotent" },
134
+ { key: "openWorldHint", label: "open world" },
135
+ ];
136
+ function anchor(kind, name) {
137
+ return `${kind}-${name}`;
138
+ }
139
+ function parameterTable(entry) {
140
+ const schema = inputSchema(entry.input);
141
+ if (schema === null) {
142
+ return html `<p class="muted">The input schema cannot be shown as JSON Schema.</p>`;
143
+ }
144
+ const rows = parameters(schema);
145
+ if (rows.length === 0)
146
+ return html `<p class="muted">No parameters.</p>`;
147
+ return html `<div class="params"><table>
148
+ <thead><tr><th>Parameter</th><th>Type</th><th>Required</th><th>Description</th></tr></thead>
149
+ <tbody>${rows.map((row) => html `
150
+ <tr><td><code>${row.name}</code></td><td><code>${row.type}</code></td><td>${row.required ? "yes" : "no"}</td><td>${row.description ?? ""}${row.default !== undefined
151
+ ? html `${row.description ? " " : ""}<span class="muted">Default: <code>${literal(row.default)}</code></span>`
152
+ : ""}</td></tr>`)}
153
+ </tbody>
154
+ </table></div>`;
155
+ }
156
+ function entryCard(kind, entry) {
157
+ const hints = HINTS.filter(({ key }) => entry.annotations?.[key] === true);
158
+ return html `
159
+ <article id="${anchor(kind, entry.name)}">
160
+ <h3>${entry.title ?? entry.name}</h3>
161
+ <p class="meta"><code>${entry.name}</code>${hints.map(({ label }) => html ` <span class="badge badge-${label.replace(" ", "-")}">${label}</span>`)}</p>
162
+ ${entry.description ? html `<p class="text">${entry.description}</p>` : ""}
163
+ ${parameterTable(entry)}
164
+ </article>`;
165
+ }
166
+ const STYLE = `
167
+ :root{color-scheme:light dark;--bg:#fff;--fg:#1a1a1a;--muted:#5f6368;--line:#e3e3e3;--card:#fafafa;--code:#f1f1f1;--accent:#2d5bd7;--warn:#b3261e}
168
+ @media (prefers-color-scheme:dark){:root{--bg:#121212;--fg:#ececec;--muted:#a0a4a8;--line:#2e2e2e;--card:#1a1a1a;--code:#262626;--accent:#8ab0ff;--warn:#f2b8b5}}
169
+ *{box-sizing:border-box}
170
+ body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif}
171
+ main{max-width:880px;margin:0 auto;padding:40px 16px 64px}
172
+ h1{font-size:28px;margin:0 0 4px}h2{font-size:20px;margin:40px 0 12px;padding-bottom:6px;border-bottom:1px solid var(--line)}h3{font-size:17px;margin:0 0 4px}
173
+ a{color:var(--accent)}
174
+ code,pre{font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}
175
+ code{background:var(--code);padding:1px 5px;border-radius:4px;overflow-wrap:anywhere}
176
+ pre{background:var(--code);padding:12px 14px;border-radius:8px;overflow-x:auto;margin:8px 0}
177
+ pre code{background:none;padding:0}
178
+ .muted,.meta{color:var(--muted)}
179
+ .text{white-space:pre-wrap}
180
+ article{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin:12px 0}
181
+ .badge{display:inline-block;font-size:12px;border:1px solid var(--line);border-radius:999px;padding:0 8px;margin-left:4px}
182
+ .badge-destructive{color:var(--warn);border-color:currentColor}
183
+ .params{overflow-x:auto;margin-top:8px}
184
+ table{width:100%;border-collapse:collapse;font-size:14px}
185
+ th,td{text-align:left;vertical-align:top;padding:6px 10px 6px 0;border-top:1px solid var(--line)}
186
+ th{font-weight:600;border-top:none}
187
+ td code{overflow-wrap:normal}
188
+ td:first-child code{white-space:nowrap}
189
+ nav ul{margin:8px 0 0;padding-left:20px}
190
+ footer{margin-top:48px;font-size:13px}
191
+ `;
192
+ /**
193
+ * Everything on the page except the server's own URL, which depends on the
194
+ * request. Rendered once, because the definitions do not change while the
195
+ * server runs.
196
+ */
197
+ function renderBody(model) {
198
+ const title = model.app?.title ?? model.app?.name ?? "MCP server";
199
+ const present = SECTIONS.filter(({ key }) => model[key].length > 0);
200
+ const head = html `<header>
201
+ <h1>${title}</h1>
202
+ <p class="meta">${model.app?.name ? html `<code>${model.app.name}</code>` : ""}${model.app?.version ? html ` version ${model.app.version}` : ""}</p>
203
+ </header>`;
204
+ const tail = html `
205
+ ${model.app?.instructions
206
+ ? html `<section>
207
+ <h2>Overview</h2>
208
+ <p class="text">${model.app.instructions}</p>
209
+ </section>`
210
+ : ""}
211
+ ${present.length > 0
212
+ ? html `<nav>
213
+ <h2>Contents</h2>
214
+ <ul>${present.map(({ kind, key, heading }) => html `
215
+ <li>${heading} (${model[key].length})<ul>${model[key].map((entry) => html `<li><a href="#${anchor(kind, entry.name)}">${entry.title ?? entry.name}</a></li>`)}</ul></li>`)}
216
+ </ul>
217
+ </nav>`
218
+ : html `<p class="muted">This server registers no tools, widgets or flows of its own.</p>`}
219
+ ${present.map(({ kind, key, heading }) => html `
220
+ <section>
221
+ <h2>${heading}</h2>
222
+ ${model[key].map((entry) => entryCard(kind, entry))}
223
+ </section>`)}
224
+ <footer class="muted">Generated from the definitions this server registers.
225
+ Widgets are tools that also render a view in hosts that support MCP Apps.
226
+ Flows are tools that guide a multi-step conversation.</footer>`;
227
+ return { title, head, tail };
228
+ }
229
+ /**
230
+ * This server's public origin, the way the framework resolves it for view URLs
231
+ * and OAuth metadata: `x-forwarded-host` first, then `Host`, first hop of a
232
+ * forwarded chain only. A forwarded host with no forwarded protocol is https;
233
+ * a bare `localhost` or `127.0.0.1` host is http.
234
+ */
235
+ function serverOrigin(req) {
236
+ const firstHop = (value) => value?.split(",")[0]?.trim();
237
+ const forwardedHost = firstHop(req.get("x-forwarded-host"));
238
+ if (forwardedHost) {
239
+ const proto = firstHop(req.get("x-forwarded-proto")) || "https";
240
+ return `${proto}://${forwardedHost}`;
241
+ }
242
+ const host = req.get("host");
243
+ if (host) {
244
+ const local = ["localhost:", "127.0.0.1:"].some((prefix) => host.startsWith(prefix));
245
+ return `${local ? "http" : "https"}://${host}`;
246
+ }
247
+ return `http://localhost:${process.env.__PORT || "3000"}`;
248
+ }
249
+ /**
250
+ * The `GET /docs` handler. The page carries no script, and its CSP says so, so
251
+ * even markup that escaped escaping could not run.
252
+ */
253
+ export function docsHandler(model) {
254
+ // A definition the page cannot render costs the page, never the server start.
255
+ let body;
256
+ try {
257
+ body = renderBody(model);
258
+ }
259
+ catch (error) {
260
+ console.error("[waniwani] the /docs page could not be rendered:", error);
261
+ return (_req, res) => {
262
+ res.status(500).type("text/plain").send("The documentation page could not be rendered.");
263
+ };
264
+ }
265
+ const { title, head, tail } = body;
266
+ return (req, res) => {
267
+ const endpoint = `${serverOrigin(req)}/mcp`;
268
+ const page = html `<!doctype html>
269
+ <html lang="en">
270
+ <head>
271
+ <meta charset="utf-8">
272
+ <meta name="viewport" content="width=device-width, initial-scale=1">
273
+ <title>${title} · MCP documentation</title>
274
+ <style>${new Html(STYLE)}</style>
275
+ </head>
276
+ <body>
277
+ <main>
278
+ ${head}
279
+ <section>
280
+ <h2>Connect</h2>
281
+ <p>Add this URL to any MCP client as a remote server. It speaks MCP over Streamable HTTP, with JSON-RPC requests sent as <code>POST</code>.</p>
282
+ <pre><code>${endpoint}</code></pre>
283
+ </section>
284
+ ${tail}
285
+ </main>
286
+ </body>
287
+ </html>
288
+ `;
289
+ res.setHeader("Content-Type", "text/html; charset=utf-8");
290
+ res.setHeader("Content-Security-Policy", "default-src 'none'; style-src 'unsafe-inline'; base-uri 'none'; form-action 'none'");
291
+ res.setHeader("X-Content-Type-Options", "nosniff");
292
+ res.setHeader("Cache-Control", "public, max-age=300");
293
+ res.send(page.value);
294
+ };
295
+ }
296
+ //# sourceMappingURL=docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs.js","sourceRoot":"","sources":["../src/docs.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -194,6 +194,13 @@ export type AppConfig = {
194
194
  * empty serves everything; an undeclared name refuses to start.
195
195
  */
196
196
  surfaces?: Record<string, SurfaceConfig>;
197
+ /**
198
+ * Serve the HTML page at `/docs` that lists this deployment's tools,
199
+ * widgets and flows, their parameters, and the URL to connect an MCP client
200
+ * to. On by default, and served without authentication: `false` is for a
201
+ * server whose tool list should only reach a client that signed in.
202
+ */
203
+ docs?: boolean;
197
204
  };
198
205
  export declare function defineApp(config: AppConfig): AppConfig;
199
206
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAkMH,MAAM,UAAU,SAAS,CAAC,MAAiB;IAC1C,OAAO,MAAM,CAAC;AACf,CAAC;AAwBD,MAAM,UAAU,UAAU,CACzB,GAAyB;IAEzB,OAAO,GAAG,CAAC;AACZ,CAAC;AAsDD,MAAM,UAAU,YAAY,CAAkB,GAAwB;IACrE,OAAO,GAAG,CAAC;AACZ,CAAC;AAmDD,MAAM,UAAU,cAAc,CAAC,GAAuB;IACrD,OAAO,GAAG,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAyMH,MAAM,UAAU,SAAS,CAAC,MAAiB;IAC1C,OAAO,MAAM,CAAC;AACf,CAAC;AAwBD,MAAM,UAAU,UAAU,CACzB,GAAyB;IAEzB,OAAO,GAAG,CAAC;AACZ,CAAC;AAsDD,MAAM,UAAU,YAAY,CAAkB,GAAwB;IACrE,OAAO,GAAG,CAAC;AACZ,CAAC;AAmDD,MAAM,UAAU,cAAc,CAAC,GAAuB;IACrD,OAAO,GAAG,CAAC;AACZ,CAAC"}
package/dist/server.d.ts CHANGED
@@ -11,6 +11,7 @@
11
11
  * hands them to `registerApp()`. Nothing else.
12
12
  */
13
13
  import type { McpServer } from "skybridge/server";
14
+ import { type DocsApp } from "./docs.js";
14
15
  import type { EndpointDefinition, Shape, SurfaceConfig, ToolHints, WidgetCsp } from "./index.js";
15
16
  export { resolveSurface } from "./surface.js";
16
17
  /**
@@ -68,6 +69,14 @@ export type Manifest = {
68
69
  styleDomains?: string[];
69
70
  /** From `resolveSurface()`. Absent: the whole manifest is registered. */
70
71
  surface?: SurfaceConfig;
72
+ /**
73
+ * The server's identity, for the `/docs` page's heading and overview. The
74
+ * generated `waniwani.ts` passes the object it constructs the server from, so
75
+ * `instructions` is the overview the active surface serves.
76
+ */
77
+ app?: DocsApp;
78
+ /** `false` leaves `/docs` unmounted. Anything else serves it. */
79
+ docs?: boolean;
71
80
  };
72
81
  /**
73
82
  * Register an app's tools, widgets and flows onto a server the template built.
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAsB,MAAM,kBAAkB,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIjG,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;;;GAIG;AACH,KAAK,iBAAiB,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;CAC/B,CAAC;AAEF,KAAK,mBAAmB,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC;IAClC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;CACjC,CAAC;AAEF,+EAA+E;AAC/E,MAAM,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IAEb,MAAM,EAAE,GAAG,CAAC;IAEZ,OAAO,EAAE,GAAG,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACtB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,iBAAiB,CAAA;KAAE,CAAC,CAAC;IACvD,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,mBAAmB,CAAA;KAAE,CAAC,CAAC;IAC3D,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,kBAAkB,CAAA;KAAE,CAAC,CAAC;IAC7D;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,yEAAyE;IACzE,OAAO,CAAC,EAAE,aAAa,CAAC;CACxB,CAAC;AA2JF;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAyG3F"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAsB,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,KAAK,OAAO,EAA+B,MAAM,WAAW,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIjG,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;;;GAIG;AACH,KAAK,iBAAiB,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;CAC/B,CAAC;AAEF,KAAK,mBAAmB,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC;IAClC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;CACjC,CAAC;AAEF,+EAA+E;AAC/E,MAAM,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IAEb,MAAM,EAAE,GAAG,CAAC;IAEZ,OAAO,EAAE,GAAG,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACtB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,iBAAiB,CAAA;KAAE,CAAC,CAAC;IACvD,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,mBAAmB,CAAA;KAAE,CAAC,CAAC;IAC3D,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,kBAAkB,CAAA;KAAE,CAAC,CAAC;IAC7D;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,yEAAyE;IACzE,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,iEAAiE;IACjE,IAAI,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AA6LF;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAgH3F"}
package/dist/server.js CHANGED
@@ -12,6 +12,7 @@
12
12
  */
13
13
  import cors from "cors";
14
14
  import express, {} from "express";
15
+ import { docsHandler } from "./docs.js";
15
16
  import { narrow, SURFACE_ENV } from "./surface.js";
16
17
  // The generated `waniwani.ts` imports this from `@waniwani/kit/server`.
17
18
  export { resolveSurface } from "./surface.js";
@@ -160,6 +161,31 @@ function registerEndpoints(server, endpoints) {
160
161
  server.use(path, ...chain);
161
162
  }
162
163
  }
164
+ /**
165
+ * What `/docs` lists: each definition as it is registered below, annotations
166
+ * included, so the page and `tools/list` agree.
167
+ */
168
+ function docsModel(served) {
169
+ const entry = (name, def, input, defaults) => ({
170
+ name,
171
+ title: def.title,
172
+ description: def.description,
173
+ input,
174
+ annotations: annotations(def.title, def.hints, defaults),
175
+ });
176
+ return {
177
+ app: served.app,
178
+ tools: served.tools.map(({ name, def }) => entry(name, def, def.input, { readOnly: false })),
179
+ widgets: served.widgets.map(({ name, def }) => entry(name, def, def.data, { readOnly: true })),
180
+ flows: served.flows.map((flow) => ({
181
+ name: flow.name,
182
+ title: flow.config?.title ?? flow.config?.annotations?.title,
183
+ description: flow.config?.description,
184
+ input: flow.config?.inputSchema,
185
+ annotations: flow.config?.annotations,
186
+ })),
187
+ };
188
+ }
163
189
  /**
164
190
  * Register an app's tools, widgets and flows onto a server the template built.
165
191
  *
@@ -181,6 +207,12 @@ export async function registerApp(server, manifest) {
181
207
  // serves itself: a mount here wins, so a clash would be an app answering
182
208
  // discovery rather than a 404 anybody could read.
183
209
  registerEndpoints(server, endpoints);
210
+ // Mounted here for the same ordering reason, from the narrowed lists, so a
211
+ // surface's page shows that surface. No app endpoint can take the path:
212
+ // endpoints live under `/api/` and `/.well-known/`.
213
+ if (manifest.docs !== false) {
214
+ server.express.get("/docs", docsHandler(docsModel(served)));
215
+ }
184
216
  // Widgets: one `data` schema drives the input schema, the structured output,
185
217
  // and the type the component receives.
186
218
  //
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@waniwani/kit",
3
- "version": "0.4.0",
3
+ "version": "0.4.2",
4
4
  "description": "Build an MCP app as a folder: tools, widgets and flows, with one CLI and one shared server runtime.",
5
5
  "type": "module",
6
6
  "bin": {
package/src/docs.ts ADDED
@@ -0,0 +1,389 @@
1
+ /**
2
+ * The `/docs` page every app serves: a human-readable account of what its MCP
3
+ * server registers, for anyone who needs a URL to point at rather than an MCP
4
+ * client to connect with.
5
+ *
6
+ * It is rendered from the same definitions `registerApp` hands the framework,
7
+ * after surface narrowing, so the page lists what this deployment's `tools/list`
8
+ * lists from the app and nothing it does not.
9
+ *
10
+ * The markup is built at runtime and sent as a response, never written into an
11
+ * app's files. Every interpolated value goes through `html`, which escapes it
12
+ * unless it is a fragment `html` itself produced, so a description holding
13
+ * markup reaches the page as text.
14
+ */
15
+
16
+ import type { Request, RequestHandler } from "express";
17
+ import { z } from "zod";
18
+
19
+ /** What the page says about the server itself. */
20
+ export type DocsApp = {
21
+ name: string;
22
+ title?: string;
23
+ version?: string;
24
+ /** The overview the server hands the model at `initialize`, surface applied. */
25
+ instructions?: string;
26
+ };
27
+
28
+ /** The MCP annotations a registered tool carries, as far as the page shows them. */
29
+ export type DocsAnnotations = {
30
+ readOnlyHint?: boolean;
31
+ destructiveHint?: boolean;
32
+ openWorldHint?: boolean;
33
+ idempotentHint?: boolean;
34
+ };
35
+
36
+ /** One registered tool, widget or flow. */
37
+ export type DocsEntry = {
38
+ name: string;
39
+ title?: string;
40
+ description?: string;
41
+ /** A Zod shape, or a Zod object schema: whatever the tool registered as `inputSchema`. */
42
+ input?: unknown;
43
+ annotations?: DocsAnnotations;
44
+ };
45
+
46
+ export type DocsModel = {
47
+ app?: DocsApp;
48
+ tools: DocsEntry[];
49
+ widgets: DocsEntry[];
50
+ flows: DocsEntry[];
51
+ };
52
+
53
+ // ------------------------------------------------------------------- escaping
54
+
55
+ /** Markup `html` produced, and so already escaped. */
56
+ class Html {
57
+ constructor(readonly value: string) {}
58
+ }
59
+
60
+ type Part = Html | string | number | boolean | null | undefined | Part[];
61
+
62
+ const ENTITIES: Record<string, string> = {
63
+ "&": "&amp;",
64
+ "<": "&lt;",
65
+ ">": "&gt;",
66
+ '"': "&quot;",
67
+ "'": "&#39;",
68
+ };
69
+
70
+ function escapeText(value: string): string {
71
+ return value.replace(/[&<>"']/g, (char) => ENTITIES[char] as string);
72
+ }
73
+
74
+ function flatten(part: Part): string {
75
+ if (part instanceof Html) return part.value;
76
+ if (Array.isArray(part)) return part.map(flatten).join("");
77
+ if (part === null || part === undefined || part === false || part === true) return "";
78
+ return escapeText(String(part));
79
+ }
80
+
81
+ /** Tagged template: literal markup passes through, every interpolation is escaped. */
82
+ function html(strings: TemplateStringsArray, ...parts: Part[]): Html {
83
+ let out = strings[0] as string;
84
+ for (let i = 0; i < parts.length; i++) {
85
+ out += flatten(parts[i]) + (strings[i + 1] as string);
86
+ }
87
+ return new Html(out);
88
+ }
89
+
90
+ // ----------------------------------------------------------------- parameters
91
+
92
+ type JsonSchema = {
93
+ type?: string | string[];
94
+ description?: string;
95
+ default?: unknown;
96
+ enum?: unknown[];
97
+ const?: unknown;
98
+ format?: string;
99
+ items?: JsonSchema;
100
+ anyOf?: JsonSchema[];
101
+ oneOf?: JsonSchema[];
102
+ properties?: Record<string, JsonSchema>;
103
+ required?: string[];
104
+ $ref?: string;
105
+ };
106
+
107
+ type Parameter = {
108
+ name: string;
109
+ type: string;
110
+ required: boolean;
111
+ description?: string;
112
+ default?: unknown;
113
+ };
114
+
115
+ /** Nested object fields are listed as `parent.child` down to this depth. */
116
+ const MAX_DEPTH = 3;
117
+
118
+ function isZodSchema(value: unknown): value is z.ZodType {
119
+ return typeof value === "object" && value !== null && "_zod" in value;
120
+ }
121
+
122
+ /**
123
+ * The JSON Schema a client receives for this input, read the way the MCP SDK
124
+ * reads it for `tools/list`: the input side of any transform or default.
125
+ *
126
+ * `null` when the schema cannot be represented, so the page says so for that
127
+ * one entry instead of failing to render.
128
+ */
129
+ function inputSchema(input: unknown): JsonSchema | null {
130
+ if (input === undefined) return {};
131
+ try {
132
+ const schema = isZodSchema(input) ? input : z.object(input as z.ZodRawShape);
133
+ return z.toJSONSchema(schema, { io: "input", unrepresentable: "any" }) as JsonSchema;
134
+ } catch {
135
+ return null;
136
+ }
137
+ }
138
+
139
+ /** A schema value as JSON, or as plain text for one JSON cannot hold. */
140
+ function literal(value: unknown): string {
141
+ try {
142
+ return JSON.stringify(value) ?? String(value);
143
+ } catch {
144
+ return String(value);
145
+ }
146
+ }
147
+
148
+ function typeLabel(schema: JsonSchema): string {
149
+ if (schema.const !== undefined) return literal(schema.const);
150
+ if (Array.isArray(schema.enum)) return schema.enum.map(literal).join(" | ");
151
+ const union = schema.anyOf ?? schema.oneOf;
152
+ if (union) return union.map(typeLabel).join(" | ");
153
+ if (schema.type === "array") {
154
+ const item = typeLabel(schema.items ?? {});
155
+ return item.includes(" | ") ? `(${item})[]` : `${item}[]`;
156
+ }
157
+ if (Array.isArray(schema.type)) return schema.type.join(" | ");
158
+ if (schema.type) return schema.format ? `${schema.type} (${schema.format})` : schema.type;
159
+ return schema.$ref ? "object" : "any";
160
+ }
161
+
162
+ /** The object schema whose fields are listed under a parameter, if it has one. */
163
+ function nestedObject(schema: JsonSchema): { schema: JsonSchema; suffix: string } | undefined {
164
+ if (schema.properties) return { schema, suffix: "." };
165
+ if (schema.type === "array" && schema.items?.properties) {
166
+ return { schema: schema.items, suffix: "[]." };
167
+ }
168
+ return undefined;
169
+ }
170
+
171
+ function parameters(schema: JsonSchema, prefix = "", depth = 0): Parameter[] {
172
+ const required = new Set(schema.required ?? []);
173
+ return Object.entries(schema.properties ?? {}).flatMap(([key, property]) => {
174
+ const name = prefix + key;
175
+ const row: Parameter = {
176
+ name,
177
+ type: typeLabel(property),
178
+ required: required.has(key),
179
+ description: property.description,
180
+ default: property.default,
181
+ };
182
+ const nested = depth < MAX_DEPTH ? nestedObject(property) : undefined;
183
+ return nested ? [row, ...parameters(nested.schema, name + nested.suffix, depth + 1)] : [row];
184
+ });
185
+ }
186
+
187
+ // ------------------------------------------------------------------ rendering
188
+
189
+ type Kind = "tool" | "widget" | "flow";
190
+
191
+ const SECTIONS: Array<{ kind: Kind; key: "tools" | "widgets" | "flows"; heading: string }> = [
192
+ { kind: "tool", key: "tools", heading: "Tools" },
193
+ { kind: "widget", key: "widgets", heading: "Widgets" },
194
+ { kind: "flow", key: "flows", heading: "Flows" },
195
+ ];
196
+
197
+ const HINTS: Array<{ key: keyof DocsAnnotations; label: string }> = [
198
+ { key: "readOnlyHint", label: "read-only" },
199
+ { key: "destructiveHint", label: "destructive" },
200
+ { key: "idempotentHint", label: "idempotent" },
201
+ { key: "openWorldHint", label: "open world" },
202
+ ];
203
+
204
+ function anchor(kind: Kind, name: string): string {
205
+ return `${kind}-${name}`;
206
+ }
207
+
208
+ function parameterTable(entry: DocsEntry): Html {
209
+ const schema = inputSchema(entry.input);
210
+ if (schema === null) {
211
+ return html`<p class="muted">The input schema cannot be shown as JSON Schema.</p>`;
212
+ }
213
+ const rows = parameters(schema);
214
+ if (rows.length === 0) return html`<p class="muted">No parameters.</p>`;
215
+ return html`<div class="params"><table>
216
+ <thead><tr><th>Parameter</th><th>Type</th><th>Required</th><th>Description</th></tr></thead>
217
+ <tbody>${rows.map(
218
+ (row) => html`
219
+ <tr><td><code>${row.name}</code></td><td><code>${row.type}</code></td><td>${row.required ? "yes" : "no"}</td><td>${row.description ?? ""}${
220
+ row.default !== undefined
221
+ ? html`${row.description ? " " : ""}<span class="muted">Default: <code>${literal(row.default)}</code></span>`
222
+ : ""
223
+ }</td></tr>`,
224
+ )}
225
+ </tbody>
226
+ </table></div>`;
227
+ }
228
+
229
+ function entryCard(kind: Kind, entry: DocsEntry): Html {
230
+ const hints = HINTS.filter(({ key }) => entry.annotations?.[key] === true);
231
+ return html`
232
+ <article id="${anchor(kind, entry.name)}">
233
+ <h3>${entry.title ?? entry.name}</h3>
234
+ <p class="meta"><code>${entry.name}</code>${hints.map(({ label }) => html` <span class="badge badge-${label.replace(" ", "-")}">${label}</span>`)}</p>
235
+ ${entry.description ? html`<p class="text">${entry.description}</p>` : ""}
236
+ ${parameterTable(entry)}
237
+ </article>`;
238
+ }
239
+
240
+ const STYLE = `
241
+ :root{color-scheme:light dark;--bg:#fff;--fg:#1a1a1a;--muted:#5f6368;--line:#e3e3e3;--card:#fafafa;--code:#f1f1f1;--accent:#2d5bd7;--warn:#b3261e}
242
+ @media (prefers-color-scheme:dark){:root{--bg:#121212;--fg:#ececec;--muted:#a0a4a8;--line:#2e2e2e;--card:#1a1a1a;--code:#262626;--accent:#8ab0ff;--warn:#f2b8b5}}
243
+ *{box-sizing:border-box}
244
+ body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif}
245
+ main{max-width:880px;margin:0 auto;padding:40px 16px 64px}
246
+ h1{font-size:28px;margin:0 0 4px}h2{font-size:20px;margin:40px 0 12px;padding-bottom:6px;border-bottom:1px solid var(--line)}h3{font-size:17px;margin:0 0 4px}
247
+ a{color:var(--accent)}
248
+ code,pre{font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}
249
+ code{background:var(--code);padding:1px 5px;border-radius:4px;overflow-wrap:anywhere}
250
+ pre{background:var(--code);padding:12px 14px;border-radius:8px;overflow-x:auto;margin:8px 0}
251
+ pre code{background:none;padding:0}
252
+ .muted,.meta{color:var(--muted)}
253
+ .text{white-space:pre-wrap}
254
+ article{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin:12px 0}
255
+ .badge{display:inline-block;font-size:12px;border:1px solid var(--line);border-radius:999px;padding:0 8px;margin-left:4px}
256
+ .badge-destructive{color:var(--warn);border-color:currentColor}
257
+ .params{overflow-x:auto;margin-top:8px}
258
+ table{width:100%;border-collapse:collapse;font-size:14px}
259
+ th,td{text-align:left;vertical-align:top;padding:6px 10px 6px 0;border-top:1px solid var(--line)}
260
+ th{font-weight:600;border-top:none}
261
+ td code{overflow-wrap:normal}
262
+ td:first-child code{white-space:nowrap}
263
+ nav ul{margin:8px 0 0;padding-left:20px}
264
+ footer{margin-top:48px;font-size:13px}
265
+ `;
266
+
267
+ /**
268
+ * Everything on the page except the server's own URL, which depends on the
269
+ * request. Rendered once, because the definitions do not change while the
270
+ * server runs.
271
+ */
272
+ function renderBody(model: DocsModel): { title: string; head: Html; tail: Html } {
273
+ const title = model.app?.title ?? model.app?.name ?? "MCP server";
274
+ const present = SECTIONS.filter(({ key }) => model[key].length > 0);
275
+
276
+ const head = html`<header>
277
+ <h1>${title}</h1>
278
+ <p class="meta">${model.app?.name ? html`<code>${model.app.name}</code>` : ""}${model.app?.version ? html` version ${model.app.version}` : ""}</p>
279
+ </header>`;
280
+
281
+ const tail = html`
282
+ ${
283
+ model.app?.instructions
284
+ ? html`<section>
285
+ <h2>Overview</h2>
286
+ <p class="text">${model.app.instructions}</p>
287
+ </section>`
288
+ : ""
289
+ }
290
+ ${
291
+ present.length > 0
292
+ ? html`<nav>
293
+ <h2>Contents</h2>
294
+ <ul>${present.map(
295
+ ({ kind, key, heading }) => html`
296
+ <li>${heading} (${model[key].length})<ul>${model[key].map(
297
+ (entry) =>
298
+ html`<li><a href="#${anchor(kind, entry.name)}">${entry.title ?? entry.name}</a></li>`,
299
+ )}</ul></li>`,
300
+ )}
301
+ </ul>
302
+ </nav>`
303
+ : html`<p class="muted">This server registers no tools, widgets or flows of its own.</p>`
304
+ }
305
+ ${present.map(
306
+ ({ kind, key, heading }) => html`
307
+ <section>
308
+ <h2>${heading}</h2>
309
+ ${model[key].map((entry) => entryCard(kind, entry))}
310
+ </section>`,
311
+ )}
312
+ <footer class="muted">Generated from the definitions this server registers.
313
+ Widgets are tools that also render a view in hosts that support MCP Apps.
314
+ Flows are tools that guide a multi-step conversation.</footer>`;
315
+
316
+ return { title, head, tail };
317
+ }
318
+
319
+ /**
320
+ * This server's public origin, the way the framework resolves it for view URLs
321
+ * and OAuth metadata: `x-forwarded-host` first, then `Host`, first hop of a
322
+ * forwarded chain only. A forwarded host with no forwarded protocol is https;
323
+ * a bare `localhost` or `127.0.0.1` host is http.
324
+ */
325
+ function serverOrigin(req: Request): string {
326
+ const firstHop = (value: string | undefined) => value?.split(",")[0]?.trim();
327
+ const forwardedHost = firstHop(req.get("x-forwarded-host"));
328
+ if (forwardedHost) {
329
+ const proto = firstHop(req.get("x-forwarded-proto")) || "https";
330
+ return `${proto}://${forwardedHost}`;
331
+ }
332
+ const host = req.get("host");
333
+ if (host) {
334
+ const local = ["localhost:", "127.0.0.1:"].some((prefix) => host.startsWith(prefix));
335
+ return `${local ? "http" : "https"}://${host}`;
336
+ }
337
+ return `http://localhost:${process.env.__PORT || "3000"}`;
338
+ }
339
+
340
+ /**
341
+ * The `GET /docs` handler. The page carries no script, and its CSP says so, so
342
+ * even markup that escaped escaping could not run.
343
+ */
344
+ export function docsHandler(model: DocsModel): RequestHandler {
345
+ // A definition the page cannot render costs the page, never the server start.
346
+ let body: ReturnType<typeof renderBody>;
347
+ try {
348
+ body = renderBody(model);
349
+ } catch (error) {
350
+ console.error("[waniwani] the /docs page could not be rendered:", error);
351
+ return (_req, res) => {
352
+ res.status(500).type("text/plain").send("The documentation page could not be rendered.");
353
+ };
354
+ }
355
+ const { title, head, tail } = body;
356
+
357
+ return (req, res) => {
358
+ const endpoint = `${serverOrigin(req)}/mcp`;
359
+ const page = html`<!doctype html>
360
+ <html lang="en">
361
+ <head>
362
+ <meta charset="utf-8">
363
+ <meta name="viewport" content="width=device-width, initial-scale=1">
364
+ <title>${title} · MCP documentation</title>
365
+ <style>${new Html(STYLE)}</style>
366
+ </head>
367
+ <body>
368
+ <main>
369
+ ${head}
370
+ <section>
371
+ <h2>Connect</h2>
372
+ <p>Add this URL to any MCP client as a remote server. It speaks MCP over Streamable HTTP, with JSON-RPC requests sent as <code>POST</code>.</p>
373
+ <pre><code>${endpoint}</code></pre>
374
+ </section>
375
+ ${tail}
376
+ </main>
377
+ </body>
378
+ </html>
379
+ `;
380
+ res.setHeader("Content-Type", "text/html; charset=utf-8");
381
+ res.setHeader(
382
+ "Content-Security-Policy",
383
+ "default-src 'none'; style-src 'unsafe-inline'; base-uri 'none'; form-action 'none'",
384
+ );
385
+ res.setHeader("X-Content-Type-Options", "nosniff");
386
+ res.setHeader("Cache-Control", "public, max-age=300");
387
+ res.send(page.value);
388
+ };
389
+ }
package/src/index.ts CHANGED
@@ -205,6 +205,13 @@ export type AppConfig = {
205
205
  * empty serves everything; an undeclared name refuses to start.
206
206
  */
207
207
  surfaces?: Record<string, SurfaceConfig>;
208
+ /**
209
+ * Serve the HTML page at `/docs` that lists this deployment's tools,
210
+ * widgets and flows, their parameters, and the URL to connect an MCP client
211
+ * to. On by default, and served without authentication: `false` is for a
212
+ * server whose tool list should only reach a client that signed in.
213
+ */
214
+ docs?: boolean;
208
215
  };
209
216
 
210
217
  export function defineApp(config: AppConfig): AppConfig {
package/src/server.ts CHANGED
@@ -14,6 +14,7 @@
14
14
  import cors from "cors";
15
15
  import express, { type ErrorRequestHandler, type RequestHandler } from "express";
16
16
  import type { McpServer, ToolMeta, ViewName } from "skybridge/server";
17
+ import { type DocsApp, type DocsEntry, docsHandler } from "./docs.js";
17
18
  import type { EndpointDefinition, Shape, SurfaceConfig, ToolHints, WidgetCsp } from "./index.js";
18
19
  import { narrow, SURFACE_ENV } from "./surface.js";
19
20
 
@@ -71,6 +72,14 @@ export type Manifest = {
71
72
  styleDomains?: string[];
72
73
  /** From `resolveSurface()`. Absent: the whole manifest is registered. */
73
74
  surface?: SurfaceConfig;
75
+ /**
76
+ * The server's identity, for the `/docs` page's heading and overview. The
77
+ * generated `waniwani.ts` passes the object it constructs the server from, so
78
+ * `instructions` is the overview the active surface serves.
79
+ */
80
+ app?: DocsApp;
81
+ /** `false` leaves `/docs` unmounted. Anything else serves it. */
82
+ docs?: boolean;
74
83
  };
75
84
 
76
85
  /**
@@ -226,6 +235,40 @@ function registerEndpoints(server: McpServer, endpoints: NonNullable<Manifest["e
226
235
  }
227
236
  }
228
237
 
238
+ /**
239
+ * What `/docs` lists: each definition as it is registered below, annotations
240
+ * included, so the page and `tools/list` agree.
241
+ */
242
+ function docsModel(served: Manifest) {
243
+ const entry = (
244
+ name: string,
245
+ def: { title: string; description: string; hints?: ToolHints },
246
+ input: Shape | undefined,
247
+ defaults: ToolHints,
248
+ ): DocsEntry => ({
249
+ name,
250
+ title: def.title,
251
+ description: def.description,
252
+ input,
253
+ annotations: annotations(def.title, def.hints, defaults),
254
+ });
255
+
256
+ return {
257
+ app: served.app,
258
+ tools: served.tools.map(({ name, def }) => entry(name, def, def.input, { readOnly: false })),
259
+ widgets: served.widgets.map(({ name, def }) => entry(name, def, def.data, { readOnly: true })),
260
+ flows: served.flows.map(
261
+ (flow): DocsEntry => ({
262
+ name: flow.name,
263
+ title: flow.config?.title ?? flow.config?.annotations?.title,
264
+ description: flow.config?.description,
265
+ input: flow.config?.inputSchema,
266
+ annotations: flow.config?.annotations,
267
+ }),
268
+ ),
269
+ };
270
+ }
271
+
229
272
  /**
230
273
  * Register an app's tools, widgets and flows onto a server the template built.
231
274
  *
@@ -251,6 +294,13 @@ export async function registerApp(server: McpServer, manifest: Manifest): Promis
251
294
  // discovery rather than a 404 anybody could read.
252
295
  registerEndpoints(server, endpoints);
253
296
 
297
+ // Mounted here for the same ordering reason, from the narrowed lists, so a
298
+ // surface's page shows that surface. No app endpoint can take the path:
299
+ // endpoints live under `/api/` and `/.well-known/`.
300
+ if (manifest.docs !== false) {
301
+ server.express.get("/docs", docsHandler(docsModel(served)));
302
+ }
303
+
254
304
  // Widgets: one `data` schema drives the input schema, the structured output,
255
305
  // and the type the component receives.
256
306
  //