@guuey/chat 0.16.7 → 0.16.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/README.md +23 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/native/markdown.d.ts +12 -0
- package/dist/native/markdown.d.ts.map +1 -1
- package/dist/native/markdown.js +21 -0
- package/dist/react/components.d.ts +1 -1
- package/dist/react/components.d.ts.map +1 -1
- package/dist/react/guuey-chat.d.ts +14 -1
- package/dist/react/guuey-chat.d.ts.map +1 -1
- package/dist/react/guuey-chat.js +27 -7
- package/dist/react/markdown.d.ts +9 -0
- package/dist/react/markdown.d.ts.map +1 -1
- package/dist/react/markdown.js +78 -2
- package/dist/react/theme-css.d.ts +8 -0
- package/dist/react/theme-css.d.ts.map +1 -1
- package/dist/react/theme-css.js +21 -13
- package/dist/react/transcript.d.ts +8 -0
- package/dist/react/transcript.d.ts.map +1 -1
- package/dist/react/transcript.js +2 -2
- package/dist/richtext-table.d.ts +26 -0
- package/dist/richtext-table.d.ts.map +1 -0
- package/dist/richtext-table.js +11 -0
- package/dist/strings.d.ts +8 -0
- package/dist/strings.d.ts.map +1 -1
- package/dist/strings.js +3 -0
- package/dist/theme.d.ts +24 -0
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +44 -2
- package/package.json +5 -5
- package/src/index.ts +1 -0
- package/src/native/markdown.tsx +57 -0
- package/src/react/components.tsx +1 -0
- package/src/react/guuey-chat.tsx +70 -4
- package/src/react/markdown.tsx +103 -1
- package/src/react/theme-css.ts +21 -13
- package/src/react/transcript.tsx +10 -1
- package/src/richtext-table.ts +30 -0
- package/src/strings.ts +13 -0
- package/src/theme.ts +48 -2
- package/styles.css +171 -98
package/README.md
CHANGED
|
@@ -44,8 +44,29 @@ jump-to-latest release, windowed rendering for long transcripts,
|
|
|
44
44
|
`aria-live`/keyboard/focus accessibility, sanitized markdown (typed AST —
|
|
45
45
|
raw HTML is unrepresentable, links are scheme-allowlisted), generative-UI
|
|
46
46
|
views mounting through `@guuey/mcp-apps-host`'s sandboxed host, and theming
|
|
47
|
-
from the `GuueyChatTheme` token schema (
|
|
48
|
-
|
|
47
|
+
from the `GuueyChatTheme` token schema (`GUUEY_CHAT_THEME` ships beside the
|
|
48
|
+
neutral default).
|
|
49
|
+
|
|
50
|
+
**Looking native is the default, not a theming project.** The unthemed kit
|
|
51
|
+
is monochrome — ink, no vendor accent — so a zero-config embed disappears
|
|
52
|
+
into your product. Two knobs cover most brand work before any theme
|
|
53
|
+
exists:
|
|
54
|
+
|
|
55
|
+
```tsx
|
|
56
|
+
<GuueyChat surface="bare" … /> // no message cards — transcript sits on YOUR background
|
|
57
|
+
<GuueyChat composer={false} … /> // bring your own input; drive sends via the ref handle
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
The two theming channels **compose** — set any `--guuey-chat-*` CSS custom
|
|
61
|
+
property on an ancestor and it wins per-token over the resolved `theme`
|
|
62
|
+
prop (the kit stamps its resolved tokens under internal `--_guuey-chat-*`
|
|
63
|
+
names and reads `var(--guuey-chat-<t>, var(--_guuey-chat-<t>))`):
|
|
64
|
+
|
|
65
|
+
```css
|
|
66
|
+
.my-app-chat {
|
|
67
|
+
--guuey-chat-accent: var(--brand);
|
|
68
|
+
}
|
|
69
|
+
```
|
|
49
70
|
|
|
50
71
|
Override one row without forfeiting the rest:
|
|
51
72
|
|
package/dist/index.d.ts
CHANGED
|
@@ -16,6 +16,6 @@ export { defaultChatStrings, humanizeToolName, type ChatStrings, } from "./strin
|
|
|
16
16
|
export { transcriptInputsFromHistory } from "./history-inputs.js";
|
|
17
17
|
export { buildHitlAnswer, grantModeDisplay, hitlPromptsFromFold, type HitlAnswerRecord, type HitlPromptAction, } from "./hitl.js";
|
|
18
18
|
export { OAUTH_LINK_PARAMS, OAUTH_RETURN_PARAMS, OAUTH_SCHEME, oauthAuthorizeAsk, oauthAuthorizeHref, parseOAuthReturn, stripOAuthReturn, type OAuthAuthorizeAsk, type OAuthReturn, } from "./oauth.js";
|
|
19
|
-
export { DEFAULT_CHAT_THEME, GUUEY_CHAT_THEME, GuueyChatAccentRamp, GuueyChatErrorRamp, GuueyChatPalette, GuueyChatRamps, GuueyChatRampSet, GuueyChatTheme, GuueyChatToneRamp, resolveTheme, } from "./theme.js";
|
|
19
|
+
export { DEFAULT_CHAT_THEME, GUUEY_CHAT_THEME, GuueyChatAccentRamp, GuueyChatErrorRamp, GuueyChatPalette, GuueyChatRamps, GuueyChatRampSet, GuueyChatTheme, GuueyChatToneRamp, resolveTheme, resolveCourtTheme, } from "./theme.js";
|
|
20
20
|
export type { ChatDebugEvent, CitationsItem, CodeItem, CompactionItem, DataResultItem, DisplayItem, ErrorItem, HistoryBoundaryItem, ItemKey, HitlPromptInput, HitlPromptItem, MediaItem, NoticeItem, ProfilePromptInput, ProfilePromptItem, PromptItem, PromptItemInput, ReasoningItem, StatusLineItem, TextItem, ToolGroupItem, ToolItem, TranscriptInputs, TranscriptMessage, TranscriptOverrides, TranscriptPlan, PlanViewSummary, UnknownItem, UserMessageItem, ViewMountItem, ViewRefItem, } from "./types.js";
|
|
21
21
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EACL,aAAa,EACb,cAAc,GACf,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,UAAU,EACV,KAAK,yBAAyB,EAC9B,WAAW,EACX,KAAK,gBAAgB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,WAAW,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,KAAK,WAAW,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EACL,aAAa,EACb,cAAc,GACf,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,UAAU,EACV,KAAK,yBAAyB,EAC9B,WAAW,EACX,KAAK,gBAAgB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,WAAW,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,KAAK,WAAW,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,cAAc,EACd,aAAa,EACb,QAAQ,EACR,cAAc,EACd,cAAc,EACd,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,OAAO,EACP,eAAe,EACf,cAAc,EACd,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,aAAa,EACb,cAAc,EACd,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,WAAW,EACX,eAAe,EACf,aAAa,EACb,WAAW,GACZ,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -16,4 +16,4 @@ export { defaultChatStrings, humanizeToolName, } from "./strings.js";
|
|
|
16
16
|
export { transcriptInputsFromHistory } from "./history-inputs.js";
|
|
17
17
|
export { buildHitlAnswer, grantModeDisplay, hitlPromptsFromFold, } from "./hitl.js";
|
|
18
18
|
export { OAUTH_LINK_PARAMS, OAUTH_RETURN_PARAMS, OAUTH_SCHEME, oauthAuthorizeAsk, oauthAuthorizeHref, parseOAuthReturn, stripOAuthReturn, } from "./oauth.js";
|
|
19
|
-
export { DEFAULT_CHAT_THEME, GUUEY_CHAT_THEME, GuueyChatAccentRamp, GuueyChatErrorRamp, GuueyChatPalette, GuueyChatRamps, GuueyChatRampSet, GuueyChatTheme, GuueyChatToneRamp, resolveTheme, } from "./theme.js";
|
|
19
|
+
export { DEFAULT_CHAT_THEME, GUUEY_CHAT_THEME, GuueyChatAccentRamp, GuueyChatErrorRamp, GuueyChatPalette, GuueyChatRamps, GuueyChatRampSet, GuueyChatTheme, GuueyChatToneRamp, resolveTheme, resolveCourtTheme, } from "./theme.js";
|
|
@@ -20,6 +20,18 @@
|
|
|
20
20
|
*/
|
|
21
21
|
import type { ReactNode } from "react";
|
|
22
22
|
import type { NativeChatTokens } from "./theme-native.js";
|
|
23
|
+
import { type RichTextTableBlock } from "../richtext-table.js";
|
|
24
|
+
/**
|
|
25
|
+
* The native table projection (guuey#370): header row bold with a
|
|
26
|
+
* separator, body rows as flex rows, per-column alignment mapped to RN
|
|
27
|
+
* textAlign. Exported for tests; not part of the package surface.
|
|
28
|
+
*/
|
|
29
|
+
export declare function NativeTableBlock({ block, color, tokens, trailing, }: {
|
|
30
|
+
block: RichTextTableBlock;
|
|
31
|
+
color: string;
|
|
32
|
+
tokens: NativeChatTokens;
|
|
33
|
+
trailing?: ReactNode;
|
|
34
|
+
}): ReactNode;
|
|
23
35
|
/** Sanitized markdown → themed RN elements (see the module docblock). */
|
|
24
36
|
export declare function NativeMarkdown({ text, color, tokens, trailing, }: {
|
|
25
37
|
text: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/native/markdown.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/native/markdown.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAwJlF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,KAAK,EACL,MAAM,EACN,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,kBAAkB,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,GAAG,SAAS,CAqCZ;AAED,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,KAAK,EACL,MAAM,EACN,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,gBAAgB,CAAC;IACzB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,GAAG,SAAS,CAeZ"}
|
package/dist/native/markdown.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Linking, Text, View } from "react-native";
|
|
3
3
|
import { parseRichText, } from "@silverprotocol/richtext";
|
|
4
|
+
import { normalizeTableRow } from "../richtext-table.js";
|
|
4
5
|
function InlineRuns({ nodes, color, tokens, bold, italic, }) {
|
|
5
6
|
return nodes.map((node, i) => {
|
|
6
7
|
const baseStyle = {
|
|
@@ -43,6 +44,8 @@ function InlineRuns({ nodes, color, tokens, bold, italic, }) {
|
|
|
43
44
|
}
|
|
44
45
|
function BlockView({ block, color, tokens, trailing, }) {
|
|
45
46
|
switch (block.type) {
|
|
47
|
+
case "table":
|
|
48
|
+
return _jsx(NativeTableBlock, { block: block, color: color, tokens: tokens, trailing: trailing });
|
|
46
49
|
case "paragraph":
|
|
47
50
|
return (_jsxs(Text, { style: { fontSize: tokens.fontSize, lineHeight: Math.round(tokens.fontSize * 1.45) }, children: [_jsx(InlineRuns, { nodes: block.children, color: color, tokens: tokens }), trailing] }));
|
|
48
51
|
case "heading":
|
|
@@ -62,6 +65,24 @@ function BlockView({ block, color, tokens, trailing, }) {
|
|
|
62
65
|
return (_jsx(View, { style: { gap: 2 }, children: block.items.map((item, j) => (_jsxs(View, { style: { flexDirection: "row" }, children: [_jsx(Text, { style: { color, fontSize: tokens.fontSize, fontFamily: tokens.fontFamily }, children: block.ordered ? `${(block.start ?? 1) + j}. ` : "• " }), _jsxs(Text, { style: { flexShrink: 1, fontSize: tokens.fontSize, lineHeight: Math.round(tokens.fontSize * 1.45) }, children: [_jsx(InlineRuns, { nodes: item.children, color: color, tokens: tokens }), j === block.items.length - 1 ? trailing : null] })] }, j))) }));
|
|
63
66
|
}
|
|
64
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* The native table projection (guuey#370): header row bold with a
|
|
70
|
+
* separator, body rows as flex rows, per-column alignment mapped to RN
|
|
71
|
+
* textAlign. Exported for tests; not part of the package surface.
|
|
72
|
+
*/
|
|
73
|
+
export function NativeTableBlock({ block, color, tokens, trailing, }) {
|
|
74
|
+
const columnCount = block.header.cells.length;
|
|
75
|
+
const cellStyle = (i) => ({
|
|
76
|
+
flex: 1,
|
|
77
|
+
...(block.align[i] !== undefined ? { textAlign: block.align[i] } : {}),
|
|
78
|
+
});
|
|
79
|
+
return (_jsxs(View, { style: { gap: 2 }, children: [_jsx(View, { style: {
|
|
80
|
+
flexDirection: "row",
|
|
81
|
+
borderBottomWidth: 1,
|
|
82
|
+
borderBottomColor: tokens.palette.canvasMuted,
|
|
83
|
+
paddingBottom: 2,
|
|
84
|
+
}, children: normalizeTableRow(block.header, columnCount).map((cell, i) => (_jsx(Text, { style: { ...cellStyle(i), color, fontSize: tokens.fontSize, fontWeight: "700" }, children: _jsx(InlineRuns, { nodes: cell.children, color: color, tokens: tokens, bold: true }) }, i))) }), block.rows.map((row, r) => (_jsx(View, { style: { flexDirection: "row" }, children: normalizeTableRow(row, columnCount).map((cell, i) => (_jsx(Text, { style: { ...cellStyle(i), fontSize: tokens.fontSize }, children: _jsx(InlineRuns, { nodes: cell.children, color: color, tokens: tokens }) }, i))) }, r))), trailing] }));
|
|
85
|
+
}
|
|
65
86
|
/** Sanitized markdown → themed RN elements (see the module docblock). */
|
|
66
87
|
export function NativeMarkdown({ text, color, tokens, trailing, }) {
|
|
67
88
|
const blocks = parseRichText(text);
|
|
@@ -69,7 +69,7 @@ export interface TranscriptItemContext {
|
|
|
69
69
|
viewProps?: ViewSlotProps | ((item: ViewMountItem, mount: ResolvedViewMount) => ViewSlotProps);
|
|
70
70
|
}
|
|
71
71
|
/** The per-view slice of `GuueyViewProps` a transcript may configure. */
|
|
72
|
-
export type ViewSlotProps = Pick<GuueyViewProps, "hostCapabilities" | "hostInfo" | "hostContext" | "onCallTool" | "onUpdateModelContext" | "onUserMessage" | "onReadResource" | "onSizeChanged" | "negotiationTimeoutMs" | "dangerouslyAddSandboxFlags" | "allow" | "sandboxPageUrl" | "autoResize" | "cspOrigins">;
|
|
72
|
+
export type ViewSlotProps = Pick<GuueyViewProps, "hostCapabilities" | "hostInfo" | "hostContext" | "onCallTool" | "onUpdateModelContext" | "onUserMessage" | "onOpenLink" | "onReadResource" | "onSizeChanged" | "negotiationTimeoutMs" | "dangerouslyAddSandboxFlags" | "allow" | "sandboxPageUrl" | "autoResize" | "cspOrigins">;
|
|
73
73
|
interface ItemProps<T> {
|
|
74
74
|
item: T;
|
|
75
75
|
ctx: TranscriptItemContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/react/components.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/react/components.tsx"],"names":[],"mappings":"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"}
|
|
@@ -61,7 +61,7 @@ import type { TranscriptComponents, TranscriptItemContext, ViewSlotProps } from
|
|
|
61
61
|
* `hostContext` key wins field-by-field; `theme` is only filled in.
|
|
62
62
|
* Exported for tests; not part of the package surface.
|
|
63
63
|
*/
|
|
64
|
-
export declare function viewPropsWithThemeAnnounce(viewProps: TranscriptItemContext["viewProps"], mode: ThemeMode, defaults?: Pick<ViewSlotProps, "onCallTool" | "onUpdateModelContext" | "onUserMessage">): TranscriptItemContext["viewProps"];
|
|
64
|
+
export declare function viewPropsWithThemeAnnounce(viewProps: TranscriptItemContext["viewProps"], mode: ThemeMode, defaults?: Pick<ViewSlotProps, "onCallTool" | "onUpdateModelContext" | "onUserMessage" | "onOpenLink">): TranscriptItemContext["viewProps"];
|
|
65
65
|
/**
|
|
66
66
|
* The imperative seam (guuey#210): programmatic send/prefill/focus for
|
|
67
67
|
* hosts that stay on the batteries-included path (suggested-prompt chips
|
|
@@ -167,6 +167,19 @@ export interface GuueyChatProps {
|
|
|
167
167
|
strings?: Partial<ChatStrings>;
|
|
168
168
|
theme?: GuueyChatTheme;
|
|
169
169
|
mode?: ThemeMode;
|
|
170
|
+
/**
|
|
171
|
+
* Message-surface presentation (guuey#521). `"card"` (default) keeps
|
|
172
|
+
* assistant text on its own card; `"bare"` sits the transcript directly
|
|
173
|
+
* on the host's background so the embed reads native to the page.
|
|
174
|
+
*/
|
|
175
|
+
surface?: "card" | "bare";
|
|
176
|
+
/**
|
|
177
|
+
* Render the built-in composer (default `true`). `false` hides it for
|
|
178
|
+
* hosts that drive the conversation through the imperative handle
|
|
179
|
+
* (guuey#210 `ask`/`compose`) or their own input — pairs with the
|
|
180
|
+
* handle instead of forcing a CSS hide (guuey#521).
|
|
181
|
+
*/
|
|
182
|
+
composer?: boolean;
|
|
170
183
|
/** DOM windowing (§3.2). `false` renders everything. */
|
|
171
184
|
window?: TranscriptWindowing | false;
|
|
172
185
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guuey-chat.d.ts","sourceRoot":"","sources":["../../src/react/guuey-chat.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,OAAO,EASL,KAAK,aAAa,EAEnB,MAAM,OAAO,CAAC;AACf,OAAO,EAIL,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGtE,OAAO,KAAK,EAAsC,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAA2B,KAAK,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEvF,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,eAAe,EACf,UAAU,EAEV,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAc,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIlG;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,qBAAqB,CAAC,WAAW,CAAC,EAC7C,IAAI,EAAE,SAAS,EACf,QAAQ,GAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"guuey-chat.d.ts","sourceRoot":"","sources":["../../src/react/guuey-chat.tsx"],"names":[],"mappings":"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"}
|
package/dist/react/guuey-chat.js
CHANGED
|
@@ -85,7 +85,7 @@ const PROMPT_STATE = {
|
|
|
85
85
|
dismiss: "dismissed",
|
|
86
86
|
};
|
|
87
87
|
export const GuueyChat = forwardRef(function GuueyChat(props, ref) {
|
|
88
|
-
const { endpointUrl, appId, apiBaseUrl, getAccessToken, getGuestSecret, adapters: adaptersProp, preset = "calm", policy: policyOverrides, components, strings: stringOverrides, theme = DEFAULT_CHAT_THEME, mode = "light", window: windowing, reader, onDebugEvent, viewProps, promotedViewKey, onViewRef, onViewsChange, onPromptAction, onHitlAnswer, oauthReturnTo, onOAuthAuthorize, onErrorAction, onActivity, onReady, onThread, className, style, } = props;
|
|
88
|
+
const { endpointUrl, appId, apiBaseUrl, getAccessToken, getGuestSecret, adapters: adaptersProp, preset = "calm", policy: policyOverrides, components, strings: stringOverrides, theme = DEFAULT_CHAT_THEME, mode = "light", surface = "card", composer = true, window: windowing, reader, onDebugEvent, viewProps, promotedViewKey, onViewRef, onViewsChange, onPromptAction, onHitlAnswer, oauthReturnTo, onOAuthAuthorize, onErrorAction, onActivity, onReady, onThread, className, style, } = props;
|
|
89
89
|
// Identity stabilization (guuey#303 QA — the template's own chat-rail
|
|
90
90
|
// shipped the failure): hosts pass inline literals and arrows, so prop
|
|
91
91
|
// IDENTITY is noise. The getter props route through refs (presence, not
|
|
@@ -277,8 +277,9 @@ export const GuueyChat = forwardRef(function GuueyChat(props, ref) {
|
|
|
277
277
|
// REAL result envelope and its #440 classifier grades honestly; the
|
|
278
278
|
// post-turn agent turn then starts through the ui/message doorbell
|
|
279
279
|
// (the sink below). The #356 staging seam remains a PUBLIC export
|
|
280
|
-
// (withActionStaging) for hosts that choose the composer-staging UX
|
|
281
|
-
//
|
|
280
|
+
// (withActionStaging) for hosts that choose the composer-staging UX;
|
|
281
|
+
// no first-party surface applies it any more (the widget converged on
|
|
282
|
+
// this relay+doorbell path in guuey#404).
|
|
282
283
|
const stagedDefaultOnCallTool = defaultOnCallTool;
|
|
283
284
|
// The ui/message sink (guuey#422): the view hands the host role-user
|
|
284
285
|
// content (ggui's #440 doorbell — the model directive that drains a
|
|
@@ -349,11 +350,29 @@ export const GuueyChat = forwardRef(function GuueyChat(props, ref) {
|
|
|
349
350
|
}
|
|
350
351
|
void live.invoke.send(next).catch(() => { });
|
|
351
352
|
}, [busy]);
|
|
353
|
+
// guuey#522: the kit default for `ui/open-link` NEVER navigates
|
|
354
|
+
// sight-unseen — the ask surfaces as a disclosure affordance (host +
|
|
355
|
+
// full URL + Open/Dismiss) and the OPEN is the human's own anchor
|
|
356
|
+
// click, so the browser's activation gate and the review posture agree
|
|
357
|
+
// by construction. ONE pending ask at a time, newest replaces (a
|
|
358
|
+
// card spamming asks can never grow an unbounded stack).
|
|
359
|
+
const [pendingLink, setPendingLink] = useState(null);
|
|
360
|
+
const defaultOnOpenLink = useCallback((url) => {
|
|
361
|
+
setPendingLink(url);
|
|
362
|
+
}, []);
|
|
352
363
|
const effectiveViewProps = useMemo(() => viewPropsWithThemeAnnounce(viewProps, mode, {
|
|
353
364
|
...(stagedDefaultOnCallTool !== undefined ? { onCallTool: stagedDefaultOnCallTool } : {}),
|
|
354
365
|
onUpdateModelContext: defaultOnUpdateModelContext,
|
|
355
366
|
onUserMessage: defaultOnUserMessage,
|
|
356
|
-
|
|
367
|
+
onOpenLink: defaultOnOpenLink,
|
|
368
|
+
}), [
|
|
369
|
+
viewProps,
|
|
370
|
+
mode,
|
|
371
|
+
stagedDefaultOnCallTool,
|
|
372
|
+
defaultOnUpdateModelContext,
|
|
373
|
+
defaultOnUserMessage,
|
|
374
|
+
defaultOnOpenLink,
|
|
375
|
+
]);
|
|
357
376
|
// The canvas-host door (guuey#335): a host mounting views DIRECTLY from
|
|
358
377
|
// the roster (the chat-rail shell) needs the SAME slot wiring the kit's
|
|
359
378
|
// inline mounts get — theme announce, action relay, context sink. Read
|
|
@@ -367,6 +386,7 @@ export const GuueyChat = forwardRef(function GuueyChat(props, ref) {
|
|
|
367
386
|
...(stagedDefaultOnCallTool !== undefined ? { onCallTool: stagedDefaultOnCallTool } : {}),
|
|
368
387
|
onUpdateModelContext: defaultOnUpdateModelContext,
|
|
369
388
|
onUserMessage: defaultOnUserMessage,
|
|
389
|
+
onOpenLink: defaultOnOpenLink,
|
|
370
390
|
hostContext: { theme: mode },
|
|
371
391
|
}
|
|
372
392
|
: (effectiveViewProps ?? {});
|
|
@@ -471,9 +491,9 @@ export const GuueyChat = forwardRef(function GuueyChat(props, ref) {
|
|
|
471
491
|
onPromptAction?.(item, action);
|
|
472
492
|
}, [resolvePrompt, answerHitlPrompt, onHitlAnswer, onPromptAction, oauthReturnTo, onOAuthAuthorize]);
|
|
473
493
|
const strings = policy.strings;
|
|
474
|
-
return (_jsxs("div", { className: `guuey-chat-surface${className !== undefined ? ` ${className}` : ""}`, style: style, children: [_jsx(Transcript, { plan: plan, strings: strings, theme: theme, mode: mode, ...(windowing !== undefined ? { window: windowing } : {}), ...(components !== undefined ? { components } : {}), onToggle: toggle, onRetry: handleRetry, onPromptAction: handlePromptAction, ...(onErrorAction !== undefined ? { onErrorAction } : {}), resolvedMounts: resolvedMounts, onViewPhase: onViewPhase, onViewDiagnosis: onViewDiagnosis, ...(onViewRef !== undefined ? { onViewRef } : {}), viewProps: effectiveViewProps }), oauthReturn.notice !== null && (_jsxs("p", { role: "status", className: `guuey-chat-oauth-notice guuey-chat-oauth-${oauthReturn.notice.kind}`, children: [oauthReturn.notice.kind === "connected"
|
|
494
|
+
return (_jsxs("div", { className: `guuey-chat-surface${className !== undefined ? ` ${className}` : ""}`, style: style, children: [_jsx(Transcript, { plan: plan, strings: strings, theme: theme, mode: mode, surface: surface, ...(windowing !== undefined ? { window: windowing } : {}), ...(components !== undefined ? { components } : {}), onToggle: toggle, onRetry: handleRetry, onPromptAction: handlePromptAction, ...(onErrorAction !== undefined ? { onErrorAction } : {}), resolvedMounts: resolvedMounts, onViewPhase: onViewPhase, onViewDiagnosis: onViewDiagnosis, ...(onViewRef !== undefined ? { onViewRef } : {}), viewProps: effectiveViewProps }), pendingLink !== null && (_jsxs("div", { role: "status", className: "guuey-chat-link-ask", children: [_jsx("span", { className: "guuey-chat-link-ask-label", children: strings.linkAskLabel(new URL(pendingLink).host) }), _jsx("span", { className: "guuey-chat-link-ask-url", children: pendingLink }), _jsx("a", { className: "guuey-chat-link-ask-open", href: pendingLink, target: "_blank", rel: "noopener noreferrer", onClick: () => setPendingLink(null), children: strings.linkOpen }), _jsx("button", { type: "button", className: "guuey-chat-link-ask-dismiss", onClick: () => setPendingLink(null), children: strings.linkDismiss })] })), oauthReturn.notice !== null && (_jsxs("p", { role: "status", className: `guuey-chat-oauth-notice guuey-chat-oauth-${oauthReturn.notice.kind}`, children: [oauthReturn.notice.kind === "connected"
|
|
475
495
|
? strings.oauthConnected(oauthReturn.notice.serverName)
|
|
476
|
-
: strings.oauthFailed(oauthReturn.notice.reason), _jsx("button", { type: "button", className: "guuey-chat-oauth-dismiss", onClick: oauthReturn.dismiss, children: strings.promptDismissed })] })), _jsxs("form", { className: "guuey-chat-composer", onSubmit: (e) => {
|
|
496
|
+
: strings.oauthFailed(oauthReturn.notice.reason), _jsx("button", { type: "button", className: "guuey-chat-oauth-dismiss", onClick: oauthReturn.dismiss, children: strings.promptDismissed })] })), composer && (_jsxs("form", { className: "guuey-chat-composer", onSubmit: (e) => {
|
|
477
497
|
e.preventDefault();
|
|
478
498
|
submit();
|
|
479
499
|
}, children: [_jsx("textarea", { ref: inputRef, id: composerId, name: "message", className: "guuey-chat-composer-input", rows: 1, value: input, onChange: (e) => setInput(e.target.value), onKeyDown: (e) => {
|
|
@@ -483,5 +503,5 @@ export const GuueyChat = forwardRef(function GuueyChat(props, ref) {
|
|
|
483
503
|
e.preventDefault();
|
|
484
504
|
submit();
|
|
485
505
|
}
|
|
486
|
-
}, disabled: !available, "aria-label": strings.composerLabel, placeholder: available ? strings.composerPlaceholder : strings.composerUnavailable }), busy ? (_jsx("button", { type: "button", className: "guuey-chat-composer-stop", onClick: () => invoke.abort(), children: strings.stop })) : (_jsx("button", { type: "submit", className: "guuey-chat-composer-send", disabled: !canSend, children: strings.send }))] })] }));
|
|
506
|
+
}, disabled: !available, "aria-label": strings.composerLabel, placeholder: available ? strings.composerPlaceholder : strings.composerUnavailable }), busy ? (_jsx("button", { type: "button", className: "guuey-chat-composer-stop", onClick: () => invoke.abort(), children: strings.stop })) : (_jsx("button", { type: "submit", className: "guuey-chat-composer-send", disabled: !canSend, children: strings.send }))] }))] }));
|
|
487
507
|
});
|
package/dist/react/markdown.d.ts
CHANGED
|
@@ -25,6 +25,15 @@
|
|
|
25
25
|
* renders as formatted-so-far.
|
|
26
26
|
*/
|
|
27
27
|
import type { ReactNode } from "react";
|
|
28
|
+
import { type RichTextTableBlock } from "../richtext-table.js";
|
|
29
|
+
/**
|
|
30
|
+
* The table arm (guuey#370 — sdk#23's node). Cells render through the
|
|
31
|
+
* SAME `<Inline>` sanitizer path as every other run. Exported for tests;
|
|
32
|
+
* not part of the package surface.
|
|
33
|
+
*/
|
|
34
|
+
export declare function TableBlock({ block }: {
|
|
35
|
+
block: RichTextTableBlock;
|
|
36
|
+
}): ReactNode;
|
|
28
37
|
/** Sanitized markdown → React elements (see the module docblock). */
|
|
29
38
|
export declare function Markdown({ text }: {
|
|
30
39
|
text: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/react/markdown.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/react/markdown.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AA0GlF;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,kBAAkB,CAAA;CAAE,GAAG,SAAS,CA4B9E;AAmCD,qEAAqE;AACrE,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAQ9D"}
|
package/dist/react/markdown.js
CHANGED
|
@@ -1,10 +1,75 @@
|
|
|
1
|
-
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { parseRichText, } from "@silverprotocol/richtext";
|
|
3
|
+
import { normalizeTableRow } from "../richtext-table.js";
|
|
4
|
+
/**
|
|
5
|
+
* Bare-URL autolink (guuey#515): richtext mints `link` nodes only from
|
|
6
|
+
* explicit `[text](url)` markdown, so a plain "https://…" in agent prose
|
|
7
|
+
* parses as a text node and rendered as untappable static text — on a
|
|
8
|
+
* phone that means retyping a URL out of a chat bubble. Linkify at the
|
|
9
|
+
* render boundary, conservatively:
|
|
10
|
+
* - the scheme is part of the match (http/https only), so no
|
|
11
|
+
* `javascript:`/`data:` target can ever qualify — the SAFE_HREF
|
|
12
|
+
* property holds by construction;
|
|
13
|
+
* - built as React elements (no HTML string exists to inject into),
|
|
14
|
+
* same `rel`/`target` contract as explicit links;
|
|
15
|
+
* - trailing punctuation stays prose ("see https://guuey.com." must not
|
|
16
|
+
* link the dot), while a balanced closing paren/bracket stays in the
|
|
17
|
+
* URL (wiki-style paths);
|
|
18
|
+
* - schemeless "www.foo.com" is deliberately NOT linkified — guessing
|
|
19
|
+
* schemes is how autolinkers start lying;
|
|
20
|
+
* - code spans are untouched (they render `node.code`, not this path).
|
|
21
|
+
*/
|
|
22
|
+
const BARE_URL = /https?:\/\/[^\s<>]+/g;
|
|
23
|
+
function trimTrailingPunctuation(url) {
|
|
24
|
+
for (;;) {
|
|
25
|
+
const last = url[url.length - 1];
|
|
26
|
+
if (last === undefined)
|
|
27
|
+
return url;
|
|
28
|
+
if (last === ")" || last === "]") {
|
|
29
|
+
const open = last === ")" ? "(" : "[";
|
|
30
|
+
const opens = url.split(open).length - 1;
|
|
31
|
+
const closes = url.split(last).length - 1;
|
|
32
|
+
if (closes > opens) {
|
|
33
|
+
url = url.slice(0, -1);
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
return url;
|
|
37
|
+
}
|
|
38
|
+
if (".,;:!?'\"»›".includes(last)) {
|
|
39
|
+
url = url.slice(0, -1);
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
return url;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function linkify(text) {
|
|
46
|
+
if (!text.includes("http"))
|
|
47
|
+
return text;
|
|
48
|
+
const out = [];
|
|
49
|
+
let consumed = 0;
|
|
50
|
+
for (const match of text.matchAll(BARE_URL)) {
|
|
51
|
+
const start = match.index;
|
|
52
|
+
if (start === undefined)
|
|
53
|
+
continue;
|
|
54
|
+
const url = trimTrailingPunctuation(match[0]);
|
|
55
|
+
if (url.length === 0)
|
|
56
|
+
continue;
|
|
57
|
+
if (start > consumed)
|
|
58
|
+
out.push(text.slice(consumed, start));
|
|
59
|
+
out.push(_jsx("a", { href: url, target: "_blank", rel: "noopener noreferrer", children: url }, `url-${start}`));
|
|
60
|
+
consumed = start + url.length;
|
|
61
|
+
}
|
|
62
|
+
if (out.length === 0)
|
|
63
|
+
return text;
|
|
64
|
+
if (consumed < text.length)
|
|
65
|
+
out.push(text.slice(consumed));
|
|
66
|
+
return out;
|
|
67
|
+
}
|
|
3
68
|
function Inline({ nodes }) {
|
|
4
69
|
return nodes.map((node, i) => {
|
|
5
70
|
switch (node.type) {
|
|
6
71
|
case "text":
|
|
7
|
-
return _jsx("span", { children: node.text }, i);
|
|
72
|
+
return _jsx("span", { children: linkify(node.text) }, i);
|
|
8
73
|
case "break":
|
|
9
74
|
return _jsx("br", {}, i);
|
|
10
75
|
case "strong":
|
|
@@ -20,8 +85,19 @@ function Inline({ nodes }) {
|
|
|
20
85
|
}
|
|
21
86
|
});
|
|
22
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* The table arm (guuey#370 — sdk#23's node). Cells render through the
|
|
90
|
+
* SAME `<Inline>` sanitizer path as every other run. Exported for tests;
|
|
91
|
+
* not part of the package surface.
|
|
92
|
+
*/
|
|
93
|
+
export function TableBlock({ block }) {
|
|
94
|
+
const columnCount = block.header.cells.length;
|
|
95
|
+
return (_jsx("div", { className: "guuey-chat-table-wrap", children: _jsxs("table", { className: "guuey-chat-table", children: [_jsx("thead", { children: _jsx("tr", { children: normalizeTableRow(block.header, columnCount).map((cell, i) => (_jsx("th", { ...(block.align[i] !== undefined ? { style: { textAlign: block.align[i] } } : {}), children: _jsx(Inline, { nodes: cell.children }) }, i))) }) }), _jsx("tbody", { children: block.rows.map((row, r) => (_jsx("tr", { children: normalizeTableRow(row, columnCount).map((cell, i) => (_jsx("td", { ...(block.align[i] !== undefined ? { style: { textAlign: block.align[i] } } : {}), children: _jsx(Inline, { nodes: cell.children }) }, i))) }, r))) })] }) }));
|
|
96
|
+
}
|
|
23
97
|
function Block({ block }) {
|
|
24
98
|
switch (block.type) {
|
|
99
|
+
case "table":
|
|
100
|
+
return _jsx(TableBlock, { block: block });
|
|
25
101
|
case "paragraph":
|
|
26
102
|
return (_jsx("p", { children: _jsx(Inline, { nodes: block.children }) }));
|
|
27
103
|
case "heading":
|
|
@@ -11,6 +11,14 @@ export type ThemeMode = "light" | "dark";
|
|
|
11
11
|
* One mode's tokens as inline custom properties for the transcript root.
|
|
12
12
|
* Returned as a plain record so callers can spread it into `style` or emit
|
|
13
13
|
* a stylesheet from it.
|
|
14
|
+
*
|
|
15
|
+
* Stamped under INTERNAL names (`--_guuey-chat-*`), never the documented
|
|
16
|
+
* `--guuey-chat-*` channel (guuey#521): the stylesheet reads every token
|
|
17
|
+
* as `var(--guuey-chat-<t>, var(--_guuey-chat-<t>))`, so a host CSS
|
|
18
|
+
* variable — set on any ancestor — wins per-token over the resolved
|
|
19
|
+
* theme, and the two theming channels COMPOSE instead of the inline
|
|
20
|
+
* stamp silently shadowing the documented one (the trap the landing
|
|
21
|
+
* home-hero embed hit four rounds of).
|
|
14
22
|
*/
|
|
15
23
|
export declare function themeCssVars(theme: GuueyChatTheme, mode: ThemeMode): Record<string, string>;
|
|
16
24
|
//# sourceMappingURL=theme-css.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-css.d.ts","sourceRoot":"","sources":["../../src/react/theme-css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAazC
|
|
1
|
+
{"version":3,"file":"theme-css.d.ts","sourceRoot":"","sources":["../../src/react/theme-css.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAazC;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAsB3F"}
|
package/dist/react/theme-css.js
CHANGED
|
@@ -11,27 +11,35 @@ const DENSITY_GAP = {
|
|
|
11
11
|
* One mode's tokens as inline custom properties for the transcript root.
|
|
12
12
|
* Returned as a plain record so callers can spread it into `style` or emit
|
|
13
13
|
* a stylesheet from it.
|
|
14
|
+
*
|
|
15
|
+
* Stamped under INTERNAL names (`--_guuey-chat-*`), never the documented
|
|
16
|
+
* `--guuey-chat-*` channel (guuey#521): the stylesheet reads every token
|
|
17
|
+
* as `var(--guuey-chat-<t>, var(--_guuey-chat-<t>))`, so a host CSS
|
|
18
|
+
* variable — set on any ancestor — wins per-token over the resolved
|
|
19
|
+
* theme, and the two theming channels COMPOSE instead of the inline
|
|
20
|
+
* stamp silently shadowing the documented one (the trap the landing
|
|
21
|
+
* home-hero embed hit four rounds of).
|
|
14
22
|
*/
|
|
15
23
|
export function themeCssVars(theme, mode) {
|
|
16
24
|
const palette = theme.colors[mode];
|
|
17
25
|
const vars = {
|
|
18
|
-
"--
|
|
19
|
-
"--
|
|
20
|
-
"--
|
|
21
|
-
"--
|
|
22
|
-
"--
|
|
23
|
-
"--
|
|
24
|
-
"--
|
|
25
|
-
"--
|
|
26
|
-
"--
|
|
27
|
-
"--
|
|
28
|
-
"--
|
|
26
|
+
"--_guuey-chat-accent": palette.accent,
|
|
27
|
+
"--_guuey-chat-on-accent": palette.onAccent,
|
|
28
|
+
"--_guuey-chat-ink": palette.ink,
|
|
29
|
+
"--_guuey-chat-ink-muted": palette.inkMuted,
|
|
30
|
+
"--_guuey-chat-surface": palette.surface,
|
|
31
|
+
"--_guuey-chat-canvas": palette.canvas,
|
|
32
|
+
"--_guuey-chat-canvas-muted": palette.canvasMuted,
|
|
33
|
+
"--_guuey-chat-error": palette.error,
|
|
34
|
+
"--_guuey-chat-radius": RADIUS_PX[theme.shape.radius],
|
|
35
|
+
"--_guuey-chat-gap": DENSITY_GAP[theme.shape.density],
|
|
36
|
+
"--_guuey-chat-scale": String(theme.typography.scale ?? 1),
|
|
29
37
|
};
|
|
30
38
|
if (theme.typography.fontFamily !== undefined) {
|
|
31
|
-
vars["--
|
|
39
|
+
vars["--_guuey-chat-font"] = theme.typography.fontFamily;
|
|
32
40
|
}
|
|
33
41
|
if (theme.typography.monoFontFamily !== undefined) {
|
|
34
|
-
vars["--
|
|
42
|
+
vars["--_guuey-chat-mono-font"] = theme.typography.monoFontFamily;
|
|
35
43
|
}
|
|
36
44
|
return vars;
|
|
37
45
|
}
|
|
@@ -33,6 +33,14 @@ export interface TranscriptProps extends Pick<TranscriptItemContext, "onToggle"
|
|
|
33
33
|
strings?: ChatStrings;
|
|
34
34
|
theme?: GuueyChatTheme;
|
|
35
35
|
mode?: ThemeMode;
|
|
36
|
+
/**
|
|
37
|
+
* Message-surface presentation (guuey#521). `"card"` (default) renders
|
|
38
|
+
* assistant text on its own surface-tinted, hairline-bordered card;
|
|
39
|
+
* `"bare"` sits the transcript directly on the host's background — the
|
|
40
|
+
* embed disappears into the page it lives on. The user pill stays a
|
|
41
|
+
* bubble in both.
|
|
42
|
+
*/
|
|
43
|
+
surface?: "card" | "bare";
|
|
36
44
|
/** DOM windowing (§3.2). `false` renders everything. Default tail 80. */
|
|
37
45
|
window?: TranscriptWindowing | false;
|
|
38
46
|
className?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcript.d.ts","sourceRoot":"","sources":["../../src/react/transcript.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAML,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAK9D,MAAM,WAAW,mBAAmB;IAClC,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eACf,SAAQ,IAAI,CACV,qBAAqB,EACnB,UAAU,GACV,SAAS,GACT,gBAAgB,GAChB,eAAe,GACf,gBAAgB,GAChB,aAAa,GACb,iBAAiB,GACjB,WAAW,GACX,WAAW,CACd;IACD,IAAI,EAAE,cAAc,CAAC;IACrB,gEAAgE;IAChE,UAAU,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC3C,gEAAgE;IAChE,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,yEAAyE;IACzE,MAAM,CAAC,EAAE,mBAAmB,GAAG,KAAK,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"transcript.d.ts","sourceRoot":"","sources":["../../src/react/transcript.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAML,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAK9D,MAAM,WAAW,mBAAmB;IAClC,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eACf,SAAQ,IAAI,CACV,qBAAqB,EACnB,UAAU,GACV,SAAS,GACT,gBAAgB,GAChB,eAAe,GACf,gBAAgB,GAChB,aAAa,GACb,iBAAiB,GACjB,WAAW,GACX,WAAW,CACd;IACD,IAAI,EAAE,cAAc,CAAC;IACrB,gEAAgE;IAChE,UAAU,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC3C,gEAAgE;IAChE,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,yEAAyE;IACzE,MAAM,CAAC,EAAE,mBAAmB,GAAG,KAAK,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,CAyI5D"}
|
package/dist/react/transcript.js
CHANGED
|
@@ -24,7 +24,7 @@ import { themeCssVars } from "./theme-css.js";
|
|
|
24
24
|
/** How close to the bottom (px) still counts as pinned. */
|
|
25
25
|
const PIN_THRESHOLD_PX = 48;
|
|
26
26
|
export function Transcript(props) {
|
|
27
|
-
const { plan, components, strings = defaultChatStrings, theme = DEFAULT_CHAT_THEME, mode = "light", window: windowing = { tail: 80 }, className, style, onToggle, onRetry, onPromptAction, onErrorAction, resolvedMounts, onViewPhase, onViewDiagnosis, onViewRef, viewProps, } = props;
|
|
27
|
+
const { plan, components, strings = defaultChatStrings, theme = DEFAULT_CHAT_THEME, mode = "light", surface = "card", window: windowing = { tail: 80 }, className, style, onToggle, onRetry, onPromptAction, onErrorAction, resolvedMounts, onViewPhase, onViewDiagnosis, onViewRef, viewProps, } = props;
|
|
28
28
|
const resolvedComponents = useMemo(() => ({ ...defaultTranscriptComponents, ...components }), [components]);
|
|
29
29
|
const ctx = useMemo(() => ({
|
|
30
30
|
strings,
|
|
@@ -91,7 +91,7 @@ export function Transcript(props) {
|
|
|
91
91
|
}, []);
|
|
92
92
|
const rootStyle = { ...themeCssVars(theme, mode), ...style };
|
|
93
93
|
const StatusComponent = resolvedComponents.status;
|
|
94
|
-
return (_jsxs("div", { className: `guuey-chat${className !== undefined ? ` ${className}` : ""}`, style: rootStyle, "data-guuey-chat-mode": mode, children: [_jsx("div", { ref: scroller, className: "guuey-chat-scroller", onScroll: onScroll, children: _jsxs("div", { ref: column, className: "guuey-chat-column", children: [hidden > 0 ? (_jsx("button", { type: "button", className: "guuey-chat-show-earlier", onClick: () => setExtraShown((n) => n + tail), children: strings.showEarlier(hidden) })) : null, visible.map((item) => renderItem(item, resolvedComponents, ctx)), plan.status !== null ? (_jsx(StatusComponent, { item: plan.status, ctx: ctx })) : null] }) }), showJump ? (_jsx("button", { type: "button", className: "guuey-chat-jump", onClick: () => {
|
|
94
|
+
return (_jsxs("div", { className: `guuey-chat${surface === "bare" ? " guuey-chat--bare" : ""}${className !== undefined ? ` ${className}` : ""}`, style: rootStyle, "data-guuey-chat-mode": mode, children: [_jsx("div", { ref: scroller, className: "guuey-chat-scroller", onScroll: onScroll, children: _jsxs("div", { ref: column, className: "guuey-chat-column", children: [hidden > 0 ? (_jsx("button", { type: "button", className: "guuey-chat-show-earlier", onClick: () => setExtraShown((n) => n + tail), children: strings.showEarlier(hidden) })) : null, visible.map((item) => renderItem(item, resolvedComponents, ctx)), plan.status !== null ? (_jsx(StatusComponent, { item: plan.status, ctx: ctx })) : null] }) }), showJump ? (_jsx("button", { type: "button", className: "guuey-chat-jump", onClick: () => {
|
|
95
95
|
pinned.current = true;
|
|
96
96
|
setShowJump(false);
|
|
97
97
|
scrollToBottom(true);
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Table rendering support (guuey#370 — sdk#23's vocabulary, live since
|
|
3
|
+
* `@silverprotocol/richtext@0.5.3`).
|
|
4
|
+
*
|
|
5
|
+
* The block type DERIVES from the upstream union (strict-typing rule:
|
|
6
|
+
* the parser's types are the source of truth). History note: this module
|
|
7
|
+
* was born one cut earlier as a structural MIRROR + narrowing guard so
|
|
8
|
+
* both renderer arms could land BEFORE the bump (the renderers switch
|
|
9
|
+
* default-less on `block.type` — a bump without an arm would have
|
|
10
|
+
* rendered tables as NOTHING); with 0.5.3 pinned, the mirror and guard
|
|
11
|
+
* are deleted per the pre-launch one-contract rule and the arms moved
|
|
12
|
+
* into the switches proper.
|
|
13
|
+
*/
|
|
14
|
+
import type { RichTextBlock, RichTextTableCell } from "@silverprotocol/richtext";
|
|
15
|
+
export type RichTextTableBlock = Extract<RichTextBlock, {
|
|
16
|
+
type: "table";
|
|
17
|
+
}>;
|
|
18
|
+
/**
|
|
19
|
+
* Renderer-side GFM normalization (defense in depth — the parser already
|
|
20
|
+
* pads/drops): every row exactly `columnCount` cells, short rows padded
|
|
21
|
+
* with empty-inline cells, excess dropped.
|
|
22
|
+
*/
|
|
23
|
+
export declare function normalizeTableRow(row: {
|
|
24
|
+
cells: RichTextTableCell[];
|
|
25
|
+
}, columnCount: number): RichTextTableCell[];
|
|
26
|
+
//# sourceMappingURL=richtext-table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"richtext-table.d.ts","sourceRoot":"","sources":["../src/richtext-table.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEjF,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,aAAa,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAE3E;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE;IAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;CAAE,EACnC,WAAW,EAAE,MAAM,GAClB,iBAAiB,EAAE,CAIrB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renderer-side GFM normalization (defense in depth — the parser already
|
|
3
|
+
* pads/drops): every row exactly `columnCount` cells, short rows padded
|
|
4
|
+
* with empty-inline cells, excess dropped.
|
|
5
|
+
*/
|
|
6
|
+
export function normalizeTableRow(row, columnCount) {
|
|
7
|
+
const cells = row.cells.slice(0, columnCount);
|
|
8
|
+
while (cells.length < columnCount)
|
|
9
|
+
cells.push({ children: [] });
|
|
10
|
+
return cells;
|
|
11
|
+
}
|
package/dist/strings.d.ts
CHANGED
|
@@ -113,6 +113,14 @@ export interface ChatStrings {
|
|
|
113
113
|
oauthFailed: (reason: string) => string;
|
|
114
114
|
/** R16 — the notice row's label (provenance shows only under debug). */
|
|
115
115
|
noticeLabel: string;
|
|
116
|
+
/**
|
|
117
|
+
* The `ui/open-link` disclosure affordance (guuey#522): a card asked to
|
|
118
|
+
* open a URL — the kit shows WHERE before anything navigates, and the
|
|
119
|
+
* human's own click on `linkOpen` is the only door out.
|
|
120
|
+
*/
|
|
121
|
+
linkAskLabel: (host: string) => string;
|
|
122
|
+
linkOpen: string;
|
|
123
|
+
linkDismiss: string;
|
|
116
124
|
/** The 3c composer (`<GuueyChat>`). */
|
|
117
125
|
composerPlaceholder: string;
|
|
118
126
|
composerUnavailable: string;
|
package/dist/strings.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../src/strings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,WAAW;IAC1B,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAEhB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,uBAAuB,EAAE,MAAM,CAAC;IAEhC,aAAa;IACb,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7C,eAAe,EAAE,MAAM,CAAC;IACxB,2EAA2E;IAC3E,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAEvC,UAAU;IACV,cAAc,EAAE,MAAM,CAAC;IAEvB,UAAU;IACV,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAErC,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IAErB,WAAW;IACX,UAAU,EAAE,MAAM,CAAC;IAEnB,UAAU;IACV,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B,iBAAiB;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,EAAE,MAAM,CAAC;IAC/B;;;;;OAKG;IACH,cAAc,EAAE,CAAC,SAAS,EAAE;QAC1B,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,cAAc,EAAE,MAAM,CAAC;KACxB,KAAK,MAAM,CAAC;IACb,4EAA4E;IAC5E,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,+EAA+E;IAC/E,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,qFAAqF;IACrF,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,6EAA6E;IAC7E,oBAAoB,EAAE,MAAM,CAAC;IAE7B,qEAAqE;IACrE,oBAAoB,EAAE,MAAM,CAAC;IAE7B,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAErC,kBAAkB;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IAEnB,kEAAkE;IAClE,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IAEf,6EAA6E;IAC7E,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAClD,oBAAoB,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAExC,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAC;IAEpB,uCAAuC;IACvC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAiBD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAWzD;AAED,eAAO,MAAM,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../src/strings.ts"],"names":[],"mappings":"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"}
|