@waifucave/discord-waifus 1.5.154
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/LICENSE +21 -0
- package/README.md +230 -0
- package/THIRD_PARTY_NOTICES.md +26 -0
- package/assets/ocr/eng.traineddata +0 -0
- package/bin/waifus.mjs +36 -0
- package/dist/api/errors.d.ts +9 -0
- package/dist/api/errors.js +23 -0
- package/dist/api/errors.js.map +1 -0
- package/dist/api/server.d.ts +19 -0
- package/dist/api/server.js +1290 -0
- package/dist/api/server.js.map +1 -0
- package/dist/backend/logger.d.ts +20 -0
- package/dist/backend/logger.js +65 -0
- package/dist/backend/logger.js.map +1 -0
- package/dist/backend/migrations.d.ts +4 -0
- package/dist/backend/migrations.js +521 -0
- package/dist/backend/migrations.js.map +1 -0
- package/dist/backend/redaction.d.ts +1 -0
- package/dist/backend/redaction.js +22 -0
- package/dist/backend/redaction.js.map +1 -0
- package/dist/backend/runtime.d.ts +30 -0
- package/dist/backend/runtime.js +49 -0
- package/dist/backend/runtime.js.map +1 -0
- package/dist/backend/server.d.ts +18 -0
- package/dist/backend/server.js +581 -0
- package/dist/backend/server.js.map +1 -0
- package/dist/cli/commands.d.ts +35 -0
- package/dist/cli/commands.js +510 -0
- package/dist/cli/commands.js.map +1 -0
- package/dist/cli/main.d.ts +1 -0
- package/dist/cli/main.js +12 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/parser.d.ts +10 -0
- package/dist/cli/parser.js +64 -0
- package/dist/cli/parser.js.map +1 -0
- package/dist/config/appConfig.d.ts +3 -0
- package/dist/config/appConfig.js +27 -0
- package/dist/config/appConfig.js.map +1 -0
- package/dist/config/layout.d.ts +13 -0
- package/dist/config/layout.js +173 -0
- package/dist/config/layout.js.map +1 -0
- package/dist/config/paths.d.ts +5 -0
- package/dist/config/paths.js +20 -0
- package/dist/config/paths.js.map +1 -0
- package/dist/config/prebuiltWaifus.d.ts +3 -0
- package/dist/config/prebuiltWaifus.js +106 -0
- package/dist/config/prebuiltWaifus.js.map +1 -0
- package/dist/discord/client.d.ts +394 -0
- package/dist/discord/client.js +1196 -0
- package/dist/discord/client.js.map +1 -0
- package/dist/discord/contextBuilder.d.ts +15 -0
- package/dist/discord/contextBuilder.js +18 -0
- package/dist/discord/contextBuilder.js.map +1 -0
- package/dist/discord/intents.d.ts +5 -0
- package/dist/discord/intents.js +21 -0
- package/dist/discord/intents.js.map +1 -0
- package/dist/discord/memberCache.d.ts +12 -0
- package/dist/discord/memberCache.js +55 -0
- package/dist/discord/memberCache.js.map +1 -0
- package/dist/discord/normalization.d.ts +34 -0
- package/dist/discord/normalization.js +330 -0
- package/dist/discord/normalization.js.map +1 -0
- package/dist/discord/rateLimit.d.ts +9 -0
- package/dist/discord/rateLimit.js +11 -0
- package/dist/discord/rateLimit.js.map +1 -0
- package/dist/orchestration/context.d.ts +85 -0
- package/dist/orchestration/context.js +200 -0
- package/dist/orchestration/context.js.map +1 -0
- package/dist/orchestration/decisions.d.ts +52 -0
- package/dist/orchestration/decisions.js +61 -0
- package/dist/orchestration/decisions.js.map +1 -0
- package/dist/orchestration/messageSplit.d.ts +6 -0
- package/dist/orchestration/messageSplit.js +118 -0
- package/dist/orchestration/messageSplit.js.map +1 -0
- package/dist/orchestration/ocr.d.ts +43 -0
- package/dist/orchestration/ocr.js +504 -0
- package/dist/orchestration/ocr.js.map +1 -0
- package/dist/orchestration/ocrPackages.d.ts +24 -0
- package/dist/orchestration/ocrPackages.js +85 -0
- package/dist/orchestration/ocrPackages.js.map +1 -0
- package/dist/orchestration/promptBlocks.d.ts +28 -0
- package/dist/orchestration/promptBlocks.js +232 -0
- package/dist/orchestration/promptBlocks.js.map +1 -0
- package/dist/orchestration/replyQuote.d.ts +7 -0
- package/dist/orchestration/replyQuote.js +198 -0
- package/dist/orchestration/replyQuote.js.map +1 -0
- package/dist/orchestration/reviewer.d.ts +5 -0
- package/dist/orchestration/reviewer.js +5 -0
- package/dist/orchestration/reviewer.js.map +1 -0
- package/dist/orchestration/runtime.d.ts +152 -0
- package/dist/orchestration/runtime.js +3535 -0
- package/dist/orchestration/runtime.js.map +1 -0
- package/dist/orchestration/session.d.ts +30 -0
- package/dist/orchestration/session.js +41 -0
- package/dist/orchestration/session.js.map +1 -0
- package/dist/orchestration/stageManager.d.ts +42 -0
- package/dist/orchestration/stageManager.js +50 -0
- package/dist/orchestration/stageManager.js.map +1 -0
- package/dist/providers/catalog.d.ts +6 -0
- package/dist/providers/catalog.js +212 -0
- package/dist/providers/catalog.js.map +1 -0
- package/dist/providers/pipelines.d.ts +13 -0
- package/dist/providers/pipelines.js +2388 -0
- package/dist/providers/pipelines.js.map +1 -0
- package/dist/providers/types.d.ts +91 -0
- package/dist/providers/types.js +2 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/shared/queryLog.d.ts +39 -0
- package/dist/shared/queryLog.js +80 -0
- package/dist/shared/queryLog.js.map +1 -0
- package/dist/shared/schemas/common.d.ts +21 -0
- package/dist/shared/schemas/common.js +27 -0
- package/dist/shared/schemas/common.js.map +1 -0
- package/dist/shared/schemas/config.d.ts +57 -0
- package/dist/shared/schemas/config.js +49 -0
- package/dist/shared/schemas/config.js.map +1 -0
- package/dist/shared/schemas/domain.d.ts +825 -0
- package/dist/shared/schemas/domain.js +444 -0
- package/dist/shared/schemas/domain.js.map +1 -0
- package/dist/storage/atomic.d.ts +6 -0
- package/dist/storage/atomic.js +60 -0
- package/dist/storage/atomic.js.map +1 -0
- package/dist/storage/errors.d.ts +12 -0
- package/dist/storage/errors.js +23 -0
- package/dist/storage/errors.js.map +1 -0
- package/dist/storage/locks.d.ts +9 -0
- package/dist/storage/locks.js +42 -0
- package/dist/storage/locks.js.map +1 -0
- package/dist/storage/storageService.d.ts +25 -0
- package/dist/storage/storageService.js +66 -0
- package/dist/storage/storageService.js.map +1 -0
- package/dist-frontend/assets/index-B2bB3_2r.js +39 -0
- package/dist-frontend/assets/index-B2bB3_2r.js.map +1 -0
- package/dist-frontend/assets/index-Dj1L8Px-.css +1 -0
- package/dist-frontend/index.html +14 -0
- package/docs/api.md +162 -0
- package/docs/old-orchestrator-prompt.md +123 -0
- package/package.json +81 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { RevisionedRecord } from "../shared/schemas/common.js";
|
|
3
|
+
import { ResourceLockManager } from "./locks.js";
|
|
4
|
+
export type UpdateRevisionedJsonOptions<T extends RevisionedRecord> = {
|
|
5
|
+
resourceKey: string;
|
|
6
|
+
relativePath: string;
|
|
7
|
+
schema: z.ZodType<T>;
|
|
8
|
+
fallback: T;
|
|
9
|
+
expectedRevision?: number;
|
|
10
|
+
transform: (current: T) => Promise<T> | T;
|
|
11
|
+
};
|
|
12
|
+
export declare class StorageService {
|
|
13
|
+
readonly dataRoot: string;
|
|
14
|
+
readonly locks: ResourceLockManager;
|
|
15
|
+
constructor(dataRoot: string, options?: {
|
|
16
|
+
locks?: ResourceLockManager;
|
|
17
|
+
lockWaitWarnThresholdMs?: number;
|
|
18
|
+
onLockWait?: (resourceKey: string, waitMs: number) => void;
|
|
19
|
+
});
|
|
20
|
+
readJson<T>(relativePath: string, schema: z.ZodType<T>, fallback?: T): Promise<T>;
|
|
21
|
+
writeJson<T>(resourceKey: string, relativePath: string, schema: z.ZodType<T>, value: T): Promise<T>;
|
|
22
|
+
updateRevisionedJson<T extends RevisionedRecord>(options: UpdateRevisionedJsonOptions<T>): Promise<T>;
|
|
23
|
+
withLocks<T>(resourceKeys: string[], task: () => Promise<T> | T): Promise<T>;
|
|
24
|
+
dataPath(...segments: string[]): string;
|
|
25
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
import { CURRENT_SCHEMA_VERSION, bumpRevision } from "../shared/schemas/common.js";
|
|
5
|
+
import { resolveDataPath } from "../config/paths.js";
|
|
6
|
+
import { atomicWriteJson, recoverAtomicWriteTemps } from "./atomic.js";
|
|
7
|
+
import { StorageConflictError, StorageValidationError } from "./errors.js";
|
|
8
|
+
import { ResourceLockManager } from "./locks.js";
|
|
9
|
+
export class StorageService {
|
|
10
|
+
dataRoot;
|
|
11
|
+
locks;
|
|
12
|
+
constructor(dataRoot, options = {}) {
|
|
13
|
+
this.dataRoot = dataRoot;
|
|
14
|
+
this.locks =
|
|
15
|
+
options.locks ??
|
|
16
|
+
new ResourceLockManager(options.lockWaitWarnThresholdMs ?? 250, options.onLockWait);
|
|
17
|
+
}
|
|
18
|
+
async readJson(relativePath, schema, fallback) {
|
|
19
|
+
const filePath = resolveDataPath(this.dataRoot, relativePath);
|
|
20
|
+
await recoverAtomicWriteTemps(filePath);
|
|
21
|
+
try {
|
|
22
|
+
const raw = await readFile(filePath, "utf8");
|
|
23
|
+
const parsed = JSON.parse(raw);
|
|
24
|
+
return schema.parse(parsed);
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
if (error.code === "ENOENT" && fallback !== undefined) {
|
|
28
|
+
return schema.parse(structuredClone(fallback));
|
|
29
|
+
}
|
|
30
|
+
if (error instanceof z.ZodError || error instanceof SyntaxError) {
|
|
31
|
+
throw new StorageValidationError(`Invalid JSON record at ${relativePath}`, { cause: error });
|
|
32
|
+
}
|
|
33
|
+
throw error;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async writeJson(resourceKey, relativePath, schema, value) {
|
|
37
|
+
return this.locks.withLock(resourceKey, async () => {
|
|
38
|
+
const parsed = schema.parse(value);
|
|
39
|
+
await atomicWriteJson(resolveDataPath(this.dataRoot, relativePath), parsed);
|
|
40
|
+
return parsed;
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
async updateRevisionedJson(options) {
|
|
44
|
+
return this.locks.withLock(options.resourceKey, async () => {
|
|
45
|
+
const current = await this.readJson(options.relativePath, options.schema, options.fallback);
|
|
46
|
+
if (options.expectedRevision !== undefined &&
|
|
47
|
+
current.revision !== options.expectedRevision) {
|
|
48
|
+
throw new StorageConflictError("Record has changed since it was read.", current);
|
|
49
|
+
}
|
|
50
|
+
const transformed = await options.transform(structuredClone(current));
|
|
51
|
+
const next = options.schema.parse(bumpRevision({
|
|
52
|
+
...transformed,
|
|
53
|
+
schemaVersion: CURRENT_SCHEMA_VERSION
|
|
54
|
+
}));
|
|
55
|
+
await atomicWriteJson(resolveDataPath(this.dataRoot, options.relativePath), next);
|
|
56
|
+
return next;
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
async withLocks(resourceKeys, task) {
|
|
60
|
+
return this.locks.withLocks(resourceKeys, task);
|
|
61
|
+
}
|
|
62
|
+
dataPath(...segments) {
|
|
63
|
+
return path.join(this.dataRoot, ...segments);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=storageService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storageService.js","sourceRoot":"","sources":["../../src/storage/storageService.ts"],"names":[],"mappings":"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"}
|