veryfront 0.1.1027 → 0.1.1028

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/esm/deno.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "veryfront",
3
- "version": "0.1.1027",
3
+ "version": "0.1.1028",
4
4
  "license": "Apache-2.0",
5
5
  "nodeModulesDir": "auto",
6
6
  "minimumDependencyAge": {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/metrics/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,yBAAyB,CAAC;AAcjC,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAChF,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AAEpE,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA6XD,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,KAAK,SAAI,EACT,UAAU,CAAC,EAAE,gBAAgB,EAC7B,OAAO,CAAC,EAAE,uBAAuB,GAChC,IAAI,CAON;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,gBAAgB,EAC7B,OAAO,CAAC,EAAE,uBAAuB,GAChC,IAAI,CAON;AAED,wBAAgB,KAAK,CACnB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,gBAAgB,EAC7B,OAAO,CAAC,EAAE,uBAAuB,GAChC,IAAI,CAaN;AAED,eAAO,MAAM,OAAO;;;;uBAIO,OAAO,CAAC,IAAI,CAAC;uBAGnB,IAAI;CAYxB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/metrics/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,yBAAyB,CAAC;AAgBjC,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAChF,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AAEpE,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA4ZD,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,KAAK,SAAI,EACT,UAAU,CAAC,EAAE,gBAAgB,EAC7B,OAAO,CAAC,EAAE,uBAAuB,GAChC,IAAI,CAON;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,gBAAgB,EAC7B,OAAO,CAAC,EAAE,uBAAuB,GAChC,IAAI,CAON;AAED,wBAAgB,KAAK,CACnB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,gBAAgB,EAC7B,OAAO,CAAC,EAAE,uBAAuB,GAChC,IAAI,CAaN;AAED,eAAO,MAAM,OAAO;;;;uBAIO,OAAO,CAAC,IAAI,CAAC;uBAGnB,IAAI;CAYxB,CAAC"}
@@ -16,6 +16,8 @@ import "../../_dnt.polyfills.js";
16
16
  import * as dntShim from "../../_dnt.shims.js";
17
17
  import { getGlobalMetricsAPI, } from "../observability/tracing/api-shim.js";
18
18
  import { getCurrentRequestContext } from "../platform/adapters/fs/veryfront/request-context.js";
19
+ import { getEnv, getHostEnv } from "../platform/compat/process.js";
20
+ import { isProjectEnvActive } from "../server/project-env/storage.js";
19
21
  const counters = new Map();
20
22
  const histograms = new Map();
21
23
  const gauges = new Map();
@@ -97,12 +99,26 @@ function getGauge(name, options) {
97
99
  return gauge;
98
100
  }
99
101
  function readEnv(name) {
100
- try {
101
- return dntShim.Deno.env.get(name);
102
- }
103
- catch {
104
- return undefined;
105
- }
102
+ return getEnv(name);
103
+ }
104
+ function readHostEnv(name) {
105
+ return getHostEnv(name);
106
+ }
107
+ function readProjectEnv(name) {
108
+ return isProjectEnvActive() ? getEnv(name) : undefined;
109
+ }
110
+ function isDedicatedRuntime() {
111
+ return Boolean(readHostEnv("SERVER_ID") && readHostEnv("ENVIRONMENT_IDS"));
112
+ }
113
+ function resolveProjectOtlpMetricsUrl() {
114
+ if (readProjectEnv("OTEL_METRICS_ENABLED") !== "true")
115
+ return null;
116
+ const endpoint = readProjectEnv("OTEL_EXPORTER_OTLP_METRICS_ENDPOINT") ??
117
+ readProjectEnv("OTEL_EXPORTER_OTLP_ENDPOINT");
118
+ if (!endpoint)
119
+ return null;
120
+ const trimmed = endpoint.replace(/\/$/, "");
121
+ return trimmed.endsWith("/v1/metrics") ? trimmed : `${trimmed}/v1/metrics`;
106
122
  }
107
123
  function resolveOtlpMetricsUrl() {
108
124
  if (readEnv("OTEL_METRICS_ENABLED") !== "true")
@@ -115,11 +131,11 @@ function resolveOtlpMetricsUrl() {
115
131
  return trimmed.endsWith("/v1/metrics") ? trimmed : `${trimmed}/v1/metrics`;
116
132
  }
117
133
  function resolveInternalMetricsUrl() {
118
- if (readEnv("OTEL_METRICS_ENABLED") !== "true")
134
+ if (readHostEnv("OTEL_METRICS_ENABLED") !== "true")
119
135
  return null;
120
- const apiBaseUrl = readEnv("VERYFRONT_API_BASE_URL") ?? readEnv("VERYFRONT_API_URL");
121
- const username = readEnv("VERYFRONT_API_INTERNAL_USER");
122
- const password = readEnv("VERYFRONT_API_INTERNAL_PASS");
136
+ const apiBaseUrl = readHostEnv("VERYFRONT_API_BASE_URL") ?? readHostEnv("VERYFRONT_API_URL");
137
+ const username = readHostEnv("VERYFRONT_API_INTERNAL_USER");
138
+ const password = readHostEnv("VERYFRONT_API_INTERNAL_PASS");
123
139
  if (!apiBaseUrl || !username || !password)
124
140
  return null;
125
141
  return `${apiBaseUrl.replace(/\/$/, "")}/internal/metrics/otlp/v1/metrics`;
@@ -146,12 +162,20 @@ function parseHeaders(headerInput) {
146
162
  return result;
147
163
  }
148
164
  function resolveDirectMetricsTarget() {
165
+ const projectOtlpUrl = resolveProjectOtlpMetricsUrl();
166
+ if (isDedicatedRuntime() && projectOtlpUrl) {
167
+ return {
168
+ url: projectOtlpUrl,
169
+ headers: parseHeaders(readProjectEnv("OTEL_EXPORTER_OTLP_METRICS_HEADERS") ??
170
+ readProjectEnv("OTEL_EXPORTER_OTLP_HEADERS")),
171
+ };
172
+ }
149
173
  const internalUrl = resolveInternalMetricsUrl();
150
174
  if (internalUrl) {
151
175
  return {
152
176
  url: internalUrl,
153
177
  headers: {
154
- Authorization: buildBasicAuth(readEnv("VERYFRONT_API_INTERNAL_USER") ?? "", readEnv("VERYFRONT_API_INTERNAL_PASS") ?? ""),
178
+ Authorization: buildBasicAuth(readHostEnv("VERYFRONT_API_INTERNAL_USER") ?? "", readHostEnv("VERYFRONT_API_INTERNAL_PASS") ?? ""),
155
179
  },
156
180
  };
157
181
  }
@@ -160,7 +184,8 @@ function resolveDirectMetricsTarget() {
160
184
  return null;
161
185
  return {
162
186
  url: otlpUrl,
163
- headers: parseHeaders(readEnv("OTEL_EXPORTER_OTLP_HEADERS")),
187
+ headers: parseHeaders(readEnv("OTEL_EXPORTER_OTLP_METRICS_HEADERS") ??
188
+ readEnv("OTEL_EXPORTER_OTLP_HEADERS")),
164
189
  };
165
190
  }
166
191
  function toOtlpValue(value) {
@@ -18,7 +18,7 @@ import { isServerShuttingDown } from "../../shutdown-state.js";
18
18
  import { getHostEnv } from "../../../platform/compat/process.js";
19
19
  import { resolveVeryfrontApiBaseUrlFromHostEnv } from "../../../platform/cloud/resolver.js";
20
20
  import { serverLogger } from "../../../utils/index.js";
21
- import { EnvironmentVariableCache, fetchProjectEnvVars, filterSharedRuntimeProjectEnv, runWithProjectEnv, } from "../../project-env/index.js";
21
+ import { EnvironmentVariableCache, fetchProjectEnvVars, filterRuntimeProjectEnv, runWithProjectEnv, } from "../../project-env/index.js";
22
22
  const defaultDeps = {
23
23
  ...defaultChannelInvokeDeps,
24
24
  sessionManager: agentRunSessionManager,
@@ -325,7 +325,7 @@ function withVeryfrontStudioRemoteTools(input) {
325
325
  function buildAgentStreamEnv(input) {
326
326
  const apiUrl = resolveVeryfrontApiBaseUrlFromHostEnv();
327
327
  return {
328
- ...filterSharedRuntimeProjectEnv(input.envVars),
328
+ ...filterRuntimeProjectEnv(input.envVars),
329
329
  // Framework-owned values must override project env to keep request-scoped
330
330
  // credentials bound to trusted Veryfront endpoints and the current project.
331
331
  ...(input.proxyToken ? { VERYFRONT_API_TOKEN: input.proxyToken } : {}),
@@ -5,6 +5,6 @@
5
5
  */
6
6
  export { getProjectEnv, isProjectEnvActive, runWithProjectEnv } from "./storage.js";
7
7
  export { EnvironmentVariableCache } from "./cache.js";
8
- export { filterSharedRuntimeProjectEnv } from "./reserved-env.js";
8
+ export { filterRuntimeProjectEnv, filterSharedRuntimeProjectEnv } from "./reserved-env.js";
9
9
  export { fetchProjectEnvVars } from "./fetcher.js";
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/server/project-env/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/server/project-env/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC"}
@@ -5,5 +5,5 @@
5
5
  */
6
6
  export { getProjectEnv, isProjectEnvActive, runWithProjectEnv } from "./storage.js";
7
7
  export { EnvironmentVariableCache } from "./cache.js";
8
- export { filterSharedRuntimeProjectEnv } from "./reserved-env.js";
8
+ export { filterRuntimeProjectEnv, filterSharedRuntimeProjectEnv } from "./reserved-env.js";
9
9
  export { fetchProjectEnvVars } from "./fetcher.js";
@@ -1,2 +1,3 @@
1
1
  export declare function filterSharedRuntimeProjectEnv(vars: Record<string, string>): Record<string, string>;
2
+ export declare function filterRuntimeProjectEnv(vars: Record<string, string>): Record<string, string>;
2
3
  //# sourceMappingURL=reserved-env.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reserved-env.d.ts","sourceRoot":"","sources":["../../../../src/src/server/project-env/reserved-env.ts"],"names":[],"mappings":"AAEA,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAIxB"}
1
+ {"version":3,"file":"reserved-env.d.ts","sourceRoot":"","sources":["../../../../src/src/server/project-env/reserved-env.ts"],"names":[],"mappings":"AAGA,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAIxB;AAMD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGxB"}
@@ -1,4 +1,13 @@
1
1
  import { isReservedSharedRuntimeTelemetryEnvKey } from "../../observability/tracing/telemetry-env.js";
2
+ import { getHostEnv } from "../../platform/compat/process.js";
2
3
  export function filterSharedRuntimeProjectEnv(vars) {
3
4
  return Object.fromEntries(Object.entries(vars).filter(([key]) => !isReservedSharedRuntimeTelemetryEnvKey(key)));
4
5
  }
6
+ function isDedicatedRuntime() {
7
+ return Boolean(getHostEnv("SERVER_ID") && getHostEnv("ENVIRONMENT_IDS"));
8
+ }
9
+ export function filterRuntimeProjectEnv(vars) {
10
+ if (isDedicatedRuntime())
11
+ return { ...vars };
12
+ return filterSharedRuntimeProjectEnv(vars);
13
+ }
@@ -66,7 +66,7 @@ import { buildHandlerContext, buildMinimalContext } from "./handler-context-buil
66
66
  import { handleProjectsRequest, shouldHandleProjectsUI } from "./projects-handler.js";
67
67
  import { HTTP_GATEWAY_TIMEOUT, isLightweightPath, isMonitoringPath, isWebSocketPath, shouldSkipEnrichedContext, } from "./request-utils.js";
68
68
  import { withRequestTimeout } from "./timeout-manager.js";
69
- import { EnvironmentVariableCache, fetchProjectEnvVars, filterSharedRuntimeProjectEnv, runWithProjectEnv, } from "../project-env/index.js";
69
+ import { EnvironmentVariableCache, fetchProjectEnvVars, filterRuntimeProjectEnv, runWithProjectEnv, } from "../project-env/index.js";
70
70
  import { SCANNER_PATH_PATTERN } from "../../utils/constants/security.js";
71
71
  import { isProxyTrusted } from "../utils/proxy-trust.js";
72
72
  // Re-export from dedicated module for lightweight imports
@@ -469,7 +469,7 @@ export function createVeryfrontHandler(projectDir, adapter, opts = { projectDir
469
469
  const shouldIsolateEnv = !adapterRes.isLocalProject && !!reqCtx.token;
470
470
  const response = await withSpan(SpanNames.HANDLER_EXECUTE, () => profilePhase("handler.execute", () => {
471
471
  if (shouldIsolateEnv) {
472
- return runWithProjectEnv(filterSharedRuntimeProjectEnv(envVarsForRequest), executeRoute);
472
+ return runWithProjectEnv(filterRuntimeProjectEnv(envVarsForRequest), executeRoute);
473
473
  }
474
474
  return executeRoute();
475
475
  }), {
@@ -1,3 +1,3 @@
1
1
  /** Shared version value. */
2
- export declare const VERSION = "0.1.1027";
2
+ export declare const VERSION = "0.1.1028";
3
3
  //# sourceMappingURL=version-constant.d.ts.map
@@ -1,4 +1,4 @@
1
1
  // Keep in sync with deno.json version.
2
2
  // scripts/release.ts updates this constant during releases.
3
3
  /** Shared version value. */
4
- export const VERSION = "0.1.1027";
4
+ export const VERSION = "0.1.1028";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "veryfront",
3
- "version": "0.1.1027",
3
+ "version": "0.1.1028",
4
4
  "description": "The simplest way to build AI-powered apps",
5
5
  "keywords": [
6
6
  "react",
@@ -326,9 +326,9 @@
326
326
  "@types/react": "19.2.14",
327
327
  "@types/react-dom": "19.2.3",
328
328
  "ws": "8.21.0",
329
- "@veryfront/ext-bundler-esbuild": "0.1.1027",
330
- "@veryfront/ext-content-mdx": "0.1.1027",
331
- "@veryfront/ext-css-tailwind": "0.1.1027"
329
+ "@veryfront/ext-bundler-esbuild": "0.1.1028",
330
+ "@veryfront/ext-content-mdx": "0.1.1028",
331
+ "@veryfront/ext-css-tailwind": "0.1.1028"
332
332
  },
333
333
  "devDependencies": {
334
334
  "@types/node": "20.9.0"