@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.mjs
CHANGED
|
@@ -12324,7 +12324,7 @@ var require_Query = __commonJS({
|
|
|
12324
12324
|
var _subscribeToCount = _interopRequireDefault(require_subscribeToCount());
|
|
12325
12325
|
var _subscribeToQuery = _interopRequireDefault(require_subscribeToQuery());
|
|
12326
12326
|
var _subscribeToQueryWithColumns = _interopRequireDefault(require_subscribeToQueryWithColumns());
|
|
12327
|
-
var
|
|
12327
|
+
var Q13 = _interopRequireWildcard(require_QueryDescription());
|
|
12328
12328
|
var _helpers = require_helpers2();
|
|
12329
12329
|
var _class;
|
|
12330
12330
|
var _descriptor;
|
|
@@ -12356,8 +12356,8 @@ var require_Query = __commonJS({
|
|
|
12356
12356
|
(0, _initializerDefineProperty2.default)(this, "_cachedCountSubscribable", _descriptor2, this);
|
|
12357
12357
|
(0, _initializerDefineProperty2.default)(this, "_cachedCountThrottledSubscribable", _descriptor3, this);
|
|
12358
12358
|
this.collection = collection;
|
|
12359
|
-
this._rawDescription =
|
|
12360
|
-
this.description =
|
|
12359
|
+
this._rawDescription = Q13.buildQueryDescription(clauses);
|
|
12360
|
+
this.description = Q13.queryWithoutDeleted(this._rawDescription);
|
|
12361
12361
|
}
|
|
12362
12362
|
var _proto = Query2.prototype;
|
|
12363
12363
|
_proto.extend = function(...args) {
|
|
@@ -12376,12 +12376,12 @@ var require_Query = __commonJS({
|
|
|
12376
12376
|
sql
|
|
12377
12377
|
} = this._rawDescription;
|
|
12378
12378
|
(0, _invariant.default)(!sql, "Cannot extend an unsafe SQL query");
|
|
12379
|
-
return new Query2(collection, [
|
|
12379
|
+
return new Query2(collection, [Q13.experimentalJoinTables(joinTables)].concat((0, _toConsumableArray2.default)(nestedJoinTables.map(function({
|
|
12380
12380
|
from,
|
|
12381
12381
|
to
|
|
12382
12382
|
}) {
|
|
12383
|
-
return
|
|
12384
|
-
})), (0, _toConsumableArray2.default)(where), (0, _toConsumableArray2.default)(sortBy), (0, _toConsumableArray2.default)(take ? [
|
|
12383
|
+
return Q13.experimentalNestedJoin(from, to);
|
|
12384
|
+
})), (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)));
|
|
12385
12385
|
};
|
|
12386
12386
|
_proto.pipe = function(transform) {
|
|
12387
12387
|
return transform(this);
|
|
@@ -13823,7 +13823,7 @@ var require_helpers5 = __commonJS({
|
|
|
13823
13823
|
exports.createTimestampsFor = void 0;
|
|
13824
13824
|
exports.fetchDescendants = fetchDescendants;
|
|
13825
13825
|
var _fp = require_fp();
|
|
13826
|
-
var
|
|
13826
|
+
var Q13 = _interopRequireWildcard(require_QueryDescription());
|
|
13827
13827
|
function _getRequireWildcardCache(e) {
|
|
13828
13828
|
if ("function" != typeof WeakMap) return null;
|
|
13829
13829
|
var r = /* @__PURE__ */ new WeakMap(), t = /* @__PURE__ */ new WeakMap();
|
|
@@ -13861,7 +13861,7 @@ var require_helpers5 = __commonJS({
|
|
|
13861
13861
|
});
|
|
13862
13862
|
var childrenQueries = hasManyAssociations.map(function([key, value]) {
|
|
13863
13863
|
var childCollection = model.collections.get(key);
|
|
13864
|
-
return childCollection.query(
|
|
13864
|
+
return childCollection.query(Q13.where(value.foreignKey, model.id));
|
|
13865
13865
|
});
|
|
13866
13866
|
return childrenQueries;
|
|
13867
13867
|
}
|
|
@@ -14242,8 +14242,8 @@ var require_watermelondb = __commonJS({
|
|
|
14242
14242
|
var _interopRequireDefault = require_interopRequireDefault();
|
|
14243
14243
|
exports.__esModule = true;
|
|
14244
14244
|
exports.tableSchema = exports.tableName = exports.localStorageKey = exports.columnName = exports.associations = exports.appSchema = exports.Relation = exports.Query = exports.Q = exports.Model = exports.Database = exports.Collection = void 0;
|
|
14245
|
-
var
|
|
14246
|
-
exports.Q =
|
|
14245
|
+
var Q13 = _interopRequireWildcard(require_QueryDescription());
|
|
14246
|
+
exports.Q = Q13;
|
|
14247
14247
|
var _Collection = _interopRequireDefault(require_Collection());
|
|
14248
14248
|
exports.Collection = _Collection.default;
|
|
14249
14249
|
var _Database = _interopRequireDefault(require_Database());
|
|
@@ -14328,7 +14328,7 @@ var require_children = __commonJS({
|
|
|
14328
14328
|
var _makeDecorator = _interopRequireDefault(require_makeDecorator());
|
|
14329
14329
|
var _logError = _interopRequireDefault(require_logError());
|
|
14330
14330
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
14331
|
-
var
|
|
14331
|
+
var Q13 = _interopRequireWildcard(require_QueryDescription());
|
|
14332
14332
|
function _getRequireWildcardCache(e) {
|
|
14333
14333
|
if ("function" != typeof WeakMap) return null;
|
|
14334
14334
|
var r = /* @__PURE__ */ new WeakMap(), t = /* @__PURE__ */ new WeakMap();
|
|
@@ -14362,7 +14362,7 @@ var require_children = __commonJS({
|
|
|
14362
14362
|
var childCollection = model.collections.get(childTable);
|
|
14363
14363
|
var association = model.constructor.associations[childTable];
|
|
14364
14364
|
(0, _invariant.default)(association && "has_many" === association.type, "@children decorator used for a table that's not has_many");
|
|
14365
|
-
var query = childCollection.query(
|
|
14365
|
+
var query = childCollection.query(Q13.where(association.foreignKey, model.id));
|
|
14366
14366
|
that._childrenQueryCache[childTable] = query;
|
|
14367
14367
|
return query;
|
|
14368
14368
|
},
|
|
@@ -27237,10 +27237,10 @@ async function getVaultRankingProjectionsOp(ctx, options) {
|
|
|
27237
27237
|
function baseVaultSql(ctx, options) {
|
|
27238
27238
|
const clauses = [
|
|
27239
27239
|
`"_status" is not 'deleted'`,
|
|
27240
|
-
'"is_deleted" = 0',
|
|
27240
|
+
...options?.includeDeleted ? [] : ['"is_deleted" = 0'],
|
|
27241
27241
|
...options?.includeArchived ? [] : ['"archived_at" is null'],
|
|
27242
27242
|
...options?.includeQuarantined ? [] : [`"trust_tier" is not 'quarantined'`],
|
|
27243
|
-
'"superseded_by" is null'
|
|
27243
|
+
...options?.includeSuperseded ? [] : ['"superseded_by" is null']
|
|
27244
27244
|
];
|
|
27245
27245
|
const args = [];
|
|
27246
27246
|
if (ctx.userId !== void 0) {
|
|
@@ -27249,6 +27249,38 @@ function baseVaultSql(ctx, options) {
|
|
|
27249
27249
|
}
|
|
27250
27250
|
return { sql: clauses.join(" and "), args };
|
|
27251
27251
|
}
|
|
27252
|
+
async function getVaultProfileMetadataOp(ctx, options) {
|
|
27253
|
+
const mapRaw = (raw) => ({
|
|
27254
|
+
uniqueId: raw.id,
|
|
27255
|
+
scope: raw.scope ?? "",
|
|
27256
|
+
createdAt: new Date(raw.created_at),
|
|
27257
|
+
updatedAt: new Date(raw.updated_at),
|
|
27258
|
+
lastObservedAt: raw.last_observed_at ?? null,
|
|
27259
|
+
supersededAt: raw.superseded_at ?? null,
|
|
27260
|
+
supersededBy: raw.superseded_by ?? null,
|
|
27261
|
+
isDeleted: raw.is_deleted === true || raw.is_deleted === 1,
|
|
27262
|
+
proofCount: raw.proof_count ?? null
|
|
27263
|
+
});
|
|
27264
|
+
const listOptions = { ...options, includeDeleted: true, includeSuperseded: true };
|
|
27265
|
+
let rows;
|
|
27266
|
+
try {
|
|
27267
|
+
const base = baseVaultSql(ctx, listOptions);
|
|
27268
|
+
const clauses = [base.sql, `"_status" != 'deleted'`];
|
|
27269
|
+
const args = [...base.args];
|
|
27270
|
+
if (options?.scopes?.length) {
|
|
27271
|
+
clauses.push(`"scope" in (${options.scopes.map(() => "?").join(",")})`);
|
|
27272
|
+
args.push(...options.scopes);
|
|
27273
|
+
}
|
|
27274
|
+
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 ")}`;
|
|
27275
|
+
rows = await ctx.vaultMemoryCollection.query(import_watermelondb19.Q.unsafeSqlQuery(sql, args)).unsafeFetchRaw();
|
|
27276
|
+
} catch (err) {
|
|
27277
|
+
getLogger().debug(
|
|
27278
|
+
"memoryVault: getVaultProfileMetadataOp uses the query fallback: " + (err instanceof Error ? err.message : String(err))
|
|
27279
|
+
);
|
|
27280
|
+
rows = await ctx.vaultMemoryCollection.query(...vaultListConditions(ctx, listOptions)).unsafeFetchRaw();
|
|
27281
|
+
}
|
|
27282
|
+
return rows.map(mapRaw);
|
|
27283
|
+
}
|
|
27252
27284
|
async function getVaultCandidateKeysOp(ctx, options) {
|
|
27253
27285
|
const mapRaw = (raw) => ({
|
|
27254
27286
|
uniqueId: raw.id,
|
|
@@ -28132,6 +28164,9 @@ async function findQuarantinedDuplicateOp(ctx, content, sourceIds, where) {
|
|
|
28132
28164
|
return null;
|
|
28133
28165
|
}
|
|
28134
28166
|
|
|
28167
|
+
// src/lib/db/memoryVault/photoIngest.ts
|
|
28168
|
+
var import_watermelondb20 = __toESM(require_watermelondb());
|
|
28169
|
+
|
|
28135
28170
|
// src/lib/memory/decay.ts
|
|
28136
28171
|
var DAY_MS = 24 * 60 * 60 * 1e3;
|
|
28137
28172
|
var SHORT_TTL_MS = 30 * DAY_MS;
|
|
@@ -28204,6 +28239,16 @@ function classifyDecay(m, now, policy) {
|
|
|
28204
28239
|
|
|
28205
28240
|
// src/lib/db/memoryVault/photoIngest.ts
|
|
28206
28241
|
var PHOTO_MEMORY_ID_PREFIX = "photo:";
|
|
28242
|
+
var PHOTO_ID_QUERY_CHUNK_SIZE = 500;
|
|
28243
|
+
async function getExistingPhotoMemoryIds(ctx, rows) {
|
|
28244
|
+
const existing = /* @__PURE__ */ new Set();
|
|
28245
|
+
for (let i = 0; i < rows.length; i += PHOTO_ID_QUERY_CHUNK_SIZE) {
|
|
28246
|
+
const ids = rows.slice(i, i + PHOTO_ID_QUERY_CHUNK_SIZE).map((row) => row.memoryId);
|
|
28247
|
+
const found = await ctx.vaultMemoryCollection.query(import_watermelondb20.Q.where("id", import_watermelondb20.Q.oneOf(ids))).fetchIds();
|
|
28248
|
+
for (const id of found) existing.add(id);
|
|
28249
|
+
}
|
|
28250
|
+
return existing;
|
|
28251
|
+
}
|
|
28207
28252
|
async function ingestPublishedPhotoMemoriesOp(ctx, rows) {
|
|
28208
28253
|
const byId = /* @__PURE__ */ new Map();
|
|
28209
28254
|
for (const r of rows) {
|
|
@@ -28212,7 +28257,7 @@ async function ingestPublishedPhotoMemoriesOp(ctx, rows) {
|
|
|
28212
28257
|
}
|
|
28213
28258
|
const photoRows = [...byId.values()];
|
|
28214
28259
|
if (photoRows.length === 0) return { inserted: 0, skipped: 0 };
|
|
28215
|
-
const known = await ctx
|
|
28260
|
+
const known = await getExistingPhotoMemoryIds(ctx, photoRows);
|
|
28216
28261
|
const candidates = photoRows.filter((r) => !known.has(r.memoryId));
|
|
28217
28262
|
if (candidates.length === 0) return { inserted: 0, skipped: photoRows.length };
|
|
28218
28263
|
const fresh = candidates;
|
|
@@ -28232,7 +28277,7 @@ async function ingestPublishedPhotoMemoriesOp(ctx, rows) {
|
|
|
28232
28277
|
const now = Date.now();
|
|
28233
28278
|
let inserted = 0;
|
|
28234
28279
|
await ctx.database.write(async () => {
|
|
28235
|
-
const present =
|
|
28280
|
+
const present = await getExistingPhotoMemoryIds(ctx, fresh);
|
|
28236
28281
|
const writable = fresh.map((row, i) => ({ row, content: contents[i] })).filter(({ row }) => !present.has(row.memoryId));
|
|
28237
28282
|
inserted = writable.length;
|
|
28238
28283
|
if (writable.length === 0) return;
|
|
@@ -28266,7 +28311,7 @@ async function ingestPublishedPhotoMemoriesOp(ctx, rows) {
|
|
|
28266
28311
|
}
|
|
28267
28312
|
|
|
28268
28313
|
// src/lib/db/project/operations.ts
|
|
28269
|
-
var
|
|
28314
|
+
var import_watermelondb21 = __toESM(require_watermelondb());
|
|
28270
28315
|
|
|
28271
28316
|
// src/lib/db/project/types.ts
|
|
28272
28317
|
function generateProjectId() {
|
|
@@ -28297,15 +28342,15 @@ async function createProjectOp(ctx, opts, defaultName = "New Project") {
|
|
|
28297
28342
|
return projectToStored(created);
|
|
28298
28343
|
}
|
|
28299
28344
|
async function getProjectOp(ctx, id) {
|
|
28300
|
-
const results = await ctx.projectsCollection.query(
|
|
28345
|
+
const results = await ctx.projectsCollection.query(import_watermelondb21.Q.where("project_id", id), import_watermelondb21.Q.where("is_deleted", false)).fetch();
|
|
28301
28346
|
return results.length > 0 ? projectToStored(results[0]) : null;
|
|
28302
28347
|
}
|
|
28303
28348
|
async function getProjectsOp(ctx) {
|
|
28304
|
-
const results = await ctx.projectsCollection.query(
|
|
28349
|
+
const results = await ctx.projectsCollection.query(import_watermelondb21.Q.where("is_deleted", false), import_watermelondb21.Q.sortBy("created_at", import_watermelondb21.Q.desc)).fetch();
|
|
28305
28350
|
return results.map(projectToStored);
|
|
28306
28351
|
}
|
|
28307
28352
|
async function updateProjectNameOp(ctx, id, name) {
|
|
28308
|
-
const results = await ctx.projectsCollection.query(
|
|
28353
|
+
const results = await ctx.projectsCollection.query(import_watermelondb21.Q.where("project_id", id), import_watermelondb21.Q.where("is_deleted", false)).fetch();
|
|
28309
28354
|
if (results.length > 0) {
|
|
28310
28355
|
await ctx.database.write(async () => {
|
|
28311
28356
|
await results[0].update((proj) => {
|
|
@@ -28317,7 +28362,7 @@ async function updateProjectNameOp(ctx, id, name) {
|
|
|
28317
28362
|
return false;
|
|
28318
28363
|
}
|
|
28319
28364
|
async function updateProjectOp(ctx, id, opts) {
|
|
28320
|
-
const results = await ctx.projectsCollection.query(
|
|
28365
|
+
const results = await ctx.projectsCollection.query(import_watermelondb21.Q.where("project_id", id), import_watermelondb21.Q.where("is_deleted", false)).fetch();
|
|
28321
28366
|
if (results.length > 0) {
|
|
28322
28367
|
await ctx.database.write(async () => {
|
|
28323
28368
|
await results[0].update((proj) => {
|
|
@@ -28329,7 +28374,7 @@ async function updateProjectOp(ctx, id, opts) {
|
|
|
28329
28374
|
return false;
|
|
28330
28375
|
}
|
|
28331
28376
|
async function deleteProjectOp(ctx, id) {
|
|
28332
|
-
const results = await ctx.projectsCollection.query(
|
|
28377
|
+
const results = await ctx.projectsCollection.query(import_watermelondb21.Q.where("project_id", id), import_watermelondb21.Q.where("is_deleted", false)).fetch();
|
|
28333
28378
|
if (results.length > 0) {
|
|
28334
28379
|
await ctx.database.write(async () => {
|
|
28335
28380
|
await results[0].update((proj) => {
|
|
@@ -28342,14 +28387,14 @@ async function deleteProjectOp(ctx, id) {
|
|
|
28342
28387
|
}
|
|
28343
28388
|
async function getProjectConversationsOp(ctx, projectId) {
|
|
28344
28389
|
const results = await ctx.conversationsCollection.query(
|
|
28345
|
-
|
|
28346
|
-
|
|
28347
|
-
|
|
28390
|
+
import_watermelondb21.Q.where("project_id", projectId),
|
|
28391
|
+
import_watermelondb21.Q.where("is_deleted", false),
|
|
28392
|
+
import_watermelondb21.Q.sortBy("created_at", import_watermelondb21.Q.desc)
|
|
28348
28393
|
).fetch();
|
|
28349
28394
|
return results.map(conversationToStoredRaw);
|
|
28350
28395
|
}
|
|
28351
28396
|
async function getProjectConversationCountOp(ctx, projectId) {
|
|
28352
|
-
return await ctx.conversationsCollection.query(
|
|
28397
|
+
return await ctx.conversationsCollection.query(import_watermelondb21.Q.where("project_id", projectId), import_watermelondb21.Q.where("is_deleted", false)).fetchCount();
|
|
28353
28398
|
}
|
|
28354
28399
|
|
|
28355
28400
|
// src/lib/db/queue/manager.ts
|
|
@@ -28692,7 +28737,7 @@ var WalletPoller = class {
|
|
|
28692
28737
|
};
|
|
28693
28738
|
|
|
28694
28739
|
// src/lib/db/settings/operations.ts
|
|
28695
|
-
var
|
|
28740
|
+
var import_watermelondb22 = __toESM(require_watermelondb());
|
|
28696
28741
|
function modelPreferenceToStored(preference) {
|
|
28697
28742
|
return {
|
|
28698
28743
|
uniqueId: preference.id,
|
|
@@ -28701,12 +28746,12 @@ function modelPreferenceToStored(preference) {
|
|
|
28701
28746
|
};
|
|
28702
28747
|
}
|
|
28703
28748
|
async function getModelPreferenceOp(ctx, walletAddress) {
|
|
28704
|
-
const results = await ctx.modelPreferencesCollection.query(
|
|
28749
|
+
const results = await ctx.modelPreferencesCollection.query(import_watermelondb22.Q.where("wallet_address", walletAddress)).fetch();
|
|
28705
28750
|
return results.length > 0 ? modelPreferenceToStored(results[0]) : null;
|
|
28706
28751
|
}
|
|
28707
28752
|
async function setModelPreferenceOp(ctx, walletAddress, models) {
|
|
28708
28753
|
const result = await ctx.database.write(async () => {
|
|
28709
|
-
const results = await ctx.modelPreferencesCollection.query(
|
|
28754
|
+
const results = await ctx.modelPreferencesCollection.query(import_watermelondb22.Q.where("wallet_address", walletAddress)).fetch();
|
|
28710
28755
|
if (results.length > 0) {
|
|
28711
28756
|
const preference = results[0];
|
|
28712
28757
|
await preference.update((pref) => {
|
|
@@ -28724,7 +28769,7 @@ async function setModelPreferenceOp(ctx, walletAddress, models) {
|
|
|
28724
28769
|
return modelPreferenceToStored(result);
|
|
28725
28770
|
}
|
|
28726
28771
|
async function deleteModelPreferenceOp(ctx, walletAddress) {
|
|
28727
|
-
const results = await ctx.modelPreferencesCollection.query(
|
|
28772
|
+
const results = await ctx.modelPreferencesCollection.query(import_watermelondb22.Q.where("wallet_address", walletAddress)).fetch();
|
|
28728
28773
|
if (results.length === 0) return false;
|
|
28729
28774
|
await ctx.database.write(async () => {
|
|
28730
28775
|
await results[0].destroyPermanently();
|
|
@@ -28733,7 +28778,7 @@ async function deleteModelPreferenceOp(ctx, walletAddress) {
|
|
|
28733
28778
|
}
|
|
28734
28779
|
|
|
28735
28780
|
// src/lib/db/userPreferences/operations.ts
|
|
28736
|
-
var
|
|
28781
|
+
var import_watermelondb23 = __toESM(require_watermelondb());
|
|
28737
28782
|
function userPreferenceToStored(preference) {
|
|
28738
28783
|
return {
|
|
28739
28784
|
uniqueId: preference.id,
|
|
@@ -28749,7 +28794,7 @@ function userPreferenceToStored(preference) {
|
|
|
28749
28794
|
};
|
|
28750
28795
|
}
|
|
28751
28796
|
async function getUserPreferenceOp(ctx, walletAddress) {
|
|
28752
|
-
const results = await ctx.userPreferencesCollection.query(
|
|
28797
|
+
const results = await ctx.userPreferencesCollection.query(import_watermelondb23.Q.where("wallet_address", walletAddress)).fetch();
|
|
28753
28798
|
return results.length > 0 ? userPreferenceToStored(results[0]) : null;
|
|
28754
28799
|
}
|
|
28755
28800
|
async function createUserPreferenceOp(ctx, opts) {
|
|
@@ -28770,7 +28815,7 @@ async function createUserPreferenceOp(ctx, opts) {
|
|
|
28770
28815
|
return userPreferenceToStored(created);
|
|
28771
28816
|
}
|
|
28772
28817
|
async function updateUserPreferenceOp(ctx, walletAddress, opts) {
|
|
28773
|
-
const results = await ctx.userPreferencesCollection.query(
|
|
28818
|
+
const results = await ctx.userPreferencesCollection.query(import_watermelondb23.Q.where("wallet_address", walletAddress)).fetch();
|
|
28774
28819
|
if (results.length === 0) return null;
|
|
28775
28820
|
const preference = results[0];
|
|
28776
28821
|
await ctx.database.write(async () => {
|
|
@@ -28801,7 +28846,7 @@ async function updateUserPreferenceOp(ctx, walletAddress, opts) {
|
|
|
28801
28846
|
async function setUserPreferenceOp(ctx, walletAddress, opts) {
|
|
28802
28847
|
const now = Date.now();
|
|
28803
28848
|
const result = await ctx.database.write(async () => {
|
|
28804
|
-
const results = await ctx.userPreferencesCollection.query(
|
|
28849
|
+
const results = await ctx.userPreferencesCollection.query(import_watermelondb23.Q.where("wallet_address", walletAddress)).fetch();
|
|
28805
28850
|
if (results.length > 0) {
|
|
28806
28851
|
const preference = results[0];
|
|
28807
28852
|
await preference.update((pref) => {
|
|
@@ -28853,7 +28898,7 @@ async function updateModelsOp(ctx, walletAddress, models) {
|
|
|
28853
28898
|
return updateUserPreferenceOp(ctx, walletAddress, { models });
|
|
28854
28899
|
}
|
|
28855
28900
|
async function deleteUserPreferenceOp(ctx, walletAddress) {
|
|
28856
|
-
const results = await ctx.userPreferencesCollection.query(
|
|
28901
|
+
const results = await ctx.userPreferencesCollection.query(import_watermelondb23.Q.where("wallet_address", walletAddress)).fetch();
|
|
28857
28902
|
if (results.length === 0) return false;
|
|
28858
28903
|
await ctx.database.write(async () => {
|
|
28859
28904
|
await results[0].destroyPermanently();
|
|
@@ -28868,9 +28913,9 @@ async function migrateFromModelPreferencesOp(ctx, walletAddress) {
|
|
|
28868
28913
|
if (existing) {
|
|
28869
28914
|
return existing;
|
|
28870
28915
|
}
|
|
28871
|
-
const modelResults = await ctx.modelPreferencesCollection.query(
|
|
28916
|
+
const modelResults = await ctx.modelPreferencesCollection.query(import_watermelondb23.Q.where("wallet_address", walletAddress)).fetch();
|
|
28872
28917
|
const personalityKey = `${walletAddress}_personality_settings`;
|
|
28873
|
-
const personalityResults = await ctx.modelPreferencesCollection.query(
|
|
28918
|
+
const personalityResults = await ctx.modelPreferencesCollection.query(import_watermelondb23.Q.where("wallet_address", personalityKey)).fetch();
|
|
28874
28919
|
if (modelResults.length === 0 && personalityResults.length === 0) {
|
|
28875
28920
|
return null;
|
|
28876
28921
|
}
|
|
@@ -28950,7 +28995,7 @@ var SLIDER_CONFIG = [
|
|
|
28950
28995
|
];
|
|
28951
28996
|
|
|
28952
28997
|
// src/lib/memory/autoExtract.ts
|
|
28953
|
-
var
|
|
28998
|
+
var import_watermelondb24 = __toESM(require_watermelondb());
|
|
28954
28999
|
|
|
28955
29000
|
// src/lib/memory/entitySalience.ts
|
|
28956
29001
|
var GENERIC_ENTITY_NAMES = /* @__PURE__ */ new Set([
|
|
@@ -31744,7 +31789,7 @@ async function assertMergeTargetGoneOrThrow(ctx, targetId, expectedContent) {
|
|
|
31744
31789
|
// src/lib/memory/autoExtract.ts
|
|
31745
31790
|
async function isMemoryTopicsUserManaged(ctx, memoryId) {
|
|
31746
31791
|
try {
|
|
31747
|
-
const rows = await ctx.database.get(VaultMemory.table).query(
|
|
31792
|
+
const rows = await ctx.database.get(VaultMemory.table).query(import_watermelondb24.Q.where("id", memoryId)).fetch();
|
|
31748
31793
|
return rows[0]?.topicsUserManaged === true;
|
|
31749
31794
|
} catch {
|
|
31750
31795
|
return true;
|
|
@@ -34326,7 +34371,7 @@ function parseAnswer(body, base, parseSchema) {
|
|
|
34326
34371
|
}
|
|
34327
34372
|
|
|
34328
34373
|
// src/lib/memory/store/local.ts
|
|
34329
|
-
var
|
|
34374
|
+
var import_watermelondb25 = __toESM(require_watermelondb());
|
|
34330
34375
|
|
|
34331
34376
|
// src/lib/memory/topicExtract.ts
|
|
34332
34377
|
var TOPIC_EXTRACTION_BATCH_SIZE = 10;
|
|
@@ -34608,8 +34653,8 @@ function createLocalMemoryStore(options) {
|
|
|
34608
34653
|
writeOptions?.signal?.throwIfAborted();
|
|
34609
34654
|
};
|
|
34610
34655
|
const vaultCache = options.vaultCache ?? createVaultEmbeddingCache();
|
|
34611
|
-
const ownedBy = userId !== void 0 ? [
|
|
34612
|
-
const linksOwnedBy = userId === void 0 ? [] : options.allowUnscopedRows ? [
|
|
34656
|
+
const ownedBy = userId !== void 0 ? [import_watermelondb25.Q.where("user_id", userId)] : [];
|
|
34657
|
+
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)];
|
|
34613
34658
|
const watchedColumns = [
|
|
34614
34659
|
"content",
|
|
34615
34660
|
"scope",
|
|
@@ -34655,7 +34700,7 @@ function createLocalMemoryStore(options) {
|
|
|
34655
34700
|
list: (listOptions) => getAllVaultMemoriesOp(vaultCtx, listOptions),
|
|
34656
34701
|
get: (id) => getVaultMemoryOp(vaultCtx, id),
|
|
34657
34702
|
listArchived: async () => {
|
|
34658
|
-
const ids = await vaultCtx.vaultMemoryCollection.query(
|
|
34703
|
+
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();
|
|
34659
34704
|
if (ids.length === 0) return [];
|
|
34660
34705
|
const rows = await getAllVaultMemoriesOp(vaultCtx, { memoryIds: ids, includeArchived: true });
|
|
34661
34706
|
return rows.sort((a, b) => (b.archivedAt ?? 0) - (a.archivedAt ?? 0));
|
|
@@ -34671,7 +34716,7 @@ function createLocalMemoryStore(options) {
|
|
|
34671
34716
|
set.add(String(link.memory_id));
|
|
34672
34717
|
members.set(entityId, set);
|
|
34673
34718
|
}
|
|
34674
|
-
const entities = userId === void 0 ? await entityCtx.entityCollection.query().unsafeFetchRaw() : members.size ? await entityCtx.entityCollection.query(
|
|
34719
|
+
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() : [];
|
|
34675
34720
|
const byName = /* @__PURE__ */ new Map();
|
|
34676
34721
|
for (const entity of entities) {
|
|
34677
34722
|
const name = String(entity.canonical_name);
|
|
@@ -34721,7 +34766,7 @@ function createLocalMemoryStore(options) {
|
|
|
34721
34766
|
setTopics: (memoryId, topics) => setMemoryEntitiesOp(vaultCtx, memoryId, topics),
|
|
34722
34767
|
addTopics: (memoryId, topics, writeOptions) => database.write(async (writer) => {
|
|
34723
34768
|
await assertWrite(writeOptions);
|
|
34724
|
-
const owned = await vaultCtx.vaultMemoryCollection.query(
|
|
34769
|
+
const owned = await vaultCtx.vaultMemoryCollection.query(import_watermelondb25.Q.where("id", memoryId), import_watermelondb25.Q.where("is_deleted", false), ...ownedBy).fetchCount();
|
|
34725
34770
|
return owned > 0 ? writer.callWriter(
|
|
34726
34771
|
() => linkMemoryEntitiesOp(
|
|
34727
34772
|
{
|
|
@@ -34793,7 +34838,7 @@ function createLocalMemoryStore(options) {
|
|
|
34793
34838
|
else onChange();
|
|
34794
34839
|
};
|
|
34795
34840
|
};
|
|
34796
|
-
const memories = subscribeOptions?.includeDeleted ? vaultCtx.vaultMemoryCollection.query(...ownedBy).observe() : vaultCtx.vaultMemoryCollection.query(
|
|
34841
|
+
const memories = subscribeOptions?.includeDeleted ? vaultCtx.vaultMemoryCollection.query(...ownedBy).observe() : vaultCtx.vaultMemoryCollection.query(import_watermelondb25.Q.where("is_deleted", false), ...ownedBy).observeWithColumns(
|
|
34797
34842
|
subscribeOptions?.embeddings ? [...watchedColumns, "embedding", "embedding_model"] : watchedColumns
|
|
34798
34843
|
);
|
|
34799
34844
|
const subscriptions = [memories.subscribe(afterFirst())];
|
|
@@ -34939,7 +34984,7 @@ async function synthesizeProfile(ctx, options = {}) {
|
|
|
34939
34984
|
};
|
|
34940
34985
|
const previous = options.previous && options.previous.version === PROFILE_DOC_VERSION && configMatches(options.previous.config, config) ? options.previous : void 0;
|
|
34941
34986
|
const listOptions = { scopes, includeDeleted: true, includeSuperseded: true };
|
|
34942
|
-
const [memories, projections] = store ? await Promise.all([store.list(listOptions), store.listProjections(listOptions)]) : [await
|
|
34987
|
+
const [memories, projections] = store ? await Promise.all([store.list(listOptions), store.listProjections(listOptions)]) : [await getVaultProfileMetadataOp(vaultCtx, { scopes }), []];
|
|
34943
34988
|
const watermark = computeVaultWatermark(memories);
|
|
34944
34989
|
const observationTrends = summarizeObservationTrends(
|
|
34945
34990
|
memories.filter((m) => !m.isDeleted && m.supersededBy === null).map((m) => ({
|
|
@@ -34975,7 +35020,8 @@ async function synthesizeProfile(ctx, options = {}) {
|
|
|
34975
35020
|
previous,
|
|
34976
35021
|
watermark,
|
|
34977
35022
|
options.reviewedMemoryIds,
|
|
34978
|
-
previousUnreadable
|
|
35023
|
+
previousUnreadable,
|
|
35024
|
+
store ? void 0 : (ids) => getVaultEmbeddingsByIdsOp(vaultCtx, ids)
|
|
34979
35025
|
);
|
|
34980
35026
|
const memoriesById = new Map(memories.map((memory) => [memory.uniqueId, memory]));
|
|
34981
35027
|
const fallbackPriors = /* @__PURE__ */ new Map();
|
|
@@ -35062,7 +35108,7 @@ function computeVaultWatermark(memories) {
|
|
|
35062
35108
|
}
|
|
35063
35109
|
return max;
|
|
35064
35110
|
}
|
|
35065
|
-
async function computeStaleFacetKeys(ctx, memories, facets, previous, watermark, reviewedMemoryIds, previouslyUnreadable) {
|
|
35111
|
+
async function computeStaleFacetKeys(ctx, memories, facets, previous, watermark, reviewedMemoryIds, previouslyUnreadable, loadEmbeddings) {
|
|
35066
35112
|
const allKeys = new Set(facets.map((f) => f.key));
|
|
35067
35113
|
if (previous && watermark < previous.vaultWatermark) return allKeys;
|
|
35068
35114
|
if (!previous) return allKeys;
|
|
@@ -35095,7 +35141,9 @@ async function computeStaleFacetKeys(ctx, memories, facets, previous, watermark,
|
|
|
35095
35141
|
toAttribute = toAttribute.filter((m) => allowed.has(m.uniqueId));
|
|
35096
35142
|
}
|
|
35097
35143
|
if (toAttribute.length > 0) {
|
|
35098
|
-
const
|
|
35144
|
+
const candidates = loadEmbeddings ? await loadEmbeddings(toAttribute.map((m) => m.uniqueId)) : toAttribute;
|
|
35145
|
+
if (candidates.length !== toAttribute.length) return allKeys;
|
|
35146
|
+
const attributed = await attributeFacts(ctx, candidates, facets);
|
|
35099
35147
|
if (attributed === null) return allKeys;
|
|
35100
35148
|
for (const k of attributed) stale.add(k);
|
|
35101
35149
|
}
|
|
@@ -35519,17 +35567,17 @@ async function assembleMemoryContext(options) {
|
|
|
35519
35567
|
}
|
|
35520
35568
|
|
|
35521
35569
|
// src/lib/memory/durableExtraction.ts
|
|
35522
|
-
var
|
|
35570
|
+
var import_watermelondb26 = __toESM(require_watermelondb());
|
|
35523
35571
|
async function messagePositions(storage, ids) {
|
|
35524
35572
|
try {
|
|
35525
35573
|
return await storage.messagesCollection.query(
|
|
35526
|
-
|
|
35574
|
+
import_watermelondb26.Q.unsafeSqlQuery(
|
|
35527
35575
|
`select "id", "conversation_id", "message_id" from "history" where "_status" is not 'deleted' and "id" in (${ids.map(() => "?").join(",")})`,
|
|
35528
35576
|
ids
|
|
35529
35577
|
)
|
|
35530
35578
|
).unsafeFetchRaw();
|
|
35531
35579
|
} catch {
|
|
35532
|
-
return await storage.messagesCollection.query(
|
|
35580
|
+
return await storage.messagesCollection.query(import_watermelondb26.Q.where("id", import_watermelondb26.Q.oneOf(ids))).unsafeFetchRaw();
|
|
35533
35581
|
}
|
|
35534
35582
|
}
|
|
35535
35583
|
var MAX_JOBS_PER_PASS = 3;
|
|
@@ -35702,7 +35750,7 @@ function createDurableAutoExtractor(options) {
|
|
|
35702
35750
|
const source = options.messageSource?.(conversationId);
|
|
35703
35751
|
if (source)
|
|
35704
35752
|
return await fromSource(source.status(conversationId)) === "ready" && (await loadFromSource(source, conversationId, ids)).every(Boolean);
|
|
35705
|
-
return await storage.conversationsCollection.query(
|
|
35753
|
+
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;
|
|
35706
35754
|
}
|
|
35707
35755
|
function schedule(delay) {
|
|
35708
35756
|
if (disposed) return;
|
|
@@ -35876,7 +35924,7 @@ function createDurableAutoExtractor(options) {
|
|
|
35876
35924
|
let sourceWaiting = false;
|
|
35877
35925
|
try {
|
|
35878
35926
|
await writes;
|
|
35879
|
-
const pending = await jobs.query(
|
|
35927
|
+
const pending = await jobs.query(import_watermelondb26.Q.where("owner_key", owner), import_watermelondb26.Q.where("message_ids", import_watermelondb26.Q.notEq("[]"))).fetch();
|
|
35880
35928
|
storeFailures = 0;
|
|
35881
35929
|
let processed = 0;
|
|
35882
35930
|
for (const job of pending) {
|
|
@@ -35908,7 +35956,7 @@ function createDurableAutoExtractor(options) {
|
|
|
35908
35956
|
let ids = [];
|
|
35909
35957
|
let loaded = [];
|
|
35910
35958
|
try {
|
|
35911
|
-
const present = source ? sourceStatus === "ready" : await storage.conversationsCollection.query(
|
|
35959
|
+
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;
|
|
35912
35960
|
if (!present) {
|
|
35913
35961
|
await database.write(() => job.destroyPermanently());
|
|
35914
35962
|
continue;
|
|
@@ -36076,7 +36124,7 @@ function createDurableAutoExtractor(options) {
|
|
|
36076
36124
|
const scope = currentScope();
|
|
36077
36125
|
writes = writes.then(
|
|
36078
36126
|
() => database.write(async () => {
|
|
36079
|
-
const existing = await jobs.query(
|
|
36127
|
+
const existing = await jobs.query(import_watermelondb26.Q.where("owner_key", owner), import_watermelondb26.Q.where("conversation_id", conversationId)).fetch();
|
|
36080
36128
|
const job = existing.find(
|
|
36081
36129
|
(candidate) => candidate._getRaw("scope") === scope && (candidate._getRaw("folder_id") ?? null) === folderId
|
|
36082
36130
|
);
|
|
@@ -36089,8 +36137,8 @@ function createDurableAutoExtractor(options) {
|
|
|
36089
36137
|
if (watermarks.length) {
|
|
36090
36138
|
const misplaced = new Set(
|
|
36091
36139
|
await storage.messagesCollection.query(
|
|
36092
|
-
|
|
36093
|
-
|
|
36140
|
+
import_watermelondb26.Q.where("id", import_watermelondb26.Q.oneOf(watermarks)),
|
|
36141
|
+
import_watermelondb26.Q.where("conversation_id", import_watermelondb26.Q.notEq(conversationId))
|
|
36094
36142
|
).fetchIds()
|
|
36095
36143
|
);
|
|
36096
36144
|
for (const prior of existing)
|