openmates 0.18.0-alpha.26 → 0.18.0-alpha.28
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-NB43XDHG.js → chunk-4RPAJ4KP.js} +99 -36
- package/dist/cli.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
|
@@ -784,6 +784,100 @@ function hashItemKey(appId, itemKey) {
|
|
|
784
784
|
return createHash("sha256").update(raw).digest("hex").slice(0, 32);
|
|
785
785
|
}
|
|
786
786
|
|
|
787
|
+
// ../ui/src/utils/appMemoryRequests.ts
|
|
788
|
+
var REQUEST_TYPE = "app_settings_memories_request";
|
|
789
|
+
var COUNT_SEMANTICS_VERSION = 1;
|
|
790
|
+
function buildMemoryRequestMessage(params) {
|
|
791
|
+
if (!params.requestId || !params.userMessageId) {
|
|
792
|
+
throw new Error("Memory requests require stable request and user-message identities");
|
|
793
|
+
}
|
|
794
|
+
const keys = Array.from(new Set(params.requestedKeys)).sort();
|
|
795
|
+
const categories = [];
|
|
796
|
+
for (const key of keys) {
|
|
797
|
+
const separator2 = key.indexOf("-");
|
|
798
|
+
if (separator2 <= 0 || separator2 === key.length - 1) {
|
|
799
|
+
throw new Error(`Invalid memory category key: ${key}`);
|
|
800
|
+
}
|
|
801
|
+
const count = params.entryCounts?.get(key);
|
|
802
|
+
categories.push({
|
|
803
|
+
appId: key.slice(0, separator2),
|
|
804
|
+
itemType: key.slice(separator2 + 1),
|
|
805
|
+
entryCount: Number.isSafeInteger(count) && count >= 0 ? count : null
|
|
806
|
+
});
|
|
807
|
+
}
|
|
808
|
+
const content = {
|
|
809
|
+
type: REQUEST_TYPE,
|
|
810
|
+
user_message_id: params.userMessageId,
|
|
811
|
+
request_id: params.requestId,
|
|
812
|
+
requested_keys: keys,
|
|
813
|
+
categories,
|
|
814
|
+
count_semantics_version: COUNT_SEMANTICS_VERSION
|
|
815
|
+
};
|
|
816
|
+
return {
|
|
817
|
+
message_id: params.requestId,
|
|
818
|
+
role: "system",
|
|
819
|
+
content: JSON.stringify(content),
|
|
820
|
+
created_at: params.createdAt,
|
|
821
|
+
user_message_id: params.userMessageId
|
|
822
|
+
};
|
|
823
|
+
}
|
|
824
|
+
function parseMemoryRequest(content, clientMessageId) {
|
|
825
|
+
if (typeof content !== "string") return null;
|
|
826
|
+
let value;
|
|
827
|
+
try {
|
|
828
|
+
value = JSON.parse(content);
|
|
829
|
+
} catch {
|
|
830
|
+
return null;
|
|
831
|
+
}
|
|
832
|
+
if (!value || value.type !== REQUEST_TYPE || typeof value.request_id !== "string" || typeof value.user_message_id !== "string" || !Array.isArray(value.requested_keys) || !Array.isArray(value.categories) || value.categories.some((category) => !category || typeof category.appId !== "string" || typeof category.itemType !== "string") || value.requested_keys.some((key) => typeof key !== "string")) return null;
|
|
833
|
+
const legacyCli = value.count_semantics_version === void 0 && clientMessageId === value.request_id;
|
|
834
|
+
return {
|
|
835
|
+
...value,
|
|
836
|
+
categories: value.categories.map((category) => ({
|
|
837
|
+
...category,
|
|
838
|
+
// Old CLI writers used zero for every category, including unavailable counts.
|
|
839
|
+
entryCount: legacyCli || !Number.isSafeInteger(category.entryCount) || category.entryCount < 0 ? null : category.entryCount
|
|
840
|
+
}))
|
|
841
|
+
};
|
|
842
|
+
}
|
|
843
|
+
function mergeMemoryRequests(first, second) {
|
|
844
|
+
if (first.request_id !== second.request_id || first.user_message_id !== second.user_message_id) {
|
|
845
|
+
throw new Error("Cannot merge distinct memory consent requests");
|
|
846
|
+
}
|
|
847
|
+
const categories = /* @__PURE__ */ new Map();
|
|
848
|
+
for (const category of [...first.categories, ...second.categories]) {
|
|
849
|
+
const key = `${category.appId}-${category.itemType}`;
|
|
850
|
+
const previous = categories.get(key);
|
|
851
|
+
if (!previous || category.entryCount !== null && (previous.entryCount === null || category.entryCount > previous.entryCount)) {
|
|
852
|
+
categories.set(key, category);
|
|
853
|
+
}
|
|
854
|
+
}
|
|
855
|
+
return {
|
|
856
|
+
...first,
|
|
857
|
+
count_semantics_version: COUNT_SEMANTICS_VERSION,
|
|
858
|
+
requested_keys: Array.from(/* @__PURE__ */ new Set([...first.requested_keys, ...second.requested_keys])).sort(),
|
|
859
|
+
categories: Array.from(categories.entries()).sort(([a], [b]) => a.localeCompare(b)).map(([, category]) => category)
|
|
860
|
+
};
|
|
861
|
+
}
|
|
862
|
+
function coalesceMemoryRequestMessages(messages) {
|
|
863
|
+
const result = [];
|
|
864
|
+
const requests = /* @__PURE__ */ new Map();
|
|
865
|
+
for (const message of messages) {
|
|
866
|
+
const request = message.role === "system" ? parseMemoryRequest(message.content, message.clientMessageId) : null;
|
|
867
|
+
if (!request) {
|
|
868
|
+
result.push(message);
|
|
869
|
+
continue;
|
|
870
|
+
}
|
|
871
|
+
const key = JSON.stringify([request.user_message_id, request.request_id]);
|
|
872
|
+
const previous = requests.get(key);
|
|
873
|
+
const merged = previous ? mergeMemoryRequests(previous.content, request) : request;
|
|
874
|
+
const index = previous?.index ?? result.length;
|
|
875
|
+
result[index] = { ...result[index] ?? message, content: JSON.stringify(merged) };
|
|
876
|
+
requests.set(key, { index, content: merged });
|
|
877
|
+
}
|
|
878
|
+
return result;
|
|
879
|
+
}
|
|
880
|
+
|
|
787
881
|
// src/accountImport.ts
|
|
788
882
|
import { createDecipheriv, createHash as createHash2, scryptSync } from "crypto";
|
|
789
883
|
import JSZip from "jszip";
|
|
@@ -7033,41 +7127,7 @@ function normalizeStringArray(value) {
|
|
|
7033
7127
|
if (!Array.isArray(value)) return [];
|
|
7034
7128
|
return Array.from(new Set(value.map((item) => String(item).trim()).filter(Boolean)));
|
|
7035
7129
|
}
|
|
7036
|
-
|
|
7037
|
-
const separator2 = key.indexOf("-");
|
|
7038
|
-
if (separator2 <= 0 || separator2 === key.length - 1) return null;
|
|
7039
|
-
return {
|
|
7040
|
-
appId: key.slice(0, separator2),
|
|
7041
|
-
itemType: key.slice(separator2 + 1)
|
|
7042
|
-
};
|
|
7043
|
-
}
|
|
7044
|
-
function buildAppSettingsMemoryRequestSystemMessage(params) {
|
|
7045
|
-
const seen = /* @__PURE__ */ new Set();
|
|
7046
|
-
const categories = [];
|
|
7047
|
-
for (const key of params.requestedKeys) {
|
|
7048
|
-
if (seen.has(key)) continue;
|
|
7049
|
-
seen.add(key);
|
|
7050
|
-
const parsed = categoryFromMemoryKey(key);
|
|
7051
|
-
if (!parsed) continue;
|
|
7052
|
-
categories.push({
|
|
7053
|
-
...parsed,
|
|
7054
|
-
entryCount: 0
|
|
7055
|
-
});
|
|
7056
|
-
}
|
|
7057
|
-
return {
|
|
7058
|
-
message_id: params.requestId,
|
|
7059
|
-
role: "system",
|
|
7060
|
-
content: JSON.stringify({
|
|
7061
|
-
type: "app_settings_memories_request",
|
|
7062
|
-
user_message_id: params.userMessageId,
|
|
7063
|
-
request_id: params.requestId,
|
|
7064
|
-
requested_keys: params.requestedKeys,
|
|
7065
|
-
categories
|
|
7066
|
-
}),
|
|
7067
|
-
created_at: params.createdAt,
|
|
7068
|
-
user_message_id: params.userMessageId
|
|
7069
|
-
};
|
|
7070
|
-
}
|
|
7130
|
+
var buildAppSettingsMemoryRequestSystemMessage = buildMemoryRequestMessage;
|
|
7071
7131
|
function buildAppSettingsMemoryResponseSystemMessage(params) {
|
|
7072
7132
|
return {
|
|
7073
7133
|
message_id: params.messageId,
|
|
@@ -9777,7 +9837,7 @@ var OpenMatesClient = class _OpenMatesClient {
|
|
|
9777
9837
|
});
|
|
9778
9838
|
}
|
|
9779
9839
|
messages.sort((a, b) => a.createdAt - b.createdAt);
|
|
9780
|
-
return messages;
|
|
9840
|
+
return coalesceMemoryRequestMessages(messages);
|
|
9781
9841
|
}
|
|
9782
9842
|
async resolveCachedChatForQuery(query, cache, wrappingKey, teamId) {
|
|
9783
9843
|
const normalized = query.trim().toLowerCase();
|
|
@@ -10483,10 +10543,12 @@ var OpenMatesClient = class _OpenMatesClient {
|
|
|
10483
10543
|
}
|
|
10484
10544
|
const shouldWaitForAi = shouldWaitForTeamAi(finalMessage, teamId);
|
|
10485
10545
|
let availableMemories = [];
|
|
10546
|
+
let memoryCountsLoaded = false;
|
|
10486
10547
|
let memoryMetadataKeys = [];
|
|
10487
10548
|
if (!params.incognito) {
|
|
10488
10549
|
try {
|
|
10489
10550
|
availableMemories = await this.listMemories({ teamId });
|
|
10551
|
+
memoryCountsLoaded = true;
|
|
10490
10552
|
memoryMetadataKeys = [
|
|
10491
10553
|
...new Set(
|
|
10492
10554
|
availableMemories.filter((memory) => memory.app_id && memory.item_type).map((memory) => `${memory.app_id}-${memory.item_type}`)
|
|
@@ -10947,6 +11009,7 @@ var OpenMatesClient = class _OpenMatesClient {
|
|
|
10947
11009
|
userMessageId: messageId,
|
|
10948
11010
|
requestId,
|
|
10949
11011
|
requestedKeys: event.requestedKeys,
|
|
11012
|
+
entryCounts: memoryCountsLoaded ? new Map(event.requestedKeys.map((key) => [key, availableMemories.filter((memory) => `${memory.app_id}-${memory.item_type}` === key).length])) : void 0,
|
|
10950
11013
|
createdAt: Math.floor(Date.now() / 1e3)
|
|
10951
11014
|
}));
|
|
10952
11015
|
};
|
package/dist/cli.js
CHANGED
package/dist/index.js
CHANGED