@axiom-lattice/core 2.1.43 → 2.1.44
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/index.d.mts +31 -6
- package/dist/index.d.ts +31 -6
- package/dist/index.js +52 -35
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +52 -35
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -6452,10 +6452,10 @@ var InMemoryThreadMessageQueueStore = class {
|
|
|
6452
6452
|
return this.messages.get(threadId);
|
|
6453
6453
|
}
|
|
6454
6454
|
async addMessage(params) {
|
|
6455
|
-
const { threadId, tenantId, assistantId, content, type = "human", priority = 0, command } = params;
|
|
6455
|
+
const { threadId, tenantId, assistantId, content, type = "human", priority = 0, command, id } = params;
|
|
6456
6456
|
const threadMessages = this.getMessagesForThread(threadId);
|
|
6457
6457
|
const message = {
|
|
6458
|
-
id: this.generateId(),
|
|
6458
|
+
id: id || this.generateId(),
|
|
6459
6459
|
content,
|
|
6460
6460
|
type,
|
|
6461
6461
|
sequence: threadMessages.length,
|
|
@@ -6469,7 +6469,7 @@ var InMemoryThreadMessageQueueStore = class {
|
|
|
6469
6469
|
threadMessages.push(message);
|
|
6470
6470
|
return message;
|
|
6471
6471
|
}
|
|
6472
|
-
async addMessageAtHead(threadId, content, type = "system") {
|
|
6472
|
+
async addMessageAtHead(threadId, content, type = "system", id, command) {
|
|
6473
6473
|
const threadMessages = this.getMessagesForThread(threadId);
|
|
6474
6474
|
let tenantId = "default";
|
|
6475
6475
|
let assistantId = "";
|
|
@@ -6479,7 +6479,7 @@ var InMemoryThreadMessageQueueStore = class {
|
|
|
6479
6479
|
}
|
|
6480
6480
|
const nextSequence = threadMessages.length;
|
|
6481
6481
|
const message = {
|
|
6482
|
-
id: this.generateId(),
|
|
6482
|
+
id: id || this.generateId(),
|
|
6483
6483
|
content,
|
|
6484
6484
|
type,
|
|
6485
6485
|
sequence: nextSequence,
|
|
@@ -6487,8 +6487,9 @@ var InMemoryThreadMessageQueueStore = class {
|
|
|
6487
6487
|
status: "pending",
|
|
6488
6488
|
tenantId,
|
|
6489
6489
|
assistantId,
|
|
6490
|
-
priority: 100
|
|
6490
|
+
priority: 100,
|
|
6491
6491
|
// High priority for head messages (STEER/Command)
|
|
6492
|
+
command
|
|
6492
6493
|
};
|
|
6493
6494
|
threadMessages.push(message);
|
|
6494
6495
|
return message;
|
|
@@ -16954,28 +16955,29 @@ var Agent = class {
|
|
|
16954
16955
|
break;
|
|
16955
16956
|
}
|
|
16956
16957
|
const firstMessage = pendings[0];
|
|
16957
|
-
const hasCommand = firstMessage.
|
|
16958
|
+
const hasCommand = firstMessage.command;
|
|
16958
16959
|
if (hasCommand) {
|
|
16959
16960
|
for (const p of pendings) {
|
|
16960
16961
|
if (signal?.aborted) break;
|
|
16961
|
-
if (!p.
|
|
16962
|
+
if (!p.command) break;
|
|
16962
16963
|
await this.queueStore?.markProcessing(p.id);
|
|
16963
16964
|
const startTime = Date.now();
|
|
16964
16965
|
this.publish("message:started", {
|
|
16965
16966
|
type: "message:started",
|
|
16966
|
-
messageId: p.
|
|
16967
|
-
messageContent: p.
|
|
16967
|
+
messageId: this.getHumanPendingContent(p).id,
|
|
16968
|
+
messageContent: this.getHumanPendingContent(p).message,
|
|
16968
16969
|
timestamp: /* @__PURE__ */ new Date(),
|
|
16969
16970
|
queueMode: this.queueMode.mode
|
|
16970
16971
|
});
|
|
16972
|
+
const humanContent = p.content;
|
|
16971
16973
|
const input = {
|
|
16972
|
-
messages: [new HumanMessage2({ id:
|
|
16974
|
+
messages: [new HumanMessage2({ id: humanContent.id, content: humanContent.message })]
|
|
16973
16975
|
};
|
|
16974
|
-
const queueMessageData =
|
|
16976
|
+
const queueMessageData = humanContent.queueMessage;
|
|
16975
16977
|
try {
|
|
16976
16978
|
await this.agentStreamExecutor({
|
|
16977
16979
|
input,
|
|
16978
|
-
command:
|
|
16980
|
+
command: p.command,
|
|
16979
16981
|
custom_run_config: queueMessageData.custom_run_config
|
|
16980
16982
|
}, signal);
|
|
16981
16983
|
await this.queueStore?.markCompleted(p.id);
|
|
@@ -16984,7 +16986,7 @@ var Agent = class {
|
|
|
16984
16986
|
if (runStatus === "interrupted" /* INTERRUPTED */) {
|
|
16985
16987
|
this.publish("message:interrupted", {
|
|
16986
16988
|
type: "message:interrupted",
|
|
16987
|
-
messageId:
|
|
16989
|
+
messageId: humanContent.id,
|
|
16988
16990
|
timestamp: /* @__PURE__ */ new Date(),
|
|
16989
16991
|
duration: Date.now() - startTime,
|
|
16990
16992
|
state
|
|
@@ -16993,13 +16995,13 @@ var Agent = class {
|
|
|
16993
16995
|
this.addChunk({
|
|
16994
16996
|
type: "message_completed",
|
|
16995
16997
|
data: {
|
|
16996
|
-
id:
|
|
16998
|
+
id: humanContent.id,
|
|
16997
16999
|
content: ""
|
|
16998
17000
|
}
|
|
16999
17001
|
});
|
|
17000
17002
|
this.publish("message:completed", {
|
|
17001
17003
|
type: "message:completed",
|
|
17002
|
-
messageId:
|
|
17004
|
+
messageId: humanContent.id,
|
|
17003
17005
|
timestamp: /* @__PURE__ */ new Date(),
|
|
17004
17006
|
duration: Date.now() - startTime,
|
|
17005
17007
|
state
|
|
@@ -17010,13 +17012,13 @@ var Agent = class {
|
|
|
17010
17012
|
this.addChunk({
|
|
17011
17013
|
type: "message_failed",
|
|
17012
17014
|
data: {
|
|
17013
|
-
id:
|
|
17015
|
+
id: humanContent.id,
|
|
17014
17016
|
content: error instanceof Error ? error.message : String(error)
|
|
17015
17017
|
}
|
|
17016
17018
|
});
|
|
17017
17019
|
this.publish("message:failed", {
|
|
17018
17020
|
type: "message:failed",
|
|
17019
|
-
messageId:
|
|
17021
|
+
messageId: humanContent.id,
|
|
17020
17022
|
error: error instanceof Error ? error.message : String(error),
|
|
17021
17023
|
timestamp: /* @__PURE__ */ new Date()
|
|
17022
17024
|
});
|
|
@@ -17031,20 +17033,21 @@ var Agent = class {
|
|
|
17031
17033
|
const startTime = Date.now();
|
|
17032
17034
|
remainingPendings.forEach((p) => {
|
|
17033
17035
|
this.queueStore?.markProcessing(p.id);
|
|
17034
|
-
|
|
17036
|
+
const humanContent = p.content;
|
|
17037
|
+
userMessages.push(new HumanMessage2({ id: humanContent.id, content: humanContent.message }));
|
|
17035
17038
|
this.publish("message:started", {
|
|
17036
17039
|
type: "message:started",
|
|
17037
|
-
messageId:
|
|
17038
|
-
messageContent:
|
|
17040
|
+
messageId: humanContent.id,
|
|
17041
|
+
messageContent: humanContent.message,
|
|
17039
17042
|
timestamp: /* @__PURE__ */ new Date(),
|
|
17040
17043
|
queueMode: "collect" /* COLLECT */
|
|
17041
17044
|
});
|
|
17042
17045
|
});
|
|
17043
|
-
const firstQueueMessage = remainingPendings[0]
|
|
17046
|
+
const firstQueueMessage = remainingPendings[0] ? this.getHumanPendingContent(remainingPendings[0]).queueMessage : void 0;
|
|
17044
17047
|
try {
|
|
17045
17048
|
await this.agentStreamExecutor({
|
|
17046
17049
|
input: { messages: userMessages },
|
|
17047
|
-
custom_run_config: firstQueueMessage
|
|
17050
|
+
custom_run_config: firstQueueMessage?.custom_run_config
|
|
17048
17051
|
}, signal);
|
|
17049
17052
|
const runStatus = await this.getRunStatus();
|
|
17050
17053
|
const state = await this.getCurrentState();
|
|
@@ -17098,16 +17101,17 @@ var Agent = class {
|
|
|
17098
17101
|
for (const p of remainingPendings) {
|
|
17099
17102
|
if (signal?.aborted) break;
|
|
17100
17103
|
await this.queueStore?.markProcessing(p.id);
|
|
17101
|
-
const
|
|
17104
|
+
const humanContent = p.content;
|
|
17105
|
+
const message = new HumanMessage2({ id: humanContent.id, content: humanContent.message });
|
|
17102
17106
|
const startTime = Date.now();
|
|
17103
17107
|
this.publish("message:started", {
|
|
17104
17108
|
type: "message:started",
|
|
17105
|
-
messageId:
|
|
17106
|
-
messageContent:
|
|
17109
|
+
messageId: humanContent.id,
|
|
17110
|
+
messageContent: humanContent.message,
|
|
17107
17111
|
timestamp: /* @__PURE__ */ new Date(),
|
|
17108
17112
|
queueMode: "followup" /* FOLLOWUP */
|
|
17109
17113
|
});
|
|
17110
|
-
const queueMessageData =
|
|
17114
|
+
const queueMessageData = humanContent.queueMessage || {};
|
|
17111
17115
|
try {
|
|
17112
17116
|
await this.agentStreamExecutor({
|
|
17113
17117
|
input: { messages: [message] },
|
|
@@ -17119,7 +17123,7 @@ var Agent = class {
|
|
|
17119
17123
|
if (runStatus === "interrupted" /* INTERRUPTED */) {
|
|
17120
17124
|
this.publish("message:interrupted", {
|
|
17121
17125
|
type: "message:interrupted",
|
|
17122
|
-
messageId:
|
|
17126
|
+
messageId: humanContent.id,
|
|
17123
17127
|
timestamp: /* @__PURE__ */ new Date(),
|
|
17124
17128
|
duration: Date.now() - startTime,
|
|
17125
17129
|
state
|
|
@@ -17128,13 +17132,13 @@ var Agent = class {
|
|
|
17128
17132
|
this.addChunk({
|
|
17129
17133
|
type: "message_completed",
|
|
17130
17134
|
data: {
|
|
17131
|
-
id:
|
|
17135
|
+
id: humanContent.id,
|
|
17132
17136
|
content: ""
|
|
17133
17137
|
}
|
|
17134
17138
|
});
|
|
17135
17139
|
this.publish("message:completed", {
|
|
17136
17140
|
type: "message:completed",
|
|
17137
|
-
messageId:
|
|
17141
|
+
messageId: humanContent.id,
|
|
17138
17142
|
timestamp: /* @__PURE__ */ new Date(),
|
|
17139
17143
|
duration: Date.now() - startTime,
|
|
17140
17144
|
state
|
|
@@ -17145,13 +17149,13 @@ var Agent = class {
|
|
|
17145
17149
|
this.addChunk({
|
|
17146
17150
|
type: "message_failed",
|
|
17147
17151
|
data: {
|
|
17148
|
-
id:
|
|
17152
|
+
id: humanContent.id,
|
|
17149
17153
|
content: error instanceof Error ? error.message : String(error)
|
|
17150
17154
|
}
|
|
17151
17155
|
});
|
|
17152
17156
|
this.publish("message:failed", {
|
|
17153
17157
|
type: "message:failed",
|
|
17154
|
-
messageId:
|
|
17158
|
+
messageId: humanContent.id,
|
|
17155
17159
|
error: error instanceof Error ? error.message : String(error),
|
|
17156
17160
|
timestamp: /* @__PURE__ */ new Date()
|
|
17157
17161
|
});
|
|
@@ -17169,6 +17173,12 @@ var Agent = class {
|
|
|
17169
17173
|
this.project_id = project_id;
|
|
17170
17174
|
this.custom_run_config = custom_run_config;
|
|
17171
17175
|
}
|
|
17176
|
+
getHumanPendingContent(message) {
|
|
17177
|
+
if (typeof message.content === "string" || !message.content || !("id" in message.content) || !("message" in message.content)) {
|
|
17178
|
+
throw new Error(`Expected human pending message content for message ${message.id}`);
|
|
17179
|
+
}
|
|
17180
|
+
return message.content;
|
|
17181
|
+
}
|
|
17172
17182
|
/**
|
|
17173
17183
|
* Initialize with message queue store
|
|
17174
17184
|
*/
|
|
@@ -17283,7 +17293,7 @@ var Agent = class {
|
|
|
17283
17293
|
*/
|
|
17284
17294
|
async addMessage(queueMessage, mode) {
|
|
17285
17295
|
const useMode = mode ?? this.queueMode.mode;
|
|
17286
|
-
const messageId = v4();
|
|
17296
|
+
const messageId = queueMessage.input.id || v4();
|
|
17287
17297
|
const isHighPriority = useMode === "steer" /* STEER */ || !!queueMessage.command;
|
|
17288
17298
|
const store = this.getQueueStore();
|
|
17289
17299
|
const currentSize = await store.getQueueSize(this.thread_id);
|
|
@@ -17302,14 +17312,21 @@ var Agent = class {
|
|
|
17302
17312
|
}
|
|
17303
17313
|
};
|
|
17304
17314
|
if (isHighPriority) {
|
|
17305
|
-
await store.addMessageAtHead(this.thread_id, content, "human");
|
|
17315
|
+
await store.addMessageAtHead(this.thread_id, content, "human", messageId, queueMessage.command);
|
|
17316
|
+
if (useMode === "steer" /* STEER */) {
|
|
17317
|
+
this.stopQueueProcessor();
|
|
17318
|
+
await store.resetProcessingToPending(this.thread_id);
|
|
17319
|
+
console.log(`[Agent] STEER mode: stopped current processing, reset queue, message ${messageId} will execute next`);
|
|
17320
|
+
}
|
|
17306
17321
|
} else {
|
|
17307
17322
|
await store.addMessage({
|
|
17308
17323
|
threadId: this.thread_id,
|
|
17309
17324
|
tenantId: this.tenant_id,
|
|
17310
17325
|
assistantId: this.assistant_id,
|
|
17311
17326
|
content,
|
|
17312
|
-
type: "human"
|
|
17327
|
+
type: "human",
|
|
17328
|
+
command: queueMessage.command,
|
|
17329
|
+
id: messageId
|
|
17313
17330
|
});
|
|
17314
17331
|
}
|
|
17315
17332
|
this.startQueueProcessorIfNeeded().catch((err) => {
|
|
@@ -17342,7 +17359,7 @@ var Agent = class {
|
|
|
17342
17359
|
this.publish("thread:busy", {
|
|
17343
17360
|
type: "thread:busy",
|
|
17344
17361
|
timestamp: /* @__PURE__ */ new Date(),
|
|
17345
|
-
messageId: firstMessage
|
|
17362
|
+
messageId: firstMessage ? this.getHumanPendingContent(firstMessage).id : void 0
|
|
17346
17363
|
});
|
|
17347
17364
|
this.waitingForQueueEnd(this.abortController.signal).catch((error) => {
|
|
17348
17365
|
console.error(`Queue processing error for thread ${this.thread_id}:`, error);
|