veryfront 0.1.1231 → 0.1.1232

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 (53) hide show
  1. package/esm/cli/commands/dev/port-fallback.d.ts +15 -14
  2. package/esm/cli/commands/dev/port-fallback.d.ts.map +1 -1
  3. package/esm/cli/commands/dev/port-fallback.js +83 -36
  4. package/esm/cli/shared/deployment/deploy-project.d.ts.map +1 -1
  5. package/esm/cli/shared/deployment/deploy-project.js +35 -4
  6. package/esm/cli/utils/package-manager.d.ts +8 -1
  7. package/esm/cli/utils/package-manager.d.ts.map +1 -1
  8. package/esm/cli/utils/package-manager.js +4 -10
  9. package/esm/deno.d.ts +2 -0
  10. package/esm/deno.js +7 -5
  11. package/esm/src/agent/runtime/model-capabilities.d.ts.map +1 -1
  12. package/esm/src/agent/runtime/model-capabilities.js +6 -5
  13. package/esm/src/channels/control-plane.d.ts +112 -0
  14. package/esm/src/channels/control-plane.d.ts.map +1 -1
  15. package/esm/src/channels/control-plane.js +137 -0
  16. package/esm/src/extensions/install-command.d.ts +53 -0
  17. package/esm/src/extensions/install-command.d.ts.map +1 -0
  18. package/esm/src/extensions/install-command.js +145 -0
  19. package/esm/src/html/hydration-script-builder/hydration-runtime.generated.js +1 -1
  20. package/esm/src/html/styles-builder/tailwind-compiler.d.ts.map +1 -1
  21. package/esm/src/html/styles-builder/tailwind-compiler.js +15 -7
  22. package/esm/src/platform/compat/http/pinned-fetch.d.ts +1 -1
  23. package/esm/src/platform/compat/std/fs.d.ts +40 -0
  24. package/esm/src/platform/compat/std/fs.d.ts.map +1 -0
  25. package/esm/src/platform/compat/std/fs.js +477 -0
  26. package/esm/src/proxy/control-plane-signature.d.ts +5 -0
  27. package/esm/src/proxy/control-plane-signature.d.ts.map +1 -1
  28. package/esm/src/proxy/control-plane-signature.js +10 -12
  29. package/esm/src/proxy/main.js +7 -7
  30. package/esm/src/proxy/websocket-bridge.d.ts +20 -0
  31. package/esm/src/proxy/websocket-bridge.d.ts.map +1 -1
  32. package/esm/src/proxy/websocket-bridge.js +42 -0
  33. package/esm/src/proxy/websocket-client.d.ts +56 -0
  34. package/esm/src/proxy/websocket-client.d.ts.map +1 -0
  35. package/esm/src/proxy/websocket-client.js +135 -0
  36. package/esm/src/react/components/chat/chat/hooks/use-upload.d.ts.map +1 -1
  37. package/esm/src/react/components/chat/chat/hooks/use-upload.js +6 -1
  38. package/esm/src/react/components/chat/chat/hooks/use-uploads-registry.d.ts.map +1 -1
  39. package/esm/src/react/components/chat/chat/hooks/use-uploads-registry.js +10 -3
  40. package/esm/src/security/http/auth.d.ts.map +1 -1
  41. package/esm/src/security/http/auth.js +48 -0
  42. package/esm/src/security/http/csrf/csrf-handler.d.ts.map +1 -1
  43. package/esm/src/security/http/csrf/csrf-handler.js +40 -0
  44. package/esm/src/server/handlers/dev/framework-candidates.generated.d.ts.map +1 -1
  45. package/esm/src/server/handlers/dev/framework-candidates.generated.js +24 -2
  46. package/esm/src/server/runtime-handler/project-middleware.d.ts.map +1 -1
  47. package/esm/src/server/runtime-handler/project-middleware.js +50 -1
  48. package/esm/src/utils/package-client.d.ts +46 -0
  49. package/esm/src/utils/package-client.d.ts.map +1 -0
  50. package/esm/src/utils/package-client.js +54 -0
  51. package/esm/src/utils/version-constant.d.ts +1 -1
  52. package/esm/src/utils/version-constant.js +1 -1
  53. package/package.json +8 -8
@@ -1,16 +1,3 @@
1
- /**
2
- * Dev server port selection.
3
- *
4
- * Port 3000 is the most contended port on a developer machine, and the
5
- * getting-started docs tell readers to run a bare `veryfront dev`. Rather than
6
- * hard-failing when that port is taken, scan forward for the first free one -
7
- * the same fallback the login callback server already uses.
8
- *
9
- * The scan probes ports by binding and releasing them, rather than by retrying
10
- * `startDevServer`: a failed `DevServer.start()` has already registered file
11
- * watchers and reload subscriptions that only `stop()` releases, so retrying it
12
- * would leak a watcher set per busy port.
13
- */
14
1
  /** How many consecutive ports to try before giving up. */
15
2
  export declare const MAX_PORT_FALLBACK_ATTEMPTS = 10;
16
3
  /** The highest port a TCP listener can bind. */
@@ -18,7 +5,21 @@ export declare const MAX_TCP_PORT = 65535;
18
5
  /** True when `error` means "that port is taken", on either Deno or Node. */
19
6
  export declare function isPortInUseError(error: unknown): boolean;
20
7
  /**
21
- * Binds `port` and releases it again, to see whether the dev server could have it.
8
+ * True when `error` means "this host has no address in that family at all",
9
+ * rather than "that port is taken".
10
+ *
11
+ * The two have to be told apart, because probing a family a host does not have
12
+ * must not make every port look busy: an IPv4-only CI container or a machine
13
+ * with IPv6 disabled would otherwise never find a free port to fall back to.
14
+ */
15
+ export declare function isAddressFamilyUnavailableError(error: unknown): boolean;
16
+ /**
17
+ * Binds `port` on every loopback family the dev server might use, and releases
18
+ * it again, to see whether the dev server could have it.
19
+ *
20
+ * A port counts as available only when nothing holds it on *any* of those
21
+ * addresses - see `PROBE_HOSTNAMES` for why one family is not enough. A family
22
+ * the host does not have is skipped rather than counted as a collision.
22
23
  *
23
24
  * The Deno runtime is read through `getDenoRuntime()` rather than through the
24
25
  * `Deno` global directly: dnt rewrites every bare `Deno.` reference in the
@@ -1 +1 @@
1
- {"version":3,"file":"port-fallback.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/dev/port-fallback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,0DAA0D;AAC1D,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,gDAAgD;AAChD,eAAO,MAAM,YAAY,QAAQ,CAAC;AAElC,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAQxD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAwBpE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,MAAM,EACrB,WAAW,GAAE,MAAmC,EAChD,KAAK,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAmB,GAC1D,OAAO,CAAC,MAAM,CAAC,CAejB"}
1
+ {"version":3,"file":"port-fallback.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/dev/port-fallback.ts"],"names":[],"mappings":"AAoBA,0DAA0D;AAC1D,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,gDAAgD;AAChD,eAAO,MAAM,YAAY,QAAQ,CAAC;AAElC,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAQxD;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAWvE;AAqDD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWpE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,MAAM,EACrB,WAAW,GAAE,MAAmC,EAChD,KAAK,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAmB,GAC1D,OAAO,CAAC,MAAM,CAAC,CAejB"}
@@ -1,16 +1,3 @@
1
- /**
2
- * Dev server port selection.
3
- *
4
- * Port 3000 is the most contended port on a developer machine, and the
5
- * getting-started docs tell readers to run a bare `veryfront dev`. Rather than
6
- * hard-failing when that port is taken, scan forward for the first free one -
7
- * the same fallback the login callback server already uses.
8
- *
9
- * The scan probes ports by binding and releasing them, rather than by retrying
10
- * `startDevServer`: a failed `DevServer.start()` has already registered file
11
- * watchers and reload subscriptions that only `stop()` releases, so retrying it
12
- * would leak a watcher set per busy port.
13
- */
14
1
  import { LOCALHOST } from "../../../src/config/index.js";
15
2
  import { PORT_IN_USE } from "../../../src/errors/index.js";
16
3
  import { getDenoRuntime } from "../../../src/platform/index.js";
@@ -30,44 +17,104 @@ export function isPortInUseError(error) {
30
17
  message.includes("eaddrinuse") || message.includes("address already in use");
31
18
  }
32
19
  /**
33
- * Binds `port` and releases it again, to see whether the dev server could have it.
20
+ * True when `error` means "this host has no address in that family at all",
21
+ * rather than "that port is taken".
34
22
  *
35
- * The Deno runtime is read through `getDenoRuntime()` rather than through the
36
- * `Deno` global directly: dnt rewrites every bare `Deno.` reference in the
37
- * published npm build into `@deno/shim-deno`, whose Node-backed `listen()`
38
- * reads `server._handle.fd` - null under Deno's `node:net`. A CLI installed
39
- * with `deno install -gArf npm:veryfront` runs that build on a real Deno, so
40
- * the shim was reached and `veryfront dev` died on "Cannot read properties of
41
- * null (reading 'fd')" before it ever printed a URL.
23
+ * The two have to be told apart, because probing a family a host does not have
24
+ * must not make every port look busy: an IPv4-only CI container or a machine
25
+ * with IPv6 disabled would otherwise never find a free port to fall back to.
42
26
  */
43
- export async function isPortAvailable(port) {
44
- const deno = getDenoRuntime();
45
- if (deno) {
46
- try {
47
- deno.listen({ hostname: LOCALHOST.IPV4, port }).close();
48
- return true;
49
- }
50
- catch (error) {
51
- if (isPortInUseError(error))
52
- return false;
53
- throw error;
54
- }
27
+ export function isAddressFamilyUnavailableError(error) {
28
+ if (!(error instanceof Error))
29
+ return false;
30
+ // Deno names EADDRNOTAVAIL "AddrNotAvailable"; EAFNOSUPPORT surfaces only in
31
+ // the message. Node reports both through `code`.
32
+ const code = error.code ?? "";
33
+ const message = error.message.toLowerCase();
34
+ return error.name === "AddrNotAvailable" ||
35
+ code === "EADDRNOTAVAIL" || code === "EAFNOSUPPORT" ||
36
+ message.includes("eaddrnotavail") || message.includes("eafnosupport") ||
37
+ message.includes("assign requested address") ||
38
+ message.includes("address family not supported");
39
+ }
40
+ /**
41
+ * The loopback addresses a `veryfront dev` listener can land on.
42
+ *
43
+ * Which family a listener gets is decided by the runtime, not by the CLI: the
44
+ * Deno HTTP adapter defaults to `LOCALHOST.IPV4`, while the Node adapter that
45
+ * the published npm build runs defaults to the *name* `localhost`, which
46
+ * resolves to `::1` first on any dual-stack host. That is why one `veryfront
47
+ * dev` serves the app on `127.0.0.1:3000` but its MCP server - `--port + 2` -
48
+ * on `[::1]:3002`.
49
+ *
50
+ * A probe that bound only IPv4 therefore reported IPv6-held ports as free, and
51
+ * a second `veryfront dev` announced "Port 3000 is in use, using 3002 instead"
52
+ * while 3002 was already reserved by the first instance's MCP server. Nothing
53
+ * hard-failed only because the two listeners landed on different families.
54
+ *
55
+ * The literal addresses are probed rather than the name `localhost` because a
56
+ * listen on a name binds just the first address it resolves to, which would
57
+ * leave the other family unchecked exactly as before.
58
+ */
59
+ const PROBE_HOSTNAMES = [LOCALHOST.IPV4, LOCALHOST.IPV6];
60
+ function probeWithDeno(deno, hostname, port) {
61
+ try {
62
+ deno.listen({ hostname, port }).close();
63
+ return "free";
55
64
  }
65
+ catch (error) {
66
+ if (isPortInUseError(error))
67
+ return "in-use";
68
+ if (isAddressFamilyUnavailableError(error))
69
+ return "no-such-family";
70
+ throw error;
71
+ }
72
+ }
73
+ async function probeWithNode(hostname, port) {
56
74
  const net = await import("node:net");
57
75
  return await new Promise((resolve, reject) => {
58
76
  const server = net.createServer();
59
77
  server.unref?.();
60
78
  server.once("error", (error) => {
61
79
  if (isPortInUseError(error))
62
- resolve(false);
80
+ resolve("in-use");
81
+ else if (isAddressFamilyUnavailableError(error))
82
+ resolve("no-such-family");
63
83
  else
64
84
  reject(error);
65
85
  });
66
- server.listen({ port, host: LOCALHOST.IPV4, exclusive: true }, () => {
67
- server.close(() => resolve(true));
86
+ server.listen({ port, host: hostname, exclusive: true }, () => {
87
+ server.close(() => resolve("free"));
68
88
  });
69
89
  });
70
90
  }
91
+ /**
92
+ * Binds `port` on every loopback family the dev server might use, and releases
93
+ * it again, to see whether the dev server could have it.
94
+ *
95
+ * A port counts as available only when nothing holds it on *any* of those
96
+ * addresses - see `PROBE_HOSTNAMES` for why one family is not enough. A family
97
+ * the host does not have is skipped rather than counted as a collision.
98
+ *
99
+ * The Deno runtime is read through `getDenoRuntime()` rather than through the
100
+ * `Deno` global directly: dnt rewrites every bare `Deno.` reference in the
101
+ * published npm build into `@deno/shim-deno`, whose Node-backed `listen()`
102
+ * reads `server._handle.fd` - null under Deno's `node:net`. A CLI installed
103
+ * with `deno install -gArf npm:veryfront` runs that build on a real Deno, so
104
+ * the shim was reached and `veryfront dev` died on "Cannot read properties of
105
+ * null (reading 'fd')" before it ever printed a URL.
106
+ */
107
+ export async function isPortAvailable(port) {
108
+ const deno = getDenoRuntime();
109
+ for (const hostname of PROBE_HOSTNAMES) {
110
+ const outcome = deno
111
+ ? probeWithDeno(deno, hostname, port)
112
+ : await probeWithNode(hostname, port);
113
+ if (outcome === "in-use")
114
+ return false;
115
+ }
116
+ return true;
117
+ }
71
118
  /**
72
119
  * Returns `requestedPort`, or the first free port after it.
73
120
  *
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-project.d.ts","sourceRoot":"","sources":["../../../../src/cli/shared/deployment/deploy-project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy-project.d.ts","sourceRoot":"","sources":["../../../../src/cli/shared/deployment/deploy-project.ts"],"names":[],"mappings":"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"}
@@ -307,9 +307,30 @@ function assertReadyManifestCoversPageRoutes(releaseId, result, expectedRoutes)
307
307
  }
308
308
  /** Upper bound for a plausible manifest state value from the control plane. */
309
309
  const MAX_MANIFEST_STATE_LENGTH = 64;
310
- function releaseAssetPollingTimeoutError(timeoutMs, lastState, lastTransientFailure) {
311
- const timeoutSeconds = Math.ceil(timeoutMs / 1000);
312
- return new Error(`Release assets were not ready within ${timeoutSeconds}s (last state: ${lastState}${lastTransientFailure === null ? "" : `; last control-plane failure: ${lastTransientFailure}`}). Check the release asset build and run deploy again.`);
310
+ /**
311
+ * The manifest row appears the moment the project runtime begins the build, so
312
+ * never seeing one is a different failure from a build that is merely slow: the
313
+ * control plane's signed `task:release-asset-build` dispatch never reached the
314
+ * builder. Something in front of the runtime's control-plane handler answered
315
+ * it, and the operator needs to be told that rather than sent to inspect a
316
+ * build that never started.
317
+ */
318
+ const RELEASE_ASSET_BUILD_NEVER_STARTED_HINT = "No manifest was ever created for this release, so the release asset build " +
319
+ 'dispatch (POST /api/control-plane/runs/{runId}/execute, target "task:release-asset-build") ' +
320
+ "never reached the builder on the deployed runtime. Check the runtime logs for this " +
321
+ "release, and any request gate in front of it such as the project's middleware.ts or a " +
322
+ "security policy in veryfront.config.";
323
+ function releaseAssetPollingTimeoutError(options) {
324
+ const { lastState, lastTransientFailure, observedManifest, observedTransientFailure } = options;
325
+ const timeoutSeconds = Math.ceil(options.timeoutMs / 1000);
326
+ // Only claim the dispatch never landed when nothing else can explain the
327
+ // silence: a manifest read that failed leaves the build state unknown for
328
+ // that window, so it rules out the stronger claim even if later reads
329
+ // succeeded and returned no row.
330
+ const neverStarted = !observedManifest && !observedTransientFailure;
331
+ return new Error(`Release assets were not ready within ${timeoutSeconds}s (last state: ${lastState}${lastTransientFailure === null ? "" : `; last control-plane failure: ${lastTransientFailure}`}). ${neverStarted
332
+ ? RELEASE_ASSET_BUILD_NEVER_STARTED_HINT
333
+ : "Check the release asset build and run deploy again."}`);
313
334
  }
314
335
  async function readReleaseAssetManifestBeforeDeadline(options) {
315
336
  const abortController = new AbortController();
@@ -340,9 +361,17 @@ export async function waitForReleaseAssetManifest(controlPlane, projectSlug, rel
340
361
  const deadline = Date.now() + timeoutMs;
341
362
  let lastState = "missing";
342
363
  let lastTransientFailure = null;
364
+ let observedManifest = false;
365
+ let observedTransientFailure = false;
343
366
  for (;;) {
344
367
  const remainingMs = deadline - Date.now();
345
- const timeoutError = releaseAssetPollingTimeoutError(timeoutMs, lastState, lastTransientFailure);
368
+ const timeoutError = releaseAssetPollingTimeoutError({
369
+ timeoutMs,
370
+ lastState,
371
+ lastTransientFailure,
372
+ observedManifest,
373
+ observedTransientFailure,
374
+ });
346
375
  if (remainingMs <= 0)
347
376
  throw timeoutError;
348
377
  let raw = null;
@@ -365,8 +394,10 @@ export async function waitForReleaseAssetManifest(controlPlane, projectSlug, rel
365
394
  lastTransientFailure = status === undefined
366
395
  ? "a transient connection failure"
367
396
  : `HTTP ${status}`;
397
+ observedTransientFailure = true;
368
398
  }
369
399
  if (raw !== null) {
400
+ observedManifest = true;
370
401
  const state = readUntrustedOwnDataProperty(raw, "state");
371
402
  if (!isSafeBoundedText(state, MAX_MANIFEST_STATE_LENGTH)) {
372
403
  throw new Error(`Release assets for ${releaseId} returned an invalid state response`);
@@ -3,7 +3,14 @@
3
3
  * Uses cross-runtime platform abstractions.
4
4
  * @module cli/utils/package-manager
5
5
  */
6
- export type PackageManager = "npm" | "yarn" | "pnpm" | "bun" | "deno";
6
+ import { type PackageClient } from "../../src/utils/package-client.js";
7
+ /**
8
+ * The client this CLI installs with.
9
+ *
10
+ * Shared with `src/extensions/install-command.ts`, which prints install hints:
11
+ * the client Veryfront tells a reader to run must be the client it ran itself.
12
+ */
13
+ export type PackageManager = PackageClient;
7
14
  /**
8
15
  * Detect package manager from npm_config_user_agent environment variable
9
16
  * This is set when running via `pnpm create`, `npm create`, etc.
@@ -1 +1 @@
1
- {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/package-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAEtE;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,IAAI,cAAc,GAAG,SAAS,CAWhE;AA0CD;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,cAAc,GAC1B,OAAO,CAAC,cAAc,CAAC,CAyBzB;AAUD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAE5D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CASxE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAaxD;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IACP,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;CACb,GACL,OAAO,CAAC,OAAO,CAAC,CAwBlB"}
1
+ {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/package-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAGzF;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,aAAa,CAAC;AAE3C;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,IAAI,cAAc,GAAG,SAAS,CAWhE;AAkCD;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,cAAc,GAC1B,OAAO,CAAC,cAAc,CAAC,CAyBzB;AAUD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAE5D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CASxE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAaxD;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IACP,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;CACb,GACL,OAAO,CAAC,OAAO,CAAC,CAwBlB"}
@@ -6,6 +6,7 @@
6
6
  import { join } from "../../src/platform/compat/path/index.js";
7
7
  import { cliLogger as logger } from "./index.js";
8
8
  import { getEnv, getOsType, runCommand } from "../../src/platform/index.js";
9
+ import { LOCKFILE_CLIENTS } from "../../src/utils/package-client.js";
9
10
  import { getFs } from "./fs.js";
10
11
  /**
11
12
  * Detect package manager from npm_config_user_agent environment variable
@@ -46,18 +47,11 @@ async function executeCommand(cmd, args, cwd, silent) {
46
47
  });
47
48
  return result.code;
48
49
  }
49
- const LOCKFILES = [
50
- { file: "bun.lockb", pm: "bun" },
51
- { file: "deno.lock", pm: "deno" },
52
- { file: "pnpm-lock.yaml", pm: "pnpm" },
53
- { file: "yarn.lock", pm: "yarn" },
54
- { file: "package-lock.json", pm: "npm" },
55
- ];
56
50
  async function detectFromDir(dir) {
57
51
  const fs = getFs();
58
- for (const lock of LOCKFILES) {
59
- if (await fs.exists(join(dir, lock.file)))
60
- return lock;
52
+ for (const [file, pm] of LOCKFILE_CLIENTS) {
53
+ if (await fs.exists(join(dir, file)))
54
+ return { pm, file };
61
55
  }
62
56
  return undefined;
63
57
  }
package/esm/deno.d.ts CHANGED
@@ -159,6 +159,7 @@ declare namespace _default {
159
159
  "veryfront/utils/import-lockfile": string;
160
160
  "veryfront/utils/env-loader": string;
161
161
  "veryfront/utils/logger": string;
162
+ "veryfront/utils/package-client": string;
162
163
  "veryfront/proxy/main": string;
163
164
  "veryfront/proxy/handler": string;
164
165
  "veryfront/proxy/cache": string;
@@ -452,6 +453,7 @@ declare namespace _default {
452
453
  "lint:imports": string;
453
454
  "lint:ban-internal-root-imports": string;
454
455
  "lint:chat-composability": string;
456
+ "lint:rfc-status": string;
455
457
  "lint:style": string;
456
458
  "lint:cli-boundary": string;
457
459
  "validate:architecture": string;
package/esm/deno.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "veryfront",
3
- "version": "0.1.1231",
3
+ "version": "0.1.1232",
4
4
  "license": "Apache-2.0",
5
5
  "nodeModulesDir": "auto",
6
6
  "minimumDependencyAge": {
@@ -229,6 +229,7 @@ export default {
229
229
  "veryfront/utils/import-lockfile": "./src/utils/import-lockfile.ts",
230
230
  "veryfront/utils/env-loader": "./src/utils/env-loader.ts",
231
231
  "veryfront/utils/logger": "./src/utils/logger/index.ts",
232
+ "veryfront/utils/package-client": "./src/utils/package-client.ts",
232
233
  "veryfront/proxy/main": "./src/proxy/main.ts",
233
234
  "veryfront/proxy/handler": "./src/proxy/handler.ts",
234
235
  "veryfront/proxy/cache": "./src/proxy/cache/index.ts",
@@ -494,12 +495,12 @@ export default {
494
495
  "build:storybook": "npm --prefix storybook run build-storybook",
495
496
  "storybook:check": "deno test --no-lock --config=scripts/test.deno.json --no-check --allow-read scripts/storybook/storybook-workbench.test.ts",
496
497
  "lint": "DENO_NO_PACKAGE_JSON=1 deno lint && deno lint --config=scripts/test.deno.json scripts/test/ scripts/build/dnt-polyfill.ts scripts/build/dnt-polyfill.test.ts scripts/build/npm-package-metadata.test.ts scripts/build/prepare-framework-sources.test.ts && deno lint --config=scripts/codemods/deno.json scripts/codemods/",
497
- "lint:ci": "deno task lint && deno task lint:core-deps && deno task lint:cross-runtime-jsr && deno task lint:dependency-boundaries && deno task lint:module-boundaries && deno task lint:extension-contracts && deno task lint:extension-capabilities && deno task lint:ban-test-only && deno task lint:sanitizer-baseline && deno task lint:skipped-tests && deno task lint:chat-ratchets && deno task lint:esm-sh-codemod && deno task lint:test-typecheck && deno task lint:cwd-relative-test-reads && deno task storybook:check && deno task docs:api-reference:check && deno task docs:errors:check && deno task docs:public:check && deno test --frozen --config=scripts/test.deno.json --no-check --allow-read --allow-write scripts/ci/setup-deno-workflow.test.ts scripts/ci/prepare-rc-build.test.ts scripts/build/generated-artifact-checks.test.ts",
498
+ "lint:ci": "deno task lint && deno task lint:core-deps && deno task lint:cross-runtime-jsr && deno task lint:dependency-boundaries && deno task lint:module-boundaries && deno task lint:extension-contracts && deno task lint:extension-capabilities && deno task lint:ban-test-only && deno task lint:sanitizer-baseline && deno task lint:skipped-tests && deno task lint:chat-ratchets && deno task lint:chat-composability && deno task lint:rfc-status && deno task lint:esm-sh-codemod && deno task lint:test-typecheck && deno task lint:cwd-relative-test-reads && deno task storybook:check && deno task docs:api-reference:check && deno task docs:errors:check && deno task docs:public:check && deno test --frozen --config=scripts/test.deno.json --no-check --allow-read --allow-write --allow-run=bash scripts/ci/setup-deno-workflow.test.ts scripts/ci/prepare-rc-build.test.ts scripts/build/generated-artifact-checks.test.ts",
498
499
  "fmt": "deno fmt src/ cli/ react/ templates/ && deno fmt --config=scripts/test.deno.json scripts/test/ scripts/build/dnt-polyfill.ts scripts/build/dnt-polyfill.test.ts scripts/build/prepare-framework-sources.test.ts && deno fmt --config=scripts/codemods/deno.json scripts/codemods/",
499
500
  "fmt:check": "deno fmt --check src/ cli/ react/ templates/ && deno fmt --check --config=scripts/test.deno.json scripts/test/ scripts/build/dnt-polyfill.ts scripts/build/dnt-polyfill.test.ts scripts/build/prepare-framework-sources.test.ts && deno fmt --check --config=scripts/codemods/deno.json scripts/codemods/",
500
501
  "typecheck": "deno task generate:manifests:check && deno check src/index.ts cli/main.ts src/server/index.ts src/routing/api/index.ts src/rendering/index.ts src/platform/index.ts src/platform/adapters/index.ts src/build/index.ts src/build/production-build/index.ts src/transforms/index.ts src/config/index.ts src/utils/index.ts src/data/index.ts src/security/index.ts src/middleware/index.ts src/server/handlers/dev/index.ts src/server/handlers/request/api/index.ts src/rendering/cache/index.ts src/rendering/cache/stores/index.ts src/rendering/rsc/actions/index.ts src/html/index.ts src/html/hydration-script-builder/runtime/main.ts src/modules/index.ts src/proxy/main.ts src/react/components/ui/index.ts src/chat/index.ts src/markdown/index.ts src/mdx/index.ts src/fs/index.ts src/oauth/index.ts src/agent/index.ts src/agent/service/route-export.check.ts src/eval/index.ts src/tool/index.ts src/workflow/index.ts src/prompt/index.ts src/resource/index.ts src/runs/index.ts src/mcp/index.ts src/provider/index.ts",
501
- "verify": "deno task generate:manifests:check && deno task fmt:check && deno task lint && deno task lint:style && deno task lint:chat-composability && deno task lint:chat-ratchets && deno task lint:esm-sh-codemod && deno task lint:cli-boundary && deno task lint:wildcard-exports && deno task lint:barrel-jsdoc && deno task lint:ban-test-only && deno task lint:sanitizer-baseline && deno task lint:skipped-tests && deno task lint:ban-zod && deno task lint:cwd-relative-test-reads && deno task lint:core-deps && deno task lint:cross-runtime-jsr && deno task lint:dependency-boundaries && deno task lint:module-boundaries && deno task lint:extension-contracts && deno task lint:extension-capabilities && deno task docs:api-reference:check && deno task docs:errors:check && deno task docs:validate && deno task typecheck && deno task typecheck:consumer && deno task test && deno task test:scripts && deno task test:e2e:binary",
502
- "verify:quick": "deno task generate:manifests:check && deno task fmt:check && deno task lint && deno task lint:style && deno task lint:chat-composability && deno task lint:chat-ratchets && deno task lint:esm-sh-codemod && deno task lint:cli-boundary && deno task lint:wildcard-exports && deno task lint:barrel-jsdoc && deno task lint:ban-test-only && deno task lint:sanitizer-baseline && deno task lint:skipped-tests && deno task lint:ban-zod && deno task lint:cwd-relative-test-reads && deno task lint:core-deps && deno task lint:cross-runtime-jsr && deno task lint:dependency-boundaries && deno task lint:module-boundaries && deno task lint:extension-contracts && deno task lint:extension-capabilities && deno task docs:api-reference:check && deno task docs:errors:check && deno task docs:validate && deno task typecheck",
502
+ "verify": "deno task generate:manifests:check && deno task fmt:check && deno task lint && deno task lint:style && deno task lint:chat-composability && deno task lint:rfc-status && deno task lint:chat-ratchets && deno task lint:esm-sh-codemod && deno task lint:cli-boundary && deno task lint:wildcard-exports && deno task lint:barrel-jsdoc && deno task lint:ban-test-only && deno task lint:sanitizer-baseline && deno task lint:skipped-tests && deno task lint:ban-zod && deno task lint:cwd-relative-test-reads && deno task lint:core-deps && deno task lint:cross-runtime-jsr && deno task lint:dependency-boundaries && deno task lint:module-boundaries && deno task lint:extension-contracts && deno task lint:extension-capabilities && deno task docs:api-reference:check && deno task docs:errors:check && deno task docs:validate && deno task typecheck && deno task typecheck:consumer && deno task test && deno task test:scripts && deno task test:e2e:binary",
503
+ "verify:quick": "deno task generate:manifests:check && deno task fmt:check && deno task lint && deno task lint:style && deno task lint:chat-composability && deno task lint:rfc-status && deno task lint:chat-ratchets && deno task lint:esm-sh-codemod && deno task lint:cli-boundary && deno task lint:wildcard-exports && deno task lint:barrel-jsdoc && deno task lint:ban-test-only && deno task lint:sanitizer-baseline && deno task lint:skipped-tests && deno task lint:ban-zod && deno task lint:cwd-relative-test-reads && deno task lint:core-deps && deno task lint:cross-runtime-jsr && deno task lint:dependency-boundaries && deno task lint:module-boundaries && deno task lint:extension-contracts && deno task lint:extension-capabilities && deno task docs:api-reference:check && deno task docs:errors:check && deno task docs:validate && deno task typecheck",
503
504
  "typecheck:consumer": "deno run --allow-read --allow-run --allow-env --allow-write scripts/typecheck/run-consumer-typecheck.ts",
504
505
  "codemod:chat": "deno run --frozen --config=scripts/codemods/deno.json --allow-read --allow-write --allow-env=BABEL_TYPES_8_BREAKING scripts/codemods/migrate-chat-composition.ts",
505
506
  "codemod:esm-sh": "deno run --frozen --config=scripts/codemods/deno.json --allow-read --allow-write --allow-env=BABEL_TYPES_8_BREAKING scripts/codemods/migrate-esm-sh-imports.ts",
@@ -528,6 +529,7 @@ export default {
528
529
  "lint:imports": "deno run --allow-read scripts/lint/no-cross-boundary-relative-imports.ts",
529
530
  "lint:ban-internal-root-imports": "deno run --allow-read scripts/lint/ban-internal-root-imports.ts",
530
531
  "lint:chat-composability": "deno run --allow-read scripts/lint/audit-chat-composability.ts",
532
+ "lint:rfc-status": "deno run --allow-read scripts/lint/audit-rfc-status.ts",
531
533
  "lint:style": "deno run --allow-read scripts/lint/enforce-style-conventions.ts",
532
534
  "lint:cli-boundary": "deno run --allow-read scripts/lint/enforce-cli-boundary.ts",
533
535
  "validate:architecture": "deno run --allow-read scripts/lint/validate-architecture.ts",
@@ -541,7 +543,7 @@ export default {
541
543
  "lint:sanitizer-baseline": "deno run --allow-read scripts/lint/check-sanitizer-baseline.ts",
542
544
  "lint:skipped-tests": "deno run --allow-read scripts/lint/check-skipped-tests-baseline.ts",
543
545
  "lint:cwd-relative-test-reads": "deno run --allow-read scripts/lint/audit-cwd-relative-test-reads.ts",
544
- "test:scripts": "deno test --config=scripts/test.deno.json --no-check --allow-read --allow-write --allow-run scripts/ci/prepare-rc-build.test.ts scripts/ci/publish-npm-packages.test.ts scripts/ci/setup-deno-workflow.test.ts scripts/build/compile-binary.test.ts scripts/build/dnt-polyfill.test.ts scripts/build/generate-sbom.test.ts scripts/build/generated-artifact-checks.test.ts scripts/build/npm-dependency-sources.test.ts scripts/build/npm-extension-package-metadata.test.ts scripts/build/npm-package-metadata.test.ts scripts/build/npm-react-shims.test.ts scripts/build/npm-runtime-helper-contract.test.ts scripts/build/prepare-framework-sources.test.ts scripts/docs/docs-coverage.test.ts scripts/docs/generate-api-reference.test.ts scripts/docs/guide-validation.test.ts scripts/lint/audit-core-deps.test.ts scripts/lint/audit-cwd-relative-test-reads.test.ts scripts/lint/audit-cross-runtime-jsr.test.ts scripts/lint/audit-dependency-boundaries.test.ts scripts/lint/audit-extension-capabilities.test.ts scripts/lint/audit-extension-contracts.test.ts scripts/lint/audit-deps.test.ts scripts/lint/check-module-boundaries.test.ts scripts/lint/lint-config.test.ts scripts/lint/ban-test-only.test.ts scripts/lint/check-sanitizer-baseline.test.ts scripts/lint/check-skipped-tests-baseline.test.ts scripts/lint/check-test-typecheck-baseline.test.ts scripts/lint/check-coverage.test.ts scripts/security/audit-npm.test.ts scripts/security/submit-dependency-snapshot.test.ts scripts/test/template-runtime-e2e.test.ts && deno task test:tool-search-live",
546
+ "test:scripts": "deno test --config=scripts/test.deno.json --no-check --allow-read --allow-write --allow-run scripts/ci/prepare-rc-build.test.ts scripts/ci/publish-npm-packages.test.ts scripts/ci/setup-deno-workflow.test.ts scripts/build/compile-binary.test.ts scripts/build/dnt-polyfill.test.ts scripts/build/generate-sbom.test.ts scripts/build/generated-artifact-checks.test.ts scripts/build/npm-dependency-sources.test.ts scripts/build/npm-extension-package-metadata.test.ts scripts/build/npm-package-metadata.test.ts scripts/build/npm-react-shims.test.ts scripts/build/npm-runtime-helper-contract.test.ts scripts/build/prepare-framework-sources.test.ts scripts/docs/docs-coverage.test.ts scripts/docs/generate-api-reference.test.ts scripts/docs/guide-validation.test.ts scripts/lint/audit-chat-composability.test.ts scripts/lint/audit-rfc-status.test.ts scripts/lint/audit-core-deps.test.ts scripts/lint/audit-cwd-relative-test-reads.test.ts scripts/lint/audit-cross-runtime-jsr.test.ts scripts/lint/audit-dependency-boundaries.test.ts scripts/lint/audit-extension-capabilities.test.ts scripts/lint/audit-extension-contracts.test.ts scripts/lint/audit-deps.test.ts scripts/lint/check-module-boundaries.test.ts scripts/lint/lint-config.test.ts scripts/lint/ban-test-only.test.ts scripts/lint/check-sanitizer-baseline.test.ts scripts/lint/check-skipped-tests-baseline.test.ts scripts/lint/check-test-typecheck-baseline.test.ts scripts/lint/check-coverage.test.ts scripts/security/audit-npm.test.ts scripts/security/submit-dependency-snapshot.test.ts scripts/test/template-runtime-e2e.test.ts && deno task test:tool-search-live",
545
547
  "test:sentry-runtime-packages": "deno test --config=scripts/test.deno.json --no-check --no-lock --allow-read --allow-write --allow-run --allow-env=DENO_DIR,HOME,XDG_CACHE_HOME,LOCALAPPDATA,USERPROFILE scripts/build/sentry-runtime-packages.test.ts",
546
548
  "test:tool-search-live": "VF_DISABLE_LRU_INTERVAL=1 deno test --no-check -A tests/agent/verify-tool-search-live.test.ts",
547
549
  "test:cross-runtime": "deno run --allow-all src/platform/compat/cross-runtime.test.ts",
@@ -1 +1 @@
1
- {"version":3,"file":"model-capabilities.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/model-capabilities.ts"],"names":[],"mappings":"AAgCA,wBAAgB,mBAAmB,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAetF;AAED,wBAAgB,0BAA0B,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKnF;AAED,wBAAgB,4BAA4B,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAI1E;AAED,wBAAgB,4BAA4B,CAC1C,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACxC,MAAM,GAAG,SAAS,CASpB;AAED,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,oBAAoB,EAAE,MAAM,GAAG,SAAS,EACxC,kBAAkB,EAAE,MAAM,EAC1B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACxC,MAAM,GAAG,SAAS,CAWpB"}
1
+ {"version":3,"file":"model-capabilities.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/model-capabilities.ts"],"names":[],"mappings":"AAgCA,wBAAgB,mBAAmB,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAetF;AAED,wBAAgB,0BAA0B,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKnF;AAED,wBAAgB,4BAA4B,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAO1E;AAED,wBAAgB,4BAA4B,CAC1C,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACxC,MAAM,GAAG,SAAS,CASpB;AAED,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,oBAAoB,EAAE,MAAM,GAAG,SAAS,EACxC,kBAAkB,EAAE,MAAM,EAC1B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACxC,MAAM,GAAG,SAAS,CAWpB"}
@@ -1,8 +1,8 @@
1
1
  const VERYFRONT_CLOUD_MODEL_PREFIX = "veryfront-cloud/";
2
- // MAINTENANCE: Update this set whenever a new model is released that does not
3
- // accept a temperature parameter. Models absent from this set are assumed to
4
- // support temperature; the consequence of a missing entry is an ignored parameter,
5
- // not a hard error.
2
+ // MAINTENANCE: Update this set or family predicate whenever a new model is released
3
+ // that does not accept a temperature parameter. Models absent from this policy are
4
+ // assumed to support temperature; the consequence of a missing entry is an ignored
5
+ // parameter, not a hard error.
6
6
  const MODELS_WITHOUT_TEMPERATURE_PARAMETER = new Set([
7
7
  "anthropic/claude-opus-4-7",
8
8
  "anthropic/claude-opus-4-8",
@@ -50,7 +50,8 @@ export function supportsTemperatureParameter(modelString) {
50
50
  const normalizedModel = normalizeModelCapabilityId(modelString);
51
51
  if (!normalizedModel)
52
52
  return true;
53
- return !MODELS_WITHOUT_TEMPERATURE_PARAMETER.has(normalizedModel);
53
+ return (!MODELS_WITHOUT_TEMPERATURE_PARAMETER.has(normalizedModel) &&
54
+ !/^anthropic\/claude-opus-5(?:[.-]|$)/.test(normalizedModel));
54
55
  }
55
56
  export function getFixedTemperatureParameter(modelString, providerOptions) {
56
57
  const normalizedModel = normalizeModelCapabilityId(modelString);
@@ -9,6 +9,118 @@ export declare const CONTROL_PLANE_AGENTS_LIST_PATH = "/api/control-plane/agents
9
9
  export declare const CONTROL_PLANE_RUNS_PATH_PREFIX = "/api/control-plane/runs/";
10
10
  /** Shared control plane run stream path value. */
11
11
  export declare const CONTROL_PLANE_RUN_STREAM_PATH = "/api/control-plane/runs/:runId/stream";
12
+ /** Request header the control plane carries its signed operation envelope in. */
13
+ export declare const CONTROL_PLANE_JWS_HEADER = "x-veryfront-control-plane-jws";
14
+ /** Request header a platform channel dispatch carries its signed envelope in. */
15
+ export declare const DISPATCH_JWS_HEADER = "x-veryfront-dispatch-jws";
16
+ /** The one route that accepts a signed channel dispatch envelope. */
17
+ export declare const CHANNEL_INVOKE_PATH = "/channels/invoke";
18
+ /**
19
+ * True when a method and path pair addresses a registered control-plane handler.
20
+ *
21
+ * The reserved namespace is wider than the set of routes the runtime actually
22
+ * serves. Only these shapes reach a handler that authenticates a signed
23
+ * operation envelope through `verifyControlPlaneRequest`:
24
+ *
25
+ * - `POST /api/control-plane/agents/list`
26
+ * - `POST /api/control-plane/runs/{runId}/execute`
27
+ * - `POST /api/control-plane/runs/{runId}/stream`
28
+ * - `POST /api/control-plane/runs/{runId}/resume`
29
+ * - `DELETE /api/control-plane/runs/{runId}`
30
+ *
31
+ * Any other path under the prefix falls through to project code, so treating
32
+ * the prefix as proof of a control-plane request would hand a project's own
33
+ * routes whatever exemption the caller grants.
34
+ *
35
+ * Match this against `URL.pathname`, which resolves dot segments, so a path
36
+ * cannot be smuggled past the anchored patterns.
37
+ */
38
+ export declare function isControlPlaneSurfaceRoute(method: string, pathname: string | undefined): boolean;
39
+ /**
40
+ * True for a request that is a control-plane dispatch rather than a browser one.
41
+ *
42
+ * Both conditions must hold. The method and path must address a registered
43
+ * control-plane handler (see {@link isControlPlaneSurfaceRoute}), and the
44
+ * request must carry a control-plane signature header. The receiving handler
45
+ * verifies that envelope against the dispatch signing key, and the signature
46
+ * covers the request method and path, so an envelope minted for one surface
47
+ * cannot be replayed against another.
48
+ *
49
+ * Callers use this to keep gates that assume a browser client, such as CSRF
50
+ * double-submit validation, from standing in front of platform dispatch.
51
+ *
52
+ * Do not read a true result as evidence that the caller is the platform, and do
53
+ * not argue the exemption is safe because the header is hard to attach. It is
54
+ * not hard to attach. A project can configure a permissive `security.cors`, and
55
+ * on the default path `resolveNormalizedCORSPreflightPolicy` reflects whatever
56
+ * `Access-Control-Request-Headers` asked for, so the runtime will advertise this
57
+ * header to a cross-origin caller. The proxy likewise forwards an unverified
58
+ * `x-veryfront-*-jws` from a public request rather than stripping it. Assume an
59
+ * attacker can set this header at will.
60
+ *
61
+ * The exemption is safe for a narrower reason that does not depend on who can
62
+ * set the header. Skipping the gate concedes only the browser-credential check;
63
+ * authority still comes from the signature the receiving handler verifies, which
64
+ * an attacker cannot forge. And every route this predicate admits is owned by a
65
+ * handler registered ahead of `ApiHandlerWrapper` and instantiated
66
+ * unconditionally, so an admitted request always terminates at that verification
67
+ * and can never fall through to project code. A forged header buys a different
68
+ * rejection, nothing more. That ordering is the load-bearing part; it is pinned
69
+ * by `server/runtime-handler/dispatch-exemption-ordering.test.ts`, and the
70
+ * behaviour it protects by `security/http/dispatch-exemption-matrix.test.ts`.
71
+ *
72
+ * A project route that merely sits at a look-alike path is not a registered
73
+ * surface and does not satisfy this predicate at all.
74
+ *
75
+ * This is not authentication. It only reports that authority for the request
76
+ * comes from a signature the handler checks, never from ambient credentials.
77
+ */
78
+ export declare function isSignedControlPlaneDispatch(req: Request): boolean;
79
+ /**
80
+ * True when a method and path pair addresses the channel dispatch handler.
81
+ *
82
+ * `POST /channels/invoke` is the one route `ChannelInvokeHandler` registers,
83
+ * and the only route that verifies a channel dispatch envelope. It is
84
+ * deliberately not part of {@link isControlPlaneSurfaceRoute}: the control
85
+ * plane's `channels` surface names a product surface inside a control-plane
86
+ * envelope, not this HTTP route, and this route carries a different envelope.
87
+ *
88
+ * The `/channels/` namespace is reserved but not exclusively routed, so any
89
+ * sibling or child path is matched exactly rather than by prefix. Match this
90
+ * against `URL.pathname`, which resolves dot segments.
91
+ */
92
+ export declare function isChannelDispatchRoute(method: string, pathname: string | undefined): boolean;
93
+ /**
94
+ * True for a request that is a platform channel dispatch rather than a browser one.
95
+ *
96
+ * Both conditions must hold. The method and path must be the one route the
97
+ * channel invoke handler owns (see {@link isChannelDispatchRoute}), and the
98
+ * request must carry a dispatch signature header. The handler then verifies
99
+ * that envelope with `verifyDispatchJws`, which binds the Ed25519 signature to
100
+ * the issuer, the project audience, the project id, the dispatch id, the
101
+ * platform and a SHA-256 hash of the body, with expiry and skew bounds; the
102
+ * handler additionally rejects an envelope whose claims do not match the
103
+ * dispatch id, platform and project id in the payload it acts on.
104
+ *
105
+ * Callers use this to keep gates that assume a browser client, such as CSRF
106
+ * double-submit validation, from standing in front of platform dispatch. The
107
+ * channel dispatcher and the runtime-owner re-dispatch in
108
+ * `resolveRuntimeOwnerInvokeUrl` hold no `__Host-vf_csrf` cookie to echo and
109
+ * derive no authority from one.
110
+ *
111
+ * As with {@link isSignedControlPlaneDispatch}, assume an attacker can set this
112
+ * header: a permissive project `security.cors` makes the runtime advertise it on
113
+ * a preflight, and the proxy forwards an unverified one. The exemption is safe
114
+ * because it concedes only the browser-credential check (authority still comes
115
+ * from the envelope `ChannelInvokeHandler` verifies, which an attacker cannot
116
+ * forge), and because `ChannelInvokeHandler` is registered ahead of
117
+ * `ApiHandlerWrapper` and instantiated unconditionally, so an admitted request
118
+ * always terminates at that verification rather than at project code.
119
+ *
120
+ * This is not authentication. It only reports that authority for the request
121
+ * comes from a signature the handler checks, never from ambient credentials.
122
+ */
123
+ export declare function isSignedChannelDispatch(req: Request): boolean;
12
124
  /**
13
125
  * True for control-plane run surfaces that can dispatch without project config.
14
126
  *
@@ -1 +1 @@
1
- {"version":3,"file":"control-plane.d.ts","sourceRoot":"","sources":["../../../src/src/channels/control-plane.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"control-plane.d.ts","sourceRoot":"","sources":["../../../src/src/channels/control-plane.ts"],"names":[],"mappings":"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"}