@asteby/metacore-ai-chat 1.2.0 → 1.3.0

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.
Files changed (72) hide show
  1. package/README.md +39 -0
  2. package/dist/channel-list.d.ts +19 -0
  3. package/dist/channel-list.d.ts.map +1 -0
  4. package/dist/channel-list.js +42 -0
  5. package/dist/channel-list.js.map +1 -0
  6. package/dist/channel-thread.d.ts +9 -0
  7. package/dist/channel-thread.d.ts.map +1 -0
  8. package/dist/channel-thread.js +89 -0
  9. package/dist/channel-thread.js.map +1 -0
  10. package/dist/channels.d.ts +74 -0
  11. package/dist/channels.d.ts.map +1 -0
  12. package/dist/channels.js +59 -0
  13. package/dist/channels.js.map +1 -0
  14. package/dist/chat-header.d.ts +13 -0
  15. package/dist/chat-header.d.ts.map +1 -0
  16. package/dist/chat-header.js +8 -0
  17. package/dist/chat-header.js.map +1 -0
  18. package/dist/client.d.ts.map +1 -1
  19. package/dist/client.js +1 -0
  20. package/dist/client.js.map +1 -1
  21. package/dist/composer.d.ts +7 -0
  22. package/dist/composer.d.ts.map +1 -0
  23. package/dist/composer.js +25 -0
  24. package/dist/composer.js.map +1 -0
  25. package/dist/context.d.ts +12 -1
  26. package/dist/context.d.ts.map +1 -1
  27. package/dist/context.js +9 -2
  28. package/dist/context.js.map +1 -1
  29. package/dist/copilot-chat.d.ts +14 -1
  30. package/dist/copilot-chat.d.ts.map +1 -1
  31. package/dist/copilot-chat.js +15 -23
  32. package/dist/copilot-chat.js.map +1 -1
  33. package/dist/copilot-inbox.d.ts +24 -0
  34. package/dist/copilot-inbox.d.ts.map +1 -0
  35. package/dist/copilot-inbox.js +51 -0
  36. package/dist/copilot-inbox.js.map +1 -0
  37. package/dist/copilot-widget.d.ts +26 -1
  38. package/dist/copilot-widget.d.ts.map +1 -1
  39. package/dist/copilot-widget.js +103 -15
  40. package/dist/copilot-widget.js.map +1 -1
  41. package/dist/index.d.ts +15 -1
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +12 -1
  44. package/dist/index.js.map +1 -1
  45. package/dist/markdown.d.ts +23 -0
  46. package/dist/markdown.d.ts.map +1 -0
  47. package/dist/markdown.js +82 -0
  48. package/dist/markdown.js.map +1 -0
  49. package/dist/text/normalize.d.ts +11 -0
  50. package/dist/text/normalize.d.ts.map +1 -0
  51. package/dist/text/normalize.js +32 -0
  52. package/dist/text/normalize.js.map +1 -0
  53. package/dist/text/plain-text.d.ts +3 -0
  54. package/dist/text/plain-text.d.ts.map +1 -0
  55. package/dist/text/plain-text.js +20 -0
  56. package/dist/text/plain-text.js.map +1 -0
  57. package/dist/text/tool-dump.d.ts +2 -0
  58. package/dist/text/tool-dump.d.ts.map +1 -0
  59. package/dist/text/tool-dump.js +30 -0
  60. package/dist/text/tool-dump.js.map +1 -0
  61. package/dist/types.d.ts +20 -0
  62. package/dist/types.d.ts.map +1 -1
  63. package/dist/types.js +14 -0
  64. package/dist/types.js.map +1 -1
  65. package/dist/use-channels.d.ts +15 -0
  66. package/dist/use-channels.d.ts.map +1 -0
  67. package/dist/use-channels.js +57 -0
  68. package/dist/use-channels.js.map +1 -0
  69. package/dist/use-chat.d.ts.map +1 -1
  70. package/dist/use-chat.js +1 -0
  71. package/dist/use-chat.js.map +1 -1
  72. package/package.json +5 -1
@@ -0,0 +1,82 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { memo, useState } from 'react';
3
+ import ReactMarkdown, { defaultUrlTransform } from 'react-markdown';
4
+ import remarkGfm from 'remark-gfm';
5
+ import { Check, Copy } from 'lucide-react';
6
+ import { AGENT_FOCUS } from './surfaces';
7
+ import { closeOpenFences, normalizeMarkdown } from './text/normalize';
8
+ const cx = (...c) => c.filter(Boolean).join(' ');
9
+ function textOf(node) {
10
+ if (node == null || typeof node === 'boolean')
11
+ return '';
12
+ if (typeof node === 'string' || typeof node === 'number')
13
+ return String(node);
14
+ if (Array.isArray(node))
15
+ return node.map(textOf).join('');
16
+ if (typeof node === 'object' && 'props' in node)
17
+ return textOf(node.props.children);
18
+ return '';
19
+ }
20
+ function CodeBlock({ children, copyLabel, copiedLabel }) {
21
+ const [copied, setCopied] = useState(false);
22
+ const copy = async () => {
23
+ try {
24
+ await navigator.clipboard.writeText(textOf(children).replace(/\n$/, ''));
25
+ setCopied(true);
26
+ setTimeout(() => setCopied(false), 1500);
27
+ }
28
+ catch {
29
+ /* clipboard unavailable (insecure context / denied) */
30
+ }
31
+ };
32
+ return (_jsxs("div", { className: "group relative my-2", children: [_jsx("pre", { className: "overflow-x-auto rounded-lg border border-[color:var(--border-rim,var(--border))] bg-background/50 p-3 pr-12 text-xs leading-relaxed", children: children }), _jsx("button", { type: "button", onClick: () => void copy(), "aria-label": copied ? copiedLabel : copyLabel, title: copied ? copiedLabel : copyLabel, className: cx('absolute right-1.5 top-1.5 inline-flex size-8 items-center justify-center rounded-md border bg-background/80 text-muted-foreground transition-opacity hover:text-foreground', 'opacity-100 md:opacity-0 md:group-hover:opacity-100 md:focus-visible:opacity-100', AGENT_FOCUS), children: copied ? _jsx(Check, { className: "size-3.5", "aria-hidden": true }) : _jsx(Copy, { className: "size-3.5", "aria-hidden": true }) })] }));
33
+ }
34
+ const SAFE_IMG = /^(https?:\/\/|\/(?!\/))/i;
35
+ function buildComponents(opts) {
36
+ const copyLabel = opts.copyLabel ?? 'Copiar código';
37
+ const copiedLabel = opts.copiedLabel ?? 'Copiado';
38
+ return {
39
+ p: (p) => _jsx("p", { className: "my-1.5 leading-relaxed first:mt-0 last:mb-0", ...strip(p) }),
40
+ h1: (p) => _jsx("h3", { className: "mb-1 mt-3 text-base font-semibold first:mt-0", ...strip(p) }),
41
+ h2: (p) => _jsx("h3", { className: "mb-1 mt-3 text-[15px] font-semibold first:mt-0", ...strip(p) }),
42
+ h3: (p) => _jsx("h4", { className: "mb-1 mt-2.5 text-sm font-semibold first:mt-0", ...strip(p) }),
43
+ h4: (p) => _jsx("h5", { className: "mb-1 mt-2 text-sm font-medium first:mt-0", ...strip(p) }),
44
+ h5: (p) => _jsx("h5", { className: "mb-1 mt-2 text-sm font-medium first:mt-0", ...strip(p) }),
45
+ h6: (p) => _jsx("h5", { className: "mb-1 mt-2 text-sm font-medium first:mt-0", ...strip(p) }),
46
+ ul: (p) => _jsx("ul", { className: "my-1.5 list-disc space-y-1 pl-5", ...strip(p) }),
47
+ ol: (p) => _jsx("ol", { className: "my-1.5 list-decimal space-y-1 pl-5", ...strip(p) }),
48
+ li: (p) => _jsx("li", { className: "leading-snug marker:text-muted-foreground", ...strip(p) }),
49
+ hr: () => _jsx("hr", { className: "my-3 border-border/60" }),
50
+ blockquote: (p) => (_jsx("blockquote", { className: "my-2 border-l-2 border-primary/40 pl-3 text-muted-foreground", ...strip(p) })),
51
+ a: ({ href, children }) => {
52
+ const url = href ?? '';
53
+ return (_jsx("a", { href: url, target: "_blank", rel: "noopener noreferrer nofollow", className: cx('text-primary underline underline-offset-2 hover:opacity-80', AGENT_FOCUS), onClick: (e) => {
54
+ if (opts.onLinkClick?.(url, e))
55
+ e.preventDefault();
56
+ }, children: children }));
57
+ },
58
+ img: ({ src, alt }) => typeof src === 'string' && SAFE_IMG.test(src) ? (_jsx("img", { src: src, alt: alt ?? '', loading: "lazy", referrerPolicy: "no-referrer", className: "my-2 max-w-full rounded-lg" })) : (_jsx("span", { className: "text-muted-foreground", children: alt })),
59
+ pre: ({ children }) => (_jsx(CodeBlock, { copyLabel: copyLabel, copiedLabel: copiedLabel, children: children })),
60
+ code: ({ className, children }) => /language-/.test(className ?? '') || String(children).includes('\n') ? (_jsx("code", { className: cx('font-mono', className), children: children })) : (_jsx("code", { className: "rounded bg-background/50 px-1 py-0.5 font-mono text-[0.85em]", children: children })),
61
+ table: ({ children }) => (_jsx("div", { className: "my-2 max-w-full overflow-x-auto rounded-lg border border-[color:var(--border-rim,var(--border))]", children: _jsx("table", { className: "w-full border-collapse text-xs", children: children }) })),
62
+ thead: (p) => _jsx("thead", { className: "bg-muted/60", ...strip(p) }),
63
+ th: (p) => _jsx("th", { className: "whitespace-nowrap border-b px-2.5 py-1.5 text-left font-semibold", ...strip(p) }),
64
+ td: (p) => _jsx("td", { className: "border-b border-border/40 px-2.5 py-1.5 align-top", ...strip(p) }),
65
+ };
66
+ }
67
+ /** Drop react-markdown's `node` prop so it never reaches the DOM. */
68
+ function strip(p) {
69
+ const { node: _node, ...rest } = p;
70
+ return rest;
71
+ }
72
+ /**
73
+ * Safe Markdown + GFM for AI replies. No raw HTML (react-markdown drops it),
74
+ * dangerous URL schemes are neutralised by `defaultUrlTransform`, links open
75
+ * with `noopener noreferrer`, images are limited to http(s)/same-origin.
76
+ * Styled with theme tokens only (no typography plugin needed).
77
+ */
78
+ export const Markdown = memo(function Markdown({ content, className, streaming, onLinkClick, copyLabel, copiedLabel }) {
79
+ const source = normalizeMarkdown(streaming ? closeOpenFences(content) : content);
80
+ return (_jsx("div", { className: cx('min-w-0 break-words text-sm', className), children: _jsx(ReactMarkdown, { remarkPlugins: [remarkGfm], urlTransform: defaultUrlTransform, components: buildComponents({ onLinkClick, copyLabel, copiedLabel }), children: source }) }));
81
+ });
82
+ //# sourceMappingURL=markdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../src/markdown.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Model replies drift from strict GFM. Normalise them so lists and bullets
3
+ * render, and leaked backend tool dumps never reach the user.
4
+ */
5
+ export declare function normalizeMarkdown(content: string): string;
6
+ /**
7
+ * Streaming-friendly: while a reply is still being typed in, an odd number of
8
+ * ``` fences would swallow everything after them as code. Close it virtually.
9
+ */
10
+ export declare function closeOpenFences(text: string): string;
11
+ //# sourceMappingURL=normalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/text/normalize.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAiBzD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGpD"}
@@ -0,0 +1,32 @@
1
+ import { scrubToolDump } from './tool-dump';
2
+ /**
3
+ * Model replies drift from strict GFM. Normalise them so lists and bullets
4
+ * render, and leaked backend tool dumps never reach the user.
5
+ */
6
+ export function normalizeMarkdown(content) {
7
+ let s = scrubToolDump(content).replace(/\r\n/g, '\n');
8
+ // Drop leaked Go fmt map dumps (legacy bad fallbacks).
9
+ if (s.includes('map[') && (s.includes('columns:') || s.includes('map[name:'))) {
10
+ s = s
11
+ .split('\n')
12
+ .filter((line) => !line.includes('map[') || (!line.includes('columns:') && !line.includes('map[name:')))
13
+ .join('\n')
14
+ .trim();
15
+ }
16
+ // Line-start bullets (• ● ▪ ◦) → GFM "- "
17
+ s = s.replace(/^[\t ]*[•●▪◦]\s+/gm, '- ');
18
+ // Inline " • item" piles → one item per line
19
+ s = s.replace(/([^\n])\s+[•●▪◦]\s+/g, '$1\n- ');
20
+ // Blank line before a list so GFM parses it
21
+ s = s.replace(/([^\n])\n(- )/g, '$1\n\n$2');
22
+ return s;
23
+ }
24
+ /**
25
+ * Streaming-friendly: while a reply is still being typed in, an odd number of
26
+ * ``` fences would swallow everything after them as code. Close it virtually.
27
+ */
28
+ export function closeOpenFences(text) {
29
+ const fences = text.match(/^[ \t]*```/gm)?.length ?? 0;
30
+ return fences % 2 === 1 ? `${text}\n\`\`\`` : text;
31
+ }
32
+ //# sourceMappingURL=normalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/text/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,IAAI,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IACrD,uDAAuD;IACvD,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QAC9E,CAAC,GAAG,CAAC;aACF,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;aACvG,IAAI,CAAC,IAAI,CAAC;aACV,IAAI,EAAE,CAAA;IACX,CAAC;IACD,0CAA0C;IAC1C,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAA;IACzC,6CAA6C;IAC7C,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAA;IAC/C,4CAA4C;IAC5C,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAA;IAC3C,OAAO,CAAC,CAAA;AACV,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC,CAAA;IACtD,OAAO,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAA;AACpD,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Strip markdown / noise for inbox & session list previews. */
2
+ export declare function stripMarkdownLite(input: string): string;
3
+ //# sourceMappingURL=plain-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plain-text.d.ts","sourceRoot":"","sources":["../../src/text/plain-text.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAiBvD"}
@@ -0,0 +1,20 @@
1
+ /** Strip markdown / noise for inbox & session list previews. */
2
+ export function stripMarkdownLite(input) {
3
+ let s = (input || '').replace(/\r\n/g, '\n');
4
+ s = s.replace(/```[\s\S]*?```/g, ' ');
5
+ s = s.replace(/`([^`]+)`/g, '$1');
6
+ s = s.replace(/!\[[^\]]*\]\([^)]+\)/g, ' ');
7
+ s = s.replace(/\[([^\]]+)\]\([^)]+\)/g, '$1');
8
+ s = s.replace(/\*\*([^*]+)\*\*/g, '$1');
9
+ s = s.replace(/__([^_]+)__/g, '$1');
10
+ s = s.replace(/(^|[^*\w])\*([^*\n]+)\*(?!\*)/g, '$1$2');
11
+ s = s.replace(/(^|[^_\w])_([^_\n]+)_(?!_)/g, '$1$2');
12
+ s = s.replace(/^#{1,6}\s+/gm, '');
13
+ s = s.replace(/^>\s?/gm, '');
14
+ s = s.replace(/^[-*+]\s+/gm, '');
15
+ s = s.replace(/^\d+\.\s+/gm, '');
16
+ s = s.replace(/\n+/g, ' ');
17
+ s = s.replace(/\s+/g, ' ').trim();
18
+ return s;
19
+ }
20
+ //# sourceMappingURL=plain-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plain-text.js","sourceRoot":"","sources":["../../src/text/plain-text.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAC5C,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAA;IACrC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;IACjC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAA;IAC3C,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAA;IAC7C,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAA;IACvC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;IACnC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,gCAAgC,EAAE,MAAM,CAAC,CAAA;IACvD,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAA;IACpD,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;IACjC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;IAC5B,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAA;IAChC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAA;IAChC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC1B,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IACjC,OAAO,CAAC,CAAA;AACV,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function scrubToolDump(content: string): string;
2
+ //# sourceMappingURL=tool-dump.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-dump.d.ts","sourceRoot":"","sources":["../../src/text/tool-dump.ts"],"names":[],"mappings":"AAeA,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAYrD"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Older Aby replies (and the sidebar's last_message) can carry the backend's
3
+ * raw tool fallback: a query result rendered key by key —
4
+ *
5
+ * - **Count:** 1
6
+ * **Records:**
7
+ * - Almacén Uno · ALM001
8
+ * - **Model:** warehouses
9
+ *
10
+ * The backend now words it as prose; this keeps persisted history readable:
11
+ * drop the internal keys (model key, bare count, "Records:" header) and keep
12
+ * the record lines as a plain list.
13
+ */
14
+ const DUMP_KEY_LINE = /^\s*(?:[-*]\s+)?\*\*(?:Count|Model|Records)\s*:?\s*\*\*\s*:?.*$/i;
15
+ export function scrubToolDump(content) {
16
+ if (!content || !/\*\*(?:Count|Model|Records)\b/i.test(content))
17
+ return content;
18
+ const out = [];
19
+ for (const line of content.split('\n')) {
20
+ if (DUMP_KEY_LINE.test(line))
21
+ continue;
22
+ // Record items were nested under "Records:" — lift them to the top level.
23
+ out.push(line.replace(/^\s{2,}([-*]\s)/, '$1'));
24
+ }
25
+ return out
26
+ .join('\n')
27
+ .replace(/\n{3,}/g, '\n\n')
28
+ .trim();
29
+ }
30
+ //# sourceMappingURL=tool-dump.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-dump.js","sourceRoot":"","sources":["../../src/text/tool-dump.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,aAAa,GAAG,kEAAkE,CAAA;AAExF,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,IAAI,CAAC,OAAO,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAA;IAC/E,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAQ;QACtC,0EAA0E;QAC1E,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAA;IACjD,CAAC;IACD,OAAO,GAAG;SACP,IAAI,CAAC,IAAI,CAAC;SACV,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;SAC1B,IAAI,EAAE,CAAA;AACX,CAAC"}
package/dist/types.d.ts CHANGED
@@ -35,6 +35,8 @@ export interface ChatMessage {
35
35
  fresh?: boolean;
36
36
  /** The turn failed; `content` holds the user-facing reason. */
37
37
  error?: boolean;
38
+ /** The backend answered this turn from demo data (drives the demo badge). */
39
+ demo?: boolean;
38
40
  }
39
41
  export interface SendMessageInput {
40
42
  message: string;
@@ -47,6 +49,8 @@ export interface SendMessageResult {
47
49
  reply: string;
48
50
  proposals?: ChatProposal[];
49
51
  attachments?: ChatAttachment[];
52
+ /** The reply was produced from demo data; shows the demo badge. */
53
+ demo?: boolean;
50
54
  }
51
55
  export interface ChatSessionSummary {
52
56
  id: string;
@@ -107,6 +111,22 @@ export interface CopilotLabels {
107
111
  historyError: string;
108
112
  sessions: string;
109
113
  newSession: string;
114
+ /** Channel inbox (see `ChannelAdapter`). */
115
+ channels: string;
116
+ back: string;
117
+ expand: string;
118
+ collapse: string;
119
+ openFullscreen: string;
120
+ selectChannel: string;
121
+ noChannels: string;
122
+ channelsError: string;
123
+ messagesError: string;
124
+ loadingMessages: string;
125
+ online: string;
126
+ unread: string;
127
+ sendFailed: string;
128
+ /** BCP-47 locale for relative times in the channel list. */
129
+ locale: string;
110
130
  }
111
131
  export declare const DEFAULT_LABELS: CopilotLabels;
112
132
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,CAAA;IAC5C,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,oFAAoF;AACpF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,CAAA;CAC7C;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,cAAc,EAAE,CAAA;IAC9B,SAAS,CAAC,EAAE,YAAY,EAAE,CAAA;IAC1B,qEAAqE;IACrE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,+DAA+D;IAC/D,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,6EAA6E;IAC7E,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,WAAW,CAAC,EAAE,cAAc,EAAE,CAAA;IAC9B,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,YAAY,EAAE,CAAA;IAC1B,WAAW,CAAC,EAAE,cAAc,EAAE,CAAA;IAC9B,mEAAmE;IACnE,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACzD,YAAY,CAAC,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAA;IAC9C,WAAW,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IACvD,cAAc,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7D;AAED,mEAAmE;AACnE,MAAM,WAAW,QAAQ;IACvB,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAA;IAC7D,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAA;CAC/E;AAED,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,2DAA2D;IAC3D,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,SAAS,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAA;CACf;AAED,eAAO,MAAM,cAAc,EAAE,aAiC5B,CAAA"}
package/dist/types.js CHANGED
@@ -17,5 +17,19 @@ export const DEFAULT_LABELS = {
17
17
  historyError: 'No se pudo cargar la conversación.',
18
18
  sessions: 'Conversaciones',
19
19
  newSession: 'Conversación actual',
20
+ channels: 'Conversaciones',
21
+ back: 'Volver',
22
+ expand: 'Ampliar a pantalla completa',
23
+ collapse: 'Reducir',
24
+ openFullscreen: 'Abrir vista completa',
25
+ selectChannel: 'Selecciona una conversación',
26
+ noChannels: 'Aún no hay conversaciones.',
27
+ channelsError: 'No se pudieron cargar las conversaciones.',
28
+ messagesError: 'No se pudieron cargar los mensajes.',
29
+ loadingMessages: 'Cargando mensajes',
30
+ online: 'En línea',
31
+ unread: 'sin leer',
32
+ sendFailed: 'No se pudo enviar el mensaje.',
33
+ locale: 'es',
20
34
  };
21
35
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAuHA,MAAM,CAAC,MAAM,cAAc,GAAkB;IAC3C,WAAW,EAAE,qBAAqB;IAClC,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,iBAAiB;IACxB,QAAQ,EAAE,WAAW;IACrB,MAAM,EAAE,0CAA0C;IAClD,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,oBAAoB;IAC7B,UAAU,EAAE,mBAAmB;IAC/B,KAAK,EAAE,mDAAmD;IAC1D,KAAK,EAAE,YAAY;IACnB,OAAO,EAAE,4DAA4D;IACrE,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,qDAAqD;IAClE,YAAY,EAAE,oCAAoC;IAClD,QAAQ,EAAE,gBAAgB;IAC1B,UAAU,EAAE,qBAAqB;CAClC,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA2IA,MAAM,CAAC,MAAM,cAAc,GAAkB;IAC3C,WAAW,EAAE,qBAAqB;IAClC,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,iBAAiB;IACxB,QAAQ,EAAE,WAAW;IACrB,MAAM,EAAE,0CAA0C;IAClD,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,oBAAoB;IAC7B,UAAU,EAAE,mBAAmB;IAC/B,KAAK,EAAE,mDAAmD;IAC1D,KAAK,EAAE,YAAY;IACnB,OAAO,EAAE,4DAA4D;IACrE,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,qDAAqD;IAClE,YAAY,EAAE,oCAAoC;IAClD,QAAQ,EAAE,gBAAgB;IAC1B,UAAU,EAAE,qBAAqB;IACjC,QAAQ,EAAE,gBAAgB;IAC1B,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,6BAA6B;IACrC,QAAQ,EAAE,SAAS;IACnB,cAAc,EAAE,sBAAsB;IACtC,aAAa,EAAE,6BAA6B;IAC5C,UAAU,EAAE,4BAA4B;IACxC,aAAa,EAAE,2CAA2C;IAC1D,aAAa,EAAE,qCAAqC;IACpD,eAAe,EAAE,mBAAmB;IACpC,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,UAAU;IAClB,UAAU,EAAE,+BAA+B;IAC3C,MAAM,EAAE,IAAI;CACb,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { type ChannelAdapter, type ChatChannel } from './channels';
2
+ /**
3
+ * Channel list over the injected adapter: loads, subscribes to live events and
4
+ * tracks unread counts. Mount it above the widget so the FAB badge stays live
5
+ * while the panel is closed. A null adapter is inert.
6
+ */
7
+ export declare function useChannels(adapter: ChannelAdapter | null | undefined, activeId: string | null): {
8
+ reload: () => void;
9
+ clearUnread: (id: string) => void;
10
+ totalUnread: number;
11
+ channels: ChatChannel[];
12
+ loading: boolean;
13
+ error: boolean;
14
+ };
15
+ //# sourceMappingURL=use-channels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-channels.d.ts","sourceRoot":"","sources":["../src/use-channels.ts"],"names":[],"mappings":"AACA,OAAO,EAAmC,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AA0BnG;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;;sBAqCxD,MAAM;;cAjEjC,WAAW,EAAE;aACd,OAAO;WACT,OAAO;EAsEf"}
@@ -0,0 +1,57 @@
1
+ import { useCallback, useEffect, useMemo, useReducer, useRef } from 'react';
2
+ import { applyChannelEvent, sortChannels } from './channels';
3
+ function reducer(s, a) {
4
+ switch (a.type) {
5
+ case 'loading':
6
+ return { ...s, loading: true, error: false };
7
+ case 'loaded':
8
+ return { channels: sortChannels(a.channels), loading: false, error: false };
9
+ case 'failed':
10
+ return { ...s, loading: false, error: true };
11
+ case 'patch':
12
+ return { ...s, channels: a.fn(s.channels) };
13
+ }
14
+ }
15
+ /**
16
+ * Channel list over the injected adapter: loads, subscribes to live events and
17
+ * tracks unread counts. Mount it above the widget so the FAB badge stays live
18
+ * while the panel is closed. A null adapter is inert.
19
+ */
20
+ export function useChannels(adapter, activeId) {
21
+ const [state, dispatch] = useReducer(reducer, { channels: [], loading: false, error: false });
22
+ const activeRef = useRef(activeId);
23
+ activeRef.current = activeId;
24
+ const reload = useCallback(() => {
25
+ if (!adapter)
26
+ return;
27
+ dispatch({ type: 'loading' });
28
+ adapter.listChannels().then((channels) => dispatch({ type: 'loaded', channels }), () => dispatch({ type: 'failed' }));
29
+ }, [adapter]);
30
+ useEffect(() => {
31
+ if (!adapter)
32
+ return;
33
+ let live = true;
34
+ dispatch({ type: 'loading' });
35
+ adapter.listChannels().then((channels) => live && dispatch({ type: 'loaded', channels }), () => live && dispatch({ type: 'failed' }));
36
+ const off = adapter.subscribe?.((event) => {
37
+ if (!live)
38
+ return;
39
+ if (event.type === 'channels') {
40
+ reload();
41
+ return;
42
+ }
43
+ dispatch({ type: 'patch', fn: (c) => applyChannelEvent(c, event, activeRef.current) });
44
+ });
45
+ return () => {
46
+ live = false;
47
+ off?.();
48
+ };
49
+ }, [adapter, reload]);
50
+ /** Clear the badge locally when a channel is opened (the adapter's `markRead` persists it). */
51
+ const clearUnread = useCallback((id) => {
52
+ dispatch({ type: 'patch', fn: (c) => c.map((x) => (x.id === id && x.unread ? { ...x, unread: 0 } : x)) });
53
+ }, []);
54
+ const totalUnread = useMemo(() => state.channels.reduce((n, c) => n + (c.unread ?? 0), 0), [state.channels]);
55
+ return { ...state, reload, clearUnread, totalUnread };
56
+ }
57
+ //# sourceMappingURL=use-channels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-channels.js","sourceRoot":"","sources":["../src/use-channels.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-chat.d.ts","sourceRoot":"","sources":["../src/use-chat.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,iEAAiE;AACjE,wBAAgB,OAAO,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI;;;iBAkCvC,MAAM,gBAAgB,cAAc,EAAE;iBAkCxC,MAAM,WAAW,OAAO;;;;;;;;EAgCtC"}
1
+ {"version":3,"file":"use-chat.d.ts","sourceRoot":"","sources":["../src/use-chat.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,iEAAiE;AACjE,wBAAgB,OAAO,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI;;;iBAkCvC,MAAM,gBAAgB,cAAc,EAAE;iBAmCxC,MAAM,WAAW,OAAO;;;;;;;;EAgCtC"}
package/dist/use-chat.js CHANGED
@@ -61,6 +61,7 @@ export function useChat(initialSessionId) {
61
61
  content: res.reply,
62
62
  proposals: normalizeProposals(res.proposals),
63
63
  attachments: res.attachments,
64
+ demo: res.demo,
64
65
  },
65
66
  });
66
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use-chat.js","sourceRoot":"","sources":["../src/use-chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-chat.js","sourceRoot":"","sources":["../src/use-chat.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@asteby/metacore-ai-chat",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "Metacore copilot chat — floating widget, chat panel, draggable FAB and an injectable chat client (HTTP, permissions, branding, suggestions)",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -42,6 +42,10 @@
42
42
  "publishConfig": {
43
43
  "access": "public"
44
44
  },
45
+ "dependencies": {
46
+ "react-markdown": "^10.1.0",
47
+ "remark-gfm": "^4.0.1"
48
+ },
45
49
  "scripts": {
46
50
  "build": "tsc -p tsconfig.json",
47
51
  "dev": "tsc -w -p tsconfig.json",