@syntrologie/adapt-chatbot 2.15.0 → 2.25.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/dist/ChatAssistantLit.d.ts +8 -56
- package/dist/ChatAssistantLit.d.ts.map +1 -1
- package/dist/ChatAssistantLit.js +8 -389
- package/dist/ChatAssistantLit.js.map +7 -0
- package/dist/cdn.d.ts +2 -6
- package/dist/cdn.d.ts.map +1 -1
- package/dist/chunk-FI7F22ED.js +3331 -0
- package/dist/chunk-FI7F22ED.js.map +7 -0
- package/dist/chunk-V6TY7KAL.js +8 -0
- package/dist/chunk-V6TY7KAL.js.map +7 -0
- package/dist/editor-lit.d.ts +37 -0
- package/dist/editor-lit.d.ts.map +1 -0
- package/dist/editor-lit.js +134 -0
- package/dist/editor-lit.js.map +7 -0
- package/dist/runtime-lit.d.ts +3 -24
- package/dist/runtime-lit.d.ts.map +1 -1
- package/dist/runtime.d.ts +1 -3
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +29 -40
- package/dist/runtime.js.map +7 -0
- package/dist/schema.d.ts +13 -3
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +29 -31
- package/dist/schema.js.map +7 -0
- package/dist/types.d.ts +1 -39
- package/dist/types.d.ts.map +1 -1
- package/package.json +22 -23
- package/dist/ChatAssistant.d.ts +0 -18
- package/dist/ChatAssistant.d.ts.map +0 -1
- package/dist/ChatAssistant.js +0 -178
- package/dist/SyntroChatbot.d.ts +0 -14
- package/dist/SyntroChatbot.d.ts.map +0 -1
- package/dist/SyntroChatbot.js +0 -56
- package/dist/actionParser.d.ts +0 -15
- package/dist/actionParser.d.ts.map +0 -1
- package/dist/actionParser.js +0 -52
- package/dist/apiClient.d.ts +0 -23
- package/dist/apiClient.d.ts.map +0 -1
- package/dist/apiClient.js +0 -51
- package/dist/cdn.js +0 -37
- package/dist/editor.d.ts +0 -17
- package/dist/editor.d.ts.map +0 -1
- package/dist/editor.js +0 -36
- package/dist/runtime-lit.js +0 -32
- package/dist/tools/bridge.d.ts +0 -26
- package/dist/tools/bridge.d.ts.map +0 -1
- package/dist/tools/bridge.js +0 -25
- package/dist/tools/expanders.d.ts +0 -17
- package/dist/tools/expanders.d.ts.map +0 -1
- package/dist/tools/expanders.js +0 -41
- package/dist/tools/index.d.ts +0 -14
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/index.js +0 -11
- package/dist/tools/registrations/GetContextTool.d.ts +0 -7
- package/dist/tools/registrations/GetContextTool.d.ts.map +0 -1
- package/dist/tools/registrations/GetContextTool.js +0 -18
- package/dist/tools/registrations/ScrollToTool.d.ts +0 -7
- package/dist/tools/registrations/ScrollToTool.d.ts.map +0 -1
- package/dist/tools/registrations/ScrollToTool.js +0 -38
- package/dist/tools/registrations/ShowOverlayTool.d.ts +0 -7
- package/dist/tools/registrations/ShowOverlayTool.d.ts.map +0 -1
- package/dist/tools/registrations/ShowOverlayTool.js +0 -47
- package/dist/tools/registrations/index.d.ts +0 -19
- package/dist/tools/registrations/index.d.ts.map +0 -1
- package/dist/tools/registrations/index.js +0 -7
- package/dist/types.js +0 -6
- package/dist/useChat.d.ts +0 -25
- package/dist/useChat.d.ts.map +0 -1
- package/dist/useChat.js +0 -106
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
+
|
|
5
|
+
export {
|
|
6
|
+
__publicField
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=chunk-V6TY7KAL.js.map
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adaptive Chatbot — Editor (Lit web component).
|
|
3
|
+
*
|
|
4
|
+
* Custom element: <se-chatbot-editor>
|
|
5
|
+
*
|
|
6
|
+
* Lit port of editor.tsx. Form-based: edits backendUrl, mlflowRunId,
|
|
7
|
+
* greeting, maxHistory and emits change events. No sub-items, no list view.
|
|
8
|
+
*
|
|
9
|
+
* Properties:
|
|
10
|
+
* - `config: ChatbotConfig | undefined` — current chatbot tile props
|
|
11
|
+
* - `onChange: (updatedAppConfig) => void` — callback fired when a field changes
|
|
12
|
+
*
|
|
13
|
+
* Events (bubbling, composed):
|
|
14
|
+
* - `navigate-home` — back button
|
|
15
|
+
* - `dirty-change` (detail: { dirty: boolean }) — emit dirty=true on first edit
|
|
16
|
+
*/
|
|
17
|
+
import { LitElement } from 'lit';
|
|
18
|
+
type AppConfig = Record<string, unknown>;
|
|
19
|
+
export declare class ChatbotEditorLit extends LitElement {
|
|
20
|
+
static properties: {
|
|
21
|
+
config: {
|
|
22
|
+
attribute: boolean;
|
|
23
|
+
};
|
|
24
|
+
onChange: {
|
|
25
|
+
attribute: boolean;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
config: AppConfig | undefined;
|
|
29
|
+
onChange: ((updated: AppConfig) => void) | undefined;
|
|
30
|
+
private _emittedDirty;
|
|
31
|
+
createRenderRoot(): this;
|
|
32
|
+
private _handleField;
|
|
33
|
+
private _navigateHome;
|
|
34
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
35
|
+
}
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=editor-lit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor-lit.d.ts","sourceRoot":"","sources":["../src/editor-lit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAIvC,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEzC,qBAAa,gBAAiB,SAAQ,UAAU;IAC9C,OAAgB,UAAU;;;;;;;MAGxB;IAEF,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAErD,OAAO,CAAC,aAAa,CAAS;IAErB,gBAAgB;IAIzB,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,aAAa;IAIZ,MAAM;CAkGhB"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import "./chunk-V6TY7KAL.js";
|
|
2
|
+
|
|
3
|
+
// src/editor-lit.ts
|
|
4
|
+
import { html, LitElement } from "lit";
|
|
5
|
+
var ChatbotEditorLit = class extends LitElement {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this._emittedDirty = false;
|
|
9
|
+
}
|
|
10
|
+
createRenderRoot() {
|
|
11
|
+
return this;
|
|
12
|
+
}
|
|
13
|
+
_handleField(field, value) {
|
|
14
|
+
if (!this.config) return;
|
|
15
|
+
const next = { ...this.config, [field]: value };
|
|
16
|
+
this.onChange?.(next);
|
|
17
|
+
if (!this._emittedDirty) {
|
|
18
|
+
this._emittedDirty = true;
|
|
19
|
+
this.dispatchEvent(
|
|
20
|
+
new CustomEvent("dirty-change", {
|
|
21
|
+
detail: { dirty: true },
|
|
22
|
+
bubbles: true,
|
|
23
|
+
composed: true
|
|
24
|
+
})
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
_navigateHome() {
|
|
29
|
+
this.dispatchEvent(new CustomEvent("navigate-home", { bubbles: true, composed: true }));
|
|
30
|
+
}
|
|
31
|
+
render() {
|
|
32
|
+
const cfg = this.config ?? {};
|
|
33
|
+
return html`
|
|
34
|
+
<div class="se-flex se-flex-col se-h-full se-font-sans">
|
|
35
|
+
<!-- Header -->
|
|
36
|
+
<div class="se-px-4 se-pt-3 se-pb-1 se-flex se-items-center se-gap-3">
|
|
37
|
+
<button
|
|
38
|
+
type="button"
|
|
39
|
+
@click=${() => this._navigateHome()}
|
|
40
|
+
class="se-py-1.5 se-px-3 se-rounded-md se-border-none se-bg-card-bg se-text-text-primary se-text-sm se-cursor-pointer"
|
|
41
|
+
>← Back</button>
|
|
42
|
+
<div class="se-flex se-flex-col">
|
|
43
|
+
<h2 class="se-m-0 se-text-base se-font-semibold se-text-text-primary">Chat Assistant</h2>
|
|
44
|
+
<p class="se-mt-0.5 se-mb-0 se-text-xs se-text-text-secondary">
|
|
45
|
+
Configure AI chat assistant
|
|
46
|
+
</p>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
|
|
50
|
+
<div class="se-flex-1 se-overflow-auto se-px-4 se-py-3">
|
|
51
|
+
<!-- API Configuration -->
|
|
52
|
+
<div class="se-mb-6">
|
|
53
|
+
<div
|
|
54
|
+
class="se-text-xs se-font-semibold se-text-text-secondary se-uppercase se-tracking-wide se-mb-3"
|
|
55
|
+
>
|
|
56
|
+
API Configuration
|
|
57
|
+
</div>
|
|
58
|
+
|
|
59
|
+
<label class="se-block se-mb-3">
|
|
60
|
+
<span class="se-block se-text-xs se-text-text-secondary se-mb-1">Backend URL</span>
|
|
61
|
+
<input
|
|
62
|
+
type="text"
|
|
63
|
+
.value=${cfg.backendUrl ?? ""}
|
|
64
|
+
placeholder="/api/chat/message"
|
|
65
|
+
class="se-w-full se-py-2 se-px-3 se-rounded-md se-border se-border-input-field-border se-bg-input-field-bg se-text-text-primary se-text-sm focus:se-outline-none focus:se-border-input-field-border-selected"
|
|
66
|
+
@input=${(e) => this._handleField("backendUrl", e.target.value)}
|
|
67
|
+
/>
|
|
68
|
+
</label>
|
|
69
|
+
|
|
70
|
+
<label class="se-block se-mb-3">
|
|
71
|
+
<span class="se-block se-text-xs se-text-text-secondary se-mb-1">
|
|
72
|
+
MLflow Run ID (optional)
|
|
73
|
+
</span>
|
|
74
|
+
<input
|
|
75
|
+
type="text"
|
|
76
|
+
.value=${cfg.mlflowRunId ?? ""}
|
|
77
|
+
placeholder="e.g., abc123"
|
|
78
|
+
class="se-w-full se-py-2 se-px-3 se-rounded-md se-border se-border-input-field-border se-bg-input-field-bg se-text-text-primary se-text-sm focus:se-outline-none focus:se-border-input-field-border-selected"
|
|
79
|
+
@input=${(e) => this._handleField("mlflowRunId", e.target.value)}
|
|
80
|
+
/>
|
|
81
|
+
</label>
|
|
82
|
+
</div>
|
|
83
|
+
|
|
84
|
+
<!-- Chat Settings -->
|
|
85
|
+
<div class="se-mb-6">
|
|
86
|
+
<div
|
|
87
|
+
class="se-text-xs se-font-semibold se-text-text-secondary se-uppercase se-tracking-wide se-mb-3"
|
|
88
|
+
>
|
|
89
|
+
Chat Settings
|
|
90
|
+
</div>
|
|
91
|
+
|
|
92
|
+
<label class="se-block se-mb-3">
|
|
93
|
+
<span class="se-block se-text-xs se-text-text-secondary se-mb-1">Greeting Message</span>
|
|
94
|
+
<textarea
|
|
95
|
+
aria-label="Greeting Message"
|
|
96
|
+
.value=${cfg.greeting ?? ""}
|
|
97
|
+
placeholder="Hi! How can I help?"
|
|
98
|
+
rows="2"
|
|
99
|
+
class="se-w-full se-py-2 se-px-3 se-rounded-md se-border se-border-input-field-border se-bg-input-field-bg se-text-text-primary se-text-sm se-resize-none focus:se-outline-none focus:se-border-input-field-border-selected"
|
|
100
|
+
@input=${(e) => this._handleField("greeting", e.target.value)}
|
|
101
|
+
></textarea>
|
|
102
|
+
</label>
|
|
103
|
+
|
|
104
|
+
<label class="se-block se-mb-3">
|
|
105
|
+
<span class="se-block se-text-xs se-text-text-secondary se-mb-1">
|
|
106
|
+
Max History (messages sent to backend)
|
|
107
|
+
</span>
|
|
108
|
+
<input
|
|
109
|
+
type="number"
|
|
110
|
+
.value=${String(cfg.maxHistory ?? 20)}
|
|
111
|
+
min="1"
|
|
112
|
+
max="100"
|
|
113
|
+
class="se-w-full se-py-2 se-px-3 se-rounded-md se-border se-border-input-field-border se-bg-input-field-bg se-text-text-primary se-text-sm focus:se-outline-none focus:se-border-input-field-border-selected"
|
|
114
|
+
@input=${(e) => {
|
|
115
|
+
const n = parseInt(e.target.value, 10);
|
|
116
|
+
if (!Number.isNaN(n)) this._handleField("maxHistory", n);
|
|
117
|
+
}}
|
|
118
|
+
/>
|
|
119
|
+
</label>
|
|
120
|
+
</div>
|
|
121
|
+
</div>
|
|
122
|
+
</div>
|
|
123
|
+
`;
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
ChatbotEditorLit.properties = {
|
|
127
|
+
config: { attribute: false },
|
|
128
|
+
onChange: { attribute: false }
|
|
129
|
+
};
|
|
130
|
+
customElements.define("se-chatbot-editor", ChatbotEditorLit);
|
|
131
|
+
export {
|
|
132
|
+
ChatbotEditorLit
|
|
133
|
+
};
|
|
134
|
+
//# sourceMappingURL=editor-lit.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/editor-lit.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Adaptive Chatbot \u2014 Editor (Lit web component).\n *\n * Custom element: <se-chatbot-editor>\n *\n * Lit port of editor.tsx. Form-based: edits backendUrl, mlflowRunId,\n * greeting, maxHistory and emits change events. No sub-items, no list view.\n *\n * Properties:\n * - `config: ChatbotConfig | undefined` \u2014 current chatbot tile props\n * - `onChange: (updatedAppConfig) => void` \u2014 callback fired when a field changes\n *\n * Events (bubbling, composed):\n * - `navigate-home` \u2014 back button\n * - `dirty-change` (detail: { dirty: boolean }) \u2014 emit dirty=true on first edit\n */\n\nimport { html, LitElement } from 'lit';\n\nimport type { ChatbotConfig } from './types';\n\ntype AppConfig = Record<string, unknown>;\n\nexport class ChatbotEditorLit extends LitElement {\n static override properties = {\n config: { attribute: false },\n onChange: { attribute: false },\n };\n\n config: AppConfig | undefined;\n onChange: ((updated: AppConfig) => void) | undefined;\n\n private _emittedDirty = false;\n\n override createRenderRoot() {\n return this;\n }\n\n private _handleField(field: keyof ChatbotConfig, value: string | number) {\n if (!this.config) return;\n const next = { ...(this.config as Partial<ChatbotConfig>), [field]: value };\n this.onChange?.(next as AppConfig);\n\n if (!this._emittedDirty) {\n this._emittedDirty = true;\n this.dispatchEvent(\n new CustomEvent('dirty-change', {\n detail: { dirty: true },\n bubbles: true,\n composed: true,\n })\n );\n }\n }\n\n private _navigateHome() {\n this.dispatchEvent(new CustomEvent('navigate-home', { bubbles: true, composed: true }));\n }\n\n override render() {\n const cfg = (this.config ?? {}) as Partial<ChatbotConfig>;\n\n return html`\n <div class=\"se-flex se-flex-col se-h-full se-font-sans\">\n <!-- Header -->\n <div class=\"se-px-4 se-pt-3 se-pb-1 se-flex se-items-center se-gap-3\">\n <button\n type=\"button\"\n @click=${() => this._navigateHome()}\n class=\"se-py-1.5 se-px-3 se-rounded-md se-border-none se-bg-card-bg se-text-text-primary se-text-sm se-cursor-pointer\"\n >\u2190 Back</button>\n <div class=\"se-flex se-flex-col\">\n <h2 class=\"se-m-0 se-text-base se-font-semibold se-text-text-primary\">Chat Assistant</h2>\n <p class=\"se-mt-0.5 se-mb-0 se-text-xs se-text-text-secondary\">\n Configure AI chat assistant\n </p>\n </div>\n </div>\n\n <div class=\"se-flex-1 se-overflow-auto se-px-4 se-py-3\">\n <!-- API Configuration -->\n <div class=\"se-mb-6\">\n <div\n class=\"se-text-xs se-font-semibold se-text-text-secondary se-uppercase se-tracking-wide se-mb-3\"\n >\n API Configuration\n </div>\n\n <label class=\"se-block se-mb-3\">\n <span class=\"se-block se-text-xs se-text-text-secondary se-mb-1\">Backend URL</span>\n <input\n type=\"text\"\n .value=${cfg.backendUrl ?? ''}\n placeholder=\"/api/chat/message\"\n class=\"se-w-full se-py-2 se-px-3 se-rounded-md se-border se-border-input-field-border se-bg-input-field-bg se-text-text-primary se-text-sm focus:se-outline-none focus:se-border-input-field-border-selected\"\n @input=${(e: Event) =>\n this._handleField('backendUrl', (e.target as HTMLInputElement).value)}\n />\n </label>\n\n <label class=\"se-block se-mb-3\">\n <span class=\"se-block se-text-xs se-text-text-secondary se-mb-1\">\n MLflow Run ID (optional)\n </span>\n <input\n type=\"text\"\n .value=${cfg.mlflowRunId ?? ''}\n placeholder=\"e.g., abc123\"\n class=\"se-w-full se-py-2 se-px-3 se-rounded-md se-border se-border-input-field-border se-bg-input-field-bg se-text-text-primary se-text-sm focus:se-outline-none focus:se-border-input-field-border-selected\"\n @input=${(e: Event) =>\n this._handleField('mlflowRunId', (e.target as HTMLInputElement).value)}\n />\n </label>\n </div>\n\n <!-- Chat Settings -->\n <div class=\"se-mb-6\">\n <div\n class=\"se-text-xs se-font-semibold se-text-text-secondary se-uppercase se-tracking-wide se-mb-3\"\n >\n Chat Settings\n </div>\n\n <label class=\"se-block se-mb-3\">\n <span class=\"se-block se-text-xs se-text-text-secondary se-mb-1\">Greeting Message</span>\n <textarea\n aria-label=\"Greeting Message\"\n .value=${cfg.greeting ?? ''}\n placeholder=\"Hi! How can I help?\"\n rows=\"2\"\n class=\"se-w-full se-py-2 se-px-3 se-rounded-md se-border se-border-input-field-border se-bg-input-field-bg se-text-text-primary se-text-sm se-resize-none focus:se-outline-none focus:se-border-input-field-border-selected\"\n @input=${(e: Event) =>\n this._handleField('greeting', (e.target as HTMLTextAreaElement).value)}\n ></textarea>\n </label>\n\n <label class=\"se-block se-mb-3\">\n <span class=\"se-block se-text-xs se-text-text-secondary se-mb-1\">\n Max History (messages sent to backend)\n </span>\n <input\n type=\"number\"\n .value=${String(cfg.maxHistory ?? 20)}\n min=\"1\"\n max=\"100\"\n class=\"se-w-full se-py-2 se-px-3 se-rounded-md se-border se-border-input-field-border se-bg-input-field-bg se-text-text-primary se-text-sm focus:se-outline-none focus:se-border-input-field-border-selected\"\n @input=${(e: Event) => {\n const n = parseInt((e.target as HTMLInputElement).value, 10);\n if (!Number.isNaN(n)) this._handleField('maxHistory', n);\n }}\n />\n </label>\n </div>\n </div>\n </div>\n `;\n }\n}\n\ncustomElements.define('se-chatbot-editor', ChatbotEditorLit);\n"],
|
|
5
|
+
"mappings": ";;;AAiBA,SAAS,MAAM,kBAAkB;AAM1B,IAAM,mBAAN,cAA+B,WAAW;AAAA,EAA1C;AAAA;AASL,SAAQ,gBAAgB;AAAA;AAAA,EAEf,mBAAmB;AAC1B,WAAO;AAAA,EACT;AAAA,EAEQ,aAAa,OAA4B,OAAwB;AACvE,QAAI,CAAC,KAAK,OAAQ;AAClB,UAAM,OAAO,EAAE,GAAI,KAAK,QAAmC,CAAC,KAAK,GAAG,MAAM;AAC1E,SAAK,WAAW,IAAiB;AAEjC,QAAI,CAAC,KAAK,eAAe;AACvB,WAAK,gBAAgB;AACrB,WAAK;AAAA,QACH,IAAI,YAAY,gBAAgB;AAAA,UAC9B,QAAQ,EAAE,OAAO,KAAK;AAAA,UACtB,SAAS;AAAA,UACT,UAAU;AAAA,QACZ,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAAA,EAEQ,gBAAgB;AACtB,SAAK,cAAc,IAAI,YAAY,iBAAiB,EAAE,SAAS,MAAM,UAAU,KAAK,CAAC,CAAC;AAAA,EACxF;AAAA,EAES,SAAS;AAChB,UAAM,MAAO,KAAK,UAAU,CAAC;AAE7B,WAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAMU,MAAM,KAAK,cAAc,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAwBtB,IAAI,cAAc,EAAE;AAAA;AAAA;AAAA,yBAGpB,CAAC,MACR,KAAK,aAAa,cAAe,EAAE,OAA4B,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAU9D,IAAI,eAAe,EAAE;AAAA;AAAA;AAAA,yBAGrB,CAAC,MACR,KAAK,aAAa,eAAgB,EAAE,OAA4B,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAiB/D,IAAI,YAAY,EAAE;AAAA;AAAA;AAAA;AAAA,yBAIlB,CAAC,MACR,KAAK,aAAa,YAAa,EAAE,OAA+B,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAU/D,OAAO,IAAI,cAAc,EAAE,CAAC;AAAA;AAAA;AAAA;AAAA,yBAI5B,CAAC,MAAa;AACrB,YAAM,IAAI,SAAU,EAAE,OAA4B,OAAO,EAAE;AAC3D,UAAI,CAAC,OAAO,MAAM,CAAC,EAAG,MAAK,aAAa,cAAc,CAAC;AAAA,IACzD,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOf;AACF;AAtIa,iBACK,aAAa;AAAA,EAC3B,QAAQ,EAAE,WAAW,MAAM;AAAA,EAC3B,UAAU,EAAE,WAAW,MAAM;AAC/B;AAoIF,eAAe,OAAO,qBAAqB,gBAAgB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/dist/runtime-lit.d.ts
CHANGED
|
@@ -1,29 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Adaptive Chatbot - Runtime Module (Lit)
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* This is a widget-based adaptive with no action executors.
|
|
4
|
+
* Now identical to the default runtime since there is no React path.
|
|
5
|
+
* Kept for backward compatibility with existing import paths.
|
|
7
6
|
*/
|
|
8
|
-
export
|
|
9
|
-
id: string;
|
|
10
|
-
version: string;
|
|
11
|
-
name: string;
|
|
12
|
-
description: string;
|
|
13
|
-
/** No action executors — chatbot uses existing action kinds via applyBatch */
|
|
14
|
-
executors: never[];
|
|
15
|
-
/** Widget definitions for the runtime's WidgetRegistry */
|
|
16
|
-
widgets: {
|
|
17
|
-
id: string;
|
|
18
|
-
component: {
|
|
19
|
-
mount(container: HTMLElement, mountConfig?: Record<string, unknown>): () => void;
|
|
20
|
-
};
|
|
21
|
-
metadata: {
|
|
22
|
-
name: string;
|
|
23
|
-
description: string;
|
|
24
|
-
icon: string;
|
|
25
|
-
};
|
|
26
|
-
}[];
|
|
27
|
-
};
|
|
28
|
-
export default runtime;
|
|
7
|
+
export { runtime, runtime as default } from './runtime';
|
|
29
8
|
//# sourceMappingURL=runtime-lit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-lit.d.ts","sourceRoot":"","sources":["../src/runtime-lit.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"runtime-lit.d.ts","sourceRoot":"","sources":["../src/runtime-lit.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -2,16 +2,14 @@
|
|
|
2
2
|
* Adaptive Chatbot - Runtime Module
|
|
3
3
|
*
|
|
4
4
|
* Runtime manifest for the AI chat assistant adaptive.
|
|
5
|
-
*
|
|
5
|
+
* Uses @syntrologie/chat for the UI — no React dependency.
|
|
6
6
|
*/
|
|
7
7
|
export declare const runtime: {
|
|
8
8
|
id: string;
|
|
9
9
|
version: string;
|
|
10
10
|
name: string;
|
|
11
11
|
description: string;
|
|
12
|
-
/** No action executors — chatbot uses existing action kinds via applyBatch */
|
|
13
12
|
executors: never[];
|
|
14
|
-
/** Widget definitions for the runtime's WidgetRegistry */
|
|
15
13
|
widgets: {
|
|
16
14
|
id: string;
|
|
17
15
|
component: {
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;CAmBnB,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
package/dist/runtime.js
CHANGED
|
@@ -1,41 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
metadata: {
|
|
25
|
-
name: 'Chat Assistant',
|
|
26
|
-
description: 'AI-powered chat assistant that can execute DOM actions',
|
|
27
|
-
icon: '💬',
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
id: 'adaptive-chatbot:assistant-lit',
|
|
32
|
-
component: ChatAssistantLitMountable,
|
|
33
|
-
metadata: {
|
|
34
|
-
name: 'Chat Assistant (Lit)',
|
|
35
|
-
description: 'Lit web component chat assistant — no React dependency',
|
|
36
|
-
icon: '💬',
|
|
37
|
-
},
|
|
38
|
-
},
|
|
39
|
-
],
|
|
1
|
+
import {
|
|
2
|
+
ChatAssistantLitMountable
|
|
3
|
+
} from "./chunk-FI7F22ED.js";
|
|
4
|
+
import "./chunk-V6TY7KAL.js";
|
|
5
|
+
|
|
6
|
+
// src/runtime.ts
|
|
7
|
+
var runtime = {
|
|
8
|
+
id: "adaptive-chatbot",
|
|
9
|
+
version: "2.0.0",
|
|
10
|
+
name: "Chat Assistant",
|
|
11
|
+
description: "AI chat assistant powered by @syntrologie/chat with SSE transport",
|
|
12
|
+
executors: [],
|
|
13
|
+
widgets: [
|
|
14
|
+
{
|
|
15
|
+
id: "adaptive-chatbot:assistant",
|
|
16
|
+
component: ChatAssistantLitMountable,
|
|
17
|
+
metadata: {
|
|
18
|
+
name: "Chat Assistant",
|
|
19
|
+
description: "AI-powered chat assistant with SSE streaming and A2UI support",
|
|
20
|
+
icon: "\u{1F4AC}"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
]
|
|
40
24
|
};
|
|
41
|
-
|
|
25
|
+
var runtime_default = runtime;
|
|
26
|
+
export {
|
|
27
|
+
runtime_default as default,
|
|
28
|
+
runtime
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/runtime.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Adaptive Chatbot - Runtime Module\n *\n * Runtime manifest for the AI chat assistant adaptive.\n * Uses @syntrologie/chat for the UI \u2014 no React dependency.\n */\n\nimport { ChatAssistantLitMountable } from './ChatAssistantLit';\n\nexport const runtime = {\n id: 'adaptive-chatbot',\n version: '2.0.0',\n name: 'Chat Assistant',\n description: 'AI chat assistant powered by @syntrologie/chat with SSE transport',\n\n executors: [],\n\n widgets: [\n {\n id: 'adaptive-chatbot:assistant',\n component: ChatAssistantLitMountable,\n metadata: {\n name: 'Chat Assistant',\n description: 'AI-powered chat assistant with SSE streaming and A2UI support',\n icon: '\uD83D\uDCAC',\n },\n },\n ],\n};\n\nexport default runtime;\n"],
|
|
5
|
+
"mappings": ";;;;;;AASO,IAAM,UAAU;AAAA,EACrB,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,MAAM;AAAA,EACN,aAAa;AAAA,EAEb,WAAW,CAAC;AAAA,EAEZ,SAAS;AAAA,IACP;AAAA,MACE,IAAI;AAAA,MACJ,WAAW;AAAA,MACX,UAAU;AAAA,QACR,MAAM;AAAA,QACN,aAAa;AAAA,QACb,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAO,kBAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/dist/schema.d.ts
CHANGED
|
@@ -13,27 +13,33 @@ export declare const configSchema: z.ZodObject<{
|
|
|
13
13
|
greeting: z.ZodDefault<z.ZodString>;
|
|
14
14
|
/** Maximum number of history messages sent to the backend */
|
|
15
15
|
maxHistory: z.ZodDefault<z.ZodNumber>;
|
|
16
|
+
/** Quick-reply suggestions shown in the empty state */
|
|
17
|
+
suggestions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
16
18
|
}, "strip", z.ZodTypeAny, {
|
|
17
19
|
backendUrl: string;
|
|
18
20
|
greeting: string;
|
|
19
21
|
maxHistory: number;
|
|
22
|
+
suggestions?: string[] | undefined;
|
|
20
23
|
mlflowRunId?: string | undefined;
|
|
21
24
|
}, {
|
|
22
25
|
backendUrl: string;
|
|
26
|
+
suggestions?: string[] | undefined;
|
|
27
|
+
mlflowRunId?: string | undefined;
|
|
23
28
|
greeting?: string | undefined;
|
|
24
29
|
maxHistory?: number | undefined;
|
|
25
|
-
mlflowRunId?: string | undefined;
|
|
26
30
|
}>;
|
|
27
31
|
export type ChatbotConfigSchema = z.infer<typeof configSchema>;
|
|
28
32
|
export declare function validateChatbotConfig(data: unknown): z.SafeParseReturnType<{
|
|
29
33
|
backendUrl: string;
|
|
34
|
+
suggestions?: string[] | undefined;
|
|
35
|
+
mlflowRunId?: string | undefined;
|
|
30
36
|
greeting?: string | undefined;
|
|
31
37
|
maxHistory?: number | undefined;
|
|
32
|
-
mlflowRunId?: string | undefined;
|
|
33
38
|
}, {
|
|
34
39
|
backendUrl: string;
|
|
35
40
|
greeting: string;
|
|
36
41
|
maxHistory: number;
|
|
42
|
+
suggestions?: string[] | undefined;
|
|
37
43
|
mlflowRunId?: string | undefined;
|
|
38
44
|
}>;
|
|
39
45
|
/**
|
|
@@ -53,16 +59,20 @@ export declare const tileWidgets: {
|
|
|
53
59
|
greeting: z.ZodDefault<z.ZodString>;
|
|
54
60
|
/** Maximum number of history messages sent to the backend */
|
|
55
61
|
maxHistory: z.ZodDefault<z.ZodNumber>;
|
|
62
|
+
/** Quick-reply suggestions shown in the empty state */
|
|
63
|
+
suggestions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
56
64
|
}, "strip", z.ZodTypeAny, {
|
|
57
65
|
backendUrl: string;
|
|
58
66
|
greeting: string;
|
|
59
67
|
maxHistory: number;
|
|
68
|
+
suggestions?: string[] | undefined;
|
|
60
69
|
mlflowRunId?: string | undefined;
|
|
61
70
|
}, {
|
|
62
71
|
backendUrl: string;
|
|
72
|
+
suggestions?: string[] | undefined;
|
|
73
|
+
mlflowRunId?: string | undefined;
|
|
63
74
|
greeting?: string | undefined;
|
|
64
75
|
maxHistory?: number | undefined;
|
|
65
|
-
mlflowRunId?: string | undefined;
|
|
66
76
|
}>;
|
|
67
77
|
}[];
|
|
68
78
|
//# sourceMappingURL=schema.d.ts.map
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY;IACvB,4CAA4C;;IAE5C,4CAA4C;;IAE5C,iDAAiD;;IAEjD,6DAA6D
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY;IACvB,4CAA4C;;IAE5C,4CAA4C;;IAE5C,iDAAiD;;IAEjD,6DAA6D;;IAE7D,uDAAuD;;;;;;;;;;;;;;EAEvD,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAE/D,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO;;;;;;;;;;;;GAElD;AAMD;;;;GAIG;AACH,eAAO,MAAM,WAAW;;;;QA3BtB,4CAA4C;;QAE5C,4CAA4C;;QAE5C,iDAAiD;;QAEjD,6DAA6D;;QAE7D,uDAAuD;;;;;;;;;;;;;;;GAyBxD,CAAC"}
|
package/dist/schema.js
CHANGED
|
@@ -1,34 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
import "./chunk-V6TY7KAL.js";
|
|
2
|
+
|
|
3
|
+
// src/schema.ts
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
var configSchema = z.object({
|
|
6
|
+
/** Backend URL for the chat API endpoint */
|
|
7
|
+
backendUrl: z.string().min(1, "Backend URL is required"),
|
|
8
|
+
/** MLflow run ID for experiment tracking */
|
|
9
|
+
mlflowRunId: z.string().optional(),
|
|
10
|
+
/** Greeting message shown when the chat opens */
|
|
11
|
+
greeting: z.string().default("Hi! How can I help?"),
|
|
12
|
+
/** Maximum number of history messages sent to the backend */
|
|
13
|
+
maxHistory: z.number().int().min(1).max(100).default(20),
|
|
14
|
+
/** Quick-reply suggestions shown in the empty state */
|
|
15
|
+
suggestions: z.array(z.string()).optional()
|
|
16
16
|
});
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
function validateChatbotConfig(data) {
|
|
18
|
+
return configSchema.safeParse(data);
|
|
19
19
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
* can inject if/then constraints on tile.props.
|
|
27
|
-
*/
|
|
28
|
-
export const tileWidgets = [
|
|
29
|
-
{
|
|
30
|
-
widget: 'adaptive-chatbot:assistant',
|
|
31
|
-
defName: 'chatbotAssistantProps',
|
|
32
|
-
propsSchema: configSchema,
|
|
33
|
-
},
|
|
20
|
+
var tileWidgets = [
|
|
21
|
+
{
|
|
22
|
+
widget: "adaptive-chatbot:assistant",
|
|
23
|
+
defName: "chatbotAssistantProps",
|
|
24
|
+
propsSchema: configSchema
|
|
25
|
+
}
|
|
34
26
|
];
|
|
27
|
+
export {
|
|
28
|
+
configSchema,
|
|
29
|
+
tileWidgets,
|
|
30
|
+
validateChatbotConfig
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/schema.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Adaptive Chatbot - Config Schema\n *\n * Zod schema for validating chatbot widget configuration.\n */\n\nimport { z } from 'zod';\n\nexport const configSchema = z.object({\n /** Backend URL for the chat API endpoint */\n backendUrl: z.string().min(1, 'Backend URL is required'),\n /** MLflow run ID for experiment tracking */\n mlflowRunId: z.string().optional(),\n /** Greeting message shown when the chat opens */\n greeting: z.string().default('Hi! How can I help?'),\n /** Maximum number of history messages sent to the backend */\n maxHistory: z.number().int().min(1).max(100).default(20),\n /** Quick-reply suggestions shown in the empty state */\n suggestions: z.array(z.string()).optional(),\n});\n\nexport type ChatbotConfigSchema = z.infer<typeof configSchema>;\n\nexport function validateChatbotConfig(data: unknown) {\n return configSchema.safeParse(data);\n}\n\n// ============================================================================\n// Tile Widget Props Export\n// ============================================================================\n\n/**\n * Tile widget definitions for unified JSON Schema generation.\n * Maps widget IDs to their props validation schema so the build script\n * can inject if/then constraints on tile.props.\n */\nexport const tileWidgets = [\n {\n widget: 'adaptive-chatbot:assistant',\n defName: 'chatbotAssistantProps',\n propsSchema: configSchema,\n },\n];\n"],
|
|
5
|
+
"mappings": ";;;AAMA,SAAS,SAAS;AAEX,IAAM,eAAe,EAAE,OAAO;AAAA;AAAA,EAEnC,YAAY,EAAE,OAAO,EAAE,IAAI,GAAG,yBAAyB;AAAA;AAAA,EAEvD,aAAa,EAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAEjC,UAAU,EAAE,OAAO,EAAE,QAAQ,qBAAqB;AAAA;AAAA,EAElD,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,QAAQ,EAAE;AAAA;AAAA,EAEvD,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AAC5C,CAAC;AAIM,SAAS,sBAAsB,MAAe;AACnD,SAAO,aAAa,UAAU,IAAI;AACpC;AAWO,IAAM,cAAc;AAAA,EACzB;AAAA,IACE,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,aAAa;AAAA,EACf;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,41 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Adaptive Chatbot - Types
|
|
3
|
-
*
|
|
4
|
-
* Type definitions for the AI chat assistant adaptive.
|
|
5
3
|
*/
|
|
6
|
-
export type MessageRole = 'user' | 'assistant';
|
|
7
|
-
export interface ChatMessage {
|
|
8
|
-
id: string;
|
|
9
|
-
role: MessageRole;
|
|
10
|
-
text: string;
|
|
11
|
-
timestamp: number;
|
|
12
|
-
}
|
|
13
|
-
export interface ChatApiRequest {
|
|
14
|
-
message: string;
|
|
15
|
-
history: Array<{
|
|
16
|
-
role: MessageRole;
|
|
17
|
-
content: string;
|
|
18
|
-
}>;
|
|
19
|
-
mlflow_run_id?: string;
|
|
20
|
-
current_config?: Record<string, unknown>;
|
|
21
|
-
}
|
|
22
|
-
export interface ChatApiResponse {
|
|
23
|
-
response: string;
|
|
24
|
-
success: boolean;
|
|
25
|
-
}
|
|
26
|
-
export interface ActionBlock {
|
|
27
|
-
kind: string;
|
|
28
|
-
[key: string]: unknown;
|
|
29
|
-
}
|
|
30
|
-
export interface ParsedResponse {
|
|
31
|
-
displayText: string;
|
|
32
|
-
actions: ActionBlock[];
|
|
33
|
-
}
|
|
34
4
|
export interface ChatbotConfig {
|
|
35
5
|
backendUrl: string;
|
|
36
6
|
mlflowRunId?: string;
|
|
37
7
|
greeting?: string;
|
|
38
8
|
maxHistory?: number;
|
|
9
|
+
suggestions?: string[];
|
|
39
10
|
}
|
|
40
11
|
export interface ActionHandle {
|
|
41
12
|
id: string;
|
|
@@ -57,15 +28,6 @@ export interface ChatbotWidgetRuntime {
|
|
|
57
28
|
events: {
|
|
58
29
|
publish: (name: string, props?: Record<string, unknown>) => void;
|
|
59
30
|
};
|
|
60
|
-
getActiveSignals: () => ActiveSignal[];
|
|
61
|
-
getContextConfig: () => ContextConfig;
|
|
62
|
-
}
|
|
63
|
-
/** A behavioral signal that has fired in the current browser session */
|
|
64
|
-
export interface ActiveSignal {
|
|
65
|
-
name: string;
|
|
66
|
-
firedAt: number;
|
|
67
31
|
}
|
|
68
|
-
/** Workspace-configured key/value pairs injected into get_context responses */
|
|
69
|
-
export type ContextConfig = Record<string, unknown>;
|
|
70
32
|
export type { EditorPanelProps } from '@syntrologie/sdk-contracts';
|
|
71
33
|
//# 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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,SAAS,EAAE,MAAM,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,SAAS,EAAE,MAAM,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAClD,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE;QACN,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;KAClE,CAAC;CACH;AAED,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC"}
|