@mastra/memory 1.17.0 → 1.17.1
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/CHANGELOG.md +18 -0
- package/dist/{chunk-MPBMHIAQ.js → chunk-7742VTN5.js} +100 -44
- package/dist/chunk-7742VTN5.js.map +1 -0
- package/dist/{chunk-5MTY2UYL.cjs → chunk-J2XQSPAB.cjs} +100 -44
- package/dist/chunk-J2XQSPAB.cjs.map +1 -0
- package/dist/{constants-HXOCZPB7.cjs → constants-PJXB7ZIS.cjs} +2 -2
- package/dist/{constants-HXOCZPB7.cjs.map → constants-PJXB7ZIS.cjs.map} +1 -1
- package/dist/{constants-BDOITAO3.js → constants-XEHPYRDJ.js} +2 -2
- package/dist/{constants-BDOITAO3.js.map → constants-XEHPYRDJ.js.map} +1 -1
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +39 -39
- package/dist/docs/references/docs-memory-working-memory.md +1 -1
- package/dist/index.cjs +785 -384
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +776 -375
- package/dist/index.js.map +1 -1
- package/dist/{observational-memory-UCFGVLVW.cjs → observational-memory-ISRI7QGE.cjs} +26 -26
- package/dist/{observational-memory-UCFGVLVW.cjs.map → observational-memory-ISRI7QGE.cjs.map} +1 -1
- package/dist/{observational-memory-7YYZIIX4.js → observational-memory-YYO73QMY.js} +3 -3
- package/dist/{observational-memory-7YYZIIX4.js.map → observational-memory-YYO73QMY.js.map} +1 -1
- package/dist/processors/index.cjs +24 -24
- package/dist/processors/index.js +1 -1
- package/dist/processors/observational-memory/observation-strategies/async-buffer.d.ts.map +1 -1
- package/dist/processors/observational-memory/observation-strategies/base.d.ts.map +1 -1
- package/dist/processors/observational-memory/observation-turn/step.d.ts.map +1 -1
- package/dist/processors/observational-memory/observation-turn/turn.d.ts +3 -2
- package/dist/processors/observational-memory/observation-turn/turn.d.ts.map +1 -1
- package/dist/processors/observational-memory/observation-turn/types.d.ts +1 -0
- package/dist/processors/observational-memory/observation-turn/types.d.ts.map +1 -1
- package/dist/processors/observational-memory/observational-memory.d.ts.map +1 -1
- package/dist/processors/observational-memory/processor.d.ts.map +1 -1
- package/dist/processors/observational-memory/reflector-runner.d.ts +1 -0
- package/dist/processors/observational-memory/reflector-runner.d.ts.map +1 -1
- package/package.json +10 -10
- package/dist/chunk-3PUO6DLX.js +0 -439
- package/dist/chunk-3PUO6DLX.js.map +0 -1
- package/dist/chunk-5MTY2UYL.cjs.map +0 -1
- package/dist/chunk-CK4U3AYR.cjs +0 -84
- package/dist/chunk-CK4U3AYR.cjs.map +0 -1
- package/dist/chunk-DAJJSFVA.cjs +0 -441
- package/dist/chunk-DAJJSFVA.cjs.map +0 -1
- package/dist/chunk-DGUM43GV.js +0 -10
- package/dist/chunk-DGUM43GV.js.map +0 -1
- package/dist/chunk-EQ4M72KU.js +0 -439
- package/dist/chunk-EQ4M72KU.js.map +0 -1
- package/dist/chunk-IDRQZVB4.cjs +0 -84
- package/dist/chunk-IDRQZVB4.cjs.map +0 -1
- package/dist/chunk-JEQ2X3Z6.cjs +0 -12
- package/dist/chunk-JEQ2X3Z6.cjs.map +0 -1
- package/dist/chunk-MPBMHIAQ.js.map +0 -1
- package/dist/chunk-RC6RZVYE.js +0 -79
- package/dist/chunk-RC6RZVYE.js.map +0 -1
- package/dist/chunk-SVPZMV27.js +0 -79
- package/dist/chunk-SVPZMV27.js.map +0 -1
- package/dist/chunk-ZD3BKU5O.cjs +0 -441
- package/dist/chunk-ZD3BKU5O.cjs.map +0 -1
- package/dist/token-APYSY3BW-2DN6RAUY.js +0 -61
- package/dist/token-APYSY3BW-2DN6RAUY.js.map +0 -1
- package/dist/token-APYSY3BW-POD4OUWN.cjs +0 -63
- package/dist/token-APYSY3BW-POD4OUWN.cjs.map +0 -1
- package/dist/token-APYSY3BW-YTVQELJT.js +0 -61
- package/dist/token-APYSY3BW-YTVQELJT.js.map +0 -1
- package/dist/token-APYSY3BW-ZQ7TMBY7.cjs +0 -63
- package/dist/token-APYSY3BW-ZQ7TMBY7.cjs.map +0 -1
- package/dist/token-util-RMHT2CPJ-6TGPE335.cjs +0 -10
- package/dist/token-util-RMHT2CPJ-6TGPE335.cjs.map +0 -1
- package/dist/token-util-RMHT2CPJ-77HHGIQN.cjs +0 -10
- package/dist/token-util-RMHT2CPJ-77HHGIQN.cjs.map +0 -1
- package/dist/token-util-RMHT2CPJ-RJEA3FAN.js +0 -8
- package/dist/token-util-RMHT2CPJ-RJEA3FAN.js.map +0 -1
- package/dist/token-util-RMHT2CPJ-WJZ2SYAR.js +0 -8
- package/dist/token-util-RMHT2CPJ-WJZ2SYAR.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @mastra/memory
|
|
2
2
|
|
|
3
|
+
## 1.17.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Fixed streamed tool results being replayed when observational memory runs mid-stream. ([#15701](https://github.com/mastra-ai/mastra/pull/15701))
|
|
8
|
+
Fixed observational memory markers being saved as separate empty assistant messages.
|
|
9
|
+
- Updated dependencies [[`733bf53`](https://github.com/mastra-ai/mastra/commit/733bf53d9352aedd3ef38c3d501edb275b65b43c), [`5405b3b`](https://github.com/mastra-ai/mastra/commit/5405b3b35325c5b8fb34fc7ac109bd2feb7bb6fe), [`45e29cb`](https://github.com/mastra-ai/mastra/commit/45e29cb5b5737f3083eb3852db02b944b9cf37ed), [`750b4d3`](https://github.com/mastra-ai/mastra/commit/750b4d3d8231f92e769b2c485921ac5a8ca639b9), [`c321127`](https://github.com/mastra-ai/mastra/commit/c3211275fc195de9ad1ead2746b354beb8eae6e8), [`a07bcef`](https://github.com/mastra-ai/mastra/commit/a07bcefea77c03d6d322caad973dca49b4b15fa1), [`696694e`](https://github.com/mastra-ai/mastra/commit/696694e00f29241a25dd1a1b749afa06c3a626b4), [`b084a80`](https://github.com/mastra-ai/mastra/commit/b084a800db0f82d62e1fc3d6e3e3480da1ba5a53), [`82b7a96`](https://github.com/mastra-ai/mastra/commit/82b7a964169636c1d1e0c694fc892a213b0179d5), [`df97812`](https://github.com/mastra-ai/mastra/commit/df97812bd949dcafeb074b80ecab501724b49c3b), [`8bbe360`](https://github.com/mastra-ai/mastra/commit/8bbe36042af7fc4be0244dffd8913f6795179421), [`f6b8ba8`](https://github.com/mastra-ai/mastra/commit/f6b8ba8dbf533b7a8db90c72b6805ddc804a3a72), [`a07bcef`](https://github.com/mastra-ai/mastra/commit/a07bcefea77c03d6d322caad973dca49b4b15fa1)]:
|
|
10
|
+
- @mastra/core@1.28.0
|
|
11
|
+
|
|
12
|
+
## 1.17.1-alpha.0
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- Fixed observational memory message boundaries so streamed tool results continue in a fresh assistant message instead of being filtered out mid-run, and OM lifecycle markers persist through memory without creating data-only database messages. ([#15701](https://github.com/mastra-ai/mastra/pull/15701))
|
|
17
|
+
|
|
18
|
+
- Updated dependencies [[`750b4d3`](https://github.com/mastra-ai/mastra/commit/750b4d3d8231f92e769b2c485921ac5a8ca639b9)]:
|
|
19
|
+
- @mastra/core@1.28.0-alpha.1
|
|
20
|
+
|
|
3
21
|
## 1.17.0
|
|
4
22
|
|
|
5
23
|
### Minor Changes
|
|
@@ -1088,9 +1088,11 @@ var ObservationStrategy = class _ObservationStrategy {
|
|
|
1088
1088
|
}
|
|
1089
1089
|
async streamMarker(marker) {
|
|
1090
1090
|
if (this.opts.writer) {
|
|
1091
|
-
await this.opts.writer.custom(marker).catch(() => {
|
|
1091
|
+
await this.opts.writer.custom({ ...marker, transient: true }).catch(() => {
|
|
1092
1092
|
});
|
|
1093
1093
|
}
|
|
1094
|
+
const markerThreadId = marker.data?.threadId ?? this.opts.threadId;
|
|
1095
|
+
await this.persistMarkerToStorage(marker, markerThreadId, this.opts.resourceId);
|
|
1094
1096
|
}
|
|
1095
1097
|
getObservationMarkerConfig() {
|
|
1096
1098
|
return {
|
|
@@ -1596,7 +1598,7 @@ var AsyncBufferObservationStrategy = class extends ObservationStrategy {
|
|
|
1596
1598
|
}
|
|
1597
1599
|
}
|
|
1598
1600
|
async emitEndMarkers(_cycleId, processed) {
|
|
1599
|
-
if (!processed.observations
|
|
1601
|
+
if (!processed.observations) return;
|
|
1600
1602
|
const { record, threadId, messages } = this.opts;
|
|
1601
1603
|
const tokensBuffered = await this.tokenCounter.countMessagesAsync(messages);
|
|
1602
1604
|
const updatedRecord = await this.storage.getObservationalMemory(record.threadId, record.resourceId);
|
|
@@ -1612,12 +1614,13 @@ var AsyncBufferObservationStrategy = class extends ObservationStrategy {
|
|
|
1612
1614
|
threadId,
|
|
1613
1615
|
observations: processed.observations
|
|
1614
1616
|
});
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
+
if (this.opts.writer) {
|
|
1618
|
+
void this.opts.writer.custom({ ...endMarker, transient: true }).catch(() => {
|
|
1619
|
+
});
|
|
1620
|
+
}
|
|
1617
1621
|
await this.persistMarkerToStorage(endMarker, threadId, record.resourceId ?? void 0);
|
|
1618
1622
|
}
|
|
1619
1623
|
async emitFailedMarkers(_cycleId, error) {
|
|
1620
|
-
if (!this.opts.writer) return;
|
|
1621
1624
|
const { record, threadId, messages } = this.opts;
|
|
1622
1625
|
const tokensAttempted = await this.tokenCounter.countMessagesAsync(messages);
|
|
1623
1626
|
const failedMarker = createBufferingFailedMarker({
|
|
@@ -1629,8 +1632,10 @@ var AsyncBufferObservationStrategy = class extends ObservationStrategy {
|
|
|
1629
1632
|
recordId: record.id,
|
|
1630
1633
|
threadId
|
|
1631
1634
|
});
|
|
1632
|
-
|
|
1633
|
-
|
|
1635
|
+
if (this.opts.writer) {
|
|
1636
|
+
void this.opts.writer.custom({ ...failedMarker, transient: true }).catch(() => {
|
|
1637
|
+
});
|
|
1638
|
+
}
|
|
1634
1639
|
await this.persistMarkerToStorage(failedMarker, threadId, record.resourceId ?? void 0);
|
|
1635
1640
|
}
|
|
1636
1641
|
};
|
|
@@ -2095,7 +2100,11 @@ var ObservationStep = class {
|
|
|
2095
2100
|
}
|
|
2096
2101
|
const allMsgsForToolCheck = messageList.get.all.db();
|
|
2097
2102
|
const lastMessage = allMsgsForToolCheck[allMsgsForToolCheck.length - 1];
|
|
2098
|
-
const
|
|
2103
|
+
const pendingStepMessages = [...messageList.get.input.db(), ...messageList.get.response.db()];
|
|
2104
|
+
const latestStepParts = [
|
|
2105
|
+
...getLatestStepParts(lastMessage?.content?.parts ?? []),
|
|
2106
|
+
...pendingStepMessages.flatMap((msg) => getLatestStepParts(msg.content?.parts ?? []))
|
|
2107
|
+
];
|
|
2099
2108
|
const hasIncompleteToolCalls = latestStepParts.some(
|
|
2100
2109
|
(part) => part?.type === "tool-invocation" && part.toolInvocation?.state === "call"
|
|
2101
2110
|
);
|
|
@@ -2282,6 +2291,31 @@ var ObservationStep = class {
|
|
|
2282
2291
|
writer: this.turn.writer,
|
|
2283
2292
|
observabilityContext: this.turn.observabilityContext
|
|
2284
2293
|
});
|
|
2294
|
+
if (obsResult.observed) {
|
|
2295
|
+
const observedMessageIds = new Set(obsResult.record.observedMessageIds ?? []);
|
|
2296
|
+
const liveMessages = messageList.get.all.db();
|
|
2297
|
+
let latestObservedIndex = -1;
|
|
2298
|
+
for (let i = liveMessages.length - 1; i >= 0; i--) {
|
|
2299
|
+
const message = liveMessages[i];
|
|
2300
|
+
if (message && observedMessageIds.has(message.id)) {
|
|
2301
|
+
latestObservedIndex = i;
|
|
2302
|
+
break;
|
|
2303
|
+
}
|
|
2304
|
+
}
|
|
2305
|
+
const messageToSeal = latestObservedIndex >= 0 ? liveMessages[latestObservedIndex] : void 0;
|
|
2306
|
+
const messagesToSeal = messageToSeal ? [messageToSeal] : [];
|
|
2307
|
+
om.sealMessagesForBuffering(messagesToSeal);
|
|
2308
|
+
try {
|
|
2309
|
+
await this.turn.hooks?.onSyncObservationComplete?.();
|
|
2310
|
+
} catch (error) {
|
|
2311
|
+
omDebug(
|
|
2312
|
+
`[OM:observe] onSyncObservationComplete hook failed: ${error instanceof Error ? error.message : String(error)}`
|
|
2313
|
+
);
|
|
2314
|
+
}
|
|
2315
|
+
if (messagesToSeal.length > 0) {
|
|
2316
|
+
await om.persistMessages(messagesToSeal, threadId, resourceId);
|
|
2317
|
+
}
|
|
2318
|
+
}
|
|
2285
2319
|
return {
|
|
2286
2320
|
succeeded: obsResult.observed,
|
|
2287
2321
|
record: obsResult.record,
|
|
@@ -2309,7 +2343,7 @@ var ObservationTurn = class {
|
|
|
2309
2343
|
observabilityContext;
|
|
2310
2344
|
/** Current actor model for this step. Updated by the processor before prepare(). */
|
|
2311
2345
|
actorModelContext;
|
|
2312
|
-
/**
|
|
2346
|
+
/** Processor-provided hooks for turn/step lifecycle integration. */
|
|
2313
2347
|
hooks;
|
|
2314
2348
|
constructor(opts) {
|
|
2315
2349
|
this.om = opts.om;
|
|
@@ -2317,7 +2351,7 @@ var ObservationTurn = class {
|
|
|
2317
2351
|
this.resourceId = opts.resourceId;
|
|
2318
2352
|
this.messageList = opts.messageList;
|
|
2319
2353
|
this.observabilityContext = opts.observabilityContext;
|
|
2320
|
-
this.hooks = opts.hooks;
|
|
2354
|
+
this.hooks = opts.hooks ?? {};
|
|
2321
2355
|
}
|
|
2322
2356
|
om;
|
|
2323
2357
|
threadId;
|
|
@@ -2337,6 +2371,10 @@ var ObservationTurn = class {
|
|
|
2337
2371
|
get currentStep() {
|
|
2338
2372
|
return this._currentStep;
|
|
2339
2373
|
}
|
|
2374
|
+
addHooks(hooks) {
|
|
2375
|
+
if (!hooks) return;
|
|
2376
|
+
Object.assign(this.hooks, hooks);
|
|
2377
|
+
}
|
|
2340
2378
|
/**
|
|
2341
2379
|
* Load context and cache the record. Call once at the start of the turn.
|
|
2342
2380
|
*
|
|
@@ -4406,8 +4444,9 @@ var ReflectorRunner = class {
|
|
|
4406
4444
|
recordId: streamContext.recordId,
|
|
4407
4445
|
threadId: streamContext.threadId
|
|
4408
4446
|
});
|
|
4409
|
-
await streamContext.writer.custom(failedMarker).catch(() => {
|
|
4447
|
+
await streamContext.writer.custom({ ...failedMarker, transient: true }).catch(() => {
|
|
4410
4448
|
});
|
|
4449
|
+
await this.persistMarkerToStorage(failedMarker, streamContext.threadId, streamContext.resourceId);
|
|
4411
4450
|
const retryCycleId = crypto.randomUUID();
|
|
4412
4451
|
streamContext.cycleId = retryCycleId;
|
|
4413
4452
|
const startMarker = createObservationStartMarker({
|
|
@@ -4420,8 +4459,9 @@ var ReflectorRunner = class {
|
|
|
4420
4459
|
config: this.getObservationMarkerConfig()
|
|
4421
4460
|
});
|
|
4422
4461
|
streamContext.startedAt = startMarker.data.startedAt;
|
|
4423
|
-
await streamContext.writer.custom(startMarker).catch(() => {
|
|
4462
|
+
await streamContext.writer.custom({ ...startMarker, transient: true }).catch(() => {
|
|
4424
4463
|
});
|
|
4464
|
+
await this.persistMarkerToStorage(startMarker, streamContext.threadId, streamContext.resourceId);
|
|
4425
4465
|
}
|
|
4426
4466
|
currentLevel = Math.min(currentLevel + 1, maxLevel);
|
|
4427
4467
|
}
|
|
@@ -4458,7 +4498,7 @@ var ReflectorRunner = class {
|
|
|
4458
4498
|
recordId: record.id,
|
|
4459
4499
|
threadId: record.threadId ?? ""
|
|
4460
4500
|
});
|
|
4461
|
-
void writer.custom(failedMarker).catch(() => {
|
|
4501
|
+
void writer.custom({ ...failedMarker, transient: true }).catch(() => {
|
|
4462
4502
|
});
|
|
4463
4503
|
await this.persistMarkerToStorage(failedMarker, record.threadId ?? "", record.resourceId ?? void 0);
|
|
4464
4504
|
}
|
|
@@ -4516,8 +4556,13 @@ var ReflectorRunner = class {
|
|
|
4516
4556
|
threadIds: record.threadId ? [record.threadId] : [],
|
|
4517
4557
|
config: this.getObservationMarkerConfig(currentRecord)
|
|
4518
4558
|
});
|
|
4519
|
-
void writer.custom(startMarker).catch(() => {
|
|
4559
|
+
void writer.custom({ ...startMarker, transient: true }).catch(() => {
|
|
4520
4560
|
});
|
|
4561
|
+
await this.persistMarkerToStorage(
|
|
4562
|
+
startMarker,
|
|
4563
|
+
currentRecord.threadId ?? "",
|
|
4564
|
+
currentRecord.resourceId ?? void 0
|
|
4565
|
+
);
|
|
4521
4566
|
}
|
|
4522
4567
|
const compressionStartLevel = await this.getCompressionStartLevel(requestContext);
|
|
4523
4568
|
const reflectResult = await this.call(
|
|
@@ -4556,7 +4601,7 @@ var ReflectorRunner = class {
|
|
|
4556
4601
|
threadId: currentRecord.threadId ?? "",
|
|
4557
4602
|
observations: reflectResult.observations
|
|
4558
4603
|
});
|
|
4559
|
-
void writer.custom(endMarker).catch(() => {
|
|
4604
|
+
void writer.custom({ ...endMarker, transient: true }).catch(() => {
|
|
4560
4605
|
});
|
|
4561
4606
|
await this.persistMarkerToStorage(endMarker, currentRecord.threadId ?? "", currentRecord.resourceId ?? void 0);
|
|
4562
4607
|
}
|
|
@@ -4655,7 +4700,7 @@ ${unreflectedContent}` : freshRecord.bufferedReflection;
|
|
|
4655
4700
|
currentModel: activationMetadata?.currentModel,
|
|
4656
4701
|
config: this.getObservationMarkerConfig(freshRecord)
|
|
4657
4702
|
});
|
|
4658
|
-
void writer.custom(activationMarker).catch(() => {
|
|
4703
|
+
void writer.custom({ ...activationMarker, transient: true }).catch(() => {
|
|
4659
4704
|
});
|
|
4660
4705
|
await this.persistMarkerToMessage(
|
|
4661
4706
|
activationMarker,
|
|
@@ -4794,8 +4839,9 @@ ${unreflectedContent}` : freshRecord.bufferedReflection;
|
|
|
4794
4839
|
threadIds: [threadId],
|
|
4795
4840
|
config: this.getObservationMarkerConfig(record)
|
|
4796
4841
|
});
|
|
4797
|
-
await writer.custom(startMarker).catch(() => {
|
|
4842
|
+
await writer.custom({ ...startMarker, transient: true }).catch(() => {
|
|
4798
4843
|
});
|
|
4844
|
+
await this.persistMarkerToStorage(startMarker, threadId, record.resourceId ?? void 0);
|
|
4799
4845
|
}
|
|
4800
4846
|
this.emitDebugEvent({
|
|
4801
4847
|
type: "reflection_triggered",
|
|
@@ -4810,7 +4856,8 @@ ${unreflectedContent}` : freshRecord.bufferedReflection;
|
|
|
4810
4856
|
cycleId,
|
|
4811
4857
|
startedAt,
|
|
4812
4858
|
recordId: record.id,
|
|
4813
|
-
threadId
|
|
4859
|
+
threadId,
|
|
4860
|
+
resourceId: record.resourceId ?? void 0
|
|
4814
4861
|
} : void 0;
|
|
4815
4862
|
let reflectionUsage;
|
|
4816
4863
|
let reflectionError;
|
|
@@ -4845,8 +4892,9 @@ ${unreflectedContent}` : freshRecord.bufferedReflection;
|
|
|
4845
4892
|
recordId: record.id,
|
|
4846
4893
|
threadId
|
|
4847
4894
|
});
|
|
4848
|
-
await writer.custom(endMarker).catch(() => {
|
|
4895
|
+
await writer.custom({ ...endMarker, transient: true }).catch(() => {
|
|
4849
4896
|
});
|
|
4897
|
+
await this.persistMarkerToStorage(endMarker, threadId, record.resourceId ?? void 0);
|
|
4850
4898
|
}
|
|
4851
4899
|
this.emitDebugEvent({
|
|
4852
4900
|
type: "reflection_complete",
|
|
@@ -4869,8 +4917,9 @@ ${unreflectedContent}` : freshRecord.bufferedReflection;
|
|
|
4869
4917
|
recordId: record.id,
|
|
4870
4918
|
threadId
|
|
4871
4919
|
});
|
|
4872
|
-
await writer.custom(failedMarker).catch(() => {
|
|
4920
|
+
await writer.custom({ ...failedMarker, transient: true }).catch(() => {
|
|
4873
4921
|
});
|
|
4922
|
+
await this.persistMarkerToStorage(failedMarker, threadId, record.resourceId ?? void 0);
|
|
4874
4923
|
}
|
|
4875
4924
|
reflectionError = error instanceof Error ? error : new Error(String(error));
|
|
4876
4925
|
if (abortSignal?.aborted) {
|
|
@@ -7799,17 +7848,18 @@ ${grouped}` : grouped;
|
|
|
7799
7848
|
const cycleId = `buffer-obs-${Date.now()}-${Math.random().toString(36).slice(2, 11)}`;
|
|
7800
7849
|
const startedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
7801
7850
|
const tokensToBuffer = await this.tokenCounter.countMessagesAsync(messagesToBuffer);
|
|
7851
|
+
const startMarker = createBufferingStartMarker({
|
|
7852
|
+
cycleId,
|
|
7853
|
+
operationType: "observation",
|
|
7854
|
+
tokensToBuffer,
|
|
7855
|
+
recordId: freshRecord.id,
|
|
7856
|
+
threadId,
|
|
7857
|
+
threadIds: [threadId],
|
|
7858
|
+
config: this.getObservationMarkerConfig()
|
|
7859
|
+
});
|
|
7860
|
+
await this.persistMarkerToStorage(startMarker, threadId, freshRecord.resourceId ?? void 0);
|
|
7802
7861
|
if (writer) {
|
|
7803
|
-
|
|
7804
|
-
cycleId,
|
|
7805
|
-
operationType: "observation",
|
|
7806
|
-
tokensToBuffer,
|
|
7807
|
-
recordId: freshRecord.id,
|
|
7808
|
-
threadId,
|
|
7809
|
-
threadIds: [threadId],
|
|
7810
|
-
config: this.getObservationMarkerConfig()
|
|
7811
|
-
});
|
|
7812
|
-
void writer.custom(startMarker).catch(() => {
|
|
7862
|
+
void writer.custom({ ...startMarker, transient: true }).catch(() => {
|
|
7813
7863
|
});
|
|
7814
7864
|
}
|
|
7815
7865
|
omDebug(
|
|
@@ -8469,18 +8519,19 @@ ${grouped}` : grouped;
|
|
|
8469
8519
|
}
|
|
8470
8520
|
const cycleId = `buffer-obs-${Date.now()}-${Math.random().toString(36).slice(2, 11)}`;
|
|
8471
8521
|
const startedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
8522
|
+
const startMarker = createBufferingStartMarker({
|
|
8523
|
+
cycleId,
|
|
8524
|
+
operationType: "observation",
|
|
8525
|
+
tokensToBuffer: newTokens,
|
|
8526
|
+
recordId: record.id,
|
|
8527
|
+
threadId,
|
|
8528
|
+
threadIds: [threadId],
|
|
8529
|
+
config: this.getObservationMarkerConfig()
|
|
8530
|
+
});
|
|
8531
|
+
await this.persistMarkerToStorage(startMarker, threadId, record.resourceId ?? void 0);
|
|
8472
8532
|
const writer = opts.writer;
|
|
8473
8533
|
if (writer) {
|
|
8474
|
-
|
|
8475
|
-
cycleId,
|
|
8476
|
-
operationType: "observation",
|
|
8477
|
-
tokensToBuffer: newTokens,
|
|
8478
|
-
recordId: record.id,
|
|
8479
|
-
threadId,
|
|
8480
|
-
threadIds: [threadId],
|
|
8481
|
-
config: this.getObservationMarkerConfig()
|
|
8482
|
-
});
|
|
8483
|
-
void writer.custom(startMarker).catch(() => {
|
|
8534
|
+
void writer.custom({ ...startMarker, transient: true }).catch(() => {
|
|
8484
8535
|
});
|
|
8485
8536
|
}
|
|
8486
8537
|
await ObservationStrategy.create(this, {
|
|
@@ -8673,7 +8724,7 @@ ${grouped}` : grouped;
|
|
|
8673
8724
|
currentModel,
|
|
8674
8725
|
config: this.getObservationMarkerConfig()
|
|
8675
8726
|
});
|
|
8676
|
-
void opts.writer.custom(activationMarker).catch(() => {
|
|
8727
|
+
void opts.writer.custom({ ...activationMarker, transient: true }).catch(() => {
|
|
8677
8728
|
});
|
|
8678
8729
|
await this.persistMarkerToMessage(
|
|
8679
8730
|
activationMarker,
|
|
@@ -9124,7 +9175,8 @@ var ObservationalMemoryProcessor = class {
|
|
|
9124
9175
|
messageList,
|
|
9125
9176
|
observabilityContext: getOmObservabilityContext(args),
|
|
9126
9177
|
hooks: {
|
|
9127
|
-
onBufferChunkSealed: rotateResponseMessageId
|
|
9178
|
+
onBufferChunkSealed: rotateResponseMessageId,
|
|
9179
|
+
onSyncObservationComplete: rotateResponseMessageId
|
|
9128
9180
|
}
|
|
9129
9181
|
});
|
|
9130
9182
|
this.turn.writer = writer;
|
|
@@ -9135,6 +9187,10 @@ var ObservationalMemoryProcessor = class {
|
|
|
9135
9187
|
}
|
|
9136
9188
|
state.__omTurn = this.turn;
|
|
9137
9189
|
}
|
|
9190
|
+
this.turn.addHooks({
|
|
9191
|
+
onBufferChunkSealed: rotateResponseMessageId,
|
|
9192
|
+
onSyncObservationComplete: rotateResponseMessageId
|
|
9193
|
+
});
|
|
9138
9194
|
const observabilityContext = getOmObservabilityContext(args);
|
|
9139
9195
|
state.__omObservabilityContext = observabilityContext;
|
|
9140
9196
|
this.turn.observabilityContext = observabilityContext;
|
|
@@ -9272,5 +9328,5 @@ function getObservationsAsOf(activeObservations, asOf) {
|
|
|
9272
9328
|
}
|
|
9273
9329
|
|
|
9274
9330
|
export { ModelByInputTokens, OBSERVER_SYSTEM_PROMPT, ObservationalMemory, ObservationalMemoryProcessor, TokenCounter, buildObserverPrompt, buildObserverSystemPrompt, combineObservationGroupRanges, deriveObservationGroupProvenance, extractCurrentTask, formatMessagesForObserver, formatToolResultForObserver, getObservationsAsOf, hasCurrentTaskSection, injectAnchorIds, optimizeObservationsForContext, parseAnchorId, parseObservationGroups, parseObserverOutput, reconcileObservationGroupsFromReflection, renderObservationGroupsForReflection, resolveToolResultValue, stripEphemeralAnchorIds, stripObservationGroups, truncateStringByTokens, wrapInObservationGroup };
|
|
9275
|
-
//# sourceMappingURL=chunk-
|
|
9276
|
-
//# sourceMappingURL=chunk-
|
|
9331
|
+
//# sourceMappingURL=chunk-7742VTN5.js.map
|
|
9332
|
+
//# sourceMappingURL=chunk-7742VTN5.js.map
|