@hatk/hatk 0.0.1-alpha.97 → 0.0.1-alpha.99
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/backfill.d.ts +4 -1
- package/dist/backfill.d.ts.map +1 -1
- package/dist/backfill.js +17 -5
- package/dist/cli.js +0 -1
- package/dist/config.d.ts +1 -14
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +0 -11
- package/dist/database/db.d.ts +13 -64
- package/dist/database/db.d.ts.map +1 -1
- package/dist/database/db.js +27 -235
- package/dist/indexer.d.ts +18 -0
- package/dist/indexer.d.ts.map +1 -1
- package/dist/indexer.js +65 -1
- package/dist/jetstream.d.ts.map +1 -1
- package/dist/jetstream.js +16 -3
- package/dist/main.js +0 -4
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +1 -89
- package/package.json +2 -3
- package/public/admin.html +0 -467
- package/dist/classifiers.d.ts +0 -168
- package/dist/classifiers.d.ts.map +0 -1
- package/dist/classifiers.js +0 -370
package/dist/backfill.d.ts
CHANGED
|
@@ -14,7 +14,10 @@ export declare function purgeableCollections(collections: Iterable<string>): str
|
|
|
14
14
|
* Takendown repos are excluded: re-backfilling one ends in
|
|
15
15
|
* `setRepoStatus(did, 'active')`, which would silently reinstate an account an
|
|
16
16
|
* admin took down — takedowns must survive every redeploy. Reinstatement goes
|
|
17
|
-
* through `/admin/reverse-takedown` only.
|
|
17
|
+
* through `/admin/reverse-takedown` only. Deactivated and deleted repos are
|
|
18
|
+
* excluded for the same reason from the other side: the network said so, and
|
|
19
|
+
* only the network saying otherwise (an `#account` event) brings them back.
|
|
20
|
+
* Exported for tests.
|
|
18
21
|
*/
|
|
19
22
|
export declare function backfillEligible(status: string | null): boolean;
|
|
20
23
|
import type { BackfillConfig } from './config.ts';
|
package/dist/backfill.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backfill.d.ts","sourceRoot":"","sources":["../src/backfill.ts"],"names":[],"mappings":"AAkBA;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAE5E;AAED
|
|
1
|
+
{"version":3,"file":"backfill.d.ts","sourceRoot":"","sources":["../src/backfill.ts"],"names":[],"mappings":"AAkBA;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAE5E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAE/D;AAMD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAIjD,6CAA6C;AAC7C,UAAU,YAAY;IACpB,wFAAwF;IACxF,MAAM,EAAE,MAAM,CAAA;IACd,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,8FAA8F;IAC9F,MAAM,EAAE,MAAM,CAAA;IACd,yEAAyE;IACzE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACxB,wDAAwD;IACxD,MAAM,EAAE,cAAc,CAAA;CACvB;AAWD;oFACoF;AACpF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE9C;AAID;8EAC8E;AAC9E,wBAAsB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMzD;AAsFD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsL/G;AA8BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAsIrE"}
|
package/dist/backfill.js
CHANGED
|
@@ -22,11 +22,16 @@ export function purgeableCollections(collections) {
|
|
|
22
22
|
* Takendown repos are excluded: re-backfilling one ends in
|
|
23
23
|
* `setRepoStatus(did, 'active')`, which would silently reinstate an account an
|
|
24
24
|
* admin took down — takedowns must survive every redeploy. Reinstatement goes
|
|
25
|
-
* through `/admin/reverse-takedown` only.
|
|
25
|
+
* through `/admin/reverse-takedown` only. Deactivated and deleted repos are
|
|
26
|
+
* excluded for the same reason from the other side: the network said so, and
|
|
27
|
+
* only the network saying otherwise (an `#account` event) brings them back.
|
|
28
|
+
* Exported for tests.
|
|
26
29
|
*/
|
|
27
30
|
export function backfillEligible(status) {
|
|
28
|
-
return status
|
|
31
|
+
return !status || !NOT_BACKFILLED.has(status);
|
|
29
32
|
}
|
|
33
|
+
/** Statuses a backfill must leave alone. See {@link backfillEligible}. */
|
|
34
|
+
const NOT_BACKFILLED = new Set(['active', 'takendown', 'deactivated', 'deleted']);
|
|
30
35
|
import { emit, timer } from "./logger.js";
|
|
31
36
|
import { validateRecord } from '@bigmoves/lexicon';
|
|
32
37
|
import { getLexiconArray } from "./database/schema.js";
|
|
@@ -160,12 +165,19 @@ async function* listReposByCollection(pdsUrl, collection) {
|
|
|
160
165
|
*/
|
|
161
166
|
export async function backfillRepo(did, collections, fetchTimeout) {
|
|
162
167
|
// A takendown repo must never be re-imported: the success path ends in
|
|
163
|
-
// setRepoStatus('active'), which would reinstate the account.
|
|
164
|
-
//
|
|
165
|
-
|
|
168
|
+
// setRepoStatus('active'), which would reinstate the account. Nor a
|
|
169
|
+
// deactivated or deleted one, which the network has said is not there.
|
|
170
|
+
// Guarding here covers every caller (boot scan, auto-backfill, admin
|
|
171
|
+
// re-index).
|
|
172
|
+
const current = await getRepoStatus(did);
|
|
173
|
+
if (current === 'takendown') {
|
|
166
174
|
emit('backfill', 'takedown_skip', { did });
|
|
167
175
|
return 0;
|
|
168
176
|
}
|
|
177
|
+
if (current === 'deactivated' || current === 'deleted') {
|
|
178
|
+
emit('backfill', 'inactive_skip', { did, status: current });
|
|
179
|
+
return 0;
|
|
180
|
+
}
|
|
169
181
|
const elapsed = timer();
|
|
170
182
|
let count = 0;
|
|
171
183
|
let carSizeBytes;
|
package/dist/cli.js
CHANGED
|
@@ -443,7 +443,6 @@ else if (command === 'generate') {
|
|
|
443
443
|
out += `export { defineSetup } from '@hatk/hatk/setup'\n`;
|
|
444
444
|
out += `export { defineHook } from '@hatk/hatk/hooks'\n`;
|
|
445
445
|
out += `export { defineLabel } from '@hatk/hatk/labels'\n`;
|
|
446
|
-
out += `export { defineClassifier } from '@hatk/hatk/classifiers'\n`;
|
|
447
446
|
out += `export { defineOG } from '@hatk/hatk/opengraph'\n`;
|
|
448
447
|
out += `export { defineRenderer } from '@hatk/hatk/renderer'\n`;
|
|
449
448
|
out += `export type Ctx<K extends keyof XrpcSchema & keyof Registry> = XrpcContext<\n`;
|
package/dist/config.d.ts
CHANGED
|
@@ -171,21 +171,9 @@ export interface HatkConfig {
|
|
|
171
171
|
push: PushConfig | null;
|
|
172
172
|
admins: string[];
|
|
173
173
|
spaces: SpacesConfig | null;
|
|
174
|
-
typesafe: TypeSafeConfig | null;
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* System One access for the classifier system. Without it, classifiers load but
|
|
178
|
-
* no scan can run. The key is read from `TYPESAFE_API_KEY` in preference to the
|
|
179
|
-
* config file, so it need not be committed.
|
|
180
|
-
*/
|
|
181
|
-
export interface TypeSafeConfig {
|
|
182
|
-
apiKey: string;
|
|
183
|
-
/** Model name or alias. Pin a version to keep tuned thresholds stable. */
|
|
184
|
-
model: string;
|
|
185
|
-
endpoint: string;
|
|
186
174
|
}
|
|
187
175
|
/** Input type for defineConfig — fields that have defaults are optional. */
|
|
188
|
-
export type HatkConfigInput = Partial<Omit<HatkConfig, 'oauth' | 'backfill' | 'push' | 'cdn' | 'jetstream' | 'spaces'
|
|
176
|
+
export type HatkConfigInput = Partial<Omit<HatkConfig, 'oauth' | 'backfill' | 'push' | 'cdn' | 'jetstream' | 'spaces'>> & {
|
|
189
177
|
cdn?: CdnConfig | null;
|
|
190
178
|
oauth?: (Partial<OAuthConfig> & {
|
|
191
179
|
clients: OAuthClientConfig[];
|
|
@@ -194,7 +182,6 @@ export type HatkConfigInput = Partial<Omit<HatkConfig, 'oauth' | 'backfill' | 'p
|
|
|
194
182
|
push?: PushConfig | null;
|
|
195
183
|
jetstream?: JetstreamConfig | null;
|
|
196
184
|
spaces?: SpacesConfig | null;
|
|
197
|
-
typesafe?: Partial<TypeSafeConfig> | null;
|
|
198
185
|
};
|
|
199
186
|
/** Identity function that provides type inference for hatk config files. */
|
|
200
187
|
export declare function defineConfig(config: HatkConfigInput): HatkConfigInput;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -69,17 +69,6 @@ export async function loadConfig(configPath) {
|
|
|
69
69
|
oauth: null,
|
|
70
70
|
push: parsed.push || null,
|
|
71
71
|
admins: env.ADMINS ? env.ADMINS.split(',').map((s) => s.trim()) : parsed.admins || [],
|
|
72
|
-
typesafe: (() => {
|
|
73
|
-
const raw = parsed.typesafe;
|
|
74
|
-
const apiKey = env.TYPESAFE_API_KEY || raw?.apiKey;
|
|
75
|
-
if (!apiKey)
|
|
76
|
-
return null;
|
|
77
|
-
return {
|
|
78
|
-
apiKey,
|
|
79
|
-
model: env.TYPESAFE_MODEL || raw?.model || 'jev-latest',
|
|
80
|
-
endpoint: env.TYPESAFE_ENDPOINT || raw?.endpoint || 'https://api.typesafe.ai/v1/systemone',
|
|
81
|
-
};
|
|
82
|
-
})(),
|
|
83
72
|
spaces: parsed.spaces
|
|
84
73
|
? {
|
|
85
74
|
types: parsed.spaces.types || [],
|
package/dist/database/db.d.ts
CHANGED
|
@@ -48,6 +48,19 @@ export declare function getRepoRetryInfo(did: string): Promise<{
|
|
|
48
48
|
export declare function listRetryEligibleRepos(maxRetries: number): Promise<string[]>;
|
|
49
49
|
export declare function listPendingRepos(): Promise<string[]>;
|
|
50
50
|
export declare function listActiveRepoDids(): Promise<string[]>;
|
|
51
|
+
/**
|
|
52
|
+
* Repo statuses whose records no read serves: taken down by an admin here, or
|
|
53
|
+
* gone quiet on the network — deactivated (or suspended, or taken down by its
|
|
54
|
+
* host) and deleted. A SQL list, for `status NOT IN ...`.
|
|
55
|
+
*/
|
|
56
|
+
export declare const HIDDEN_REPO_STATUSES = "('takendown', 'deactivated', 'deleted')";
|
|
57
|
+
/**
|
|
58
|
+
* Remove every record an account holds in the index, public and in spaces:
|
|
59
|
+
* what an account deleted on the network leaves behind. Each goes the way
|
|
60
|
+
* {@link deleteRecord} takes one — out of the search index, its child and
|
|
61
|
+
* union rows, then the row itself.
|
|
62
|
+
*/
|
|
63
|
+
export declare function purgeRepoRecords(did: string): Promise<number>;
|
|
51
64
|
export declare function removeRepo(did: string): Promise<void>;
|
|
52
65
|
export declare function getRepoHandle(did: string): Promise<string | null>;
|
|
53
66
|
export declare function listAllRepoStatuses(): Promise<Array<{
|
|
@@ -205,69 +218,5 @@ export declare function resolveReport(id: number, action: 'resolved' | 'dismisse
|
|
|
205
218
|
label: string;
|
|
206
219
|
} | null>;
|
|
207
220
|
export declare function getOpenReportCount(): Promise<number>;
|
|
208
|
-
export interface ClassificationRow {
|
|
209
|
-
subjectUri: string;
|
|
210
|
-
subjectDid: string;
|
|
211
|
-
classifier: string;
|
|
212
|
-
signals: Record<string, {
|
|
213
|
-
score: number;
|
|
214
|
-
type: string;
|
|
215
|
-
choice?: string;
|
|
216
|
-
confidence?: number;
|
|
217
|
-
}>;
|
|
218
|
-
/** The state the model was shown, kept so a reviewer sees what it judged. */
|
|
219
|
-
state: Record<string, unknown>;
|
|
220
|
-
topSignal: string | null;
|
|
221
|
-
topScore: number;
|
|
222
|
-
fingerprint: string;
|
|
223
|
-
model: string | null;
|
|
224
|
-
}
|
|
225
|
-
/** Replace this subject's score for this classifier. */
|
|
226
|
-
export declare function upsertClassification(row: ClassificationRow): Promise<void>;
|
|
227
|
-
/**
|
|
228
|
-
* Fingerprints of everything already scored by this classifier, so a rescan can
|
|
229
|
-
* skip subjects whose state has not changed since.
|
|
230
|
-
*/
|
|
231
|
-
export declare function getClassificationFingerprints(classifier: string): Promise<Map<string, string>>;
|
|
232
|
-
/** An open report already filed against this subject with this label, if any. */
|
|
233
|
-
export declare function findOpenReport(subjectUri: string, label: string): Promise<number | null>;
|
|
234
|
-
/**
|
|
235
|
-
* The review queue: one entry per subject, not per classifier.
|
|
236
|
-
*
|
|
237
|
-
* A subject scored by three classifiers has three rows in `_classifications`,
|
|
238
|
-
* and returning them separately puts the same account in the queue three times.
|
|
239
|
-
* The signals are merged instead, each tagged with the classifier it came from,
|
|
240
|
-
* so one card carries everything known about the account.
|
|
241
|
-
*/
|
|
242
|
-
export declare function queryClassifications(opts: {
|
|
243
|
-
classifier?: string;
|
|
244
|
-
signal?: string;
|
|
245
|
-
minScore?: number;
|
|
246
|
-
/** `pending` is what still needs a decision; see the state filter below. */
|
|
247
|
-
state?: 'all' | 'pending' | 'actioned';
|
|
248
|
-
limit?: number;
|
|
249
|
-
offset?: number;
|
|
250
|
-
}): Promise<{
|
|
251
|
-
rows: any[];
|
|
252
|
-
total: number;
|
|
253
|
-
}>;
|
|
254
|
-
/** Rollups for the review tab header. */
|
|
255
|
-
export declare function getClassificationStats(): Promise<{
|
|
256
|
-
total: number;
|
|
257
|
-
pending: number;
|
|
258
|
-
byClassifier: Record<string, number>;
|
|
259
|
-
lastScan: string | null;
|
|
260
|
-
}>;
|
|
261
|
-
/**
|
|
262
|
-
* A sample of one repo's records across the given collections, newest first.
|
|
263
|
-
*
|
|
264
|
-
* Feeds the review queue's inline context: judging an account means seeing what
|
|
265
|
-
* it actually posted, not just its DID.
|
|
266
|
-
*/
|
|
267
|
-
export declare function getRecordsByDid(did: string, collections: string[], perCollection?: number): Promise<Record<string, any[]>>;
|
|
268
|
-
/** Row counts per collection for one repo. */
|
|
269
|
-
export declare function getRecordCountsByDid(did: string, collections: string[]): Promise<Record<string, number>>;
|
|
270
|
-
/** Open report ids filed against a subject, whatever the label. */
|
|
271
|
-
export declare function findOpenReportsForSubject(subjectUri: string): Promise<number[]>;
|
|
272
221
|
export {};
|
|
273
222
|
//# sourceMappingURL=db.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/database/db.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/database/db.ts"],"names":[],"mappings":"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"}
|
package/dist/database/db.js
CHANGED
|
@@ -188,43 +188,6 @@ export async function initDatabase(adapter, dbPath, tableSchemas, ddlStatements,
|
|
|
188
188
|
}
|
|
189
189
|
await run(`CREATE INDEX IF NOT EXISTS idx_reports_status ON _reports(status)`);
|
|
190
190
|
await run(`CREATE INDEX IF NOT EXISTS idx_reports_subject_uri ON _reports(subject_uri)`);
|
|
191
|
-
// Classifier scores. One row per (subject, classifier); a rescan replaces it.
|
|
192
|
-
// `fingerprint` hashes the state that was scored, so an unchanged subject is
|
|
193
|
-
// skipped on the next scan instead of being paid for again.
|
|
194
|
-
if (dialect.supportsSequences) {
|
|
195
|
-
await run(`CREATE SEQUENCE IF NOT EXISTS _classifications_seq START 1`);
|
|
196
|
-
await run(`CREATE TABLE IF NOT EXISTS _classifications (
|
|
197
|
-
id INTEGER PRIMARY KEY DEFAULT nextval('_classifications_seq'),
|
|
198
|
-
subject_uri TEXT NOT NULL,
|
|
199
|
-
subject_did TEXT NOT NULL,
|
|
200
|
-
classifier TEXT NOT NULL,
|
|
201
|
-
signals ${dialect.jsonType} NOT NULL,
|
|
202
|
-
state ${dialect.jsonType},
|
|
203
|
-
top_signal TEXT,
|
|
204
|
-
top_score DOUBLE NOT NULL DEFAULT 0,
|
|
205
|
-
fingerprint TEXT NOT NULL,
|
|
206
|
-
model TEXT,
|
|
207
|
-
scanned_at ${dialect.timestampType} NOT NULL
|
|
208
|
-
)`);
|
|
209
|
-
}
|
|
210
|
-
else {
|
|
211
|
-
await run(`CREATE TABLE IF NOT EXISTS _classifications (
|
|
212
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
213
|
-
subject_uri TEXT NOT NULL,
|
|
214
|
-
subject_did TEXT NOT NULL,
|
|
215
|
-
classifier TEXT NOT NULL,
|
|
216
|
-
signals TEXT NOT NULL,
|
|
217
|
-
state TEXT,
|
|
218
|
-
top_signal TEXT,
|
|
219
|
-
top_score REAL NOT NULL DEFAULT 0,
|
|
220
|
-
fingerprint TEXT NOT NULL,
|
|
221
|
-
model TEXT,
|
|
222
|
-
scanned_at TEXT NOT NULL
|
|
223
|
-
)`);
|
|
224
|
-
}
|
|
225
|
-
await run(`CREATE UNIQUE INDEX IF NOT EXISTS idx_classifications_subject ON _classifications(subject_uri, classifier)`);
|
|
226
|
-
await run(`CREATE INDEX IF NOT EXISTS idx_classifications_score ON _classifications(top_score)`);
|
|
227
|
-
await run(`CREATE INDEX IF NOT EXISTS idx_classifications_did ON _classifications(subject_did)`);
|
|
228
191
|
// Push notification tokens
|
|
229
192
|
await run(`CREATE TABLE IF NOT EXISTS _push_tokens (
|
|
230
193
|
did TEXT NOT NULL,
|
|
@@ -518,6 +481,29 @@ export async function listActiveRepoDids() {
|
|
|
518
481
|
const rows = await all(`SELECT did FROM _repos WHERE status = 'active'`);
|
|
519
482
|
return rows.map((r) => r.did);
|
|
520
483
|
}
|
|
484
|
+
/**
|
|
485
|
+
* Repo statuses whose records no read serves: taken down by an admin here, or
|
|
486
|
+
* gone quiet on the network — deactivated (or suspended, or taken down by its
|
|
487
|
+
* host) and deleted. A SQL list, for `status NOT IN ...`.
|
|
488
|
+
*/
|
|
489
|
+
export const HIDDEN_REPO_STATUSES = "('takendown', 'deactivated', 'deleted')";
|
|
490
|
+
/**
|
|
491
|
+
* Remove every record an account holds in the index, public and in spaces:
|
|
492
|
+
* what an account deleted on the network leaves behind. Each goes the way
|
|
493
|
+
* {@link deleteRecord} takes one — out of the search index, its child and
|
|
494
|
+
* union rows, then the row itself.
|
|
495
|
+
*/
|
|
496
|
+
export async function purgeRepoRecords(did) {
|
|
497
|
+
let removed = 0;
|
|
498
|
+
for (const [collection, schema] of schemas) {
|
|
499
|
+
const rows = await all(`SELECT uri FROM ${schema.tableName} WHERE did = $1`, [did]);
|
|
500
|
+
for (const { uri } of rows) {
|
|
501
|
+
await deleteRecord(collection, uri);
|
|
502
|
+
removed++;
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
return removed;
|
|
506
|
+
}
|
|
521
507
|
export async function removeRepo(did) {
|
|
522
508
|
await run(`DELETE FROM _repos WHERE did = $1`, [did]);
|
|
523
509
|
}
|
|
@@ -1191,7 +1177,7 @@ export async function queryRecords(collection, opts = {}) {
|
|
|
1191
1177
|
conditions.push(gate.sql);
|
|
1192
1178
|
params.push(...gate.params);
|
|
1193
1179
|
paramIdx = gate.nextIdx;
|
|
1194
|
-
let sql = `SELECT t.*, r.handle FROM ${schema.tableName} t LEFT JOIN _repos r ON t.did = r.did WHERE (r.status IS NULL OR r.status
|
|
1180
|
+
let sql = `SELECT t.*, r.handle FROM ${schema.tableName} t LEFT JOIN _repos r ON t.did = r.did WHERE (r.status IS NULL OR r.status NOT IN ${HIDDEN_REPO_STATUSES})`;
|
|
1195
1181
|
if (conditions.length)
|
|
1196
1182
|
sql += ' AND ' + conditions.join(' AND ');
|
|
1197
1183
|
sql += ` ORDER BY t.${sortName} ${direction}, t.cid ${direction} LIMIT $${paramIdx++}`;
|
|
@@ -1237,7 +1223,7 @@ export async function queryRecords(collection, opts = {}) {
|
|
|
1237
1223
|
export async function getRecordByUri(uri) {
|
|
1238
1224
|
for (const [_collection, schema] of schemas) {
|
|
1239
1225
|
const gate = spaceFilterSql('t', 2);
|
|
1240
|
-
const rows = await all(`SELECT t.*, r.handle FROM ${schema.tableName} t LEFT JOIN _repos r ON t.did = r.did WHERE t.uri = $1 AND ${gate.sql} AND (r.status IS NULL OR r.status
|
|
1226
|
+
const rows = await all(`SELECT t.*, r.handle FROM ${schema.tableName} t LEFT JOIN _repos r ON t.did = r.did WHERE t.uri = $1 AND ${gate.sql} AND (r.status IS NULL OR r.status NOT IN ${HIDDEN_REPO_STATUSES})`, [uri, ...gate.params]);
|
|
1241
1227
|
if (rows.length > 0) {
|
|
1242
1228
|
const row = rows[0];
|
|
1243
1229
|
if (schema.children.length > 0) {
|
|
@@ -1275,7 +1261,7 @@ export async function getRecordsByUris(collection, uris) {
|
|
|
1275
1261
|
return [];
|
|
1276
1262
|
const placeholders = uris.map((_, i) => `$${i + 1}`).join(',');
|
|
1277
1263
|
const gate = spaceFilterSql('t', uris.length + 1);
|
|
1278
|
-
const rows = await all(`SELECT t.*, r.handle FROM ${schema.tableName} t LEFT JOIN _repos r ON t.did = r.did WHERE t.uri IN (${placeholders}) AND ${gate.sql} AND (r.status IS NULL OR r.status
|
|
1264
|
+
const rows = await all(`SELECT t.*, r.handle FROM ${schema.tableName} t LEFT JOIN _repos r ON t.did = r.did WHERE t.uri IN (${placeholders}) AND ${gate.sql} AND (r.status IS NULL OR r.status NOT IN ${HIDDEN_REPO_STATUSES})`, [...uris, ...gate.params]);
|
|
1279
1265
|
// Batch-fetch child rows for all URIs
|
|
1280
1266
|
const childData = new Map();
|
|
1281
1267
|
for (const child of schema.children) {
|
|
@@ -1366,7 +1352,7 @@ export async function searchRecords(collection, query, opts = {}) {
|
|
|
1366
1352
|
LEFT JOIN _repos r ON m.did = r.did
|
|
1367
1353
|
WHERE m.uri IN (${placeholders})
|
|
1368
1354
|
AND ${gate.sql}
|
|
1369
|
-
AND (r.status IS NULL OR r.status
|
|
1355
|
+
AND (r.status IS NULL OR r.status NOT IN ${HIDDEN_REPO_STATUSES})`, [...uriList, ...gate.params]);
|
|
1370
1356
|
// Re-attach scores and sort
|
|
1371
1357
|
bm25Results = rows
|
|
1372
1358
|
.map((r) => ({ ...r, score: scoreMap.get(r.uri) ?? 0 }))
|
|
@@ -1831,197 +1817,3 @@ export async function getOpenReportCount() {
|
|
|
1831
1817
|
const rows = await all(`SELECT ${dialect.countAsInteger} as count FROM _reports WHERE status = 'open'`);
|
|
1832
1818
|
return Number(rows[0]?.count || 0);
|
|
1833
1819
|
}
|
|
1834
|
-
/** Replace this subject's score for this classifier. */
|
|
1835
|
-
export async function upsertClassification(row) {
|
|
1836
|
-
await run(`DELETE FROM _classifications WHERE subject_uri = $1 AND classifier = $2`, [
|
|
1837
|
-
row.subjectUri,
|
|
1838
|
-
row.classifier,
|
|
1839
|
-
]);
|
|
1840
|
-
await run(`INSERT INTO _classifications
|
|
1841
|
-
(subject_uri, subject_did, classifier, signals, state, top_signal, top_score, fingerprint, model, scanned_at)
|
|
1842
|
-
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)`, [
|
|
1843
|
-
row.subjectUri,
|
|
1844
|
-
row.subjectDid,
|
|
1845
|
-
row.classifier,
|
|
1846
|
-
JSON.stringify(row.signals),
|
|
1847
|
-
JSON.stringify(row.state),
|
|
1848
|
-
row.topSignal,
|
|
1849
|
-
row.topScore,
|
|
1850
|
-
row.fingerprint,
|
|
1851
|
-
row.model,
|
|
1852
|
-
new Date().toISOString(),
|
|
1853
|
-
]);
|
|
1854
|
-
}
|
|
1855
|
-
/**
|
|
1856
|
-
* Fingerprints of everything already scored by this classifier, so a rescan can
|
|
1857
|
-
* skip subjects whose state has not changed since.
|
|
1858
|
-
*/
|
|
1859
|
-
export async function getClassificationFingerprints(classifier) {
|
|
1860
|
-
const rows = await all(`SELECT subject_uri, fingerprint FROM _classifications WHERE classifier = $1`, [classifier]);
|
|
1861
|
-
return new Map(rows.map((r) => [r.subject_uri, r.fingerprint]));
|
|
1862
|
-
}
|
|
1863
|
-
/** An open report already filed against this subject with this label, if any. */
|
|
1864
|
-
export async function findOpenReport(subjectUri, label) {
|
|
1865
|
-
const rows = await all(`SELECT id FROM _reports WHERE subject_uri = $1 AND label = $2 AND status = 'open' LIMIT 1`, [subjectUri, label]);
|
|
1866
|
-
return rows.length ? rows[0].id : null;
|
|
1867
|
-
}
|
|
1868
|
-
/**
|
|
1869
|
-
* The review queue: one entry per subject, not per classifier.
|
|
1870
|
-
*
|
|
1871
|
-
* A subject scored by three classifiers has three rows in `_classifications`,
|
|
1872
|
-
* and returning them separately puts the same account in the queue three times.
|
|
1873
|
-
* The signals are merged instead, each tagged with the classifier it came from,
|
|
1874
|
-
* so one card carries everything known about the account.
|
|
1875
|
-
*/
|
|
1876
|
-
export async function queryClassifications(opts) {
|
|
1877
|
-
const conditions = [];
|
|
1878
|
-
const params = [];
|
|
1879
|
-
let idx = 1;
|
|
1880
|
-
if (opts.classifier) {
|
|
1881
|
-
conditions.push(`c.classifier = $${idx++}`);
|
|
1882
|
-
params.push(opts.classifier);
|
|
1883
|
-
}
|
|
1884
|
-
if (opts.signal) {
|
|
1885
|
-
conditions.push(`c.top_signal = $${idx++}`);
|
|
1886
|
-
params.push(opts.signal);
|
|
1887
|
-
}
|
|
1888
|
-
if (opts.minScore != null) {
|
|
1889
|
-
conditions.push(`c.top_score >= $${idx++}`);
|
|
1890
|
-
params.push(opts.minScore);
|
|
1891
|
-
}
|
|
1892
|
-
// Pending means a report is open against the subject: something crossed a
|
|
1893
|
-
// threshold and nobody has decided it. A high score on a question carrying no
|
|
1894
|
-
// threshold is context rather than queue — browsable under `all`.
|
|
1895
|
-
if (opts.state === 'pending') {
|
|
1896
|
-
conditions.push(`(rp.status IS NULL OR rp.status = 'active')`);
|
|
1897
|
-
conditions.push(`EXISTS (SELECT 1 FROM _reports x WHERE x.subject_uri = c.subject_uri AND x.status = 'open')`);
|
|
1898
|
-
}
|
|
1899
|
-
else if (opts.state === 'actioned') {
|
|
1900
|
-
conditions.push(`(rp.status = 'takendown'
|
|
1901
|
-
OR (EXISTS (SELECT 1 FROM _reports x WHERE x.subject_uri = c.subject_uri AND x.status <> 'open')
|
|
1902
|
-
AND NOT EXISTS (SELECT 1 FROM _reports x WHERE x.subject_uri = c.subject_uri AND x.status = 'open')))`);
|
|
1903
|
-
}
|
|
1904
|
-
const where = conditions.length ? `WHERE ${conditions.join(' AND ')}` : '';
|
|
1905
|
-
const from = `FROM _classifications c LEFT JOIN _repos rp ON c.subject_did = rp.did`;
|
|
1906
|
-
const limit = opts.limit ?? 50;
|
|
1907
|
-
const offset = opts.offset ?? 0;
|
|
1908
|
-
const countRows = await all(`SELECT ${dialect.countAsInteger} as count FROM (SELECT c.subject_uri ${from} ${where} GROUP BY c.subject_uri) g`, params);
|
|
1909
|
-
const page = await all(`SELECT c.subject_uri, c.subject_did, MAX(c.top_score) AS score
|
|
1910
|
-
${from} ${where}
|
|
1911
|
-
GROUP BY c.subject_uri, c.subject_did
|
|
1912
|
-
ORDER BY score DESC LIMIT $${idx++} OFFSET $${idx++}`, [...params, limit, offset]);
|
|
1913
|
-
if (!page.length)
|
|
1914
|
-
return { rows: [], total: Number(countRows[0]?.count || 0) };
|
|
1915
|
-
const uris = page.map((p) => p.subject_uri);
|
|
1916
|
-
const placeholders = uris.map((_, i) => `$${i + 1}`).join(',');
|
|
1917
|
-
const detail = await all(`SELECT c.*, rp.handle, rp.status AS repo_status,
|
|
1918
|
-
(SELECT x.id FROM _reports x WHERE x.subject_uri = c.subject_uri AND x.status = 'open' LIMIT 1) AS report_id,
|
|
1919
|
-
(SELECT x.status FROM _reports x WHERE x.subject_uri = c.subject_uri ORDER BY x.created_at DESC LIMIT 1) AS report_status
|
|
1920
|
-
FROM _classifications c LEFT JOIN _repos rp ON c.subject_did = rp.did
|
|
1921
|
-
WHERE c.subject_uri IN (${placeholders})`, uris);
|
|
1922
|
-
const byUri = new Map();
|
|
1923
|
-
for (const row of detail) {
|
|
1924
|
-
for (const col of ['signals', 'state']) {
|
|
1925
|
-
if (typeof row[col] === 'string') {
|
|
1926
|
-
try {
|
|
1927
|
-
row[col] = JSON.parse(row[col]);
|
|
1928
|
-
}
|
|
1929
|
-
catch { }
|
|
1930
|
-
}
|
|
1931
|
-
}
|
|
1932
|
-
let entry = byUri.get(row.subject_uri);
|
|
1933
|
-
if (!entry) {
|
|
1934
|
-
entry = {
|
|
1935
|
-
subject_uri: row.subject_uri,
|
|
1936
|
-
subject_did: row.subject_did,
|
|
1937
|
-
handle: row.handle,
|
|
1938
|
-
repo_status: row.repo_status,
|
|
1939
|
-
report_id: row.report_id,
|
|
1940
|
-
report_status: row.report_status,
|
|
1941
|
-
classifiers: [],
|
|
1942
|
-
signals: {},
|
|
1943
|
-
state: {},
|
|
1944
|
-
top_signal: null,
|
|
1945
|
-
top_score: 0,
|
|
1946
|
-
scanned_at: row.scanned_at,
|
|
1947
|
-
};
|
|
1948
|
-
byUri.set(row.subject_uri, entry);
|
|
1949
|
-
}
|
|
1950
|
-
entry.classifiers.push(row.classifier);
|
|
1951
|
-
// Every classifier builds its own view of the subject; show the richest.
|
|
1952
|
-
if (Object.keys(row.state || {}).length > Object.keys(entry.state).length)
|
|
1953
|
-
entry.state = row.state;
|
|
1954
|
-
for (const [name, sig] of Object.entries(row.signals || {})) {
|
|
1955
|
-
entry.signals[name] = { ...sig, classifier: row.classifier };
|
|
1956
|
-
if (sig.score > entry.top_score) {
|
|
1957
|
-
entry.top_score = sig.score;
|
|
1958
|
-
entry.top_signal = name;
|
|
1959
|
-
}
|
|
1960
|
-
}
|
|
1961
|
-
}
|
|
1962
|
-
const rows = page.map((p) => byUri.get(p.subject_uri)).filter(Boolean);
|
|
1963
|
-
return { rows, total: Number(countRows[0]?.count || 0) };
|
|
1964
|
-
}
|
|
1965
|
-
/** Rollups for the review tab header. */
|
|
1966
|
-
export async function getClassificationStats() {
|
|
1967
|
-
const [totalRows, pendingRows, byRows, lastRows] = await Promise.all([
|
|
1968
|
-
all(`SELECT ${dialect.countAsInteger} as count FROM (SELECT subject_uri FROM _classifications GROUP BY subject_uri) g`),
|
|
1969
|
-
// Distinct subjects, not rows: the queue shows one card per account, so a
|
|
1970
|
-
// row count would overstate it by the number of classifiers.
|
|
1971
|
-
all(`SELECT ${dialect.countAsInteger} as count FROM (
|
|
1972
|
-
SELECT c.subject_uri FROM _classifications c
|
|
1973
|
-
WHERE EXISTS (SELECT 1 FROM _reports x WHERE x.subject_uri = c.subject_uri AND x.status = 'open')
|
|
1974
|
-
GROUP BY c.subject_uri
|
|
1975
|
-
) g`),
|
|
1976
|
-
all(`SELECT classifier, ${dialect.countAsInteger} as count FROM _classifications GROUP BY classifier`),
|
|
1977
|
-
all(`SELECT scanned_at FROM _classifications ORDER BY scanned_at DESC LIMIT 1`),
|
|
1978
|
-
]);
|
|
1979
|
-
const byClassifier = {};
|
|
1980
|
-
for (const r of byRows)
|
|
1981
|
-
byClassifier[r.classifier] = Number(r.count);
|
|
1982
|
-
return {
|
|
1983
|
-
total: Number(totalRows[0]?.count || 0),
|
|
1984
|
-
pending: Number(pendingRows[0]?.count || 0),
|
|
1985
|
-
byClassifier,
|
|
1986
|
-
lastScan: lastRows[0]?.scanned_at ?? null,
|
|
1987
|
-
};
|
|
1988
|
-
}
|
|
1989
|
-
/**
|
|
1990
|
-
* A sample of one repo's records across the given collections, newest first.
|
|
1991
|
-
*
|
|
1992
|
-
* Feeds the review queue's inline context: judging an account means seeing what
|
|
1993
|
-
* it actually posted, not just its DID.
|
|
1994
|
-
*/
|
|
1995
|
-
export async function getRecordsByDid(did, collections, perCollection = 6) {
|
|
1996
|
-
const out = {};
|
|
1997
|
-
for (const collection of collections) {
|
|
1998
|
-
const schema = schemas.get(collection);
|
|
1999
|
-
if (!schema)
|
|
2000
|
-
continue;
|
|
2001
|
-
const rows = await all(`SELECT * FROM ${schema.tableName} WHERE did = $1 ORDER BY indexed_at DESC LIMIT $2`, [did, perCollection]);
|
|
2002
|
-
if (rows.length)
|
|
2003
|
-
out[collection] = rows.map((r) => reshapeRow(r)).filter(Boolean);
|
|
2004
|
-
}
|
|
2005
|
-
return out;
|
|
2006
|
-
}
|
|
2007
|
-
/** Row counts per collection for one repo. */
|
|
2008
|
-
export async function getRecordCountsByDid(did, collections) {
|
|
2009
|
-
const out = {};
|
|
2010
|
-
for (const collection of collections) {
|
|
2011
|
-
const schema = schemas.get(collection);
|
|
2012
|
-
if (!schema)
|
|
2013
|
-
continue;
|
|
2014
|
-
const rows = await all(`SELECT ${dialect.countAsInteger} as count FROM ${schema.tableName} WHERE did = $1`, [did]);
|
|
2015
|
-
const n = Number(rows[0]?.count || 0);
|
|
2016
|
-
if (n)
|
|
2017
|
-
out[collection] = n;
|
|
2018
|
-
}
|
|
2019
|
-
return out;
|
|
2020
|
-
}
|
|
2021
|
-
/** Open report ids filed against a subject, whatever the label. */
|
|
2022
|
-
export async function findOpenReportsForSubject(subjectUri) {
|
|
2023
|
-
const rows = await all(`SELECT id FROM _reports WHERE subject_uri = $1 AND status = 'open'`, [
|
|
2024
|
-
subjectUri,
|
|
2025
|
-
]);
|
|
2026
|
-
return rows.map((r) => r.id);
|
|
2027
|
-
}
|
package/dist/indexer.d.ts
CHANGED
|
@@ -159,6 +159,24 @@ export declare function startAuxIndexer(opts: AuxIndexerOpts): WebSocket;
|
|
|
159
159
|
* writing rows for the entire network.
|
|
160
160
|
*/
|
|
161
161
|
export declare function handleIdentityEvent(did: string, payloadHandle: string | undefined): Promise<void>;
|
|
162
|
+
/**
|
|
163
|
+
* Handle an `#account` event: the network saying an account is active again,
|
|
164
|
+
* or is not — deactivated, suspended, taken down by its host, or deleted.
|
|
165
|
+
*
|
|
166
|
+
* - deleted: every record it holds here is removed, and it is marked
|
|
167
|
+
* `deleted`.
|
|
168
|
+
* - deactivated, suspended, taken down by its host: marked `deactivated`. Its
|
|
169
|
+
* records stay, and no read serves them (see HIDDEN_REPO_STATUSES), so an
|
|
170
|
+
* account that comes back is whole again at once.
|
|
171
|
+
* - active again, after either: marked `pending` and backfilled, since it may
|
|
172
|
+
* have changed while it was gone.
|
|
173
|
+
*
|
|
174
|
+
* An admin's own takedown here wins over all of it: only reverse-takedown
|
|
175
|
+
* lifts that. Statuses that say nothing about the account itself (a relay's
|
|
176
|
+
* `desynchronized` or `throttled`) change nothing. Like identity events, only
|
|
177
|
+
* DIDs already tracked are touched.
|
|
178
|
+
*/
|
|
179
|
+
export declare function handleAccountEvent(did: string, active: boolean, status: string | undefined): Promise<void>;
|
|
162
180
|
/**
|
|
163
181
|
* Whether a collection's records may be written from network data.
|
|
164
182
|
*
|
package/dist/indexer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../src/indexer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../src/indexer.ts"],"names":[],"mappings":"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"}
|