@syntrologie/adapt-product 2.54.0 → 2.55.1

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/cdn.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  onActivate,
3
3
  runtime
4
- } from "./chunk-F6ZXHGAT.js";
4
+ } from "./chunk-QXR5X22R.js";
5
5
  import "./chunk-D2W6UYLT.js";
6
6
 
7
7
  // src/cdn.ts
@@ -342,6 +342,102 @@ var NotifyZ = z.object({
342
342
  icon: z.string().optional().describe("Notification icon (emoji or URL)")
343
343
  }).describe("Optional toast notification shown when this action triggers.").nullable().optional();
344
344
 
345
+ // ../../sdk-contracts/dist/telemetry-events.js
346
+ var entry = (e2) => e2;
347
+ var TELEMETRY_EVENTS = {
348
+ // --- intervention metrics (April 2026) — wire names unchanged, all plan-scope
349
+ syntro_config_served: entry({
350
+ subject: "config",
351
+ verb: "served",
352
+ scope: "plan",
353
+ props: ["tiles", "actions"]
354
+ }),
355
+ syntro_intervention_seen: entry({
356
+ subject: "intervention",
357
+ verb: "seen",
358
+ scope: "plan",
359
+ props: ["intervention_id", "intervention_kind"]
360
+ }),
361
+ syntro_intervention_triggered: entry({
362
+ subject: "intervention",
363
+ verb: "triggered",
364
+ scope: "plan",
365
+ props: ["intervention_id", "intervention_kind"]
366
+ }),
367
+ syntro_intervention_interacted: entry({
368
+ subject: "intervention",
369
+ verb: "interacted",
370
+ scope: "plan",
371
+ props: ["intervention_id", "intervention_kind", "interaction_type"]
372
+ }),
373
+ // --- concierge (FEAT-1789150184) ---------------------------------------
374
+ syntro_concierge_opened: entry({
375
+ subject: "concierge",
376
+ verb: "opened",
377
+ scope: "open",
378
+ props: ["trigger", "page_path"]
379
+ // trigger: ConciergeOpenTrigger
380
+ }),
381
+ syntro_concierge_closed: entry({
382
+ subject: "concierge",
383
+ verb: "closed",
384
+ scope: "open",
385
+ props: ["duration_ms", "reason", "messages_sent", "tiles_dismissed", "pages_viewed"]
386
+ // reason: ConciergeCloseReason
387
+ }),
388
+ syntro_deck_paged: entry({
389
+ subject: "deck",
390
+ verb: "paged",
391
+ scope: "open",
392
+ props: ["from_index", "to_index", "method"]
393
+ // method: DeckPageMethod
394
+ }),
395
+ syntro_tile_dismissed: entry({
396
+ subject: "tile",
397
+ verb: "dismissed",
398
+ scope: "open",
399
+ props: ["tile_id", "tile_kind", "visible_ms"]
400
+ }),
401
+ // The three chat atoms are OPEN-scope: they carry `surface` / `open_id` and
402
+ // only make sense inside a concierge open. An INLINE chat bar (no concierge)
403
+ // still dispatches them on every turn, and the core drops each one and
404
+ // increments the `telemetry_dropped` health counter. That is EXPECTED on an
405
+ // inline-chat host page, not a bug — `telemetry_dropped` there mixes "real
406
+ // defect" with "inline chat has no open scope", so do not alert on it alone.
407
+ syntro_chat_message_sent: entry({
408
+ subject: "chat_message",
409
+ verb: "sent",
410
+ scope: "open",
411
+ props: ["turn", "chars", "via"]
412
+ // via: ChatSendVia
413
+ }),
414
+ syntro_chat_reply_received: entry({
415
+ subject: "chat_reply",
416
+ verb: "received",
417
+ scope: "open",
418
+ props: ["turn", "ttft_ms", "total_ms", "mounts", "cards"]
419
+ }),
420
+ syntro_chat_interrupted: entry({
421
+ subject: "chat",
422
+ verb: "interrupted",
423
+ scope: "open",
424
+ props: ["turn", "after_ms"]
425
+ }),
426
+ syntro_chat_maximize_toggled: entry({
427
+ subject: "chat_maximize",
428
+ verb: "toggled",
429
+ scope: "open",
430
+ props: ["maximized"]
431
+ }),
432
+ syntro_chat_takeover_triggered: entry({
433
+ subject: "chat_takeover",
434
+ verb: "triggered",
435
+ scope: "open",
436
+ props: ["turn"]
437
+ })
438
+ };
439
+ var TELEMETRY_EVENT_NAMES = Object.keys(TELEMETRY_EVENTS);
440
+
345
441
  // ../../sdk-contracts/dist/viewport.js
346
442
  var VIEWPORT_CLASS_ATTR = "data-viewport";
347
443
  var DESKTOP_MIN_WIDTH_PX = 720;
@@ -1068,9 +1164,9 @@ async function runTakeover(config, ports, opts = {}) {
1068
1164
  // 1. host-derived entries (kind:sectionId) — review F2;
1069
1165
  // 2. native kinds superseding a DECLARED host role (two-Q&As
1070
1166
  // bug: our qa next to their attached FAQ).
1071
- order: response2.plan.order.filter((entry) => {
1072
- if (entry.includes(":")) return false;
1073
- const superseded = KIND_SUPERSEDES_ROLE[entry];
1167
+ order: response2.plan.order.filter((entry2) => {
1168
+ if (entry2.includes(":")) return false;
1169
+ const superseded = KIND_SUPERSEDES_ROLE[entry2];
1074
1170
  return !(superseded && declaredRoles.has(superseded));
1075
1171
  }),
1076
1172
  suppress: []
@@ -1678,23 +1774,23 @@ if (typeof customElements !== "undefined" && !customElements.get("syntro-pdp-slo
1678
1774
  }
1679
1775
 
1680
1776
  // src/takeover/renderModules.ts
1681
- function parsePlanEntry(entry) {
1682
- const i2 = entry.indexOf(":");
1683
- if (i2 === -1) return { kind: entry, hostSectionId: null };
1684
- return { kind: entry.slice(0, i2), hostSectionId: entry.slice(i2 + 1) || null };
1777
+ function parsePlanEntry(entry2) {
1778
+ const i2 = entry2.indexOf(":");
1779
+ if (i2 === -1) return { kind: entry2, hostSectionId: null };
1780
+ return { kind: entry2.slice(0, i2), hostSectionId: entry2.slice(i2 + 1) || null };
1685
1781
  }
1686
1782
  function createTakeoverModuleRenderer(deps) {
1687
1783
  return async (plan, onModuleFailed) => {
1688
1784
  const decisionArchetype = deps.getDecisionArchetype();
1689
1785
  const row = deps.getPresetRow(decisionArchetype) ?? {};
1690
1786
  const bakedWork = [];
1691
- plan.order.forEach((entry, index) => {
1692
- const { kind, hostSectionId } = parsePlanEntry(entry);
1787
+ plan.order.forEach((entry2, index) => {
1788
+ const { kind, hostSectionId } = parsePlanEntry(entry2);
1693
1789
  const slotId = `pdp-slot-${kind}`;
1694
1790
  const preset = row[slotId];
1695
1791
  const tag = deps.resolveTag(kind, preset?.variant ?? null);
1696
1792
  if (!tag) {
1697
- deps.telemetry("takeover.module_kind_unknown", { entry, kind });
1793
+ deps.telemetry("takeover.module_kind_unknown", { entry: entry2, kind });
1698
1794
  onModuleFailed(hostSectionId);
1699
1795
  return;
1700
1796
  }
@@ -1703,7 +1799,7 @@ function createTakeoverModuleRenderer(deps) {
1703
1799
  const section = document.createElement("section");
1704
1800
  section.toggleAttribute("data-syntro-pdp-section", true);
1705
1801
  section.setAttribute("data-slot", slotId);
1706
- section.setAttribute("data-syntro-takeover-entry", entry);
1802
+ section.setAttribute("data-syntro-takeover-entry", entry2);
1707
1803
  const header = document.createElement("syntro-pdp-section-header");
1708
1804
  header.eyebrow = task.header.eyebrow ?? "";
1709
1805
  header.title = task.header.title ?? "";
@@ -1724,7 +1820,7 @@ function createTakeoverModuleRenderer(deps) {
1724
1820
  } else {
1725
1821
  slotEl.state = "failed";
1726
1822
  }
1727
- deps.telemetry("takeover.module_failed", { entry, kind });
1823
+ deps.telemetry("takeover.module_failed", { entry: entry2, kind });
1728
1824
  onModuleFailed(hostSectionId);
1729
1825
  };
1730
1826
  const mountPayload = async (payload) => {
@@ -12136,4 +12232,4 @@ export {
12136
12232
  * SPDX-License-Identifier: BSD-3-Clause
12137
12233
  *)
12138
12234
  */
12139
- //# sourceMappingURL=chunk-F6ZXHGAT.js.map
12235
+ //# sourceMappingURL=chunk-QXR5X22R.js.map