veryfront 0.1.1067 → 0.1.1069

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.
@@ -82,10 +82,20 @@ interface Release {
82
82
  build_status: string;
83
83
  deploy_status: string;
84
84
  }
85
- interface Deployment {
85
+ export type DeploymentRoutingConvergence = {
86
+ status: "converged";
87
+ acknowledged: number;
88
+ recipients: number;
89
+ } | {
90
+ status: "pending";
91
+ } | {
92
+ status: "skipped";
93
+ };
94
+ export interface Deployment {
86
95
  id: string;
87
96
  release_id: string;
88
97
  environment_id: string;
98
+ routing_convergence?: DeploymentRoutingConvergence;
89
99
  }
90
100
  export interface DeploymentVerification {
91
101
  projectId: string;
@@ -128,6 +138,7 @@ interface DeploymentVerificationOptions {
128
138
  delayMs?: number;
129
139
  verifiedRelease?: ReleaseSourceVerification;
130
140
  }
141
+ export declare function getDeploymentRoutingConvergenceWarning(deployment: Deployment): string | null;
131
142
  export declare function assertProjectOwnership(resourceType: "Environment" | "Release", resource: {
132
143
  id: string;
133
144
  project_id?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deploy/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deploy/command.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ import { defineSchema, lazySchema } from "../../../src/schemas/index.js";
10
10
  import { cwd } from "../../../src/platform/index.js";
11
11
  import { createApiClient, resolveConfigWithAuth } from "../../shared/config.js";
12
12
  import { CommonArgs, createArgParser } from "../../shared/args.js";
13
- import { confirmPrompt, logInfo, logSuccess } from "../../utils/index.js";
13
+ import { confirmPrompt, logInfo, logSuccess, logWarning } from "../../utils/index.js";
14
14
  import { createNoopSpinner, createSpinner, muted } from "../../ui/index.js";
15
15
  import { isJsonMode, streamJsonLine } from "../../shared/json-output.js";
16
16
  import { computeSourceDigest, getProjectTarget, normalizeControlPlane, readPushReceipt, resolveGitSource, validatePushReceipt, } from "../../shared/deployment-provenance.js";
@@ -60,8 +60,20 @@ function normalizeDeployment(deployment) {
60
60
  id: deployment.id,
61
61
  release_id: releaseId,
62
62
  environment_id: environmentId,
63
+ routing_convergence: deployment.routing_convergence,
63
64
  };
64
65
  }
66
+ export function getDeploymentRoutingConvergenceWarning(deployment) {
67
+ const convergence = deployment.routing_convergence;
68
+ if (!convergence)
69
+ return null;
70
+ if (convergence.status === "converged" &&
71
+ convergence.recipients > 0 &&
72
+ convergence.acknowledged >= convergence.recipients) {
73
+ return null;
74
+ }
75
+ return `Deployment ${deployment.id} committed, but data-plane routing convergence was not confirmed; bounded cache expiry remains the recovery path`;
76
+ }
65
77
  export function assertProjectOwnership(resourceType, resource, projectId) {
66
78
  if (resource.project_id && resource.project_id !== projectId) {
67
79
  throw new Error(`${resourceType} ${resource.id} does not belong to resolved project ${projectId}`);
@@ -348,6 +360,12 @@ export async function deployCommand(options) {
348
360
  logInfo(` Environment: ${env} (${verification.environmentId})`);
349
361
  logInfo(` Release: ${release.name} (${verification.releaseVersion}, ${verification.releaseId})`);
350
362
  logInfo(` Deployment: ${verification.deploymentId}`);
363
+ if (deployment.routing_convergence?.status === "converged") {
364
+ logInfo(` Data plane: ${deployment.routing_convergence.acknowledged}/${deployment.routing_convergence.recipients} proxy replicas converged`);
365
+ }
366
+ const routingConvergenceWarning = getDeploymentRoutingConvergenceWarning(deployment);
367
+ if (routingConvergenceWarning)
368
+ logWarning(routingConvergenceWarning);
351
369
  logInfo(` Commit: ${verification.commitSha}`);
352
370
  logInfo(` Source digest: ${verification.sourceDigest}`);
353
371
  logInfo(` Control plane: ${normalizeControlPlane(config.apiUrl)}`);
@@ -448,6 +466,14 @@ async function deployCommandJson(options) {
448
466
  sourceDigest: source.sourceDigest,
449
467
  }, { verifiedRelease });
450
468
  streamJsonLine({ type: "step", name: "verify-deployment", status: "completed" });
469
+ const routingConvergenceWarning = getDeploymentRoutingConvergenceWarning(deployment);
470
+ if (routingConvergenceWarning) {
471
+ streamJsonLine({
472
+ type: "warning",
473
+ code: "routing-convergence-unconfirmed",
474
+ message: routingConvergenceWarning,
475
+ });
476
+ }
451
477
  streamJsonLine({
452
478
  type: "result",
453
479
  success: true,
@@ -462,6 +488,7 @@ async function deployCommandJson(options) {
462
488
  environment: env,
463
489
  environmentId: verification.environmentId,
464
490
  deploymentId: verification.deploymentId,
491
+ routingConvergence: deployment.routing_convergence ?? null,
465
492
  commitSha: verification.commitSha,
466
493
  sourceDigest: verification.sourceDigest,
467
494
  controlPlane: normalizeControlPlane(config.apiUrl),
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Deploy command - Create and deploy releases
3
3
  */
4
- export { assertProjectOwnership, createDeployment, createRelease, DeployArgsSchema, deployCommand, getDeployment, getEnvironmentByName, getProject, getRelease, getReleaseSourceDigest, parseDeployArgs, resolvePushedSource, verifyDeployment, verifyReleaseSource, } from "./command.js";
5
- export type { DeploymentVerification, DeployOptions, ReleaseSourceVerification, } from "./command.js";
4
+ export { assertProjectOwnership, createDeployment, createRelease, DeployArgsSchema, deployCommand, getDeployment, getDeploymentRoutingConvergenceWarning, getEnvironmentByName, getProject, getRelease, getReleaseSourceDigest, parseDeployArgs, resolvePushedSource, verifyDeployment, verifyReleaseSource, } from "./command.js";
5
+ export type { Deployment, DeploymentRoutingConvergence, DeploymentVerification, DeployOptions, ReleaseSourceVerification, } from "./command.js";
6
6
  export { handleDeployCommand } from "./handler.js";
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deploy/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,UAAU,EACV,UAAU,EACV,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,sBAAsB,EACtB,aAAa,EACb,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deploy/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,sCAAsC,EACtC,oBAAoB,EACpB,UAAU,EACV,UAAU,EACV,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,UAAU,EACV,4BAA4B,EAC5B,sBAAsB,EACtB,aAAa,EACb,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * Deploy command - Create and deploy releases
3
3
  */
4
- export { assertProjectOwnership, createDeployment, createRelease, DeployArgsSchema, deployCommand, getDeployment, getEnvironmentByName, getProject, getRelease, getReleaseSourceDigest, parseDeployArgs, resolvePushedSource, verifyDeployment, verifyReleaseSource, } from "./command.js";
4
+ export { assertProjectOwnership, createDeployment, createRelease, DeployArgsSchema, deployCommand, getDeployment, getDeploymentRoutingConvergenceWarning, getEnvironmentByName, getProject, getRelease, getReleaseSourceDigest, parseDeployArgs, resolvePushedSource, verifyDeployment, verifyReleaseSource, } from "./command.js";
5
5
  export { handleDeployCommand } from "./handler.js";
@@ -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":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAGxE,OAAO,EAAE,KAAK,iBAAiB,EAAwB,MAAM,2BAA2B,CAAC;AAuBzF,eAAO,MAAM,wBAAwB;;IAGjC,mDAAmD;;;;GAKtD,CAAC;AACF,eAAO,MAAM,qBAAqB;;IAN9B,mDAAmD;;;;GAMkB,CAAC;AAC1E,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC,CAAC;AAEvF,eAAO,MAAM,uBAAuB;;;;;GAOnC,CAAC;AACF,eAAO,MAAM,oBAAoB;;;;;GAAsC,CAAC;AACxE,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC,CAAC;AAUrF,MAAM,MAAM,sBAAsB,GAC9B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,2BAA2B,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC;AAEhD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,cAAc,CAAC;IACvB,sBAAsB,EAAE,sBAAsB,CAAC;CAChD;AAsDD,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAExF;AAED,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAatF;AAkJD,eAAO,MAAM,aAAa,gBAJG,MAAM,QAAQ,iBAAiB,KAAG,OAAO,CAAC,cAAc,CAI7B,CAAC;AAEzD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,gBAZL,MAAM,QAAQ,iBAAiB,KAAG,OAAO,CAAC,cAAc,CAYtB,CAAC;AAEhE,wBAAgB,4BAA4B,CAC1C,UAAU,CAAC,EAAE,MAAM,EACnB,GAAG,CAAC,EAAE,iBAAiB,GACtB,OAAO,CAAC,qBAAqB,CAAC,CAEhC;AAUD,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAClE,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAClD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACjD,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACnD,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACrC;AAED,eAAO,MAAM,iBAAiB;;;;GAM7B,CAAC;AACF,eAAO,MAAM,cAAc;;;;GAAgC,CAAC;AAC5D,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC;AAEzE,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,CAuHjE"}
@@ -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.1067",
3
+ "version": "0.1.1069",
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/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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"}
@@ -207,16 +207,19 @@ 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);
210
211
  setOtelActiveSpanAttributes(buildRuntimeToolTraceAttributes({
211
212
  mode: input.mode,
212
213
  agentId: input.agentId,
213
214
  toolName: input.toolName,
214
215
  toolCallId: input.toolCallId,
215
216
  context: input.context,
216
- status: "completed",
217
+ status: resultError === undefined ? "completed" : "failed",
217
218
  providerExecuted: false,
218
219
  inputSizeBytes,
219
220
  outputSizeBytes: estimateSerializedSizeBytes(result),
221
+ errorType: resultError === undefined ? undefined : "ToolResultError",
222
+ errorMessage: resultError,
220
223
  }));
221
224
  return result;
222
225
  }
@@ -787,27 +790,36 @@ export class AgentRuntime {
787
790
  result,
788
791
  context: executionContext,
789
792
  });
790
- toolCall.status = "completed";
793
+ const resultError = getToolResultError(result);
794
+ toolCall.status = resultError === undefined ? "completed" : "error";
791
795
  toolCall.result = result;
796
+ toolCall.error = resultError;
792
797
  toolCall.executionTime = Date.now() - startTime;
793
798
  setSpanAttributes(toolSpan, compactRuntimeTraceAttributes({
794
- "tool.status": "completed",
799
+ "tool.status": resultError === undefined ? "completed" : "failed",
795
800
  "tool.provider_executed": false,
796
801
  "tool.output.size_bytes": estimateSerializedSizeBytes(result),
802
+ ...(resultError === undefined ? {} : {
803
+ error: true,
804
+ "error.type": "ToolResultError",
805
+ "error.message": resultError,
806
+ }),
797
807
  }));
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);
808
+ if (resultError === undefined) {
809
+ // Track skill policy from successful load_skill results
810
+ if (tc.toolName === LOAD_SKILL_TOOL_ID) {
811
+ activeSkillId = extractSkillId(result);
812
+ activeSkillPolicy = extractSkillPolicy(result);
813
+ activeSkillToolAvailability = extractSkillToolAvailability(result) ??
814
+ INACTIVE_SKILL_TOOL_AVAILABILITY;
815
+ activeSkillDelegationOverrides = extractSkillDelegationOverrides(result);
816
+ mustLoadSkillFirst = false;
817
+ }
818
+ activeSkillPolicy = removeFormInputAfterSubmission(tc.toolName, result, activeSkillId, activeSkillPolicy);
819
+ if (isSubmittedFormInputExecutionResult(tc.toolName, result)) {
820
+ hasSubmittedFormInputInLoop = true;
821
+ currentRuntimeContext = markSubmittedFormInputRuntimeContext(currentRuntimeContext);
822
+ }
811
823
  }
812
824
  const toolResultMessage = createToolResultMessage(tc.toolCallId, tc.toolName, result);
813
825
  currentMessages.push(toolResultMessage);
@@ -1199,34 +1211,48 @@ export class AgentRuntime {
1199
1211
  result,
1200
1212
  context: executionContext,
1201
1213
  });
1202
- toolCall.status = "completed";
1214
+ const resultError = getToolResultError(result);
1215
+ toolCall.status = resultError === undefined ? "completed" : "error";
1203
1216
  toolCall.result = result;
1217
+ toolCall.error = resultError;
1204
1218
  toolCall.executionTime = Date.now() - startTime;
1205
1219
  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;
1220
+ if (resultError === undefined) {
1221
+ // Track skill policy from successful load_skill results
1222
+ if (tc.name === LOAD_SKILL_TOOL_ID) {
1223
+ activeSkillId = extractSkillId(result);
1224
+ activeSkillPolicy = extractSkillPolicy(result);
1225
+ activeSkillToolAvailability = extractSkillToolAvailability(result) ??
1226
+ INACTIVE_SKILL_TOOL_AVAILABILITY;
1227
+ activeSkillDelegationOverrides = extractSkillDelegationOverrides(result);
1228
+ mustLoadSkillFirst = false;
1229
+ }
1230
+ activeSkillPolicy = removeFormInputAfterSubmission(tc.name, result, activeSkillId, activeSkillPolicy);
1231
+ if (isSubmittedFormInputExecutionResult(tc.name, result)) {
1232
+ hasSubmittedFormInputInLoop = true;
1233
+ currentRuntimeContext = markSubmittedFormInputRuntimeContext(currentRuntimeContext);
1234
+ }
1235
+ if (shouldHideProjectToolAfterAgentWriteSuccess(tc.name)) {
1236
+ agentWriteFinalResponseToolGuardEnabled = true;
1237
+ }
1214
1238
  }
1215
- activeSkillPolicy = removeFormInputAfterSubmission(tc.name, result, activeSkillId, activeSkillPolicy);
1216
- if (isSubmittedFormInputExecutionResult(tc.name, result)) {
1217
- hasSubmittedFormInputInLoop = true;
1218
- currentRuntimeContext = markSubmittedFormInputRuntimeContext(currentRuntimeContext);
1239
+ const dynamic = isDynamicTool(tc.name);
1240
+ if (resultError === undefined) {
1241
+ sendSSE(controller, encoder, {
1242
+ type: "tool-output-available",
1243
+ toolCallId: toolCall.id,
1244
+ output: result,
1245
+ ...(dynamic ? { dynamic: true } : {}),
1246
+ });
1219
1247
  }
1220
- if (shouldHideProjectToolAfterAgentWriteSuccess(tc.name)) {
1221
- agentWriteFinalResponseToolGuardEnabled = true;
1248
+ else {
1249
+ sendSSE(controller, encoder, {
1250
+ type: "tool-output-error",
1251
+ toolCallId: toolCall.id,
1252
+ errorText: resultError,
1253
+ ...(dynamic ? { dynamic: true } : {}),
1254
+ });
1222
1255
  }
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
1256
  const toolResultMessage = createToolResultMessage(tc.id, tc.name, result);
1231
1257
  if (!currentStepToolResults.has(tc.id)) {
1232
1258
  currentMessages.push(toolResultMessage);
@@ -48,6 +48,20 @@ export interface ProxyRequestOptions {
48
48
  url?: URL;
49
49
  timing?: ProxyServerTiming;
50
50
  }
51
+ export interface ProxyRoutingInvalidation {
52
+ projectId: string;
53
+ projectSlug?: string;
54
+ deploymentId?: string;
55
+ environmentId?: string;
56
+ environmentName?: string;
57
+ releaseId?: string;
58
+ }
59
+ export interface ConfirmedProxyRoutingInvalidation extends ProxyRoutingInvalidation {
60
+ projectSlug: string;
61
+ environmentId: string;
62
+ environmentName: string;
63
+ releaseId: string;
64
+ }
51
65
  export declare function createProxyHandler(options: ProxyHandlerOptions): {
52
66
  processRequest: (req: Request, options?: ProxyRequestOptions) => Promise<ProxyContext>;
53
67
  getTokenForApi: (req: Request, options?: ProxyRequestOptions) => Promise<string | undefined>;
@@ -59,6 +73,11 @@ export declare function createProxyHandler(options: ProxyHandlerOptions): {
59
73
  }>;
60
74
  close: () => Promise<void>;
61
75
  validateConfig: () => string[];
76
+ invalidateRoutingLookup: (input: ProxyRoutingInvalidation) => {
77
+ evictedEntries: number;
78
+ generation: number;
79
+ };
80
+ invalidateAndConfirmRoutingLookup: (input: ConfirmedProxyRoutingInvalidation) => Promise<void>;
62
81
  localProjects: Record<string, string>;
63
82
  };
64
83
  export type ProxyHandler = ReturnType<typeof createProxyHandler>;
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/src/proxy/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/src/proxy/handler.ts"],"names":[],"mappings":"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"}