@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.
- package/dist/api/agent.d.ts +5 -1
- package/dist/api/agent.d.ts.map +1 -1
- package/dist/api/agent.js.map +1 -1
- package/dist/api/gmi.d.ts.map +1 -1
- package/dist/api/gmi.js +5 -1
- package/dist/api/gmi.js.map +1 -1
- package/dist/api/runtime/gmiPersona.d.ts +3 -0
- package/dist/api/runtime/gmiPersona.d.ts.map +1 -1
- package/dist/api/runtime/gmiPersona.js +7 -2
- package/dist/api/runtime/gmiPersona.js.map +1 -1
- package/dist/cognition/memory/io/ChatGptImporter.d.ts +44 -5
- package/dist/cognition/memory/io/ChatGptImporter.d.ts.map +1 -1
- package/dist/cognition/memory/io/ChatGptImporter.js +101 -24
- package/dist/cognition/memory/io/ChatGptImporter.js.map +1 -1
- package/dist/cognition/substrate/GMI.d.ts +10 -2
- package/dist/cognition/substrate/GMI.d.ts.map +1 -1
- package/dist/cognition/substrate/GMI.js +13 -4
- package/dist/cognition/substrate/GMI.js.map +1 -1
- package/dist/cognition/substrate/GMIManager.d.ts +6 -5
- package/dist/cognition/substrate/GMIManager.d.ts.map +1 -1
- package/dist/cognition/substrate/GMIManager.js +91 -15
- package/dist/cognition/substrate/GMIManager.js.map +1 -1
- package/package.json +1 -1
|
@@ -7,10 +7,19 @@
|
|
|
7
7
|
* ## Import strategy
|
|
8
8
|
*
|
|
9
9
|
* For each conversation object in `conversations.json`:
|
|
10
|
-
* 1.
|
|
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
|
-
*
|
|
115
|
-
*
|
|
116
|
-
* into episodic
|
|
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
|
-
|
|
126
|
-
const conversationId = `cv_${uuidv4()}`;
|
|
162
|
+
let conversationId;
|
|
127
163
|
try {
|
|
128
|
-
|
|
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
|
|
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 (
|
|
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(
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
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
|
-
|
|
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":"AAAA
|
|
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
|
|
116
|
-
*
|
|
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":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EACL,IAAI,EACJ,aAAa,EACb,YAAY,EACZ,cAAc,EAEd,aAAa,EAIb,cAAc,EAGd,eAAe,EACf,oBAAoB,EACpB,uBAAuB,EAIvB,cAAc,EACd,iBAAiB,EACjB,SAAS,EAIV,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAA+D,oBAAoB,EAAoD,MAAM,QAAQ,CAAC;AAElK,OAAO,EACL,kBAAkB,EAEnB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,KAAK,EAAE,eAAe,EAAuB,MAAM,sBAAsB,CAAC;AAgBjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAElF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAMnF,OAAO,EAAwB,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAqInF;;;;;GAKG;AACH,qBAAa,GAAI,YAAW,IAAI;IAC9B,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,iBAAiB,EAAE,IAAI,CAAC;IAExC,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,MAAM,CAAiB;IAG/B,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,kBAAkB,CAAC,CAAsB;IACjD,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,eAAe,CAAC,CAA0B;IAGlD,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,kBAAkB,CAAe;IACzC,OAAO,CAAC,kBAAkB,CAAe;IACzC,OAAO,CAAC,cAAc,CAAiB;IACvC,wGAAwG;IACxG,OAAO,CAAC,WAAW,CAAuD;IAC1E,OAAO,CAAC,0BAA0B,CAA8B;IAEhE;;;;;;OAMG;IACH,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,cAAc,CAAK;IAE3B;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsE;IAEnG,2FAA2F;IAC3F,OAAO,CAAC,kBAAkB,CAA4B;IAEtD;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA8C;IAC7E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,yGAAyG;IACzG,OAAO,CAAC,iBAAiB,CAAoC;IAE7D;;;;OAIG;IACH,OAAO,CAAC,cAAc,CAAmC;IAEzD;;;;;OAKG;IACH,OAAO,CAAC,eAAe,CAA8B;IAErD;;;;OAIG;IACH,OAAO,CAAC,gBAAgB,CAA8B;IAEtD;;;;OAIG;IACH,OAAO,CAAC,cAAc,CAA0E;IAEhG;;;;OAIG;IACH,OAAO,CAAC,aAAa,CAA0B;IAE/C,sGAAsG;IACtG,OAAO,CAAC,cAAc,CAA8B;IAEpD;;;;OAIG;IACH,OAAO,CAAC,qBAAqB,CAAuB;IAEpD
|
|
1
|
+
{"version":3,"file":"GMI.d.ts","sourceRoot":"","sources":["../../../src/cognition/substrate/GMI.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EACL,IAAI,EACJ,aAAa,EACb,YAAY,EACZ,cAAc,EAEd,aAAa,EAIb,cAAc,EAGd,eAAe,EACf,oBAAoB,EACpB,uBAAuB,EAIvB,cAAc,EACd,iBAAiB,EACjB,SAAS,EAIV,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAA+D,oBAAoB,EAAoD,MAAM,QAAQ,CAAC;AAElK,OAAO,EACL,kBAAkB,EAEnB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,KAAK,EAAE,eAAe,EAAuB,MAAM,sBAAsB,CAAC;AAgBjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAElF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAMnF,OAAO,EAAwB,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAqInF;;;;;GAKG;AACH,qBAAa,GAAI,YAAW,IAAI;IAC9B,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,iBAAiB,EAAE,IAAI,CAAC;IAExC,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,MAAM,CAAiB;IAG/B,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,kBAAkB,CAAC,CAAsB;IACjD,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,eAAe,CAAC,CAA0B;IAGlD,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,kBAAkB,CAAe;IACzC,OAAO,CAAC,kBAAkB,CAAe;IACzC,OAAO,CAAC,cAAc,CAAiB;IACvC,wGAAwG;IACxG,OAAO,CAAC,WAAW,CAAuD;IAC1E,OAAO,CAAC,0BAA0B,CAA8B;IAEhE;;;;;;OAMG;IACH,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,cAAc,CAAK;IAE3B;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsE;IAEnG,2FAA2F;IAC3F,OAAO,CAAC,kBAAkB,CAA4B;IAEtD;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA8C;IAC7E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,yGAAyG;IACzG,OAAO,CAAC,iBAAiB,CAAoC;IAE7D;;;;OAIG;IACH,OAAO,CAAC,cAAc,CAAmC;IAEzD;;;;;OAKG;IACH,OAAO,CAAC,eAAe,CAA8B;IAErD;;;;OAIG;IACH,OAAO,CAAC,gBAAgB,CAA8B;IAEtD;;;;OAIG;IACH,OAAO,CAAC,cAAc,CAA0E;IAEhG;;;;OAIG;IACH,OAAO,CAAC,aAAa,CAA0B;IAE/C,sGAAsG;IACtG,OAAO,CAAC,cAAc,CAA8B;IAEpD;;;;OAIG;IACH,OAAO,CAAC,qBAAqB,CAAuB;IAEpD;;;;OAIG;IACH,OAAO,CAAC,YAAY,CAA2B;IAK/C,OAAO,CAAC,YAAY,CAAsC;IAG1D,OAAO,CAAC,gBAAgB,CAAoB;IAG5C,OAAO,CAAC,kBAAkB,CAAsB;IAEhD;;;;OAIG;gBACS,KAAK,CAAC,EAAE,MAAM;IAY1B;;OAEG;IACU,UAAU,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAmI1F;;;;;;OAMG;IACH,OAAO,CAAC,4BAA4B;IAiBpC;;;OAGG;YACW,6BAA6B;IA6C3C,kBAAkB;IACX,UAAU,IAAI,kBAAkB;IAOvC,kBAAkB;IACX,0BAA0B,IAAI,MAAM;IAO3C,kBAAkB;IACX,QAAQ,IAAI,MAAM;IAEzB,kBAAkB;IACX,eAAe,IAAI,aAAa;IAEvC,kBAAkB;IACX,iBAAiB,IAAI,QAAQ,CAAC,cAAc,CAAC;IAIpD,kBAAkB;IACL,wBAAwB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAIrE,kBAAkB;IACX,yBAAyB,IAAI,uBAAuB,GAAG,SAAS;IAIvE;;;;;;;;OAQG;IACU,kBAAkB,CAAC,QAAQ,EAAE,sBAAsB,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BrG;;;;;;;;;OASG;IACI,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAS9D,kBAAkB;IACX,iBAAiB,IAAI,eAAe,GAAG,SAAS;IAIvD;;;;;;;;;;;;OAYG;YACW,mBAAmB;IAmDjC;;;OAGG;IACH,OAAO,CAAC,aAAa;IAcrB;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,kBAAkB;IAgC1B,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,wBAAwB;IAahC,OAAO,CAAC,wBAAwB;IAQhC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,6BAA6B;IAqBrC;;;OAGG;YACW,eAAe;IAc7B;;;;;;OAMG;YACW,sBAAsB;IAapC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAUvB;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAyB5B;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAenB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAclB,0BAA0B,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,GAAG,IAAI;IAInF;;;OAGG;IACI,sBAAsB,IAAI,mBAAmB,EAAE;IAItD;;;;;OAKG;IACI,kBAAkB,IAAI,mBAAmB,EAAE;IAQlD;;;;;;;;;OASG;IACI,cAAc,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,IAAI;IAM5D,6HAA6H;IACtH,YAAY,IAAI,IAAI;IAK3B;;;;;;;;;OASG;IACI,kBAAkB,CAAC,OAAO,EAAE;QACjC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,OAAO,+BAA+B,EAAE,iBAAiB,EAAE,CAAC;KAC1E,GAAG,IAAI;IAwBR;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAmBnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,OAAO,CAAC,uBAAuB;IAgC/B;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IAuBjC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAU3B;;;;OAIG;YACW,qBAAqB;IAenC,kBAAkB;IAEJ,iBAAiB,CAAC,SAAS,EAAE,YAAY,GAAG,cAAc,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC;IAq8B9G,kBAAkB;IACL,gBAAgB,CAC3B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,iBAAiB,EAChC,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,6CAA6C;IACpF,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,SAAS,CAAC;IAiBrB,kBAAkB;IACL,iBAAiB,CAC5B,WAAW,EAAE,cAAc,EAAE,EAC7B,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,6CAA6C;IACpF,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,SAAS,CAAC;IA8HrB;;;OAGG;YACW,wBAAwB;IAoEtC,kBAAkB;IACL,gCAAgC,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9D;;;OAGG;IACH,OAAO,CAAC,6BAA6B;IAoDrC,kBAAkB;IACL,sBAAsB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAyBlG,kBAAkB;IACL,4BAA4B,IAAI,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;IAiBrF,kBAAkB;IACL,gBAAgB,IAAI,OAAO,CAAC,eAAe,CAAC;IA6CzD;;;;;;;;;;;OAWG;IACI,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAShC,mEAAmE;YACrD,YAAY;IAoC1B;;;;;OAKG;YACW,gBAAgB;CAU/B"}
|
|
@@ -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
|
-
|
|
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
|
-
|
|
693
|
-
|
|
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;
|