@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.
Files changed (138) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +230 -0
  3. package/THIRD_PARTY_NOTICES.md +26 -0
  4. package/assets/ocr/eng.traineddata +0 -0
  5. package/bin/waifus.mjs +36 -0
  6. package/dist/api/errors.d.ts +9 -0
  7. package/dist/api/errors.js +23 -0
  8. package/dist/api/errors.js.map +1 -0
  9. package/dist/api/server.d.ts +19 -0
  10. package/dist/api/server.js +1290 -0
  11. package/dist/api/server.js.map +1 -0
  12. package/dist/backend/logger.d.ts +20 -0
  13. package/dist/backend/logger.js +65 -0
  14. package/dist/backend/logger.js.map +1 -0
  15. package/dist/backend/migrations.d.ts +4 -0
  16. package/dist/backend/migrations.js +521 -0
  17. package/dist/backend/migrations.js.map +1 -0
  18. package/dist/backend/redaction.d.ts +1 -0
  19. package/dist/backend/redaction.js +22 -0
  20. package/dist/backend/redaction.js.map +1 -0
  21. package/dist/backend/runtime.d.ts +30 -0
  22. package/dist/backend/runtime.js +49 -0
  23. package/dist/backend/runtime.js.map +1 -0
  24. package/dist/backend/server.d.ts +18 -0
  25. package/dist/backend/server.js +581 -0
  26. package/dist/backend/server.js.map +1 -0
  27. package/dist/cli/commands.d.ts +35 -0
  28. package/dist/cli/commands.js +510 -0
  29. package/dist/cli/commands.js.map +1 -0
  30. package/dist/cli/main.d.ts +1 -0
  31. package/dist/cli/main.js +12 -0
  32. package/dist/cli/main.js.map +1 -0
  33. package/dist/cli/parser.d.ts +10 -0
  34. package/dist/cli/parser.js +64 -0
  35. package/dist/cli/parser.js.map +1 -0
  36. package/dist/config/appConfig.d.ts +3 -0
  37. package/dist/config/appConfig.js +27 -0
  38. package/dist/config/appConfig.js.map +1 -0
  39. package/dist/config/layout.d.ts +13 -0
  40. package/dist/config/layout.js +173 -0
  41. package/dist/config/layout.js.map +1 -0
  42. package/dist/config/paths.d.ts +5 -0
  43. package/dist/config/paths.js +20 -0
  44. package/dist/config/paths.js.map +1 -0
  45. package/dist/config/prebuiltWaifus.d.ts +3 -0
  46. package/dist/config/prebuiltWaifus.js +106 -0
  47. package/dist/config/prebuiltWaifus.js.map +1 -0
  48. package/dist/discord/client.d.ts +394 -0
  49. package/dist/discord/client.js +1196 -0
  50. package/dist/discord/client.js.map +1 -0
  51. package/dist/discord/contextBuilder.d.ts +15 -0
  52. package/dist/discord/contextBuilder.js +18 -0
  53. package/dist/discord/contextBuilder.js.map +1 -0
  54. package/dist/discord/intents.d.ts +5 -0
  55. package/dist/discord/intents.js +21 -0
  56. package/dist/discord/intents.js.map +1 -0
  57. package/dist/discord/memberCache.d.ts +12 -0
  58. package/dist/discord/memberCache.js +55 -0
  59. package/dist/discord/memberCache.js.map +1 -0
  60. package/dist/discord/normalization.d.ts +34 -0
  61. package/dist/discord/normalization.js +330 -0
  62. package/dist/discord/normalization.js.map +1 -0
  63. package/dist/discord/rateLimit.d.ts +9 -0
  64. package/dist/discord/rateLimit.js +11 -0
  65. package/dist/discord/rateLimit.js.map +1 -0
  66. package/dist/orchestration/context.d.ts +85 -0
  67. package/dist/orchestration/context.js +200 -0
  68. package/dist/orchestration/context.js.map +1 -0
  69. package/dist/orchestration/decisions.d.ts +52 -0
  70. package/dist/orchestration/decisions.js +61 -0
  71. package/dist/orchestration/decisions.js.map +1 -0
  72. package/dist/orchestration/messageSplit.d.ts +6 -0
  73. package/dist/orchestration/messageSplit.js +118 -0
  74. package/dist/orchestration/messageSplit.js.map +1 -0
  75. package/dist/orchestration/ocr.d.ts +43 -0
  76. package/dist/orchestration/ocr.js +504 -0
  77. package/dist/orchestration/ocr.js.map +1 -0
  78. package/dist/orchestration/ocrPackages.d.ts +24 -0
  79. package/dist/orchestration/ocrPackages.js +85 -0
  80. package/dist/orchestration/ocrPackages.js.map +1 -0
  81. package/dist/orchestration/promptBlocks.d.ts +28 -0
  82. package/dist/orchestration/promptBlocks.js +232 -0
  83. package/dist/orchestration/promptBlocks.js.map +1 -0
  84. package/dist/orchestration/replyQuote.d.ts +7 -0
  85. package/dist/orchestration/replyQuote.js +198 -0
  86. package/dist/orchestration/replyQuote.js.map +1 -0
  87. package/dist/orchestration/reviewer.d.ts +5 -0
  88. package/dist/orchestration/reviewer.js +5 -0
  89. package/dist/orchestration/reviewer.js.map +1 -0
  90. package/dist/orchestration/runtime.d.ts +152 -0
  91. package/dist/orchestration/runtime.js +3535 -0
  92. package/dist/orchestration/runtime.js.map +1 -0
  93. package/dist/orchestration/session.d.ts +30 -0
  94. package/dist/orchestration/session.js +41 -0
  95. package/dist/orchestration/session.js.map +1 -0
  96. package/dist/orchestration/stageManager.d.ts +42 -0
  97. package/dist/orchestration/stageManager.js +50 -0
  98. package/dist/orchestration/stageManager.js.map +1 -0
  99. package/dist/providers/catalog.d.ts +6 -0
  100. package/dist/providers/catalog.js +212 -0
  101. package/dist/providers/catalog.js.map +1 -0
  102. package/dist/providers/pipelines.d.ts +13 -0
  103. package/dist/providers/pipelines.js +2388 -0
  104. package/dist/providers/pipelines.js.map +1 -0
  105. package/dist/providers/types.d.ts +91 -0
  106. package/dist/providers/types.js +2 -0
  107. package/dist/providers/types.js.map +1 -0
  108. package/dist/shared/queryLog.d.ts +39 -0
  109. package/dist/shared/queryLog.js +80 -0
  110. package/dist/shared/queryLog.js.map +1 -0
  111. package/dist/shared/schemas/common.d.ts +21 -0
  112. package/dist/shared/schemas/common.js +27 -0
  113. package/dist/shared/schemas/common.js.map +1 -0
  114. package/dist/shared/schemas/config.d.ts +57 -0
  115. package/dist/shared/schemas/config.js +49 -0
  116. package/dist/shared/schemas/config.js.map +1 -0
  117. package/dist/shared/schemas/domain.d.ts +825 -0
  118. package/dist/shared/schemas/domain.js +444 -0
  119. package/dist/shared/schemas/domain.js.map +1 -0
  120. package/dist/storage/atomic.d.ts +6 -0
  121. package/dist/storage/atomic.js +60 -0
  122. package/dist/storage/atomic.js.map +1 -0
  123. package/dist/storage/errors.d.ts +12 -0
  124. package/dist/storage/errors.js +23 -0
  125. package/dist/storage/errors.js.map +1 -0
  126. package/dist/storage/locks.d.ts +9 -0
  127. package/dist/storage/locks.js +42 -0
  128. package/dist/storage/locks.js.map +1 -0
  129. package/dist/storage/storageService.d.ts +25 -0
  130. package/dist/storage/storageService.js +66 -0
  131. package/dist/storage/storageService.js.map +1 -0
  132. package/dist-frontend/assets/index-B2bB3_2r.js +39 -0
  133. package/dist-frontend/assets/index-B2bB3_2r.js.map +1 -0
  134. package/dist-frontend/assets/index-Dj1L8Px-.css +1 -0
  135. package/dist-frontend/index.html +14 -0
  136. package/docs/api.md +162 -0
  137. package/docs/old-orchestrator-prompt.md +123 -0
  138. 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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"}