openmates 0.14.8-alpha.4 → 0.14.8-alpha.6
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/{chunk-UZA2XUCF.js → chunk-7DQIT6E2.js} +22 -7
- package/dist/cli.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
|
@@ -3003,18 +3003,28 @@ async function buildTaskEventSystemMessage(params) {
|
|
|
3003
3003
|
if (params.event.task_update_job_id) message.task_update_job_id = params.event.task_update_job_id;
|
|
3004
3004
|
return message;
|
|
3005
3005
|
}
|
|
3006
|
+
function taskUpdateJobBelongsToActiveTurn(job, activeChatId, taskEvents) {
|
|
3007
|
+
if (taskEvents.some((event) => event.task_update_job_id === job.job_id)) return true;
|
|
3008
|
+
return !job.chat_id || job.chat_id === activeChatId;
|
|
3009
|
+
}
|
|
3006
3010
|
function buildTaskUpdateJobPersistPayload(params) {
|
|
3007
|
-
|
|
3011
|
+
const encryptedTaskPayload = pruneAbsentTaskPersistFields(params.encryptedTaskPayload);
|
|
3012
|
+
assertTaskPersistPayloadEncrypted(encryptedTaskPayload);
|
|
3008
3013
|
return {
|
|
3009
3014
|
protocol_version: 1,
|
|
3010
3015
|
job_id: params.jobId,
|
|
3011
3016
|
lease_token: params.leaseToken,
|
|
3012
3017
|
lease_generation: params.leaseGeneration,
|
|
3013
3018
|
expected_task_version: params.expectedTaskVersion,
|
|
3014
|
-
encrypted_task_payload:
|
|
3019
|
+
encrypted_task_payload: encryptedTaskPayload,
|
|
3015
3020
|
encrypted_task_event_message: params.encryptedTaskEventMessage ?? null
|
|
3016
3021
|
};
|
|
3017
3022
|
}
|
|
3023
|
+
function pruneAbsentTaskPersistFields(payload) {
|
|
3024
|
+
return Object.fromEntries(
|
|
3025
|
+
Object.entries(payload).filter(([, value]) => value !== void 0 && value !== null)
|
|
3026
|
+
);
|
|
3027
|
+
}
|
|
3018
3028
|
function formatTaskEventSystemContent(event) {
|
|
3019
3029
|
const taskLabel = event.short_id || event.task_id;
|
|
3020
3030
|
const title = event.title ? ` "${event.title}"` : "";
|
|
@@ -5280,8 +5290,8 @@ var OpenMatesClient = class _OpenMatesClient {
|
|
|
5280
5290
|
}
|
|
5281
5291
|
};
|
|
5282
5292
|
const persistPendingTaskUpdateJobs = async (jobs, events) => {
|
|
5283
|
-
const
|
|
5284
|
-
if (jobs.length === 0) return
|
|
5293
|
+
const handledJobIds = /* @__PURE__ */ new Set();
|
|
5294
|
+
if (jobs.length === 0) return handledJobIds;
|
|
5285
5295
|
const masterKey = this.getMasterKeyBytes();
|
|
5286
5296
|
let decryptedTasksCache = null;
|
|
5287
5297
|
const eventByJobId = new Map(events.map((event) => [event.task_update_job_id, event]));
|
|
@@ -5354,6 +5364,10 @@ var OpenMatesClient = class _OpenMatesClient {
|
|
|
5354
5364
|
}
|
|
5355
5365
|
};
|
|
5356
5366
|
for (const job of jobs) {
|
|
5367
|
+
if (!taskUpdateJobBelongsToActiveTurn(job, chatId, events)) {
|
|
5368
|
+
handledJobIds.add(job.job_id);
|
|
5369
|
+
continue;
|
|
5370
|
+
}
|
|
5357
5371
|
const claimPromise = ws.waitForMessage(
|
|
5358
5372
|
"task_update_job_claimed",
|
|
5359
5373
|
(payload) => payload.job_id === job.job_id,
|
|
@@ -5400,7 +5414,7 @@ var OpenMatesClient = class _OpenMatesClient {
|
|
|
5400
5414
|
await persistEncryptedSystemMessage(eventMessage, sourceChatId);
|
|
5401
5415
|
persistedTaskEventIds.add(event.event_id);
|
|
5402
5416
|
await confirmTaskEventPersisted();
|
|
5403
|
-
|
|
5417
|
+
handledJobIds.add(job.job_id);
|
|
5404
5418
|
continue;
|
|
5405
5419
|
}
|
|
5406
5420
|
if (!claim.lease_token || !Number.isSafeInteger(claim.lease_generation)) {
|
|
@@ -5436,6 +5450,7 @@ var OpenMatesClient = class _OpenMatesClient {
|
|
|
5436
5450
|
});
|
|
5437
5451
|
encryptedTaskPayload = {
|
|
5438
5452
|
...patch,
|
|
5453
|
+
version: claim.expected_task_version,
|
|
5439
5454
|
updated_at: typeof safeMetadata.updated_at === "number" ? safeMetadata.updated_at : patch.updated_at
|
|
5440
5455
|
};
|
|
5441
5456
|
if (typeof safeMetadata.primary_chat_id === "string") {
|
|
@@ -5464,10 +5479,10 @@ var OpenMatesClient = class _OpenMatesClient {
|
|
|
5464
5479
|
await persistEncryptedSystemMessage(eventMessage, sourceChatId);
|
|
5465
5480
|
persistedTaskEventIds.add(event.event_id);
|
|
5466
5481
|
await confirmTaskEventPersisted();
|
|
5467
|
-
|
|
5482
|
+
handledJobIds.add(job.job_id);
|
|
5468
5483
|
}
|
|
5469
5484
|
clearSyncCache();
|
|
5470
|
-
return
|
|
5485
|
+
return handledJobIds;
|
|
5471
5486
|
};
|
|
5472
5487
|
const streamOpts = {
|
|
5473
5488
|
onStream: params.onStream,
|
package/dist/cli.js
CHANGED
package/dist/index.js
CHANGED