@fieldwangai/agentflow 0.1.93 → 0.1.94

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.
@@ -2713,15 +2713,42 @@ function displayShareOutputUrl(shareId, baseUrl = "") {
2713
2713
  }
2714
2714
  }
2715
2715
 
2716
+ function normalizePublicBaseUrl(baseUrl = "") {
2717
+ const raw = String(baseUrl || "").trim();
2718
+ if (!raw) return "";
2719
+ try {
2720
+ const url = new URL(raw);
2721
+ if (url.hostname === "0.0.0.0" || url.hostname === "::" || url.hostname === "[::]") {
2722
+ url.hostname = "127.0.0.1";
2723
+ }
2724
+ return url.origin;
2725
+ } catch {
2726
+ return "";
2727
+ }
2728
+ }
2729
+
2716
2730
  function requestPublicBaseUrl(req) {
2717
2731
  const origin = String(req?.headers?.origin || "").trim();
2718
- if (/^https?:\/\//i.test(origin)) return origin;
2732
+ if (/^https?:\/\//i.test(origin)) return normalizePublicBaseUrl(origin);
2719
2733
  const forwardedHost = String(req?.headers?.["x-forwarded-host"] || "").split(",")[0].trim();
2720
2734
  const host = forwardedHost || String(req?.headers?.host || "").trim();
2721
2735
  if (!host) return "";
2722
2736
  const forwardedProto = String(req?.headers?.["x-forwarded-proto"] || "").split(",")[0].trim();
2723
2737
  const proto = /^https?$/i.test(forwardedProto) ? forwardedProto.toLowerCase() : "http";
2724
- return `${proto}://${host}`;
2738
+ return normalizePublicBaseUrl(`${proto}://${host}`);
2739
+ }
2740
+
2741
+ function configuredPublicBaseUrl(payload = null) {
2742
+ const envBase = normalizePublicBaseUrl(process.env.AGENTFLOW_PUBLIC_BASE_URL || process.env.AGENTFLOW_SHARE_BASE_URL || "");
2743
+ if (envBase) return envBase;
2744
+ const payloadBase = payload && typeof payload === "object" && !Array.isArray(payload)
2745
+ ? normalizePublicBaseUrl(payload.publicBaseUrl || payload.public_base_url || payload.reviewBaseUrl || payload.review_base_url || "")
2746
+ : "";
2747
+ return payloadBase;
2748
+ }
2749
+
2750
+ function serverPublicBaseUrl(req, host, port, payload = null) {
2751
+ return configuredPublicBaseUrl(payload) || requestPublicBaseUrl(req) || normalizePublicBaseUrl(`http://${host}:${port}`);
2725
2752
  }
2726
2753
 
2727
2754
  function normalizeRunEnvKey(key) {
@@ -9814,7 +9841,7 @@ export function startUiServer({
9814
9841
  json(res, 200, result);
9815
9842
  return;
9816
9843
  }
9817
- const runtimeEventUrl = `http://${host}:${uiPort}/api/prd-workflow/event`;
9844
+ const runtimeEventUrl = `${serverPublicBaseUrl(req, host, uiPort)}/api/prd-workflow/event`;
9818
9845
  const commandResult = await runPrdWorkflowCommand(root, scopedRoot, normalized.args, userCtx, {
9819
9846
  timeout: 300000,
9820
9847
  env: {
@@ -10105,7 +10132,7 @@ export function startUiServer({
10105
10132
  }
10106
10133
  scopedRoot = scoped.root;
10107
10134
  }
10108
- const review = prdWorkflowCreateReview(scopedRoot, tapdId, payload, `http://${host}:${uiPort}`);
10135
+ const review = prdWorkflowCreateReview(scopedRoot, tapdId, payload, serverPublicBaseUrl(req, host, uiPort, payload));
10109
10136
  const query = new URLSearchParams();
10110
10137
  if (flowId) query.set("flowId", flowId);
10111
10138
  if (flowSource) query.set("flowSource", flowSource);