@standardagents/builder 0.27.7 → 0.27.8-dev.b0d0355

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/dist/runtime.d.ts CHANGED
@@ -3602,6 +3602,10 @@ interface ProviderLookupResult {
3602
3602
  */
3603
3603
  declare class ProviderRegistryImpl {
3604
3604
  private providerCache;
3605
+ /** Why the last thread-scoped resolution did (not) contribute user env,
3606
+ * keyed by the env object handed back — surfaced in missing-variable
3607
+ * errors so a silent user-env failure is diagnosable from the log. */
3608
+ private scopeDiagnostics;
3605
3609
  private providerOverrideFn;
3606
3610
  private providerOverrideRevision;
3607
3611
  setProviderOverride(fn: ProviderOverrideFn | null): void;
package/dist/runtime.js CHANGED
@@ -884,6 +884,10 @@ var init_ProviderRegistry = __esm({
884
884
  init_factory();
885
885
  ProviderRegistryImpl = class {
886
886
  providerCache = /* @__PURE__ */ new Map();
887
+ /** Why the last thread-scoped resolution did (not) contribute user env,
888
+ * keyed by the env object handed back — surfaced in missing-variable
889
+ * errors so a silent user-env failure is diagnosable from the log. */
890
+ scopeDiagnostics = /* @__PURE__ */ new WeakMap();
887
891
  providerOverrideFn = null;
888
892
  providerOverrideRevision = 0;
889
893
  setProviderOverride(fn) {
@@ -906,6 +910,7 @@ var init_ProviderRegistry = __esm({
906
910
  const threadEnv = state.thread.metadata?.env ?? state.thread.metadata?.tenvs ?? null;
907
911
  const userId = state.thread.metadata?.user_id ?? null;
908
912
  let userEnv = null;
913
+ let diagnostic = userId ? "" : "no thread user_id";
909
914
  if (userId) {
910
915
  try {
911
916
  const agentBuilderId = state.env.AGENT_BUILDER.idFromName("singleton");
@@ -917,14 +922,25 @@ var init_ProviderRegistry = __esm({
917
922
  for (const entry of entries) {
918
923
  if (entry?.name) userEnv[entry.name] = entry.value;
919
924
  }
925
+ diagnostic = `user env: ${Object.keys(userEnv).length} entries`;
926
+ } else {
927
+ diagnostic = `user env empty for ${userId} (entries: ${Array.isArray(entries) ? entries.length : typeof entries})`;
920
928
  }
929
+ } else {
930
+ diagnostic = "singleton has no getUserEnvEntries";
921
931
  }
922
932
  } catch (error) {
923
- console.warn("buildThreadScopedEnv: user env unavailable:", error instanceof Error ? error.message : String(error));
933
+ diagnostic = `user env lookup failed: ${error instanceof Error ? error.message : String(error)}`;
934
+ console.warn("buildThreadScopedEnv:", diagnostic);
924
935
  }
925
936
  }
926
- if (!userEnv && !threadEnv) return state.env;
927
- return { ...state.env, ...userEnv ?? {}, ...threadEnv ?? {} };
937
+ if (!userEnv && !threadEnv) {
938
+ this.scopeDiagnostics.set(state.env, diagnostic);
939
+ return state.env;
940
+ }
941
+ const merged = { ...state.env, ...userEnv ?? {}, ...threadEnv ?? {} };
942
+ this.scopeDiagnostics.set(merged, diagnostic);
943
+ return merged;
928
944
  }
929
945
  /**
930
946
  * Get provider for a model.
@@ -963,8 +979,9 @@ var init_ProviderRegistry = __esm({
963
979
  if (providerDefinition) {
964
980
  const resolved = resolveDefinedProviderConfig(providerDefinition, env);
965
981
  if (resolved.missing.length > 0) {
982
+ const scopeNote = this.scopeDiagnostics.get(env);
966
983
  throw new Error(
967
- `Missing required environment variables for provider '${providerName}': ${resolved.missing.join(", ")}.`
984
+ `Missing required environment variables for provider '${providerName}': ${resolved.missing.join(", ")}.` + (scopeNote ? ` [thread-scoped env: ${scopeNote}]` : "")
968
985
  );
969
986
  }
970
987
  const config = resolved.providerConfig;