veryfront 0.1.1068 → 0.1.1071

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 (34) hide show
  1. package/esm/cli/shared/config.d.ts.map +1 -1
  2. package/esm/cli/shared/config.js +3 -10
  3. package/esm/deno.js +2 -2
  4. package/esm/src/agent/runtime/index.d.ts.map +1 -1
  5. package/esm/src/agent/runtime/index.js +90 -41
  6. package/esm/src/agent/runtime/tool-result-continuation.d.ts.map +1 -1
  7. package/esm/src/agent/runtime/tool-result-continuation.js +10 -2
  8. package/esm/src/cache/cache-key-builder.d.ts +30 -0
  9. package/esm/src/cache/cache-key-builder.d.ts.map +1 -1
  10. package/esm/src/cache/cache-key-builder.js +65 -0
  11. package/esm/src/cache/keys/builders/render.d.ts +1 -1
  12. package/esm/src/cache/keys/builders/render.d.ts.map +1 -1
  13. package/esm/src/cache/keys/builders/render.js +7 -4
  14. package/esm/src/observability/tracing/otlp-setup.d.ts +2 -0
  15. package/esm/src/observability/tracing/otlp-setup.d.ts.map +1 -1
  16. package/esm/src/observability/tracing/otlp-setup.js +7 -1
  17. package/esm/src/platform/adapters/fs/veryfront/proxy-manager.d.ts +2 -2
  18. package/esm/src/platform/adapters/fs/veryfront/proxy-manager.d.ts.map +1 -1
  19. package/esm/src/platform/adapters/fs/veryfront/proxy-manager.js +12 -6
  20. package/esm/src/proxy/retry.d.ts +1 -0
  21. package/esm/src/proxy/retry.d.ts.map +1 -1
  22. package/esm/src/proxy/retry.js +31 -14
  23. package/esm/src/registry/project-scoped-registry-manager.d.ts +17 -0
  24. package/esm/src/registry/project-scoped-registry-manager.d.ts.map +1 -1
  25. package/esm/src/registry/project-scoped-registry-manager.js +112 -13
  26. package/esm/src/server/handlers/request/api/project-discovery.d.ts.map +1 -1
  27. package/esm/src/server/handlers/request/api/project-discovery.js +45 -41
  28. package/esm/src/tool/remote-mcp.d.ts.map +1 -1
  29. package/esm/src/tool/remote-mcp.js +14 -2
  30. package/esm/src/utils/version-constant.d.ts +1 -1
  31. package/esm/src/utils/version-constant.js +1 -1
  32. package/esm/src/workflow/executor/step-executor.d.ts.map +1 -1
  33. package/esm/src/workflow/executor/step-executor.js +24 -4
  34. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/cli/shared/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/cli/shared/config.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ import { cliLogger, VERSION } from "../utils/index.js";
13
13
  import { readToken } from "../auth/token-store.js";
14
14
  import { ensureAuthenticated } from "../auth/login.js";
15
15
  import { resolveCliApiUrl } from "./constants.js";
16
- import { isRetryableConnectionError } from "../../src/proxy/retry.js";
16
+ import { isConnectionRefusedError, isRetryableConnectionError } from "../../src/proxy/retry.js";
17
17
  // Delays for exponential backoff with jitter: attempt 1 = ~300ms, 2 = ~1s, 3 = ~3s
18
18
  const API_RETRY_DELAYS_MS = [300, 1000, 3000];
19
19
  const API_MAX_RETRIES = 3;
@@ -21,13 +21,6 @@ const API_MAX_RETRIES = 3;
21
21
  function isTransientStatus(status) {
22
22
  return status === 502 || status === 503 || status === 504;
23
23
  }
24
- /** Returns true when the connection error is a refused connection (request never reached server). */
25
- function isConnectionRefused(error) {
26
- if (!(error instanceof Error))
27
- return false;
28
- const msg = error.message.toLowerCase();
29
- return msg.includes("connection refused") || msg.includes("os error 111");
30
- }
31
24
  /** Sleep for `ms` milliseconds plus a random jitter up to 20% of `ms`. */
32
25
  function sleepWithJitter(ms) {
33
26
  const jitter = Math.floor(ms * 0.2 * Math.random());
@@ -292,7 +285,7 @@ export function createApiClient(config) {
292
285
  }
293
286
  /** Returns true for request methods that are safe to retry on any transient failure. */
294
287
  function isIdempotent(method) {
295
- return method === "GET" || method === "HEAD";
288
+ return method === "GET" || method === "HEAD" || method === "PUT";
296
289
  }
297
290
  async function request(method, path, body, params) {
298
291
  const url = new URL(`${apiUrl}${path}`);
@@ -311,7 +304,7 @@ export function createApiClient(config) {
311
304
  const isTransient = status !== undefined
312
305
  ? isTransientStatus(status)
313
306
  : isRetryableConnectionError(error);
314
- const isRefused = isConnectionRefused(error);
307
+ const isRefused = isConnectionRefusedError(error);
315
308
  // Idempotent: retry on transient HTTP status or any retryable connection error.
316
309
  // Non-idempotent: retry only on connection-refused (request never reached server).
317
310
  const shouldRetry = isIdempotent(method)
package/esm/deno.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "veryfront",
3
- "version": "0.1.1068",
3
+ "version": "0.1.1071",
4
4
  "license": "Apache-2.0",
5
5
  "nodeModulesDir": "auto",
6
6
  "minimumDependencyAge": {
@@ -458,7 +458,7 @@ export default {
458
458
  "lint:ban-test-only": "deno run --allow-read scripts/lint/ban-test-only.ts",
459
459
  "lint:sanitizer-baseline": "deno run --allow-read scripts/lint/check-sanitizer-baseline.ts",
460
460
  "lint:skipped-tests": "deno run --allow-read scripts/lint/check-skipped-tests-baseline.ts",
461
- "test:scripts": "deno test --config=scripts/test.deno.json --no-check --allow-read --allow-write --allow-run scripts/build/dnt-polyfill.test.ts scripts/build/generate-sbom.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/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-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-circular-baseline.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-coverage.test.ts scripts/security/audit-npm.test.ts scripts/security/submit-dependency-snapshot.test.ts",
461
+ "test:scripts": "deno test --config=scripts/test.deno.json --no-check --allow-read --allow-write --allow-run scripts/ci/publish-npm-packages.test.ts scripts/build/dnt-polyfill.test.ts scripts/build/generate-sbom.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/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-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-circular-baseline.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-coverage.test.ts scripts/security/audit-npm.test.ts scripts/security/submit-dependency-snapshot.test.ts",
462
462
  "test:cross-runtime": "deno run --allow-all src/platform/compat/cross-runtime.test.ts",
463
463
  "test:node": "node ./tests/node/run-tests.mjs 'src/**/*.test.ts'",
464
464
  "test:bun": "node ./tests/bun/run-tests.mjs src/",
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/index.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ import { generateId } from "../../utils/id.js";
16
16
  import { detectPlatform, getPlatformCapabilities } from "../../platform/core-platform.js";
17
17
  import { createAgentMemory } from "../memory/index.js";
18
18
  import { serverLogger } from "../../utils/index.js";
19
- import { addSpanEvent, setActiveSpanAttributes as setOtelActiveSpanAttributes, setSpanAttributes, withSpan, } from "../../observability/tracing/otlp-setup.js";
19
+ import { addSpanEvent, setActiveSpanAttributes as setOtelActiveSpanAttributes, setActiveSpanErrorStatus as setOtelActiveSpanErrorStatus, setSpanAttributes, withSpan, } from "../../observability/tracing/otlp-setup.js";
20
20
  import { convertToTextGenerationRuntimeRequestMessages } from "./text-generation-runtime-message-converter.js";
21
21
  import { convertToolsToRuntimeTools } from "./model-tool-converter.js";
22
22
  import { getRuntimeRemoteToolSources } from "./mcp-server-tool-sources.js";
@@ -207,16 +207,22 @@ async function traceConfiguredToolExecution(input) {
207
207
  }));
208
208
  try {
209
209
  const result = await executeConfiguredTool(input.toolName, input.args, input.toolsConfig, input.context, input.allowedRemoteToolNames, input.remoteToolSources);
210
+ const resultError = getToolResultError(result);
211
+ if (resultError !== undefined) {
212
+ setOtelActiveSpanErrorStatus(resultError);
213
+ }
210
214
  setOtelActiveSpanAttributes(buildRuntimeToolTraceAttributes({
211
215
  mode: input.mode,
212
216
  agentId: input.agentId,
213
217
  toolName: input.toolName,
214
218
  toolCallId: input.toolCallId,
215
219
  context: input.context,
216
- status: "completed",
220
+ status: resultError === undefined ? "completed" : "failed",
217
221
  providerExecuted: false,
218
222
  inputSizeBytes,
219
223
  outputSizeBytes: estimateSerializedSizeBytes(result),
224
+ errorType: resultError === undefined ? undefined : "ToolResultError",
225
+ errorMessage: resultError,
220
226
  }));
221
227
  return result;
222
228
  }
@@ -253,6 +259,9 @@ async function traceProviderExecutedTool(input) {
253
259
  const status = input.isError === true ? "failed" : "completed";
254
260
  const errorMessage = input.isError === true ? stringifyToolError(input.result) : undefined;
255
261
  await withSpan("agent.tool_execute", async () => {
262
+ if (errorMessage !== undefined) {
263
+ setOtelActiveSpanErrorStatus(errorMessage);
264
+ }
256
265
  setOtelActiveSpanAttributes(buildRuntimeToolTraceAttributes({
257
266
  ...input,
258
267
  status,
@@ -537,6 +546,7 @@ export class AgentRuntime {
537
546
  const remoteToolSources = getRuntimeRemoteToolSources(this.config);
538
547
  let currentSystemPrompt = systemPrompt;
539
548
  let currentRuntimeContext = runtimeContext;
549
+ let agentWriteFinalResponseToolGuardEnabled = false;
540
550
  for (let step = 0; step < maxSteps; step++) {
541
551
  this.status = "thinking";
542
552
  addSpanEvent(loopSpan, "step_start", { step });
@@ -565,7 +575,10 @@ export class AgentRuntime {
565
575
  currentSystemPrompt = preparedStep.systemPrompt;
566
576
  currentRuntimeContext = preparedStep.runtimeContext;
567
577
  const toolContext = preparedStep.toolContext;
568
- const tools = preparedStep.tools;
578
+ const tools = agentWriteFinalResponseToolGuardEnabled
579
+ ? preparedStep.tools.filter((tool) => !shouldHideProjectToolAfterAgentWriteSuccess(tool.name))
580
+ : preparedStep.tools;
581
+ const stepProviderTools = agentWriteFinalResponseToolGuardEnabled ? [] : providerTools;
569
582
  const temperature = this.resolveTemperature(temperatureModelString ?? effectiveModel, providerOptions);
570
583
  const response = await withSpan("agent.generate_text", async (span) => {
571
584
  setSpanAttributes(span, {
@@ -578,7 +591,7 @@ export class AgentRuntime {
578
591
  messages: convertToTextGenerationRuntimeRequestMessages(currentMessages),
579
592
  tools: convertToolsToRuntimeTools(tools, {
580
593
  model: effectiveModel,
581
- providerTools,
594
+ providerTools: stepProviderTools,
582
595
  }),
583
596
  experimental_repairToolCall: repairToolCall,
584
597
  maxOutputTokens: this.resolveMaxOutputTokens(effectiveModel, maxOutputTokensOverride),
@@ -711,6 +724,13 @@ export class AgentRuntime {
711
724
  toolCall.error = generatedToolResult.isError === true
712
725
  ? stringifyToolError(generatedToolResult.result)
713
726
  : undefined;
727
+ if (toolCall.error !== undefined) {
728
+ setOtelActiveSpanErrorStatus(toolCall.error);
729
+ }
730
+ if (generatedToolResult.isError !== true &&
731
+ shouldHideProjectToolAfterAgentWriteSuccess(tc.toolName)) {
732
+ agentWriteFinalResponseToolGuardEnabled = true;
733
+ }
714
734
  setSpanAttributes(toolSpan, compactRuntimeTraceAttributes({
715
735
  "tool.status": generatedToolResult.isError === true ? "failed" : "completed",
716
736
  "tool.provider_executed": generatedToolResult.providerExecuted === true,
@@ -787,27 +807,42 @@ export class AgentRuntime {
787
807
  result,
788
808
  context: executionContext,
789
809
  });
790
- toolCall.status = "completed";
810
+ const resultError = getToolResultError(result);
811
+ if (resultError !== undefined) {
812
+ setOtelActiveSpanErrorStatus(resultError);
813
+ }
814
+ toolCall.status = resultError === undefined ? "completed" : "error";
791
815
  toolCall.result = result;
816
+ toolCall.error = resultError;
792
817
  toolCall.executionTime = Date.now() - startTime;
793
818
  setSpanAttributes(toolSpan, compactRuntimeTraceAttributes({
794
- "tool.status": "completed",
819
+ "tool.status": resultError === undefined ? "completed" : "failed",
795
820
  "tool.provider_executed": false,
796
821
  "tool.output.size_bytes": estimateSerializedSizeBytes(result),
822
+ ...(resultError === undefined ? {} : {
823
+ error: true,
824
+ "error.type": "ToolResultError",
825
+ "error.message": resultError,
826
+ }),
797
827
  }));
798
- // Track skill policy from load_skill results
799
- if (tc.toolName === LOAD_SKILL_TOOL_ID) {
800
- activeSkillId = extractSkillId(result);
801
- activeSkillPolicy = extractSkillPolicy(result);
802
- activeSkillToolAvailability = extractSkillToolAvailability(result) ??
803
- INACTIVE_SKILL_TOOL_AVAILABILITY;
804
- activeSkillDelegationOverrides = extractSkillDelegationOverrides(result);
805
- mustLoadSkillFirst = false;
806
- }
807
- activeSkillPolicy = removeFormInputAfterSubmission(tc.toolName, result, activeSkillId, activeSkillPolicy);
808
- if (isSubmittedFormInputExecutionResult(tc.toolName, result)) {
809
- hasSubmittedFormInputInLoop = true;
810
- currentRuntimeContext = markSubmittedFormInputRuntimeContext(currentRuntimeContext);
828
+ if (resultError === undefined) {
829
+ if (shouldHideProjectToolAfterAgentWriteSuccess(tc.toolName)) {
830
+ agentWriteFinalResponseToolGuardEnabled = true;
831
+ }
832
+ // Track skill policy from successful load_skill results
833
+ if (tc.toolName === LOAD_SKILL_TOOL_ID) {
834
+ activeSkillId = extractSkillId(result);
835
+ activeSkillPolicy = extractSkillPolicy(result);
836
+ activeSkillToolAvailability = extractSkillToolAvailability(result) ??
837
+ INACTIVE_SKILL_TOOL_AVAILABILITY;
838
+ activeSkillDelegationOverrides = extractSkillDelegationOverrides(result);
839
+ mustLoadSkillFirst = false;
840
+ }
841
+ activeSkillPolicy = removeFormInputAfterSubmission(tc.toolName, result, activeSkillId, activeSkillPolicy);
842
+ if (isSubmittedFormInputExecutionResult(tc.toolName, result)) {
843
+ hasSubmittedFormInputInLoop = true;
844
+ currentRuntimeContext = markSubmittedFormInputRuntimeContext(currentRuntimeContext);
845
+ }
811
846
  }
812
847
  const toolResultMessage = createToolResultMessage(tc.toolCallId, tc.toolName, result);
813
848
  currentMessages.push(toolResultMessage);
@@ -1199,34 +1234,48 @@ export class AgentRuntime {
1199
1234
  result,
1200
1235
  context: executionContext,
1201
1236
  });
1202
- toolCall.status = "completed";
1237
+ const resultError = getToolResultError(result);
1238
+ toolCall.status = resultError === undefined ? "completed" : "error";
1203
1239
  toolCall.result = result;
1240
+ toolCall.error = resultError;
1204
1241
  toolCall.executionTime = Date.now() - startTime;
1205
1242
  toolCalls.push(toolCall);
1206
- // Track skill policy from load_skill results
1207
- if (tc.name === LOAD_SKILL_TOOL_ID) {
1208
- activeSkillId = extractSkillId(result);
1209
- activeSkillPolicy = extractSkillPolicy(result);
1210
- activeSkillToolAvailability = extractSkillToolAvailability(result) ??
1211
- INACTIVE_SKILL_TOOL_AVAILABILITY;
1212
- activeSkillDelegationOverrides = extractSkillDelegationOverrides(result);
1213
- mustLoadSkillFirst = false;
1243
+ if (resultError === undefined) {
1244
+ // Track skill policy from successful load_skill results
1245
+ if (tc.name === LOAD_SKILL_TOOL_ID) {
1246
+ activeSkillId = extractSkillId(result);
1247
+ activeSkillPolicy = extractSkillPolicy(result);
1248
+ activeSkillToolAvailability = extractSkillToolAvailability(result) ??
1249
+ INACTIVE_SKILL_TOOL_AVAILABILITY;
1250
+ activeSkillDelegationOverrides = extractSkillDelegationOverrides(result);
1251
+ mustLoadSkillFirst = false;
1252
+ }
1253
+ activeSkillPolicy = removeFormInputAfterSubmission(tc.name, result, activeSkillId, activeSkillPolicy);
1254
+ if (isSubmittedFormInputExecutionResult(tc.name, result)) {
1255
+ hasSubmittedFormInputInLoop = true;
1256
+ currentRuntimeContext = markSubmittedFormInputRuntimeContext(currentRuntimeContext);
1257
+ }
1258
+ if (shouldHideProjectToolAfterAgentWriteSuccess(tc.name)) {
1259
+ agentWriteFinalResponseToolGuardEnabled = true;
1260
+ }
1214
1261
  }
1215
- activeSkillPolicy = removeFormInputAfterSubmission(tc.name, result, activeSkillId, activeSkillPolicy);
1216
- if (isSubmittedFormInputExecutionResult(tc.name, result)) {
1217
- hasSubmittedFormInputInLoop = true;
1218
- currentRuntimeContext = markSubmittedFormInputRuntimeContext(currentRuntimeContext);
1262
+ const dynamic = isDynamicTool(tc.name);
1263
+ if (resultError === undefined) {
1264
+ sendSSE(controller, encoder, {
1265
+ type: "tool-output-available",
1266
+ toolCallId: toolCall.id,
1267
+ output: result,
1268
+ ...(dynamic ? { dynamic: true } : {}),
1269
+ });
1219
1270
  }
1220
- if (shouldHideProjectToolAfterAgentWriteSuccess(tc.name)) {
1221
- agentWriteFinalResponseToolGuardEnabled = true;
1271
+ else {
1272
+ sendSSE(controller, encoder, {
1273
+ type: "tool-output-error",
1274
+ toolCallId: toolCall.id,
1275
+ errorText: resultError,
1276
+ ...(dynamic ? { dynamic: true } : {}),
1277
+ });
1222
1278
  }
1223
- const dynamic = isDynamicTool(tc.name);
1224
- sendSSE(controller, encoder, {
1225
- type: "tool-output-available",
1226
- toolCallId: toolCall.id,
1227
- output: result,
1228
- ...(dynamic ? { dynamic: true } : {}),
1229
- });
1230
1279
  const toolResultMessage = createToolResultMessage(tc.id, tc.name, result);
1231
1280
  if (!currentStepToolResults.has(tc.id)) {
1232
1281
  currentMessages.push(toolResultMessage);
@@ -1 +1 @@
1
- {"version":3,"file":"tool-result-continuation.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/tool-result-continuation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-result-continuation.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/tool-result-continuation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlF,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAmBzF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAoBtE;AAED,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,gBAAgB,UAAQ,GACvB,OAAO,CAeT;AAED,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAcT;AAED,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,EAAE,CAiB/F;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,GAC1C,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAYlC;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,OAAO,EAAE,GAClB,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAkB7B;AAED,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,yBAAyB,EAAE,GAAG,SAAS,GACnD,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAQxC;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE7E;AAED,wBAAgB,sCAAsC,CACpD,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,gBAAgB,GAAG,kBAAkB,CAAC,GACrF,OAAO,CAET;AAED,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,EAC/C,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,gBAAgB,GAAG,kBAAkB,CAAC,GACrF,OAAO,CAGT;AAED,wBAAgB,wCAAwC,CACtD,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,EAC/C,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,gBAAgB,GAAG,kBAAkB,CAAC,GACrF,OAAO,CAGT;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EACD,IAAI,CAAC,eAAe,EAAE,iBAAiB,GAAG,cAAc,GAAG,WAAW,GAAG,aAAa,CAAC,GACvF,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC,GACxD,OAAO,CAwET;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,GAC7C;IACD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAOA;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,GAClD,OAAO,CAET;AAED,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,GAAG,WAAW,CAAC,GAChE,OAAO,CAMT;AAED,MAAM,MAAM,+BAA+B,GACvC;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GACzD;IACA,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,GACC;IACA,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;CAC1C,CAAC;AAEJ,wBAAgB,2BAA2B,CACzC,EAAE,EAAE,iBAAiB,GACpB,+BAA+B,CAoCjC;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,IAAI,cAAc,CAE1E"}
@@ -1,4 +1,5 @@
1
1
  import { stripLeadingEmptyObjectPlaceholder } from "../streaming/data-stream.js";
2
+ import { hasToolExecutionErrorMarker } from "../../tool/result.js";
2
3
  import { parseToolArgs } from "./tool-helpers.js";
3
4
  import { stringifyToolError } from "./error-utils.js";
4
5
  function getMcpToolErrorMessage(result) {
@@ -15,14 +16,21 @@ function getMcpToolErrorMessage(result) {
15
16
  return record.error;
16
17
  }
17
18
  export function getToolResultError(result) {
18
- if (!result || typeof result !== "object" || !("error" in result)) {
19
+ if (!hasToolExecutionErrorMarker(result)) {
19
20
  return undefined;
20
21
  }
21
22
  const mcpToolErrorMessage = getMcpToolErrorMessage(result);
22
23
  if (mcpToolErrorMessage !== undefined) {
23
24
  return mcpToolErrorMessage;
24
25
  }
25
- return stringifyToolError(result.error);
26
+ const record = result;
27
+ if (typeof record.error === "string") {
28
+ return stringifyToolError(record.error);
29
+ }
30
+ if (typeof record.message === "string" && record.message.trim().length > 0) {
31
+ return record.message;
32
+ }
33
+ return "Tool execution failed";
26
34
  }
27
35
  export function createToolResultMessage(toolCallId, toolName, result, providerExecuted = false) {
28
36
  return {
@@ -10,10 +10,40 @@ type MultiProjectRequestContextType = {
10
10
  environmentName?: string | null;
11
11
  };
12
12
  export type { CacheKeyContext };
13
+ export interface RegistryScopeContext {
14
+ scopeId: string;
15
+ /** Whether completed discovery is safe to retain for this immutable source. */
16
+ immutable: boolean;
17
+ }
13
18
  export declare function getContentHashKey(prefix: string, filePath: string, contentHash: string, suffix?: string): string;
14
19
  export declare function runWithCacheKeyContext<T>(ctx: CacheKeyContext, fn: () => T): T;
20
+ /**
21
+ * Suppress an inherited explicit cache scope for a callback. This is used when
22
+ * a restored tenant has a mutable source (for example, a production
23
+ * environment without a pinned release) that cannot safely use distributed
24
+ * caching. Ambient request context remains available for in-process registry
25
+ * isolation.
26
+ */
27
+ export declare function runWithoutCacheKeyContext<T>(fn: () => T): T;
15
28
  export declare function getCurrentCacheKeyContext(): CacheKeyContext;
16
29
  export declare function tryGetCacheKeyContext(): CacheKeyContext | null;
30
+ /**
31
+ * Returns a stable scope identifier for in-process registry isolation.
32
+ *
33
+ * Unlike tryGetCacheKeyContext(), this function does NOT return null when the
34
+ * request context lacks a field that would be required for a safe distributed
35
+ * cache key (e.g. productionMode=true without a releaseId). For in-process
36
+ * registries (ProjectScopedRegistryManager), project identity and the active
37
+ * content source still provide a safe process-local scope. Collapsing to
38
+ * "__default__" would let concurrent projects overwrite one another's
39
+ * registered skills, tools, and agents.
40
+ *
41
+ * Returns null only when no project identity is available at all (e.g. CLI /
42
+ * local dev without a multi-project context), in which case the caller should
43
+ * fall back to DEFAULT_SCOPE_ID.
44
+ */
45
+ export declare function tryGetRegistryScopeContext(): RegistryScopeContext | null;
46
+ export declare function tryGetRegistryScopeId(): string | null;
17
47
  export declare function getProjectScopedKey(prefix: string, resourceKey: string): string | null;
18
48
  export declare function getProjectScopedKeyAlways(prefix: string, resourceKey: string): string | null;
19
49
  export declare function extractCacheKeyContext(handlerCtx: HandlerContext): CacheKeyContext | null;
@@ -1 +1 @@
1
- {"version":3,"file":"cache-key-builder.d.ts","sourceRoot":"","sources":["../../../src/src/cache/cache-key-builder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,KAAK,eAAe,EAAyB,MAAM,oBAAoB,CAAC;AAIjF,KAAK,8BAA8B,GAAG;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,CAAC;AAIF,YAAY,EAAE,eAAe,EAAE,CAAC;AAQhC,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAER;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAE9E;AAED,wBAAgB,yBAAyB,IAAI,eAAe,CAQ3D;AA+CD,wBAAgB,qBAAqB,IAAI,eAAe,GAAG,IAAI,CAQ9D;AAMD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKtF;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK5F;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,cAAc,GAAG,eAAe,GAAG,IAAI,CAyBzF;AAED,YAAY,EAAE,8BAA8B,IAAI,0BAA0B,EAAE,CAAC"}
1
+ {"version":3,"file":"cache-key-builder.d.ts","sourceRoot":"","sources":["../../../src/src/cache/cache-key-builder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,KAAK,eAAe,EAAyB,MAAM,oBAAoB,CAAC;AAIjF,KAAK,8BAA8B,GAAG;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,CAAC;AAIF,YAAY,EAAE,eAAe,EAAE,CAAC;AAEhC,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,SAAS,EAAE,OAAO,CAAC;CACpB;AAQD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAER;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAE9E;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAE3D;AAED,wBAAgB,yBAAyB,IAAI,eAAe,CAQ3D;AA+CD,wBAAgB,qBAAqB,IAAI,eAAe,GAAG,IAAI,CAQ9D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,IAAI,oBAAoB,GAAG,IAAI,CAwCxE;AAED,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,IAAI,CAErD;AAMD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKtF;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK5F;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,cAAc,GAAG,eAAe,GAAG,IAAI,CAyBzF;AAED,YAAY,EAAE,8BAA8B,IAAI,0BAA0B,EAAE,CAAC"}
@@ -14,6 +14,16 @@ export function getContentHashKey(prefix, filePath, contentHash, suffix) {
14
14
  export function runWithCacheKeyContext(ctx, fn) {
15
15
  return cacheKeyContextStorage.run(validateCacheKeyContext(ctx), fn);
16
16
  }
17
+ /**
18
+ * Suppress an inherited explicit cache scope for a callback. This is used when
19
+ * a restored tenant has a mutable source (for example, a production
20
+ * environment without a pinned release) that cannot safely use distributed
21
+ * caching. Ambient request context remains available for in-process registry
22
+ * isolation.
23
+ */
24
+ export function runWithoutCacheKeyContext(fn) {
25
+ return cacheKeyContextStorage.run(null, fn);
26
+ }
17
27
  export function getCurrentCacheKeyContext() {
18
28
  const ctx = cacheKeyContextStorage.getStore();
19
29
  if (ctx)
@@ -73,6 +83,61 @@ export function tryGetCacheKeyContext() {
73
83
  return null;
74
84
  return extractCacheKeyContextFromMultiProjectContext(reqCtx);
75
85
  }
86
+ /**
87
+ * Returns a stable scope identifier for in-process registry isolation.
88
+ *
89
+ * Unlike tryGetCacheKeyContext(), this function does NOT return null when the
90
+ * request context lacks a field that would be required for a safe distributed
91
+ * cache key (e.g. productionMode=true without a releaseId). For in-process
92
+ * registries (ProjectScopedRegistryManager), project identity and the active
93
+ * content source still provide a safe process-local scope. Collapsing to
94
+ * "__default__" would let concurrent projects overwrite one another's
95
+ * registered skills, tools, and agents.
96
+ *
97
+ * Returns null only when no project identity is available at all (e.g. CLI /
98
+ * local dev without a multi-project context), in which case the caller should
99
+ * fall back to DEFAULT_SCOPE_ID.
100
+ */
101
+ export function tryGetRegistryScopeContext() {
102
+ // Explicit contexts are authoritative for workflows and other callers that
103
+ // intentionally override ambient filesystem tenancy.
104
+ const cacheCtx = cacheKeyContextStorage.getStore();
105
+ if (cacheCtx) {
106
+ return {
107
+ scopeId: `${cacheCtx.projectId}:${cacheCtx.mode}:${cacheCtx.versionId}`,
108
+ immutable: cacheCtx.mode === "production",
109
+ };
110
+ }
111
+ const reqCtx = getRequestContextFn()?.();
112
+ if (reqCtx) {
113
+ const projectId = reqCtx.projectId || reqCtx.projectSlug;
114
+ if (!projectId)
115
+ return null;
116
+ if (reqCtx.productionMode) {
117
+ if (reqCtx.releaseId) {
118
+ return {
119
+ scopeId: `${projectId}:production:${reqCtx.releaseId}`,
120
+ immutable: true,
121
+ };
122
+ }
123
+ // Match ProxyFSAdapterManager's canonical default so registry,
124
+ // discovery, and adapter caches all describe the same content source.
125
+ const environmentName = reqCtx.environmentName || "production";
126
+ return {
127
+ scopeId: `${projectId}:production:environment:${environmentName}`,
128
+ immutable: false,
129
+ };
130
+ }
131
+ return {
132
+ scopeId: `${projectId}:preview:${reqCtx.branch || "main"}`,
133
+ immutable: false,
134
+ };
135
+ }
136
+ return null;
137
+ }
138
+ export function tryGetRegistryScopeId() {
139
+ return tryGetRegistryScopeContext()?.scopeId ?? null;
140
+ }
76
141
  function buildProjectScopedKey(prefix, resourceKey, ctx) {
77
142
  return `${prefix}:${ctx.projectId}:${ctx.mode}:${ctx.versionId}:${resourceKey}`;
78
143
  }
@@ -35,7 +35,7 @@ export declare function buildRenderCacheKey(cachePrefix: string, contentKey: str
35
35
  export declare function buildComponentCacheKey(projectId: string, filePath: string, contentHash: string): string;
36
36
  export declare function buildLayoutComponentCacheKey(projectId: string, componentPath: string, hash: string, contentSourceId: string): string;
37
37
  export declare function buildErrorPageCacheKey(projectId: string | undefined, projectDir: string, pageType: string): string;
38
- export declare function buildProxyManagerCacheKey(projectSlug: string, productionMode: boolean, releaseId: string | null, branch: string | null): string;
38
+ export declare function buildProxyManagerCacheKey(projectSlug: string, productionMode: boolean, releaseId: string | null, branch: string | null, environmentName?: string | null): string;
39
39
  /**
40
40
  * Build a query-aware cache key that is safe for multi-tenant caching.
41
41
  *
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../../../src/src/cache/keys/builders/render.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAIlF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAI7D,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,SAAS,GAAG,YAAY,EACrC,UAAU,EAAE,MAAM;AAClB;;;;;GAKG;AACH,eAAe,CAAC,EAAE,MAAM,GACvB,MAAM,CAGR;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,SAAS,GAAG,YAAY,EACrC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACjC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACnC,MAAM,CAaR;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEnF;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,MAAM,CAER;AAED,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,MAAM,GACtB,MAAM,CAER;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,MAAM,CAER;AAED,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,OAAO,EACvB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,MAAM,CAaR;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,GAAG,CAAC,EAAE,GAAG,EACT,OAAO,CAAC,EAAE,sBAAsB,GAC/B,MAAM,CAMR"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../../../src/src/cache/keys/builders/render.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAIlF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAI7D,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,SAAS,GAAG,YAAY,EACrC,UAAU,EAAE,MAAM;AAClB;;;;;GAKG;AACH,eAAe,CAAC,EAAE,MAAM,GACvB,MAAM,CAGR;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,SAAS,GAAG,YAAY,EACrC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACjC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACnC,MAAM,CAaR;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEnF;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,MAAM,CAER;AAED,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,MAAM,GACtB,MAAM,CAER;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,MAAM,CAER;AAED,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,OAAO,EACvB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAC9B,MAAM,CAgBR;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,GAAG,CAAC,EAAE,GAAG,EACT,OAAO,CAAC,EAAE,sBAAsB,GAC/B,MAAM,CAMR"}
@@ -61,15 +61,18 @@ export function buildLayoutComponentCacheKey(projectId, componentPath, hash, con
61
61
  export function buildErrorPageCacheKey(projectId, projectDir, pageType) {
62
62
  return `${CacheKeyPrefix.ERROR_PAGE}:${projectId ?? projectDir}:${pageType}`;
63
63
  }
64
- export function buildProxyManagerCacheKey(projectSlug, productionMode, releaseId, branch) {
64
+ export function buildProxyManagerCacheKey(projectSlug, productionMode, releaseId, branch, environmentName) {
65
65
  const mode = productionMode ? "production" : "preview";
66
66
  if (productionMode) {
67
- if (!releaseId) {
67
+ if (releaseId) {
68
+ return `${CacheKeyPrefix.PROXY}:${projectSlug}:${mode}:${releaseId}`;
69
+ }
70
+ if (!environmentName) {
68
71
  throw CACHE_INVARIANT_VIOLATION.create({
69
- detail: `Missing releaseId in production for ${projectSlug}`,
72
+ detail: `Missing releaseId or environmentName in production for ${projectSlug}`,
70
73
  });
71
74
  }
72
- return `${CacheKeyPrefix.PROXY}:${projectSlug}:${mode}:${releaseId}`;
75
+ return `${CacheKeyPrefix.PROXY}:${projectSlug}:${mode}:environment:${environmentName}`;
73
76
  }
74
77
  return `${CacheKeyPrefix.PROXY}:${projectSlug}:${mode}:${branch ?? "main"}`;
75
78
  }
@@ -52,6 +52,8 @@ export declare function setSpanAttributes(span: unknown, attributes: Record<stri
52
52
  export declare function addSpanEvent(span: unknown, name: string, attributes?: Record<string, AttributeValue>): void;
53
53
  /** Sets active span attributes. */
54
54
  export declare function setActiveSpanAttributes(attributes: Record<string, AttributeValue>): void;
55
+ /** Marks the active span as failed. */
56
+ export declare function setActiveSpanErrorStatus(error: unknown): void;
55
57
  /** Context for with. */
56
58
  export declare function withContext<T>(spanContext: unknown, fn: () => Promise<T>): Promise<T>;
57
59
  /** Context for get trace. */
@@ -1 +1 @@
1
- {"version":3,"file":"otlp-setup.d.ts","sourceRoot":"","sources":["../../../../src/src/observability/tracing/otlp-setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"otlp-setup.d.ts","sourceRoot":"","sources":["../../../../src/src/observability/tracing/otlp-setup.ts"],"names":[],"mappings":"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"}
@@ -106,7 +106,6 @@ export async function withSpan(name, fn, attributes, options) {
106
106
  const spanContext = shimTrace.setSpan(parentContext, span);
107
107
  try {
108
108
  const result = await shimContext.with(spanContext, () => fn(span));
109
- span.setStatus({ code: SpanStatusCode.OK });
110
109
  return result;
111
110
  }
112
111
  catch (error) {
@@ -200,6 +199,13 @@ export function setActiveSpanAttributes(attributes) {
200
199
  for (const [key, value] of Object.entries(attributes))
201
200
  span.setAttribute(key, value);
202
201
  }
202
+ /** Marks the active span as failed. */
203
+ export function setActiveSpanErrorStatus(error) {
204
+ const span = shimTrace.getActiveSpan?.();
205
+ if (!span)
206
+ return;
207
+ setSpanErrorStatus(span, error);
208
+ }
203
209
  /** Context for with. */
204
210
  export async function withContext(spanContext, fn) {
205
211
  return shimContext.with(spanContext, fn);
@@ -22,8 +22,8 @@ export declare class ProxyFSAdapterManager {
22
22
  private createAdapter;
23
23
  private evictLeastRecentlyUsed;
24
24
  private cleanupIdleAdapters;
25
- hasAdapter(projectSlug: string, productionMode?: boolean, releaseId?: string | null, branch?: string | null): boolean;
26
- evictAdapter(projectSlug: string, productionMode?: boolean, releaseId?: string | null, branch?: string | null): void;
25
+ hasAdapter(projectSlug: string, productionMode?: boolean, releaseId?: string | null, branch?: string | null, environmentName?: string | null): boolean;
26
+ evictAdapter(projectSlug: string, productionMode?: boolean, releaseId?: string | null, branch?: string | null, environmentName?: string | null): void;
27
27
  getStats(): {
28
28
  adapters: number;
29
29
  stats: Record<string, CacheStats>;
@@ -1 +1 @@
1
- {"version":3,"file":"proxy-manager.d.ts","sourceRoot":"","sources":["../../../../../../src/src/platform/adapters/fs/veryfront/proxy-manager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAA0B,MAAM,YAAY,CAAC;AAetF,UAAU,2BAA2B;IACnC,UAAU,EAAE,eAAe,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAoCD,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACjC,cAAc,UAAQ,GACrB,MAAM,GAAG,IAAI,CAgBf;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,eAAe,CAAkD;IACzE,OAAO,CAAC,oBAAoB,CAAyC;IACrE,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAC,CAAiC;gBAE1C,MAAM,EAAE,2BAA2B;IAkBzC,UAAU,CACd,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,OAAO,EACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,EACzB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,EAC/B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,kBAAkB,CAAC;IAkK9B,OAAO,CAAC,oBAAoB;IAuC5B,OAAO,CAAC,wBAAwB;IAyChC,OAAO,CAAC,aAAa;IAyJrB,OAAO,CAAC,sBAAsB;IAsB9B,OAAO,CAAC,mBAAmB;IAY3B,UAAU,CACR,WAAW,EAAE,MAAM,EACnB,cAAc,CAAC,EAAE,OAAO,EACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,EACzB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO;IAUV,YAAY,CACV,WAAW,EAAE,MAAM,EACnB,cAAc,CAAC,EAAE,OAAO,EACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,EACzB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GACrB,IAAI;IAmBP,QAAQ,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;KAAE;IAUnE,OAAO,IAAI,IAAI;CAoBhB"}
1
+ {"version":3,"file":"proxy-manager.d.ts","sourceRoot":"","sources":["../../../../../../src/src/platform/adapters/fs/veryfront/proxy-manager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAA0B,MAAM,YAAY,CAAC;AAetF,UAAU,2BAA2B;IACnC,UAAU,EAAE,eAAe,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAoCD,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACjC,cAAc,UAAQ,GACrB,MAAM,GAAG,IAAI,CAgBf;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,eAAe,CAAkD;IACzE,OAAO,CAAC,oBAAoB,CAAyC;IACrE,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAC,CAAiC;gBAE1C,MAAM,EAAE,2BAA2B;IAkBzC,UAAU,CACd,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,OAAO,EACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,EACzB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,EAC/B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,kBAAkB,CAAC;IAmK9B,OAAO,CAAC,oBAAoB;IAuC5B,OAAO,CAAC,wBAAwB;IAyChC,OAAO,CAAC,aAAa;IAyJrB,OAAO,CAAC,sBAAsB;IAsB9B,OAAO,CAAC,mBAAmB;IAY3B,UAAU,CACR,WAAW,EAAE,MAAM,EACnB,cAAc,CAAC,EAAE,OAAO,EACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,EACzB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EACtB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAC9B,OAAO;IAcV,YAAY,CACV,WAAW,EAAE,MAAM,EACnB,cAAc,CAAC,EAAE,OAAO,EACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,EACzB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EACtB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAC9B,IAAI;IAuBP,QAAQ,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;KAAE;IAUnE,OAAO,IAAI,IAAI;CAoBhB"}