@aparte/core 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -6
- package/dist/client/aparte-client.d.ts +113 -47
- package/dist/client/aparte-client.d.ts.map +1 -1
- package/dist/client/lifecycle-events.d.ts +55 -0
- package/dist/client/lifecycle-events.d.ts.map +1 -0
- package/dist/client/stream-adapter.d.ts +11 -5
- package/dist/client/stream-adapter.d.ts.map +1 -1
- package/dist/client/xml-artifact-feed.d.ts +76 -0
- package/dist/client/xml-artifact-feed.d.ts.map +1 -0
- package/dist/components/bubble/aparte-chat-bubble.d.ts +35 -8
- package/dist/components/bubble/aparte-chat-bubble.d.ts.map +1 -1
- package/dist/components/chat/aparte-chat.d.ts +0 -6
- package/dist/components/chat/aparte-chat.d.ts.map +1 -1
- package/dist/components/composer/aparte-composer-action.d.ts +18 -3
- package/dist/components/composer/aparte-composer-action.d.ts.map +1 -1
- package/dist/components/composer/aparte-composer-add-attachment.d.ts.map +1 -1
- package/dist/components/composer/aparte-composer-attachments.d.ts +1 -1
- package/dist/components/composer/aparte-composer-attachments.d.ts.map +1 -1
- package/dist/components/composer/aparte-composer-cancel.d.ts.map +1 -1
- package/dist/components/composer/aparte-composer-input.d.ts +0 -2
- package/dist/components/composer/aparte-composer-input.d.ts.map +1 -1
- package/dist/components/composer/aparte-composer-send.d.ts +5 -0
- package/dist/components/composer/aparte-composer-send.d.ts.map +1 -1
- package/dist/components/composer/aparte-composer-toolbar.d.ts +4 -0
- package/dist/components/composer/aparte-composer-toolbar.d.ts.map +1 -1
- package/dist/components/composer/aparte-composer.d.ts +64 -6
- package/dist/components/composer/aparte-composer.d.ts.map +1 -1
- package/dist/components/composer/index.d.ts +1 -1
- package/dist/components/composer/index.d.ts.map +1 -1
- package/dist/components/conversation-list/aparte-conversation-list.d.ts +2 -5
- package/dist/components/conversation-list/aparte-conversation-list.d.ts.map +1 -1
- package/dist/components/conversation-list/index.d.ts +1 -1
- package/dist/components/conversation-list/index.d.ts.map +1 -1
- package/dist/components/elicitation/aparte-elicitation.d.ts +63 -3
- package/dist/components/elicitation/aparte-elicitation.d.ts.map +1 -1
- package/dist/components/index.d.ts +2 -2
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/status/aparte-chat-status.d.ts +8 -6
- package/dist/components/status/aparte-chat-status.d.ts.map +1 -1
- package/dist/components/viewport/aparte-chat-viewport.d.ts +35 -9
- package/dist/components/viewport/aparte-chat-viewport.d.ts.map +1 -1
- package/dist/config/action-provider.d.ts +4 -4
- package/dist/config/aparte-config.d.ts +124 -41
- package/dist/config/aparte-config.d.ts.map +1 -1
- package/dist/config/attachment-renderer.d.ts +1 -1
- package/dist/config/avatar-provider.d.ts +1 -1
- package/dist/config/config-context.d.ts +66 -11
- package/dist/config/config-context.d.ts.map +1 -1
- package/dist/config/elicitation-field-renderer.d.ts +73 -0
- package/dist/config/elicitation-field-renderer.d.ts.map +1 -0
- package/dist/config/error-renderer.d.ts +1 -1
- package/dist/config/icon-provider.d.ts +2 -2
- package/dist/config/icon-provider.d.ts.map +1 -1
- package/dist/config/index.d.ts +7 -5
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/locale.d.ts +43 -2
- package/dist/config/locale.d.ts.map +1 -1
- package/dist/config/sanitize.d.ts +1 -7
- package/dist/config/sanitize.d.ts.map +1 -1
- package/dist/config/sibling-nav-renderer.d.ts +1 -1
- package/dist/config/skeleton-provider.d.ts +2 -2
- package/dist/config/skeleton-provider.d.ts.map +1 -1
- package/dist/config/status-renderer.d.ts +1 -1
- package/dist/conversations/conversation-controller.d.ts +19 -5
- package/dist/conversations/conversation-controller.d.ts.map +1 -1
- package/dist/conversations/conversation-manager.d.ts +2 -2
- package/dist/conversations/conversation-manager.d.ts.map +1 -1
- package/dist/conversations/index.d.ts +1 -1
- package/dist/conversations/index.d.ts.map +1 -1
- package/dist/conversations/types.d.ts +1 -1
- package/dist/custom-elements.json +7962 -6175
- package/dist/elicitation/index.d.ts +1 -1
- package/dist/elicitation/panel.d.ts +32 -0
- package/dist/elicitation/panel.d.ts.map +1 -1
- package/dist/elicitation/types.d.ts +29 -2
- package/dist/elicitation/types.d.ts.map +1 -1
- package/dist/host/aparte-chat-host.d.ts +3 -3
- package/dist/host/aparte-chat-host.d.ts.map +1 -1
- package/dist/{index-Dn7TH14G.js → index-BieFbKeW.js} +1795 -1238
- package/dist/index-BieFbKeW.js.map +1 -0
- package/dist/index.css +311 -21
- package/dist/index.d.ts +21 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +447 -200
- package/dist/index.js.map +1 -1
- package/dist/index.node.d.ts +22 -13
- package/dist/index.node.d.ts.map +1 -1
- package/dist/index.node.js +54 -46
- package/dist/index.node.js.map +1 -1
- package/dist/interop/element-props.d.ts +1 -1
- package/dist/interop/element-props.d.ts.map +1 -1
- package/dist/parsers/aparte-stream-parser.d.ts.map +1 -1
- package/dist/primitives/index.d.ts +1 -1
- package/dist/primitives/index.d.ts.map +1 -1
- package/dist/primitives/select/aparte-optgroup.d.ts +15 -4
- package/dist/primitives/select/aparte-optgroup.d.ts.map +1 -1
- package/dist/primitives/select/aparte-option.d.ts +0 -5
- package/dist/primitives/select/aparte-option.d.ts.map +1 -1
- package/dist/primitives/select/aparte-select.d.ts +17 -5
- package/dist/primitives/select/aparte-select.d.ts.map +1 -1
- package/dist/primitives/select/index.d.ts +1 -1
- package/dist/primitives/select/index.d.ts.map +1 -1
- package/dist/renderers/markdown-stream.d.ts +42 -0
- package/dist/renderers/markdown-stream.d.ts.map +1 -0
- package/dist/renderers/segment-renderers.d.ts +20 -14
- package/dist/renderers/segment-renderers.d.ts.map +1 -1
- package/dist/renderers/segments/artifact/binary-file.d.ts +45 -0
- package/dist/renderers/segments/artifact/binary-file.d.ts.map +1 -0
- package/dist/renderers/segments/artifact/card.d.ts +3 -0
- package/dist/renderers/segments/artifact/card.d.ts.map +1 -0
- package/dist/renderers/segments/artifact/preview-document.d.ts +27 -0
- package/dist/renderers/segments/artifact/preview-document.d.ts.map +1 -0
- package/dist/renderers/segments/artifact/shared.d.ts +12 -0
- package/dist/renderers/segments/artifact/shared.d.ts.map +1 -0
- package/dist/renderers/segments/code.d.ts +3 -0
- package/dist/renderers/segments/code.d.ts.map +1 -0
- package/dist/renderers/segments/error.d.ts +3 -0
- package/dist/renderers/segments/error.d.ts.map +1 -0
- package/dist/renderers/segments/file-tree.d.ts +3 -0
- package/dist/renderers/segments/file-tree.d.ts.map +1 -0
- package/dist/renderers/segments/pipeline-waiting.d.ts +3 -0
- package/dist/renderers/segments/pipeline-waiting.d.ts.map +1 -0
- package/dist/renderers/segments/progress.d.ts +3 -0
- package/dist/renderers/segments/progress.d.ts.map +1 -0
- package/dist/renderers/segments/terminal.d.ts +3 -0
- package/dist/renderers/segments/terminal.d.ts.map +1 -0
- package/dist/renderers/segments/text.d.ts +10 -0
- package/dist/renderers/segments/text.d.ts.map +1 -0
- package/dist/renderers/segments/thinking.d.ts +3 -0
- package/dist/renderers/segments/thinking.d.ts.map +1 -0
- package/dist/renderers/segments/tool-call.d.ts +3 -0
- package/dist/renderers/segments/tool-call.d.ts.map +1 -0
- package/dist/runtime/message-repository.d.ts +3 -3
- package/dist/runtime/message-repository.d.ts.map +1 -1
- package/dist/transport/backend-handler.d.ts +19 -7
- package/dist/transport/backend-handler.d.ts.map +1 -1
- package/dist/transport/backend-transport.d.ts +1 -1
- package/dist/transport/backend-transport.d.ts.map +1 -1
- package/dist/transport/direct-transport.d.ts +4 -4
- package/dist/transport/direct-transport.d.ts.map +1 -1
- package/dist/transport/index.d.ts +2 -2
- package/dist/transport/index.d.ts.map +1 -1
- package/dist/transport/types.d.ts +3 -3
- package/dist/types/element-map.d.ts +69 -0
- package/dist/types/element-map.d.ts.map +1 -0
- package/dist/types/event-map.d.ts +84 -23
- package/dist/types/event-map.d.ts.map +1 -1
- package/dist/types/events.d.ts +206 -64
- package/dist/types/events.d.ts.map +1 -1
- package/dist/types/index.d.ts +4 -5
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/model-provider.d.ts +100 -54
- package/dist/types/model-provider.d.ts.map +1 -1
- package/dist/types/models.d.ts +29 -7
- package/dist/types/models.d.ts.map +1 -1
- package/dist/types/segments.d.ts +1 -8
- package/dist/types/segments.d.ts.map +1 -1
- package/dist/types/theming.d.ts +25 -37
- package/dist/types/theming.d.ts.map +1 -1
- package/dist/types/tools.d.ts +60 -15
- package/dist/types/tools.d.ts.map +1 -1
- package/dist/utils/escape.d.ts +46 -0
- package/dist/utils/escape.d.ts.map +1 -0
- package/dist/utils/files-to-attachments.d.ts +18 -1
- package/dist/utils/files-to-attachments.d.ts.map +1 -1
- package/dist/utils/uuid.d.ts +26 -0
- package/dist/utils/uuid.d.ts.map +1 -0
- package/package.json +3 -5
- package/dist/index-Dn7TH14G.js.map +0 -1
- package/dist/types/providers.d.ts +0 -93
- package/dist/types/providers.d.ts.map +0 -1
package/dist/config/index.d.ts
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { aparteGlobalConfig, AparteConfig, APARTE_DEFAULT_BUBBLE_ACTIONS, APARTE_DEFAULT_HOST_HANDLERS } from './aparte-config.js';
|
|
2
2
|
export { resolveConfig, attachConfig, detachConfig, runWithConfig, contextConfig, APARTE_HOST_ATTR } from './config-context.js';
|
|
3
|
-
export type {
|
|
3
|
+
export type { AparteConfigAware } from './config-context.js';
|
|
4
|
+
export type { AparteConfigChangeEventDetail, AparteMarkdownProvider, AparteStreamingMarkdownProvider, AparteStreamingMarkdownRenderer, AparteHighlightProvider, AparteSystemPromptVarsProvider, AparteModelPreference, AparteModelPreferenceProvider, AparteArtifactPreviewBuilder } from './aparte-config.js';
|
|
4
5
|
export type { AparteSanitizer } from './sanitize.js';
|
|
5
6
|
export { defaultSanitizer, isSafeUrl } from './sanitize.js';
|
|
6
7
|
export type { AparteIconProvider, AparteIconName } from './icon-provider.js';
|
|
7
|
-
export {
|
|
8
|
+
export { APARTE_DEFAULT_ICON_FALLBACKS } from './icon-provider.js';
|
|
8
9
|
export type { AparteSkeletonType, AparteSkeletonProvider } from './skeleton-provider.js';
|
|
9
|
-
export {
|
|
10
|
+
export { APARTE_DEFAULT_SKELETON_FALLBACKS } from './skeleton-provider.js';
|
|
10
11
|
export type { AparteAvatarProvider } from './avatar-provider.js';
|
|
11
12
|
export type { AparteStatusRenderer } from './status-renderer.js';
|
|
12
13
|
export type { AparteErrorRenderer } from './error-renderer.js';
|
|
13
14
|
export type { AparteAttachmentRenderer } from './attachment-renderer.js';
|
|
15
|
+
export type { AparteElicitationFieldRenderer, AparteElicitationFieldContext, AparteElicitationFieldControl, } from './elicitation-field-renderer.js';
|
|
14
16
|
export type { AparteSiblingNavRenderer } from './sibling-nav-renderer.js';
|
|
15
17
|
export type { AparteBubbleShellRenderer } from './bubble-shell-renderer.js';
|
|
16
18
|
export type { AparteLocale } from './locale.js';
|
|
17
|
-
export {
|
|
19
|
+
export { APARTE_DEFAULT_LOCALE } from './locale.js';
|
|
18
20
|
export type { AparteAction, AparteActionZone } from './action-provider.js';
|
|
19
21
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AACnI,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAChI,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,YAAY,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,+BAA+B,EAAE,+BAA+B,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAC/S,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC5D,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACnE,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,iCAAiC,EAAE,MAAM,wBAAwB,CAAC;AAC3E,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACzE,YAAY,EACR,8BAA8B,EAC9B,6BAA6B,EAC7B,6BAA6B,GAChC,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,YAAY,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/config/locale.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Defines all translatable strings for the chat interface.
|
|
5
5
|
* The core keeps only the English default in memory.
|
|
6
|
-
* Other languages are injected via
|
|
6
|
+
* Other languages are injected via aparteGlobalConfig.setLocale().
|
|
7
7
|
*/
|
|
8
8
|
export interface AparteLocale {
|
|
9
9
|
inputPlaceholder: string;
|
|
@@ -47,6 +47,47 @@ export interface AparteLocale {
|
|
|
47
47
|
archiveConversation?: string;
|
|
48
48
|
/** Aria-label for the unarchive conversation button (default: "Unarchive conversation") */
|
|
49
49
|
unarchiveConversation?: string;
|
|
50
|
+
/** The free-text fallback option in a choice (default: "Other…") */
|
|
51
|
+
elicitationOther?: string;
|
|
52
|
+
/** Placeholder of the free-text input that option reveals (default: "Type your answer…") */
|
|
53
|
+
elicitationOtherPlaceholder?: string;
|
|
54
|
+
/** Accessible name of that input, which has no visible label (default: "Custom answer") */
|
|
55
|
+
elicitationOtherLabel?: string;
|
|
56
|
+
/**
|
|
57
|
+
* The send button while a question panel is open, where it submits an ANSWER
|
|
58
|
+
* rather than sending a message (default: "Submit").
|
|
59
|
+
*
|
|
60
|
+
* The component has been reading this key since the panel API existed; it was
|
|
61
|
+
* never declared, so `t()` returned "" and the hardcoded fallback showed. A key
|
|
62
|
+
* read and never declared is worse than a literal: it looks translated.
|
|
63
|
+
*/
|
|
64
|
+
submitButton?: string;
|
|
65
|
+
/**
|
|
66
|
+
* The send button while a form of several questions has more ahead — it advances
|
|
67
|
+
* instead of submitting (default: "Next").
|
|
68
|
+
*
|
|
69
|
+
* This key existed briefly for a Next button inside the panel, and went when that
|
|
70
|
+
* button did. It comes back because the MEANING came back, on a different element:
|
|
71
|
+
* the composer's one button, which is where it belonged.
|
|
72
|
+
*/
|
|
73
|
+
elicitationNext?: string;
|
|
74
|
+
/**
|
|
75
|
+
* The affordance that declines the request (default: "Skip").
|
|
76
|
+
*
|
|
77
|
+
* "Skip" reads as "skip THIS one" on a form of several questions, while it
|
|
78
|
+
* declines the whole request — including questions already answered. That is MCP's
|
|
79
|
+
* `decline` and the right behaviour. It was briefly renamed to carry the warning;
|
|
80
|
+
* reverted, because the RECEIPT now shows the outcome unambiguously (one declined
|
|
81
|
+
* row, no question attached), so the label no longer has to do that work — and
|
|
82
|
+
* "Skip" is the short conventional word for it.
|
|
83
|
+
*/
|
|
84
|
+
elicitationSkip?: string;
|
|
85
|
+
/** Affirmative choice of a yes/no question (default: "Yes") */
|
|
86
|
+
elicitationYes?: string;
|
|
87
|
+
/** Negative choice of a yes/no question (default: "No") */
|
|
88
|
+
elicitationNo?: string;
|
|
89
|
+
/** Last-resort accessible name for a free-text answer (default: "Your answer") */
|
|
90
|
+
elicitationAnswerLabel?: string;
|
|
50
91
|
/** Direction of the text (ltr or rtl) - defaults to ltr */
|
|
51
92
|
direction?: 'ltr' | 'rtl';
|
|
52
93
|
/** Allow extensions for plugins */
|
|
@@ -56,5 +97,5 @@ export interface AparteLocale {
|
|
|
56
97
|
* Default English Locale (Zero-dependency)
|
|
57
98
|
* Hardcoded to ensure the core works out-of-the-box.
|
|
58
99
|
*/
|
|
59
|
-
export declare const
|
|
100
|
+
export declare const APARTE_DEFAULT_LOCALE: AparteLocale;
|
|
60
101
|
//# sourceMappingURL=locale.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../src/config/locale.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,YAAY;IAEzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IAGnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IAGd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAGhB,GAAG,EAAE,MAAM,CAAC;IAGZ,IAAI,EAAE,MAAM,CAAC;IAGb,oEAAoE;IACpE,YAAY,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,iBAAiB,EAAE,MAAM,CAAC;IAG1B,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IAGvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uFAAuF;IACvF,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2FAA2F;IAC3F,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAG/B,2DAA2D;IAC3D,SAAS,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAE1B,mCAAmC;IACnC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACrC;AAED;;;GAGG;AACH,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../src/config/locale.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,YAAY;IAEzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IAGnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IAGd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAGhB,GAAG,EAAE,MAAM,CAAC;IAGZ,IAAI,EAAE,MAAM,CAAC;IAGb,oEAAoE;IACpE,YAAY,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,iBAAiB,EAAE,MAAM,CAAC;IAG1B,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IAGvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uFAAuF;IACvF,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2FAA2F;IAC3F,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAG/B,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4FAA4F;IAC5F,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,2FAA2F;IAC3F,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kFAAkF;IAClF,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAGhC,2DAA2D;IAC3D,SAAS,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAE1B,mCAAmC;IACnC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACrC;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,YA2CnC,CAAC"}
|
|
@@ -12,15 +12,9 @@
|
|
|
12
12
|
* `DOMParser.parseFromString`), the tree is rebuilt keeping only known-safe tags
|
|
13
13
|
* and attributes, then re-serialized. It is deliberately conservative and covers
|
|
14
14
|
* the realistic threat model (LLM-emitted markup). For hardened, audited
|
|
15
|
-
* coverage, register DOMPurify via `
|
|
15
|
+
* coverage, register DOMPurify via `aparteGlobalConfig.setHtmlSanitizer`.
|
|
16
16
|
*/
|
|
17
17
|
export type AparteSanitizer = (html: string) => string;
|
|
18
|
-
/**
|
|
19
|
-
* True when a URL is safe to place in a `href`/`src` attribute. Exported so a
|
|
20
|
-
* streaming renderer (which bypasses the one-shot `sanitizeHtml`) can apply the
|
|
21
|
-
* same URL policy live. `tag` is the host element ('a', 'img', …) — `data:image`
|
|
22
|
-
* URLs are only allowed on `img`.
|
|
23
|
-
*/
|
|
24
18
|
export declare function isSafeUrl(value: string, tag: string): boolean;
|
|
25
19
|
/**
|
|
26
20
|
* The built-in sanitizer. Parses `html` with the platform DOMParser, rebuilds an
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/config/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/config/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;AAwGvD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAQ7D;AA6GD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,eAY9B,CAAC"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* dispatch your own events / use the imperative API from your rendered output.
|
|
13
13
|
*
|
|
14
14
|
* @example
|
|
15
|
-
*
|
|
15
|
+
* aparteGlobalConfig.setSiblingNavRenderer(({ count, index }) =>
|
|
16
16
|
* Array.from({ length: count }, (_, i) =>
|
|
17
17
|
* `<span class="dot${i === index ? ' active' : ''}"></span>`).join(''));
|
|
18
18
|
*
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @example
|
|
8
8
|
* // Register a skeleton provider (e.g. an Angular ngx-skeleton-loader bridge)
|
|
9
|
-
*
|
|
9
|
+
* aparteGlobalConfig.setSkeletonProvider({
|
|
10
10
|
* message: () => '<ngx-skeleton-loader count="3"></ngx-skeleton-loader>',
|
|
11
11
|
* code: () => '<ngx-skeleton-loader appearance="line" count="5"></ngx-skeleton-loader>',
|
|
12
12
|
* // ...
|
|
@@ -22,5 +22,5 @@ export interface AparteSkeletonProvider {
|
|
|
22
22
|
* Minimal fallback skeletons - zero CSS animations, just structure
|
|
23
23
|
* Used when no skeleton plugin is installed
|
|
24
24
|
*/
|
|
25
|
-
export declare const
|
|
25
|
+
export declare const APARTE_DEFAULT_SKELETON_FALLBACKS: Record<AparteSkeletonType, string>;
|
|
26
26
|
//# sourceMappingURL=skeleton-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skeleton-provider.d.ts","sourceRoot":"","sources":["../../src/config/skeleton-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,+CAA+C;AAC/C,MAAM,MAAM,kBAAkB,GACxB,SAAS,GACT,MAAM,GACN,UAAU,GACV,OAAO,GACP,MAAM,GACN,MAAM,CAAC;AAEb,MAAM,WAAW,sBAAsB;IACnC,4CAA4C;IAC5C,WAAW,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,MAAM,CAAC;CACrD;AAED;;;GAGG;AACH,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"skeleton-provider.d.ts","sourceRoot":"","sources":["../../src/config/skeleton-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,+CAA+C;AAC/C,MAAM,MAAM,kBAAkB,GACxB,SAAS,GACT,MAAM,GACN,UAAU,GACV,OAAO,GACP,MAAM,GACN,MAAM,CAAC;AAEb,MAAM,WAAW,sBAAsB;IACnC,4CAA4C;IAC5C,WAAW,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,MAAM,CAAC;CACrD;AAED;;;GAGG;AACH,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAOhF,CAAC"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* @example
|
|
11
11
|
* // A custom spinner, driven by the typing text.
|
|
12
|
-
*
|
|
12
|
+
* aparteGlobalConfig.setStatusRenderer((text) => {
|
|
13
13
|
* const el = document.createElement('div');
|
|
14
14
|
* el.className = 'my-typing';
|
|
15
15
|
* el.textContent = text;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AparteMessage } from '../types/index.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { AparteConversationManager } from './conversation-manager.js';
|
|
3
3
|
import type { ExportedMessageRepository } from '../runtime/message-repository.js';
|
|
4
4
|
/**
|
|
5
5
|
* Abstract binding between a chat UI and the conversation lifecycle.
|
|
@@ -24,7 +24,7 @@ export interface AparteChatBinding {
|
|
|
24
24
|
clearMessages(): void;
|
|
25
25
|
/**
|
|
26
26
|
* Export the full conversation tree for persistence.
|
|
27
|
-
* Optional: only available when the binding wraps a `
|
|
27
|
+
* Optional: only available when the binding wraps a `AparteMessageRepository`
|
|
28
28
|
* (e.g. the vanilla viewport). Returns `undefined` when not supported.
|
|
29
29
|
*/
|
|
30
30
|
exportTree?(): ExportedMessageRepository | undefined;
|
|
@@ -39,9 +39,9 @@ export interface AparteChatBinding {
|
|
|
39
39
|
export interface AparteConversationControllerOptions {
|
|
40
40
|
/**
|
|
41
41
|
* Conversation manager. If omitted, the controller resolves it from
|
|
42
|
-
* `
|
|
42
|
+
* `aparteGlobalConfig.getConversationManager()` when first needed.
|
|
43
43
|
*/
|
|
44
|
-
manager?:
|
|
44
|
+
manager?: AparteConversationManager;
|
|
45
45
|
/**
|
|
46
46
|
* Called whenever a new conversation is created lazily (on first user
|
|
47
47
|
* message in an empty thread). Useful for the parent app to sync the URL.
|
|
@@ -49,7 +49,7 @@ export interface AparteConversationControllerOptions {
|
|
|
49
49
|
onConversationCreated?: (id: string) => void;
|
|
50
50
|
}
|
|
51
51
|
/**
|
|
52
|
-
* Connects an `AparteChatBinding` to a `
|
|
52
|
+
* Connects an `AparteChatBinding` to a `AparteConversationManager`.
|
|
53
53
|
*
|
|
54
54
|
* Responsibilities:
|
|
55
55
|
* - Load messages when `setConversationId(id)` is called.
|
|
@@ -92,11 +92,25 @@ export declare class AparteConversationController {
|
|
|
92
92
|
* conversation lifecycle yet.
|
|
93
93
|
*/
|
|
94
94
|
private _manager;
|
|
95
|
+
/**
|
|
96
|
+
* Degraded mode is legitimate — a host that never opted into the conversation
|
|
97
|
+
* lifecycle has no manager and should not be nagged. Registering one on the
|
|
98
|
+
* WRONG config is not: the four wrapper hooks used to write it to the global
|
|
99
|
+
* singleton unconditionally, so `config` + persistence looked like it worked
|
|
100
|
+
* (the optimistic UI still appends) and saved nothing at all.
|
|
101
|
+
*
|
|
102
|
+
* Warned once per controller, and only in the case that is unambiguously a
|
|
103
|
+
* mistake: no manager here, but one on the global.
|
|
104
|
+
*/
|
|
105
|
+
private _warnedNoManager;
|
|
106
|
+
private _warnManagerOnTheWrongConfig;
|
|
95
107
|
/**
|
|
96
108
|
* Attach event listeners to the binding host. Returns an unbind function.
|
|
97
109
|
*/
|
|
98
110
|
bind(): () => void;
|
|
99
111
|
/** Detach event listeners. */
|
|
112
|
+
/** Release handle for the hydration-retry subscription (see setConversationId). */
|
|
113
|
+
private _stopHydrationRetry;
|
|
100
114
|
unbind(): void;
|
|
101
115
|
/**
|
|
102
116
|
* Switch to (or clear) the active conversation.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-controller.d.ts","sourceRoot":"","sources":["../../src/conversations/conversation-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAoB,MAAM,mBAAmB,CAAC;AACzE,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"conversation-controller.d.ts","sourceRoot":"","sources":["../../src/conversations/conversation-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAoB,MAAM,mBAAmB,CAAC;AACzE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAE3E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAOlF;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,2EAA2E;IAC3E,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IAC7C,0EAA0E;IAC1E,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IAC5C,qCAAqC;IACrC,WAAW,IAAI,aAAa,EAAE,CAAC;IAC/B,kEAAkE;IAClE,aAAa,IAAI,IAAI,CAAC;IACtB;;;;OAIG;IACH,UAAU,CAAC,IAAI,yBAAyB,GAAG,SAAS,CAAC;IACrD;;;;;OAKG;IACH,UAAU,CAAC,CAAC,IAAI,EAAE,yBAAyB,GAAG,IAAI,CAAC;CACtD;AAED,MAAM,WAAW,mCAAmC;IAChD;;;OAGG;IACH,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC;;;OAGG;IACH,qBAAqB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,4BAA4B;IACrC,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,QAAQ,CAAsC;IACtD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,eAAe,CAAgC;IAEvD,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,qBAAqB,CAAqC;IAClE,OAAO,CAAC,mBAAmB,CAA6B;gBAE5C,OAAO,EAAE,iBAAiB,EAAE,OAAO,GAAE,mCAAwC;IAKzF,oEAAoE;IACpE,IAAI,QAAQ,IAAI,MAAM,GAAG,IAAI,CAE5B;IAED;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ;IAUhB;;;;;;;;;OASG;IACH,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,4BAA4B;IAWpC;;OAEG;IACH,IAAI,IAAI,MAAM,IAAI;IA8HlB,8BAA8B;IAC9B,mFAAmF;IACnF,OAAO,CAAC,mBAAmB,CAA6B;IAExD,MAAM,IAAI,IAAI;IA6Cd;;;;;;;;;;OAUG;IACG,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA2HzD;;;;;;;;;OASG;IACH,OAAO,CAAC,cAAc;YA2BR,6BAA6B;CAiD9C"}
|
|
@@ -29,7 +29,7 @@ export declare function applyRetention(messages: AparteMessage[], tree: Exported
|
|
|
29
29
|
*
|
|
30
30
|
* Usage:
|
|
31
31
|
* ```ts
|
|
32
|
-
* const manager = new
|
|
32
|
+
* const manager = new AparteConversationManager(myAdapter);
|
|
33
33
|
* await manager.init(); // load from storage
|
|
34
34
|
* const conv = await manager.createNew(); // returns new AparteConversation
|
|
35
35
|
* ```
|
|
@@ -38,7 +38,7 @@ export declare function applyRetention(messages: AparteMessage[], tree: Exported
|
|
|
38
38
|
* mutation so framework wrappers (Angular signals, Vue reactive, etc.) can
|
|
39
39
|
* react without polling.
|
|
40
40
|
*/
|
|
41
|
-
export declare class
|
|
41
|
+
export declare class AparteConversationManager {
|
|
42
42
|
private _adapter;
|
|
43
43
|
private _conversations;
|
|
44
44
|
private _activeId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-manager.d.ts","sourceRoot":"","sources":["../../src/conversations/conversation-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"conversation-manager.d.ts","sourceRoot":"","sources":["../../src/conversations/conversation-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAIlF,KAAK,QAAQ,GAAG,CAAC,aAAa,EAAE,kBAAkB,EAAE,KAAK,IAAI,CAAC;AAE9D,MAAM,WAAW,0BAA0B;IACvC;;;;;;OAMG;IACH,SAAS,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CACvC;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC1B,QAAQ,EAAE,aAAa,EAAE,EACzB,IAAI,EAAE,yBAAyB,GAAG,SAAS,EAC3C,WAAW,EAAE,MAAM,GACpB;IAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;IAAC,IAAI,EAAE,yBAAyB,GAAG,SAAS,CAAA;CAAE,CAgC5E;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,yBAAyB;IAClC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAwC;gBAE9C,OAAO,EAAE,oBAAoB,EAAE,OAAO,CAAC,EAAE,0BAA0B;IAO/E,yEAAyE;IACnE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B;;;;;;OAMG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAID,IAAI,aAAa,IAAI,kBAAkB,EAAE,CAExC;IAED,IAAI,QAAQ,IAAI,MAAM,GAAG,IAAI,CAE5B;IAED,IAAI,MAAM,IAAI,kBAAkB,GAAG,IAAI,CAGtC;IAED,yDAAyD;IACzD,IAAI,mBAAmB,IAAI,kBAAkB,EAAE,CAI9C;IAED,4CAA4C;IAC5C,IAAI,qBAAqB,IAAI,kBAAkB,EAAE,CAIhD;IAID,uEAAuE;IACjE,SAAS,CAAC,KAAK,SAAa,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAiBhE,2DAA2D;IAC3D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAMxB,2DAA2D;IAC3D,WAAW,IAAI,IAAI;IAKnB,wFAAwF;IAClF,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBnE;;;;OAIG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,IAAI,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BhH,yCAAyC;IACnC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvC,4CAA4C;IACtC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBxC,wCAAwC;IAClC,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB1C;;;sEAGkE;IAC5D,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3D,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI;IAOzC,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,OAAO;IAcf,OAAO,CAAC,UAAU;CAQrB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type { AparteConversation, AparteConversationMeta, AparteStorageAdapter, AparteMemoryFact, AparteArtifactRow, AparteAttachmentRow, } from './types.js';
|
|
2
2
|
export { APARTE_CONVERSATION_SCHEMA_VERSION } from './types.js';
|
|
3
|
-
export {
|
|
3
|
+
export { AparteConversationManager, applyRetention, type ConversationManagerOptions } from './conversation-manager.js';
|
|
4
4
|
export { AparteConversationController, type AparteChatBinding, type AparteConversationControllerOptions, } from './conversation-controller.js';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/conversations/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/conversations/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,KAAK,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvH,OAAO,EACH,4BAA4B,EAC5B,KAAK,iBAAiB,EACtB,KAAK,mCAAmC,GAC3C,MAAM,8BAA8B,CAAC"}
|
|
@@ -122,7 +122,7 @@ export interface AparteAttachmentRow {
|
|
|
122
122
|
/**
|
|
123
123
|
* Implement this interface to provide persistence for conversations.
|
|
124
124
|
* All methods are async so any backend (IndexedDB, SQLite WASM, REST API…)
|
|
125
|
-
* can be used. The
|
|
125
|
+
* can be used. The AparteConversationManager never touches storage directly.
|
|
126
126
|
*
|
|
127
127
|
* The first three methods (`loadAll`, `save`, `delete`) form the minimum
|
|
128
128
|
* viable adapter — everything else is optional and lets richer backends
|