@character-foundry/character-foundry 0.4.1 → 0.4.2-dev.1765997746

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 (57) hide show
  1. package/dist/charx.cjs +17 -38
  2. package/dist/charx.cjs.map +1 -1
  3. package/dist/charx.d.cts +27 -18
  4. package/dist/charx.d.ts +27 -18
  5. package/dist/charx.js +17 -38
  6. package/dist/charx.js.map +1 -1
  7. package/dist/exporter.cjs +36 -40
  8. package/dist/exporter.cjs.map +1 -1
  9. package/dist/exporter.d.cts +27 -18
  10. package/dist/exporter.d.ts +27 -18
  11. package/dist/exporter.js +36 -40
  12. package/dist/exporter.js.map +1 -1
  13. package/dist/federation.cjs +104 -36
  14. package/dist/federation.cjs.map +1 -1
  15. package/dist/federation.d.cts +62 -18
  16. package/dist/federation.d.ts +62 -18
  17. package/dist/federation.js +104 -36
  18. package/dist/federation.js.map +1 -1
  19. package/dist/index.cjs +36 -40
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.d.cts +63 -42
  22. package/dist/index.d.ts +63 -42
  23. package/dist/index.js +36 -40
  24. package/dist/index.js.map +1 -1
  25. package/dist/loader.cjs +103 -17
  26. package/dist/loader.cjs.map +1 -1
  27. package/dist/loader.d.cts +56 -28
  28. package/dist/loader.d.ts +56 -28
  29. package/dist/loader.js +103 -17
  30. package/dist/loader.js.map +1 -1
  31. package/dist/lorebook.d.cts +51 -34
  32. package/dist/lorebook.d.ts +51 -34
  33. package/dist/normalizer.cjs +4 -4
  34. package/dist/normalizer.cjs.map +1 -1
  35. package/dist/normalizer.d.cts +90 -60
  36. package/dist/normalizer.d.ts +90 -60
  37. package/dist/normalizer.js +4 -4
  38. package/dist/normalizer.js.map +1 -1
  39. package/dist/png.cjs +4 -4
  40. package/dist/png.cjs.map +1 -1
  41. package/dist/png.d.cts +48 -32
  42. package/dist/png.d.ts +48 -32
  43. package/dist/png.js +4 -4
  44. package/dist/png.js.map +1 -1
  45. package/dist/schemas.cjs +9 -9
  46. package/dist/schemas.cjs.map +1 -1
  47. package/dist/schemas.d.cts +144 -96
  48. package/dist/schemas.d.ts +144 -96
  49. package/dist/schemas.js +9 -9
  50. package/dist/schemas.js.map +1 -1
  51. package/dist/voxta.cjs +23 -6
  52. package/dist/voxta.cjs.map +1 -1
  53. package/dist/voxta.d.cts +42 -28
  54. package/dist/voxta.d.ts +42 -28
  55. package/dist/voxta.js +23 -6
  56. package/dist/voxta.js.map +1 -1
  57. package/package.json +6 -6
package/dist/loader.d.cts CHANGED
@@ -21,7 +21,7 @@ declare const CCv3CharacterBookSchema: z.ZodObject<{
21
21
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
22
22
  content: z.ZodString;
23
23
  enabled: z.ZodDefault<z.ZodBoolean>;
24
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
24
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
25
25
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
26
26
  name: z.ZodOptional<z.ZodString>;
27
27
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -33,7 +33,8 @@ declare const CCv3CharacterBookSchema: z.ZodObject<{
33
33
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
34
34
  z.ZodEnum<[
35
35
  "before_char",
36
- "after_char"
36
+ "after_char",
37
+ "in_chat"
37
38
  ]>,
38
39
  z.ZodNumber,
39
40
  z.ZodLiteral<"">
@@ -64,7 +65,7 @@ declare const CCv3CharacterBookSchema: z.ZodObject<{
64
65
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
65
66
  content: z.ZodString;
66
67
  enabled: z.ZodDefault<z.ZodBoolean>;
67
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
68
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
68
69
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
69
70
  name: z.ZodOptional<z.ZodString>;
70
71
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -76,7 +77,8 @@ declare const CCv3CharacterBookSchema: z.ZodObject<{
76
77
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
77
78
  z.ZodEnum<[
78
79
  "before_char",
79
- "after_char"
80
+ "after_char",
81
+ "in_chat"
80
82
  ]>,
81
83
  z.ZodNumber,
82
84
  z.ZodLiteral<"">
@@ -107,7 +109,7 @@ declare const CCv3CharacterBookSchema: z.ZodObject<{
107
109
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
108
110
  content: z.ZodString;
109
111
  enabled: z.ZodDefault<z.ZodBoolean>;
110
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
112
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
111
113
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
112
114
  name: z.ZodOptional<z.ZodString>;
113
115
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -119,7 +121,8 @@ declare const CCv3CharacterBookSchema: z.ZodObject<{
119
121
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
120
122
  z.ZodEnum<[
121
123
  "before_char",
122
- "after_char"
124
+ "after_char",
125
+ "in_chat"
123
126
  ]>,
124
127
  z.ZodNumber,
125
128
  z.ZodLiteral<"">
@@ -152,7 +155,7 @@ declare const CCv3CharacterBookSchema: z.ZodObject<{
152
155
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
153
156
  content: z.ZodString;
154
157
  enabled: z.ZodDefault<z.ZodBoolean>;
155
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
158
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
156
159
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
157
160
  name: z.ZodOptional<z.ZodString>;
158
161
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -164,7 +167,8 @@ declare const CCv3CharacterBookSchema: z.ZodObject<{
164
167
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
165
168
  z.ZodEnum<[
166
169
  "before_char",
167
- "after_char"
170
+ "after_char",
171
+ "in_chat"
168
172
  ]>,
169
173
  z.ZodNumber,
170
174
  z.ZodLiteral<"">
@@ -203,7 +207,7 @@ declare const CCv3CharacterBookSchema: z.ZodObject<{
203
207
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
204
208
  content: z.ZodString;
205
209
  enabled: z.ZodDefault<z.ZodBoolean>;
206
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
210
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
207
211
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
208
212
  name: z.ZodOptional<z.ZodString>;
209
213
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -215,7 +219,8 @@ declare const CCv3CharacterBookSchema: z.ZodObject<{
215
219
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
216
220
  z.ZodEnum<[
217
221
  "before_char",
218
- "after_char"
222
+ "after_char",
223
+ "in_chat"
219
224
  ]>,
220
225
  z.ZodNumber,
221
226
  z.ZodLiteral<"">
@@ -279,7 +284,7 @@ declare const CCv3DataSchema: z.ZodObject<{
279
284
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
280
285
  content: z.ZodString;
281
286
  enabled: z.ZodDefault<z.ZodBoolean>;
282
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
287
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
283
288
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
284
289
  name: z.ZodOptional<z.ZodString>;
285
290
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -291,7 +296,8 @@ declare const CCv3DataSchema: z.ZodObject<{
291
296
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
292
297
  z.ZodEnum<[
293
298
  "before_char",
294
- "after_char"
299
+ "after_char",
300
+ "in_chat"
295
301
  ]>,
296
302
  z.ZodNumber,
297
303
  z.ZodLiteral<"">
@@ -322,7 +328,7 @@ declare const CCv3DataSchema: z.ZodObject<{
322
328
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
323
329
  content: z.ZodString;
324
330
  enabled: z.ZodDefault<z.ZodBoolean>;
325
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
331
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
326
332
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
327
333
  name: z.ZodOptional<z.ZodString>;
328
334
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -334,7 +340,8 @@ declare const CCv3DataSchema: z.ZodObject<{
334
340
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
335
341
  z.ZodEnum<[
336
342
  "before_char",
337
- "after_char"
343
+ "after_char",
344
+ "in_chat"
338
345
  ]>,
339
346
  z.ZodNumber,
340
347
  z.ZodLiteral<"">
@@ -365,7 +372,7 @@ declare const CCv3DataSchema: z.ZodObject<{
365
372
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
366
373
  content: z.ZodString;
367
374
  enabled: z.ZodDefault<z.ZodBoolean>;
368
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
375
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
369
376
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
370
377
  name: z.ZodOptional<z.ZodString>;
371
378
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -377,7 +384,8 @@ declare const CCv3DataSchema: z.ZodObject<{
377
384
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
378
385
  z.ZodEnum<[
379
386
  "before_char",
380
- "after_char"
387
+ "after_char",
388
+ "in_chat"
381
389
  ]>,
382
390
  z.ZodNumber,
383
391
  z.ZodLiteral<"">
@@ -410,7 +418,7 @@ declare const CCv3DataSchema: z.ZodObject<{
410
418
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
411
419
  content: z.ZodString;
412
420
  enabled: z.ZodDefault<z.ZodBoolean>;
413
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
421
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
414
422
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
415
423
  name: z.ZodOptional<z.ZodString>;
416
424
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -422,7 +430,8 @@ declare const CCv3DataSchema: z.ZodObject<{
422
430
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
423
431
  z.ZodEnum<[
424
432
  "before_char",
425
- "after_char"
433
+ "after_char",
434
+ "in_chat"
426
435
  ]>,
427
436
  z.ZodNumber,
428
437
  z.ZodLiteral<"">
@@ -461,7 +470,7 @@ declare const CCv3DataSchema: z.ZodObject<{
461
470
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
462
471
  content: z.ZodString;
463
472
  enabled: z.ZodDefault<z.ZodBoolean>;
464
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
473
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
465
474
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
466
475
  name: z.ZodOptional<z.ZodString>;
467
476
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -473,7 +482,8 @@ declare const CCv3DataSchema: z.ZodObject<{
473
482
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
474
483
  z.ZodEnum<[
475
484
  "before_char",
476
- "after_char"
485
+ "after_char",
486
+ "in_chat"
477
487
  ]>,
478
488
  z.ZodNumber,
479
489
  z.ZodLiteral<"">
@@ -560,7 +570,7 @@ declare const CCv3DataSchema: z.ZodObject<{
560
570
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
561
571
  content: z.ZodString;
562
572
  enabled: z.ZodDefault<z.ZodBoolean>;
563
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
573
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
564
574
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
565
575
  name: z.ZodOptional<z.ZodString>;
566
576
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -572,7 +582,8 @@ declare const CCv3DataSchema: z.ZodObject<{
572
582
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
573
583
  z.ZodEnum<[
574
584
  "before_char",
575
- "after_char"
585
+ "after_char",
586
+ "in_chat"
576
587
  ]>,
577
588
  z.ZodNumber,
578
589
  z.ZodLiteral<"">
@@ -635,7 +646,7 @@ declare const CCv3DataSchema: z.ZodObject<{
635
646
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
636
647
  content: z.ZodString;
637
648
  enabled: z.ZodDefault<z.ZodBoolean>;
638
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
649
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
639
650
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
640
651
  name: z.ZodOptional<z.ZodString>;
641
652
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -647,7 +658,8 @@ declare const CCv3DataSchema: z.ZodObject<{
647
658
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
648
659
  z.ZodEnum<[
649
660
  "before_char",
650
- "after_char"
661
+ "after_char",
662
+ "in_chat"
651
663
  ]>,
652
664
  z.ZodNumber,
653
665
  z.ZodLiteral<"">
@@ -720,7 +732,7 @@ declare const CCv3DataSchema: z.ZodObject<{
720
732
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
721
733
  content: z.ZodString;
722
734
  enabled: z.ZodDefault<z.ZodBoolean>;
723
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
735
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
724
736
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
725
737
  name: z.ZodOptional<z.ZodString>;
726
738
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -732,7 +744,8 @@ declare const CCv3DataSchema: z.ZodObject<{
732
744
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
733
745
  z.ZodEnum<[
734
746
  "before_char",
735
- "after_char"
747
+ "after_char",
748
+ "in_chat"
736
749
  ]>,
737
750
  z.ZodNumber,
738
751
  z.ZodLiteral<"">
@@ -799,7 +812,7 @@ declare const CCv3DataSchema: z.ZodObject<{
799
812
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
800
813
  content: z.ZodString;
801
814
  enabled: z.ZodDefault<z.ZodBoolean>;
802
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
815
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
803
816
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
804
817
  name: z.ZodOptional<z.ZodString>;
805
818
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -811,7 +824,8 @@ declare const CCv3DataSchema: z.ZodObject<{
811
824
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
812
825
  z.ZodEnum<[
813
826
  "before_char",
814
- "after_char"
827
+ "after_char",
828
+ "in_chat"
815
829
  ]>,
816
830
  z.ZodNumber,
817
831
  z.ZodLiteral<"">
@@ -1180,6 +1194,13 @@ export interface AuthoritativeMetadata {
1180
1194
  tokens: TokenCounts;
1181
1195
  /** Content hash computed server-side */
1182
1196
  contentHash: string;
1197
+ /**
1198
+ * Content hash v2 computed server-side.
1199
+ *
1200
+ * @remarks
1201
+ * v1 is preserved for backwards compatibility. Prefer v2 for new storage/deduplication.
1202
+ */
1203
+ contentHashV2?: string;
1183
1204
  /** Whether the card has a lorebook */
1184
1205
  hasLorebook: boolean;
1185
1206
  /** Number of lorebook entries */
@@ -1279,6 +1300,13 @@ export declare function validateClientMetadata(clientMetadata: ClientMetadata, p
1279
1300
  * @returns SHA-256 hash of canonical content
1280
1301
  */
1281
1302
  export declare function computeContentHash(card: CCv3Data): Promise<string>;
1303
+ /**
1304
+ * Compute content hash v2 for a card (standalone utility)
1305
+ *
1306
+ * @param card - CCv3 card data
1307
+ * @returns SHA-256 hash of canonical content v2
1308
+ */
1309
+ export declare function computeContentHashV2(card: CCv3Data): Promise<string>;
1282
1310
  /**
1283
1311
  * Options for synchronous metadata validation
1284
1312
  */
package/dist/loader.d.ts CHANGED
@@ -21,7 +21,7 @@ declare const CCv3CharacterBookSchema: z.ZodObject<{
21
21
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
22
22
  content: z.ZodString;
23
23
  enabled: z.ZodDefault<z.ZodBoolean>;
24
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
24
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
25
25
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
26
26
  name: z.ZodOptional<z.ZodString>;
27
27
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -33,7 +33,8 @@ declare const CCv3CharacterBookSchema: z.ZodObject<{
33
33
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
34
34
  z.ZodEnum<[
35
35
  "before_char",
36
- "after_char"
36
+ "after_char",
37
+ "in_chat"
37
38
  ]>,
38
39
  z.ZodNumber,
39
40
  z.ZodLiteral<"">
@@ -64,7 +65,7 @@ declare const CCv3CharacterBookSchema: z.ZodObject<{
64
65
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
65
66
  content: z.ZodString;
66
67
  enabled: z.ZodDefault<z.ZodBoolean>;
67
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
68
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
68
69
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
69
70
  name: z.ZodOptional<z.ZodString>;
70
71
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -76,7 +77,8 @@ declare const CCv3CharacterBookSchema: z.ZodObject<{
76
77
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
77
78
  z.ZodEnum<[
78
79
  "before_char",
79
- "after_char"
80
+ "after_char",
81
+ "in_chat"
80
82
  ]>,
81
83
  z.ZodNumber,
82
84
  z.ZodLiteral<"">
@@ -107,7 +109,7 @@ declare const CCv3CharacterBookSchema: z.ZodObject<{
107
109
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
108
110
  content: z.ZodString;
109
111
  enabled: z.ZodDefault<z.ZodBoolean>;
110
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
112
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
111
113
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
112
114
  name: z.ZodOptional<z.ZodString>;
113
115
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -119,7 +121,8 @@ declare const CCv3CharacterBookSchema: z.ZodObject<{
119
121
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
120
122
  z.ZodEnum<[
121
123
  "before_char",
122
- "after_char"
124
+ "after_char",
125
+ "in_chat"
123
126
  ]>,
124
127
  z.ZodNumber,
125
128
  z.ZodLiteral<"">
@@ -152,7 +155,7 @@ declare const CCv3CharacterBookSchema: z.ZodObject<{
152
155
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
153
156
  content: z.ZodString;
154
157
  enabled: z.ZodDefault<z.ZodBoolean>;
155
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
158
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
156
159
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
157
160
  name: z.ZodOptional<z.ZodString>;
158
161
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -164,7 +167,8 @@ declare const CCv3CharacterBookSchema: z.ZodObject<{
164
167
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
165
168
  z.ZodEnum<[
166
169
  "before_char",
167
- "after_char"
170
+ "after_char",
171
+ "in_chat"
168
172
  ]>,
169
173
  z.ZodNumber,
170
174
  z.ZodLiteral<"">
@@ -203,7 +207,7 @@ declare const CCv3CharacterBookSchema: z.ZodObject<{
203
207
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
204
208
  content: z.ZodString;
205
209
  enabled: z.ZodDefault<z.ZodBoolean>;
206
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
210
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
207
211
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
208
212
  name: z.ZodOptional<z.ZodString>;
209
213
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -215,7 +219,8 @@ declare const CCv3CharacterBookSchema: z.ZodObject<{
215
219
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
216
220
  z.ZodEnum<[
217
221
  "before_char",
218
- "after_char"
222
+ "after_char",
223
+ "in_chat"
219
224
  ]>,
220
225
  z.ZodNumber,
221
226
  z.ZodLiteral<"">
@@ -279,7 +284,7 @@ declare const CCv3DataSchema: z.ZodObject<{
279
284
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
280
285
  content: z.ZodString;
281
286
  enabled: z.ZodDefault<z.ZodBoolean>;
282
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
287
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
283
288
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
284
289
  name: z.ZodOptional<z.ZodString>;
285
290
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -291,7 +296,8 @@ declare const CCv3DataSchema: z.ZodObject<{
291
296
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
292
297
  z.ZodEnum<[
293
298
  "before_char",
294
- "after_char"
299
+ "after_char",
300
+ "in_chat"
295
301
  ]>,
296
302
  z.ZodNumber,
297
303
  z.ZodLiteral<"">
@@ -322,7 +328,7 @@ declare const CCv3DataSchema: z.ZodObject<{
322
328
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
323
329
  content: z.ZodString;
324
330
  enabled: z.ZodDefault<z.ZodBoolean>;
325
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
331
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
326
332
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
327
333
  name: z.ZodOptional<z.ZodString>;
328
334
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -334,7 +340,8 @@ declare const CCv3DataSchema: z.ZodObject<{
334
340
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
335
341
  z.ZodEnum<[
336
342
  "before_char",
337
- "after_char"
343
+ "after_char",
344
+ "in_chat"
338
345
  ]>,
339
346
  z.ZodNumber,
340
347
  z.ZodLiteral<"">
@@ -365,7 +372,7 @@ declare const CCv3DataSchema: z.ZodObject<{
365
372
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
366
373
  content: z.ZodString;
367
374
  enabled: z.ZodDefault<z.ZodBoolean>;
368
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
375
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
369
376
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
370
377
  name: z.ZodOptional<z.ZodString>;
371
378
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -377,7 +384,8 @@ declare const CCv3DataSchema: z.ZodObject<{
377
384
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
378
385
  z.ZodEnum<[
379
386
  "before_char",
380
- "after_char"
387
+ "after_char",
388
+ "in_chat"
381
389
  ]>,
382
390
  z.ZodNumber,
383
391
  z.ZodLiteral<"">
@@ -410,7 +418,7 @@ declare const CCv3DataSchema: z.ZodObject<{
410
418
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
411
419
  content: z.ZodString;
412
420
  enabled: z.ZodDefault<z.ZodBoolean>;
413
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
421
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
414
422
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
415
423
  name: z.ZodOptional<z.ZodString>;
416
424
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -422,7 +430,8 @@ declare const CCv3DataSchema: z.ZodObject<{
422
430
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
423
431
  z.ZodEnum<[
424
432
  "before_char",
425
- "after_char"
433
+ "after_char",
434
+ "in_chat"
426
435
  ]>,
427
436
  z.ZodNumber,
428
437
  z.ZodLiteral<"">
@@ -461,7 +470,7 @@ declare const CCv3DataSchema: z.ZodObject<{
461
470
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
462
471
  content: z.ZodString;
463
472
  enabled: z.ZodDefault<z.ZodBoolean>;
464
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
473
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
465
474
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
466
475
  name: z.ZodOptional<z.ZodString>;
467
476
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -473,7 +482,8 @@ declare const CCv3DataSchema: z.ZodObject<{
473
482
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
474
483
  z.ZodEnum<[
475
484
  "before_char",
476
- "after_char"
485
+ "after_char",
486
+ "in_chat"
477
487
  ]>,
478
488
  z.ZodNumber,
479
489
  z.ZodLiteral<"">
@@ -560,7 +570,7 @@ declare const CCv3DataSchema: z.ZodObject<{
560
570
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
561
571
  content: z.ZodString;
562
572
  enabled: z.ZodDefault<z.ZodBoolean>;
563
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
573
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
564
574
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
565
575
  name: z.ZodOptional<z.ZodString>;
566
576
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -572,7 +582,8 @@ declare const CCv3DataSchema: z.ZodObject<{
572
582
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
573
583
  z.ZodEnum<[
574
584
  "before_char",
575
- "after_char"
585
+ "after_char",
586
+ "in_chat"
576
587
  ]>,
577
588
  z.ZodNumber,
578
589
  z.ZodLiteral<"">
@@ -635,7 +646,7 @@ declare const CCv3DataSchema: z.ZodObject<{
635
646
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
636
647
  content: z.ZodString;
637
648
  enabled: z.ZodDefault<z.ZodBoolean>;
638
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
649
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
639
650
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
640
651
  name: z.ZodOptional<z.ZodString>;
641
652
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -647,7 +658,8 @@ declare const CCv3DataSchema: z.ZodObject<{
647
658
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
648
659
  z.ZodEnum<[
649
660
  "before_char",
650
- "after_char"
661
+ "after_char",
662
+ "in_chat"
651
663
  ]>,
652
664
  z.ZodNumber,
653
665
  z.ZodLiteral<"">
@@ -720,7 +732,7 @@ declare const CCv3DataSchema: z.ZodObject<{
720
732
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
721
733
  content: z.ZodString;
722
734
  enabled: z.ZodDefault<z.ZodBoolean>;
723
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
735
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
724
736
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
725
737
  name: z.ZodOptional<z.ZodString>;
726
738
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -732,7 +744,8 @@ declare const CCv3DataSchema: z.ZodObject<{
732
744
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
733
745
  z.ZodEnum<[
734
746
  "before_char",
735
- "after_char"
747
+ "after_char",
748
+ "in_chat"
736
749
  ]>,
737
750
  z.ZodNumber,
738
751
  z.ZodLiteral<"">
@@ -799,7 +812,7 @@ declare const CCv3DataSchema: z.ZodObject<{
799
812
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
800
813
  content: z.ZodString;
801
814
  enabled: z.ZodDefault<z.ZodBoolean>;
802
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
815
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
803
816
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
804
817
  name: z.ZodOptional<z.ZodString>;
805
818
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -811,7 +824,8 @@ declare const CCv3DataSchema: z.ZodObject<{
811
824
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
812
825
  z.ZodEnum<[
813
826
  "before_char",
814
- "after_char"
827
+ "after_char",
828
+ "in_chat"
815
829
  ]>,
816
830
  z.ZodNumber,
817
831
  z.ZodLiteral<"">
@@ -1180,6 +1194,13 @@ export interface AuthoritativeMetadata {
1180
1194
  tokens: TokenCounts;
1181
1195
  /** Content hash computed server-side */
1182
1196
  contentHash: string;
1197
+ /**
1198
+ * Content hash v2 computed server-side.
1199
+ *
1200
+ * @remarks
1201
+ * v1 is preserved for backwards compatibility. Prefer v2 for new storage/deduplication.
1202
+ */
1203
+ contentHashV2?: string;
1183
1204
  /** Whether the card has a lorebook */
1184
1205
  hasLorebook: boolean;
1185
1206
  /** Number of lorebook entries */
@@ -1279,6 +1300,13 @@ export declare function validateClientMetadata(clientMetadata: ClientMetadata, p
1279
1300
  * @returns SHA-256 hash of canonical content
1280
1301
  */
1281
1302
  export declare function computeContentHash(card: CCv3Data): Promise<string>;
1303
+ /**
1304
+ * Compute content hash v2 for a card (standalone utility)
1305
+ *
1306
+ * @param card - CCv3 card data
1307
+ * @returns SHA-256 hash of canonical content v2
1308
+ */
1309
+ export declare function computeContentHashV2(card: CCv3Data): Promise<string>;
1282
1310
  /**
1283
1311
  * Options for synchronous metadata validation
1284
1312
  */