@streamoid/agent 0.5.8 → 0.5.9

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/index.js CHANGED
@@ -130381,42 +130381,58 @@ function SidePaneHost({
130381
130381
  }
130382
130382
  );
130383
130383
  }
130384
+ const ACCENT = {
130385
+ Tactix: "#5B5FE3",
130386
+ Artifax: "#8A4CC4",
130387
+ Photogenix: "#0F7D8C",
130388
+ Catalogix: "#A86A12"
130389
+ };
130390
+ function AppChain({ apps: e }) {
130391
+ return e.length === 0 ? null : /* @__PURE__ */ jsx("span", { className: "sa-chain sa-chain", "data-testid": "app-chain", children: e.map((t, n) => /* @__PURE__ */ jsxs("span", { className: "contents", children: [
130392
+ n > 0 && /* @__PURE__ */ jsx("span", { "aria-hidden": !0, className: "sa-chain-arrow", children: "→" }),
130393
+ /* @__PURE__ */ jsxs("span", { className: "sa-chain-pill", children: [
130394
+ /* @__PURE__ */ jsx("span", { "aria-hidden": !0, className: "sa-chain-dot", style: { backgroundColor: ACCENT[t] } }),
130395
+ t
130396
+ ] })
130397
+ ] }, t)) });
130398
+ }
130384
130399
  function QuickPrompt({
130385
130400
  title: e,
130386
130401
  value: t,
130387
130402
  description: n,
130388
130403
  hints: o,
130389
- onClick: s,
130390
- className: l = ""
130404
+ apps: s = [],
130405
+ onClick: l,
130406
+ className: c = ""
130391
130407
  }) {
130392
- const c = t ?? e, f = n || e, h = useId$1(), g = (E) => {
130393
- E.key !== "Enter" && E.key !== " " || (E.preventDefault(), s?.(c));
130394
- }, b = /* @__PURE__ */ jsx(
130408
+ const f = t ?? e, h = n || e, g = useId$1(), b = (T) => {
130409
+ T.key !== "Enter" && T.key !== " " || (T.preventDefault(), l?.(f));
130410
+ }, E = /* @__PURE__ */ jsx(
130395
130411
  ScBriefCard,
130396
130412
  {
130397
130413
  role: "button",
130398
130414
  tabIndex: 0,
130399
130415
  "aria-label": e,
130400
- "aria-describedby": o ? h : void 0,
130401
- description: f,
130416
+ "aria-describedby": o ? g : void 0,
130417
+ description: h,
130402
130418
  className: [
130403
- "h-full cursor-pointer outline-none transition-transform",
130419
+ "cursor-pointer outline-none transition-transform",
130404
130420
  "focus-visible:ring-2 focus-visible:ring-[var(--alias-border-focus)]",
130405
- "focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--alias-surface-base)]",
130406
- o ? "" : l
130421
+ "focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--alias-surface-base)]"
130407
130422
  ].join(" "),
130408
- onClick: () => s?.(c),
130409
- onKeyDown: g
130423
+ onClick: () => l?.(f),
130424
+ onKeyDown: b
130410
130425
  }
130411
- );
130426
+ ), R = s.length > 0 ? /* @__PURE__ */ jsx("div", { className: "mt-[6px] px-[2px]", children: /* @__PURE__ */ jsx(AppChain, { apps: s }) }) : null;
130412
130427
  return o ? (
130413
130428
  // Same hover-reveal idiom as the Products pills below the composer.
130414
- /* @__PURE__ */ jsxs("div", { className: `group relative ${l}`, "data-id": "quick-prompt", children: [
130415
- b,
130429
+ /* @__PURE__ */ jsxs("div", { className: `group relative flex flex-col ${c}`, "data-id": "quick-prompt", children: [
130430
+ E,
130431
+ R,
130416
130432
  /* @__PURE__ */ jsxs(
130417
130433
  "div",
130418
130434
  {
130419
- id: h,
130435
+ id: g,
130420
130436
  role: "tooltip",
130421
130437
  className: "pointer-events-none absolute top-full left-1/2 z-30 mt-[8px] w-[280px] max-w-[90vw] -translate-x-1/2 -translate-y-1 rounded-[12px] border border-[var(--alias-border-subtle)] bg-[var(--alias-surface-base)] px-[12px] py-[10px] text-left opacity-0 shadow-none transition-all duration-150 group-hover:translate-y-0 group-hover:opacity-100 group-focus-within:translate-y-0 group-focus-within:opacity-100 dark:bg-[var(--alias-surface-raised)] dark:shadow-lg",
130422
130438
  children: [
@@ -130440,7 +130456,10 @@ function QuickPrompt({
130440
130456
  }
130441
130457
  )
130442
130458
  ] })
130443
- ) : b;
130459
+ ) : /* @__PURE__ */ jsxs("div", { className: `flex flex-col ${c}`, "data-id": "quick-prompt", children: [
130460
+ E,
130461
+ R
130462
+ ] });
130444
130463
  }
130445
130464
  const FIELD_RE = /^([A-Za-z][A-Za-z0-9 /&-]{0,40}?)\s*:\s*(.+)$/, UPLOAD_VERB_RE = /^(upload|attach|add|drop)\b/i;
130446
130465
  function splitSegments(e) {
@@ -130456,6 +130475,20 @@ function readString(e, t) {
130456
130475
  function fieldsFromInputList(e) {
130457
130476
  return e.split(",").map((t) => t.trim()).filter(Boolean).map((t) => ({ label: capitalize(t), value: "" }));
130458
130477
  }
130478
+ const KNOWN_APPS = ["Tactix", "Artifax", "Photogenix", "Catalogix"];
130479
+ function readBriefApps(e) {
130480
+ const t = e?.apps;
130481
+ if (!Array.isArray(t)) return [];
130482
+ const n = /* @__PURE__ */ new Set(), o = [];
130483
+ for (const s of t) {
130484
+ if (typeof s != "string") continue;
130485
+ const l = KNOWN_APPS.find(
130486
+ (c) => c.toLowerCase() === s.trim().toLowerCase()
130487
+ );
130488
+ !l || n.has(l) || (n.add(l), o.push(l));
130489
+ }
130490
+ return o;
130491
+ }
130459
130492
  function readBriefHints(e) {
130460
130493
  const t = readString(e, "minimal_inputs_needed") || null, n = readString(e, "expected_output") || null;
130461
130494
  return !t && !n ? null : { needs: t, output: n };
@@ -130641,6 +130674,7 @@ function EmptyChatBelow({
130641
130674
  description: R.description,
130642
130675
  icon: R.icon,
130643
130676
  hints: readBriefHints(R.meta),
130677
+ apps: readBriefApps(R.meta),
130644
130678
  onClick: (T) => o?.(R, T),
130645
130679
  className: "flex-1 basis-[220px] min-w-[220px]"
130646
130680
  },