@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.
- package/README.md +39 -0
- package/dist/channel-list.d.ts +19 -0
- package/dist/channel-list.d.ts.map +1 -0
- package/dist/channel-list.js +42 -0
- package/dist/channel-list.js.map +1 -0
- package/dist/channel-thread.d.ts +9 -0
- package/dist/channel-thread.d.ts.map +1 -0
- package/dist/channel-thread.js +89 -0
- package/dist/channel-thread.js.map +1 -0
- package/dist/channels.d.ts +74 -0
- package/dist/channels.d.ts.map +1 -0
- package/dist/channels.js +59 -0
- package/dist/channels.js.map +1 -0
- package/dist/chat-header.d.ts +13 -0
- package/dist/chat-header.d.ts.map +1 -0
- package/dist/chat-header.js +8 -0
- package/dist/chat-header.js.map +1 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +1 -0
- package/dist/client.js.map +1 -1
- package/dist/composer.d.ts +7 -0
- package/dist/composer.d.ts.map +1 -0
- package/dist/composer.js +25 -0
- package/dist/composer.js.map +1 -0
- package/dist/context.d.ts +12 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +9 -2
- package/dist/context.js.map +1 -1
- package/dist/copilot-chat.d.ts +14 -1
- package/dist/copilot-chat.d.ts.map +1 -1
- package/dist/copilot-chat.js +15 -23
- package/dist/copilot-chat.js.map +1 -1
- package/dist/copilot-inbox.d.ts +24 -0
- package/dist/copilot-inbox.d.ts.map +1 -0
- package/dist/copilot-inbox.js +51 -0
- package/dist/copilot-inbox.js.map +1 -0
- package/dist/copilot-widget.d.ts +26 -1
- package/dist/copilot-widget.d.ts.map +1 -1
- package/dist/copilot-widget.js +103 -15
- package/dist/copilot-widget.js.map +1 -1
- package/dist/index.d.ts +15 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -1
- package/dist/index.js.map +1 -1
- package/dist/markdown.d.ts +23 -0
- package/dist/markdown.d.ts.map +1 -0
- package/dist/markdown.js +82 -0
- package/dist/markdown.js.map +1 -0
- package/dist/text/normalize.d.ts +11 -0
- package/dist/text/normalize.d.ts.map +1 -0
- package/dist/text/normalize.js +32 -0
- package/dist/text/normalize.js.map +1 -0
- package/dist/text/plain-text.d.ts +3 -0
- package/dist/text/plain-text.d.ts.map +1 -0
- package/dist/text/plain-text.js +20 -0
- package/dist/text/plain-text.js.map +1 -0
- package/dist/text/tool-dump.d.ts +2 -0
- package/dist/text/tool-dump.d.ts.map +1 -0
- package/dist/text/tool-dump.js +30 -0
- package/dist/text/tool-dump.js.map +1 -0
- package/dist/types.d.ts +20 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +14 -0
- package/dist/types.js.map +1 -1
- package/dist/use-channels.d.ts +15 -0
- package/dist/use-channels.d.ts.map +1 -0
- package/dist/use-channels.js +57 -0
- package/dist/use-channels.js.map +1 -0
- package/dist/use-chat.d.ts.map +1 -1
- package/dist/use-chat.js +1 -0
- package/dist/use-chat.js.map +1 -1
- package/package.json +5 -1
package/dist/markdown.js
ADDED
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
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":"
|
|
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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"}
|
package/dist/use-chat.d.ts.map
CHANGED
|
@@ -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;
|
|
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
package/dist/use-chat.js.map
CHANGED
|
@@ -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.
|
|
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",
|