@privos_ai/app-server 0.9.0 → 0.10.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/LICENSE +1 -1
- package/README.md +37 -0
- package/dist/app-descriptor.d.ts +8 -0
- package/dist/app-descriptor.d.ts.map +1 -1
- package/dist/app-descriptor.js +2 -0
- package/dist/app-descriptor.js.map +1 -1
- package/dist/direct/express-router.d.ts.map +1 -1
- package/dist/direct/express-router.js +19 -13
- package/dist/direct/express-router.js.map +1 -1
- package/dist/index.d.ts +8 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/relay/relay-client.d.ts.map +1 -1
- package/dist/relay/relay-client.js +94 -14
- package/dist/relay/relay-client.js.map +1 -1
- package/dist/relay/standalone-control.d.ts.map +1 -1
- package/dist/relay/standalone-control.js +14 -7
- package/dist/relay/standalone-control.js.map +1 -1
- package/dist/runtime.d.ts +38 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +92 -5
- package/dist/runtime.js.map +1 -1
- package/dist/serve-app.d.ts +2 -0
- package/dist/serve-app.d.ts.map +1 -1
- package/dist/serve-app.js +2 -1
- package/dist/serve-app.js.map +1 -1
- package/dist/ui/asset-filename-rule.d.ts +18 -0
- package/dist/ui/asset-filename-rule.d.ts.map +1 -0
- package/dist/ui/asset-filename-rule.js +39 -0
- package/dist/ui/asset-filename-rule.js.map +1 -0
- package/dist/ui/assets-manifest.d.ts +19 -0
- package/dist/ui/assets-manifest.d.ts.map +1 -0
- package/dist/ui/assets-manifest.js +128 -0
- package/dist/ui/assets-manifest.js.map +1 -0
- package/dist/ui/serve-built-ui.d.ts +28 -0
- package/dist/ui/serve-built-ui.d.ts.map +1 -0
- package/dist/ui/serve-built-ui.js +131 -0
- package/dist/ui/serve-built-ui.js.map +1 -0
- package/dist/ui/shell-watchdog.d.ts +12 -0
- package/dist/ui/shell-watchdog.d.ts.map +1 -0
- package/dist/ui/shell-watchdog.js +25 -0
- package/dist/ui/shell-watchdog.js.map +1 -0
- package/dist/workload/dispatch-assertion.d.ts +17 -0
- package/dist/workload/dispatch-assertion.d.ts.map +1 -1
- package/dist/workload/dispatch-assertion.js +49 -3
- package/dist/workload/dispatch-assertion.js.map +1 -1
- package/dist/workload/index.d.ts +2 -2
- package/dist/workload/index.d.ts.map +1 -1
- package/dist/workload/index.js +1 -1
- package/dist/workload/index.js.map +1 -1
- package/package.json +1 -1
package/dist/serve-app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve-app.d.ts","sourceRoot":"","sources":["../src/serve-app.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"serve-app.d.ts","sourceRoot":"","sources":["../src/serve-app.ts"],"names":[],"mappings":"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"}
|
package/dist/serve-app.js
CHANGED
|
@@ -61,7 +61,8 @@ function developmentHubOrigin(env) {
|
|
|
61
61
|
const url = env.PRIVOS_URL;
|
|
62
62
|
return url && /^https?:\/\//.test(url) ? url.replace(/\/+$/, '') : undefined;
|
|
63
63
|
}
|
|
64
|
-
|
|
64
|
+
/** Exported for `relay-client.ts`'s `connectRelay` default-manifest attach step (internal reuse, not part of the public API surface — not re-exported from `index.ts`). */
|
|
65
|
+
export function defaultManifestResolver() {
|
|
65
66
|
return JSON.parse(readFileSync(path.resolve(process.cwd(), 'privos-app.json'), 'utf8'));
|
|
66
67
|
}
|
|
67
68
|
export async function serveApp(options) {
|
package/dist/serve-app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve-app.js","sourceRoot":"","sources":["../src/serve-app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,OAAyB,MAAM,SAAS,CAAC;AAGhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAA6B,MAAM,0BAA0B,CAAC;AAC/F,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EACN,uBAAuB,EACvB,oCAAoC,EACpC,2CAA2C,GAE3C,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAoB,MAAM,yBAAyB,CAAC;AACzE,OAAO,EACN,uCAAuC,GAEvC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACN,sBAAsB,GAEtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAoB,MAAM,mBAAmB,CAAC;AAE3F,OAAO,EACN,yBAAyB,GAEzB,MAAM,iCAAiC,CAAC;AAEzC,mFAAmF;AACnF,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAyE3C,SAAS,aAAa,CAAC,KAAa,EAAE,MAA+B;IACpE,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACrF,OAAO,CAAC,KAAK,CAAC,gBAAgB,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,EAAE,CAAC,CAAC;IACtC,CAAC;AACF,CAAC;AAED,2HAA2H;AAC3H,SAAS,oBAAoB,CAAC,GAAsB;IACnD,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC;IAC3B,OAAO,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9E,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"serve-app.js","sourceRoot":"","sources":["../src/serve-app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,OAAyB,MAAM,SAAS,CAAC;AAGhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAA6B,MAAM,0BAA0B,CAAC;AAC/F,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EACN,uBAAuB,EACvB,oCAAoC,EACpC,2CAA2C,GAE3C,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAoB,MAAM,yBAAyB,CAAC;AACzE,OAAO,EACN,uCAAuC,GAEvC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACN,sBAAsB,GAEtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAoB,MAAM,mBAAmB,CAAC;AAE3F,OAAO,EACN,yBAAyB,GAEzB,MAAM,iCAAiC,CAAC;AAEzC,mFAAmF;AACnF,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAyE3C,SAAS,aAAa,CAAC,KAAa,EAAE,MAA+B;IACpE,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACrF,OAAO,CAAC,KAAK,CAAC,gBAAgB,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,EAAE,CAAC,CAAC;IACtC,CAAC;AACF,CAAC;AAED,2HAA2H;AAC3H,SAAS,oBAAoB,CAAC,GAAsB;IACnD,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC;IAC3B,OAAO,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9E,CAAC;AAED,2KAA2K;AAC3K,MAAM,UAAU,uBAAuB;IACtC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACzF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACtD,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC;IAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,kBAAkB,IAAI,kBAAkB,CAAC;IAE7E,6EAA6E;IAC7E,MAAM,UAAU,GAAG,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;IAC7B,MAAM,CAAC,wBAAwB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IAEtE,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QACvE,qEAAqE;QACrE,0EAA0E;QAC1E,sEAAsE;QACtE,MAAM,IAAI,gBAAgB,CACzB,gCAAgC,EAChC,2DAA2D,IAAI,+BAA+B;YAC7F,8FAA8F,CAC/F,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,+CAA+C;IAC/C,IAAI,sBAA0D,CAAC;IAC/D,IAAI,WAA+B,CAAC;IACpC,IAAI,gBAAmD,CAAC;IACxD,IAAI,MAA4C,CAAC;IACjD,IAAI,kBAAiE,CAAC;IACtE,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAE9B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,yBAAyB,IAAI,yBAAyB,CAAC;QACzF,sBAAsB,GAAG,SAAS,EAAE,CAAC;QACrC,gBAAgB,GAAG,KAAK,IAAI,EAAE;YAC7B,IAAI,CAAC;gBACJ,OAAO,CAAC,MAAM,sBAAuB,CAAC,aAAa,EAAE,CAAC,CAAC,SAAS,CAAC;YAClE,CAAC;YAAC,MAAM,CAAC;gBACR,OAAO,SAAS,CAAC;YAClB,CAAC;QACF,CAAC,CAAC;QACF,WAAW,GAAG,2CAA2C,CAAC,sBAAsB,CAAC,CAAC;QAClF,iBAAiB,GAAG,IAAI,CAAC;IAC1B,CAAC;SAAM,IAAI,IAAI,KAAK,uBAAuB,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,sBAAsB,IAAI,sBAAsB,CAAC;QAC9E,MAAM,GAAG,IAAI,EAAE,CAAC;QAChB,uEAAuE;QACvE,uEAAuE;QACvE,IAAI,MAAM,CAAC,QAAQ,CAAC,kBAAkB;YAAE,4BAA4B,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QACzG,MAAM,cAAc,GACnB,OAAO,CAAC,MAAM,EAAE,uCAAuC,IAAI,uCAAuC,CAAC;QACpG,kBAAkB,GAAG,cAAc,CAAC,MAAM,EAAE;YAC3C,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;SAChD,CAAC,CAAC;QACH,gBAAgB,GAAG,KAAK,IAAI,EAAE,CAAC,MAAO,CAAC,KAAK,CAAC,SAAS,CAAC;QACvD,WAAW,GAAG,oCAAoC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC3E,iBAAiB,GAAG,KAAK,CAAC,CAAC,6BAA6B;IACzD,CAAC;SAAM,CAAC;QACP,gBAAgB,GAAG,KAAK,IAAI,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACzD,WAAW,GAAG,uBAAuB,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC5D,mEAAmE;QACnE,qEAAqE;QACrE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,KAAK,OAAO,CAAC;IAC3D,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI;QACJ,WAAW;QACX,sBAAsB;QACtB,gBAAgB;KAChB,CAAC,CAAC;IAEH,yEAAyE;IACzE,yEAAyE;IACzE,MAAM,QAAQ,GAA8B,EAAE,CAAC;IAC/C,MAAM,SAAS,GAAG,cAAc,CAAC;QAChC,IAAI;QACJ,sBAAsB;QACtB,QAAQ;QACR,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,uBAAuB;KACnE,CAAC,CAAC;IAEH,oEAAoE;IACpE,4EAA4E;IAC5E,2DAA2D;IAC3D,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAChC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC3C,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC;YACxD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/G,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,CAAC;QACb,CAAC;IACF,CAAC,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,SAAS;QAAE,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACpD,IAAI,iBAAiB,EAAE,CAAC;QACvB,GAAG,CAAC,GAAG,CACN,kBAAkB,CAAC;YAClB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,OAAO;YACP,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,qEAAqE;YACrE,gEAAgE;YAChE,kEAAkE;YAClE,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,UAAmB,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChG,CAAC,CACF,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,wBAAwB,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC,CAAC;IACtF,6EAA6E;IAC7E,wEAAwE;IACxE,+EAA+E;IAC/E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;IACrF,8EAA8E;IAC9E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAEhF,iEAAiE;IACjE,oEAAoE;IACpE,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC5D,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;YAC3C,MAAM,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;YACtE,OAAO,CAAC,OAAO,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,6EAA6E;IAC7E,kEAAkE;IAClE,IAAI,IAAI,KAAK,uBAAuB,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,YAAY,IAAI,YAAY,CAAC;QAC/D,uEAAuE;QACvE,0EAA0E;QAC1E,2EAA2E;QAC3E,wEAAwE;QACxE,6EAA6E;QAC7E,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,uBAAuB,CAAC;QAC3E,MAAM,sBAAsB,GAAG,KAAK,IAA4B,EAAE;YACjE,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;YACxG,IAAI,CAAC;gBACJ,MAAM,QAAQ,GAAG,MAAM,eAAe,EAAE,CAAC;gBACzC,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC1E,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,QAAmC,EAAE,CAAC;gBACnE,CAAC;YACF,CAAC;YAAC,MAAM,CAAC;gBACR,0BAA0B;YAC3B,CAAC;YACD,OAAO,IAAI,CAAC;QACb,CAAC,CAAC;QACF,sEAAsE;QACtE,0EAA0E;QAC1E,uEAAuE;QACvE,+BAA+B;QAC/B,MAAM,aAAa,GAAG,OAAO,OAAO,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACnG,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAC;YAC5B,SAAS,EAAE,MAAO,CAAC,KAAK,CAAC,SAAS;YAClC,kBAAkB,EAAE,kBAAkB;YACtC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,UAAU,EAAE,sBAAsB;YAClC,OAAO;YACP,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;SAChD,CAAC,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,0EAA0E;IAC1E,2EAA2E;IAC3E,iEAAiE;IACjE,IAAI,IAAI,KAAK,SAAS,IAAI,sBAAsB,EAAE,CAAC;QAClD,KAAK,sBAAsB,CAAC,wBAAwB,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACpG,sBAAsB,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,cAAc,GAAsD,EAAE,CAAC;IAC3E,MAAM,MAAM,GAAmB;QAC9B,IAAI;QACJ,MAAM;QACN,WAAW,EAAE,QAAQ,CAAC,OAAO;QAC7B,SAAS;QACT,KAAK,CAAC,KAAK;YACV,KAAK,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,cAAc;gBAAE,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACzF,cAAc,GAAG,EAAE,CAAC;YACpB,IAAI,QAAQ,CAAC,OAAO;gBAAE,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;YACH,sBAAsB,EAAE,OAAO,EAAE,CAAC;QACnC,CAAC;KACD,CAAC;IAEF,IAAI,OAAO,CAAC,qBAAqB,IAAI,IAAI,EAAE,CAAC;QAC3C,KAAK,MAAM,MAAM,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAU,EAAE,CAAC;YACrD,MAAM,EAAE,GAAG,GAAG,EAAE;gBACf,MAAM,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;gBACxC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC9B,MAAM,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC7D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACtB,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACzB,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9C,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,KAKvB;IACA,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,sBAAuB,CAAC;QAC7C,0EAA0E;QAC1E,wEAAwE;QACxE,uEAAuE;QACvE,2EAA2E;QAC3E,oEAAoE;QACpE,OAAO,KAAK,IAAI,EAAE;YACjB,MAAM,IAAI,GAAG,MAAM,CAAC,yBAAyB,EAAE,CAAC;YAChD,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC;YAChE,OAAO;gBACN,EAAE;gBACF,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;gBACtB,IAAI,EAAE;oBACL,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,IAAI,CAAC,MAAM;oBACrB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAC1B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC/C;aACD,CAAC;QACH,CAAC,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,8BAA8B,CAAC;YAC5C,oBAAoB,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,KAAK;YAC1E,eAAe,EAAE,KAAK,CAAC,eAAe;SACtC,CAAC,CAAC;QACH,OAAO,KAAK,IAAI,EAAE;YACjB,MAAM,MAAM,GAAG,MAAM,KAAK,EAAE,CAAC;YAC7B,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QACpE,CAAC,CAAC;IACH,CAAC;IACD,yEAAyE;IACzE,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;AAC/E,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content-hashed asset filename rule shared by the SDK (build-time validation,
|
|
3
|
+
* `readAsset` lookups) and the Hub route that re-serves these files. A filename
|
|
4
|
+
* must start with an alnum, may contain `.`/`_`/`-` up to a trailing `-<hash>`
|
|
5
|
+
* of at least 8 chars, then one of the allowed extensions. No `/`, no `..`, no
|
|
6
|
+
* `.map` — content hashing itself is guaranteed by the assets manifest listing
|
|
7
|
+
* a file, not by this regex alone.
|
|
8
|
+
*/
|
|
9
|
+
export declare const MCP_UI_ASSET_FILENAME_RE: RegExp;
|
|
10
|
+
/** Extensions a split-build UI is ever allowed to publish under `assets/`. */
|
|
11
|
+
export declare const MCP_UI_ASSET_EXTENSIONS: readonly ["js", "css", "svg", "json", "woff", "woff2", "ttf", "png", "jpg", "jpeg", "gif", "webp", "avif", "ico", "wasm", "gz"];
|
|
12
|
+
export type McpUiAssetExtension = (typeof MCP_UI_ASSET_EXTENSIONS)[number];
|
|
13
|
+
/**
|
|
14
|
+
* `ui://<appSlug>/assets/` — the app-level (not per-entry-point) URI prefix
|
|
15
|
+
* every split asset is addressed under, per the wire contract.
|
|
16
|
+
*/
|
|
17
|
+
export declare function deriveAssetUriPrefix(appSlug: string): string;
|
|
18
|
+
//# sourceMappingURL=asset-filename-rule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-filename-rule.d.ts","sourceRoot":"","sources":["../../src/ui/asset-filename-rule.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,QACqF,CAAC;AAE3H,8EAA8E;AAC9E,eAAO,MAAM,uBAAuB,iIAiB1B,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3E;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAK5D"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content-hashed asset filename rule shared by the SDK (build-time validation,
|
|
3
|
+
* `readAsset` lookups) and the Hub route that re-serves these files. A filename
|
|
4
|
+
* must start with an alnum, may contain `.`/`_`/`-` up to a trailing `-<hash>`
|
|
5
|
+
* of at least 8 chars, then one of the allowed extensions. No `/`, no `..`, no
|
|
6
|
+
* `.map` — content hashing itself is guaranteed by the assets manifest listing
|
|
7
|
+
* a file, not by this regex alone.
|
|
8
|
+
*/
|
|
9
|
+
export const MCP_UI_ASSET_FILENAME_RE = /^[A-Za-z0-9][A-Za-z0-9._-]*-[A-Za-z0-9_-]{8,}\.(js|css|svg|json|woff|woff2|ttf|png|jpg|jpeg|gif|webp|avif|ico|wasm|gz)$/;
|
|
10
|
+
/** Extensions a split-build UI is ever allowed to publish under `assets/`. */
|
|
11
|
+
export const MCP_UI_ASSET_EXTENSIONS = [
|
|
12
|
+
'js',
|
|
13
|
+
'css',
|
|
14
|
+
'svg',
|
|
15
|
+
'json',
|
|
16
|
+
'woff',
|
|
17
|
+
'woff2',
|
|
18
|
+
'ttf',
|
|
19
|
+
'png',
|
|
20
|
+
'jpg',
|
|
21
|
+
'jpeg',
|
|
22
|
+
'gif',
|
|
23
|
+
'webp',
|
|
24
|
+
'avif',
|
|
25
|
+
'ico',
|
|
26
|
+
'wasm',
|
|
27
|
+
'gz',
|
|
28
|
+
];
|
|
29
|
+
/**
|
|
30
|
+
* `ui://<appSlug>/assets/` — the app-level (not per-entry-point) URI prefix
|
|
31
|
+
* every split asset is addressed under, per the wire contract.
|
|
32
|
+
*/
|
|
33
|
+
export function deriveAssetUriPrefix(appSlug) {
|
|
34
|
+
if (typeof appSlug !== 'string' || appSlug.trim().length === 0) {
|
|
35
|
+
throw new Error('deriveAssetUriPrefix requires a non-empty appSlug');
|
|
36
|
+
}
|
|
37
|
+
return `ui://${appSlug}/assets/`;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=asset-filename-rule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-filename-rule.js","sourceRoot":"","sources":["../../src/ui/asset-filename-rule.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GACpC,yHAAyH,CAAC;AAE3H,8EAA8E;AAC9E,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACtC,IAAI;IACJ,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,IAAI;CACK,CAAC;AAIX;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IACnD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,QAAQ,OAAO,UAAU,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface AssetManifestEntry {
|
|
2
|
+
name: string;
|
|
3
|
+
size: number;
|
|
4
|
+
type: string;
|
|
5
|
+
}
|
|
6
|
+
export interface AssetsManifest {
|
|
7
|
+
files: AssetManifestEntry[];
|
|
8
|
+
}
|
|
9
|
+
export declare function mimeTypeForAssetFile(fileName: string): string;
|
|
10
|
+
/**
|
|
11
|
+
* Build `{ files: [{ name, size, type }] }` for `distDir/assets` — the union
|
|
12
|
+
* of Vite's `.vite/manifest.json` entries and a directory scan (lazy/CSS-only
|
|
13
|
+
* chunks and fonts never appear in the manifest). Every file actually present
|
|
14
|
+
* under `assets/` is validated: filename rule + extension allowlist, no
|
|
15
|
+
* `.map`, size ≤ 2 MB. Throws with the full list of offenders otherwise —
|
|
16
|
+
* this is boot-time validation, never a partial/best-effort manifest.
|
|
17
|
+
*/
|
|
18
|
+
export declare function buildAssetsManifest(distDir: string): AssetsManifest;
|
|
19
|
+
//# sourceMappingURL=assets-manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assets-manifest.d.ts","sourceRoot":"","sources":["../../src/ui/assets-manifest.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,kBAAkB,EAAE,CAAC;CAC5B;AAwBD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG7D;AA4DD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CA4CnE"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { MCP_UI_ASSET_FILENAME_RE } from './asset-filename-rule.js';
|
|
4
|
+
/** Matches the wire contract's per-asset cap; the SDK refuses larger at build time. */
|
|
5
|
+
const MAX_ASSET_BYTES = 2 * 1024 * 1024;
|
|
6
|
+
const MIME_BY_EXTENSION = {
|
|
7
|
+
js: 'text/javascript',
|
|
8
|
+
css: 'text/css',
|
|
9
|
+
svg: 'image/svg+xml',
|
|
10
|
+
json: 'application/json',
|
|
11
|
+
woff: 'font/woff',
|
|
12
|
+
woff2: 'font/woff2',
|
|
13
|
+
ttf: 'font/ttf',
|
|
14
|
+
png: 'image/png',
|
|
15
|
+
jpg: 'image/jpeg',
|
|
16
|
+
jpeg: 'image/jpeg',
|
|
17
|
+
gif: 'image/gif',
|
|
18
|
+
webp: 'image/webp',
|
|
19
|
+
avif: 'image/avif',
|
|
20
|
+
ico: 'image/x-icon',
|
|
21
|
+
wasm: 'application/wasm',
|
|
22
|
+
gz: 'application/gzip',
|
|
23
|
+
};
|
|
24
|
+
export function mimeTypeForAssetFile(fileName) {
|
|
25
|
+
const ext = fileName.slice(fileName.lastIndexOf('.') + 1).toLowerCase();
|
|
26
|
+
return MIME_BY_EXTENSION[ext] ?? 'application/octet-stream';
|
|
27
|
+
}
|
|
28
|
+
/** Vite manifest paths are distDir-relative, e.g. `assets/index-H.js`. */
|
|
29
|
+
function assetFileNameFromManifestPath(relativePath) {
|
|
30
|
+
if (typeof relativePath !== 'string')
|
|
31
|
+
return undefined;
|
|
32
|
+
const normalized = relativePath.replace(/\\/g, '/');
|
|
33
|
+
const prefix = 'assets/';
|
|
34
|
+
return normalized.startsWith(prefix) ? normalized.slice(prefix.length) : undefined;
|
|
35
|
+
}
|
|
36
|
+
function readViteManifestFileNames(distDir) {
|
|
37
|
+
const manifestPath = path.join(distDir, '.vite', 'manifest.json');
|
|
38
|
+
const names = new Set();
|
|
39
|
+
if (!fs.existsSync(manifestPath))
|
|
40
|
+
return names;
|
|
41
|
+
let raw;
|
|
42
|
+
try {
|
|
43
|
+
raw = JSON.parse(fs.readFileSync(manifestPath, 'utf8'));
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
throw new Error(`serveBuiltUi: failed to parse Vite manifest at ${manifestPath}: ${err.message}`);
|
|
47
|
+
}
|
|
48
|
+
if (!raw || typeof raw !== 'object')
|
|
49
|
+
return names;
|
|
50
|
+
for (const chunk of Object.values(raw)) {
|
|
51
|
+
if (!chunk || typeof chunk !== 'object')
|
|
52
|
+
continue;
|
|
53
|
+
const file = assetFileNameFromManifestPath(chunk.file);
|
|
54
|
+
if (file)
|
|
55
|
+
names.add(file);
|
|
56
|
+
if (Array.isArray(chunk.css)) {
|
|
57
|
+
for (const entry of chunk.css) {
|
|
58
|
+
const name = assetFileNameFromManifestPath(entry);
|
|
59
|
+
if (name)
|
|
60
|
+
names.add(name);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (Array.isArray(chunk.assets)) {
|
|
64
|
+
for (const entry of chunk.assets) {
|
|
65
|
+
const name = assetFileNameFromManifestPath(entry);
|
|
66
|
+
if (name)
|
|
67
|
+
names.add(name);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return names;
|
|
72
|
+
}
|
|
73
|
+
function scanAssetsDirectory(assetsDir) {
|
|
74
|
+
const names = new Set();
|
|
75
|
+
if (!fs.existsSync(assetsDir))
|
|
76
|
+
return names;
|
|
77
|
+
for (const entry of fs.readdirSync(assetsDir)) {
|
|
78
|
+
if (fs.statSync(path.join(assetsDir, entry)).isFile())
|
|
79
|
+
names.add(entry);
|
|
80
|
+
}
|
|
81
|
+
return names;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Build `{ files: [{ name, size, type }] }` for `distDir/assets` — the union
|
|
85
|
+
* of Vite's `.vite/manifest.json` entries and a directory scan (lazy/CSS-only
|
|
86
|
+
* chunks and fonts never appear in the manifest). Every file actually present
|
|
87
|
+
* under `assets/` is validated: filename rule + extension allowlist, no
|
|
88
|
+
* `.map`, size ≤ 2 MB. Throws with the full list of offenders otherwise —
|
|
89
|
+
* this is boot-time validation, never a partial/best-effort manifest.
|
|
90
|
+
*/
|
|
91
|
+
export function buildAssetsManifest(distDir) {
|
|
92
|
+
const assetsDir = path.join(distDir, 'assets');
|
|
93
|
+
const fileNames = new Set([
|
|
94
|
+
...readViteManifestFileNames(distDir),
|
|
95
|
+
...scanAssetsDirectory(assetsDir),
|
|
96
|
+
]);
|
|
97
|
+
const offenders = [];
|
|
98
|
+
const files = [];
|
|
99
|
+
for (const name of [...fileNames].sort()) {
|
|
100
|
+
const filePath = path.join(assetsDir, name);
|
|
101
|
+
if (name.endsWith('.map')) {
|
|
102
|
+
offenders.push(`${name}: sourcemaps must not be published under assets/`);
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
if (!MCP_UI_ASSET_FILENAME_RE.test(name)) {
|
|
106
|
+
offenders.push(`${name}: does not match the content-hashed filename rule`);
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
let stat;
|
|
110
|
+
try {
|
|
111
|
+
stat = fs.statSync(filePath);
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
offenders.push(`${name}: referenced by the build but missing from ${assetsDir}`);
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
if (stat.size > MAX_ASSET_BYTES) {
|
|
118
|
+
offenders.push(`${name}: ${stat.size} bytes exceeds the ${MAX_ASSET_BYTES} byte per-asset limit`);
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
files.push({ name, size: stat.size, type: mimeTypeForAssetFile(name) });
|
|
122
|
+
}
|
|
123
|
+
if (offenders.length > 0) {
|
|
124
|
+
throw new Error(`serveBuiltUi: invalid files under ${assetsDir}:\n${offenders.map((o) => ` - ${o}`).join('\n')}`);
|
|
125
|
+
}
|
|
126
|
+
return { files };
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=assets-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assets-manifest.js","sourceRoot":"","sources":["../../src/ui/assets-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { UiAssetContent } from '../runtime.js';
|
|
2
|
+
import { type AssetsManifest } from './assets-manifest.js';
|
|
3
|
+
export interface ServeBuiltUiOptions {
|
|
4
|
+
/** Absolute path to the Vite build output directory containing `index.html`, `assets/`, `.vite/manifest.json`. */
|
|
5
|
+
distDir: string;
|
|
6
|
+
/** The app's manifest id — used to derive `ui://<appSlug>/assets/…` URIs. */
|
|
7
|
+
appSlug: string;
|
|
8
|
+
}
|
|
9
|
+
export interface ServeBuiltUi {
|
|
10
|
+
/** Cached at construction: meta + watchdog + relative asset tags. */
|
|
11
|
+
renderHtml(): string;
|
|
12
|
+
/** `null` for an unrecognized/unlisted/traversal-unsafe URI. Cached after first successful read. */
|
|
13
|
+
readAsset(uri: string): UiAssetContent | null;
|
|
14
|
+
/** `{ files: [{ name, size, type }] }`, cached at construction. */
|
|
15
|
+
readAssetsManifest(): AssetsManifest;
|
|
16
|
+
/** `ui://<appSlug>/assets/` */
|
|
17
|
+
assetUriPrefix: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Serve a Vite-built (`base: './'`) app UI over MCP `resources/read`: the
|
|
21
|
+
* shell HTML (opt-in relay meta + inline boot watchdog) plus the hashed
|
|
22
|
+
* `assets/` files it references, split out of the HTML payload. Boot-time
|
|
23
|
+
* validation (asset filenames, extensions, size, no sourcemaps) and the shell's
|
|
24
|
+
* relative-asset-path assertion both throw at construction — a misconfigured
|
|
25
|
+
* build must fail loudly here, never serve a blank frame in production.
|
|
26
|
+
*/
|
|
27
|
+
export declare function serveBuiltUi(options: ServeBuiltUiOptions): ServeBuiltUi;
|
|
28
|
+
//# sourceMappingURL=serve-built-ui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve-built-ui.d.ts","sourceRoot":"","sources":["../../src/ui/serve-built-ui.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAUhF,MAAM,WAAW,mBAAmB;IACnC,kHAAkH;IAClH,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC5B,qEAAqE;IACrE,UAAU,IAAI,MAAM,CAAC;IACrB,oGAAoG;IACpG,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAAC;IAC9C,mEAAmE;IACnE,kBAAkB,IAAI,cAAc,CAAC;IACrC,+BAA+B;IAC/B,cAAc,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY,CAgDvE"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { deriveAssetUriPrefix } from './asset-filename-rule.js';
|
|
4
|
+
import { buildAssetsManifest } from './assets-manifest.js';
|
|
5
|
+
import { MCP_UI_SHELL_WATCHDOG_SCRIPT } from './shell-watchdog.js';
|
|
6
|
+
const TEXT_ASSET_EXTENSIONS = new Set(['js', 'css', 'svg', 'json']);
|
|
7
|
+
const PRIVOS_UI_ASSETS_META = '<meta name="privos-ui-assets" content="relay">';
|
|
8
|
+
const PRIVOS_UI_ASSETS_META_RE = /<meta\b[^>]*\bname\s*=\s*["']privos-ui-assets["'][^>]*\bcontent\s*=\s*["']relay["']|<meta\b[^>]*\bcontent\s*=\s*["']relay["'][^>]*\bname\s*=\s*["']privos-ui-assets["']/i;
|
|
9
|
+
const ASSET_TAG_RE = /<(script|link)\b[^>]*>/gi;
|
|
10
|
+
const SRC_OR_HREF_RE = /\b(?:src|href)\s*=\s*(["'])(.*?)\1/i;
|
|
11
|
+
/**
|
|
12
|
+
* Serve a Vite-built (`base: './'`) app UI over MCP `resources/read`: the
|
|
13
|
+
* shell HTML (opt-in relay meta + inline boot watchdog) plus the hashed
|
|
14
|
+
* `assets/` files it references, split out of the HTML payload. Boot-time
|
|
15
|
+
* validation (asset filenames, extensions, size, no sourcemaps) and the shell's
|
|
16
|
+
* relative-asset-path assertion both throw at construction — a misconfigured
|
|
17
|
+
* build must fail loudly here, never serve a blank frame in production.
|
|
18
|
+
*/
|
|
19
|
+
export function serveBuiltUi(options) {
|
|
20
|
+
const { distDir, appSlug } = options;
|
|
21
|
+
const assetUriPrefix = deriveAssetUriPrefix(appSlug);
|
|
22
|
+
const assetsDir = path.join(distDir, 'assets');
|
|
23
|
+
// Boot-time validation of every file under assets/ — throws with the full
|
|
24
|
+
// offender list on filename-rule / extension / size / sourcemap violations.
|
|
25
|
+
const manifest = buildAssetsManifest(distDir);
|
|
26
|
+
const manifestFiles = new Map(manifest.files.map((file) => [file.name, file]));
|
|
27
|
+
const assetsDirRealpath = fs.existsSync(assetsDir) ? fs.realpathSync(assetsDir) : undefined;
|
|
28
|
+
const html = renderShellHtml(distDir);
|
|
29
|
+
const assetCache = new Map();
|
|
30
|
+
return {
|
|
31
|
+
renderHtml() {
|
|
32
|
+
return html;
|
|
33
|
+
},
|
|
34
|
+
readAsset(uri) {
|
|
35
|
+
const cached = assetCache.get(uri);
|
|
36
|
+
if (cached)
|
|
37
|
+
return cached;
|
|
38
|
+
if (!uri.startsWith(assetUriPrefix))
|
|
39
|
+
return null;
|
|
40
|
+
const fileName = uri.slice(assetUriPrefix.length);
|
|
41
|
+
const entry = manifestFiles.get(fileName);
|
|
42
|
+
if (!entry || !assetsDirRealpath)
|
|
43
|
+
return null;
|
|
44
|
+
const filePath = path.join(assetsDir, fileName);
|
|
45
|
+
let realFilePath;
|
|
46
|
+
try {
|
|
47
|
+
realFilePath = fs.realpathSync(filePath);
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
if (!isContainedIn(assetsDirRealpath, realFilePath))
|
|
53
|
+
return null;
|
|
54
|
+
const ext = fileName.slice(fileName.lastIndexOf('.') + 1).toLowerCase();
|
|
55
|
+
const resource = TEXT_ASSET_EXTENSIONS.has(ext)
|
|
56
|
+
? { uri, mimeType: entry.type, text: fs.readFileSync(realFilePath, 'utf8') }
|
|
57
|
+
: { uri, mimeType: entry.type, blob: fs.readFileSync(realFilePath).toString('base64') };
|
|
58
|
+
assetCache.set(uri, resource);
|
|
59
|
+
return resource;
|
|
60
|
+
},
|
|
61
|
+
readAssetsManifest() {
|
|
62
|
+
return manifest;
|
|
63
|
+
},
|
|
64
|
+
assetUriPrefix,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
function isContainedIn(dirRealpath, fileRealpath) {
|
|
68
|
+
const relative = path.relative(dirRealpath, fileRealpath);
|
|
69
|
+
return relative !== '' && relative !== '..' && !relative.startsWith(`..${path.sep}`) && !path.isAbsolute(relative);
|
|
70
|
+
}
|
|
71
|
+
function renderShellHtml(distDir) {
|
|
72
|
+
const indexPath = path.join(distDir, 'index.html');
|
|
73
|
+
let raw;
|
|
74
|
+
try {
|
|
75
|
+
raw = fs.readFileSync(indexPath, 'utf8');
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
throw new Error(`serveBuiltUi: cannot read ${indexPath}: ${err.message}`);
|
|
79
|
+
}
|
|
80
|
+
assertRelativeAssetTags(raw, indexPath);
|
|
81
|
+
let html = raw;
|
|
82
|
+
if (!PRIVOS_UI_ASSETS_META_RE.test(html)) {
|
|
83
|
+
html = injectIntoHead(html, ` ${PRIVOS_UI_ASSETS_META}\n`, { atStart: false });
|
|
84
|
+
}
|
|
85
|
+
html = injectIntoHead(html, ` <script>${MCP_UI_SHELL_WATCHDOG_SCRIPT}</script>\n`, { atStart: true });
|
|
86
|
+
return html;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Every `<script src>` / `<link href>` in the shell must be relative
|
|
90
|
+
* (`./assets/…` or `assets/…`). An absolute or external reference means the
|
|
91
|
+
* app was built without Vite `base: './'` and would resolve against the
|
|
92
|
+
* wrong origin once the tab renders it — fail construction, not the frame.
|
|
93
|
+
*/
|
|
94
|
+
function assertRelativeAssetTags(html, indexPath) {
|
|
95
|
+
const offenders = [];
|
|
96
|
+
ASSET_TAG_RE.lastIndex = 0;
|
|
97
|
+
let tagMatch;
|
|
98
|
+
while ((tagMatch = ASSET_TAG_RE.exec(html))) {
|
|
99
|
+
const tag = tagMatch[0];
|
|
100
|
+
const refMatch = SRC_OR_HREF_RE.exec(tag);
|
|
101
|
+
if (!refMatch)
|
|
102
|
+
continue;
|
|
103
|
+
const ref = refMatch[2];
|
|
104
|
+
if (ref && (ref.startsWith('./assets/') || ref.startsWith('assets/')))
|
|
105
|
+
continue;
|
|
106
|
+
offenders.push(tag.length > 120 ? `${tag.slice(0, 117)}...` : tag);
|
|
107
|
+
}
|
|
108
|
+
if (offenders.length > 0) {
|
|
109
|
+
throw new Error(`serveBuiltUi: ${indexPath} has non-relative asset references — build with Vite base: './':\n${offenders
|
|
110
|
+
.map((o) => ` - ${o}`)
|
|
111
|
+
.join('\n')}`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
function injectIntoHead(html, snippet, opts) {
|
|
115
|
+
if (opts.atStart) {
|
|
116
|
+
const headOpen = /<head[^>]*>/i.exec(html);
|
|
117
|
+
if (headOpen) {
|
|
118
|
+
const insertAt = headOpen.index + headOpen[0].length;
|
|
119
|
+
return `${html.slice(0, insertAt)}\n${snippet}${html.slice(insertAt)}`;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
const headCloseIdx = html.search(/<\/head>/i);
|
|
124
|
+
if (headCloseIdx !== -1) {
|
|
125
|
+
return html.slice(0, headCloseIdx) + snippet + html.slice(headCloseIdx);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
// No <head> tag found in a well-formed Vite build — fall back to prepending.
|
|
129
|
+
return snippet + html;
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=serve-built-ui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve-built-ui.js","sourceRoot":"","sources":["../../src/ui/serve-built-ui.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inline boot watchdog injected at the top of `<head>`. No dependencies, runs
|
|
3
|
+
* before any other script/link tag so its capture-phase `error` listener is
|
|
4
|
+
* registered before those tags start loading. Two failure signals:
|
|
5
|
+
* - a script/link `error` event (asset 404/network failure), or
|
|
6
|
+
* - a 10 s timeout without `window.__privosUiBooted` being set by the app's
|
|
7
|
+
* own bootstrap once it renders.
|
|
8
|
+
* Either one replaces `#root` (or `document.body`) with a visible retry panel
|
|
9
|
+
* and notifies the host frame via `postMessage` so the Hub can log it.
|
|
10
|
+
*/
|
|
11
|
+
export declare const MCP_UI_SHELL_WATCHDOG_SCRIPT = "(function(){\nfunction fail(){\nif(window.__privosUiBooted)return;\nvar root=document.getElementById('root')||document.body;\nif(root){root.innerHTML='<div style=\"font:14px system-ui;padding:24px;text-align:center\">App assets unavailable \u2014 <button onclick=\"location.reload()\">Retry</button></div>';}\ntry{parent.postMessage({method:'ui/asset-load-failed'},'*');}catch(e){}\n}\nwindow.addEventListener('error',function(e){\nvar t=e&&e.target;\nif(!t||(t.tagName!=='SCRIPT'&&t.tagName!=='LINK'))return;\nfail();\n},true);\nsetTimeout(fail,10000);\n})();";
|
|
12
|
+
//# sourceMappingURL=shell-watchdog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell-watchdog.d.ts","sourceRoot":"","sources":["../../src/ui/shell-watchdog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,eAAO,MAAM,4BAA4B,qjBAanC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inline boot watchdog injected at the top of `<head>`. No dependencies, runs
|
|
3
|
+
* before any other script/link tag so its capture-phase `error` listener is
|
|
4
|
+
* registered before those tags start loading. Two failure signals:
|
|
5
|
+
* - a script/link `error` event (asset 404/network failure), or
|
|
6
|
+
* - a 10 s timeout without `window.__privosUiBooted` being set by the app's
|
|
7
|
+
* own bootstrap once it renders.
|
|
8
|
+
* Either one replaces `#root` (or `document.body`) with a visible retry panel
|
|
9
|
+
* and notifies the host frame via `postMessage` so the Hub can log it.
|
|
10
|
+
*/
|
|
11
|
+
export const MCP_UI_SHELL_WATCHDOG_SCRIPT = `(function(){
|
|
12
|
+
function fail(){
|
|
13
|
+
if(window.__privosUiBooted)return;
|
|
14
|
+
var root=document.getElementById('root')||document.body;
|
|
15
|
+
if(root){root.innerHTML='<div style="font:14px system-ui;padding:24px;text-align:center">App assets unavailable — <button onclick="location.reload()">Retry</button></div>';}
|
|
16
|
+
try{parent.postMessage({method:'ui/asset-load-failed'},'*');}catch(e){}
|
|
17
|
+
}
|
|
18
|
+
window.addEventListener('error',function(e){
|
|
19
|
+
var t=e&&e.target;
|
|
20
|
+
if(!t||(t.tagName!=='SCRIPT'&&t.tagName!=='LINK'))return;
|
|
21
|
+
fail();
|
|
22
|
+
},true);
|
|
23
|
+
setTimeout(fail,10000);
|
|
24
|
+
})();`;
|
|
25
|
+
//# sourceMappingURL=shell-watchdog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell-watchdog.js","sourceRoot":"","sources":["../../src/ui/shell-watchdog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;;;;;;;;;;;;;MAatC,CAAC"}
|
|
@@ -184,5 +184,22 @@ export declare function verifyDispatchAssertion(input: {
|
|
|
184
184
|
context: WorkloadBrokerContext;
|
|
185
185
|
now?: number;
|
|
186
186
|
}): VerifiedDispatchAssertion;
|
|
187
|
+
/** Reason-specific `error.data.code` returned with `Authenticated private dispatch required`. */
|
|
188
|
+
export type DispatchRejectionCodeV3 = 'DISPATCH_ASSERTION_MISSING' | 'DISPATCH_ASSERTION_INVALID' | 'DISPATCH_ASSERTION_AMBIGUOUS' | 'DISPATCH_ASSERTION_UNEXPECTED' | 'DISPATCH_ASSERTION_REPLAYED' | 'DISPATCH_ASSERTION_EXPIRED' | 'DISPATCH_ASSERTION_BODY_MISMATCH' | 'DISPATCH_ASSERTION_BINDING_MISMATCH' | 'DISPATCH_TRUST_INVALID';
|
|
189
|
+
/**
|
|
190
|
+
* Maps a verifier failure (the thrown `Error.message`, or a bare reason string)
|
|
191
|
+
* to the code the Hub sees. Every code keeps the same JSON-RPC error and
|
|
192
|
+
* message; only `data.code` sharpens, so a Hub that matches `DISPATCH_*` keeps
|
|
193
|
+
* working. Unknown reasons collapse to `DISPATCH_ASSERTION_INVALID` so a new
|
|
194
|
+
* verifier failure can never leak an unmapped internal string.
|
|
195
|
+
*/
|
|
196
|
+
export declare function dispatchRejectionCode(reason: unknown): DispatchRejectionCodeV3;
|
|
197
|
+
/**
|
|
198
|
+
* The reason string behind a rejection, for the app's own log line. Only the
|
|
199
|
+
* verifier's closed set of reasons passes through; any other error message
|
|
200
|
+
* (a broker/transport failure, a library error) is clamped to `other` so a
|
|
201
|
+
* log never carries an arbitrary upstream string.
|
|
202
|
+
*/
|
|
203
|
+
export declare function dispatchRejectionReason(reason: unknown): string;
|
|
187
204
|
export {};
|
|
188
205
|
//# sourceMappingURL=dispatch-assertion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch-assertion.d.ts","sourceRoot":"","sources":["../../src/workload/dispatch-assertion.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"dispatch-assertion.d.ts","sourceRoot":"","sources":["../../src/workload/dispatch-assertion.ts"],"names":[],"mappings":"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"}
|