@openclawbrain/openclaw 0.1.11 → 0.1.12
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 +12 -6
- package/dist/src/cli.d.ts +14 -1
- package/dist/src/cli.js +212 -9
- package/dist/src/cli.js.map +1 -1
- package/dist/src/index.d.ts +359 -4
- package/dist/src/index.js +1627 -77
- package/dist/src/index.js.map +1 -1
- package/dist/src/local-session-passive-learning.d.ts +60 -0
- package/dist/src/local-session-passive-learning.js +359 -0
- package/dist/src/local-session-passive-learning.js.map +1 -0
- package/dist/src/session-store.d.ts +150 -0
- package/dist/src/session-store.js +199 -0
- package/dist/src/session-store.js.map +1 -0
- package/dist/src/session-tail.d.ts +68 -0
- package/dist/src/session-tail.js +519 -0
- package/dist/src/session-tail.js.map +1 -0
- package/package.json +7 -6
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { type FeedbackEventV1, type InteractionEventV1, type NormalizedEventExportV1 } from "@openclawbrain/contracts";
|
|
2
|
+
import { type FeedbackEventExtractionResultV1 } from "@openclawbrain/event-export";
|
|
3
|
+
import type { OpenClawSessionIndex, OpenClawSessionIndexEntry, OpenClawSessionRecord } from "./session-store.js";
|
|
4
|
+
export interface OpenClawPassiveLearningPrivacySummaryV1 {
|
|
5
|
+
sanitized: true;
|
|
6
|
+
rules: string[];
|
|
7
|
+
strippedMetadataBlockCount: number;
|
|
8
|
+
strippedThinkingBlockCount: number;
|
|
9
|
+
droppedToolResultCount: number;
|
|
10
|
+
}
|
|
11
|
+
export interface OpenClawPassiveLearningSessionEvidenceV1 {
|
|
12
|
+
sessionKey: string;
|
|
13
|
+
sessionId: string;
|
|
14
|
+
updatedAt: string;
|
|
15
|
+
channel: string;
|
|
16
|
+
sourceStream: string;
|
|
17
|
+
sessionFileBasename: string | null;
|
|
18
|
+
model: string | null;
|
|
19
|
+
modelProvider: string | null;
|
|
20
|
+
chatType: string | null;
|
|
21
|
+
systemPromptFingerprint: {
|
|
22
|
+
available: boolean;
|
|
23
|
+
workspaceDirBasename: string | null;
|
|
24
|
+
injectedWorkspaceFileCount: number;
|
|
25
|
+
missingInjectedWorkspaceFileCount: number;
|
|
26
|
+
toolNames: string[];
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export interface OpenClawPassiveLearningSessionExportV1 {
|
|
30
|
+
session: OpenClawPassiveLearningSessionEvidenceV1;
|
|
31
|
+
privacy: OpenClawPassiveLearningPrivacySummaryV1;
|
|
32
|
+
interactionEvents: InteractionEventV1[];
|
|
33
|
+
feedbackEvents: FeedbackEventV1[];
|
|
34
|
+
interactionContentsById: Record<string, string>;
|
|
35
|
+
feedbackExtraction: FeedbackEventExtractionResultV1;
|
|
36
|
+
normalizedEventExport: NormalizedEventExportV1;
|
|
37
|
+
warnings: string[];
|
|
38
|
+
}
|
|
39
|
+
export interface OpenClawPassiveLearningStoreExportV1 {
|
|
40
|
+
sessions: OpenClawPassiveLearningSessionExportV1[];
|
|
41
|
+
interactionEvents: InteractionEventV1[];
|
|
42
|
+
feedbackEvents: FeedbackEventV1[];
|
|
43
|
+
normalizedEventExport: NormalizedEventExportV1;
|
|
44
|
+
warnings: string[];
|
|
45
|
+
}
|
|
46
|
+
export declare function buildPassiveLearningSessionExportFromOpenClawSessionStore(input: {
|
|
47
|
+
sessionKey: string;
|
|
48
|
+
indexEntry: OpenClawSessionIndexEntry;
|
|
49
|
+
records: readonly OpenClawSessionRecord[];
|
|
50
|
+
agentId?: string;
|
|
51
|
+
sequenceStart?: number;
|
|
52
|
+
}): OpenClawPassiveLearningSessionExportV1 & {
|
|
53
|
+
nextSequence: number;
|
|
54
|
+
};
|
|
55
|
+
export declare function buildPassiveLearningStoreExportFromOpenClawSessionIndex(input: {
|
|
56
|
+
sessionIndex: OpenClawSessionIndex;
|
|
57
|
+
readSessionRecords: (sessionKey: string, entry: OpenClawSessionIndexEntry) => readonly OpenClawSessionRecord[];
|
|
58
|
+
sessionKeys?: readonly string[];
|
|
59
|
+
agentId?: string;
|
|
60
|
+
}): OpenClawPassiveLearningStoreExportV1;
|
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { buildNormalizedEventExport, createInteractionEvent } from "@openclawbrain/contracts";
|
|
3
|
+
import { extractFeedbackEventsFromInteractionRecords } from "@openclawbrain/event-export";
|
|
4
|
+
const DEFAULT_AGENT_ID = "openclaw-session-store";
|
|
5
|
+
const KNOWN_PRINCIPALS = {
|
|
6
|
+
bihua: {
|
|
7
|
+
teacherIdentity: "bihua",
|
|
8
|
+
teacherRole: "principal",
|
|
9
|
+
teacherAuthority: "binding",
|
|
10
|
+
priorityClass: "critical"
|
|
11
|
+
},
|
|
12
|
+
"jonathan gu": {
|
|
13
|
+
teacherIdentity: "jonathan",
|
|
14
|
+
teacherRole: "admin",
|
|
15
|
+
teacherAuthority: "high",
|
|
16
|
+
priorityClass: "high"
|
|
17
|
+
},
|
|
18
|
+
jonathan: {
|
|
19
|
+
teacherIdentity: "jonathan",
|
|
20
|
+
teacherRole: "admin",
|
|
21
|
+
teacherAuthority: "high",
|
|
22
|
+
priorityClass: "high"
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const DEFAULT_PRIVACY_RULES = [
|
|
26
|
+
"session-store fixtures stay sanitized and use fake ids, paths, and workspace roots",
|
|
27
|
+
"leading Conversation info / Sender untrusted metadata blocks are stripped before feedback extraction",
|
|
28
|
+
"assistant thinking blocks and raw tool-result payloads are excluded from passive-learning content",
|
|
29
|
+
"sender names are treated as hints for principal resolution, not source-of-truth identity proof"
|
|
30
|
+
];
|
|
31
|
+
function normalizeString(value) {
|
|
32
|
+
if (typeof value !== "string") {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
const trimmed = value.trim();
|
|
36
|
+
return trimmed.length === 0 ? null : trimmed;
|
|
37
|
+
}
|
|
38
|
+
function sanitizeToken(value) {
|
|
39
|
+
const sanitized = value.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
40
|
+
return sanitized.length === 0 ? "unknown" : sanitized;
|
|
41
|
+
}
|
|
42
|
+
function slugifyIdentity(value) {
|
|
43
|
+
return value.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
44
|
+
}
|
|
45
|
+
function deriveChannel(sessionKey, entry) {
|
|
46
|
+
const deliveryChannel = normalizeString(entry.deliveryContext?.channel);
|
|
47
|
+
if (deliveryChannel !== null) {
|
|
48
|
+
return deliveryChannel;
|
|
49
|
+
}
|
|
50
|
+
const originSurface = normalizeString(entry.origin?.surface);
|
|
51
|
+
if (originSurface !== null) {
|
|
52
|
+
return originSurface;
|
|
53
|
+
}
|
|
54
|
+
const keyParts = sessionKey.split(":");
|
|
55
|
+
const transportPart = keyParts[2];
|
|
56
|
+
if (transportPart !== undefined && transportPart.length > 0) {
|
|
57
|
+
return transportPart;
|
|
58
|
+
}
|
|
59
|
+
return entry.chatType ?? "unknown";
|
|
60
|
+
}
|
|
61
|
+
function messageText(record) {
|
|
62
|
+
const parts = [];
|
|
63
|
+
let thinkingBlocks = 0;
|
|
64
|
+
let toolCalls = 0;
|
|
65
|
+
for (const part of record.message.content) {
|
|
66
|
+
if (part.type === "text") {
|
|
67
|
+
const normalized = normalizeString(part.text);
|
|
68
|
+
if (normalized !== null) {
|
|
69
|
+
parts.push(normalized);
|
|
70
|
+
}
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
if (part.type === "thinking") {
|
|
74
|
+
thinkingBlocks += 1;
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
if (part.type === "toolCall") {
|
|
78
|
+
toolCalls += 1;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
content: parts.join("\n").trim(),
|
|
83
|
+
thinkingBlocks,
|
|
84
|
+
toolCalls
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
function stripLeadingUntrustedMetadata(text) {
|
|
88
|
+
const blocks = text.replace(/\r\n/g, "\n").trim();
|
|
89
|
+
if (blocks.length === 0) {
|
|
90
|
+
return {
|
|
91
|
+
content: "",
|
|
92
|
+
senderName: null,
|
|
93
|
+
strippedMetadataBlockCount: 0
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
const sections = blocks
|
|
97
|
+
.split(/\n\s*\n/g)
|
|
98
|
+
.map((section) => section.trim())
|
|
99
|
+
.filter((section) => section.length > 0);
|
|
100
|
+
const remaining = [];
|
|
101
|
+
let senderName = null;
|
|
102
|
+
let strippedMetadataBlockCount = 0;
|
|
103
|
+
for (const section of sections) {
|
|
104
|
+
const lines = section.split("\n").map((line) => line.trim()).filter((line) => line.length > 0);
|
|
105
|
+
const header = lines[0] ?? "";
|
|
106
|
+
if (header === "Conversation info (untrusted metadata)" || header === "Sender (untrusted metadata)") {
|
|
107
|
+
strippedMetadataBlockCount += 1;
|
|
108
|
+
if (header === "Sender (untrusted metadata)") {
|
|
109
|
+
const senderLine = lines.find((line) => /^name:/iu.test(line) || /^display name:/iu.test(line));
|
|
110
|
+
const extracted = senderLine?.split(":").slice(1).join(":").trim() ?? null;
|
|
111
|
+
if (extracted !== null && extracted.length > 0) {
|
|
112
|
+
senderName = extracted;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
remaining.push(section);
|
|
118
|
+
}
|
|
119
|
+
return {
|
|
120
|
+
content: remaining.join("\n\n").trim(),
|
|
121
|
+
senderName,
|
|
122
|
+
strippedMetadataBlockCount
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
function buildPrincipalScope(sessionId, relatedInteractionId) {
|
|
126
|
+
const scopeKey = [
|
|
127
|
+
"profile:current_profile",
|
|
128
|
+
`session:${sessionId}`,
|
|
129
|
+
relatedInteractionId === null ? null : `interaction:${relatedInteractionId}`
|
|
130
|
+
]
|
|
131
|
+
.filter((value) => value !== null)
|
|
132
|
+
.join("|");
|
|
133
|
+
if (relatedInteractionId !== null) {
|
|
134
|
+
return {
|
|
135
|
+
kind: "interaction",
|
|
136
|
+
profileSelector: "current_profile",
|
|
137
|
+
sessionId,
|
|
138
|
+
interactionId: relatedInteractionId,
|
|
139
|
+
scopeKey
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
return {
|
|
143
|
+
kind: "session",
|
|
144
|
+
profileSelector: "current_profile",
|
|
145
|
+
sessionId,
|
|
146
|
+
scopeKey
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
function resolveSenderIdentity(sessionId, senderName, relatedInteractionId) {
|
|
150
|
+
if (senderName === null) {
|
|
151
|
+
return {
|
|
152
|
+
actorRole: "user",
|
|
153
|
+
principal: undefined
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
const normalized = senderName.toLowerCase().replace(/\s+/g, " ").trim();
|
|
157
|
+
const known = KNOWN_PRINCIPALS[normalized];
|
|
158
|
+
if (known !== undefined) {
|
|
159
|
+
return {
|
|
160
|
+
actorRole: known.teacherRole,
|
|
161
|
+
principal: {
|
|
162
|
+
teacherIdentity: known.teacherIdentity,
|
|
163
|
+
teacherRole: known.teacherRole,
|
|
164
|
+
teacherAuthority: known.teacherAuthority,
|
|
165
|
+
priorityClass: known.priorityClass,
|
|
166
|
+
principalScope: buildPrincipalScope(sessionId, relatedInteractionId)
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
const actorIdentity = slugifyIdentity(normalized);
|
|
171
|
+
return {
|
|
172
|
+
actorRole: "user",
|
|
173
|
+
principal: actorIdentity.length === 0
|
|
174
|
+
? undefined
|
|
175
|
+
: {
|
|
176
|
+
teacherIdentity: `scanner/actor/${actorIdentity}`,
|
|
177
|
+
teacherRole: "user",
|
|
178
|
+
teacherAuthority: "normal",
|
|
179
|
+
priorityClass: "normal",
|
|
180
|
+
principalScope: buildPrincipalScope(sessionId, relatedInteractionId)
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
export function buildPassiveLearningSessionExportFromOpenClawSessionStore(input) {
|
|
185
|
+
const agentId = input.agentId ?? DEFAULT_AGENT_ID;
|
|
186
|
+
const sequenceStart = input.sequenceStart ?? 1;
|
|
187
|
+
const channel = deriveChannel(input.sessionKey, input.indexEntry);
|
|
188
|
+
const sourceStream = `openclaw/runtime/${sanitizeToken(channel)}`;
|
|
189
|
+
const warnings = [];
|
|
190
|
+
const interactionEvents = [];
|
|
191
|
+
const interactionContentsById = {};
|
|
192
|
+
const feedbackRecords = [];
|
|
193
|
+
let strippedMetadataBlockCount = 0;
|
|
194
|
+
let strippedThinkingBlockCount = 0;
|
|
195
|
+
let droppedToolResultCount = 0;
|
|
196
|
+
let nextSequence = sequenceStart;
|
|
197
|
+
let latestAssistantInteractionId = null;
|
|
198
|
+
for (const record of input.records) {
|
|
199
|
+
if (record.type !== "message") {
|
|
200
|
+
continue;
|
|
201
|
+
}
|
|
202
|
+
if (record.message.role === "toolResult") {
|
|
203
|
+
droppedToolResultCount += 1;
|
|
204
|
+
continue;
|
|
205
|
+
}
|
|
206
|
+
const resolvedText = messageText(record);
|
|
207
|
+
strippedThinkingBlockCount += resolvedText.thinkingBlocks;
|
|
208
|
+
if (record.message.role === "assistant") {
|
|
209
|
+
if (resolvedText.content.length === 0) {
|
|
210
|
+
if (resolvedText.toolCalls > 0) {
|
|
211
|
+
warnings.push(`assistant message ${record.id} only contained tool calls; skipped from passive-learning interactions`);
|
|
212
|
+
}
|
|
213
|
+
continue;
|
|
214
|
+
}
|
|
215
|
+
const eventId = `evt-session-store-assistant-${input.indexEntry.sessionId}-${record.id}`;
|
|
216
|
+
const interaction = createInteractionEvent({
|
|
217
|
+
eventId,
|
|
218
|
+
agentId,
|
|
219
|
+
sessionId: input.indexEntry.sessionId,
|
|
220
|
+
channel,
|
|
221
|
+
sequence: nextSequence,
|
|
222
|
+
kind: "message_delivered",
|
|
223
|
+
createdAt: record.timestamp,
|
|
224
|
+
source: {
|
|
225
|
+
runtimeOwner: "openclaw",
|
|
226
|
+
stream: sourceStream
|
|
227
|
+
},
|
|
228
|
+
messageId: record.id
|
|
229
|
+
});
|
|
230
|
+
nextSequence += 1;
|
|
231
|
+
latestAssistantInteractionId = interaction.eventId;
|
|
232
|
+
interactionEvents.push(interaction);
|
|
233
|
+
interactionContentsById[interaction.eventId] = resolvedText.content;
|
|
234
|
+
continue;
|
|
235
|
+
}
|
|
236
|
+
if (record.message.role !== "user") {
|
|
237
|
+
warnings.push(`unsupported session-store message role skipped: ${record.message.role}`);
|
|
238
|
+
continue;
|
|
239
|
+
}
|
|
240
|
+
const sanitized = stripLeadingUntrustedMetadata(resolvedText.content);
|
|
241
|
+
strippedMetadataBlockCount += sanitized.strippedMetadataBlockCount;
|
|
242
|
+
const { actorRole, principal } = resolveSenderIdentity(input.indexEntry.sessionId, sanitized.senderName, latestAssistantInteractionId);
|
|
243
|
+
if (sanitized.content.length === 0) {
|
|
244
|
+
warnings.push(`user message ${record.id} had no passive-learning content after metadata stripping`);
|
|
245
|
+
nextSequence += 1;
|
|
246
|
+
continue;
|
|
247
|
+
}
|
|
248
|
+
feedbackRecords.push({
|
|
249
|
+
recordId: record.id,
|
|
250
|
+
format: "raw",
|
|
251
|
+
createdAt: record.timestamp,
|
|
252
|
+
content: sanitized.content,
|
|
253
|
+
sequence: nextSequence,
|
|
254
|
+
messageId: record.id,
|
|
255
|
+
relatedInteractionId: latestAssistantInteractionId,
|
|
256
|
+
actorRole,
|
|
257
|
+
...(principal === undefined ? {} : { principal })
|
|
258
|
+
});
|
|
259
|
+
nextSequence += 1;
|
|
260
|
+
}
|
|
261
|
+
const feedbackExtraction = extractFeedbackEventsFromInteractionRecords({
|
|
262
|
+
agentId,
|
|
263
|
+
sessionId: input.indexEntry.sessionId,
|
|
264
|
+
channel,
|
|
265
|
+
source: {
|
|
266
|
+
runtimeOwner: "openclaw",
|
|
267
|
+
stream: sourceStream
|
|
268
|
+
},
|
|
269
|
+
records: feedbackRecords
|
|
270
|
+
});
|
|
271
|
+
const feedbackEvents = feedbackExtraction.events.map((entry) => entry.feedbackEvent);
|
|
272
|
+
const normalizedEventExport = buildNormalizedEventExport({
|
|
273
|
+
interactionEvents,
|
|
274
|
+
feedbackEvents
|
|
275
|
+
});
|
|
276
|
+
return {
|
|
277
|
+
session: {
|
|
278
|
+
sessionKey: input.sessionKey,
|
|
279
|
+
sessionId: input.indexEntry.sessionId,
|
|
280
|
+
updatedAt: new Date(input.indexEntry.updatedAt).toISOString(),
|
|
281
|
+
channel,
|
|
282
|
+
sourceStream,
|
|
283
|
+
sessionFileBasename: input.indexEntry.sessionFile === undefined ? null : path.basename(input.indexEntry.sessionFile),
|
|
284
|
+
model: input.indexEntry.model ?? null,
|
|
285
|
+
modelProvider: input.indexEntry.modelProvider ?? null,
|
|
286
|
+
chatType: input.indexEntry.chatType ?? null,
|
|
287
|
+
systemPromptFingerprint: {
|
|
288
|
+
available: input.indexEntry.systemPromptReport !== undefined,
|
|
289
|
+
workspaceDirBasename: input.indexEntry.systemPromptReport?.workspaceDir === undefined
|
|
290
|
+
? null
|
|
291
|
+
: path.basename(input.indexEntry.systemPromptReport.workspaceDir),
|
|
292
|
+
injectedWorkspaceFileCount: input.indexEntry.systemPromptReport?.injectedWorkspaceFiles?.length ?? 0,
|
|
293
|
+
missingInjectedWorkspaceFileCount: input.indexEntry.systemPromptReport?.injectedWorkspaceFiles?.filter((file) => file.missing).length ?? 0,
|
|
294
|
+
toolNames: (input.indexEntry.systemPromptReport?.tools?.entries ?? [])
|
|
295
|
+
.map((entry) => entry.name)
|
|
296
|
+
.filter((name) => typeof name === "string")
|
|
297
|
+
}
|
|
298
|
+
},
|
|
299
|
+
privacy: {
|
|
300
|
+
sanitized: true,
|
|
301
|
+
rules: [...DEFAULT_PRIVACY_RULES],
|
|
302
|
+
strippedMetadataBlockCount,
|
|
303
|
+
strippedThinkingBlockCount,
|
|
304
|
+
droppedToolResultCount
|
|
305
|
+
},
|
|
306
|
+
interactionEvents,
|
|
307
|
+
feedbackEvents,
|
|
308
|
+
interactionContentsById,
|
|
309
|
+
feedbackExtraction,
|
|
310
|
+
normalizedEventExport,
|
|
311
|
+
warnings,
|
|
312
|
+
nextSequence
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
export function buildPassiveLearningStoreExportFromOpenClawSessionIndex(input) {
|
|
316
|
+
const sessionKeys = input.sessionKeys ?? Object.keys(input.sessionIndex);
|
|
317
|
+
const orderedEntries = sessionKeys
|
|
318
|
+
.map((sessionKey) => {
|
|
319
|
+
const entry = input.sessionIndex[sessionKey];
|
|
320
|
+
if (entry === undefined) {
|
|
321
|
+
throw new Error(`missing session index entry for ${sessionKey}`);
|
|
322
|
+
}
|
|
323
|
+
return {
|
|
324
|
+
sessionKey,
|
|
325
|
+
entry
|
|
326
|
+
};
|
|
327
|
+
})
|
|
328
|
+
.sort((left, right) => {
|
|
329
|
+
if (left.entry.updatedAt !== right.entry.updatedAt) {
|
|
330
|
+
return left.entry.updatedAt - right.entry.updatedAt;
|
|
331
|
+
}
|
|
332
|
+
return left.sessionKey.localeCompare(right.sessionKey);
|
|
333
|
+
});
|
|
334
|
+
let nextSequence = 1;
|
|
335
|
+
const sessions = orderedEntries.map(({ sessionKey, entry }) => {
|
|
336
|
+
const built = buildPassiveLearningSessionExportFromOpenClawSessionStore({
|
|
337
|
+
sessionKey,
|
|
338
|
+
indexEntry: entry,
|
|
339
|
+
records: input.readSessionRecords(sessionKey, entry),
|
|
340
|
+
sequenceStart: nextSequence,
|
|
341
|
+
...(input.agentId === undefined ? {} : { agentId: input.agentId })
|
|
342
|
+
});
|
|
343
|
+
nextSequence = built.nextSequence;
|
|
344
|
+
return built;
|
|
345
|
+
});
|
|
346
|
+
const interactionEvents = sessions.flatMap((session) => session.interactionEvents);
|
|
347
|
+
const feedbackEvents = sessions.flatMap((session) => session.feedbackEvents);
|
|
348
|
+
return {
|
|
349
|
+
sessions,
|
|
350
|
+
interactionEvents,
|
|
351
|
+
feedbackEvents,
|
|
352
|
+
normalizedEventExport: buildNormalizedEventExport({
|
|
353
|
+
interactionEvents,
|
|
354
|
+
feedbackEvents
|
|
355
|
+
}),
|
|
356
|
+
warnings: sessions.flatMap((session) => session.warnings)
|
|
357
|
+
};
|
|
358
|
+
}
|
|
359
|
+
//# sourceMappingURL=local-session-passive-learning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-session-passive-learning.js","sourceRoot":"","sources":["../../src/local-session-passive-learning.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EAQvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,2CAA2C,EAI5C,MAAM,6BAA6B,CAAC;AASrC,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AAClD,MAAM,gBAAgB,GAQlB;IACF,KAAK,EAAE;QACL,eAAe,EAAE,OAAO;QACxB,WAAW,EAAE,WAAW;QACxB,gBAAgB,EAAE,SAAS;QAC3B,aAAa,EAAE,UAAU;KAC1B;IACD,aAAa,EAAE;QACb,eAAe,EAAE,UAAU;QAC3B,WAAW,EAAE,OAAO;QACpB,gBAAgB,EAAE,MAAM;QACxB,aAAa,EAAE,MAAM;KACtB;IACD,QAAQ,EAAE;QACR,eAAe,EAAE,UAAU;QAC3B,WAAW,EAAE,OAAO;QACpB,gBAAgB,EAAE,MAAM;QACxB,aAAa,EAAE,MAAM;KACtB;CACF,CAAC;AAEF,MAAM,qBAAqB,GAAG;IAC5B,oFAAoF;IACpF,sGAAsG;IACtG,mGAAmG;IACnG,gGAAgG;CACxF,CAAC;AAsDX,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;AAC/C,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC1F,OAAO,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,aAAa,CAAC,UAAkB,EAAE,KAAgC;IACzE,MAAM,eAAe,GAAG,eAAe,CAAE,KAAK,CAAC,eAAuD,EAAE,OAAO,CAAC,CAAC;IACjH,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAC7B,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,MAAM,aAAa,GAAG,eAAe,CAAE,KAAK,CAAC,MAA8C,EAAE,OAAO,CAAC,CAAC;IACtG,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,OAAO,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC;AACrC,CAAC;AAED,SAAS,WAAW,CAAC,MAAoC;IACvD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACzB,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC7B,cAAc,IAAI,CAAC,CAAC;YACpB,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC7B,SAAS,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;QAChC,cAAc;QACd,SAAS;KACV,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CAAC,IAAY;IACjD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAClD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,IAAI;YAChB,0BAA0B,EAAE,CAAC;SAC9B,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM;SACpB,KAAK,CAAC,UAAU,CAAC;SACjB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SAChC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,UAAU,GAAkB,IAAI,CAAC;IACrC,IAAI,0BAA0B,GAAG,CAAC,CAAC;IAEnC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/F,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE9B,IAAI,MAAM,KAAK,wCAAwC,IAAI,MAAM,KAAK,6BAA6B,EAAE,CAAC;YACpG,0BAA0B,IAAI,CAAC,CAAC;YAEhC,IAAI,MAAM,KAAK,6BAA6B,EAAE,CAAC;gBAC7C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChG,MAAM,SAAS,GAAG,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;gBAC3E,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/C,UAAU,GAAG,SAAS,CAAC;gBACzB,CAAC;YACH,CAAC;YACD,SAAS;QACX,CAAC;QAED,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO;QACL,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;QACtC,UAAU;QACV,0BAA0B;KAC3B,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAiB,EAAE,oBAAmC;IACjF,MAAM,QAAQ,GAAG;QACf,yBAAyB;QACzB,WAAW,SAAS,EAAE;QACtB,oBAAoB,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,oBAAoB,EAAE;KAC7E;SACE,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;SAClD,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,IAAI,oBAAoB,KAAK,IAAI,EAAE,CAAC;QAClC,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,eAAe,EAAE,iBAAiB;YAClC,SAAS;YACT,aAAa,EAAE,oBAAoB;YACnC,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,SAAS;QACf,eAAe,EAAE,iBAAiB;QAClC,SAAS;QACT,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,SAAiB,EAAE,UAAyB,EAAE,oBAAmC;IAI9G,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO;YACL,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,SAAS;SACrB,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACxE,MAAM,KAAK,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO;YACL,SAAS,EAAE,KAAK,CAAC,WAAW;YAC5B,SAAS,EAAE;gBACT,eAAe,EAAE,KAAK,CAAC,eAAe;gBACtC,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;gBACxC,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,cAAc,EAAE,mBAAmB,CAAC,SAAS,EAAE,oBAAoB,CAAC;aACrE;SACF,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAClD,OAAO;QACL,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,aAAa,CAAC,MAAM,KAAK,CAAC;YACnC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC;gBACE,eAAe,EAAE,iBAAiB,aAAa,EAAE;gBACjD,WAAW,EAAE,MAAM;gBACnB,gBAAgB,EAAE,QAAQ;gBAC1B,aAAa,EAAE,QAAQ;gBACvB,cAAc,EAAE,mBAAmB,CAAC,SAAS,EAAE,oBAAoB,CAAC;aACrE;KACN,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yDAAyD,CAAC,KAMzE;IACC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,gBAAgB,CAAC;IAClD,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG,oBAAoB,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;IAClE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,iBAAiB,GAAyB,EAAE,CAAC;IACnD,MAAM,uBAAuB,GAA2B,EAAE,CAAC;IAC3D,MAAM,eAAe,GAA4C,EAAE,CAAC;IACpE,IAAI,0BAA0B,GAAG,CAAC,CAAC;IACnC,IAAI,0BAA0B,GAAG,CAAC,CAAC;IACnC,IAAI,sBAAsB,GAAG,CAAC,CAAC;IAC/B,IAAI,YAAY,GAAG,aAAa,CAAC;IACjC,IAAI,4BAA4B,GAAkB,IAAI,CAAC;IAEvD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,SAAS;QACX,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACzC,sBAAsB,IAAI,CAAC,CAAC;YAC5B,SAAS;QACX,CAAC;QAED,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QACzC,0BAA0B,IAAI,YAAY,CAAC,cAAc,CAAC;QAE1D,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACxC,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtC,IAAI,YAAY,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;oBAC/B,QAAQ,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,EAAE,wEAAwE,CAAC,CAAC;gBACxH,CAAC;gBACD,SAAS;YACX,CAAC;YAED,MAAM,OAAO,GAAG,+BAA+B,KAAK,CAAC,UAAU,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACzF,MAAM,WAAW,GAAG,sBAAsB,CAAC;gBACzC,OAAO;gBACP,OAAO;gBACP,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS;gBACrC,OAAO;gBACP,QAAQ,EAAE,YAAY;gBACtB,IAAI,EAAE,mBAAmB;gBACzB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,MAAM,EAAE;oBACN,YAAY,EAAE,UAAU;oBACxB,MAAM,EAAE,YAAY;iBACrB;gBACD,SAAS,EAAE,MAAM,CAAC,EAAE;aACrB,CAAC,CAAC;YACH,YAAY,IAAI,CAAC,CAAC;YAClB,4BAA4B,GAAG,WAAW,CAAC,OAAO,CAAC;YACnD,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACpC,uBAAuB,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC;YACpE,SAAS;QACX,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACnC,QAAQ,CAAC,IAAI,CAAC,mDAAmD,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACxF,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,6BAA6B,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACtE,0BAA0B,IAAI,SAAS,CAAC,0BAA0B,CAAC;QACnE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,qBAAqB,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,UAAU,EAAE,4BAA4B,CAAC,CAAC;QACvI,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,EAAE,2DAA2D,CAAC,CAAC;YACpG,YAAY,IAAI,CAAC,CAAC;YAClB,SAAS;QACX,CAAC;QAED,eAAe,CAAC,IAAI,CAAC;YACnB,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,QAAQ,EAAE,YAAY;YACtB,SAAS,EAAE,MAAM,CAAC,EAAE;YACpB,oBAAoB,EAAE,4BAA4B;YAClD,SAAS;YACT,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;SAClD,CAAC,CAAC;QACH,YAAY,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,kBAAkB,GAAG,2CAA2C,CAAC;QACrE,OAAO;QACP,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS;QACrC,OAAO;QACP,MAAM,EAAE;YACN,YAAY,EAAE,UAAU;YACxB,MAAM,EAAE,YAAY;SACrB;QACD,OAAO,EAAE,eAAe;KACzB,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACrF,MAAM,qBAAqB,GAAG,0BAA0B,CAAC;QACvD,iBAAiB;QACjB,cAAc;KACf,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE;YACP,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS;YACrC,SAAS,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;YAC7D,OAAO;YACP,YAAY;YACZ,mBAAmB,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;YACpH,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI;YACrC,aAAa,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,IAAI,IAAI;YACrD,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI;YAC3C,uBAAuB,EAAE;gBACvB,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,kBAAkB,KAAK,SAAS;gBAC5D,oBAAoB,EAClB,KAAK,CAAC,UAAU,CAAC,kBAAkB,EAAE,YAAY,KAAK,SAAS;oBAC7D,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,YAAY,CAAC;gBACrE,0BAA0B,EAAE,KAAK,CAAC,UAAU,CAAC,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,IAAI,CAAC;gBACpG,iCAAiC,EAC/B,KAAK,CAAC,UAAU,CAAC,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC;gBACzG,SAAS,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,kBAAkB,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;qBACnE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;qBAC1B,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;aAC9D;SACF;QACD,OAAO,EAAE;YACP,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,CAAC,GAAG,qBAAqB,CAAC;YACjC,0BAA0B;YAC1B,0BAA0B;YAC1B,sBAAsB;SACvB;QACD,iBAAiB;QACjB,cAAc;QACd,uBAAuB;QACvB,kBAAkB;QAClB,qBAAqB;QACrB,QAAQ;QACR,YAAY;KACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uDAAuD,CAAC,KAKvE;IACC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACzE,MAAM,cAAc,GAAG,WAAW;SAC/B,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QAClB,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,mCAAmC,UAAU,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,OAAO;YACL,UAAU;YACV,KAAK;SACN,CAAC;IACJ,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACpB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;QACtD,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEL,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;QAC5D,MAAM,KAAK,GAAG,yDAAyD,CAAC;YACtE,UAAU;YACV,UAAU,EAAE,KAAK;YACjB,OAAO,EAAE,KAAK,CAAC,kBAAkB,CAAC,UAAU,EAAE,KAAK,CAAC;YACpD,aAAa,EAAE,YAAY;YAC3B,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;SACnE,CAAC,CAAC;QACH,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACnF,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAE7E,OAAO;QACL,QAAQ;QACR,iBAAiB;QACjB,cAAc;QACd,qBAAqB,EAAE,0BAA0B,CAAC;YAChD,iBAAiB;YACjB,cAAc;SACf,CAAC;QACF,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;KAC1D,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
export interface OpenClawInjectedWorkspaceFile {
|
|
2
|
+
name: string;
|
|
3
|
+
path: string;
|
|
4
|
+
missing: boolean;
|
|
5
|
+
rawChars: number;
|
|
6
|
+
injectedChars: number;
|
|
7
|
+
truncated: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface OpenClawToolSurfaceEntry {
|
|
10
|
+
name: string;
|
|
11
|
+
summaryChars: number;
|
|
12
|
+
schemaChars: number;
|
|
13
|
+
propertiesCount: number;
|
|
14
|
+
}
|
|
15
|
+
export interface OpenClawSystemPromptReport {
|
|
16
|
+
source?: string;
|
|
17
|
+
generatedAt?: number;
|
|
18
|
+
sessionId?: string;
|
|
19
|
+
sessionKey?: string;
|
|
20
|
+
provider?: string;
|
|
21
|
+
model?: string;
|
|
22
|
+
workspaceDir?: string;
|
|
23
|
+
injectedWorkspaceFiles?: readonly OpenClawInjectedWorkspaceFile[];
|
|
24
|
+
tools?: {
|
|
25
|
+
listChars?: number;
|
|
26
|
+
schemaChars?: number;
|
|
27
|
+
entries?: readonly OpenClawToolSurfaceEntry[];
|
|
28
|
+
[key: string]: unknown;
|
|
29
|
+
};
|
|
30
|
+
[key: string]: unknown;
|
|
31
|
+
}
|
|
32
|
+
export interface OpenClawSessionIndexEntry {
|
|
33
|
+
sessionId: string;
|
|
34
|
+
updatedAt: number;
|
|
35
|
+
sessionFile?: string;
|
|
36
|
+
model?: string;
|
|
37
|
+
modelProvider?: string;
|
|
38
|
+
chatType?: string;
|
|
39
|
+
origin?: Record<string, unknown>;
|
|
40
|
+
deliveryContext?: Record<string, unknown>;
|
|
41
|
+
systemPromptReport?: OpenClawSystemPromptReport;
|
|
42
|
+
[key: string]: unknown;
|
|
43
|
+
}
|
|
44
|
+
export type OpenClawSessionIndex = Record<string, OpenClawSessionIndexEntry>;
|
|
45
|
+
export interface OpenClawSessionTextPart {
|
|
46
|
+
type: "text";
|
|
47
|
+
text: string;
|
|
48
|
+
textSignature?: string;
|
|
49
|
+
[key: string]: unknown;
|
|
50
|
+
}
|
|
51
|
+
export interface OpenClawSessionThinkingPart {
|
|
52
|
+
type: "thinking";
|
|
53
|
+
thinking: string;
|
|
54
|
+
thinkingSignature?: string;
|
|
55
|
+
[key: string]: unknown;
|
|
56
|
+
}
|
|
57
|
+
export interface OpenClawSessionToolCallPart {
|
|
58
|
+
type: "toolCall";
|
|
59
|
+
id: string;
|
|
60
|
+
name: string;
|
|
61
|
+
arguments: Record<string, unknown>;
|
|
62
|
+
partialJson?: string;
|
|
63
|
+
[key: string]: unknown;
|
|
64
|
+
}
|
|
65
|
+
export interface OpenClawSessionUnknownContentPart {
|
|
66
|
+
type: string;
|
|
67
|
+
[key: string]: unknown;
|
|
68
|
+
}
|
|
69
|
+
export type OpenClawSessionContentPart = OpenClawSessionTextPart | OpenClawSessionThinkingPart | OpenClawSessionToolCallPart | OpenClawSessionUnknownContentPart;
|
|
70
|
+
export interface OpenClawSessionMessagePayload {
|
|
71
|
+
role: string;
|
|
72
|
+
content: readonly OpenClawSessionContentPart[];
|
|
73
|
+
timestamp: number;
|
|
74
|
+
toolCallId?: string;
|
|
75
|
+
toolName?: string;
|
|
76
|
+
details?: Record<string, unknown>;
|
|
77
|
+
isError?: boolean;
|
|
78
|
+
api?: string;
|
|
79
|
+
provider?: string;
|
|
80
|
+
model?: string;
|
|
81
|
+
usage?: Record<string, unknown>;
|
|
82
|
+
stopReason?: string;
|
|
83
|
+
[key: string]: unknown;
|
|
84
|
+
}
|
|
85
|
+
export interface OpenClawSessionHeaderRecord {
|
|
86
|
+
type: "session";
|
|
87
|
+
version: number;
|
|
88
|
+
id: string;
|
|
89
|
+
timestamp: string;
|
|
90
|
+
cwd: string;
|
|
91
|
+
}
|
|
92
|
+
export interface OpenClawSessionModelChangeRecord {
|
|
93
|
+
type: "model_change";
|
|
94
|
+
id: string;
|
|
95
|
+
parentId: string | null;
|
|
96
|
+
timestamp: string;
|
|
97
|
+
provider: string;
|
|
98
|
+
modelId: string;
|
|
99
|
+
}
|
|
100
|
+
export interface OpenClawSessionThinkingLevelChangeRecord {
|
|
101
|
+
type: "thinking_level_change";
|
|
102
|
+
id: string;
|
|
103
|
+
parentId: string | null;
|
|
104
|
+
timestamp: string;
|
|
105
|
+
thinkingLevel: string;
|
|
106
|
+
}
|
|
107
|
+
export interface OpenClawSessionCustomRecord {
|
|
108
|
+
type: "custom";
|
|
109
|
+
customType: string;
|
|
110
|
+
data: Record<string, unknown>;
|
|
111
|
+
id: string;
|
|
112
|
+
parentId: string | null;
|
|
113
|
+
timestamp: string;
|
|
114
|
+
}
|
|
115
|
+
export interface OpenClawSessionMessageRecord {
|
|
116
|
+
type: "message";
|
|
117
|
+
id: string;
|
|
118
|
+
parentId: string | null;
|
|
119
|
+
timestamp: string;
|
|
120
|
+
message: OpenClawSessionMessagePayload;
|
|
121
|
+
}
|
|
122
|
+
export type OpenClawSessionRecord = OpenClawSessionHeaderRecord | OpenClawSessionModelChangeRecord | OpenClawSessionThinkingLevelChangeRecord | OpenClawSessionCustomRecord | OpenClawSessionMessageRecord;
|
|
123
|
+
export interface OpenClawAcpStreamRecord {
|
|
124
|
+
ts: string;
|
|
125
|
+
epochMs: number;
|
|
126
|
+
runId: string;
|
|
127
|
+
parentSessionKey: string;
|
|
128
|
+
childSessionKey: string;
|
|
129
|
+
agentId: string;
|
|
130
|
+
kind: string;
|
|
131
|
+
contextKey?: string;
|
|
132
|
+
text?: string;
|
|
133
|
+
delta?: string;
|
|
134
|
+
phase?: string;
|
|
135
|
+
data?: Record<string, unknown>;
|
|
136
|
+
[key: string]: unknown;
|
|
137
|
+
}
|
|
138
|
+
export interface OpenClawMainSessionStoreV1 {
|
|
139
|
+
profileRoot: string;
|
|
140
|
+
agentId: "main";
|
|
141
|
+
sessionsDir: string;
|
|
142
|
+
indexPath: string;
|
|
143
|
+
}
|
|
144
|
+
export declare function loadOpenClawSessionIndex(indexFilePath: string): OpenClawSessionIndex;
|
|
145
|
+
export declare function readOpenClawSessionFile(sessionFilePath: string): OpenClawSessionRecord[];
|
|
146
|
+
export declare function readOpenClawAcpStreamFile(streamFilePath: string): OpenClawAcpStreamRecord[];
|
|
147
|
+
export declare function discoverOpenClawMainSessionStores(options?: {
|
|
148
|
+
homeDir?: string;
|
|
149
|
+
profileRoots?: readonly string[];
|
|
150
|
+
}): OpenClawMainSessionStoreV1[];
|