@framers/agentos 0.15.56 → 0.15.58

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.
@@ -7,10 +7,19 @@
7
7
  * ## Import strategy
8
8
  *
9
9
  * For each conversation object in `conversations.json`:
10
- * 1. A row is inserted into the `conversations` table (deduped by title + created_at).
10
+ * 1. The conversation has one row in the `conversations` table, named after
11
+ * it: `cv_chatgpt_` and the SHA-256 of the export's id for it
12
+ * (`conversation_id`, else `id`), else of its title and creation time. A
13
+ * later import of the conversation finds the row by that name, through a
14
+ * rename and without a `create_time` when the export names it by an id; a
15
+ * conversation the export names by neither gets a row of its own at each
16
+ * import. When the export's update time is later than the row's, the row
17
+ * takes it and the conversation's title.
11
18
  * 2. Every user/assistant message pair is encoded as an **episodic memory trace**
12
19
  * whose content is `"[user]: {user_text}\n[assistant]: {assistant_text}"`.
13
20
  * This preserves conversational context in a single retrievable unit.
21
+ * With deduplication on (the default), the trace is named after the brain
22
+ * and its text, `mt_chatgpt_` and their SHA-256.
14
23
  * 3. System messages and tool messages are skipped (they are not episodic memories).
15
24
  *
16
25
  * ## ChatGPT export format
@@ -38,6 +47,33 @@ import { sha256 } from '../core/util/crossPlatformCrypto.js';
38
47
  import { v4 as uuidv4 } from 'uuid';
39
48
  import { fillScopeIds } from '../retrieval/store/migrations/v2-to-v3.js';
40
49
  import { duplicateTraceCondition, duplicateTraceParams } from './importScope.js';
50
+ /** The export's id for a conversation: its `conversation_id`, else its `id`, when either is a non-empty string. */
51
+ function exportedConversationId(convo) {
52
+ for (const value of [convo.conversation_id, convo.id]) {
53
+ if (typeof value === 'string' && value !== '')
54
+ return value;
55
+ }
56
+ return undefined;
57
+ }
58
+ /**
59
+ * The name of a conversation's `conversations` row: `cv_chatgpt_` and the SHA-256 of what names the
60
+ * conversation, the export's id for it, else its title and creation time. Undefined for a conversation the
61
+ * export names by neither, an id or a creation time.
62
+ */
63
+ async function conversationRowName(exportId, title, exportedCreatedAt) {
64
+ if (exportId !== undefined)
65
+ return `cv_chatgpt_${await sha256(JSON.stringify(['id', exportId]))}`;
66
+ if (exportedCreatedAt === undefined)
67
+ return undefined;
68
+ return `cv_chatgpt_${await sha256(JSON.stringify(['title', title, exportedCreatedAt]))}`;
69
+ }
70
+ /**
71
+ * An insert of one row into `table` that does nothing when the brain holds a row of its primary key
72
+ * `(brain_id, id)`, on SQLite and PostgreSQL; any other failure, such as a missing value, still fails it.
73
+ */
74
+ function insertUnlessHeld(table, columns, values) {
75
+ return `INSERT INTO ${table} (${columns.join(', ')}) VALUES (${values.join(', ')}) ON CONFLICT (brain_id, id) DO NOTHING`;
76
+ }
41
77
  // ---------------------------------------------------------------------------
42
78
  // ChatGptImporter
43
79
  // ---------------------------------------------------------------------------
@@ -111,9 +147,10 @@ export class ChatGptImporter {
111
147
  /**
112
148
  * Import a single ChatGPT conversation object.
113
149
  *
114
- * Creates a `conversations` row and then iterates through the message
115
- * mapping in tree order (BFS), pairing adjacent user/assistant messages
116
- * into episodic memory traces.
150
+ * Writes the conversation's `conversations` row, or finds the one it has
151
+ * (see `_conversationRow`), and then iterates through the message mapping in
152
+ * tree order (BFS), pairing adjacent user/assistant messages into episodic
153
+ * memory traces whose metadata names that row.
117
154
  *
118
155
  * @param convo - Raw ChatGPT conversation object.
119
156
  * @param result - Mutable result accumulator.
@@ -122,21 +159,12 @@ export class ChatGptImporter {
122
159
  const title = convo.title ?? 'Untitled';
123
160
  const createdAt = convo.create_time ? Math.round(convo.create_time * 1000) : Date.now();
124
161
  const updatedAt = convo.update_time ? Math.round(convo.update_time * 1000) : createdAt;
125
- // Insert the conversation row (ignore duplicates by title + created_at).
126
- const conversationId = `cv_${uuidv4()}`;
162
+ let conversationId;
127
163
  try {
128
- const { dialect } = this.brain.features;
129
- await this.brain.run(dialect.insertOrIgnore('conversations', ['brain_id', 'id', 'title', 'created_at', 'updated_at', 'metadata'], ['?', '?', '?', '?', '?', '?']), [
130
- this.brain.brainId,
131
- conversationId,
132
- title,
133
- createdAt,
134
- updatedAt,
135
- JSON.stringify({ source: 'chatgpt_export' }),
136
- ]);
164
+ conversationId = await this._conversationRow(exportedConversationId(convo), title, convo.create_time ? createdAt : undefined, createdAt, updatedAt);
137
165
  }
138
166
  catch (err) {
139
- result.errors.push(`Conversation insert error for "${title}": ${String(err)}`);
167
+ result.errors.push(`Conversation row error for "${title}": ${String(err)}`);
140
168
  return;
141
169
  }
142
170
  if (!convo.mapping)
@@ -201,6 +229,46 @@ export class ChatGptImporter {
201
229
  }
202
230
  }
203
231
  }
232
+ /**
233
+ * The id of a conversation's `conversations` row. A conversation the export
234
+ * names by an id, or by no id but with a `create_time`, has a row named after
235
+ * it (`conversationRowName`), which a later import of it finds by that name:
236
+ * through a rename and without a `create_time` when the export names it by
237
+ * an id. The row is written with an insert that does nothing when the brain
238
+ * holds a row of that name, so two imports that write one conversation's row
239
+ * at the same time, in one process or in two, write one row and both file
240
+ * under it. A row of any other name is never taken, since nothing in it says
241
+ * which conversation it is: the conversation gets the row it names beside it,
242
+ * and the pairs filed under the other keep naming that one. A conversation the
243
+ * export names by neither has nothing to find it by: each import writes it a
244
+ * row of its own. The row then takes the conversation's title and the export's
245
+ * update time when that update time is later than the row's. The row's
246
+ * metadata records the export's id as `chatgpt_id`.
247
+ *
248
+ * @param exportId - The export's id for the conversation, when it names one.
249
+ * @param title - The conversation's title.
250
+ * @param exportedCreatedAt - Its creation time in ms, when the export gives one.
251
+ * @param createdAt - The creation time a new row takes, in ms.
252
+ * @param updatedAt - Its update time, in ms.
253
+ * @returns The row's id.
254
+ */
255
+ async _conversationRow(exportId, title, exportedCreatedAt, createdAt, updatedAt) {
256
+ const brainId = this.brain.brainId;
257
+ const named = await conversationRowName(exportId, title, exportedCreatedAt);
258
+ const conversationId = named ?? `cv_${uuidv4()}`;
259
+ await this.brain.run(insertUnlessHeld('conversations', ['brain_id', 'id', 'title', 'created_at', 'updated_at', 'metadata'], ['?', '?', '?', '?', '?', '?']), [
260
+ brainId,
261
+ conversationId,
262
+ title,
263
+ createdAt,
264
+ updatedAt,
265
+ JSON.stringify(exportId === undefined ? { source: 'chatgpt_export' } : { source: 'chatgpt_export', chatgpt_id: exportId }),
266
+ ]);
267
+ if (named !== undefined) {
268
+ await this.brain.run('UPDATE conversations SET updated_at = ?, title = ? WHERE brain_id = ? AND id = ? AND updated_at < ?', [updatedAt, title, brainId, conversationId, updatedAt]);
269
+ }
270
+ return conversationId;
271
+ }
204
272
  /**
205
273
  * Insert a single episodic memory trace derived from a message pair.
206
274
  *
@@ -210,7 +278,12 @@ export class ChatGptImporter {
210
278
  * duplicate, whichever writer stored it. `import` first files the traces an
211
279
  * older release wrote with `scope_id` `''` under the scope id their metadata
212
280
  * names (`fillScopeIds`), so another scope id's trace is not taken for a
213
- * duplicate.
281
+ * duplicate. With deduplication on, the trace is named after the brain and
282
+ * the pair's text, and written with an insert that does nothing when the
283
+ * brain holds a trace of that name, so two imports that store one pair at the
284
+ * same time, each after finding no duplicate of it, store one trace: the
285
+ * import whose insert wrote nothing counts the pair as a duplicate. With it
286
+ * off, each import stores the pair again, under a random id.
214
287
  *
215
288
  * @param content - The `[user]:...\n[assistant]:...` content string.
216
289
  * @param createdAt - Unix timestamp (ms) of the user message.
@@ -219,8 +292,9 @@ export class ChatGptImporter {
219
292
  */
220
293
  async _insertEpisodicTrace(content, createdAt, conversationId, result, options) {
221
294
  const hash = await sha256(content);
295
+ const dedup = options?.dedup ?? true;
222
296
  // Dedup check.
223
- if (options?.dedup ?? true) {
297
+ if (dedup) {
224
298
  const existing = await this.brain.get(`SELECT id FROM memory_traces
225
299
  WHERE brain_id = ? AND scope = 'user' AND scope_id = ''
226
300
  AND ${duplicateTraceCondition(this.brain)}
@@ -231,12 +305,12 @@ export class ChatGptImporter {
231
305
  }
232
306
  }
233
307
  try {
234
- await this.brain.run(`INSERT INTO memory_traces
235
- (brain_id, id, type, scope, content, embedding, strength, created_at, last_accessed,
236
- retrieval_count, tags, emotions, metadata, deleted, scope_id)
237
- VALUES (?, ?, 'episodic', 'user', ?, NULL, 1.0, ?, NULL, 0, '[]', '{}', ?, 0, '')`, [
308
+ const written = await this.brain.run(insertUnlessHeld('memory_traces', [
309
+ 'brain_id', 'id', 'type', 'scope', 'content', 'embedding', 'strength', 'created_at', 'last_accessed',
310
+ 'retrieval_count', 'tags', 'emotions', 'metadata', 'deleted', 'scope_id',
311
+ ], ['?', '?', "'episodic'", "'user'", '?', 'NULL', '1.0', '?', 'NULL', '0', "'[]'", "'{}'", '?', '0', "''"]), [
238
312
  this.brain.brainId,
239
- `mt_${uuidv4()}`,
313
+ dedup ? `mt_chatgpt_${await sha256(JSON.stringify([this.brain.brainId, content]))}` : `mt_${uuidv4()}`,
240
314
  content,
241
315
  createdAt,
242
316
  JSON.stringify({
@@ -245,7 +319,10 @@ export class ChatGptImporter {
245
319
  conversation_id: conversationId,
246
320
  }),
247
321
  ]);
248
- result.imported++;
322
+ if (written.changes > 0)
323
+ result.imported++;
324
+ else
325
+ result.skipped++;
249
326
  }
250
327
  catch (err) {
251
328
  result.errors.push(`Trace insert error: ${String(err)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"ChatGptImporter.js","sourceRoot":"","sources":["../../../../src/cognition/memory/io/ChatGptImporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChatGptImporter.js","sourceRoot":"","sources":["../../../../src/cognition/memory/io/ChatGptImporter.ts"],"names":[],"mappings":"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"}
@@ -112,8 +112,9 @@ export declare class GMI implements IGMI {
112
112
  */
113
113
  private ownPersonalitySection;
114
114
  /**
115
- * What the learning layer prepared for the turn in progress. Set once per user turn, before the tool loop;
116
- * a tool continuation keeps the preparation of the turn it continues.
115
+ * What the learning layer prepared for the latest turn. Set once per user turn, before the tool loop; a tool
116
+ * continuation reuses the preparation of the turn it continues. A turn's tool calls read the turn's own preparation,
117
+ * not this field, which a newer turn replaces.
117
118
  */
118
119
  private turnLearning;
119
120
  private memoryBridge;
@@ -259,6 +260,13 @@ export declare class GMI implements IGMI {
259
260
  * for its conversation unless the turn names a conversation.
260
261
  */
261
262
  private memoryTurnScope;
263
+ /**
264
+ * The session data each tool call of a turn carries: its session, conversation and organization, and the turn's own
265
+ * learning, never a newer turn's.
266
+ *
267
+ * @param turnInput - The turn's input.
268
+ * @param learning - The turn's own learning preparation.
269
+ */
262
270
  private buildToolSessionData;
263
271
  /**
264
272
  * Ensures the GMI is initialized and idle: READY, or ERRORED after a failed
@@ -1 +1 @@
1
- {"version":3,"file":"GMI.d.ts","sourceRoot":"","sources":["../../../src/cognition/substrate/GMI.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GMI.d.ts","sourceRoot":"","sources":["../../../src/cognition/substrate/GMI.ts"],"names":[],"mappings":"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"}
@@ -674,7 +674,14 @@ export class GMI {
674
674
  const namedConversation = typeof turnInput.metadata?.conversationId === 'string' ? turnInput.metadata.conversationId.trim() : '';
675
675
  return { sessionId, conversationId: namedConversation || sessionId, organizationId };
676
676
  }
677
- buildToolSessionData(turnInput) {
677
+ /**
678
+ * The session data each tool call of a turn carries: its session, conversation and organization, and the turn's own
679
+ * learning, never a newer turn's.
680
+ *
681
+ * @param turnInput - The turn's input.
682
+ * @param learning - The turn's own learning preparation.
683
+ */
684
+ buildToolSessionData(turnInput, learning) {
678
685
  const sessionId = typeof turnInput.sessionId === 'string' ? turnInput.sessionId.trim() : '';
679
686
  const conversationId = this.getConversationIdForTurn(turnInput);
680
687
  const organizationId = this.getOrganizationIdForTurn(turnInput);
@@ -689,8 +696,10 @@ export class GMI {
689
696
  sessionData.organizationId = organizationId;
690
697
  }
691
698
  // The turn's learner and mode, on a GMI with a learner session: a self-modification tool reads them before it acts.
692
- if (this.turnLearning?.tools) {
693
- sessionData.learning = { ...this.turnLearning.tools };
699
+ // They come from the turn's own preparation, so a newer turn or a continuation that ran during this turn's tool
700
+ // call never changes them.
701
+ if (learning?.tools) {
702
+ sessionData.learning = { ...learning.tools };
694
703
  }
695
704
  return Object.keys(sessionData).length > 0 ? sessionData : undefined;
696
705
  }
@@ -1704,7 +1713,7 @@ export class GMI {
1704
1713
  gmiId: this.gmiId, personaId: this.activePersona.id,
1705
1714
  personaCapabilities: this.activePersona.allowedCapabilities || [],
1706
1715
  userContext: this.currentUserContext, correlationId: turnId,
1707
- sessionData: this.buildToolSessionData(turnInput),
1716
+ sessionData: this.buildToolSessionData(turnInput, turnLearning),
1708
1717
  };
1709
1718
  this.addTraceEntry(ReasoningEntryType.TOOL_EXECUTION_START, `Orchestrating tool: ${toolCallReq.name}`, { reqId: toolCallReq.id });
1710
1719
  callInFlight = toolCallReq;