@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/charx.d.cts CHANGED
@@ -39,7 +39,7 @@ declare const CCv3DataSchema: z.ZodObject<{
39
39
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
40
40
  content: z.ZodString;
41
41
  enabled: z.ZodDefault<z.ZodBoolean>;
42
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
42
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
43
43
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
44
44
  name: z.ZodOptional<z.ZodString>;
45
45
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -51,7 +51,8 @@ declare const CCv3DataSchema: z.ZodObject<{
51
51
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
52
52
  z.ZodEnum<[
53
53
  "before_char",
54
- "after_char"
54
+ "after_char",
55
+ "in_chat"
55
56
  ]>,
56
57
  z.ZodNumber,
57
58
  z.ZodLiteral<"">
@@ -82,7 +83,7 @@ declare const CCv3DataSchema: z.ZodObject<{
82
83
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
83
84
  content: z.ZodString;
84
85
  enabled: z.ZodDefault<z.ZodBoolean>;
85
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
86
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
86
87
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
87
88
  name: z.ZodOptional<z.ZodString>;
88
89
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -94,7 +95,8 @@ declare const CCv3DataSchema: z.ZodObject<{
94
95
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
95
96
  z.ZodEnum<[
96
97
  "before_char",
97
- "after_char"
98
+ "after_char",
99
+ "in_chat"
98
100
  ]>,
99
101
  z.ZodNumber,
100
102
  z.ZodLiteral<"">
@@ -125,7 +127,7 @@ declare const CCv3DataSchema: z.ZodObject<{
125
127
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
126
128
  content: z.ZodString;
127
129
  enabled: z.ZodDefault<z.ZodBoolean>;
128
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
130
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
129
131
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
130
132
  name: z.ZodOptional<z.ZodString>;
131
133
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -137,7 +139,8 @@ declare const CCv3DataSchema: z.ZodObject<{
137
139
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
138
140
  z.ZodEnum<[
139
141
  "before_char",
140
- "after_char"
142
+ "after_char",
143
+ "in_chat"
141
144
  ]>,
142
145
  z.ZodNumber,
143
146
  z.ZodLiteral<"">
@@ -170,7 +173,7 @@ declare const CCv3DataSchema: z.ZodObject<{
170
173
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
171
174
  content: z.ZodString;
172
175
  enabled: z.ZodDefault<z.ZodBoolean>;
173
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
176
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
174
177
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
175
178
  name: z.ZodOptional<z.ZodString>;
176
179
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -182,7 +185,8 @@ declare const CCv3DataSchema: z.ZodObject<{
182
185
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
183
186
  z.ZodEnum<[
184
187
  "before_char",
185
- "after_char"
188
+ "after_char",
189
+ "in_chat"
186
190
  ]>,
187
191
  z.ZodNumber,
188
192
  z.ZodLiteral<"">
@@ -221,7 +225,7 @@ declare const CCv3DataSchema: z.ZodObject<{
221
225
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
222
226
  content: z.ZodString;
223
227
  enabled: z.ZodDefault<z.ZodBoolean>;
224
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
228
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
225
229
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
226
230
  name: z.ZodOptional<z.ZodString>;
227
231
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -233,7 +237,8 @@ declare const CCv3DataSchema: z.ZodObject<{
233
237
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
234
238
  z.ZodEnum<[
235
239
  "before_char",
236
- "after_char"
240
+ "after_char",
241
+ "in_chat"
237
242
  ]>,
238
243
  z.ZodNumber,
239
244
  z.ZodLiteral<"">
@@ -320,7 +325,7 @@ declare const CCv3DataSchema: z.ZodObject<{
320
325
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
321
326
  content: z.ZodString;
322
327
  enabled: z.ZodDefault<z.ZodBoolean>;
323
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
328
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
324
329
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
325
330
  name: z.ZodOptional<z.ZodString>;
326
331
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -332,7 +337,8 @@ declare const CCv3DataSchema: z.ZodObject<{
332
337
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
333
338
  z.ZodEnum<[
334
339
  "before_char",
335
- "after_char"
340
+ "after_char",
341
+ "in_chat"
336
342
  ]>,
337
343
  z.ZodNumber,
338
344
  z.ZodLiteral<"">
@@ -395,7 +401,7 @@ declare const CCv3DataSchema: z.ZodObject<{
395
401
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
396
402
  content: z.ZodString;
397
403
  enabled: z.ZodDefault<z.ZodBoolean>;
398
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
404
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
399
405
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
400
406
  name: z.ZodOptional<z.ZodString>;
401
407
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -407,7 +413,8 @@ declare const CCv3DataSchema: z.ZodObject<{
407
413
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
408
414
  z.ZodEnum<[
409
415
  "before_char",
410
- "after_char"
416
+ "after_char",
417
+ "in_chat"
411
418
  ]>,
412
419
  z.ZodNumber,
413
420
  z.ZodLiteral<"">
@@ -480,7 +487,7 @@ declare const CCv3DataSchema: z.ZodObject<{
480
487
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
481
488
  content: z.ZodString;
482
489
  enabled: z.ZodDefault<z.ZodBoolean>;
483
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
490
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
484
491
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
485
492
  name: z.ZodOptional<z.ZodString>;
486
493
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -492,7 +499,8 @@ declare const CCv3DataSchema: z.ZodObject<{
492
499
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
493
500
  z.ZodEnum<[
494
501
  "before_char",
495
- "after_char"
502
+ "after_char",
503
+ "in_chat"
496
504
  ]>,
497
505
  z.ZodNumber,
498
506
  z.ZodLiteral<"">
@@ -559,7 +567,7 @@ declare const CCv3DataSchema: z.ZodObject<{
559
567
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
560
568
  content: z.ZodString;
561
569
  enabled: z.ZodDefault<z.ZodBoolean>;
562
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
570
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
563
571
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
564
572
  name: z.ZodOptional<z.ZodString>;
565
573
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -571,7 +579,8 @@ declare const CCv3DataSchema: z.ZodObject<{
571
579
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
572
580
  z.ZodEnum<[
573
581
  "before_char",
574
- "after_char"
582
+ "after_char",
583
+ "in_chat"
575
584
  ]>,
576
585
  z.ZodNumber,
577
586
  z.ZodLiteral<"">
package/dist/charx.d.ts CHANGED
@@ -39,7 +39,7 @@ declare const CCv3DataSchema: z.ZodObject<{
39
39
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
40
40
  content: z.ZodString;
41
41
  enabled: z.ZodDefault<z.ZodBoolean>;
42
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
42
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
43
43
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
44
44
  name: z.ZodOptional<z.ZodString>;
45
45
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -51,7 +51,8 @@ declare const CCv3DataSchema: z.ZodObject<{
51
51
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
52
52
  z.ZodEnum<[
53
53
  "before_char",
54
- "after_char"
54
+ "after_char",
55
+ "in_chat"
55
56
  ]>,
56
57
  z.ZodNumber,
57
58
  z.ZodLiteral<"">
@@ -82,7 +83,7 @@ declare const CCv3DataSchema: z.ZodObject<{
82
83
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
83
84
  content: z.ZodString;
84
85
  enabled: z.ZodDefault<z.ZodBoolean>;
85
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
86
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
86
87
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
87
88
  name: z.ZodOptional<z.ZodString>;
88
89
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -94,7 +95,8 @@ declare const CCv3DataSchema: z.ZodObject<{
94
95
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
95
96
  z.ZodEnum<[
96
97
  "before_char",
97
- "after_char"
98
+ "after_char",
99
+ "in_chat"
98
100
  ]>,
99
101
  z.ZodNumber,
100
102
  z.ZodLiteral<"">
@@ -125,7 +127,7 @@ declare const CCv3DataSchema: z.ZodObject<{
125
127
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
126
128
  content: z.ZodString;
127
129
  enabled: z.ZodDefault<z.ZodBoolean>;
128
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
130
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
129
131
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
130
132
  name: z.ZodOptional<z.ZodString>;
131
133
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -137,7 +139,8 @@ declare const CCv3DataSchema: z.ZodObject<{
137
139
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
138
140
  z.ZodEnum<[
139
141
  "before_char",
140
- "after_char"
142
+ "after_char",
143
+ "in_chat"
141
144
  ]>,
142
145
  z.ZodNumber,
143
146
  z.ZodLiteral<"">
@@ -170,7 +173,7 @@ declare const CCv3DataSchema: z.ZodObject<{
170
173
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
171
174
  content: z.ZodString;
172
175
  enabled: z.ZodDefault<z.ZodBoolean>;
173
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
176
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
174
177
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
175
178
  name: z.ZodOptional<z.ZodString>;
176
179
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -182,7 +185,8 @@ declare const CCv3DataSchema: z.ZodObject<{
182
185
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
183
186
  z.ZodEnum<[
184
187
  "before_char",
185
- "after_char"
188
+ "after_char",
189
+ "in_chat"
186
190
  ]>,
187
191
  z.ZodNumber,
188
192
  z.ZodLiteral<"">
@@ -221,7 +225,7 @@ declare const CCv3DataSchema: z.ZodObject<{
221
225
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
222
226
  content: z.ZodString;
223
227
  enabled: z.ZodDefault<z.ZodBoolean>;
224
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
228
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
225
229
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
226
230
  name: z.ZodOptional<z.ZodString>;
227
231
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -233,7 +237,8 @@ declare const CCv3DataSchema: z.ZodObject<{
233
237
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
234
238
  z.ZodEnum<[
235
239
  "before_char",
236
- "after_char"
240
+ "after_char",
241
+ "in_chat"
237
242
  ]>,
238
243
  z.ZodNumber,
239
244
  z.ZodLiteral<"">
@@ -320,7 +325,7 @@ declare const CCv3DataSchema: z.ZodObject<{
320
325
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
321
326
  content: z.ZodString;
322
327
  enabled: z.ZodDefault<z.ZodBoolean>;
323
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
328
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
324
329
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
325
330
  name: z.ZodOptional<z.ZodString>;
326
331
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -332,7 +337,8 @@ declare const CCv3DataSchema: z.ZodObject<{
332
337
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
333
338
  z.ZodEnum<[
334
339
  "before_char",
335
- "after_char"
340
+ "after_char",
341
+ "in_chat"
336
342
  ]>,
337
343
  z.ZodNumber,
338
344
  z.ZodLiteral<"">
@@ -395,7 +401,7 @@ declare const CCv3DataSchema: z.ZodObject<{
395
401
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
396
402
  content: z.ZodString;
397
403
  enabled: z.ZodDefault<z.ZodBoolean>;
398
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
404
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
399
405
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
400
406
  name: z.ZodOptional<z.ZodString>;
401
407
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -407,7 +413,8 @@ declare const CCv3DataSchema: z.ZodObject<{
407
413
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
408
414
  z.ZodEnum<[
409
415
  "before_char",
410
- "after_char"
416
+ "after_char",
417
+ "in_chat"
411
418
  ]>,
412
419
  z.ZodNumber,
413
420
  z.ZodLiteral<"">
@@ -480,7 +487,7 @@ declare const CCv3DataSchema: z.ZodObject<{
480
487
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
481
488
  content: z.ZodString;
482
489
  enabled: z.ZodDefault<z.ZodBoolean>;
483
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
490
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
484
491
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
485
492
  name: z.ZodOptional<z.ZodString>;
486
493
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -492,7 +499,8 @@ declare const CCv3DataSchema: z.ZodObject<{
492
499
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
493
500
  z.ZodEnum<[
494
501
  "before_char",
495
- "after_char"
502
+ "after_char",
503
+ "in_chat"
496
504
  ]>,
497
505
  z.ZodNumber,
498
506
  z.ZodLiteral<"">
@@ -559,7 +567,7 @@ declare const CCv3DataSchema: z.ZodObject<{
559
567
  keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
560
568
  content: z.ZodString;
561
569
  enabled: z.ZodDefault<z.ZodBoolean>;
562
- insertion_order: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
570
+ insertion_order: z.ZodEffects<z.ZodNumber, number, unknown>;
563
571
  case_sensitive: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
564
572
  name: z.ZodOptional<z.ZodString>;
565
573
  priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -571,7 +579,8 @@ declare const CCv3DataSchema: z.ZodObject<{
571
579
  position: z.ZodOptional<z.ZodNullable<z.ZodUnion<[
572
580
  z.ZodEnum<[
573
581
  "before_char",
574
- "after_char"
582
+ "after_char",
583
+ "in_chat"
575
584
  ]>,
576
585
  z.ZodNumber,
577
586
  z.ZodLiteral<"">
package/dist/charx.js CHANGED
@@ -457,7 +457,7 @@ var CCv2LorebookEntrySchema = z2.object({
457
457
  content: z2.string(),
458
458
  enabled: z2.boolean().default(true),
459
459
  // Default to enabled if missing
460
- insertion_order: z2.number().int().nullable().default(0),
460
+ insertion_order: z2.preprocess((v) => v ?? 0, z2.number().int()),
461
461
  // Optional fields - be lenient with nulls since wild data has them
462
462
  extensions: z2.record(z2.unknown()).optional(),
463
463
  case_sensitive: z2.boolean().nullable().optional(),
@@ -468,7 +468,7 @@ var CCv2LorebookEntrySchema = z2.object({
468
468
  selective: z2.boolean().nullable().optional(),
469
469
  secondary_keys: z2.array(z2.string()).nullable().optional(),
470
470
  constant: z2.boolean().nullable().optional(),
471
- position: z2.union([z2.enum(["before_char", "after_char"]), z2.number().int(), z2.literal("")]).nullable().optional()
471
+ position: z2.union([z2.enum(["before_char", "after_char", "in_chat"]), z2.number().int(), z2.literal("")]).nullable().optional()
472
472
  }).passthrough();
473
473
  var CCv2CharacterBookSchema = z2.object({
474
474
  name: z2.string().optional(),
@@ -511,7 +511,7 @@ var CCv3LorebookEntrySchema = z3.object({
511
511
  content: z3.string(),
512
512
  enabled: z3.boolean().default(true),
513
513
  // Default to enabled if missing
514
- insertion_order: z3.number().int().nullable().default(0),
514
+ insertion_order: z3.preprocess((v) => v ?? 0, z3.number().int()),
515
515
  // Optional fields - be lenient with nulls since wild data has them
516
516
  case_sensitive: z3.boolean().nullable().optional(),
517
517
  name: z3.string().optional(),
@@ -521,7 +521,7 @@ var CCv3LorebookEntrySchema = z3.object({
521
521
  selective: z3.boolean().nullable().optional(),
522
522
  secondary_keys: z3.array(z3.string()).nullable().optional(),
523
523
  constant: z3.boolean().nullable().optional(),
524
- position: z3.union([z3.enum(["before_char", "after_char"]), z3.number().int(), z3.literal("")]).nullable().optional(),
524
+ position: z3.union([z3.enum(["before_char", "after_char", "in_chat"]), z3.number().int(), z3.literal("")]).nullable().optional(),
525
525
  extensions: z3.record(z3.unknown()).optional(),
526
526
  // v3 specific - also lenient with types since SillyTavern uses numbers for enums
527
527
  automation_id: z3.string().optional(),
@@ -836,36 +836,6 @@ var SAFE_ASSET_TYPES = /* @__PURE__ */ new Set([
836
836
  "data",
837
837
  "unknown"
838
838
  ]);
839
- var SAFE_EXTENSIONS = /* @__PURE__ */ new Set([
840
- // Images
841
- "png",
842
- "jpg",
843
- "jpeg",
844
- "webp",
845
- "gif",
846
- "avif",
847
- "svg",
848
- "bmp",
849
- "ico",
850
- // Audio
851
- "mp3",
852
- "wav",
853
- "ogg",
854
- "flac",
855
- "m4a",
856
- "aac",
857
- "opus",
858
- // Video
859
- "mp4",
860
- "webm",
861
- "avi",
862
- "mov",
863
- "mkv",
864
- // Data
865
- "json",
866
- "txt",
867
- "bin"
868
- ]);
869
839
  function getCharxCategory(mimetype) {
870
840
  if (mimetype.startsWith("image/")) return "images";
871
841
  if (mimetype.startsWith("audio/")) return "audio";
@@ -881,11 +851,20 @@ function sanitizeAssetType(type) {
881
851
  return sanitized || "custom";
882
852
  }
883
853
  function sanitizeExtension(ext) {
884
- const normalized = ext.replace(/^\./, "").toLowerCase().replace(/[^a-z0-9]/g, "");
885
- if (SAFE_EXTENSIONS.has(normalized)) {
886
- return normalized;
854
+ const normalized = ext.trim().replace(/^\./, "").toLowerCase();
855
+ if (!normalized) {
856
+ throw new Error("Invalid asset extension: empty extension");
857
+ }
858
+ if (normalized.length > 64) {
859
+ throw new Error(`Invalid asset extension: too long (${normalized.length} chars)`);
860
+ }
861
+ if (normalized.includes("/") || normalized.includes("\\") || normalized.includes("\0")) {
862
+ throw new Error("Invalid asset extension: path separators are not allowed");
863
+ }
864
+ if (!/^[a-z0-9][a-z0-9._-]*$/.test(normalized)) {
865
+ throw new Error(`Invalid asset extension: "${ext}"`);
887
866
  }
888
- return "bin";
867
+ return normalized;
889
868
  }
890
869
  function sanitizeName(name, ext) {
891
870
  let safeName = name;