@@ -11,32 +11,17 @@ interface ExecuteBlockProviderRequestInput {
1111 ctx : ExecutionContext
1212 providerId : string
1313 request : ProviderRequest
14- /**
15- * The fork the block's model input was projected through. Supplied to the
16- * provider runtime in place of the provenance envelope the HTTP boundary used
17- * to serialize and re-import.
18- */
14+ /** Supplied in place of the provenance envelope the HTTP boundary serialized and re-imported. */
1915 resolvedSecretTraceRegistry : ResolvedSecretTraceRegistry | undefined
2016}
2117
2218/**
23- * Runs one non-streaming provider request for a block handler in-process.
24- *
25- * Replaces the executor's `POST /api/providers` round trip, which re-derived
26- * everything it needed from claims the executor had itself just supplied. The
27- * two admission checks the route owned are reproduced here so the outcome is
28- * unchanged:
29- *
30- * - `checkInternalAuth` rejected a token carrying no user. The executor mints
31- * that token from `ctx.userId`, so the check reduces to requiring one.
32- * - `checkWorkspaceAccess` rejected an execution subject who is no longer a
33- * member of the workspace being billed.
34- *
35- * The route's remaining work is either already done by the caller (the model
36- * permission policy, via `validateModelProvider`; Vertex credential
37- * authorization, via `resolveVertexCredential`) or lives inside
38- * `executeProviderRequest` itself (BYOK key resolution, attachment provenance
39- * filtering, cost policy).
19+ * Runs one non-streaming provider request for a block handler in-process, replacing the
20+ * executor's `POST /api/providers` round trip. The route's two admission checks are
21+ * reproduced so the outcome is unchanged: an internal token with no user is rejected (the
22+ * executor mints it from `ctx.userId`), and an execution subject who has left the billed
23+ * workspace is rejected. The route's remaining work is already done by the caller or lives
24+ * inside `executeProviderRequest`.
4025 */
4126export async function executeBlockProviderRequest ( {
4227 ctx,
@@ -56,16 +41,10 @@ export async function executeBlockProviderRequest({
5641 }
5742
5843 /**
59- * `executionContext` is deliberately not supplied: it is only inherited by
60- * model-emitted tool calls, and the route this replaces never carried one.
61- * Router and evaluator requests declare no tools, so passing the executor's
62- * context here would widen the trusted surface without changing any outcome.
63- *
64- * The whole runtime context is omitted when there is no registry, rather than
65- * passed carrying `undefined`. `executeProviderTool` reads a present context with
66- * an absent registry as "provenance was expected and is missing" and fails the
67- * call closed with no error text — unreachable while these blocks declare no
68- * tools, but a silent failure the day one does.
44+ * No `executionContext`: it is only inherited by model-emitted tool calls, and the route
45+ * this replaces never carried one. The whole context is omitted when there is no registry
46+ * rather than passed carrying `undefined` — `executeProviderTool` reads that as missing
47+ * provenance and fails the call closed with no error text.
6948 */
7049 const response = await executeProviderRequest (
7150 providerId ,
0 commit comments