devframe 0.9.0-beta.3 → 0.9.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/{_shared-CGPVmXUM.mjs → _shared-CKZPvSrN.mjs} +2 -1
  2. package/dist/{_shared-Bm8p4-fD.d.mts → _shared-QkI6ljJS.d.mts} +2 -2
  3. package/dist/adapters/build.d.mts +10 -12
  4. package/dist/adapters/build.mjs +23 -27
  5. package/dist/adapters/cac.d.mts +1 -1
  6. package/dist/adapters/cac.mjs +3 -4
  7. package/dist/adapters/dev.d.mts +19 -5
  8. package/dist/adapters/dev.mjs +2 -2
  9. package/dist/adapters/embedded.d.mts +1 -1
  10. package/dist/adapters/initiate.d.mts +4 -3
  11. package/dist/adapters/initiate.mjs +1 -1
  12. package/dist/adapters/mcp.d.mts +1 -1
  13. package/dist/adapters/mcp.mjs +1 -1
  14. package/dist/cli/main.mjs +2 -2
  15. package/dist/client/index.d.mts +1 -1
  16. package/dist/client/index.mjs +2 -1175
  17. package/dist/constants.d.mts +1 -2
  18. package/dist/constants.mjs +1 -2
  19. package/dist/{context-DV4uWieM.d.mts → context-CQkRTbAc.d.mts} +1 -1
  20. package/dist/{context-b6iSomtv.mjs → context-D0HD0F7C.mjs} +19 -7
  21. package/dist/{context-CMSryXs-.mjs → context-D0jErmlx.mjs} +1 -1
  22. package/dist/{dev-4xjiynUD.mjs → dev-QEuT8SOF.mjs} +15 -9
  23. package/dist/{devframe-5oblos7I.d.mts → devframe-Cfx6doi4.d.mts} +41 -64
  24. package/dist/{diagnostics-C7IGWppM.mjs → diagnostics-DEuH3P5O.mjs} +32 -0
  25. package/dist/{host-agent-BBkKT27Q.mjs → host-agent-C5HjzfBz.mjs} +41 -3
  26. package/dist/{host-h3-CzCZwtuV.mjs → host-h3-Crkzm42q.mjs} +2 -2
  27. package/dist/{http-Z0w9baEe.mjs → http-CVwj7b4g.mjs} +2 -2
  28. package/dist/{index-BzDl02lt.d.mts → index-MYi1SZVL.d.mts} +2 -2
  29. package/dist/index.d.mts +3 -2
  30. package/dist/{instance-registry-Du_hbx-j.mjs → instance-registry-M2p-z6xE.mjs} +1 -1
  31. package/dist/{instance-shell-B0TwOxCl.mjs → instance-shell-DJ8s-MFw.mjs} +5 -5
  32. package/dist/{instance-shell-B-BSVp37.d.mts → instance-shell-D_UA0Idz.d.mts} +2 -2
  33. package/dist/internal/index.d.mts +72 -10
  34. package/dist/internal/index.mjs +7 -7
  35. package/dist/node/auth.d.mts +2 -2
  36. package/dist/node/auth.mjs +1 -1
  37. package/dist/node/hub-internals.d.mts +2 -2
  38. package/dist/node/hub-internals.mjs +2 -2
  39. package/dist/node/index.d.mts +1 -1
  40. package/dist/node/index.mjs +2 -2
  41. package/dist/recipes/common-rpc-functions.d.mts +1 -1
  42. package/dist/recipes/interactive-auth.d.mts +2 -2
  43. package/dist/recipes/interactive-auth.mjs +2 -2
  44. package/dist/remote-assets-DclsYyoL.d.mts +106 -0
  45. package/dist/rpc/transports/ws-bun.d.mts +1 -1
  46. package/dist/{rpc-core-B4Qm66Qt.d.mts → rpc-core-C8JQ3p7A.d.mts} +2 -2
  47. package/dist/{rpc-core-Cva-0pw0.mjs → rpc-core-IhcWl_xn.mjs} +1 -1
  48. package/dist/state-Cc1IeSmQ.mjs +1291 -0
  49. package/dist/storage-BVuipbGS.mjs +137 -0
  50. package/dist/types/index.d.mts +3 -2
  51. package/dist/utils/events.d.mts +1 -1
  52. package/dist/utils/open.d.mts +2 -10
  53. package/dist/utils/open.mjs +56 -1
  54. package/dist/utils/remote-assets.d.mts +15 -0
  55. package/dist/utils/remote-assets.mjs +309 -0
  56. package/dist/utils/serve-static.d.mts +13 -5
  57. package/dist/utils/serve-static.mjs +103 -9
  58. package/dist/utils/shared-state.d.mts +1 -1
  59. package/dist/utils/streaming-channel.d.mts +1 -1
  60. package/package.json +2 -3
  61. package/skills/devframe/SKILL.md +4 -5
  62. package/dist/open-Dz4V4irZ.mjs +0 -547
  63. package/dist/state-BeUHDDjk.mjs +0 -108
  64. package/dist/storage-CaUVrBrG.mjs +0 -1122
  65. package/skills/devframe/templates/spa-devframe.ts +0 -38
@@ -1,8 +1,9 @@
1
- import { At as AgentToolProviderHandle, B as DevframeHost, Ct as AgentManifest, Dt as AgentTool, Et as AgentResourceInput, Mt as DevframeAgentHostEvents, Nt as EventEmitter, Ot as AgentToolInput, S as DevframeNodeContext, St as AgentHandle, Tt as AgentResourceContent, jt as DevframeAgentHost$1, kt as AgentToolProvider, wt as AgentResource } from "../devframe-5oblos7I.mjs";
1
+ import { Ct as AgentToolProviderHandle, Et as EventEmitter, P as DevframeHost, St as AgentToolProvider, Tt as DevframeAgentHostEvents, _t as AgentResource, bt as AgentTool, g as DevframeNodeContext, gt as AgentManifest, ht as AgentHandle, vt as AgentResourceContent, wt as DevframeAgentHost$1, xt as AgentToolInput, yt as AgentResourceInput } from "../devframe-Cfx6doi4.mjs";
2
2
  import { v as RpcFunctionDefinitionAny } from "../types-Djq7CBXh.mjs";
3
- import { a as InstanceShellInit, c as StartedServer, d as samePath, f as DevframeInstanceRecord, h as registerDevframeInstance, i as InstanceShellApi, l as createInstanceShell, m as listLiveDevframeInstances, n as InstanceRegisterConfig, o as InstanceShellInternals, p as DevframeInstanceRegistration, r as InstanceShell, s as InstanceWsTier, t as CreateInstanceShellOptions, u as resolveInstanceRegister } from "../instance-shell-B-BSVp37.mjs";
4
- import { n as normalizeBasePath, r as resolveBasePath } from "../_shared-Bm8p4-fD.mjs";
5
- import { n as CreateContextRpcServerOptions, r as createContextRpcServer, t as ContextRpcServer } from "../rpc-core-B4Qm66Qt.mjs";
3
+ import { i as RemoteAssetsStore } from "../remote-assets-DclsYyoL.mjs";
4
+ import { a as InstanceShellInit, c as StartedServer, d as samePath, f as DevframeInstanceRecord, h as registerDevframeInstance, i as InstanceShellApi, l as createInstanceShell, m as listLiveDevframeInstances, n as InstanceRegisterConfig, o as InstanceShellInternals, p as DevframeInstanceRegistration, r as InstanceShell, s as InstanceWsTier, t as CreateInstanceShellOptions, u as resolveInstanceRegister } from "../instance-shell-D_UA0Idz.mjs";
5
+ import { n as normalizeBasePath, r as resolveBasePath } from "../_shared-QkI6ljJS.mjs";
6
+ import { n as CreateContextRpcServerOptions, r as createContextRpcServer, t as ContextRpcServer } from "../rpc-core-C8JQ3p7A.mjs";
6
7
  import { Diagnostic } from "nostics";
7
8
  //#region src/node/agent-args.d.ts
8
9
  /**
@@ -225,6 +226,67 @@ declare const diagnostics: import("nostics").Diagnostics<{
225
226
  readonly why: () => string;
226
227
  readonly fix: "Clients connect over the SSE endpoint instead — no upgrade wiring is needed. Remove `ws: false` if the instance should serve a WebSocket after all.";
227
228
  };
229
+ readonly DF0058: {
230
+ readonly why: (p: {
231
+ id: string;
232
+ }) => string;
233
+ readonly fix: "Pass `{ force: true }` to `createDevServer()` to run it anyway, or drop `capabilities.dev: false` on the definition.";
234
+ };
235
+ readonly DF0059: {
236
+ readonly why: (p: {
237
+ package: string;
238
+ version: string;
239
+ provider: string;
240
+ reason: string;
241
+ }) => string;
242
+ readonly fix: "Requests fall back to probing the provider per file. Check network access to the provider, or install the assets package locally so no listing is needed.";
243
+ };
244
+ readonly DF0060: {
245
+ readonly why: (p: {
246
+ url: string;
247
+ package: string;
248
+ reason: string;
249
+ }) => string;
250
+ readonly fix: "Install the assets package locally (`npm install <package>`) to serve it with zero network, or check network access to the configured provider.";
251
+ };
252
+ readonly DF0061: {
253
+ readonly why: (p: {
254
+ package: string;
255
+ required: string;
256
+ installed: string;
257
+ }) => string;
258
+ readonly fix: "Align the installed assets package with the version its node package declares — they are published in lockstep.";
259
+ };
260
+ readonly DF0062: {
261
+ readonly why: (p: {
262
+ package: string;
263
+ required: string;
264
+ installed: string;
265
+ }) => string;
266
+ readonly fix: "Install the exact declared version to serve byte-identical assets.";
267
+ };
268
+ readonly DF0063: {
269
+ readonly why: (p: {
270
+ filepath: string;
271
+ reason: string;
272
+ }) => string;
273
+ readonly fix: "The response was still served; only caching failed. Check that the cache directory is writable and has free space.";
274
+ };
275
+ readonly DF0064: {
276
+ readonly why: (p: {
277
+ package: string;
278
+ version: string;
279
+ reason: string;
280
+ }) => string;
281
+ readonly fix: "Static builds need every asset file up front. Install the assets package locally, or ensure the provider (and its file-listing API) is reachable during the build.";
282
+ };
283
+ readonly DF0065: {
284
+ readonly why: (p: {
285
+ field: "package" | "version";
286
+ value: string;
287
+ }) => string;
288
+ readonly fix: "A remote-assets `package` must be a valid npm package name and `version` an exact semver version (e.g. `1.2.3`) — they are interpolated into CDN URLs and the cache path.";
289
+ };
228
290
  }, readonly [typeof devframeReporter]>;
229
291
  //#endregion
230
292
  //#region src/node/host-agent.d.ts
@@ -264,8 +326,6 @@ declare class DevframeAgentHost implements DevframeAgentHost$1 {
264
326
  //#endregion
265
327
  //#region src/node/host-h3.d.ts
266
328
  interface CreateH3DevframeHostOptions {
267
- /** The h3 app instance — registered once the CLI adapter lands. */
268
- app?: unknown;
269
329
  /**
270
330
  * Host the standalone server listens on, e.g. `http://localhost:9999`.
271
331
  * Consumed by `resolveOrigin` for dock entries that need an absolute URL.
@@ -274,11 +334,13 @@ interface CreateH3DevframeHostOptions {
274
334
  */
275
335
  origin: string | (() => string);
276
336
  /**
277
- * Register a static-file handler at `base` serving files from `distDir`.
278
- * Wired into the h3 app once the CLI adapter lands (commit 5). For now
279
- * the CLI isn't running, so the default is a no-op.
337
+ * Register a static-file handler at `base` serving files from `source` —
338
+ * a local directory or a resolved remote-assets back-proxy store (both
339
+ * accepted by `devframe/utils/serve-static`). `mountStatic` forwards to
340
+ * it; when omitted the host serves no SPA (bridge mode, where the SPA is
341
+ * hosted elsewhere).
280
342
  */
281
- mount?: (base: string, distDir: string) => void | Promise<void>;
343
+ mount?: (base: string, source: string | RemoteAssetsStore) => void | Promise<void>;
282
344
  /**
283
345
  * Namespace for storage paths returned by `getStorageDir`. Workspace
284
346
  * state (committable) lives under `${workspaceRoot}/.devframe/`, project
@@ -1,9 +1,9 @@
1
1
  import { n as peekRpcWireFrame, t as createRpcWireCodec } from "../wire-codec-9VhIKnyp.mjs";
2
- import { t as diagnostics } from "../diagnostics-C7IGWppM.mjs";
3
- import { n as coerceAgentPositionalArgs, t as DevframeAgentHost } from "../host-agent-BBkKT27Q.mjs";
4
- import { n as resolveBasePath, t as normalizeBasePath } from "../_shared-CGPVmXUM.mjs";
5
- import { t as createH3DevframeHost } from "../host-h3-CzCZwtuV.mjs";
6
- import { i as registerDevframeInstance, n as listLiveDevframeInstances } from "../instance-registry-Du_hbx-j.mjs";
7
- import { i as normalizeHttpServerUrl, n as resolveInstanceRegister, r as samePath, t as createInstanceShell } from "../instance-shell-B0TwOxCl.mjs";
8
- import { t as createContextRpcServer } from "../rpc-core-Cva-0pw0.mjs";
2
+ import { t as diagnostics } from "../diagnostics-DEuH3P5O.mjs";
3
+ import { n as coerceAgentPositionalArgs, t as DevframeAgentHost } from "../host-agent-C5HjzfBz.mjs";
4
+ import { n as resolveBasePath, t as normalizeBasePath } from "../_shared-CKZPvSrN.mjs";
5
+ import { t as createH3DevframeHost } from "../host-h3-Crkzm42q.mjs";
6
+ import { i as registerDevframeInstance, n as listLiveDevframeInstances } from "../instance-registry-M2p-z6xE.mjs";
7
+ import { i as normalizeHttpServerUrl, n as resolveInstanceRegister, r as samePath, t as createInstanceShell } from "../instance-shell-DJ8s-MFw.mjs";
8
+ import { t as createContextRpcServer } from "../rpc-core-IhcWl_xn.mjs";
9
9
  export { DevframeAgentHost, coerceAgentPositionalArgs, createContextRpcServer, createH3DevframeHost, createInstanceShell, createRpcWireCodec, diagnostics, listLiveDevframeInstances, normalizeBasePath, normalizeHttpServerUrl, peekRpcWireFrame, registerDevframeInstance, resolveBasePath, resolveInstanceRegister, samePath };
@@ -1,3 +1,3 @@
1
- import { p as DevframeAuthHandler } from "../devframe-5oblos7I.mjs";
2
- import { a as verifyAuthToken, i as refreshTempAuthCode, n as exchangeTempAuthCode, o as revokeActiveConnectionsForToken, r as getTempAuthCode, s as revokeAuthToken, t as buildOtpAuthUrl } from "../index-BzDl02lt.mjs";
1
+ import { u as DevframeAuthHandler } from "../devframe-Cfx6doi4.mjs";
2
+ import { a as verifyAuthToken, i as refreshTempAuthCode, n as exchangeTempAuthCode, o as revokeActiveConnectionsForToken, r as getTempAuthCode, s as revokeAuthToken, t as buildOtpAuthUrl } from "../index-MYi1SZVL.mjs";
3
3
  export { DevframeAuthHandler, buildOtpAuthUrl, exchangeTempAuthCode, getTempAuthCode, refreshTempAuthCode, revokeActiveConnectionsForToken, revokeAuthToken, verifyAuthToken };
@@ -1,3 +1,3 @@
1
1
  import { n as revokeAuthToken, t as revokeActiveConnectionsForToken } from "../revoke-DZbJ7Cl0.mjs";
2
- import { a as verifyAuthToken, i as refreshTempAuthCode, n as exchangeTempAuthCode, r as getTempAuthCode, t as buildOtpAuthUrl } from "../state-BeUHDDjk.mjs";
2
+ import { a as verifyAuthToken, i as refreshTempAuthCode, n as exchangeTempAuthCode, r as getTempAuthCode, t as buildOtpAuthUrl } from "../state-Cc1IeSmQ.mjs";
3
3
  export { buildOtpAuthUrl, exchangeTempAuthCode, getTempAuthCode, refreshTempAuthCode, revokeActiveConnectionsForToken, revokeAuthToken, verifyAuthToken };
@@ -1,3 +1,3 @@
1
- import { a as internalContextMap, i as getInternalContext, n as InternalAnonymousAuthStorage, r as RemoteTokenRecord, t as DevframeInternalContext } from "../context-DV4uWieM.mjs";
2
- import { n as normalizeBasePath, r as resolveBasePath } from "../_shared-Bm8p4-fD.mjs";
1
+ import { a as internalContextMap, i as getInternalContext, n as InternalAnonymousAuthStorage, r as RemoteTokenRecord, t as DevframeInternalContext } from "../context-CQkRTbAc.mjs";
2
+ import { n as normalizeBasePath, r as resolveBasePath } from "../_shared-QkI6ljJS.mjs";
3
3
  export { type DevframeInternalContext, type InternalAnonymousAuthStorage, type RemoteTokenRecord, getInternalContext, internalContextMap, normalizeBasePath, resolveBasePath };
@@ -1,3 +1,3 @@
1
- import { n as resolveBasePath, t as normalizeBasePath } from "../_shared-CGPVmXUM.mjs";
2
- import { n as internalContextMap, t as getInternalContext } from "../context-CMSryXs-.mjs";
1
+ import { n as resolveBasePath, t as normalizeBasePath } from "../_shared-CKZPvSrN.mjs";
2
+ import { n as internalContextMap, t as getInternalContext } from "../context-D0jErmlx.mjs";
3
3
  export { getInternalContext, internalContextMap, normalizeBasePath, resolveBasePath };
@@ -1,4 +1,4 @@
1
- import { B as DevframeHost, J as RpcFunctionsHost, S as DevframeNodeContext, _t as SharedState } from "../devframe-5oblos7I.mjs";
1
+ import { P as DevframeHost, V as RpcFunctionsHost, g as DevframeNodeContext, ut as SharedState } from "../devframe-Cfx6doi4.mjs";
2
2
  import "../index-tdrk1bzV.mjs";
3
3
  import { v as RpcFunctionDefinitionAny } from "../types-Djq7CBXh.mjs";
4
4
  import { BirpcGroup } from "birpc";
@@ -1,3 +1,3 @@
1
- import { t as createStorage } from "../storage-CaUVrBrG.mjs";
2
- import { t as createHostContext } from "../context-b6iSomtv.mjs";
1
+ import { t as createHostContext } from "../context-D0HD0F7C.mjs";
2
+ import { t as createStorage } from "../storage-BVuipbGS.mjs";
3
3
  export { createHostContext, createStorage };
@@ -1,4 +1,4 @@
1
- import "../devframe-5oblos7I.mjs";
1
+ import "../devframe-Cfx6doi4.mjs";
2
2
  import "../index-tdrk1bzV.mjs";
3
3
  import { E as Thenable, S as RpcFunctionSetupResult, c as RpcDump, g as RpcFunctionAgentOptions } from "../types-Djq7CBXh.mjs";
4
4
  import { SimpleSchema } from "../utils/simple-schema.mjs";
@@ -1,5 +1,5 @@
1
- import { S as DevframeNodeContext, p as DevframeAuthHandler } from "../devframe-5oblos7I.mjs";
2
- import "../index-BzDl02lt.mjs";
1
+ import { g as DevframeNodeContext, u as DevframeAuthHandler } from "../devframe-Cfx6doi4.mjs";
2
+ import "../index-MYi1SZVL.mjs";
3
3
  //#region src/recipes/interactive-auth.d.ts
4
4
  interface CreateInteractiveAuthOptions {
5
5
  /**
@@ -1,8 +1,8 @@
1
1
  import { n as colors } from "../diagnostics-reporter-CsIG85Q5.mjs";
2
2
  import { n as defineRpcFunction } from "../define-BLWPsH6y.mjs";
3
3
  import { isAnonymousRpcMethod } from "../constants.mjs";
4
- import { a as verifyAuthToken, n as exchangeTempAuthCode, r as getTempAuthCode, t as buildOtpAuthUrl } from "../state-BeUHDDjk.mjs";
5
- import { t as getInternalContext } from "../context-CMSryXs-.mjs";
4
+ import { a as verifyAuthToken, n as exchangeTempAuthCode, r as getTempAuthCode, t as buildOtpAuthUrl } from "../state-Cc1IeSmQ.mjs";
5
+ import { t as getInternalContext } from "../context-D0jErmlx.mjs";
6
6
  import { t as s } from "../simple-schema-DQPZrAaZ.mjs";
7
7
  //#region src/recipes/interactive-auth.ts
8
8
  function defaultBanner(info) {
@@ -0,0 +1,106 @@
1
+ //#region src/types/remote-assets.d.ts
2
+ /**
3
+ * A version-locked pointer at browser assets published as their own npm
4
+ * package (e.g. `@devframes/plugin-git-client`), served through devframe's
5
+ * caching back-proxy instead of a directory shipped inside the node package.
6
+ *
7
+ * Resolution order at serve time:
8
+ *
9
+ * 1. The package installed locally (resolved from {@link resolveFrom})
10
+ * — the zero-network / air-gap path. Version skew warns; a major
11
+ * version mismatch throws.
12
+ * 2. The per-file cache under
13
+ * `<storageDir project>/.remote-assets/<package>@<version>/`.
14
+ * 3. The CDN {@link provider} — each requested file streams through to
15
+ * the browser while being written into the cache.
16
+ *
17
+ * Anywhere a static mount accepts a dist directory (`cli.distDir`,
18
+ * `hostStatic`, `mountStatic`) it also accepts this object — see
19
+ * {@link StaticAssetsSource}.
20
+ */
21
+ interface RemoteAssets {
22
+ /** npm package name that ships the assets, e.g. `@devframes/plugin-git-client`. */
23
+ package: string;
24
+ /** Exact version to serve, e.g. `1.2.3`. Typically the host package's own version. */
25
+ version: string;
26
+ /**
27
+ * Subpath inside the package the served assets live under.
28
+ *
29
+ * @default 'dist'
30
+ */
31
+ path?: string;
32
+ /**
33
+ * CDN that mirrors npm and serves individual package files.
34
+ *
35
+ * @default 'jsdelivr'
36
+ */
37
+ provider?: RemoteAssetsProvider;
38
+ /**
39
+ * `import.meta.url` of the declaring module. When set, a locally
40
+ * installed copy of {@link package} is resolved from this module's own
41
+ * dependency graph first (works under pnpm's strict layout) and served
42
+ * with zero network. Omitting it skips the installed-package step —
43
+ * cache + CDN still work.
44
+ */
45
+ resolveFrom?: string;
46
+ /** Custom fetch implementation (proxies, tests). Defaults to the global `fetch`. */
47
+ fetch?: typeof globalThis.fetch;
48
+ /**
49
+ * Never touch the network: serve only from the locally installed package
50
+ * or files already in the cache.
51
+ *
52
+ * @default false
53
+ */
54
+ offline?: boolean;
55
+ }
56
+ /**
57
+ * Built-in CDN providers (`'jsdelivr'` — default, `'unpkg'`) or a custom
58
+ * provider for corp mirrors.
59
+ */
60
+ type RemoteAssetsProvider = 'jsdelivr' | 'unpkg' | RemoteAssetsProviderCustom;
61
+ /** A custom {@link RemoteAssets} CDN provider (e.g. an internal npm mirror). */
62
+ interface RemoteAssetsProviderCustom {
63
+ /**
64
+ * Absolute URL serving `filePath` (package-relative, POSIX, no leading
65
+ * slash) of `pkg@version`.
66
+ */
67
+ fileUrl: (pkg: string, version: string, filePath: string) => string;
68
+ /**
69
+ * List every file path in `pkg@version` (package-relative, no leading
70
+ * slash). Powers request-path resolution (correct 404s / SPA fallback)
71
+ * and build-time materialization. When omitted, requests are resolved by
72
+ * probing {@link fileUrl} directly and builds cannot materialize from
73
+ * this provider.
74
+ */
75
+ listFiles?: (pkg: string, version: string, fetchImpl: typeof globalThis.fetch) => Promise<string[]>;
76
+ }
77
+ /**
78
+ * What every static-assets seam accepts: a local dist directory, or a
79
+ * {@link RemoteAssets} pointer served through the caching back-proxy.
80
+ */
81
+ type StaticAssetsSource = string | RemoteAssets;
82
+ /**
83
+ * A resolved, servable handle over a {@link RemoteAssets} declaration —
84
+ * produced by `resolveStaticAssetsSource()` (`devframe/utils/remote-assets`)
85
+ * and consumed by the static-serving engine (`devframe/utils/serve-static`).
86
+ */
87
+ interface RemoteAssetsStore {
88
+ /** The declaration this store serves (with defaults applied). */
89
+ readonly assets: RemoteAssets & {
90
+ path: string;
91
+ };
92
+ /**
93
+ * Resolve a request path (relative to the mount base, SPA fallback to
94
+ * `index.html`) and return a `Response`: streamed from the cache when
95
+ * present, otherwise through the provider while being written into the
96
+ * cache. `null` on a miss (404); throws on provider/network failure.
97
+ */
98
+ serve: (urlPath: string) => Promise<Response | null>;
99
+ /**
100
+ * Download every listed file under `assets.path` into `targetDir`
101
+ * (paths relative to `assets.path`). Requires a provider file listing.
102
+ */
103
+ materialize: (targetDir: string) => Promise<void>;
104
+ }
105
+ //#endregion
106
+ export { StaticAssetsSource as a, RemoteAssetsStore as i, RemoteAssetsProvider as n, RemoteAssetsProviderCustom as r, RemoteAssets as t };
@@ -1,5 +1,5 @@
1
1
  import { n as WsOriginRegistry } from "../../ws-server-D1d3QM9f.mjs";
2
- import { t as ContextRpcServer } from "../../rpc-core-B4Qm66Qt.mjs";
2
+ import { t as ContextRpcServer } from "../../rpc-core-C8JQ3p7A.mjs";
3
3
  //#region src/rpc/transports/ws-bun.d.ts
4
4
  interface AttachBunWsTransportOptions {
5
5
  /** Same contract as `WsRpcTransportOptions.allowedOrigins`. */
@@ -1,6 +1,6 @@
1
- import { K as DevframeNodeRpcSession, S as DevframeNodeContext, et as DevframeRpcClientFunctions, p as DevframeAuthHandler, tt as DevframeRpcServerFunctions } from "./devframe-5oblos7I.mjs";
1
+ import { J as DevframeRpcServerFunctions, g as DevframeNodeContext, q as DevframeRpcClientFunctions, u as DevframeAuthHandler, z as DevframeNodeRpcSession } from "./devframe-Cfx6doi4.mjs";
2
2
  import { d as DevframeRpcConnection, u as DevframeNodeRpcSessionMeta } from "./ws-server-D1d3QM9f.mjs";
3
- import "./index-BzDl02lt.mjs";
3
+ import "./index-MYi1SZVL.mjs";
4
4
  import { BirpcGroup, EventOptions } from "birpc";
5
5
  //#region src/node/rpc-core.d.ts
6
6
  interface CreateContextRpcServerOptions {
@@ -1,6 +1,6 @@
1
1
  import { n as __exportAll } from "./rolldown-runtime-JspESFgx.mjs";
2
2
  import { createRpcServer } from "./rpc/server.mjs";
3
- import { t as diagnostics } from "./diagnostics-C7IGWppM.mjs";
3
+ import { t as diagnostics } from "./diagnostics-DEuH3P5O.mjs";
4
4
  import { AsyncLocalStorage } from "node:async_hooks";
5
5
  //#region src/node/rpc-core.ts
6
6
  var rpc_core_exports = /* @__PURE__ */ __exportAll({ createContextRpcServer: () => createContextRpcServer });