@pluno/product-agent-web 0.1.251 → 0.1.252

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.
@@ -438,7 +438,7 @@ function ea(t) {
438
438
  e ^= t.charCodeAt(n), e = Math.imul(e, 16777619);
439
439
  return `fnv1a-${(e >>> 0).toString(16).padStart(8, "0")}`;
440
440
  }
441
- const Bs = "0.1.251", od = {
441
+ const Bs = "0.1.252", od = {
442
442
  version: Bs
443
443
  };
444
444
  function Tp(t, e, n, i, s = {}) {
@@ -837,8 +837,8 @@ function zp(t, e, n, i) {
837
837
  if (n.clients[e.clientScopeId] !== e.conversationScopeId) throw new Error("Submission selection has changed.");
838
838
  const { type: r, authorityId: c, generation: l, prepareContext: p, ...d } = e, h = t.submissions[e.userMessageId];
839
839
  if (h) {
840
- const { contextPreparation: _, requestedModel: v, sessionId: E, delivery: L, cancelled: K, cancellationReason: U, error: ge, executionVersion: G, ...q } = h;
841
- if (as(q) !== as(d)) throw new Error("User-message identity cannot be reused with different input.");
840
+ const { contextPreparation: _, requestedModel: v, sessionId: E, delivery: L, cancelled: K, cancellationReason: U, error: ge, executionVersion: G, ...M } = h;
841
+ if (as(M) !== as(d)) throw new Error("User-message identity cannot be reused with different input.");
842
842
  return { state: t, effects: o };
843
843
  }
844
844
  const g = n.selections[e.conversationScopeId], m = Object.values(t.submissions).find((_) => _.conversationScopeId === e.conversationScopeId && !_.cancelled && _.sessionId !== null), f = i.scopes[e.clientScopeId], w = {
@@ -1815,7 +1815,7 @@ function Vn(t, e, n) {
1815
1815
  const L = ["thinking", "steering", "queued"].includes(_), K = t.stops[n] ?? v, U = K?.userMessageIds.filter((S) => !["completed", "failed"].includes(o?.executionByUserMessage[S]?.phase ?? "")) ?? [], ge = U.some((S) => {
1816
1816
  const V = a.find((ce) => ce.userMessageId === S);
1817
1817
  return !Object.values(t.operations).some((ce) => ce.command.type === "run.stop" && ce.command.payload.expectedUserMessageId === S && ce.phase === "done") && (V?.executionVersion === null && ["sending", "uncertain", "accepted"].includes(V.delivery) || !!(d && Kt(d).includes(S) && ["thinking", "steering", "queued", "stopping"].includes(d.phase)));
1818
- }), G = d?.user_message_ids ?? [], q = w || b ? f?.userMessageId ?? null : G[G.length - 1] ?? null, D = p.find((S) => S.userMessageId === q), F = L ? [...D?.activityIds ?? []].reverse().find((S) => l[S] === "open") ?? null : null, J = s !== null && !!e.selections[n]?.provisionalId && r.length === 0 && a.length === 0 && // The first persisted idle snapshot already has a positive synchronization version.
1818
+ }), G = d?.user_message_ids ?? [], M = w || b ? f?.userMessageId ?? null : G[G.length - 1] ?? null, D = p.find((S) => S.userMessageId === M), B = L ? [...D?.activityIds ?? []].reverse().find((S) => l[S] === "open") ?? null : null, J = s !== null && !!e.selections[n]?.provisionalId && r.length === 0 && a.length === 0 && // The first persisted idle snapshot already has a positive synchronization version.
1819
1819
  (!o?.execution || o.execution.phase === "idle" && o.execution.user_message_ids.length === 0) && Object.values(t.operations).some((S) => S.conversationScopeId === n && S.phase === "done" && ["runtime.warmup", "attachment.prepare"].includes(S.command.type) && !S.command.payload.sessionId && S.result?.sessionId === s);
1820
1820
  return qt({
1821
1821
  historyRefreshFailure: o?.historyRefreshFailure ?? null,
@@ -1833,8 +1833,8 @@ function Vn(t, e, n) {
1833
1833
  streamStates: l,
1834
1834
  preparation: o?.preparation ?? null,
1835
1835
  stop: K ? { ...K, userMessageIds: U, pending: ge } : null,
1836
- segments: p.map((S, V) => ({ ...S, collapsed: L ? S.userMessageId !== q : V < p.length - 1 || S.activityIds.length > 0 })),
1837
- activity: { phase: _, activeItemId: F, userMessageId: q, executionKey: JSON.stringify([...Kt(d)].sort()) },
1836
+ segments: p.map((S, V) => ({ ...S, collapsed: L ? S.userMessageId !== M : V < p.length - 1 || S.activityIds.length > 0 })),
1837
+ activity: { phase: _, activeItemId: B, userMessageId: M, executionKey: JSON.stringify([...Kt(d)].sort()) },
1838
1838
  // Staging transfers the immutable input to the core. Waiting for backend acceptance leaves
1839
1839
  // the same submitted text in the optimistic transcript and composer during delivery.
1840
1840
  receipts: i.filter((S) => !S.cancelled && e.clients[S.clientScopeId] === n).map((S) => ({ viewId: S.viewId, userMessageId: S.userMessageId, acceptedRendererRevision: S.rendererRevision }))
@@ -4853,17 +4853,17 @@ class Cd {
4853
4853
  }
4854
4854
  async requestOnce(e, n, i, s, o, a, r, c = 1) {
4855
4855
  const l = this.auth.client_kind === "embed", p = new URL(`/api/product-agent/${o ?? (l ? "embed" : "runtime")}${e}`, this.options.backendUrl), d = o === "conversations" ? {} : l ? { client_id: this.auth.client_id, transport_id: this.auth.transport_id } : { community_id: this.auth.community_id, automation_run_id: this.auth.automation_run_id };
4856
- for (const [q, D] of Object.entries({ ...d, ...n }))
4857
- D != null && p.searchParams.set(q, String(D));
4856
+ for (const [M, D] of Object.entries({ ...d, ...n }))
4857
+ D != null && p.searchParams.set(M, String(D));
4858
4858
  this.requests.signal.throwIfAborted(), a?.throwIfAborted();
4859
- const h = new AbortController(), g = { trigger: null }, m = (q) => {
4860
- h.signal.aborted || (g.trigger = q, h.abort());
4859
+ const h = new AbortController(), g = { trigger: null }, m = (M) => {
4860
+ h.signal.aborted || (g.trigger = M, h.abort());
4861
4861
  }, f = () => m("transport_disposed"), w = () => m(["owner_disposed", "authority_retired", "observation_released", "request_replaced"].includes(a?.reason) ? a.reason : "caller_cancelled");
4862
4862
  this.requests.signal.addEventListener("abort", f, { once: !0 }), a?.addEventListener("abort", w, { once: !0 });
4863
4863
  const b = o === "conversations" && /^\/[^/]+\/snapshot$/.test(e) && s === "POST", _ = /^\/conversations(?:\/[^/]+)?$/.test(e) && (s ?? (i === void 0 ? "GET" : "POST")) === "GET", v = setTimeout(() => m("deadline"), _ ? 6e4 : b ? 3e4 : 15e3), E = Zh(), L = Date.now();
4864
4864
  let K = null, U = null, ge = null, G = null;
4865
4865
  try {
4866
- const q = await Promise.resolve(fetch(p, {
4866
+ const M = await Promise.resolve(fetch(p, {
4867
4867
  method: s ?? (i === void 0 ? "GET" : "POST"),
4868
4868
  cache: "no-store",
4869
4869
  signal: h.signal,
@@ -4872,29 +4872,31 @@ class Cd {
4872
4872
  })).catch((D) => {
4873
4873
  throw b && D instanceof TypeError ? new R("The connection was interrupted. Please try again.", "connection_interrupted", !0) : D;
4874
4874
  });
4875
- if (K = Date.now(), U = q.status, ge = Bc(q.headers.get("x-request-id")), G = Bc(q.headers.get("x-cloud-trace-context")), !q.ok) {
4876
- const D = q.status === 401 ? "unauthorized" : q.status === 426 ? "update_required" : String(q.status), F = (await q.json().catch(() => null))?.detail;
4877
- if (o === "conversations" && e.endsWith("/snapshot") && q.status === 409 && F === "Display projection is not enabled")
4875
+ if (K = Date.now(), U = M.status, ge = Bc(M.headers.get("x-request-id")), G = Bc(M.headers.get("x-cloud-trace-context")), !M.ok) {
4876
+ const D = M.status === 401 ? "unauthorized" : M.status === 426 ? "update_required" : String(M.status), B = (await M.json().catch(() => null))?.detail;
4877
+ if (l && M.status === 403 && (o === "conversations" && /^\/[^/]+\/snapshot$/.test(e) || (!o || o === "embed") && /^\/conversations\/[^/]+$/.test(e)) && ["Conversation unavailable", "Integration mismatch", "Embedded origin mismatch"].includes(B))
4878
+ throw new R("Conversation unavailable", "conversation_access_denied");
4879
+ if (o === "conversations" && e.endsWith("/snapshot") && M.status === 409 && B === "Display projection is not enabled")
4878
4880
  throw new R("Conversation history is unavailable. Try loading this chat again after the service is ready.", "display_projection_disabled");
4879
- if (o === "conversations" && e === "/commands" && (q.status === 409 && F?.code === "executor_not_ready" && F.retryable === !0 || q.status === 403 && F === "Register the executor before commands"))
4881
+ if (o === "conversations" && e === "/commands" && (M.status === 409 && B?.code === "executor_not_ready" && B.retryable === !0 || M.status === 403 && B === "Register the executor before commands"))
4880
4882
  throw new R("Reconnecting the browser before continuing.", "executor_not_ready");
4881
- if (q.status !== 401 && F && typeof F == "object" && (["service_origin_not_allowed", "security_control_enforcement_unavailable"].includes(F.code) || !Ti(void 0, F.code).allowed) && typeof F.message == "string")
4882
- throw new R(F.message, F.code, !1, {
4883
- ...typeof F.blockedOrigin == "string" ? { blockedOrigin: F.blockedOrigin } : {},
4884
- ...typeof F.securitySettingsUrl == "string" ? { securitySettingsUrl: F.securitySettingsUrl } : {}
4883
+ if (M.status !== 401 && B && typeof B == "object" && (["service_origin_not_allowed", "security_control_enforcement_unavailable"].includes(B.code) || !Ti(void 0, B.code).allowed) && typeof B.message == "string")
4884
+ throw new R(B.message, B.code, !1, {
4885
+ ...typeof B.blockedOrigin == "string" ? { blockedOrigin: B.blockedOrigin } : {},
4886
+ ...typeof B.securitySettingsUrl == "string" ? { securitySettingsUrl: B.securitySettingsUrl } : {}
4885
4887
  }, o === "conversations" && e === "/commands");
4886
- const J = F === "Token expired" ? "token_expired" : F === "Invalid token" ? "invalid_token" : F?.reason, S = q.status === 401 && ["missing_token", "token_expired", "invalid_token", "user_not_found"].includes(J) ? { requestId: E, authTransport: "http", authEndpoint: `${o ?? (l ? "embed" : "runtime")}:${["snapshot", "me", "bootstrap", "commands", "activity", "session-history"].includes(e.split("/").pop()) ? e.split("/").pop() : "other"}`, reason: J, retryable: J === "token_expired" && (F === "Token expired" || F.retryable === !0) } : void 0;
4887
- throw new R(q.status === 401 ? "Your session expired or is invalid. Reconnect to continue." : q.status === 403 ? "You don't have access to this conversation. Check your access and reconnect." : `Product Agent request failed (${q.status})`, D, !1, S);
4888
+ const J = B === "Token expired" ? "token_expired" : B === "Invalid token" ? "invalid_token" : B?.reason, S = M.status === 401 && ["missing_token", "token_expired", "invalid_token", "user_not_found"].includes(J) ? { requestId: E, authTransport: "http", authEndpoint: `${o ?? (l ? "embed" : "runtime")}:${["snapshot", "me", "bootstrap", "commands", "activity", "session-history"].includes(e.split("/").pop()) ? e.split("/").pop() : "other"}`, reason: J, retryable: J === "token_expired" && (B === "Token expired" || B.retryable === !0) } : void 0;
4889
+ throw new R(M.status === 401 ? "Your session expired or is invalid. Reconnect to continue." : M.status === 403 ? "You don't have access to this conversation. Check your access and reconnect." : `Product Agent request failed (${M.status})`, D, !1, S);
4888
4890
  }
4889
- return await q.json();
4890
- } catch (q) {
4891
- const D = g.trigger ?? ((q instanceof Error || q instanceof DOMException) && q.name === "AbortError" ? "unexpected_abort" : null), F = {
4891
+ return await M.json();
4892
+ } catch (M) {
4893
+ const D = g.trigger ?? ((M instanceof Error || M instanceof DOMException) && M.name === "AbortError" ? "unexpected_abort" : null), B = {
4892
4894
  requestId: E,
4893
4895
  method: s ?? (i === void 0 ? "GET" : "POST"),
4894
4896
  route: b ? "/api/product-agent/conversations/:sessionId/snapshot" : e === "/commands" ? "/api/product-agent/:namespace/commands" : "/api/product-agent/:namespace/:operation",
4895
4897
  status: U,
4896
4898
  abortTrigger: D,
4897
- category: D === "deadline" ? "request_timed_out" : D === "unexpected_abort" ? "connection_interrupted" : D ? "request_cancelled" : q instanceof R ? q.code : "invalid_response",
4899
+ category: D === "deadline" ? "request_timed_out" : D === "unexpected_abort" ? "connection_interrupted" : D ? "request_cancelled" : M instanceof R ? M.code : "invalid_response",
4898
4900
  responseHeadersMs: K === null ? null : Math.max(0, K - L),
4899
4901
  responseBodyMs: K === null ? null : Math.max(0, Date.now() - K),
4900
4902
  owner: D === "deadline" ? "http_deadline" : D === "transport_disposed" ? "http_transport" : D && D !== "unexpected_abort" ? "conversation_query" : U === null ? "browser" : "http_response",
@@ -4908,9 +4910,9 @@ class Cd {
4908
4910
  upstreamRequestId: ge,
4909
4911
  upstreamTraceId: G
4910
4912
  };
4911
- On(F) && Promise.resolve().then(() => this.options.onRequestFailure ? this.options.onRequestFailure(F) : console.warn("Product Agent HTTP request failed", F)).catch(() => {
4913
+ On(B) && Promise.resolve().then(() => this.options.onRequestFailure ? this.options.onRequestFailure(B) : console.warn("Product Agent HTTP request failed", B)).catch(() => {
4912
4914
  });
4913
- const J = On(F) ? { httpRequest: F } : void 0;
4915
+ const J = On(B) ? { httpRequest: B } : void 0;
4914
4916
  if (D !== null) {
4915
4917
  const S = D !== "deadline" && D !== "unexpected_abort";
4916
4918
  throw new R(
@@ -4920,12 +4922,12 @@ class Cd {
4920
4922
  J
4921
4923
  );
4922
4924
  }
4923
- throw q instanceof R && J ? new R(q.message, q.code, q.outcomeUnknown, { ...q.detail, ...J }, q.backendRefusal) : b && J ? new R(
4925
+ throw M instanceof R && J ? new R(M.message, M.code, M.outcomeUnknown, { ...M.detail, ...J }, M.backendRefusal) : b && J ? new R(
4924
4926
  "The conversation response could not be read. Please try again.",
4925
4927
  "connection_interrupted",
4926
4928
  !0,
4927
4929
  J
4928
- ) : q;
4930
+ ) : M;
4929
4931
  } finally {
4930
4932
  clearTimeout(v), this.requests.signal.removeEventListener("abort", f), a?.removeEventListener("abort", w);
4931
4933
  }
@@ -7714,6 +7716,10 @@ class pa {
7714
7716
  },
7715
7717
  onCommand: (d) => $n("client_event", d.type, Yo({ ...d.payload, type: d.type })),
7716
7718
  onError: (d, h) => {
7719
+ if (this.options.productVariant === "customer_embedded" && h.operation === "conversation.snapshot" && d instanceof R && d.code === "conversation_access_denied") {
7720
+ h.sessionId === this.getState().sessionId && this.startNewSession({ notifyTransport: !1 });
7721
+ return;
7722
+ }
7717
7723
  qe("web-sdk.conversation", "Conversation operation failed", { ...h, ...An(d) }), this.handleDirectoryTransportError(d);
7718
7724
  }
7719
7725
  }),
@@ -10063,25 +10069,25 @@ function pm(t, e) {
10063
10069
  return `${v.tagName.toLowerCase()}|${m(v)}|${E}`;
10064
10070
  }, w = (v, E, L) => {
10065
10071
  const K = (U, ge) => {
10066
- const G = U.tagName.toLowerCase(), q = window.getComputedStyle(U), D = p.has(U);
10067
- if (g >= 1e3 && !D || L.has(U) || o.has(G) || U.matches(".pluno-pa-widget-host, [data-pluno-product-agent-widget]") || q.display === "none" || q.visibility === "hidden")
10072
+ const G = U.tagName.toLowerCase(), M = window.getComputedStyle(U), D = p.has(U);
10073
+ if (g >= 1e3 && !D || L.has(U) || o.has(G) || U.matches(".pluno-pa-widget-host, [data-pluno-product-agent-widget]") || M.display === "none" || M.visibility === "hidden")
10068
10074
  return { lines: [], hasUsefulContent: !1, textPreview: "", containsTextElement: !1 };
10069
10075
  g += 1;
10070
- const F = m(U), J = Fd(U), S = r.has(F) || ["button", "input", "textarea", "select", "iframe", "canvas"].includes(G) || G === "a" && U.hasAttribute("href"), V = Array.from(U.children).filter((W) => W instanceof HTMLElement), te = /* @__PURE__ */ new Map();
10076
+ const B = m(U), J = Fd(U), S = r.has(B) || ["button", "input", "textarea", "select", "iframe", "canvas"].includes(G) || G === "a" && U.hasAttribute("href"), V = Array.from(U.children).filter((W) => W instanceof HTMLElement), te = /* @__PURE__ */ new Map();
10071
10077
  for (const W of V) {
10072
- const M = f(W);
10073
- te.set(M, (te.get(M) ?? 0) + 1);
10078
+ const q = f(W);
10079
+ te.set(q, (te.get(q) ?? 0) + 1);
10074
10080
  }
10075
10081
  const ce = /* @__PURE__ */ new Map(), ne = /* @__PURE__ */ new Map();
10076
10082
  for (const W of V) {
10077
- const M = f(W), le = ne.get(M) ?? 0;
10078
- ne.set(M, le + 1), (te.get(M) ?? 0) > 8 && le >= 6 && !p.has(W) && ce.set(M, (ce.get(M) ?? 0) + 1);
10083
+ const q = f(W), le = ne.get(q) ?? 0;
10084
+ ne.set(q, le + 1), (te.get(q) ?? 0) > 8 && le >= 6 && !p.has(W) && ce.set(q, (ce.get(q) ?? 0) + 1);
10079
10085
  }
10080
10086
  const Se = /* @__PURE__ */ new Map(), T = /* @__PURE__ */ new Set(), fe = [], Oe = [];
10081
10087
  for (const W of V) {
10082
- const M = f(W), le = te.get(M) ?? 0, me = Se.get(M) ?? 0;
10083
- if (Se.set(M, me + 1), le > 8 && me >= 6 && !p.has(W)) {
10084
- T.has(M) || (fe.push([`… ${ce.get(M) ?? 0} similar siblings omitted`]), T.add(M));
10088
+ const q = f(W), le = te.get(q) ?? 0, me = Se.get(q) ?? 0;
10089
+ if (Se.set(q, me + 1), le > 8 && me >= 6 && !p.has(W)) {
10090
+ T.has(q) || (fe.push([`… ${ce.get(q) ?? 0} similar siblings omitted`]), T.add(q));
10085
10091
  continue;
10086
10092
  }
10087
10093
  const ke = K(W, ge);
@@ -10093,10 +10099,10 @@ function pm(t, e) {
10093
10099
  W instanceof HTMLElement && et.push(K(W, ge + 1));
10094
10100
  const Ce = [...Oe, ...et], $e = J.length > 0 || S || Ce.some((W) => W.hasUsefulContent), Y = Yn(
10095
10101
  [J, ...Ce.map((W) => W.textPreview)].filter(Boolean).join(" ")
10096
- ).slice(0, 180), tt = U.hasAttribute("contenteditable") && (J.length > 0 || !U.querySelector("[contenteditable]")), z = l.some((W) => U.hasAttribute(W)) || !!F || tt, X = (U.getClientRects().length > 0 || q.display === "contents") && (n.has(G) || z || D) && ($e || D) && (!s.has(G) || $e || z || D), H = X ? 1 : 0, se = [];
10102
+ ).slice(0, 180), tt = U.hasAttribute("contenteditable") && (J.length > 0 || !U.querySelector("[contenteditable]")), z = l.some((W) => U.hasAttribute(W)) || !!B || tt, X = (U.getClientRects().length > 0 || M.display === "contents") && (n.has(G) || z || D) && ($e || D) && (!s.has(G) || $e || z || D), H = X ? 1 : 0, se = [];
10097
10103
  if (X) {
10098
- const W = Ce.some((le) => le.containsTextElement), M = i.has(G) && !W ? Y : J;
10099
- se.push($d(U, c, a, M.slice(0, 180)));
10104
+ const W = Ce.some((le) => le.containsTextElement), q = i.has(G) && !W ? Y : J;
10105
+ se.push($d(U, c, a, q.slice(0, 180)));
10100
10106
  }
10101
10107
  for (const W of fe)
10102
10108
  se.push(...us(W, H));
@@ -10104,8 +10110,8 @@ function pm(t, e) {
10104
10110
  if (ve.length > 0) {
10105
10111
  const W = ve.slice(0, 20);
10106
10112
  ve.length > W.length && W.push("… shadow DOM omitted");
10107
- const M = G.includes("tooltip") || G.includes("popper") || G.includes("loader");
10108
- if (ge < 2 && !M) {
10113
+ const q = G.includes("tooltip") || G.includes("popper") || G.includes("loader");
10114
+ if (ge < 2 && !q) {
10109
10115
  const le = X ? "#shadow-root" : `${G} #shadow-root`;
10110
10116
  se.push(...us([le, ...us(W, 1)], H));
10111
10117
  } else
@@ -11271,7 +11277,7 @@ function Ty(t, e, n, i) {
11271
11277
  const b = e.ownerDocument.defaultView;
11272
11278
  let _, v = /* @__PURE__ */ new Map(), E = d.sessionId;
11273
11279
  const L = /* @__PURE__ */ new Set(), K = /* @__PURE__ */ new Map();
11274
- let U = null, ge = null, G = null, q = 0, D = null, F = null, J = null;
11280
+ let U = null, ge = null, G = null, M = 0, D = null, B = null, J = null;
11275
11281
  const S = () => JSON.stringify([
11276
11282
  d.sessionId,
11277
11283
  d.assistantDraftRespondsToUserMessageId,
@@ -11285,7 +11291,7 @@ function Ty(t, e, n, i) {
11285
11291
  ge !== null && b.clearTimeout(ge), ge = null, G = null;
11286
11292
  }
11287
11293
  function ce(z = !1) {
11288
- te(), F = null, J !== null && b.clearTimeout(J), J = null, _ = void 0, v.clear(), K.clear(), U !== null && b.clearTimeout(U), U = null, z && L.clear();
11294
+ te(), B = null, J !== null && b.clearTimeout(J), J = null, _ = void 0, v.clear(), K.clear(), U !== null && b.clearTimeout(U), U = null, z && L.clear();
11289
11295
  }
11290
11296
  function ne() {
11291
11297
  const z = e.querySelector(".pluno-pa-widget__panel") ?? e, X = b.getComputedStyle(z);
@@ -11312,11 +11318,11 @@ function Ty(t, e, n, i) {
11312
11318
  C = Math.imul(C ^ Le.charCodeAt(Q), 16777619) >>> 0;
11313
11319
  }
11314
11320
  const k = b.performance.now();
11315
- C !== G && (G = C, q = k), W = k - q, ge !== null && b.clearTimeout(ge), ge = W < 3e5 ? b.setTimeout(ne, 3e5 - W) : null;
11321
+ C !== G && (G = C, M = k), W = k - M, ge !== null && b.clearTimeout(ge), ge = W < 3e5 ? b.setTimeout(ne, 3e5 - W) : null;
11316
11322
  } else
11317
11323
  te(), L.delete("thinking-without-progress");
11318
- const M = Array.from(e.querySelectorAll(".pluno-pa-widget__thinking-marker, .thinking-marker, [data-thinking-status]")).some((P) => P.getClientRects().length > 0 && b.getComputedStyle(P).visibility !== "hidden" && b.getComputedStyle(P).opacity !== "0"), le = d.isThinking || d.turnPhase != null || d.pendingMessageStatus != null || M;
11319
- (!le || F && F.responseKey !== S()) && (F = null);
11324
+ const q = Array.from(e.querySelectorAll(".pluno-pa-widget__thinking-marker, .thinking-marker, [data-thinking-status]")).some((P) => P.getClientRects().length > 0 && b.getComputedStyle(P).visibility !== "hidden" && b.getComputedStyle(P).opacity !== "0"), le = d.isThinking || d.turnPhase != null || d.pendingMessageStatus != null || q;
11325
+ (!le || B && B.responseKey !== S()) && (B = null);
11320
11326
  const me = {
11321
11327
  executionKey: d.activity?.executionKey,
11322
11328
  inProgress: le,
@@ -11325,7 +11331,7 @@ function Ty(t, e, n, i) {
11325
11331
  enabledStopControlCount: Array.from(e.querySelectorAll(
11326
11332
  'button[aria-label="Stop"], button[aria-label="Stop generating"]'
11327
11333
  )).filter(V).length,
11328
- stopPendingMs: F ? b.performance.now() - F.at : 0,
11334
+ stopPendingMs: B ? b.performance.now() - B.at : 0,
11329
11335
  thinkingSequence: ve,
11330
11336
  thinkingIdleMs: W,
11331
11337
  messageKeys: Array.from(e.querySelectorAll("[data-message-key], [data-entry-key][data-message-role]")).flatMap((P) => P.dataset.messageKey ?? P.dataset.entryKey ?? []),
@@ -11364,7 +11370,7 @@ function Ty(t, e, n, i) {
11364
11370
  const Z = se ? se[P].dataset.messageKey ?? se[P].dataset.entryKey : d.messages[P].id;
11365
11371
  Z && W.push(Z.slice(0, ar));
11366
11372
  }
11367
- const M = {
11373
+ const q = {
11368
11374
  session_id: d.sessionId?.slice(0, ar) ?? null,
11369
11375
  run_id: (d.assistantDraftRunId ?? d.messages[d.messages.length - 1]?.runId)?.slice(0, ar) ?? null,
11370
11376
  item_keys: W,
@@ -11381,10 +11387,10 @@ function Ty(t, e, n, i) {
11381
11387
  terminal_count: H ? e.querySelectorAll("[data-terminal-response-key]").length : 0
11382
11388
  };
11383
11389
  if (z === "paint" && i.reportResponseVisibility) {
11384
- const P = e.querySelector(".pluno-pa-widget__panel") ?? e, Z = (B) => {
11385
- const ee = b.getComputedStyle(B);
11386
- return B.getClientRects().length > 0 && ee.visibility !== "hidden" && ee.display !== "none" && ee.opacity !== "0";
11387
- }, de = Z(P) && Z(e), C = !e.ownerDocument.hidden, k = new Set(Array.from(e.querySelectorAll("[data-canonical-item-key]")).filter(Z).map((B) => B.dataset.canonicalItemKey)), N = de && C && !d.isLoadingSession ? [...d.messages].reverse().find((B) => (B.role === "assistant" || B.dataType === "commentary_history" || B.dataType === "tool_summary") && k.has(B.id)) : void 0, ye = de && C && !d.isLoadingSession && !!d.assistantDraft.trim() && Array.from(e.querySelectorAll("[data-message-key], [data-entry-key]")).some((B) => Z(B) && (B.dataset.messageKey === `assistant:${d.assistantDraftItemId}` || B.dataset.entryKey === d.assistantDraftItemId)), Le = {
11390
+ const P = e.querySelector(".pluno-pa-widget__panel") ?? e, Z = ($) => {
11391
+ const ee = b.getComputedStyle($);
11392
+ return $.getClientRects().length > 0 && ee.visibility !== "hidden" && ee.display !== "none" && ee.opacity !== "0";
11393
+ }, de = Z(P) && Z(e), C = !e.ownerDocument.hidden, k = new Set(Array.from(e.querySelectorAll("[data-canonical-item-key]")).filter(Z).map(($) => $.dataset.canonicalItemKey)), N = de && C && !d.isLoadingSession ? [...d.messages].reverse().find(($) => ($.role === "assistant" || $.dataType === "commentary_history" || $.dataType === "tool_summary") && k.has($.id)) : void 0, ye = de && C && !d.isLoadingSession && !!d.assistantDraft.trim() && Array.from(e.querySelectorAll("[data-message-key], [data-entry-key]")).some(($) => Z($) && ($.dataset.messageKey === `assistant:${d.assistantDraftItemId}` || $.dataset.entryKey === d.assistantDraftItemId)), Le = {
11388
11394
  sessionId: d.sessionId,
11389
11395
  responseItemId: ye ? d.assistantDraftItemId : N?.id ?? null,
11390
11396
  respondsToUserMessageId: ye ? d.assistantDraftRespondsToUserMessageId : N?.respondsToUserMessageId ?? null,
@@ -11408,13 +11414,13 @@ function Ty(t, e, n, i) {
11408
11414
  const de = s.get(Z), C = (k) => {
11409
11415
  !de || de.seen.has(k) || (de.seen.add(k), de.timer.mark(k));
11410
11416
  };
11411
- if (z === "runtime" && C(ke ? "runtime_stopping" : d.activity?.phase === "stopped" ? "runtime_stopped" : me ? "runtime_reading" : "runtime_progress"), z === "paint" && !e.ownerDocument.hidden && M.visible && !M.loading && Array.from(e.querySelectorAll('[data-message-role="user"]')).some((N) => (N.dataset.canonicalItemKey === le.id || N.dataset.entryKey === le.id || N.dataset.messageKey === `user:${le.id}`) && N.getClientRects().length > 0)) {
11417
+ if (z === "runtime" && C(ke ? "runtime_stopping" : d.activity?.phase === "stopped" ? "runtime_stopped" : me ? "runtime_reading" : "runtime_progress"), z === "paint" && !e.ownerDocument.hidden && q.visible && !q.loading && Array.from(e.querySelectorAll('[data-message-role="user"]')).some((N) => (N.dataset.canonicalItemKey === le.id || N.dataset.entryKey === le.id || N.dataset.messageKey === `user:${le.id}`) && N.getClientRects().length > 0)) {
11412
11418
  C("message_painted");
11413
11419
  const N = e.textContent ?? "";
11414
11420
  ke && N.includes("Stopping") ? C("stopping_painted") : d.activity?.phase === "stopped" && N.includes("Stopped") ? C("stopped_painted") : me && N.includes("Reading your message") ? C("reading_painted") : !me && !ke && d.activity?.phase !== "stopped" && !N.includes("Reading your message") && C("progress_painted");
11415
11421
  }
11416
11422
  }
11417
- const Fe = JSON.stringify(M);
11423
+ const Fe = JSON.stringify(q);
11418
11424
  if (z === "runtime" && Fe === m || z === "paint" && Fe === f) return;
11419
11425
  z === "runtime" && (m = Fe), z === "paint" && (f = Fe);
11420
11426
  const ht = {
@@ -11423,7 +11429,7 @@ function Ty(t, e, n, i) {
11423
11429
  monotonic_ms: Math.round(b.performance.now()),
11424
11430
  kind: z,
11425
11431
  action: X,
11426
- ...M
11432
+ ...q
11427
11433
  }, je = new TextEncoder().encode(JSON.stringify(ht)).length;
11428
11434
  for (o.push(ht), a.push(je), r += je; o.length > Ay || r > Ry; )
11429
11435
  o.shift(), r -= a.shift(), c += 1;
@@ -11445,7 +11451,7 @@ function Ty(t, e, n, i) {
11445
11451
  });
11446
11452
  const et = (z) => {
11447
11453
  const X = z.target?.closest?.("button"), H = X?.getAttribute("aria-label") ?? X?.getAttribute("title"), se = H === "New chat" ? "new_chat" : H === "Send" || H === "Send message" ? "send" : H === "Stop" || H === "Stop generating" ? "stop" : H === "Retry" || H === "Retry message" ? "retry" : null;
11448
- Se("click", se), se === "stop" && X && V(X) && (F = { at: b.performance.now(), responseKey: S() }, J !== null && b.clearTimeout(J), J = b.setTimeout(ne, 1e3)), se === "new_chat" && ce(!0);
11454
+ Se("click", se), se === "stop" && X && V(X) && (B = { at: b.performance.now(), responseKey: S() }, J !== null && b.clearTimeout(J), J = b.setTimeout(ne, 1e3)), se === "new_chat" && ce(!0);
11449
11455
  }, Ce = () => Se("submit"), $e = () => Se("focus");
11450
11456
  e.addEventListener("click", et, !0), e.addEventListener("submit", Ce, !0), e.addEventListener("focusin", $e, !0), e.addEventListener("input", T, !0);
11451
11457
  const Y = () => {
@@ -11659,11 +11665,11 @@ async function lw(t = {}) {
11659
11665
  ".pluno-pa-widget__panel-drag-handle"
11660
11666
  ), G = r.querySelector(
11661
11667
  ".pluno-pa-widget__scribble-spirals--panel"
11662
- ), q = Array.from(
11668
+ ), M = Array.from(
11663
11669
  r.querySelectorAll(".pluno-pa-widget__resize-handle")
11664
11670
  ), D = r.querySelector(
11665
11671
  ".pluno-pa-widget__close"
11666
- ), F = r.querySelector(
11672
+ ), B = r.querySelector(
11667
11673
  ".pluno-pa-widget__composer"
11668
11674
  ), J = r.querySelector(
11669
11675
  ".pluno-pa-widget__attachment-error"
@@ -11701,7 +11707,7 @@ async function lw(t = {}) {
11701
11707
  ".pluno-pa-widget__timeline-jump"
11702
11708
  ), W = r.querySelector(
11703
11709
  ".pluno-pa-widget__active-users-counter"
11704
- ), M = r.querySelector(
11710
+ ), q = r.querySelector(
11705
11711
  ".pluno-pa-widget__timeline"
11706
11712
  ), le = r.querySelector(
11707
11713
  ".pluno-pa-widget__timeline-bottom-sentinel"
@@ -11733,7 +11739,7 @@ async function lw(t = {}) {
11733
11739
  ".pluno-pa-widget__proactive-suggestion-edit"
11734
11740
  ), Q = r.querySelector(
11735
11741
  ".pluno-pa-widget__proactive-suggestion-dismiss"
11736
- ), B = r.querySelector(
11742
+ ), $ = r.querySelector(
11737
11743
  ".pluno-pa-widget__proactive-suggestion-close"
11738
11744
  ), ee = r.querySelector(
11739
11745
  ".pluno-pa-widget__proactive-suggestion-never-show"
@@ -11748,7 +11754,7 @@ async function lw(t = {}) {
11748
11754
  ), zi = r.querySelector(
11749
11755
  ".pluno-pa-widget__proactive-suggestion-feedback-status"
11750
11756
  );
11751
- if (!_ || !E || !U || !D || !F || !J || !S || !ce || !ne || !Se || !T || !fe || !Oe || !Ce || !$e || !Y || !tt || !z || !X || !H || !se || !ve || !W || !M || !le)
11757
+ if (!_ || !E || !U || !D || !B || !J || !S || !ce || !ne || !Se || !T || !fe || !Oe || !Ce || !$e || !Y || !tt || !z || !X || !H || !se || !ve || !W || !q || !le)
11752
11758
  throw new Error("Failed to mount Pluno widget");
11753
11759
  if (e.movableLauncher && !v)
11754
11760
  throw new Error("Failed to mount Pluno widget drag handle");
@@ -11954,7 +11960,7 @@ async function lw(t = {}) {
11954
11960
  let mt = null, Xt = null, Pe = !1, Qt = !1, Ot = {
11955
11961
  enabled: !0
11956
11962
  }, Zt = 0, io = null, mn = null, yn = null, Fi = null, oi = !1, be = null, Ma = "local";
11957
- const qa = (u) => ti !== null && ti !== u.sessionId || ii !== null && ii !== (u.user?.id ?? null) || ni !== void 0 && ni !== u.selectionKey, Da = (u) => up(M, u, {
11963
+ const qa = (u) => ti !== null && ti !== u.sessionId || ii !== null && ii !== (u.user?.id ?? null) || ni !== void 0 && ni !== u.selectionKey, Da = (u) => up(q, u, {
11958
11964
  renderSource: Ma,
11959
11965
  guardCreatedAt: be?.createdAt ?? null,
11960
11966
  selectionFencePending: qa(u)
@@ -11973,14 +11979,14 @@ async function lw(t = {}) {
11973
11979
  }, Lu = () => {
11974
11980
  Cp(oi, Hi), ve.hidden = !1;
11975
11981
  }, Ua = () => {
11976
- be?.observedConversation && M.querySelector(".pluno-pa-widget__empty-state--starter:not(.pluno-pa-widget__empty-state--morning-report)") && (be.observedWelcome ??= Da(A.getState())), be?.observedWelcome && !be.pendingSubmission && (Hi("submitted_turn_returned_to_welcome_without_new_chat", be.clientMessageId, {
11982
+ be?.observedConversation && q.querySelector(".pluno-pa-widget__empty-state--starter:not(.pluno-pa-widget__empty-state--morning-report)") && (be.observedWelcome ??= Da(A.getState())), be?.observedWelcome && !be.pendingSubmission && (Hi("submitted_turn_returned_to_welcome_without_new_chat", be.clientMessageId, {
11977
11983
  before: be.observedConversation,
11978
11984
  current: be.observedWelcome
11979
11985
  }), be = null);
11980
11986
  }, Nu = (u = "jump") => {
11981
- st(!0, u), yt(), Kn(M, () => Ot.enabled), Zt = M.scrollTop;
11987
+ st(!0, u), yt(), Kn(q, () => Ot.enabled), Zt = q.scrollTop;
11982
11988
  }, Wi = (u) => {
11983
- io = u, u === "up" && M.scrollTop < Zt - 1 && (oi = !0, st(!1, "userScroll")), mn !== null && window.clearTimeout(mn), mn = window.setTimeout(() => {
11989
+ io = u, u === "up" && q.scrollTop < Zt - 1 && (oi = !0, st(!1, "userScroll")), mn !== null && window.clearTimeout(mn), mn = window.setTimeout(() => {
11984
11990
  io = null, mn = null;
11985
11991
  }, 500);
11986
11992
  };
@@ -12246,9 +12252,9 @@ async function lw(t = {}) {
12246
12252
  setPosition: Bu,
12247
12253
  persist: Ve
12248
12254
  }) : () => {
12249
- }, Fu = q.length > 0 ? mw({
12255
+ }, Fu = M.length > 0 ? mw({
12250
12256
  root: r,
12251
- handles: q,
12257
+ handles: M,
12252
12258
  getBounds: ja,
12253
12259
  setBounds: zu,
12254
12260
  persist: Ve
@@ -12311,15 +12317,15 @@ async function lw(t = {}) {
12311
12317
  openPanelPosition: Ie,
12312
12318
  visibleLauncherPosition: Re
12313
12319
  }), st(!0, "open"), yt(), !re && e.layout === "floating" && A.recordWidgetLifecycle("opened", O), !y) {
12314
- r.classList.add("pluno-pa-widget--open"), re || ao(), _.hidden = !0, u && (T.value = u, ki(T)), Kn(M, () => Ot.enabled), Zt = M.scrollTop, I && (fn(T, "panel_open_immediate"), T.setSelectionRange(T.value.length, T.value.length)), Ve(), Vi("shown", O), e.onPanelOpenChange?.(!0, O);
12320
+ r.classList.add("pluno-pa-widget--open"), re || ao(), _.hidden = !0, u && (T.value = u, ki(T)), Kn(q, () => Ot.enabled), Zt = q.scrollTop, I && (fn(T, "panel_open_immediate"), T.setSelectionRange(T.value.length, T.value.length)), Ve(), Vi("shown", O), e.onPanelOpenChange?.(!0, O);
12315
12321
  return;
12316
12322
  }
12317
12323
  const _t = Date.now();
12318
12324
  window.requestAnimationFrame(() => {
12319
- r.classList.add("pluno-pa-widget--open"), re || ao(), u && (T.value = u, ki(T)), Kn(M, () => Ot.enabled), Zt = M.scrollTop, I && (fn(T, "panel_open_animation", {
12325
+ r.classList.add("pluno-pa-widget--open"), re || ao(), u && (T.value = u, ki(T)), Kn(q, () => Ot.enabled), Zt = q.scrollTop, I && (fn(T, "panel_open_animation", {
12320
12326
  scheduledAt: _t
12321
12327
  }), T.setSelectionRange(T.value.length, T.value.length)), Ve(), Vi("shown", O), e.onPanelOpenChange?.(!0, O), mt = window.setTimeout(() => {
12322
- _.hidden = !0, Kn(M, () => Ot.enabled), Zt = M.scrollTop;
12328
+ _.hidden = !0, Kn(q, () => Ot.enabled), Zt = q.scrollTop;
12323
12329
  }, 220);
12324
12330
  });
12325
12331
  }, ho = (u = "external_request") => {
@@ -12471,38 +12477,38 @@ async function lw(t = {}) {
12471
12477
  u.stopPropagation();
12472
12478
  }), K?.addEventListener("click", (u) => {
12473
12479
  u.preventDefault(), u.stopPropagation(), ai("minimized", !0, "minimize_button");
12474
- }), D.addEventListener("click", () => ho("close_button")), M.addEventListener("wheel", (u) => {
12480
+ }), D.addEventListener("click", () => ho("close_button")), q.addEventListener("wheel", (u) => {
12475
12481
  Wi(u.deltaY < 0 ? "up" : null);
12476
- }), M.addEventListener("pointerdown", (u) => {
12477
- yn = u.target === M ? u.clientY : null;
12478
- }), M.addEventListener("pointermove", (u) => {
12482
+ }), q.addEventListener("pointerdown", (u) => {
12483
+ yn = u.target === q ? u.clientY : null;
12484
+ }), q.addEventListener("pointermove", (u) => {
12479
12485
  yn !== null && u.clientY < yn - 1 && Wi("up"), yn !== null && (yn = u.clientY);
12480
- }), M.addEventListener("pointerup", () => {
12486
+ }), q.addEventListener("pointerup", () => {
12481
12487
  yn = null;
12482
- }), M.addEventListener("pointercancel", () => {
12488
+ }), q.addEventListener("pointercancel", () => {
12483
12489
  yn = null;
12484
- }), M.addEventListener("touchstart", (u) => {
12490
+ }), q.addEventListener("touchstart", (u) => {
12485
12491
  Fi = u.touches[0]?.clientY ?? null;
12486
- }), M.addEventListener("touchmove", (u) => {
12492
+ }), q.addEventListener("touchmove", (u) => {
12487
12493
  const y = u.touches[0]?.clientY ?? null;
12488
12494
  y !== null && Fi !== null && Wi(y > Fi ? "up" : null), Fi = y;
12489
- }), M.addEventListener("keydown", (u) => {
12495
+ }), q.addEventListener("keydown", (u) => {
12490
12496
  (u.key === "ArrowUp" || u.key === "PageUp" || u.key === "Home") && Wi("up");
12491
- }), M.addEventListener("scroll", () => {
12492
- M.scrollTop < Zt - 1 && io === "up" && (oi = !0, st(!1, "userScroll")), Zt = M.scrollTop;
12497
+ }), q.addEventListener("scroll", () => {
12498
+ q.scrollTop < Zt - 1 && io === "up" && (oi = !0, st(!1, "userScroll")), Zt = q.scrollTop;
12493
12499
  }), ve.addEventListener("click", () => {
12494
12500
  Nu();
12495
12501
  });
12496
12502
  const Ya = typeof IntersectionObserver > "u" ? null : new IntersectionObserver(
12497
12503
  ([u]) => {
12498
- !u?.isIntersecting || M.scrollHeight - M.scrollTop - M.clientHeight > 1 || (st(!0, "bottom"), yt());
12504
+ !u?.isIntersecting || q.scrollHeight - q.scrollTop - q.clientHeight > 1 || (st(!0, "bottom"), yt());
12499
12505
  },
12500
- { root: M, threshold: 0 }
12506
+ { root: q, threshold: 0 }
12501
12507
  );
12502
12508
  Ya?.observe(le);
12503
12509
  const Xa = r.querySelector(".pluno-pa-widget__permission-overlay"), Qa = typeof ResizeObserver > "u" ? null : new ResizeObserver(() => {
12504
12510
  const u = Xa.offsetHeight;
12505
- M.style.paddingBottom = `${u > 0 ? u + 24 : 12}px`, Ot.enabled && Kn(M, () => Ot.enabled);
12511
+ q.style.paddingBottom = `${u > 0 ? u + 24 : 12}px`, Ot.enabled && Kn(q, () => Ot.enabled);
12506
12512
  });
12507
12513
  Qa?.observe(Xa);
12508
12514
  const Nt = () => e.loginRequired || e.signupRequired;
@@ -12519,7 +12525,7 @@ async function lw(t = {}) {
12519
12525
  return Qi() ? !1 : u !== "connected" && !(yo && u === "reconnecting");
12520
12526
  }, zn = () => {
12521
12527
  const u = Nt(), y = A.getState(), I = !y.isThinking && !y.pendingMessageStatus && !!y.lastError;
12522
- E.readOnly = !1, T.readOnly = !1, E.placeholder = u ? e.signupRequired ? e.signupButtonLabel : e.loginButtonLabel : I ? "Needs attention" : hi ? "New update" : e.launcherLabel, T.placeholder = u ? e.signupRequired ? e.signupButtonLabel : e.loginButtonLabel : $t.launcherLabel, F.hidden = u;
12528
+ E.readOnly = !1, T.readOnly = !1, E.placeholder = u ? e.signupRequired ? e.signupButtonLabel : e.loginButtonLabel : I ? "Needs attention" : hi ? "New update" : e.launcherLabel, T.placeholder = u ? e.signupRequired ? e.signupButtonLabel : e.loginButtonLabel : $t.launcherLabel, B.hidden = u;
12523
12529
  }, _o = () => [...St.values()].some((u) => u.revision === Gt && u.generation === ft), Za = () => {
12524
12530
  const u = A.getState(), y = e.billingStatus;
12525
12531
  return {
@@ -12633,7 +12639,7 @@ async function lw(t = {}) {
12633
12639
  }
12634
12640
  tc(x);
12635
12641
  };
12636
- F.addEventListener("submit", (u) => {
12642
+ B.addEventListener("submit", (u) => {
12637
12643
  if (u.preventDefault(), e.loginRequired) {
12638
12644
  e.onLoginClick?.();
12639
12645
  return;
@@ -12883,12 +12889,12 @@ async function lw(t = {}) {
12883
12889
  return di = null, no.clear(), is.clear(), T.value = "", nt = [], ei(), ki(T), Ve(), Me(), fn(T, "new_chat"), _e(A.getState()), y;
12884
12890
  }, pc = (u) => {
12885
12891
  window.requestAnimationFrame(() => {
12886
- Pe || U.hidden || b.visibilityState === "hidden" || Array.from(M.querySelectorAll("[data-message-key]")).some(
12892
+ Pe || U.hidden || b.visibilityState === "hidden" || Array.from(q.querySelectorAll("[data-message-key]")).some(
12887
12893
  (y) => u.has(y.dataset.messageKey)
12888
12894
  ) && Hi("proactive_suggestion_previous_chat_visible");
12889
12895
  });
12890
12896
  }, hc = () => new Set(
12891
- Array.from(M.querySelectorAll("[data-message-key]"), (u) => u.dataset.messageKey)
12897
+ Array.from(q.querySelectorAll("[data-message-key]"), (u) => u.dataset.messageKey)
12892
12898
  );
12893
12899
  ye?.addEventListener("click", async () => {
12894
12900
  const u = e.proactiveSuggestion;
@@ -12911,7 +12917,7 @@ async function lw(t = {}) {
12911
12917
  }
12912
12918
  gt();
12913
12919
  };
12914
- Q?.addEventListener("click", gc), B?.addEventListener("click", gc), Le?.addEventListener("click", async () => {
12920
+ Q?.addEventListener("click", gc), $?.addEventListener("click", gc), Le?.addEventListener("click", async () => {
12915
12921
  const u = e.proactiveSuggestion;
12916
12922
  if (!u)
12917
12923
  return;
@@ -12991,14 +12997,14 @@ async function lw(t = {}) {
12991
12997
  });
12992
12998
  let kn = !1, wi = null, os = 0, Mo = 0;
12993
12999
  const _e = (u, y = {}) => {
12994
- qa(u) && (be = null), Ma = y.renderSource ?? "local", uo(), r.classList.toggle("pluno-pa-widget--logged-out", e.loginRequired && e.entrySurface === "extension_widget"), V.classList.remove("pluno-pa-widget__access-notice--login-only"), u = { ...u, messages: u.messages.map(($) => {
12995
- if (!$.attachments?.some((Ge) => Ge.id && !Ge.fileUrl && Zn.has(Ge.id))) return $;
12996
- const Ct = $.attachments.map((Ge) => {
13000
+ qa(u) && (be = null), Ma = y.renderSource ?? "local", uo(), r.classList.toggle("pluno-pa-widget--logged-out", e.loginRequired && e.entrySurface === "extension_widget"), V.classList.remove("pluno-pa-widget__access-notice--login-only"), u = { ...u, messages: u.messages.map((F) => {
13001
+ if (!F.attachments?.some((Ge) => Ge.id && !Ge.fileUrl && Zn.has(Ge.id))) return F;
13002
+ const Ct = F.attachments.map((Ge) => {
12997
13003
  const bi = Ge.id ? Zn.get(Ge.id) : void 0;
12998
13004
  return bi && !Ge.fileUrl ? { ...Ge, previewUrl: bi } : Ge;
12999
13005
  });
13000
- return Object.create(Object.getPrototypeOf($), {
13001
- ...Object.getOwnPropertyDescriptors($),
13006
+ return Object.create(Object.getPrototypeOf(F), {
13007
+ ...Object.getOwnPropertyDescriptors(F),
13002
13008
  attachments: { value: Ct, enumerable: !0, configurable: !0 }
13003
13009
  });
13004
13010
  }) }, Un(), Xt !== null && (window.clearTimeout(Xt), Xt = null), Lt(), gt(), Zs(), V.hidden = !e.loginRequired && !e.signupRequired, V.hidden && V.replaceChildren();
@@ -13011,19 +13017,19 @@ async function lw(t = {}) {
13011
13017
  ]);
13012
13018
  if (yc !== I) {
13013
13019
  yc = I, te.hidden = !!(e.loginRequired || e.signupRequired) || !u.lastError || Pi(u.lastErrorCode) !== "bottom_notice";
13014
- const $ = te.hidden ? "" : u.lastError ?? "";
13015
- Po.data !== $ && (Po.data = $), te.hidden ? zt.remove() : zt.parentElement !== te && te.appendChild(zt), u.lastErrorSecuritySettingsUrl ? (sn.href = u.lastErrorSecuritySettingsUrl, sn.parentElement !== zt && zt.insertBefore(sn, bt.parentElement ? bt : null)) : sn.remove(), u.lastErrorCode === "connection_failed" || u.lastErrorCode === "auth_reconnecting" ? (bt.disabled = on, bt.setAttribute("aria-busy", String(on)), fc.hidden = !on, mc.data = on ? "Trying" : "Try again", bt.parentElement !== zt && zt.appendChild(bt)) : bt.remove();
13020
+ const F = te.hidden ? "" : u.lastError ?? "";
13021
+ Po.data !== F && (Po.data = F), te.hidden ? zt.remove() : zt.parentElement !== te && te.appendChild(zt), u.lastErrorSecuritySettingsUrl ? (sn.href = u.lastErrorSecuritySettingsUrl, sn.parentElement !== zt && zt.insertBefore(sn, bt.parentElement ? bt : null)) : sn.remove(), u.lastErrorCode === "connection_failed" || u.lastErrorCode === "auth_reconnecting" ? (bt.disabled = on, bt.setAttribute("aria-busy", String(on)), fc.hidden = !on, mc.data = on ? "Trying" : "Try again", bt.parentElement !== zt && zt.appendChild(bt)) : bt.remove();
13016
13022
  }
13017
13023
  if (e.loginRequired) {
13018
- Ki = "", ts.clear(), Ro.clear(), To.clear(), M.replaceChildren();
13019
- const $ = e.billingStatus?.auth, Ct = e.extensionRuntime?.retryAuth;
13020
- if ($?.status === "error" && ($.errorCode === "browser_session_unavailable" || $.errorCode === "backend_auth_pending") && Ct) {
13024
+ Ki = "", ts.clear(), Ro.clear(), To.clear(), q.replaceChildren();
13025
+ const F = e.billingStatus?.auth, Ct = e.extensionRuntime?.retryAuth;
13026
+ if (F?.status === "error" && (F.errorCode === "browser_session_unavailable" || F.errorCode === "backend_auth_pending") && Ct) {
13021
13027
  mr(
13022
13028
  V,
13023
13029
  Ce,
13024
13030
  ss,
13025
13031
  fi,
13026
- (wi ?? $.message).replace(new RegExp("(?<=[.!?])\\s+", "g"), `
13032
+ (wi ?? F.message).replace(new RegExp("(?<=[.!?])\\s+", "g"), `
13027
13033
  `),
13028
13034
  kn ? "Trying" : "Try again",
13029
13035
  void 0,
@@ -13055,7 +13061,7 @@ async function lw(t = {}) {
13055
13061
  return;
13056
13062
  }
13057
13063
  if (e.signupRequired) {
13058
- Ki = "", ts.clear(), Ro.clear(), To.clear(), M.replaceChildren(), mr(
13064
+ Ki = "", ts.clear(), Ro.clear(), To.clear(), q.replaceChildren(), mr(
13059
13065
  V,
13060
13066
  Ce,
13061
13067
  ss,
@@ -13078,7 +13084,7 @@ async function lw(t = {}) {
13078
13084
  Ki = x;
13079
13085
  const re = Qt || Ot.enabled;
13080
13086
  Qt = !1, (O || y.skipUnchangedTimeline !== !0) && lb(
13081
- M,
13087
+ q,
13082
13088
  le,
13083
13089
  Ce,
13084
13090
  ss,
@@ -13094,36 +13100,36 @@ async function lw(t = {}) {
13094
13100
  To,
13095
13101
  Ve,
13096
13102
  fi,
13097
- ($) => {
13098
- (e.productVariant === "personal" ? !tn() : wo()) || (Qt = !0, st(!0, "send"), yt(), A.sendMessage($));
13103
+ (F) => {
13104
+ (e.productVariant === "personal" ? !tn() : wo()) || (Qt = !0, st(!0, "send"), yt(), A.sendMessage(F));
13099
13105
  },
13100
- ($) => (Qt = !0, st(!0, "send"), yt(), A.retryLastMessage($)),
13106
+ (F) => (Qt = !0, st(!0, "send"), yt(), A.retryLastMessage(F)),
13101
13107
  e.morningReport,
13102
13108
  () => {
13103
- const $ = ue("morning_report");
13104
- $ && Ue($, "later").catch(() => {
13109
+ const F = ue("morning_report");
13110
+ F && Ue(F, "later").catch(() => {
13105
13111
  }), ho("morning_report_snooze"), _e(A.getState());
13106
13112
  },
13107
13113
  () => u.sessionId ? A.loadSession(u.sessionId) : void 0,
13108
13114
  () => yi(),
13109
13115
  ns.get(u.selectionKey ?? u.sessionId ?? "draft"),
13110
- ($, Ct) => {
13111
- Ju(u.selectionKey ?? u.sessionId ?? "draft", $, Ct);
13116
+ (F, Ct) => {
13117
+ Ju(u.selectionKey ?? u.sessionId ?? "draft", F, Ct);
13112
13118
  },
13113
13119
  e.attachmentPreviewUrlResolver,
13114
13120
  ac("integration_connection") ? {
13115
- requests: Et.flatMap(($) => $.kind === "integration_connection" ? [$.payload.request] : []),
13121
+ requests: Et.flatMap((F) => F.kind === "integration_connection" ? [F.payload.request] : []),
13116
13122
  states: is,
13117
13123
  initialStatus: "pending",
13118
- onConnect: ($) => Yu($),
13124
+ onConnect: (F) => Yu(F),
13119
13125
  presentations: new Map(Et.flatMap(
13120
- ($) => $.kind === "integration_connection" ? [[$.payload.request.authRequestId, $.presentation]] : []
13126
+ (F) => F.kind === "integration_connection" ? [[F.payload.request.authRequestId, F.presentation]] : []
13121
13127
  ))
13122
13128
  } : void 0,
13123
13129
  ue("personal_channel_connection") ? {
13124
13130
  request: ue("personal_channel_connection").payload.request,
13125
- onConnect: ($) => {
13126
- Xu($);
13131
+ onConnect: (F) => {
13132
+ Xu(F);
13127
13133
  },
13128
13134
  presentation: ac("personal_channel_connection")?.presentation
13129
13135
  } : void 0,
@@ -13137,37 +13143,37 @@ async function lw(t = {}) {
13137
13143
  socialPostRewardsUrl: e.socialPostRewardsUrl,
13138
13144
  onSeen: () => {
13139
13145
  },
13140
- onReferralCopy: ($) => {
13141
- sp($);
13146
+ onReferralCopy: (F) => {
13147
+ sp(F);
13142
13148
  },
13143
- onSocialShare: ($) => {
13149
+ onSocialShare: (F) => {
13144
13150
  const Ct = ue("social_share");
13145
13151
  Ue(Ct, "dismiss").catch(() => {
13146
13152
  });
13147
13153
  },
13148
13154
  onDismiss: () => {
13149
- const $ = ue("social_share");
13150
- Ue($, "dismiss").catch(() => {
13155
+ const F = ue("social_share");
13156
+ Ue(F, "dismiss").catch(() => {
13151
13157
  }), mi = null, _e(A.getState());
13152
13158
  },
13153
13159
  onDisable: () => {
13154
- const $ = ue("social_share");
13155
- Ue($, "dont_show_again").catch(() => {
13160
+ const F = ue("social_share");
13161
+ Ue(F, "dont_show_again").catch(() => {
13156
13162
  }), mi = null, _e(A.getState());
13157
13163
  }
13158
13164
  } : void 0
13159
13165
  );
13160
- const Re = !!M.querySelector(
13166
+ const Re = !!q.querySelector(
13161
13167
  ".pluno-pa-widget__empty-state--starter:not(.pluno-pa-widget__empty-state--morning-report)"
13162
13168
  );
13163
13169
  be && !be.observedWelcome && !Re && Ol(u) && (be.observedConversation = Da(u)), Ua(), Me(), gt();
13164
- const Ie = Array.isArray(u.activeScheduledFollowUps) ? u.activeScheduledFollowUps : null, _t = (Ie !== null ? Ie.map(($) => $.dueAt) : u.messages.map(($) => $.scheduledCheckInAt)).filter(($) => !!$).filter(($) => Jn($) !== null).sort(($, Ct) => Date.parse($) - Date.parse(Ct))[0] ?? null, vc = _t ? Qg(_t) : null;
13170
+ const Ie = Array.isArray(u.activeScheduledFollowUps) ? u.activeScheduledFollowUps : null, _t = (Ie !== null ? Ie.map((F) => F.dueAt) : u.messages.map((F) => F.scheduledCheckInAt)).filter((F) => !!F).filter((F) => Jn(F) !== null).sort((F, Ct) => Date.parse(F) - Date.parse(Ct))[0] ?? null, vc = _t ? Qg(_t) : null;
13165
13171
  vc !== null && (Xt = window.setTimeout(
13166
13172
  () => {
13167
13173
  Xt = null, Pe || _e(A.getState());
13168
13174
  },
13169
13175
  Math.min(vc, 2147483647)
13170
- )), re ? (Zt = M.scrollTop, yt()) : O && Ol(u) && Lu();
13176
+ )), re ? (Zt = q.scrollTop, yt()) : O && Ol(u) && Lu();
13171
13177
  }, wc = () => {
13172
13178
  b.getSelection()?.isCollapsed !== !1 && mb(ts) && _e(A.getState());
13173
13179
  };
@@ -15127,8 +15133,8 @@ function jl(t, e) {
15127
15133
  const i = n[1], s = e ? "Finding example tasks..." : " ";
15128
15134
  i.textContent !== s && (i.textContent = s), i.classList.toggle("pluno-pa-widget__starter-placeholder--loading", e), i.parentElement.setAttribute("aria-hidden", String(!e));
15129
15135
  }
15130
- function lb(t, e, n, i, s, o, a, r, c, l, p, d, h, g, m, f, w, b, _, v, E, L, K, U, ge, G, q, D) {
15131
- const F = (C) => {
15136
+ function lb(t, e, n, i, s, o, a, r, c, l, p, d, h, g, m, f, w, b, _, v, E, L, K, U, ge, G, M, D) {
15137
+ const B = (C) => {
15132
15138
  const k = G.states.get(C.authRequestId) ?? { status: G.initialStatus }, N = `integration-retry:${C.authRequestId}`, ye = `integration-connect:${C.authRequestId}`, Le = K?.has(N) ? "retry" : K?.has(ye) ? "connect" : null;
15133
15139
  return db(
15134
15140
  C,
@@ -15182,7 +15188,7 @@ function lb(t, e, n, i, s, o, a, r, c, l, p, d, h, g, m, f, w, b, _, v, E, L, K,
15182
15188
  C === e && Oe.push(t.querySelector('slot[name="conversation-notices"]') ?? fu("conversation-notices")), C.dataset.sessionId = o.sessionId ?? "", Oe.push(C);
15183
15189
  };
15184
15190
  Sa(n, o.isThinking), n.disabled = !1, s.hidden = !r, r && a !== null && yu(s, a);
15185
- const tt = !!(G?.requests.length || q || D?.candidate), z = tt || ne.length > 0 || ce.length > 0 || !!o.assistantDraft || o.pendingMessageStatus !== null || o.isThinking;
15191
+ const tt = !!(G?.requests.length || M || D?.candidate), z = tt || ne.length > 0 || ce.length > 0 || !!o.assistantDraft || o.pendingMessageStatus !== null || o.isThinking;
15186
15192
  if (i(z || !!o.historyPreparation), o.historyPreparation && z) {
15187
15193
  const C = document.createElement("div");
15188
15194
  C.className = "pluno-pa-widget__transcript-loading", C.setAttribute("role", "status"), C.append(pn(), document.createTextNode("Preparing this conversation…")), Y(C);
@@ -15229,20 +15235,20 @@ function lb(t, e, n, i, s, o, a, r, c, l, p, d, h, g, m, f, w, b, _, v, E, L, K,
15229
15235
  ee.className = "pluno-pa-widget__empty pluno-pa-widget__morning-report-title", ee.textContent = _.opening, N.appendChild(ee);
15230
15236
  } else
15231
15237
  N.appendChild(mu());
15232
- const Q = _?.prompts ?? o.starterPrompts, B = document.createElement("div");
15233
- if (B.className = Q.length > 0 ? "pluno-pa-widget__starter-prompts" : "pluno-pa-widget__starter-prompts pluno-pa-widget__starter-prompts--empty", Q.length === 0 && !o.starterPromptsLoading && B.setAttribute("aria-hidden", "true"), Q.length > 0)
15238
+ const Q = _?.prompts ?? o.starterPrompts, $ = document.createElement("div");
15239
+ if ($.className = Q.length > 0 ? "pluno-pa-widget__starter-prompts" : "pluno-pa-widget__starter-prompts pluno-pa-widget__starter-prompts--empty", Q.length === 0 && !o.starterPromptsLoading && $.setAttribute("aria-hidden", "true"), Q.length > 0)
15234
15240
  for (const ee of Q) {
15235
15241
  const ae = document.createElement("button");
15236
15242
  ae.type = "button", ae.className = "pluno-pa-widget__starter-prompt", ae.textContent = ee, ae.addEventListener("click", () => {
15237
15243
  w(ee);
15238
- }), B.appendChild(ae);
15244
+ }), $.appendChild(ae);
15239
15245
  }
15240
15246
  else
15241
15247
  for (let ee = 0; ee < jy; ee += 1) {
15242
15248
  const ae = document.createElement("div");
15243
- ae.className = "pluno-pa-widget__starter-placeholder", ee === 1 && ae.setAttribute("role", "status"), ae.textContent = " ", B.appendChild(ae);
15249
+ ae.className = "pluno-pa-widget__starter-placeholder", ee === 1 && ae.setAttribute("role", "status"), ae.textContent = " ", $.appendChild(ae);
15244
15250
  }
15245
- if (N.appendChild(B), jl(N, o.starterPromptsLoading), _) {
15251
+ if (N.appendChild($), jl(N, o.starterPromptsLoading), _) {
15246
15252
  const ee = document.createElement("button");
15247
15253
  ee.type = "button", ee.className = "pluno-pa-widget__morning-report-snooze", ee.textContent = "Snooze morning report", ee.addEventListener("click", v), N.appendChild(ee);
15248
15254
  }
@@ -15250,7 +15256,7 @@ function lb(t, e, n, i, s, o, a, r, c, l, p, d, h, g, m, f, w, b, _, v, E, L, K,
15250
15256
  return;
15251
15257
  }
15252
15258
  let X = null, H = null, se = [], ve = [];
15253
- const W = ne.some(Yr), M = ne.some(
15259
+ const W = ne.some(Yr), q = ne.some(
15254
15260
  (C) => C.role === "tool" && C.id === o.activity?.activeItemId
15255
15261
  ), le = o.turnPhase ? Ey(o.turnPhase) : "Thinking...";
15256
15262
  let me = !1;
@@ -15281,16 +15287,16 @@ function lb(t, e, n, i, s, o, a, r, c, l, p, d, h, g, m, f, w, b, _, v, E, L, K,
15281
15287
  const k = ne[C];
15282
15288
  if (k.role === "tool" && k.integrationAuthRequest && G) {
15283
15289
  Fe.add(k.integrationAuthRequest.authRequestId);
15284
- const B = F(k.integrationAuthRequest);
15285
- ve.push(B);
15290
+ const $ = B(k.integrationAuthRequest);
15291
+ ve.push($);
15286
15292
  continue;
15287
15293
  }
15288
- if (k.role === "tool" && k.personalChannelConnectionRequest && q) {
15294
+ if (k.role === "tool" && k.personalChannelConnectionRequest && M) {
15289
15295
  ht = !0, ve.push(
15290
15296
  Kl(
15291
15297
  k.personalChannelConnectionRequest,
15292
- q.onConnect,
15293
- q.presentation
15298
+ M.onConnect,
15299
+ M.presentation
15294
15300
  )
15295
15301
  );
15296
15302
  continue;
@@ -15309,8 +15315,8 @@ function lb(t, e, n, i, s, o, a, r, c, l, p, d, h, g, m, f, w, b, _, v, E, L, K,
15309
15315
  if (Yr(k)) {
15310
15316
  if (!J.showProgress)
15311
15317
  continue;
15312
- const B = ke(), ee = Eu(k);
15313
- if (B) {
15318
+ const $ = ke(), ee = Eu(k);
15319
+ if ($) {
15314
15320
  if (!me) {
15315
15321
  const ae = Vl(
15316
15322
  g,
@@ -15334,10 +15340,10 @@ function lb(t, e, n, i, s, o, a, r, c, l, p, d, h, g, m, f, w, b, _, v, E, L, K,
15334
15340
  }
15335
15341
  if (k.role === "system") {
15336
15342
  if (k.dataType === "run_error" || k.dataType === "run_status") {
15337
- const B = ke(), ee = ne.some(
15343
+ const $ = ke(), ee = ne.some(
15338
15344
  (we) => we.role === "tool" && Ns(we, k)
15339
15345
  );
15340
- if (!B && !ee) {
15346
+ if (!$ && !ee) {
15341
15347
  const we = Oi(f());
15342
15348
  we.classList.add("pluno-pa-widget__terminal-marker"), Y(we);
15343
15349
  }
@@ -15354,11 +15360,11 @@ function lb(t, e, n, i, s, o, a, r, c, l, p, d, h, g, m, f, w, b, _, v, E, L, K,
15354
15360
  }
15355
15361
  k.role === "user" && je();
15356
15362
  const N = ke(), ye = Us(k.content), Le = k.role === "assistant" && ne.some(
15357
- (B) => B.role === "tool" && Ns(B, k)
15363
+ ($) => $.role === "tool" && Ns($, k)
15358
15364
  );
15359
15365
  if (k.role === "assistant" && !N && !Le) {
15360
- const B = Oi(f());
15361
- Y(B), X = null, H = B;
15366
+ const $ = Oi(f());
15367
+ Y($), X = null, H = $;
15362
15368
  }
15363
15369
  const Q = ub(
15364
15370
  k,
@@ -15368,13 +15374,13 @@ function lb(t, e, n, i, s, o, a, r, c, l, p, d, h, g, m, f, w, b, _, v, E, L, K,
15368
15374
  ge
15369
15375
  );
15370
15376
  if (Q.querySelector("[data-submission-retry]")?.remove(), k.role === "user" && k.retryable) {
15371
- const B = document.createElement("button");
15372
- B.type = "button", B.className = "pluno-pa-widget__error-retry", B.dataset.submissionRetry = k.id, B.textContent = "Retry this message", B.addEventListener("click", () => b(k.id)), Q.appendChild(B);
15377
+ const $ = document.createElement("button");
15378
+ $.type = "button", $.className = "pluno-pa-widget__error-retry", $.dataset.submissionRetry = k.id, $.textContent = "Retry this message", $.addEventListener("click", () => b(k.id)), Q.appendChild($);
15373
15379
  }
15374
15380
  Y(Q), X = Q, H = null, k.role === "assistant" && je();
15375
15381
  }
15376
15382
  const P = ke(), Z = ne[ne.length - 1]?.role === "assistant";
15377
- if (J.showProgress && o.turnPhase && !o.assistantDraft && !M && !Z && !W) {
15383
+ if (J.showProgress && o.turnPhase && !o.assistantDraft && !q && !Z && !W) {
15378
15384
  const C = o.activeResponseUserMessageId ? `response:${o.activeResponseUserMessageId}` : `session:${o.sessionId ?? "pending"}`;
15379
15385
  if (P) {
15380
15386
  if (!me) {
@@ -15408,23 +15414,23 @@ function lb(t, e, n, i, s, o, a, r, c, l, p, d, h, g, m, f, w, b, _, v, E, L, K,
15408
15414
  Q.className = "pluno-pa-widget__error-retry", Q.href = o.lastErrorSecuritySettingsUrl, Q.target = "_blank", Q.rel = "noreferrer", Q.textContent = "Security settings", ye.appendChild(Q);
15409
15415
  }
15410
15416
  for (const Q of J.actions) {
15411
- const B = document.createElement("button");
15412
- B.type = "button", B.className = "pluno-pa-widget__error-retry";
15417
+ const $ = document.createElement("button");
15418
+ $.type = "button", $.className = "pluno-pa-widget__error-retry";
15413
15419
  const ee = K?.has(Q) === !0 || Q === "retry_history" && o.conversationDiagnostics?.queryRequestId != null || Q === "retry_message" && o.isRetrying;
15414
- B.disabled = ee, B.setAttribute("aria-busy", String(ee)), B.textContent = Q === "new_chat" ? ee ? "Starting new chat" : "Start new chat" : ee ? "Trying" : "Try again", ee && B.prepend(pn()), B.addEventListener("click", () => U(Q, Q === "retry_history" ? E : Q === "retry_message" ? b : L)), ye.appendChild(B);
15420
+ $.disabled = ee, $.setAttribute("aria-busy", String(ee)), $.textContent = Q === "new_chat" ? ee ? "Starting new chat" : "Start new chat" : ee ? "Trying" : "Try again", ee && $.prepend(pn()), $.addEventListener("click", () => U(Q, Q === "retry_history" ? E : Q === "retry_message" ? b : L)), ye.appendChild($);
15415
15421
  }
15416
15422
  N.appendChild(ye), Y(N), X = null, H = N;
15417
15423
  }
15418
15424
  for (const C of G?.requests ?? []) {
15419
15425
  if (Fe.has(C.authRequestId)) continue;
15420
- const k = F(C);
15426
+ const k = B(C);
15421
15427
  Y(k), X = null, H = k;
15422
15428
  }
15423
- if (q && !ht) {
15429
+ if (M && !ht) {
15424
15430
  const C = Kl(
15425
- q.request,
15426
- q.onConnect,
15427
- q.presentation
15431
+ M.request,
15432
+ M.onConnect,
15433
+ M.presentation
15428
15434
  );
15429
15435
  Y(C), X = null, H = C;
15430
15436
  }
@@ -15832,15 +15838,15 @@ function Ab(t, e, n, i, s, o, a, r = !0) {
15832
15838
  a
15833
15839
  ), K = JSON.stringify(a), U = document.createElement("div");
15834
15840
  U.className = "pluno-pa-widget__tool-active-content";
15835
- const ge = Ys(), G = document.createElement("details"), q = document.createElement("summary");
15836
- q.className = "pluno-pa-widget__tool-summary";
15841
+ const ge = Ys(), G = document.createElement("details"), M = document.createElement("summary");
15842
+ M.className = "pluno-pa-widget__tool-summary";
15837
15843
  const D = document.createElement("div");
15838
- D.className = "pluno-pa-widget__tool-summary-title", q.appendChild(D), q.addEventListener("click", () => {
15844
+ D.className = "pluno-pa-widget__tool-summary-title", M.appendChild(D), M.addEventListener("click", () => {
15839
15845
  const J = E.dataset.responseGroupKey ?? l;
15840
15846
  G.open ? (n.delete(J), n.add(`closed:${J}`)) : (n.add(J), n.delete(`closed:${J}`)), o(), D.textContent = G.open ? E.dataset.collapsedActivityTitle ?? "Activities" : "Activities";
15841
- }), G.appendChild(q);
15842
- const F = document.createElement("div");
15843
- F.className = "pluno-pa-widget__tool-lines", G.addEventListener("toggle", () => {
15847
+ }), G.appendChild(M);
15848
+ const B = document.createElement("div");
15849
+ B.className = "pluno-pa-widget__tool-lines", G.addEventListener("toggle", () => {
15844
15850
  E.dataset.responseGroupKey, E.classList.toggle("pluno-pa-widget__tool-group--open", G.open), D.textContent = G.open ? "Activities" : E.dataset.collapsedActivityTitle ?? "Activities";
15845
15851
  }), p = {
15846
15852
  node: E,
@@ -15849,9 +15855,9 @@ function Ab(t, e, n, i, s, o, a, r = !0) {
15849
15855
  activeContent: U,
15850
15856
  thinkingStatus: ge,
15851
15857
  details: G,
15852
- summary: q,
15858
+ summary: M,
15853
15859
  summaryTitle: D,
15854
- lines: F,
15860
+ lines: B,
15855
15861
  lineNodes: /* @__PURE__ */ new Map()
15856
15862
  }, i.set(l, p);
15857
15863
  }