@conduit-d365/ai-chat 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AIChatProvider.d.ts +1 -1
- package/dist/AIChatProvider.d.ts.map +1 -1
- package/dist/AIChatProvider.js +28 -9
- package/dist/AIChatProvider.js.map +1 -1
- package/dist/ChatSidebar.d.ts.map +1 -1
- package/dist/ChatSidebar.js +19 -4
- package/dist/ChatSidebar.js.map +1 -1
- package/dist/ChatToggle.js +3 -3
- package/dist/ChatToggle.js.map +1 -1
- package/dist/components/ContextBadge.js +2 -2
- package/dist/components/ContextBadge.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/types.d.ts +26 -5
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/AIChatProvider.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export interface AIChatProviderProps extends AIChatConfig {
|
|
|
9
9
|
*/
|
|
10
10
|
getAccessToken?: () => Promise<string>;
|
|
11
11
|
}
|
|
12
|
-
export declare function AIChatProvider({ children, appName, endpoint, placeholder: _placeholder, maxHistory, getAccessToken, }: AIChatProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export declare function AIChatProvider({ children, appName, endpoint, placeholder: _placeholder, maxHistory, aiMode, getAccessToken, }: AIChatProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
13
13
|
export declare function useAIChat(): UseAIChatReturn;
|
|
14
14
|
export declare function usePageContext(): UsePageContextReturn;
|
|
15
15
|
//# sourceMappingURL=AIChatProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AIChatProvider.d.ts","sourceRoot":"","sources":["../src/AIChatProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AACd,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"AIChatProvider.d.ts","sourceRoot":"","sources":["../src/AIChatProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AACd,OAAO,KAAK,EAEV,YAAY,EAIZ,eAAe,EACf,oBAAoB,EACrB,MAAM,SAAS,CAAA;AA8BhB,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,QAAQ,EAAE,SAAS,CAAA;IACnB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CACvC;AAOD,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,OAAO,EACP,QAAyB,EACzB,WAAW,EAAE,YAAY,EACzB,UAAe,EACf,MAAwB,EACxB,cAAc,GACf,EAAE,mBAAmB,2CAoMrB;AAID,wBAAgB,SAAS,IAAI,eAAe,CAM3C;AAOD,wBAAgB,cAAc,IAAI,oBAAoB,CAGrD"}
|
package/dist/AIChatProvider.js
CHANGED
|
@@ -4,11 +4,27 @@ import { createContext, useCallback, useContext, useRef, useState, } from 'react
|
|
|
4
4
|
const AIChatContext = createContext(null);
|
|
5
5
|
const PageContextContext = createContext(null);
|
|
6
6
|
const GetTokenContext = createContext(null);
|
|
7
|
+
// ── Context filtering ─────────────────────────────────────────────────
|
|
8
|
+
/**
|
|
9
|
+
* Filter pageContext based on AI governance mode before sending to provider.
|
|
10
|
+
* - full_access: send everything
|
|
11
|
+
* - metadata_only: strip sensitiveData, keep view/entity/metadata
|
|
12
|
+
* - disabled: should never reach here (sidebar hidden)
|
|
13
|
+
*/
|
|
14
|
+
function filterContextForMode(context, mode) {
|
|
15
|
+
if (!context || mode === 'disabled')
|
|
16
|
+
return null;
|
|
17
|
+
if (mode === 'full_access')
|
|
18
|
+
return context;
|
|
19
|
+
// metadata_only: strip sensitiveData
|
|
20
|
+
const { sensitiveData: _stripped, ...safe } = context;
|
|
21
|
+
return safe;
|
|
22
|
+
}
|
|
7
23
|
let nextId = 0;
|
|
8
24
|
function generateId() {
|
|
9
25
|
return `msg_${Date.now()}_${nextId++}`;
|
|
10
26
|
}
|
|
11
|
-
export function AIChatProvider({ children, appName, endpoint = '/api/ai/chat', placeholder: _placeholder, maxHistory = 50, getAccessToken, }) {
|
|
27
|
+
export function AIChatProvider({ children, appName, endpoint = '/api/ai/chat', placeholder: _placeholder, maxHistory = 50, aiMode = 'metadata_only', getAccessToken, }) {
|
|
12
28
|
const [messages, setMessages] = useState([]);
|
|
13
29
|
const [isStreaming, setIsStreaming] = useState(false);
|
|
14
30
|
const [isOpen, setIsOpen] = useState(false);
|
|
@@ -17,7 +33,7 @@ export function AIChatProvider({ children, appName, endpoint = '/api/ai/chat', p
|
|
|
17
33
|
// Ref to abort in-flight requests
|
|
18
34
|
const abortRef = useRef(null);
|
|
19
35
|
const sendMessage = useCallback(async (content) => {
|
|
20
|
-
if (!content.trim() || isStreaming)
|
|
36
|
+
if (!content.trim() || isStreaming || aiMode === 'disabled')
|
|
21
37
|
return;
|
|
22
38
|
const userMessage = {
|
|
23
39
|
id: generateId(),
|
|
@@ -41,10 +57,12 @@ export function AIChatProvider({ children, appName, endpoint = '/api/ai/chat', p
|
|
|
41
57
|
abortRef.current = new AbortController();
|
|
42
58
|
// Build history (trim to maxHistory)
|
|
43
59
|
const history = [...messages, userMessage].slice(-maxHistory);
|
|
60
|
+
// Filter context based on governance mode
|
|
61
|
+
const filteredContext = filterContextForMode(pageContext, aiMode);
|
|
44
62
|
const body = {
|
|
45
63
|
message: content.trim(),
|
|
46
64
|
history,
|
|
47
|
-
pageContext,
|
|
65
|
+
pageContext: filteredContext,
|
|
48
66
|
appName,
|
|
49
67
|
};
|
|
50
68
|
const headers = {
|
|
@@ -57,7 +75,6 @@ export function AIChatProvider({ children, appName, endpoint = '/api/ai/chat', p
|
|
|
57
75
|
}
|
|
58
76
|
catch {
|
|
59
77
|
// If token acquisition fails, proceed without auth
|
|
60
|
-
// (backend will reject with 401 if auth is required)
|
|
61
78
|
}
|
|
62
79
|
}
|
|
63
80
|
const response = await fetch(endpoint, {
|
|
@@ -70,9 +87,11 @@ export function AIChatProvider({ children, appName, endpoint = '/api/ai/chat', p
|
|
|
70
87
|
const errorText = await response.text().catch(() => response.statusText);
|
|
71
88
|
throw new Error(response.status === 401
|
|
72
89
|
? 'Authentication required. Please sign in.'
|
|
73
|
-
: response.status ===
|
|
74
|
-
? '
|
|
75
|
-
:
|
|
90
|
+
: response.status === 403
|
|
91
|
+
? 'AI chat is not available for this customer.'
|
|
92
|
+
: response.status === 429
|
|
93
|
+
? 'Rate limit exceeded. Please wait a moment.'
|
|
94
|
+
: `Chat request failed: ${errorText}`);
|
|
76
95
|
}
|
|
77
96
|
// Stream SSE response
|
|
78
97
|
const reader = response.body?.getReader();
|
|
@@ -106,7 +125,6 @@ export function AIChatProvider({ children, appName, endpoint = '/api/ai/chat', p
|
|
|
106
125
|
}
|
|
107
126
|
catch (e) {
|
|
108
127
|
if (e instanceof SyntaxError) {
|
|
109
|
-
// Not JSON — treat raw data as content chunk
|
|
110
128
|
setMessages((prev) => prev.map((m) => m.id === assistantId
|
|
111
129
|
? { ...m, content: m.content + data }
|
|
112
130
|
: m));
|
|
@@ -137,7 +155,7 @@ export function AIChatProvider({ children, appName, endpoint = '/api/ai/chat', p
|
|
|
137
155
|
setIsStreaming(false);
|
|
138
156
|
abortRef.current = null;
|
|
139
157
|
}
|
|
140
|
-
}, [isStreaming, messages, pageContext, appName, endpoint, maxHistory, getAccessToken]);
|
|
158
|
+
}, [isStreaming, messages, pageContext, appName, endpoint, maxHistory, aiMode, getAccessToken]);
|
|
141
159
|
const clearHistory = useCallback(() => {
|
|
142
160
|
if (abortRef.current)
|
|
143
161
|
abortRef.current.abort();
|
|
@@ -153,6 +171,7 @@ export function AIChatProvider({ children, appName, endpoint = '/api/ai/chat', p
|
|
|
153
171
|
isStreaming,
|
|
154
172
|
isOpen,
|
|
155
173
|
error,
|
|
174
|
+
aiMode,
|
|
156
175
|
sendMessage,
|
|
157
176
|
clearHistory,
|
|
158
177
|
toggle,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AIChatProvider.js","sourceRoot":"","sources":["../src/AIChatProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,aAAa,EACb,WAAW,EACX,UAAU,EACV,MAAM,EACN,QAAQ,GAET,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"AIChatProvider.js","sourceRoot":"","sources":["../src/AIChatProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatSidebar.d.ts","sourceRoot":"","sources":["../src/ChatSidebar.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC3B,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AA2ED,wBAAgB,WAAW,CAAC,EAC1B,KAAW,EACX,QAAkB,EAClB,KAAoB,GACrB,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"ChatSidebar.d.ts","sourceRoot":"","sources":["../src/ChatSidebar.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC3B,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AA2ED,wBAAgB,WAAW,CAAC,EAC1B,KAAW,EACX,QAAkB,EAClB,KAAoB,GACrB,EAAE,gBAAgB,kDA2UlB"}
|
package/dist/ChatSidebar.js
CHANGED
|
@@ -77,9 +77,12 @@ function ensureStyles() {
|
|
|
77
77
|
document.head.appendChild(style);
|
|
78
78
|
}
|
|
79
79
|
export function ChatSidebar({ width = 400, position = 'right', title = 'Conduit AI', }) {
|
|
80
|
-
const { messages, isStreaming, isOpen, error, sendMessage, clearHistory, close } = useAIChat();
|
|
80
|
+
const { messages, isStreaming, isOpen, error, aiMode, sendMessage, clearHistory, close } = useAIChat();
|
|
81
81
|
const { pageContext } = usePageContext();
|
|
82
82
|
const [input, setInput] = useState('');
|
|
83
|
+
// Don't render in disabled mode
|
|
84
|
+
if (aiMode === 'disabled')
|
|
85
|
+
return null;
|
|
83
86
|
const messagesEndRef = useRef(null);
|
|
84
87
|
const inputRef = useRef(null);
|
|
85
88
|
useEffect(() => ensureStyles(), []);
|
|
@@ -147,7 +150,19 @@ export function ChatSidebar({ width = 400, position = 'right', title = 'Conduit
|
|
|
147
150
|
color: 'var(--conduit-fg, #64748b)',
|
|
148
151
|
fontSize: '18px',
|
|
149
152
|
lineHeight: 1,
|
|
150
|
-
}, children: "\u00D7" })] })] }), _jsx(ContextBadge, { context: pageContext }),
|
|
153
|
+
}, children: "\u00D7" })] })] }), _jsx(ContextBadge, { context: pageContext }), aiMode === 'full_access' && (_jsx("div", { style: {
|
|
154
|
+
padding: '6px 12px',
|
|
155
|
+
fontSize: '11px',
|
|
156
|
+
backgroundColor: '#fef3c7',
|
|
157
|
+
color: '#92400e',
|
|
158
|
+
borderBottom: '1px solid #fde68a',
|
|
159
|
+
}, children: "Customer data may be sent to AI provider. Do not paste additional sensitive data unless authorised." })), aiMode === 'metadata_only' && (_jsx("div", { style: {
|
|
160
|
+
padding: '6px 12px',
|
|
161
|
+
fontSize: '11px',
|
|
162
|
+
backgroundColor: 'var(--conduit-bg-muted, #f1f5f9)',
|
|
163
|
+
color: 'var(--conduit-fg, #64748b)',
|
|
164
|
+
borderBottom: '1px solid var(--conduit-border, #e2e8f0)',
|
|
165
|
+
}, children: "AI context limited to metadata. Do not paste customer data into the chat." })), _jsxs("div", { style: {
|
|
151
166
|
flex: 1,
|
|
152
167
|
overflowY: 'auto',
|
|
153
168
|
padding: '16px',
|
|
@@ -202,11 +217,11 @@ export function ChatSidebar({ width = 400, position = 'right', title = 'Conduit
|
|
|
202
217
|
alignItems: 'center',
|
|
203
218
|
justifyContent: 'center',
|
|
204
219
|
transition: 'background-color 0.15s',
|
|
205
|
-
}, children: _jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", children: _jsx("path", { d: "M2.5 8H13.5M13.5 8L9 3.5M13.5 8L9 12.5", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }) })] }),
|
|
220
|
+
}, children: _jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", children: _jsx("path", { d: "M2.5 8H13.5M13.5 8L9 3.5M13.5 8L9 12.5", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }) })] }), _jsxs("div", { style: {
|
|
206
221
|
marginTop: '6px',
|
|
207
222
|
fontSize: '11px',
|
|
208
223
|
color: 'var(--conduit-fg, #94a3b8)',
|
|
209
224
|
opacity: 0.6,
|
|
210
|
-
}, children: "Shift+Enter for new line" })] })] }));
|
|
225
|
+
}, children: ["Shift+Enter for new line", ' · ', _jsx("a", { href: "/ai-privacy", target: "_blank", rel: "noopener noreferrer", style: { color: 'inherit', textDecoration: 'underline' }, children: "AI Privacy" })] })] })] }));
|
|
211
226
|
}
|
|
212
227
|
//# sourceMappingURL=ChatSidebar.js.map
|
package/dist/ChatSidebar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatSidebar.js","sourceRoot":"","sources":["../src/ChatSidebar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAWxD;;;GAGG;AACH,MAAM,QAAQ,GAAG,wBAAwB,CAAA;AACzC,MAAM,aAAa,GAAG,OAAO,CAAA;AAE7B,SAAS,YAAY;IACnB,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAM;IAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;IAClD,IAAI,QAAQ,IAAI,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,aAAa;QAAE,OAAM;IAC/E,IAAI,QAAQ;QAAE,QAAQ,CAAC,MAAM,EAAE,CAAA;IAE/B,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAC7C,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAA;IACnB,KAAK,CAAC,YAAY,CAAC,cAAc,EAAE,aAAa,CAAC,CAAA;IACjD,KAAK,CAAC,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDnB,CAAA;IACD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,GAAG,GAAG,EACX,QAAQ,GAAG,OAAO,EAClB,KAAK,GAAG,YAAY,GACH;IACjB,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"ChatSidebar.js","sourceRoot":"","sources":["../src/ChatSidebar.tsx"],"names":[],"mappings":"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"}
|
package/dist/ChatToggle.js
CHANGED
|
@@ -21,10 +21,10 @@ function ensureToggleStyles() {
|
|
|
21
21
|
document.head.appendChild(style);
|
|
22
22
|
}
|
|
23
23
|
export function ChatToggle({ position = 'bottom-right', offset = 24, }) {
|
|
24
|
-
const { toggle, isOpen } = useAIChat();
|
|
24
|
+
const { toggle, isOpen, aiMode } = useAIChat();
|
|
25
25
|
useEffect(() => ensureToggleStyles(), []);
|
|
26
|
-
// Hide
|
|
27
|
-
if (isOpen)
|
|
26
|
+
// Hide when sidebar is open or AI is disabled
|
|
27
|
+
if (isOpen || aiMode === 'disabled')
|
|
28
28
|
return null;
|
|
29
29
|
const isRight = position === 'bottom-right';
|
|
30
30
|
return (_jsx("button", { className: "conduit-ai-toggle", onClick: toggle, title: "Open AI chat", style: {
|
package/dist/ChatToggle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatToggle.js","sourceRoot":"","sources":["../src/ChatToggle.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAS5C,MAAM,eAAe,GAAG,0BAA0B,CAAA;AAElD,SAAS,kBAAkB;IACzB,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAM;IAC3C,IAAI,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC;QAAE,OAAM;IAEpD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAC7C,KAAK,CAAC,EAAE,GAAG,eAAe,CAAA;IAC1B,KAAK,CAAC,WAAW,GAAG;;;;;;;;GAQnB,CAAA;IACD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EACzB,QAAQ,GAAG,cAAc,EACzB,MAAM,GAAG,EAAE,GACK;IAChB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"ChatToggle.js","sourceRoot":"","sources":["../src/ChatToggle.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAS5C,MAAM,eAAe,GAAG,0BAA0B,CAAA;AAElD,SAAS,kBAAkB;IACzB,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAM;IAC3C,IAAI,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC;QAAE,OAAM;IAEpD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAC7C,KAAK,CAAC,EAAE,GAAG,eAAe,CAAA;IAC1B,KAAK,CAAC,WAAW,GAAG;;;;;;;;GAQnB,CAAA;IACD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EACzB,QAAQ,GAAG,cAAc,EACzB,MAAM,GAAG,EAAE,GACK;IAChB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAA;IAE9C,SAAS,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,EAAE,EAAE,CAAC,CAAA;IAEzC,8CAA8C;IAC9C,IAAI,MAAM,IAAI,MAAM,KAAK,UAAU;QAAE,OAAO,IAAI,CAAA;IAEhD,MAAM,OAAO,GAAG,QAAQ,KAAK,cAAc,CAAA;IAE3C,OAAO,CACL,iBACE,SAAS,EAAC,mBAAmB,EAC7B,OAAO,EAAE,MAAM,EACf,KAAK,EAAC,cAAc,EACpB,KAAK,EAAE;YACL,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,GAAG,MAAM,IAAI;YACrB,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,IAAI;YAC3C,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;YACd,YAAY,EAAE,KAAK;YACnB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,SAAS;YACjB,eAAe,EAAE,SAAS;YAC1B,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,oCAAoC;YAC/C,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;YACxB,MAAM,EAAE,GAAG;YACX,UAAU,EAAE,mCAAmC;SAChD,YAGD,eAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,aACzD,eACE,CAAC,EAAC,mEAAmE,EACrE,IAAI,EAAC,cAAc,GACnB,EACF,iBAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,SAAS,GAAG,EAC9C,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,SAAS,GAAG,EAC/C,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,SAAS,GAAG,IAC3C,GACC,CACV,CAAA;AACH,CAAC"}
|
|
@@ -4,8 +4,8 @@ export function ContextBadge({ context }) {
|
|
|
4
4
|
return null;
|
|
5
5
|
const label = context.entity
|
|
6
6
|
? `Viewing: ${context.entity}`
|
|
7
|
-
: context.summary
|
|
8
|
-
? context.summary
|
|
7
|
+
: context.metadata?.summary
|
|
8
|
+
? context.metadata.summary
|
|
9
9
|
: `Page: ${context.view}`;
|
|
10
10
|
return (_jsxs("div", { style: {
|
|
11
11
|
display: 'flex',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextBadge.js","sourceRoot":"","sources":["../../src/components/ContextBadge.tsx"],"names":[],"mappings":";AAMA,MAAM,UAAU,YAAY,CAAC,EAAE,OAAO,EAAqB;IACzD,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IAEzB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM;QAC1B,CAAC,CAAC,YAAY,OAAO,CAAC,MAAM,EAAE;QAC9B,CAAC,CAAC,OAAO,CAAC,OAAO;
|
|
1
|
+
{"version":3,"file":"ContextBadge.js","sourceRoot":"","sources":["../../src/components/ContextBadge.tsx"],"names":[],"mappings":";AAMA,MAAM,UAAU,YAAY,CAAC,EAAE,OAAO,EAAqB;IACzD,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IAEzB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM;QAC1B,CAAC,CAAC,YAAY,OAAO,CAAC,MAAM,EAAE;QAC9B,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO;YACzB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO;YAC1B,CAAC,CAAC,SAAS,OAAO,CAAC,IAAI,EAAE,CAAA;IAE7B,OAAO,CACL,eACE,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,KAAK;YACV,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,4BAA4B;YACnC,eAAe,EAAE,kCAAkC;YACnD,YAAY,EAAE,0CAA0C;SACzD,aAGD,eACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,aAEtC,iBACE,EAAE,EAAC,GAAG,EACN,EAAE,EAAC,GAAG,EACN,CAAC,EAAC,GAAG,EACL,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,KAAK,EACjB,IAAI,EAAC,MAAM,GACX,EACF,iBAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,SAAS,GAAG,IACzC,EACN,eACE,KAAK,EAAE;oBACL,QAAQ,EAAE,QAAQ;oBAClB,YAAY,EAAE,UAAU;oBACxB,UAAU,EAAE,QAAQ;iBACrB,YAEA,KAAK,GACD,IACH,CACP,CAAA;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,5 +10,5 @@ export { MarkdownRenderer } from './components/MarkdownRenderer';
|
|
|
10
10
|
export type { MarkdownRendererProps } from './components/MarkdownRenderer';
|
|
11
11
|
export { ContextBadge } from './components/ContextBadge';
|
|
12
12
|
export type { ContextBadgeProps } from './components/ContextBadge';
|
|
13
|
-
export type { ChatMessage, MessageRole, PageContext, AIChatConfig, UseAIChatReturn, UsePageContextReturn, ChatRequest, } from './types';
|
|
13
|
+
export type { AIMode, ChatMessage, MessageRole, PageContext, AIChatConfig, UseAIChatReturn, UsePageContextReturn, ChatRequest, } from './types';
|
|
14
14
|
//# 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":"AACA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAC5E,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAG3D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAGnD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAEpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAE1E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAGlE,YAAY,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,WAAW,GACZ,MAAM,SAAS,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAC5E,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAG3D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAGnD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAEpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAE1E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAGlE,YAAY,EACV,MAAM,EACN,WAAW,EACX,WAAW,EACX,WAAW,EACX,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,WAAW,GACZ,MAAM,SAAS,CAAA"}
|
package/dist/types.d.ts
CHANGED
|
@@ -7,19 +7,37 @@ export interface ChatMessage {
|
|
|
7
7
|
content: string;
|
|
8
8
|
timestamp: number;
|
|
9
9
|
}
|
|
10
|
+
/** AI governance mode — controls what context is sent to providers. */
|
|
11
|
+
export type AIMode = 'full_access' | 'metadata_only' | 'disabled';
|
|
10
12
|
/**
|
|
11
13
|
* Page context registered by consumer apps via usePageContext().
|
|
12
14
|
* Sent with every chat message so the AI knows what the user is viewing.
|
|
15
|
+
*
|
|
16
|
+
* Uses structural split: metadata (always safe with platform DPA) and
|
|
17
|
+
* sensitiveData (only sent in full_access mode with customer DPA).
|
|
13
18
|
*/
|
|
14
19
|
export interface PageContext {
|
|
15
|
-
/** Current view/page identifier (e.g. "
|
|
20
|
+
/** Current view/page identifier (e.g. "entity-script", "field-mapping") */
|
|
16
21
|
view: string;
|
|
17
22
|
/** Primary entity or object the user is viewing */
|
|
18
23
|
entity?: string;
|
|
19
|
-
/**
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
24
|
+
/** Structural/schema information — safe to send in metadata_only mode */
|
|
25
|
+
metadata?: {
|
|
26
|
+
schema?: string;
|
|
27
|
+
fieldNames?: string[];
|
|
28
|
+
scriptSql?: string;
|
|
29
|
+
logicDescription?: string;
|
|
30
|
+
summary?: string;
|
|
31
|
+
[key: string]: unknown;
|
|
32
|
+
};
|
|
33
|
+
/** Customer data values — stripped unless mode is full_access */
|
|
34
|
+
sensitiveData?: {
|
|
35
|
+
rawValues?: Record<string, unknown>[];
|
|
36
|
+
sampleValues?: string[];
|
|
37
|
+
piiCandidates?: string[];
|
|
38
|
+
addressStrings?: string[];
|
|
39
|
+
[key: string]: unknown;
|
|
40
|
+
};
|
|
23
41
|
}
|
|
24
42
|
/** Configuration for the AIChatProvider. */
|
|
25
43
|
export interface AIChatConfig {
|
|
@@ -31,6 +49,8 @@ export interface AIChatConfig {
|
|
|
31
49
|
placeholder?: string;
|
|
32
50
|
/** Maximum number of messages to retain in history (sent to backend). Defaults to 50. */
|
|
33
51
|
maxHistory?: number;
|
|
52
|
+
/** AI governance mode. Defaults to "metadata_only". */
|
|
53
|
+
aiMode?: AIMode;
|
|
34
54
|
}
|
|
35
55
|
/** Shape of the value returned by useAIChat(). */
|
|
36
56
|
export interface UseAIChatReturn {
|
|
@@ -38,6 +58,7 @@ export interface UseAIChatReturn {
|
|
|
38
58
|
isStreaming: boolean;
|
|
39
59
|
isOpen: boolean;
|
|
40
60
|
error: string | null;
|
|
61
|
+
aiMode: AIMode;
|
|
41
62
|
sendMessage: (content: string) => void;
|
|
42
63
|
clearHistory: () => void;
|
|
43
64
|
toggle: () => void;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,CAAA;AAE9C,4CAA4C;AAC5C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,WAAW,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;CAClB;AAED
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,CAAA;AAE9C,4CAA4C;AAC5C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,WAAW,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,uEAAuE;AACvE,MAAM,MAAM,MAAM,GAAG,aAAa,GAAG,eAAe,GAAG,UAAU,CAAA;AAEjE;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAA;IACZ,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,yEAAyE;IACzE,QAAQ,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;QACrB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;QACzB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KACvB,CAAA;IAED,iEAAiE;IACjE,aAAa,CAAC,EAAE;QACd,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;QACrC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;QACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;QACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;QACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KACvB,CAAA;CACF;AAED,4CAA4C;AAC5C,MAAM,WAAW,YAAY;IAC3B,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAA;IACf,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,kDAAkD;AAClD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,WAAW,EAAE,OAAO,CAAA;IACpB,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB;AAED,uDAAuD;AACvD,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAA;IAC/B,cAAc,EAAE,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAA;CACtD;AAED,2CAA2C;AAC3C,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAA;IAC/B,OAAO,EAAE,MAAM,CAAA;CAChB"}
|