@character-foundry/character-foundry 0.1.8 → 0.1.9-dev.1765932375

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 (71) hide show
  1. package/dist/app-framework.cjs +291 -95
  2. package/dist/app-framework.cjs.map +1 -1
  3. package/dist/app-framework.d.cts +1 -1
  4. package/dist/app-framework.d.ts +1 -1
  5. package/dist/app-framework.js +292 -96
  6. package/dist/app-framework.js.map +1 -1
  7. package/dist/charx.cjs +44 -23
  8. package/dist/charx.cjs.map +1 -1
  9. package/dist/charx.d.cts +368 -207
  10. package/dist/charx.d.ts +368 -207
  11. package/dist/charx.js +44 -23
  12. package/dist/charx.js.map +1 -1
  13. package/dist/exporter.cjs +27 -22
  14. package/dist/exporter.cjs.map +1 -1
  15. package/dist/exporter.d.cts +368 -207
  16. package/dist/exporter.d.ts +368 -207
  17. package/dist/exporter.js +27 -22
  18. package/dist/exporter.js.map +1 -1
  19. package/dist/federation.cjs +16 -4
  20. package/dist/federation.cjs.map +1 -1
  21. package/dist/federation.d.cts +368 -207
  22. package/dist/federation.d.ts +368 -207
  23. package/dist/federation.js +16 -4
  24. package/dist/federation.js.map +1 -1
  25. package/dist/image-utils.cjs.map +1 -1
  26. package/dist/image-utils.d.cts +12 -0
  27. package/dist/image-utils.d.ts +12 -0
  28. package/dist/image-utils.js.map +1 -1
  29. package/dist/index.cjs +102 -54
  30. package/dist/index.cjs.map +1 -1
  31. package/dist/index.d.cts +708 -423
  32. package/dist/index.d.ts +708 -423
  33. package/dist/index.js +102 -54
  34. package/dist/index.js.map +1 -1
  35. package/dist/loader.cjs +102 -54
  36. package/dist/loader.cjs.map +1 -1
  37. package/dist/loader.d.cts +564 -318
  38. package/dist/loader.d.ts +564 -318
  39. package/dist/loader.js +102 -54
  40. package/dist/loader.js.map +1 -1
  41. package/dist/lorebook.cjs +5 -5
  42. package/dist/lorebook.cjs.map +1 -1
  43. package/dist/lorebook.d.cts +674 -381
  44. package/dist/lorebook.d.ts +674 -381
  45. package/dist/lorebook.js +5 -5
  46. package/dist/lorebook.js.map +1 -1
  47. package/dist/normalizer.cjs +33 -23
  48. package/dist/normalizer.cjs.map +1 -1
  49. package/dist/normalizer.d.cts +896 -560
  50. package/dist/normalizer.d.ts +896 -560
  51. package/dist/normalizer.js +33 -23
  52. package/dist/normalizer.js.map +1 -1
  53. package/dist/png.cjs +27 -22
  54. package/dist/png.cjs.map +1 -1
  55. package/dist/png.d.cts +512 -312
  56. package/dist/png.d.ts +512 -312
  57. package/dist/png.js +27 -22
  58. package/dist/png.js.map +1 -1
  59. package/dist/schemas.cjs +27 -22
  60. package/dist/schemas.cjs.map +1 -1
  61. package/dist/schemas.d.cts +1444 -896
  62. package/dist/schemas.d.ts +1444 -896
  63. package/dist/schemas.js +27 -22
  64. package/dist/schemas.js.map +1 -1
  65. package/dist/voxta.cjs +44 -23
  66. package/dist/voxta.cjs.map +1 -1
  67. package/dist/voxta.d.cts +564 -318
  68. package/dist/voxta.d.ts +564 -318
  69. package/dist/voxta.js +44 -23
  70. package/dist/voxta.js.map +1 -1
  71. package/package.json +6 -6
package/dist/charx.cjs CHANGED
@@ -356,7 +356,23 @@ function streamingUnzipSync(data, limits = DEFAULT_ZIP_LIMITS) {
356
356
  if (unsafePathHandling === "warn" && limits.onUnsafePath) {
357
357
  limits.onUnsafePath(file.name, reason);
358
358
  }
359
- file.ondata = () => {
359
+ file.ondata = (err, chunk, _final) => {
360
+ if (error) return;
361
+ if (err) {
362
+ error = err;
363
+ return;
364
+ }
365
+ if (chunk && chunk.length > 0) {
366
+ totalBytes += chunk.length;
367
+ if (totalBytes > limits.maxTotalSize) {
368
+ error = new ZipPreflightError(
369
+ `Total actual size ${totalBytes} exceeds limit ${limits.maxTotalSize}`,
370
+ totalBytes,
371
+ limits.maxTotalSize
372
+ );
373
+ file.terminate();
374
+ }
375
+ }
360
376
  };
361
377
  file.start();
362
378
  return;
@@ -468,22 +484,24 @@ var ExtractedAssetSchema = import_zod.z.object({
468
484
  mimeType: import_zod.z.string()
469
485
  });
470
486
  var CCv2LorebookEntrySchema = import_zod2.z.object({
471
- keys: import_zod2.z.array(import_zod2.z.string()),
487
+ keys: import_zod2.z.array(import_zod2.z.string()).optional(),
488
+ // Some tools use 'key' instead
472
489
  content: import_zod2.z.string(),
473
- enabled: import_zod2.z.boolean(),
474
- insertion_order: import_zod2.z.number().int(),
475
- // Optional fields
490
+ enabled: import_zod2.z.boolean().default(true),
491
+ // Default to enabled if missing
492
+ insertion_order: import_zod2.z.number().int().default(0),
493
+ // Optional fields - be lenient with nulls since wild data has them
476
494
  extensions: import_zod2.z.record(import_zod2.z.unknown()).optional(),
477
- case_sensitive: import_zod2.z.boolean().optional(),
495
+ case_sensitive: import_zod2.z.boolean().nullable().optional(),
478
496
  name: import_zod2.z.string().optional(),
479
497
  priority: import_zod2.z.number().int().optional(),
480
498
  id: import_zod2.z.number().int().optional(),
481
499
  comment: import_zod2.z.string().optional(),
482
- selective: import_zod2.z.boolean().optional(),
500
+ selective: import_zod2.z.boolean().nullable().optional(),
483
501
  secondary_keys: import_zod2.z.array(import_zod2.z.string()).optional(),
484
- constant: import_zod2.z.boolean().optional(),
485
- position: import_zod2.z.enum(["before_char", "after_char"]).optional()
486
- });
502
+ constant: import_zod2.z.boolean().nullable().optional(),
503
+ position: import_zod2.z.union([import_zod2.z.enum(["before_char", "after_char"]), import_zod2.z.number().int()]).nullable().optional()
504
+ }).passthrough();
487
505
  var CCv2CharacterBookSchema = import_zod2.z.object({
488
506
  name: import_zod2.z.string().optional(),
489
507
  description: import_zod2.z.string().optional(),
@@ -520,31 +538,34 @@ var CCv2WrappedSchema = import_zod2.z.object({
520
538
  data: CCv2DataSchema
521
539
  });
522
540
  var CCv3LorebookEntrySchema = import_zod3.z.object({
523
- keys: import_zod3.z.array(import_zod3.z.string()),
541
+ keys: import_zod3.z.array(import_zod3.z.string()).optional(),
542
+ // Some tools use 'key' instead
524
543
  content: import_zod3.z.string(),
525
- enabled: import_zod3.z.boolean(),
526
- insertion_order: import_zod3.z.number().int(),
527
- // Optional fields
528
- case_sensitive: import_zod3.z.boolean().optional(),
544
+ enabled: import_zod3.z.boolean().default(true),
545
+ // Default to enabled if missing
546
+ insertion_order: import_zod3.z.number().int().default(0),
547
+ // Optional fields - be lenient with nulls since wild data has them
548
+ case_sensitive: import_zod3.z.boolean().nullable().optional(),
529
549
  name: import_zod3.z.string().optional(),
530
550
  priority: import_zod3.z.number().int().optional(),
531
551
  id: import_zod3.z.number().int().optional(),
532
552
  comment: import_zod3.z.string().optional(),
533
- selective: import_zod3.z.boolean().optional(),
553
+ selective: import_zod3.z.boolean().nullable().optional(),
534
554
  secondary_keys: import_zod3.z.array(import_zod3.z.string()).optional(),
535
- constant: import_zod3.z.boolean().optional(),
536
- position: import_zod3.z.enum(["before_char", "after_char"]).optional(),
555
+ constant: import_zod3.z.boolean().nullable().optional(),
556
+ position: import_zod3.z.union([import_zod3.z.enum(["before_char", "after_char"]), import_zod3.z.number().int()]).nullable().optional(),
537
557
  extensions: import_zod3.z.record(import_zod3.z.unknown()).optional(),
538
- // v3 specific
558
+ // v3 specific - also lenient with types since SillyTavern uses numbers for enums
539
559
  automation_id: import_zod3.z.string().optional(),
540
- role: import_zod3.z.enum(["system", "user", "assistant"]).optional(),
560
+ role: import_zod3.z.union([import_zod3.z.enum(["system", "user", "assistant"]), import_zod3.z.number().int()]).nullable().optional(),
541
561
  group: import_zod3.z.string().optional(),
542
562
  scan_frequency: import_zod3.z.number().int().nonnegative().optional(),
543
- probability: import_zod3.z.number().min(0).max(1).optional(),
563
+ probability: import_zod3.z.number().min(0).max(100).optional(),
564
+ // Some tools use 0-100 instead of 0-1
544
565
  use_regex: import_zod3.z.boolean().optional(),
545
566
  depth: import_zod3.z.number().int().nonnegative().optional(),
546
- selective_logic: import_zod3.z.enum(["AND", "NOT"]).optional()
547
- });
567
+ selective_logic: import_zod3.z.union([import_zod3.z.enum(["AND", "NOT"]), import_zod3.z.number().int()]).optional()
568
+ }).passthrough();
548
569
  var CCv3CharacterBookSchema = import_zod3.z.object({
549
570
  name: import_zod3.z.string().optional(),
550
571
  description: import_zod3.z.string().optional(),