@anuma/sdk 9.1.7 → 9.1.9
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/expo/index.cjs +120 -66
- package/dist/expo/index.mjs +121 -67
- package/dist/react/index.cjs +157 -103
- package/dist/react/index.mjs +152 -98
- package/dist/server/index.cjs +107 -59
- package/dist/server/index.mjs +107 -59
- package/package.json +1 -1
package/dist/server/index.cjs
CHANGED
|
@@ -12352,7 +12352,7 @@ var require_Query = __commonJS({
|
|
|
12352
12352
|
var _subscribeToCount = _interopRequireDefault(require_subscribeToCount());
|
|
12353
12353
|
var _subscribeToQuery = _interopRequireDefault(require_subscribeToQuery());
|
|
12354
12354
|
var _subscribeToQueryWithColumns = _interopRequireDefault(require_subscribeToQueryWithColumns());
|
|
12355
|
-
var
|
|
12355
|
+
var Q13 = _interopRequireWildcard(require_QueryDescription());
|
|
12356
12356
|
var _helpers = require_helpers2();
|
|
12357
12357
|
var _class;
|
|
12358
12358
|
var _descriptor;
|
|
@@ -12384,8 +12384,8 @@ var require_Query = __commonJS({
|
|
|
12384
12384
|
(0, _initializerDefineProperty2.default)(this, "_cachedCountSubscribable", _descriptor2, this);
|
|
12385
12385
|
(0, _initializerDefineProperty2.default)(this, "_cachedCountThrottledSubscribable", _descriptor3, this);
|
|
12386
12386
|
this.collection = collection;
|
|
12387
|
-
this._rawDescription =
|
|
12388
|
-
this.description =
|
|
12387
|
+
this._rawDescription = Q13.buildQueryDescription(clauses);
|
|
12388
|
+
this.description = Q13.queryWithoutDeleted(this._rawDescription);
|
|
12389
12389
|
}
|
|
12390
12390
|
var _proto = Query2.prototype;
|
|
12391
12391
|
_proto.extend = function(...args) {
|
|
@@ -12404,12 +12404,12 @@ var require_Query = __commonJS({
|
|
|
12404
12404
|
sql
|
|
12405
12405
|
} = this._rawDescription;
|
|
12406
12406
|
(0, _invariant.default)(!sql, "Cannot extend an unsafe SQL query");
|
|
12407
|
-
return new Query2(collection, [
|
|
12407
|
+
return new Query2(collection, [Q13.experimentalJoinTables(joinTables)].concat((0, _toConsumableArray2.default)(nestedJoinTables.map(function({
|
|
12408
12408
|
from,
|
|
12409
12409
|
to
|
|
12410
12410
|
}) {
|
|
12411
|
-
return
|
|
12412
|
-
})), (0, _toConsumableArray2.default)(where), (0, _toConsumableArray2.default)(sortBy), (0, _toConsumableArray2.default)(take ? [
|
|
12411
|
+
return Q13.experimentalNestedJoin(from, to);
|
|
12412
|
+
})), (0, _toConsumableArray2.default)(where), (0, _toConsumableArray2.default)(sortBy), (0, _toConsumableArray2.default)(take ? [Q13.take(take)] : []), (0, _toConsumableArray2.default)(skip ? [Q13.skip(skip)] : []), (0, _toConsumableArray2.default)(lokiTransform ? [Q13.unsafeLokiTransform(lokiTransform)] : []), (0, _toConsumableArray2.default)(clauses)));
|
|
12413
12413
|
};
|
|
12414
12414
|
_proto.pipe = function(transform) {
|
|
12415
12415
|
return transform(this);
|
|
@@ -13851,7 +13851,7 @@ var require_helpers5 = __commonJS({
|
|
|
13851
13851
|
exports2.createTimestampsFor = void 0;
|
|
13852
13852
|
exports2.fetchDescendants = fetchDescendants;
|
|
13853
13853
|
var _fp = require_fp();
|
|
13854
|
-
var
|
|
13854
|
+
var Q13 = _interopRequireWildcard(require_QueryDescription());
|
|
13855
13855
|
function _getRequireWildcardCache(e) {
|
|
13856
13856
|
if ("function" != typeof WeakMap) return null;
|
|
13857
13857
|
var r = /* @__PURE__ */ new WeakMap(), t = /* @__PURE__ */ new WeakMap();
|
|
@@ -13889,7 +13889,7 @@ var require_helpers5 = __commonJS({
|
|
|
13889
13889
|
});
|
|
13890
13890
|
var childrenQueries = hasManyAssociations.map(function([key, value]) {
|
|
13891
13891
|
var childCollection = model.collections.get(key);
|
|
13892
|
-
return childCollection.query(
|
|
13892
|
+
return childCollection.query(Q13.where(value.foreignKey, model.id));
|
|
13893
13893
|
});
|
|
13894
13894
|
return childrenQueries;
|
|
13895
13895
|
}
|
|
@@ -14270,8 +14270,8 @@ var require_watermelondb = __commonJS({
|
|
|
14270
14270
|
var _interopRequireDefault = require_interopRequireDefault();
|
|
14271
14271
|
exports2.__esModule = true;
|
|
14272
14272
|
exports2.tableSchema = exports2.tableName = exports2.localStorageKey = exports2.columnName = exports2.associations = exports2.appSchema = exports2.Relation = exports2.Query = exports2.Q = exports2.Model = exports2.Database = exports2.Collection = void 0;
|
|
14273
|
-
var
|
|
14274
|
-
exports2.Q =
|
|
14273
|
+
var Q13 = _interopRequireWildcard(require_QueryDescription());
|
|
14274
|
+
exports2.Q = Q13;
|
|
14275
14275
|
var _Collection = _interopRequireDefault(require_Collection());
|
|
14276
14276
|
exports2.Collection = _Collection.default;
|
|
14277
14277
|
var _Database = _interopRequireDefault(require_Database());
|
|
@@ -15078,7 +15078,7 @@ var require_children = __commonJS({
|
|
|
15078
15078
|
var _makeDecorator = _interopRequireDefault(require_makeDecorator());
|
|
15079
15079
|
var _logError = _interopRequireDefault(require_logError());
|
|
15080
15080
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
15081
|
-
var
|
|
15081
|
+
var Q13 = _interopRequireWildcard(require_QueryDescription());
|
|
15082
15082
|
function _getRequireWildcardCache(e) {
|
|
15083
15083
|
if ("function" != typeof WeakMap) return null;
|
|
15084
15084
|
var r = /* @__PURE__ */ new WeakMap(), t = /* @__PURE__ */ new WeakMap();
|
|
@@ -15112,7 +15112,7 @@ var require_children = __commonJS({
|
|
|
15112
15112
|
var childCollection = model.collections.get(childTable);
|
|
15113
15113
|
var association = model.constructor.associations[childTable];
|
|
15114
15114
|
(0, _invariant.default)(association && "has_many" === association.type, "@children decorator used for a table that's not has_many");
|
|
15115
|
-
var query = childCollection.query(
|
|
15115
|
+
var query = childCollection.query(Q13.where(association.foreignKey, model.id));
|
|
15116
15116
|
that._childrenQueryCache[childTable] = query;
|
|
15117
15117
|
return query;
|
|
15118
15118
|
},
|
|
@@ -28971,10 +28971,10 @@ async function getVaultRankingProjectionsOp(ctx, options) {
|
|
|
28971
28971
|
function baseVaultSql(ctx, options) {
|
|
28972
28972
|
const clauses = [
|
|
28973
28973
|
`"_status" is not 'deleted'`,
|
|
28974
|
-
'"is_deleted" = 0',
|
|
28974
|
+
...options?.includeDeleted ? [] : ['"is_deleted" = 0'],
|
|
28975
28975
|
...options?.includeArchived ? [] : ['"archived_at" is null'],
|
|
28976
28976
|
...options?.includeQuarantined ? [] : [`"trust_tier" is not 'quarantined'`],
|
|
28977
|
-
'"superseded_by" is null'
|
|
28977
|
+
...options?.includeSuperseded ? [] : ['"superseded_by" is null']
|
|
28978
28978
|
];
|
|
28979
28979
|
const args = [];
|
|
28980
28980
|
if (ctx.userId !== void 0) {
|
|
@@ -28983,6 +28983,38 @@ function baseVaultSql(ctx, options) {
|
|
|
28983
28983
|
}
|
|
28984
28984
|
return { sql: clauses.join(" and "), args };
|
|
28985
28985
|
}
|
|
28986
|
+
async function getVaultProfileMetadataOp(ctx, options) {
|
|
28987
|
+
const mapRaw = (raw) => ({
|
|
28988
|
+
uniqueId: raw.id,
|
|
28989
|
+
scope: raw.scope ?? "",
|
|
28990
|
+
createdAt: new Date(raw.created_at),
|
|
28991
|
+
updatedAt: new Date(raw.updated_at),
|
|
28992
|
+
lastObservedAt: raw.last_observed_at ?? null,
|
|
28993
|
+
supersededAt: raw.superseded_at ?? null,
|
|
28994
|
+
supersededBy: raw.superseded_by ?? null,
|
|
28995
|
+
isDeleted: raw.is_deleted === true || raw.is_deleted === 1,
|
|
28996
|
+
proofCount: raw.proof_count ?? null
|
|
28997
|
+
});
|
|
28998
|
+
const listOptions = { ...options, includeDeleted: true, includeSuperseded: true };
|
|
28999
|
+
let rows;
|
|
29000
|
+
try {
|
|
29001
|
+
const base = baseVaultSql(ctx, listOptions);
|
|
29002
|
+
const clauses = [base.sql, `"_status" != 'deleted'`];
|
|
29003
|
+
const args = [...base.args];
|
|
29004
|
+
if (options?.scopes?.length) {
|
|
29005
|
+
clauses.push(`"scope" in (${options.scopes.map(() => "?").join(",")})`);
|
|
29006
|
+
args.push(...options.scopes);
|
|
29007
|
+
}
|
|
29008
|
+
const sql = `select "id", "scope", "created_at", "updated_at", "last_observed_at", "superseded_at", "superseded_by", "is_deleted", "proof_count" from "memory_vault" where ${clauses.join(" and ")}`;
|
|
29009
|
+
rows = await ctx.vaultMemoryCollection.query(import_watermelondb19.Q.unsafeSqlQuery(sql, args)).unsafeFetchRaw();
|
|
29010
|
+
} catch (err) {
|
|
29011
|
+
getLogger().debug(
|
|
29012
|
+
"memoryVault: getVaultProfileMetadataOp uses the query fallback: " + (err instanceof Error ? err.message : String(err))
|
|
29013
|
+
);
|
|
29014
|
+
rows = await ctx.vaultMemoryCollection.query(...vaultListConditions(ctx, listOptions)).unsafeFetchRaw();
|
|
29015
|
+
}
|
|
29016
|
+
return rows.map(mapRaw);
|
|
29017
|
+
}
|
|
28986
29018
|
async function getVaultCandidateKeysOp(ctx, options) {
|
|
28987
29019
|
const mapRaw = (raw) => ({
|
|
28988
29020
|
uniqueId: raw.id,
|
|
@@ -29866,6 +29898,9 @@ async function findQuarantinedDuplicateOp(ctx, content, sourceIds, where) {
|
|
|
29866
29898
|
return null;
|
|
29867
29899
|
}
|
|
29868
29900
|
|
|
29901
|
+
// src/lib/db/memoryVault/photoIngest.ts
|
|
29902
|
+
var import_watermelondb20 = __toESM(require_watermelondb());
|
|
29903
|
+
|
|
29869
29904
|
// src/lib/memory/decay.ts
|
|
29870
29905
|
init_logger();
|
|
29871
29906
|
var DAY_MS = 24 * 60 * 60 * 1e3;
|
|
@@ -29939,6 +29974,16 @@ function classifyDecay(m, now, policy) {
|
|
|
29939
29974
|
|
|
29940
29975
|
// src/lib/db/memoryVault/photoIngest.ts
|
|
29941
29976
|
var PHOTO_MEMORY_ID_PREFIX = "photo:";
|
|
29977
|
+
var PHOTO_ID_QUERY_CHUNK_SIZE = 500;
|
|
29978
|
+
async function getExistingPhotoMemoryIds(ctx, rows) {
|
|
29979
|
+
const existing = /* @__PURE__ */ new Set();
|
|
29980
|
+
for (let i = 0; i < rows.length; i += PHOTO_ID_QUERY_CHUNK_SIZE) {
|
|
29981
|
+
const ids = rows.slice(i, i + PHOTO_ID_QUERY_CHUNK_SIZE).map((row) => row.memoryId);
|
|
29982
|
+
const found = await ctx.vaultMemoryCollection.query(import_watermelondb20.Q.where("id", import_watermelondb20.Q.oneOf(ids))).fetchIds();
|
|
29983
|
+
for (const id of found) existing.add(id);
|
|
29984
|
+
}
|
|
29985
|
+
return existing;
|
|
29986
|
+
}
|
|
29942
29987
|
async function ingestPublishedPhotoMemoriesOp(ctx, rows) {
|
|
29943
29988
|
const byId = /* @__PURE__ */ new Map();
|
|
29944
29989
|
for (const r of rows) {
|
|
@@ -29947,7 +29992,7 @@ async function ingestPublishedPhotoMemoriesOp(ctx, rows) {
|
|
|
29947
29992
|
}
|
|
29948
29993
|
const photoRows = [...byId.values()];
|
|
29949
29994
|
if (photoRows.length === 0) return { inserted: 0, skipped: 0 };
|
|
29950
|
-
const known = await ctx
|
|
29995
|
+
const known = await getExistingPhotoMemoryIds(ctx, photoRows);
|
|
29951
29996
|
const candidates = photoRows.filter((r) => !known.has(r.memoryId));
|
|
29952
29997
|
if (candidates.length === 0) return { inserted: 0, skipped: photoRows.length };
|
|
29953
29998
|
const fresh = candidates;
|
|
@@ -29967,7 +30012,7 @@ async function ingestPublishedPhotoMemoriesOp(ctx, rows) {
|
|
|
29967
30012
|
const now = Date.now();
|
|
29968
30013
|
let inserted = 0;
|
|
29969
30014
|
await ctx.database.write(async () => {
|
|
29970
|
-
const present =
|
|
30015
|
+
const present = await getExistingPhotoMemoryIds(ctx, fresh);
|
|
29971
30016
|
const writable = fresh.map((row, i) => ({ row, content: contents[i] })).filter(({ row }) => !present.has(row.memoryId));
|
|
29972
30017
|
inserted = writable.length;
|
|
29973
30018
|
if (writable.length === 0) return;
|
|
@@ -30001,7 +30046,7 @@ async function ingestPublishedPhotoMemoriesOp(ctx, rows) {
|
|
|
30001
30046
|
}
|
|
30002
30047
|
|
|
30003
30048
|
// src/lib/db/project/operations.ts
|
|
30004
|
-
var
|
|
30049
|
+
var import_watermelondb21 = __toESM(require_watermelondb());
|
|
30005
30050
|
|
|
30006
30051
|
// src/lib/db/project/types.ts
|
|
30007
30052
|
function generateProjectId() {
|
|
@@ -30032,15 +30077,15 @@ async function createProjectOp(ctx, opts, defaultName = "New Project") {
|
|
|
30032
30077
|
return projectToStored(created);
|
|
30033
30078
|
}
|
|
30034
30079
|
async function getProjectOp(ctx, id) {
|
|
30035
|
-
const results = await ctx.projectsCollection.query(
|
|
30080
|
+
const results = await ctx.projectsCollection.query(import_watermelondb21.Q.where("project_id", id), import_watermelondb21.Q.where("is_deleted", false)).fetch();
|
|
30036
30081
|
return results.length > 0 ? projectToStored(results[0]) : null;
|
|
30037
30082
|
}
|
|
30038
30083
|
async function getProjectsOp(ctx) {
|
|
30039
|
-
const results = await ctx.projectsCollection.query(
|
|
30084
|
+
const results = await ctx.projectsCollection.query(import_watermelondb21.Q.where("is_deleted", false), import_watermelondb21.Q.sortBy("created_at", import_watermelondb21.Q.desc)).fetch();
|
|
30040
30085
|
return results.map(projectToStored);
|
|
30041
30086
|
}
|
|
30042
30087
|
async function updateProjectNameOp(ctx, id, name) {
|
|
30043
|
-
const results = await ctx.projectsCollection.query(
|
|
30088
|
+
const results = await ctx.projectsCollection.query(import_watermelondb21.Q.where("project_id", id), import_watermelondb21.Q.where("is_deleted", false)).fetch();
|
|
30044
30089
|
if (results.length > 0) {
|
|
30045
30090
|
await ctx.database.write(async () => {
|
|
30046
30091
|
await results[0].update((proj) => {
|
|
@@ -30052,7 +30097,7 @@ async function updateProjectNameOp(ctx, id, name) {
|
|
|
30052
30097
|
return false;
|
|
30053
30098
|
}
|
|
30054
30099
|
async function updateProjectOp(ctx, id, opts) {
|
|
30055
|
-
const results = await ctx.projectsCollection.query(
|
|
30100
|
+
const results = await ctx.projectsCollection.query(import_watermelondb21.Q.where("project_id", id), import_watermelondb21.Q.where("is_deleted", false)).fetch();
|
|
30056
30101
|
if (results.length > 0) {
|
|
30057
30102
|
await ctx.database.write(async () => {
|
|
30058
30103
|
await results[0].update((proj) => {
|
|
@@ -30064,7 +30109,7 @@ async function updateProjectOp(ctx, id, opts) {
|
|
|
30064
30109
|
return false;
|
|
30065
30110
|
}
|
|
30066
30111
|
async function deleteProjectOp(ctx, id) {
|
|
30067
|
-
const results = await ctx.projectsCollection.query(
|
|
30112
|
+
const results = await ctx.projectsCollection.query(import_watermelondb21.Q.where("project_id", id), import_watermelondb21.Q.where("is_deleted", false)).fetch();
|
|
30068
30113
|
if (results.length > 0) {
|
|
30069
30114
|
await ctx.database.write(async () => {
|
|
30070
30115
|
await results[0].update((proj) => {
|
|
@@ -30077,14 +30122,14 @@ async function deleteProjectOp(ctx, id) {
|
|
|
30077
30122
|
}
|
|
30078
30123
|
async function getProjectConversationsOp(ctx, projectId) {
|
|
30079
30124
|
const results = await ctx.conversationsCollection.query(
|
|
30080
|
-
|
|
30081
|
-
|
|
30082
|
-
|
|
30125
|
+
import_watermelondb21.Q.where("project_id", projectId),
|
|
30126
|
+
import_watermelondb21.Q.where("is_deleted", false),
|
|
30127
|
+
import_watermelondb21.Q.sortBy("created_at", import_watermelondb21.Q.desc)
|
|
30083
30128
|
).fetch();
|
|
30084
30129
|
return results.map(conversationToStoredRaw);
|
|
30085
30130
|
}
|
|
30086
30131
|
async function getProjectConversationCountOp(ctx, projectId) {
|
|
30087
|
-
return await ctx.conversationsCollection.query(
|
|
30132
|
+
return await ctx.conversationsCollection.query(import_watermelondb21.Q.where("project_id", projectId), import_watermelondb21.Q.where("is_deleted", false)).fetchCount();
|
|
30088
30133
|
}
|
|
30089
30134
|
|
|
30090
30135
|
// src/lib/db/queue/manager.ts
|
|
@@ -30428,7 +30473,7 @@ var WalletPoller = class {
|
|
|
30428
30473
|
};
|
|
30429
30474
|
|
|
30430
30475
|
// src/lib/db/settings/operations.ts
|
|
30431
|
-
var
|
|
30476
|
+
var import_watermelondb22 = __toESM(require_watermelondb());
|
|
30432
30477
|
function modelPreferenceToStored(preference) {
|
|
30433
30478
|
return {
|
|
30434
30479
|
uniqueId: preference.id,
|
|
@@ -30437,12 +30482,12 @@ function modelPreferenceToStored(preference) {
|
|
|
30437
30482
|
};
|
|
30438
30483
|
}
|
|
30439
30484
|
async function getModelPreferenceOp(ctx, walletAddress) {
|
|
30440
|
-
const results = await ctx.modelPreferencesCollection.query(
|
|
30485
|
+
const results = await ctx.modelPreferencesCollection.query(import_watermelondb22.Q.where("wallet_address", walletAddress)).fetch();
|
|
30441
30486
|
return results.length > 0 ? modelPreferenceToStored(results[0]) : null;
|
|
30442
30487
|
}
|
|
30443
30488
|
async function setModelPreferenceOp(ctx, walletAddress, models) {
|
|
30444
30489
|
const result = await ctx.database.write(async () => {
|
|
30445
|
-
const results = await ctx.modelPreferencesCollection.query(
|
|
30490
|
+
const results = await ctx.modelPreferencesCollection.query(import_watermelondb22.Q.where("wallet_address", walletAddress)).fetch();
|
|
30446
30491
|
if (results.length > 0) {
|
|
30447
30492
|
const preference = results[0];
|
|
30448
30493
|
await preference.update((pref) => {
|
|
@@ -30460,7 +30505,7 @@ async function setModelPreferenceOp(ctx, walletAddress, models) {
|
|
|
30460
30505
|
return modelPreferenceToStored(result);
|
|
30461
30506
|
}
|
|
30462
30507
|
async function deleteModelPreferenceOp(ctx, walletAddress) {
|
|
30463
|
-
const results = await ctx.modelPreferencesCollection.query(
|
|
30508
|
+
const results = await ctx.modelPreferencesCollection.query(import_watermelondb22.Q.where("wallet_address", walletAddress)).fetch();
|
|
30464
30509
|
if (results.length === 0) return false;
|
|
30465
30510
|
await ctx.database.write(async () => {
|
|
30466
30511
|
await results[0].destroyPermanently();
|
|
@@ -30469,7 +30514,7 @@ async function deleteModelPreferenceOp(ctx, walletAddress) {
|
|
|
30469
30514
|
}
|
|
30470
30515
|
|
|
30471
30516
|
// src/lib/db/userPreferences/operations.ts
|
|
30472
|
-
var
|
|
30517
|
+
var import_watermelondb23 = __toESM(require_watermelondb());
|
|
30473
30518
|
function userPreferenceToStored(preference) {
|
|
30474
30519
|
return {
|
|
30475
30520
|
uniqueId: preference.id,
|
|
@@ -30485,7 +30530,7 @@ function userPreferenceToStored(preference) {
|
|
|
30485
30530
|
};
|
|
30486
30531
|
}
|
|
30487
30532
|
async function getUserPreferenceOp(ctx, walletAddress) {
|
|
30488
|
-
const results = await ctx.userPreferencesCollection.query(
|
|
30533
|
+
const results = await ctx.userPreferencesCollection.query(import_watermelondb23.Q.where("wallet_address", walletAddress)).fetch();
|
|
30489
30534
|
return results.length > 0 ? userPreferenceToStored(results[0]) : null;
|
|
30490
30535
|
}
|
|
30491
30536
|
async function createUserPreferenceOp(ctx, opts) {
|
|
@@ -30506,7 +30551,7 @@ async function createUserPreferenceOp(ctx, opts) {
|
|
|
30506
30551
|
return userPreferenceToStored(created);
|
|
30507
30552
|
}
|
|
30508
30553
|
async function updateUserPreferenceOp(ctx, walletAddress, opts) {
|
|
30509
|
-
const results = await ctx.userPreferencesCollection.query(
|
|
30554
|
+
const results = await ctx.userPreferencesCollection.query(import_watermelondb23.Q.where("wallet_address", walletAddress)).fetch();
|
|
30510
30555
|
if (results.length === 0) return null;
|
|
30511
30556
|
const preference = results[0];
|
|
30512
30557
|
await ctx.database.write(async () => {
|
|
@@ -30537,7 +30582,7 @@ async function updateUserPreferenceOp(ctx, walletAddress, opts) {
|
|
|
30537
30582
|
async function setUserPreferenceOp(ctx, walletAddress, opts) {
|
|
30538
30583
|
const now = Date.now();
|
|
30539
30584
|
const result = await ctx.database.write(async () => {
|
|
30540
|
-
const results = await ctx.userPreferencesCollection.query(
|
|
30585
|
+
const results = await ctx.userPreferencesCollection.query(import_watermelondb23.Q.where("wallet_address", walletAddress)).fetch();
|
|
30541
30586
|
if (results.length > 0) {
|
|
30542
30587
|
const preference = results[0];
|
|
30543
30588
|
await preference.update((pref) => {
|
|
@@ -30589,7 +30634,7 @@ async function updateModelsOp(ctx, walletAddress, models) {
|
|
|
30589
30634
|
return updateUserPreferenceOp(ctx, walletAddress, { models });
|
|
30590
30635
|
}
|
|
30591
30636
|
async function deleteUserPreferenceOp(ctx, walletAddress) {
|
|
30592
|
-
const results = await ctx.userPreferencesCollection.query(
|
|
30637
|
+
const results = await ctx.userPreferencesCollection.query(import_watermelondb23.Q.where("wallet_address", walletAddress)).fetch();
|
|
30593
30638
|
if (results.length === 0) return false;
|
|
30594
30639
|
await ctx.database.write(async () => {
|
|
30595
30640
|
await results[0].destroyPermanently();
|
|
@@ -30604,9 +30649,9 @@ async function migrateFromModelPreferencesOp(ctx, walletAddress) {
|
|
|
30604
30649
|
if (existing) {
|
|
30605
30650
|
return existing;
|
|
30606
30651
|
}
|
|
30607
|
-
const modelResults = await ctx.modelPreferencesCollection.query(
|
|
30652
|
+
const modelResults = await ctx.modelPreferencesCollection.query(import_watermelondb23.Q.where("wallet_address", walletAddress)).fetch();
|
|
30608
30653
|
const personalityKey = `${walletAddress}_personality_settings`;
|
|
30609
|
-
const personalityResults = await ctx.modelPreferencesCollection.query(
|
|
30654
|
+
const personalityResults = await ctx.modelPreferencesCollection.query(import_watermelondb23.Q.where("wallet_address", personalityKey)).fetch();
|
|
30610
30655
|
if (modelResults.length === 0 && personalityResults.length === 0) {
|
|
30611
30656
|
return null;
|
|
30612
30657
|
}
|
|
@@ -30686,7 +30731,7 @@ var SLIDER_CONFIG = [
|
|
|
30686
30731
|
];
|
|
30687
30732
|
|
|
30688
30733
|
// src/lib/memory/autoExtract.ts
|
|
30689
|
-
var
|
|
30734
|
+
var import_watermelondb24 = __toESM(require_watermelondb());
|
|
30690
30735
|
init_logger();
|
|
30691
30736
|
init_redactor();
|
|
30692
30737
|
|
|
@@ -33499,7 +33544,7 @@ async function assertMergeTargetGoneOrThrow(ctx, targetId, expectedContent) {
|
|
|
33499
33544
|
// src/lib/memory/autoExtract.ts
|
|
33500
33545
|
async function isMemoryTopicsUserManaged(ctx, memoryId) {
|
|
33501
33546
|
try {
|
|
33502
|
-
const rows = await ctx.database.get(VaultMemory.table).query(
|
|
33547
|
+
const rows = await ctx.database.get(VaultMemory.table).query(import_watermelondb24.Q.where("id", memoryId)).fetch();
|
|
33503
33548
|
return rows[0]?.topicsUserManaged === true;
|
|
33504
33549
|
} catch {
|
|
33505
33550
|
return true;
|
|
@@ -36098,7 +36143,7 @@ function parseAnswer(body, base, parseSchema) {
|
|
|
36098
36143
|
}
|
|
36099
36144
|
|
|
36100
36145
|
// src/lib/memory/store/local.ts
|
|
36101
|
-
var
|
|
36146
|
+
var import_watermelondb25 = __toESM(require_watermelondb());
|
|
36102
36147
|
init_logger();
|
|
36103
36148
|
|
|
36104
36149
|
// src/lib/memory/topicExtract.ts
|
|
@@ -36384,8 +36429,8 @@ function createLocalMemoryStore(options) {
|
|
|
36384
36429
|
writeOptions?.signal?.throwIfAborted();
|
|
36385
36430
|
};
|
|
36386
36431
|
const vaultCache = options.vaultCache ?? createVaultEmbeddingCache();
|
|
36387
|
-
const ownedBy = userId !== void 0 ? [
|
|
36388
|
-
const linksOwnedBy = userId === void 0 ? [] : options.allowUnscopedRows ? [
|
|
36432
|
+
const ownedBy = userId !== void 0 ? [import_watermelondb25.Q.where("user_id", userId)] : [];
|
|
36433
|
+
const linksOwnedBy = userId === void 0 ? [] : options.allowUnscopedRows ? [import_watermelondb25.Q.or(import_watermelondb25.Q.where("user_id", userId), import_watermelondb25.Q.where("user_id", null))] : [import_watermelondb25.Q.where("user_id", userId)];
|
|
36389
36434
|
const watchedColumns = [
|
|
36390
36435
|
"content",
|
|
36391
36436
|
"scope",
|
|
@@ -36431,7 +36476,7 @@ function createLocalMemoryStore(options) {
|
|
|
36431
36476
|
list: (listOptions) => getAllVaultMemoriesOp(vaultCtx, listOptions),
|
|
36432
36477
|
get: (id) => getVaultMemoryOp(vaultCtx, id),
|
|
36433
36478
|
listArchived: async () => {
|
|
36434
|
-
const ids = await vaultCtx.vaultMemoryCollection.query(
|
|
36479
|
+
const ids = await vaultCtx.vaultMemoryCollection.query(import_watermelondb25.Q.where("is_deleted", false), import_watermelondb25.Q.where("archived_at", import_watermelondb25.Q.notEq(null)), ...ownedBy).fetchIds();
|
|
36435
36480
|
if (ids.length === 0) return [];
|
|
36436
36481
|
const rows = await getAllVaultMemoriesOp(vaultCtx, { memoryIds: ids, includeArchived: true });
|
|
36437
36482
|
return rows.sort((a, b) => (b.archivedAt ?? 0) - (a.archivedAt ?? 0));
|
|
@@ -36447,7 +36492,7 @@ function createLocalMemoryStore(options) {
|
|
|
36447
36492
|
set.add(String(link.memory_id));
|
|
36448
36493
|
members.set(entityId, set);
|
|
36449
36494
|
}
|
|
36450
|
-
const entities = userId === void 0 ? await entityCtx.entityCollection.query().unsafeFetchRaw() : members.size ? await entityCtx.entityCollection.query(
|
|
36495
|
+
const entities = userId === void 0 ? await entityCtx.entityCollection.query().unsafeFetchRaw() : members.size ? await entityCtx.entityCollection.query(import_watermelondb25.Q.where("id", import_watermelondb25.Q.oneOf([...members.keys()]))).unsafeFetchRaw() : [];
|
|
36451
36496
|
const byName = /* @__PURE__ */ new Map();
|
|
36452
36497
|
for (const entity of entities) {
|
|
36453
36498
|
const name = String(entity.canonical_name);
|
|
@@ -36497,7 +36542,7 @@ function createLocalMemoryStore(options) {
|
|
|
36497
36542
|
setTopics: (memoryId, topics) => setMemoryEntitiesOp(vaultCtx, memoryId, topics),
|
|
36498
36543
|
addTopics: (memoryId, topics, writeOptions) => database.write(async (writer) => {
|
|
36499
36544
|
await assertWrite(writeOptions);
|
|
36500
|
-
const owned = await vaultCtx.vaultMemoryCollection.query(
|
|
36545
|
+
const owned = await vaultCtx.vaultMemoryCollection.query(import_watermelondb25.Q.where("id", memoryId), import_watermelondb25.Q.where("is_deleted", false), ...ownedBy).fetchCount();
|
|
36501
36546
|
return owned > 0 ? writer.callWriter(
|
|
36502
36547
|
() => linkMemoryEntitiesOp(
|
|
36503
36548
|
{
|
|
@@ -36569,7 +36614,7 @@ function createLocalMemoryStore(options) {
|
|
|
36569
36614
|
else onChange();
|
|
36570
36615
|
};
|
|
36571
36616
|
};
|
|
36572
|
-
const memories = subscribeOptions?.includeDeleted ? vaultCtx.vaultMemoryCollection.query(...ownedBy).observe() : vaultCtx.vaultMemoryCollection.query(
|
|
36617
|
+
const memories = subscribeOptions?.includeDeleted ? vaultCtx.vaultMemoryCollection.query(...ownedBy).observe() : vaultCtx.vaultMemoryCollection.query(import_watermelondb25.Q.where("is_deleted", false), ...ownedBy).observeWithColumns(
|
|
36573
36618
|
subscribeOptions?.embeddings ? [...watchedColumns, "embedding", "embedding_model"] : watchedColumns
|
|
36574
36619
|
);
|
|
36575
36620
|
const subscriptions = [memories.subscribe(afterFirst())];
|
|
@@ -36717,7 +36762,7 @@ async function synthesizeProfile(ctx, options = {}) {
|
|
|
36717
36762
|
};
|
|
36718
36763
|
const previous = options.previous && options.previous.version === PROFILE_DOC_VERSION && configMatches(options.previous.config, config) ? options.previous : void 0;
|
|
36719
36764
|
const listOptions = { scopes, includeDeleted: true, includeSuperseded: true };
|
|
36720
|
-
const [memories, projections] = store ? await Promise.all([store.list(listOptions), store.listProjections(listOptions)]) : [await
|
|
36765
|
+
const [memories, projections] = store ? await Promise.all([store.list(listOptions), store.listProjections(listOptions)]) : [await getVaultProfileMetadataOp(vaultCtx, { scopes }), []];
|
|
36721
36766
|
const watermark = computeVaultWatermark(memories);
|
|
36722
36767
|
const observationTrends = summarizeObservationTrends(
|
|
36723
36768
|
memories.filter((m) => !m.isDeleted && m.supersededBy === null).map((m) => ({
|
|
@@ -36753,7 +36798,8 @@ async function synthesizeProfile(ctx, options = {}) {
|
|
|
36753
36798
|
previous,
|
|
36754
36799
|
watermark,
|
|
36755
36800
|
options.reviewedMemoryIds,
|
|
36756
|
-
previousUnreadable
|
|
36801
|
+
previousUnreadable,
|
|
36802
|
+
store ? void 0 : (ids) => getVaultEmbeddingsByIdsOp(vaultCtx, ids)
|
|
36757
36803
|
);
|
|
36758
36804
|
const memoriesById = new Map(memories.map((memory) => [memory.uniqueId, memory]));
|
|
36759
36805
|
const fallbackPriors = /* @__PURE__ */ new Map();
|
|
@@ -36840,7 +36886,7 @@ function computeVaultWatermark(memories) {
|
|
|
36840
36886
|
}
|
|
36841
36887
|
return max;
|
|
36842
36888
|
}
|
|
36843
|
-
async function computeStaleFacetKeys(ctx, memories, facets, previous, watermark, reviewedMemoryIds, previouslyUnreadable) {
|
|
36889
|
+
async function computeStaleFacetKeys(ctx, memories, facets, previous, watermark, reviewedMemoryIds, previouslyUnreadable, loadEmbeddings) {
|
|
36844
36890
|
const allKeys = new Set(facets.map((f) => f.key));
|
|
36845
36891
|
if (previous && watermark < previous.vaultWatermark) return allKeys;
|
|
36846
36892
|
if (!previous) return allKeys;
|
|
@@ -36873,7 +36919,9 @@ async function computeStaleFacetKeys(ctx, memories, facets, previous, watermark,
|
|
|
36873
36919
|
toAttribute = toAttribute.filter((m) => allowed.has(m.uniqueId));
|
|
36874
36920
|
}
|
|
36875
36921
|
if (toAttribute.length > 0) {
|
|
36876
|
-
const
|
|
36922
|
+
const candidates = loadEmbeddings ? await loadEmbeddings(toAttribute.map((m) => m.uniqueId)) : toAttribute;
|
|
36923
|
+
if (candidates.length !== toAttribute.length) return allKeys;
|
|
36924
|
+
const attributed = await attributeFacts(ctx, candidates, facets);
|
|
36877
36925
|
if (attributed === null) return allKeys;
|
|
36878
36926
|
for (const k of attributed) stale.add(k);
|
|
36879
36927
|
}
|
|
@@ -37297,17 +37345,17 @@ async function assembleMemoryContext(options) {
|
|
|
37297
37345
|
}
|
|
37298
37346
|
|
|
37299
37347
|
// src/lib/memory/durableExtraction.ts
|
|
37300
|
-
var
|
|
37348
|
+
var import_watermelondb26 = __toESM(require_watermelondb());
|
|
37301
37349
|
async function messagePositions(storage, ids) {
|
|
37302
37350
|
try {
|
|
37303
37351
|
return await storage.messagesCollection.query(
|
|
37304
|
-
|
|
37352
|
+
import_watermelondb26.Q.unsafeSqlQuery(
|
|
37305
37353
|
`select "id", "conversation_id", "message_id" from "history" where "_status" is not 'deleted' and "id" in (${ids.map(() => "?").join(",")})`,
|
|
37306
37354
|
ids
|
|
37307
37355
|
)
|
|
37308
37356
|
).unsafeFetchRaw();
|
|
37309
37357
|
} catch {
|
|
37310
|
-
return await storage.messagesCollection.query(
|
|
37358
|
+
return await storage.messagesCollection.query(import_watermelondb26.Q.where("id", import_watermelondb26.Q.oneOf(ids))).unsafeFetchRaw();
|
|
37311
37359
|
}
|
|
37312
37360
|
}
|
|
37313
37361
|
var MAX_JOBS_PER_PASS = 3;
|
|
@@ -37480,7 +37528,7 @@ function createDurableAutoExtractor(options) {
|
|
|
37480
37528
|
const source = options.messageSource?.(conversationId);
|
|
37481
37529
|
if (source)
|
|
37482
37530
|
return await fromSource(source.status(conversationId)) === "ready" && (await loadFromSource(source, conversationId, ids)).every(Boolean);
|
|
37483
|
-
return await storage.conversationsCollection.query(
|
|
37531
|
+
return await storage.conversationsCollection.query(import_watermelondb26.Q.where("conversation_id", conversationId), import_watermelondb26.Q.where("is_deleted", false)).fetchCount() > 0 && await storage.messagesCollection.query(import_watermelondb26.Q.where("conversation_id", conversationId), import_watermelondb26.Q.where("id", import_watermelondb26.Q.oneOf(ids))).fetchCount() === ids.length;
|
|
37484
37532
|
}
|
|
37485
37533
|
function schedule(delay) {
|
|
37486
37534
|
if (disposed) return;
|
|
@@ -37654,7 +37702,7 @@ function createDurableAutoExtractor(options) {
|
|
|
37654
37702
|
let sourceWaiting = false;
|
|
37655
37703
|
try {
|
|
37656
37704
|
await writes;
|
|
37657
|
-
const pending = await jobs.query(
|
|
37705
|
+
const pending = await jobs.query(import_watermelondb26.Q.where("owner_key", owner), import_watermelondb26.Q.where("message_ids", import_watermelondb26.Q.notEq("[]"))).fetch();
|
|
37658
37706
|
storeFailures = 0;
|
|
37659
37707
|
let processed = 0;
|
|
37660
37708
|
for (const job of pending) {
|
|
@@ -37686,7 +37734,7 @@ function createDurableAutoExtractor(options) {
|
|
|
37686
37734
|
let ids = [];
|
|
37687
37735
|
let loaded = [];
|
|
37688
37736
|
try {
|
|
37689
|
-
const present = source ? sourceStatus === "ready" : await storage.conversationsCollection.query(
|
|
37737
|
+
const present = source ? sourceStatus === "ready" : await storage.conversationsCollection.query(import_watermelondb26.Q.where("conversation_id", conversationId), import_watermelondb26.Q.where("is_deleted", false)).fetchCount() > 0;
|
|
37690
37738
|
if (!present) {
|
|
37691
37739
|
await database.write(() => job.destroyPermanently());
|
|
37692
37740
|
continue;
|
|
@@ -37854,7 +37902,7 @@ function createDurableAutoExtractor(options) {
|
|
|
37854
37902
|
const scope = currentScope();
|
|
37855
37903
|
writes = writes.then(
|
|
37856
37904
|
() => database.write(async () => {
|
|
37857
|
-
const existing = await jobs.query(
|
|
37905
|
+
const existing = await jobs.query(import_watermelondb26.Q.where("owner_key", owner), import_watermelondb26.Q.where("conversation_id", conversationId)).fetch();
|
|
37858
37906
|
const job = existing.find(
|
|
37859
37907
|
(candidate) => candidate._getRaw("scope") === scope && (candidate._getRaw("folder_id") ?? null) === folderId
|
|
37860
37908
|
);
|
|
@@ -37867,8 +37915,8 @@ function createDurableAutoExtractor(options) {
|
|
|
37867
37915
|
if (watermarks.length) {
|
|
37868
37916
|
const misplaced = new Set(
|
|
37869
37917
|
await storage.messagesCollection.query(
|
|
37870
|
-
|
|
37871
|
-
|
|
37918
|
+
import_watermelondb26.Q.where("id", import_watermelondb26.Q.oneOf(watermarks)),
|
|
37919
|
+
import_watermelondb26.Q.where("conversation_id", import_watermelondb26.Q.notEq(conversationId))
|
|
37872
37920
|
).fetchIds()
|
|
37873
37921
|
);
|
|
37874
37922
|
for (const prior of existing)
|