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 +1 -1
- package/esm/src/metrics/index.d.ts.map +1 -1
- package/esm/src/metrics/index.js +37 -12
- package/esm/src/server/handlers/request/agent-stream.handler.js +2 -2
- package/esm/src/server/project-env/index.d.ts +1 -1
- package/esm/src/server/project-env/index.d.ts.map +1 -1
- package/esm/src/server/project-env/index.js +1 -1
- package/esm/src/server/project-env/reserved-env.d.ts +1 -0
- package/esm/src/server/project-env/reserved-env.d.ts.map +1 -1
- package/esm/src/server/project-env/reserved-env.js +9 -0
- package/esm/src/server/runtime-handler/index.js +2 -2
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +4 -4
package/esm/deno.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/metrics/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,yBAAyB,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"}
|
package/esm/src/metrics/index.js
CHANGED
|
@@ -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
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
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 (
|
|
134
|
+
if (readHostEnv("OTEL_METRICS_ENABLED") !== "true")
|
|
119
135
|
return null;
|
|
120
|
-
const apiBaseUrl =
|
|
121
|
-
const username =
|
|
122
|
-
const password =
|
|
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(
|
|
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("
|
|
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,
|
|
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
|
-
...
|
|
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;
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reserved-env.d.ts","sourceRoot":"","sources":["../../../../src/src/server/project-env/reserved-env.ts"],"names":[],"mappings":"
|
|
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,
|
|
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(
|
|
472
|
+
return runWithProjectEnv(filterRuntimeProjectEnv(envVarsForRequest), executeRoute);
|
|
473
473
|
}
|
|
474
474
|
return executeRoute();
|
|
475
475
|
}), {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "veryfront",
|
|
3
|
-
"version": "0.1.
|
|
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.
|
|
330
|
-
"@veryfront/ext-content-mdx": "0.1.
|
|
331
|
-
"@veryfront/ext-css-tailwind": "0.1.
|
|
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"
|