@aparte/core 0.2.0-alpha.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/LICENSE +21 -0
- package/README.md +53 -0
- package/dist/client/aparte-client.d.ts +326 -0
- package/dist/client/aparte-client.d.ts.map +1 -0
- package/dist/client/stream-adapter.d.ts +197 -0
- package/dist/client/stream-adapter.d.ts.map +1 -0
- package/dist/components/bubble/aparte-chat-bubble.d.ts +153 -0
- package/dist/components/bubble/aparte-chat-bubble.d.ts.map +1 -0
- package/dist/components/bubble/bubble-sync.d.ts +44 -0
- package/dist/components/bubble/bubble-sync.d.ts.map +1 -0
- package/dist/components/bubble/index.d.ts +4 -0
- package/dist/components/bubble/index.d.ts.map +1 -0
- package/dist/components/chat/aparte-chat.d.ts +49 -0
- package/dist/components/chat/aparte-chat.d.ts.map +1 -0
- package/dist/components/chat/index.d.ts +2 -0
- package/dist/components/chat/index.d.ts.map +1 -0
- package/dist/components/composer/aparte-composer-action.d.ts +37 -0
- package/dist/components/composer/aparte-composer-action.d.ts.map +1 -0
- package/dist/components/composer/aparte-composer-add-attachment.d.ts +27 -0
- package/dist/components/composer/aparte-composer-add-attachment.d.ts.map +1 -0
- package/dist/components/composer/aparte-composer-attachments.d.ts +26 -0
- package/dist/components/composer/aparte-composer-attachments.d.ts.map +1 -0
- package/dist/components/composer/aparte-composer-cancel.d.ts +21 -0
- package/dist/components/composer/aparte-composer-cancel.d.ts.map +1 -0
- package/dist/components/composer/aparte-composer-input.d.ts +63 -0
- package/dist/components/composer/aparte-composer-input.d.ts.map +1 -0
- package/dist/components/composer/aparte-composer-send.d.ts +25 -0
- package/dist/components/composer/aparte-composer-send.d.ts.map +1 -0
- package/dist/components/composer/aparte-composer.d.ts +150 -0
- package/dist/components/composer/aparte-composer.d.ts.map +1 -0
- package/dist/components/composer/index.d.ts +9 -0
- package/dist/components/composer/index.d.ts.map +1 -0
- package/dist/components/conversation-list/aparte-conversation-list.d.ts +50 -0
- package/dist/components/conversation-list/aparte-conversation-list.d.ts.map +1 -0
- package/dist/components/conversation-list/index.d.ts +2 -0
- package/dist/components/conversation-list/index.d.ts.map +1 -0
- package/dist/components/elicitation/aparte-elicitation.d.ts +29 -0
- package/dist/components/elicitation/aparte-elicitation.d.ts.map +1 -0
- package/dist/components/index.d.ts +10 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/status/aparte-chat-status.d.ts +34 -0
- package/dist/components/status/aparte-chat-status.d.ts.map +1 -0
- package/dist/components/status/index.d.ts +2 -0
- package/dist/components/status/index.d.ts.map +1 -0
- package/dist/components/viewport/aparte-chat-viewport.d.ts +358 -0
- package/dist/components/viewport/aparte-chat-viewport.d.ts.map +1 -0
- package/dist/components/viewport/index.d.ts +2 -0
- package/dist/components/viewport/index.d.ts.map +1 -0
- package/dist/config/action-provider.d.ts +59 -0
- package/dist/config/action-provider.d.ts.map +1 -0
- package/dist/config/aparte-config.d.ts +490 -0
- package/dist/config/aparte-config.d.ts.map +1 -0
- package/dist/config/attachment-renderer.d.ts +28 -0
- package/dist/config/attachment-renderer.d.ts.map +1 -0
- package/dist/config/avatar-provider.d.ts +35 -0
- package/dist/config/avatar-provider.d.ts.map +1 -0
- package/dist/config/bubble-shell-renderer.d.ts +41 -0
- package/dist/config/bubble-shell-renderer.d.ts.map +1 -0
- package/dist/config/config-context.d.ts +47 -0
- package/dist/config/config-context.d.ts.map +1 -0
- package/dist/config/error-renderer.d.ts +26 -0
- package/dist/config/error-renderer.d.ts.map +1 -0
- package/dist/config/icon-provider.d.ts +63 -0
- package/dist/config/icon-provider.d.ts.map +1 -0
- package/dist/config/index.d.ts +19 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/locale.d.ts +60 -0
- package/dist/config/locale.d.ts.map +1 -0
- package/dist/config/sanitize.d.ts +31 -0
- package/dist/config/sanitize.d.ts.map +1 -0
- package/dist/config/sibling-nav-renderer.d.ts +27 -0
- package/dist/config/sibling-nav-renderer.d.ts.map +1 -0
- package/dist/config/skeleton-provider.d.ts +26 -0
- package/dist/config/skeleton-provider.d.ts.map +1 -0
- package/dist/config/status-renderer.d.ts +23 -0
- package/dist/config/status-renderer.d.ts.map +1 -0
- package/dist/conversations/conversation-controller.d.ts +126 -0
- package/dist/conversations/conversation-controller.d.ts.map +1 -0
- package/dist/conversations/conversation-manager.d.ts +98 -0
- package/dist/conversations/conversation-manager.d.ts.map +1 -0
- package/dist/conversations/index.d.ts +5 -0
- package/dist/conversations/index.d.ts.map +1 -0
- package/dist/conversations/types.d.ts +172 -0
- package/dist/conversations/types.d.ts.map +1 -0
- package/dist/custom-elements.json +15833 -0
- package/dist/elicitation/index.d.ts +20 -0
- package/dist/elicitation/index.d.ts.map +1 -0
- package/dist/elicitation/panel.d.ts +18 -0
- package/dist/elicitation/panel.d.ts.map +1 -0
- package/dist/elicitation/types.d.ts +98 -0
- package/dist/elicitation/types.d.ts.map +1 -0
- package/dist/host/aparte-chat-host.d.ts +176 -0
- package/dist/host/aparte-chat-host.d.ts.map +1 -0
- package/dist/host/index.d.ts +2 -0
- package/dist/host/index.d.ts.map +1 -0
- package/dist/index-D89k-n2Q.js +6294 -0
- package/dist/index-D89k-n2Q.js.map +1 -0
- package/dist/index.css +2554 -0
- package/dist/index.d.ts +62 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3763 -0
- package/dist/index.js.map +1 -0
- package/dist/index.node.d.ts +53 -0
- package/dist/index.node.d.ts.map +1 -0
- package/dist/index.node.js +49 -0
- package/dist/index.node.js.map +1 -0
- package/dist/interop/element-props.d.ts +23 -0
- package/dist/interop/element-props.d.ts.map +1 -0
- package/dist/parsers/aparte-event-stream.d.ts +13 -0
- package/dist/parsers/aparte-event-stream.d.ts.map +1 -0
- package/dist/parsers/aparte-stream-parser.d.ts +137 -0
- package/dist/parsers/aparte-stream-parser.d.ts.map +1 -0
- package/dist/parsers/index.d.ts +4 -0
- package/dist/parsers/index.d.ts.map +1 -0
- package/dist/primitives/index.d.ts +8 -0
- package/dist/primitives/index.d.ts.map +1 -0
- package/dist/primitives/progress-spinner/aparte-progress-spinner.d.ts +25 -0
- package/dist/primitives/progress-spinner/aparte-progress-spinner.d.ts.map +1 -0
- package/dist/primitives/progress-spinner/index.d.ts +2 -0
- package/dist/primitives/progress-spinner/index.d.ts.map +1 -0
- package/dist/primitives/select/aparte-optgroup.d.ts +32 -0
- package/dist/primitives/select/aparte-optgroup.d.ts.map +1 -0
- package/dist/primitives/select/aparte-option.d.ts +30 -0
- package/dist/primitives/select/aparte-option.d.ts.map +1 -0
- package/dist/primitives/select/aparte-select.d.ts +74 -0
- package/dist/primitives/select/aparte-select.d.ts.map +1 -0
- package/dist/primitives/select/index.d.ts +9 -0
- package/dist/primitives/select/index.d.ts.map +1 -0
- package/dist/renderers/index.d.ts +5 -0
- package/dist/renderers/index.d.ts.map +1 -0
- package/dist/renderers/segment-renderers.d.ts +31 -0
- package/dist/renderers/segment-renderers.d.ts.map +1 -0
- package/dist/runtime/message-repository.d.ts +111 -0
- package/dist/runtime/message-repository.d.ts.map +1 -0
- package/dist/transport/backend-handler.d.ts +50 -0
- package/dist/transport/backend-handler.d.ts.map +1 -0
- package/dist/transport/backend-transport.d.ts +39 -0
- package/dist/transport/backend-transport.d.ts.map +1 -0
- package/dist/transport/direct-transport.d.ts +36 -0
- package/dist/transport/direct-transport.d.ts.map +1 -0
- package/dist/transport/index.d.ts +6 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/types.d.ts +73 -0
- package/dist/transport/types.d.ts.map +1 -0
- package/dist/types/chat.d.ts +223 -0
- package/dist/types/chat.d.ts.map +1 -0
- package/dist/types/errors.d.ts +25 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/event-map.d.ts +41 -0
- package/dist/types/event-map.d.ts.map +1 -0
- package/dist/types/events.d.ts +290 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/imperative-api.d.ts +38 -0
- package/dist/types/imperative-api.d.ts.map +1 -0
- package/dist/types/index.d.ts +22 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/model-provider.d.ts +229 -0
- package/dist/types/model-provider.d.ts.map +1 -0
- package/dist/types/models.d.ts +173 -0
- package/dist/types/models.d.ts.map +1 -0
- package/dist/types/parsers.d.ts +42 -0
- package/dist/types/parsers.d.ts.map +1 -0
- package/dist/types/providers.d.ts +93 -0
- package/dist/types/providers.d.ts.map +1 -0
- package/dist/types/segments.d.ts +221 -0
- package/dist/types/segments.d.ts.map +1 -0
- package/dist/types/theming.d.ts +44 -0
- package/dist/types/theming.d.ts.map +1 -0
- package/dist/types/tools.d.ts +98 -0
- package/dist/types/tools.d.ts.map +1 -0
- package/dist/utils/assert-never.d.ts +9 -0
- package/dist/utils/assert-never.d.ts.map +1 -0
- package/dist/utils/css-escape.d.ts +15 -0
- package/dist/utils/css-escape.d.ts.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import type { AparteMessage } from '../types/index.js';
|
|
2
|
+
import type { ExportedMessageRepository } from '../runtime/message-repository.js';
|
|
3
|
+
/**
|
|
4
|
+
* Current schema version for `AparteConversation`. Bump when the persisted
|
|
5
|
+
* shape evolves so adapters / migrations can branch on it.
|
|
6
|
+
*
|
|
7
|
+
* v1: monolithic — `messages[]` inline on the conversation row, attachment
|
|
8
|
+
* `url` was a session-scoped blob URL (lost on reload), artifacts inline
|
|
9
|
+
* in segments only.
|
|
10
|
+
* v2: split — meta-only conversation row; messages, attachments (with real
|
|
11
|
+
* `Blob`s), artifacts (gallery index), memory facts and settings each
|
|
12
|
+
* get their own table. Sidebar can list without loading full payloads.
|
|
13
|
+
*/
|
|
14
|
+
export declare const APARTE_CONVERSATION_SCHEMA_VERSION: 2;
|
|
15
|
+
/**
|
|
16
|
+
* A single conversation (thread) — framework-agnostic.
|
|
17
|
+
*/
|
|
18
|
+
export interface AparteConversation {
|
|
19
|
+
id: string;
|
|
20
|
+
/** Auto-generated from the first user message (≤50 chars). */
|
|
21
|
+
title: string;
|
|
22
|
+
createdAt: number;
|
|
23
|
+
updatedAt: number;
|
|
24
|
+
messages: AparteMessage[];
|
|
25
|
+
/**
|
|
26
|
+
* Full branching tree snapshot. When present, the conversation has branch
|
|
27
|
+
* history (edits, retries, sibling responses) and is loaded via `importTree`
|
|
28
|
+
* rather than the flat `messages` array.
|
|
29
|
+
*
|
|
30
|
+
* `messages` always mirrors the active path for backward-compatibility
|
|
31
|
+
* (sidebar previews, title generation, adapters that only read flat arrays).
|
|
32
|
+
*/
|
|
33
|
+
tree?: ExportedMessageRepository;
|
|
34
|
+
/** When truthy the conversation is archived (hidden from the main list). */
|
|
35
|
+
archivedAt?: number;
|
|
36
|
+
/** When truthy the conversation is pinned at the top of the list. */
|
|
37
|
+
pinnedAt?: number;
|
|
38
|
+
/** Optional folder/tag id for organisation (V2+). */
|
|
39
|
+
folderId?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Schema version of this record. Absent on legacy data (pre-versioning):
|
|
42
|
+
* adapters should treat `undefined` as version 0 and migrate on read.
|
|
43
|
+
*/
|
|
44
|
+
schemaVersion?: number;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Lightweight conversation meta — what's needed to render the sidebar without
|
|
48
|
+
* loading the full message history. Returned by `loadMeta()` and stored as a
|
|
49
|
+
* dedicated row by split-storage adapters.
|
|
50
|
+
*/
|
|
51
|
+
export interface AparteConversationMeta {
|
|
52
|
+
id: string;
|
|
53
|
+
title: string;
|
|
54
|
+
createdAt: number;
|
|
55
|
+
updatedAt: number;
|
|
56
|
+
archivedAt?: number;
|
|
57
|
+
pinnedAt?: number;
|
|
58
|
+
folderId?: string;
|
|
59
|
+
/** Truncated last message body (≤200 chars) — for sidebar previews. */
|
|
60
|
+
lastMessagePreview?: string;
|
|
61
|
+
/** Cached message count for the sidebar badge / archive logic. */
|
|
62
|
+
messageCount?: number;
|
|
63
|
+
/** Sum of input+output tokens across messages, when available. */
|
|
64
|
+
totalTokens?: number;
|
|
65
|
+
/** Persisted schema version of the row. */
|
|
66
|
+
schemaVersion?: number;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Memory fact — durable user facts stored across all conversations.
|
|
70
|
+
* Surfaces in the memory panel and is consulted by the orchestrator to
|
|
71
|
+
* personalise replies.
|
|
72
|
+
*/
|
|
73
|
+
export interface AparteMemoryFact {
|
|
74
|
+
id: string;
|
|
75
|
+
/** Coarse category — drives the icon/colour in the panel. */
|
|
76
|
+
type: 'identity' | 'fact' | 'preference' | 'tech' | 'project' | 'style';
|
|
77
|
+
content: string;
|
|
78
|
+
/** Where the fact came from. `auto` = regex-detected, `manual` = user input. */
|
|
79
|
+
source?: 'manual' | 'auto' | 'onboarding';
|
|
80
|
+
addedAt: number;
|
|
81
|
+
/** Last time the fact was selected as relevant for a reply. */
|
|
82
|
+
lastUsedAt?: number;
|
|
83
|
+
/** Conversation that produced an auto-detected fact (for traceability). */
|
|
84
|
+
sourceConvId?: string;
|
|
85
|
+
/** Message inside `sourceConvId` that triggered the auto-detection. */
|
|
86
|
+
sourceMsgId?: string;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Artifact gallery row — denormalised index of every artifact segment ever
|
|
90
|
+
* produced, so the gallery can list/filter without scanning every message.
|
|
91
|
+
* The source of truth remains the artifact segment inside its message; this
|
|
92
|
+
* row is rebuilt by the storage adapter on every save.
|
|
93
|
+
*/
|
|
94
|
+
export interface AparteArtifactRow {
|
|
95
|
+
id: string;
|
|
96
|
+
convId: string;
|
|
97
|
+
msgId: string;
|
|
98
|
+
name: string;
|
|
99
|
+
mimeType: string;
|
|
100
|
+
artifactType: string;
|
|
101
|
+
/** Full body — duplicated from the source segment for fast gallery preview. */
|
|
102
|
+
content: string;
|
|
103
|
+
title?: string;
|
|
104
|
+
/** Snapshot of the message timestamp; used for "newest first" gallery sort. */
|
|
105
|
+
updatedAt: number;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Persisted attachment with the actual Blob — survives page reloads, unlike
|
|
109
|
+
* the session-scoped `URL.createObjectURL()` stored on `AparteMessage`.
|
|
110
|
+
* Adapters that split storage MUST keep the blob here and reconstruct the
|
|
111
|
+
* `url` on demand.
|
|
112
|
+
*/
|
|
113
|
+
export interface AparteAttachmentRow {
|
|
114
|
+
id: string;
|
|
115
|
+
convId: string;
|
|
116
|
+
msgId: string;
|
|
117
|
+
name: string;
|
|
118
|
+
mimeType: string;
|
|
119
|
+
size: number;
|
|
120
|
+
blob: Blob;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Implement this interface to provide persistence for conversations.
|
|
124
|
+
* All methods are async so any backend (IndexedDB, SQLite WASM, REST API…)
|
|
125
|
+
* can be used. The ConversationManager never touches storage directly.
|
|
126
|
+
*
|
|
127
|
+
* The first three methods (`loadAll`, `save`, `delete`) form the minimum
|
|
128
|
+
* viable adapter — everything else is optional and lets richer backends
|
|
129
|
+
* expose split-storage features (fast meta listing, memory, settings,
|
|
130
|
+
* artifact gallery, attachment blobs).
|
|
131
|
+
*/
|
|
132
|
+
export interface AparteStorageAdapter {
|
|
133
|
+
/** Return all stored conversations (full payload), ordered by updatedAt desc. */
|
|
134
|
+
loadAll(): Promise<AparteConversation[]>;
|
|
135
|
+
/** Upsert a conversation (create or update). */
|
|
136
|
+
save(conv: AparteConversation): Promise<void>;
|
|
137
|
+
/** Permanently delete a conversation by id (cascades related rows). */
|
|
138
|
+
delete(id: string): Promise<void>;
|
|
139
|
+
/** Archive a conversation (soft-delete). Optional. */
|
|
140
|
+
archive?(id: string): Promise<void>;
|
|
141
|
+
/** Restore an archived conversation. Optional. */
|
|
142
|
+
unarchive?(id: string): Promise<void>;
|
|
143
|
+
/**
|
|
144
|
+
* Fast sidebar listing. Returns lightweight meta only (no messages).
|
|
145
|
+
* Order is `updatedAt` desc. Adapters without split storage can omit
|
|
146
|
+
* this — callers should fall back to `loadAll()` mapping to meta.
|
|
147
|
+
*/
|
|
148
|
+
loadMeta?(): Promise<AparteConversationMeta[]>;
|
|
149
|
+
/** Lazy-load a single conversation's full payload by id. */
|
|
150
|
+
loadFull?(id: string): Promise<AparteConversation | null>;
|
|
151
|
+
/** Pin/unpin (`pinnedAt`-aware sidebar sort). */
|
|
152
|
+
pin?(id: string): Promise<void>;
|
|
153
|
+
unpin?(id: string): Promise<void>;
|
|
154
|
+
/** Update only the conversation title (avoids rewriting messages). */
|
|
155
|
+
rename?(id: string, title: string): Promise<void>;
|
|
156
|
+
getMemory?(): Promise<AparteMemoryFact[]>;
|
|
157
|
+
addMemoryFact?(fact: AparteMemoryFact): Promise<void>;
|
|
158
|
+
updateMemoryFact?(id: string, patch: Partial<AparteMemoryFact>): Promise<void>;
|
|
159
|
+
deleteMemoryFact?(id: string): Promise<void>;
|
|
160
|
+
clearMemory?(): Promise<void>;
|
|
161
|
+
getSetting?<T = unknown>(key: string): Promise<T | undefined>;
|
|
162
|
+
setSetting?<T = unknown>(key: string, value: T): Promise<void>;
|
|
163
|
+
deleteSetting?(key: string): Promise<void>;
|
|
164
|
+
getAllSettings?(): Promise<Record<string, unknown>>;
|
|
165
|
+
/** List artifacts; optionally scoped to a single conversation. */
|
|
166
|
+
loadArtifacts?(filter?: {
|
|
167
|
+
convId?: string;
|
|
168
|
+
}): Promise<AparteArtifactRow[]>;
|
|
169
|
+
/** Persisted attachment blobs for a single message. */
|
|
170
|
+
loadAttachments?(msgId: string): Promise<AparteAttachmentRow[]>;
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/conversations/types.ts"],"names":[],"mappings":"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"}
|