@xom11/whiteboard 0.30.0 → 0.31.0

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 (88) hide show
  1. package/dist/ai.d.mts +226 -32
  2. package/dist/ai.d.ts +226 -32
  3. package/dist/ai.js +5126 -351
  4. package/dist/ai.js.map +1 -1
  5. package/dist/ai.mjs +4970 -352
  6. package/dist/ai.mjs.map +1 -1
  7. package/dist/catalog.json +5 -5
  8. package/dist/{chunk-V3YJ6JFL.mjs → chunk-44JY2AKC.mjs} +3 -3
  9. package/dist/{chunk-V3YJ6JFL.mjs.map → chunk-44JY2AKC.mjs.map} +1 -1
  10. package/dist/{chunk-XVVLT6B3.mjs → chunk-BMYC2ILT.mjs} +4 -4
  11. package/dist/{chunk-XVVLT6B3.mjs.map → chunk-BMYC2ILT.mjs.map} +1 -1
  12. package/dist/{chunk-PPKHCRRE.mjs → chunk-C76SOFXF.mjs} +3 -3
  13. package/dist/{chunk-PPKHCRRE.mjs.map → chunk-C76SOFXF.mjs.map} +1 -1
  14. package/dist/{chunk-IHUFOV7L.mjs → chunk-CH6SFONH.mjs} +15 -3
  15. package/dist/chunk-CH6SFONH.mjs.map +1 -0
  16. package/dist/{chunk-SF3U7ZF4.mjs → chunk-DWIEVCGK.mjs} +180 -15
  17. package/dist/chunk-DWIEVCGK.mjs.map +1 -0
  18. package/dist/{chunk-SZDAS7LK.mjs → chunk-IE2GGHNF.mjs} +131 -81
  19. package/dist/chunk-IE2GGHNF.mjs.map +1 -0
  20. package/dist/{chunk-ZTQBUKLJ.mjs → chunk-JJ4FPCBE.mjs} +142 -22
  21. package/dist/chunk-JJ4FPCBE.mjs.map +1 -0
  22. package/dist/{chunk-QRUAEXLR.mjs → chunk-K5BS2H56.mjs} +5 -5
  23. package/dist/{chunk-QRUAEXLR.mjs.map → chunk-K5BS2H56.mjs.map} +1 -1
  24. package/dist/{chunk-BNBOIDO5.mjs → chunk-K7VJU7LQ.mjs} +3 -3
  25. package/dist/{chunk-BNBOIDO5.mjs.map → chunk-K7VJU7LQ.mjs.map} +1 -1
  26. package/dist/{chunk-H22OZYTW.mjs → chunk-KOXOC2FI.mjs} +48 -39
  27. package/dist/chunk-KOXOC2FI.mjs.map +1 -0
  28. package/dist/{chunk-CXHNVYMD.mjs → chunk-KWDBVLST.mjs} +5 -5
  29. package/dist/{chunk-CXHNVYMD.mjs.map → chunk-KWDBVLST.mjs.map} +1 -1
  30. package/dist/{chunk-OQIQNKPQ.mjs → chunk-LTLLQUMN.mjs} +4 -4
  31. package/dist/{chunk-OQIQNKPQ.mjs.map → chunk-LTLLQUMN.mjs.map} +1 -1
  32. package/dist/{chunk-QGNU34T7.mjs → chunk-QLQ4MJNO.mjs} +10 -4
  33. package/dist/chunk-QLQ4MJNO.mjs.map +1 -0
  34. package/dist/{chunk-BU5KLO3P.mjs → chunk-T3N4BSJV.mjs} +4 -4
  35. package/dist/{chunk-BU5KLO3P.mjs.map → chunk-T3N4BSJV.mjs.map} +1 -1
  36. package/dist/{chunk-5JM35CXV.mjs → chunk-TMRFSOM7.mjs} +4 -4
  37. package/dist/{chunk-5JM35CXV.mjs.map → chunk-TMRFSOM7.mjs.map} +1 -1
  38. package/dist/geometry-2d.d.mts +1 -1
  39. package/dist/geometry-2d.d.ts +1 -1
  40. package/dist/geometry-2d.js +449 -172
  41. package/dist/geometry-2d.js.map +1 -1
  42. package/dist/geometry-2d.mjs +5 -5
  43. package/dist/geometry-3d.d.mts +1 -1
  44. package/dist/geometry-3d.d.ts +1 -1
  45. package/dist/geometry-3d.js +172 -22
  46. package/dist/geometry-3d.js.map +1 -1
  47. package/dist/geometry-3d.mjs +4 -4
  48. package/dist/graph-2d.d.mts +1 -1
  49. package/dist/graph-2d.d.ts +1 -1
  50. package/dist/graph-2d.js +307 -100
  51. package/dist/graph-2d.js.map +1 -1
  52. package/dist/graph-2d.mjs +7 -7
  53. package/dist/{host-HOSJHQ5H.mjs → host-4FIUNIDQ.mjs} +13 -12
  54. package/dist/host-4FIUNIDQ.mjs.map +1 -0
  55. package/dist/{host-2ISGVO7O.mjs → host-4ZB4XD4S.mjs} +9 -8
  56. package/dist/host-4ZB4XD4S.mjs.map +1 -0
  57. package/dist/{host-ZQCDAT6O.mjs → host-H2IGOKJU.mjs} +3 -3
  58. package/dist/{host-ZQCDAT6O.mjs.map → host-H2IGOKJU.mjs.map} +1 -1
  59. package/dist/{host-3UFGFMJ2.mjs → host-KMWP7KBT.mjs} +90 -43
  60. package/dist/host-KMWP7KBT.mjs.map +1 -0
  61. package/dist/index.d.mts +2 -2
  62. package/dist/index.d.ts +2 -2
  63. package/dist/index.js +453 -174
  64. package/dist/index.js.map +1 -1
  65. package/dist/index.mjs +21 -21
  66. package/dist/latex.d.mts +1 -1
  67. package/dist/latex.d.ts +1 -1
  68. package/dist/latex.js +8 -2
  69. package/dist/latex.js.map +1 -1
  70. package/dist/latex.mjs +1 -1
  71. package/dist/render-NMS7OAV6.mjs +10 -0
  72. package/dist/{render-ZX2O2IK7.mjs.map → render-NMS7OAV6.mjs.map} +1 -1
  73. package/dist/serialize-PGHQZEPV.mjs +9 -0
  74. package/dist/{serialize-N4G6RFBB.mjs.map → serialize-PGHQZEPV.mjs.map} +1 -1
  75. package/dist/{types-C3FjpoUi.d.ts → types-tePd94vW.d.mts} +8 -0
  76. package/dist/{types-C3FjpoUi.d.mts → types-tePd94vW.d.ts} +8 -0
  77. package/package.json +1 -1
  78. package/dist/chunk-H22OZYTW.mjs.map +0 -1
  79. package/dist/chunk-IHUFOV7L.mjs.map +0 -1
  80. package/dist/chunk-QGNU34T7.mjs.map +0 -1
  81. package/dist/chunk-SF3U7ZF4.mjs.map +0 -1
  82. package/dist/chunk-SZDAS7LK.mjs.map +0 -1
  83. package/dist/chunk-ZTQBUKLJ.mjs.map +0 -1
  84. package/dist/host-2ISGVO7O.mjs.map +0 -1
  85. package/dist/host-3UFGFMJ2.mjs.map +0 -1
  86. package/dist/host-HOSJHQ5H.mjs.map +0 -1
  87. package/dist/render-ZX2O2IK7.mjs +0 -10
  88. package/dist/serialize-N4G6RFBB.mjs +0 -9
package/dist/ai.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { c as State, b as AiFigureUiResult } from './types-C3FjpoUi.mjs';
1
+ import { c as State, b as AiFigureUiResult } from './types-tePd94vW.mjs';
2
2
  import { z } from 'zod';
3
3
  import { I as ImagePart } from './handleExtractProblem-BrDY9ifM.mjs';
4
4
  export { a as ExtractProblemOptions, b as ExtractProblemOutcome, E as ExtractUiResult, H as HandleExtractProblemOptions, e as extractProblemFromImage, h as handleExtractProblem } from './handleExtractProblem-BrDY9ifM.mjs';
@@ -36,6 +36,12 @@ type DslPointT = {
36
36
  p1: Name;
37
37
  p2: Name;
38
38
  visible?: boolean;
39
+ } | {
40
+ name: Name;
41
+ kind: 'onPerpBisector';
42
+ p1: Name;
43
+ p2: Name;
44
+ t?: number;
39
45
  } | {
40
46
  name: Name;
41
47
  kind: 'onSegment';
@@ -113,12 +119,18 @@ type DslPointT = {
113
119
  circle: Name;
114
120
  a: Name;
115
121
  b: Name;
116
- notContaining: Name;
122
+ notContaining?: Name;
123
+ containing?: Name;
117
124
  } | {
118
125
  name: Name;
119
126
  kind: 'excenter';
120
127
  vertices: [Name, Name, Name];
121
128
  opposite: Name;
129
+ } | {
130
+ name: Name;
131
+ kind: 'mixtilinearPoint';
132
+ vertices: [Name, Name, Name];
133
+ which: 'center' | 'touch';
122
134
  } | {
123
135
  name: Name;
124
136
  kind: 'reflectPoint';
@@ -276,6 +288,18 @@ declare const AddPointIntentZ: z.ZodObject<{
276
288
  }, {
277
289
  kind: "midpoint";
278
290
  of: string;
291
+ }>, z.ZodObject<{
292
+ kind: z.ZodLiteral<"onPerpBisector">;
293
+ p1: z.ZodString;
294
+ p2: z.ZodString;
295
+ }, "strip", z.ZodTypeAny, {
296
+ kind: "onPerpBisector";
297
+ p1: string;
298
+ p2: string;
299
+ }, {
300
+ kind: "onPerpBisector";
301
+ p1: string;
302
+ p2: string;
279
303
  }>, z.ZodObject<{
280
304
  kind: z.ZodLiteral<"perpFoot">;
281
305
  from: z.ZodString;
@@ -479,19 +503,22 @@ declare const AddPointIntentZ: z.ZodObject<{
479
503
  circle: z.ZodString;
480
504
  a: z.ZodString;
481
505
  b: z.ZodString;
482
- notContaining: z.ZodString;
506
+ notContaining: z.ZodOptional<z.ZodString>;
507
+ containing: z.ZodOptional<z.ZodString>;
483
508
  }, "strip", z.ZodTypeAny, {
484
509
  kind: "arcMidpoint";
485
510
  circle: string;
486
511
  a: string;
487
512
  b: string;
488
- notContaining: string;
513
+ notContaining?: string | undefined;
514
+ containing?: string | undefined;
489
515
  }, {
490
516
  kind: "arcMidpoint";
491
517
  circle: string;
492
518
  a: string;
493
519
  b: string;
494
- notContaining: string;
520
+ notContaining?: string | undefined;
521
+ containing?: string | undefined;
495
522
  }>, z.ZodObject<{
496
523
  kind: z.ZodLiteral<"reflectPoint">;
497
524
  of: z.ZodString;
@@ -528,6 +555,18 @@ declare const AddPointIntentZ: z.ZodObject<{
528
555
  kind: "excenter";
529
556
  opposite: string;
530
557
  of: [string, string, string];
558
+ }>, z.ZodObject<{
559
+ kind: z.ZodLiteral<"mixtilinearPoint">;
560
+ of: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString], null>;
561
+ which: z.ZodUnion<[z.ZodLiteral<"center">, z.ZodLiteral<"touch">]>;
562
+ }, "strip", z.ZodTypeAny, {
563
+ kind: "mixtilinearPoint";
564
+ which: "center" | "touch";
565
+ of: [string, string, string];
566
+ }, {
567
+ kind: "mixtilinearPoint";
568
+ which: "center" | "touch";
569
+ of: [string, string, string];
531
570
  }>, z.ZodObject<{
532
571
  kind: z.ZodLiteral<"rightAngleViewing">;
533
572
  a: z.ZodString;
@@ -646,6 +685,10 @@ declare const AddPointIntentZ: z.ZodObject<{
646
685
  constraint: {
647
686
  kind: "midpoint";
648
687
  of: string;
688
+ } | {
689
+ kind: "onPerpBisector";
690
+ p1: string;
691
+ p2: string;
649
692
  } | {
650
693
  kind: "perpFoot";
651
694
  onLine: string;
@@ -717,7 +760,8 @@ declare const AddPointIntentZ: z.ZodObject<{
717
760
  circle: string;
718
761
  a: string;
719
762
  b: string;
720
- notContaining: string;
763
+ notContaining?: string | undefined;
764
+ containing?: string | undefined;
721
765
  } | {
722
766
  kind: "reflectPoint";
723
767
  through: string;
@@ -730,6 +774,10 @@ declare const AddPointIntentZ: z.ZodObject<{
730
774
  kind: "excenter";
731
775
  opposite: string;
732
776
  of: [string, string, string];
777
+ } | {
778
+ kind: "mixtilinearPoint";
779
+ which: "center" | "touch";
780
+ of: [string, string, string];
733
781
  } | {
734
782
  kind: "rightAngleViewing";
735
783
  onLine: string;
@@ -764,6 +812,10 @@ declare const AddPointIntentZ: z.ZodObject<{
764
812
  constraint: {
765
813
  kind: "midpoint";
766
814
  of: string;
815
+ } | {
816
+ kind: "onPerpBisector";
817
+ p1: string;
818
+ p2: string;
767
819
  } | {
768
820
  kind: "perpFoot";
769
821
  onLine: string;
@@ -835,7 +887,8 @@ declare const AddPointIntentZ: z.ZodObject<{
835
887
  circle: string;
836
888
  a: string;
837
889
  b: string;
838
- notContaining: string;
890
+ notContaining?: string | undefined;
891
+ containing?: string | undefined;
839
892
  } | {
840
893
  kind: "reflectPoint";
841
894
  through: string;
@@ -848,6 +901,10 @@ declare const AddPointIntentZ: z.ZodObject<{
848
901
  kind: "excenter";
849
902
  opposite: string;
850
903
  of: [string, string, string];
904
+ } | {
905
+ kind: "mixtilinearPoint";
906
+ which: "center" | "touch";
907
+ of: [string, string, string];
851
908
  } | {
852
909
  kind: "rightAngleViewing";
853
910
  onLine: string;
@@ -956,6 +1013,18 @@ declare const IntentZ: z.ZodDiscriminatedUnion<"op", [z.ZodObject<{
956
1013
  }, {
957
1014
  kind: "midpoint";
958
1015
  of: string;
1016
+ }>, z.ZodObject<{
1017
+ kind: z.ZodLiteral<"onPerpBisector">;
1018
+ p1: z.ZodString;
1019
+ p2: z.ZodString;
1020
+ }, "strip", z.ZodTypeAny, {
1021
+ kind: "onPerpBisector";
1022
+ p1: string;
1023
+ p2: string;
1024
+ }, {
1025
+ kind: "onPerpBisector";
1026
+ p1: string;
1027
+ p2: string;
959
1028
  }>, z.ZodObject<{
960
1029
  kind: z.ZodLiteral<"perpFoot">;
961
1030
  from: z.ZodString;
@@ -1159,19 +1228,22 @@ declare const IntentZ: z.ZodDiscriminatedUnion<"op", [z.ZodObject<{
1159
1228
  circle: z.ZodString;
1160
1229
  a: z.ZodString;
1161
1230
  b: z.ZodString;
1162
- notContaining: z.ZodString;
1231
+ notContaining: z.ZodOptional<z.ZodString>;
1232
+ containing: z.ZodOptional<z.ZodString>;
1163
1233
  }, "strip", z.ZodTypeAny, {
1164
1234
  kind: "arcMidpoint";
1165
1235
  circle: string;
1166
1236
  a: string;
1167
1237
  b: string;
1168
- notContaining: string;
1238
+ notContaining?: string | undefined;
1239
+ containing?: string | undefined;
1169
1240
  }, {
1170
1241
  kind: "arcMidpoint";
1171
1242
  circle: string;
1172
1243
  a: string;
1173
1244
  b: string;
1174
- notContaining: string;
1245
+ notContaining?: string | undefined;
1246
+ containing?: string | undefined;
1175
1247
  }>, z.ZodObject<{
1176
1248
  kind: z.ZodLiteral<"reflectPoint">;
1177
1249
  of: z.ZodString;
@@ -1208,6 +1280,18 @@ declare const IntentZ: z.ZodDiscriminatedUnion<"op", [z.ZodObject<{
1208
1280
  kind: "excenter";
1209
1281
  opposite: string;
1210
1282
  of: [string, string, string];
1283
+ }>, z.ZodObject<{
1284
+ kind: z.ZodLiteral<"mixtilinearPoint">;
1285
+ of: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString], null>;
1286
+ which: z.ZodUnion<[z.ZodLiteral<"center">, z.ZodLiteral<"touch">]>;
1287
+ }, "strip", z.ZodTypeAny, {
1288
+ kind: "mixtilinearPoint";
1289
+ which: "center" | "touch";
1290
+ of: [string, string, string];
1291
+ }, {
1292
+ kind: "mixtilinearPoint";
1293
+ which: "center" | "touch";
1294
+ of: [string, string, string];
1211
1295
  }>, z.ZodObject<{
1212
1296
  kind: z.ZodLiteral<"rightAngleViewing">;
1213
1297
  a: z.ZodString;
@@ -1326,6 +1410,10 @@ declare const IntentZ: z.ZodDiscriminatedUnion<"op", [z.ZodObject<{
1326
1410
  constraint: {
1327
1411
  kind: "midpoint";
1328
1412
  of: string;
1413
+ } | {
1414
+ kind: "onPerpBisector";
1415
+ p1: string;
1416
+ p2: string;
1329
1417
  } | {
1330
1418
  kind: "perpFoot";
1331
1419
  onLine: string;
@@ -1397,7 +1485,8 @@ declare const IntentZ: z.ZodDiscriminatedUnion<"op", [z.ZodObject<{
1397
1485
  circle: string;
1398
1486
  a: string;
1399
1487
  b: string;
1400
- notContaining: string;
1488
+ notContaining?: string | undefined;
1489
+ containing?: string | undefined;
1401
1490
  } | {
1402
1491
  kind: "reflectPoint";
1403
1492
  through: string;
@@ -1410,6 +1499,10 @@ declare const IntentZ: z.ZodDiscriminatedUnion<"op", [z.ZodObject<{
1410
1499
  kind: "excenter";
1411
1500
  opposite: string;
1412
1501
  of: [string, string, string];
1502
+ } | {
1503
+ kind: "mixtilinearPoint";
1504
+ which: "center" | "touch";
1505
+ of: [string, string, string];
1413
1506
  } | {
1414
1507
  kind: "rightAngleViewing";
1415
1508
  onLine: string;
@@ -1444,6 +1537,10 @@ declare const IntentZ: z.ZodDiscriminatedUnion<"op", [z.ZodObject<{
1444
1537
  constraint: {
1445
1538
  kind: "midpoint";
1446
1539
  of: string;
1540
+ } | {
1541
+ kind: "onPerpBisector";
1542
+ p1: string;
1543
+ p2: string;
1447
1544
  } | {
1448
1545
  kind: "perpFoot";
1449
1546
  onLine: string;
@@ -1515,7 +1612,8 @@ declare const IntentZ: z.ZodDiscriminatedUnion<"op", [z.ZodObject<{
1515
1612
  circle: string;
1516
1613
  a: string;
1517
1614
  b: string;
1518
- notContaining: string;
1615
+ notContaining?: string | undefined;
1616
+ containing?: string | undefined;
1519
1617
  } | {
1520
1618
  kind: "reflectPoint";
1521
1619
  through: string;
@@ -1528,6 +1626,10 @@ declare const IntentZ: z.ZodDiscriminatedUnion<"op", [z.ZodObject<{
1528
1626
  kind: "excenter";
1529
1627
  opposite: string;
1530
1628
  of: [string, string, string];
1629
+ } | {
1630
+ kind: "mixtilinearPoint";
1631
+ which: "center" | "touch";
1632
+ of: [string, string, string];
1531
1633
  } | {
1532
1634
  kind: "rightAngleViewing";
1533
1635
  onLine: string;
@@ -1606,7 +1708,7 @@ declare const IntentZ: z.ZodDiscriminatedUnion<"op", [z.ZodObject<{
1606
1708
  }>, z.ZodObject<{
1607
1709
  op: z.ZodLiteral<"draw-line">;
1608
1710
  name: z.ZodString;
1609
- kind: z.ZodEnum<["perpThrough", "parallelThrough", "tangentAt", "tangentFromExt", "angleBisector", "lineThrough", "radicalAxis"]>;
1711
+ kind: z.ZodEnum<["perpThrough", "parallelThrough", "tangentAt", "tangentFromExt", "angleBisector", "lineThrough", "radicalAxis", "perpBisector"]>;
1610
1712
  through: z.ZodOptional<z.ZodString>;
1611
1713
  to: z.ZodOptional<z.ZodString>;
1612
1714
  from: z.ZodOptional<z.ZodString>;
@@ -1619,7 +1721,7 @@ declare const IntentZ: z.ZodDiscriminatedUnion<"op", [z.ZodObject<{
1619
1721
  vertex: z.ZodOptional<z.ZodString>;
1620
1722
  p2: z.ZodOptional<z.ZodString>;
1621
1723
  }, "strip", z.ZodTypeAny, {
1622
- kind: "angleBisector" | "lineThrough" | "radicalAxis" | "perpThrough" | "parallelThrough" | "tangentAt" | "tangentFromExt";
1724
+ kind: "perpBisector" | "angleBisector" | "lineThrough" | "radicalAxis" | "perpThrough" | "parallelThrough" | "tangentAt" | "tangentFromExt";
1623
1725
  name: string;
1624
1726
  op: "draw-line";
1625
1727
  circle?: string | undefined;
@@ -1634,7 +1736,7 @@ declare const IntentZ: z.ZodDiscriminatedUnion<"op", [z.ZodObject<{
1634
1736
  which?: "first" | "second" | "both" | undefined;
1635
1737
  to?: string | undefined;
1636
1738
  }, {
1637
- kind: "angleBisector" | "lineThrough" | "radicalAxis" | "perpThrough" | "parallelThrough" | "tangentAt" | "tangentFromExt";
1739
+ kind: "perpBisector" | "angleBisector" | "lineThrough" | "radicalAxis" | "perpThrough" | "parallelThrough" | "tangentAt" | "tangentFromExt";
1638
1740
  name: string;
1639
1741
  op: "draw-line";
1640
1742
  circle?: string | undefined;
@@ -1699,6 +1801,18 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
1699
1801
  }, {
1700
1802
  kind: "midpoint";
1701
1803
  of: string;
1804
+ }>, z.ZodObject<{
1805
+ kind: z.ZodLiteral<"onPerpBisector">;
1806
+ p1: z.ZodString;
1807
+ p2: z.ZodString;
1808
+ }, "strip", z.ZodTypeAny, {
1809
+ kind: "onPerpBisector";
1810
+ p1: string;
1811
+ p2: string;
1812
+ }, {
1813
+ kind: "onPerpBisector";
1814
+ p1: string;
1815
+ p2: string;
1702
1816
  }>, z.ZodObject<{
1703
1817
  kind: z.ZodLiteral<"perpFoot">;
1704
1818
  from: z.ZodString;
@@ -1902,19 +2016,22 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
1902
2016
  circle: z.ZodString;
1903
2017
  a: z.ZodString;
1904
2018
  b: z.ZodString;
1905
- notContaining: z.ZodString;
2019
+ notContaining: z.ZodOptional<z.ZodString>;
2020
+ containing: z.ZodOptional<z.ZodString>;
1906
2021
  }, "strip", z.ZodTypeAny, {
1907
2022
  kind: "arcMidpoint";
1908
2023
  circle: string;
1909
2024
  a: string;
1910
2025
  b: string;
1911
- notContaining: string;
2026
+ notContaining?: string | undefined;
2027
+ containing?: string | undefined;
1912
2028
  }, {
1913
2029
  kind: "arcMidpoint";
1914
2030
  circle: string;
1915
2031
  a: string;
1916
2032
  b: string;
1917
- notContaining: string;
2033
+ notContaining?: string | undefined;
2034
+ containing?: string | undefined;
1918
2035
  }>, z.ZodObject<{
1919
2036
  kind: z.ZodLiteral<"reflectPoint">;
1920
2037
  of: z.ZodString;
@@ -1951,6 +2068,18 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
1951
2068
  kind: "excenter";
1952
2069
  opposite: string;
1953
2070
  of: [string, string, string];
2071
+ }>, z.ZodObject<{
2072
+ kind: z.ZodLiteral<"mixtilinearPoint">;
2073
+ of: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString], null>;
2074
+ which: z.ZodUnion<[z.ZodLiteral<"center">, z.ZodLiteral<"touch">]>;
2075
+ }, "strip", z.ZodTypeAny, {
2076
+ kind: "mixtilinearPoint";
2077
+ which: "center" | "touch";
2078
+ of: [string, string, string];
2079
+ }, {
2080
+ kind: "mixtilinearPoint";
2081
+ which: "center" | "touch";
2082
+ of: [string, string, string];
1954
2083
  }>, z.ZodObject<{
1955
2084
  kind: z.ZodLiteral<"rightAngleViewing">;
1956
2085
  a: z.ZodString;
@@ -2069,6 +2198,10 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
2069
2198
  constraint: {
2070
2199
  kind: "midpoint";
2071
2200
  of: string;
2201
+ } | {
2202
+ kind: "onPerpBisector";
2203
+ p1: string;
2204
+ p2: string;
2072
2205
  } | {
2073
2206
  kind: "perpFoot";
2074
2207
  onLine: string;
@@ -2140,7 +2273,8 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
2140
2273
  circle: string;
2141
2274
  a: string;
2142
2275
  b: string;
2143
- notContaining: string;
2276
+ notContaining?: string | undefined;
2277
+ containing?: string | undefined;
2144
2278
  } | {
2145
2279
  kind: "reflectPoint";
2146
2280
  through: string;
@@ -2153,6 +2287,10 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
2153
2287
  kind: "excenter";
2154
2288
  opposite: string;
2155
2289
  of: [string, string, string];
2290
+ } | {
2291
+ kind: "mixtilinearPoint";
2292
+ which: "center" | "touch";
2293
+ of: [string, string, string];
2156
2294
  } | {
2157
2295
  kind: "rightAngleViewing";
2158
2296
  onLine: string;
@@ -2187,6 +2325,10 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
2187
2325
  constraint: {
2188
2326
  kind: "midpoint";
2189
2327
  of: string;
2328
+ } | {
2329
+ kind: "onPerpBisector";
2330
+ p1: string;
2331
+ p2: string;
2190
2332
  } | {
2191
2333
  kind: "perpFoot";
2192
2334
  onLine: string;
@@ -2258,7 +2400,8 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
2258
2400
  circle: string;
2259
2401
  a: string;
2260
2402
  b: string;
2261
- notContaining: string;
2403
+ notContaining?: string | undefined;
2404
+ containing?: string | undefined;
2262
2405
  } | {
2263
2406
  kind: "reflectPoint";
2264
2407
  through: string;
@@ -2271,6 +2414,10 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
2271
2414
  kind: "excenter";
2272
2415
  opposite: string;
2273
2416
  of: [string, string, string];
2417
+ } | {
2418
+ kind: "mixtilinearPoint";
2419
+ which: "center" | "touch";
2420
+ of: [string, string, string];
2274
2421
  } | {
2275
2422
  kind: "rightAngleViewing";
2276
2423
  onLine: string;
@@ -2349,7 +2496,7 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
2349
2496
  }>, z.ZodObject<{
2350
2497
  op: z.ZodLiteral<"draw-line">;
2351
2498
  name: z.ZodString;
2352
- kind: z.ZodEnum<["perpThrough", "parallelThrough", "tangentAt", "tangentFromExt", "angleBisector", "lineThrough", "radicalAxis"]>;
2499
+ kind: z.ZodEnum<["perpThrough", "parallelThrough", "tangentAt", "tangentFromExt", "angleBisector", "lineThrough", "radicalAxis", "perpBisector"]>;
2353
2500
  through: z.ZodOptional<z.ZodString>;
2354
2501
  to: z.ZodOptional<z.ZodString>;
2355
2502
  from: z.ZodOptional<z.ZodString>;
@@ -2362,7 +2509,7 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
2362
2509
  vertex: z.ZodOptional<z.ZodString>;
2363
2510
  p2: z.ZodOptional<z.ZodString>;
2364
2511
  }, "strip", z.ZodTypeAny, {
2365
- kind: "angleBisector" | "lineThrough" | "radicalAxis" | "perpThrough" | "parallelThrough" | "tangentAt" | "tangentFromExt";
2512
+ kind: "perpBisector" | "angleBisector" | "lineThrough" | "radicalAxis" | "perpThrough" | "parallelThrough" | "tangentAt" | "tangentFromExt";
2366
2513
  name: string;
2367
2514
  op: "draw-line";
2368
2515
  circle?: string | undefined;
@@ -2377,7 +2524,7 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
2377
2524
  which?: "first" | "second" | "both" | undefined;
2378
2525
  to?: string | undefined;
2379
2526
  }, {
2380
- kind: "angleBisector" | "lineThrough" | "radicalAxis" | "perpThrough" | "parallelThrough" | "tangentAt" | "tangentFromExt";
2527
+ kind: "perpBisector" | "angleBisector" | "lineThrough" | "radicalAxis" | "perpThrough" | "parallelThrough" | "tangentAt" | "tangentFromExt";
2381
2528
  name: string;
2382
2529
  op: "draw-line";
2383
2530
  circle?: string | undefined;
@@ -2418,6 +2565,10 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
2418
2565
  constraint: {
2419
2566
  kind: "midpoint";
2420
2567
  of: string;
2568
+ } | {
2569
+ kind: "onPerpBisector";
2570
+ p1: string;
2571
+ p2: string;
2421
2572
  } | {
2422
2573
  kind: "perpFoot";
2423
2574
  onLine: string;
@@ -2489,7 +2640,8 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
2489
2640
  circle: string;
2490
2641
  a: string;
2491
2642
  b: string;
2492
- notContaining: string;
2643
+ notContaining?: string | undefined;
2644
+ containing?: string | undefined;
2493
2645
  } | {
2494
2646
  kind: "reflectPoint";
2495
2647
  through: string;
@@ -2502,6 +2654,10 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
2502
2654
  kind: "excenter";
2503
2655
  opposite: string;
2504
2656
  of: [string, string, string];
2657
+ } | {
2658
+ kind: "mixtilinearPoint";
2659
+ which: "center" | "touch";
2660
+ of: [string, string, string];
2505
2661
  } | {
2506
2662
  kind: "rightAngleViewing";
2507
2663
  onLine: string;
@@ -2548,7 +2704,7 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
2548
2704
  triangle?: [string, string, string] | undefined;
2549
2705
  endpoints?: [string, string] | undefined;
2550
2706
  } | {
2551
- kind: "angleBisector" | "lineThrough" | "radicalAxis" | "perpThrough" | "parallelThrough" | "tangentAt" | "tangentFromExt";
2707
+ kind: "perpBisector" | "angleBisector" | "lineThrough" | "radicalAxis" | "perpThrough" | "parallelThrough" | "tangentAt" | "tangentFromExt";
2552
2708
  name: string;
2553
2709
  op: "draw-line";
2554
2710
  circle?: string | undefined;
@@ -2580,6 +2736,10 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
2580
2736
  constraint: {
2581
2737
  kind: "midpoint";
2582
2738
  of: string;
2739
+ } | {
2740
+ kind: "onPerpBisector";
2741
+ p1: string;
2742
+ p2: string;
2583
2743
  } | {
2584
2744
  kind: "perpFoot";
2585
2745
  onLine: string;
@@ -2651,7 +2811,8 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
2651
2811
  circle: string;
2652
2812
  a: string;
2653
2813
  b: string;
2654
- notContaining: string;
2814
+ notContaining?: string | undefined;
2815
+ containing?: string | undefined;
2655
2816
  } | {
2656
2817
  kind: "reflectPoint";
2657
2818
  through: string;
@@ -2664,6 +2825,10 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
2664
2825
  kind: "excenter";
2665
2826
  opposite: string;
2666
2827
  of: [string, string, string];
2828
+ } | {
2829
+ kind: "mixtilinearPoint";
2830
+ which: "center" | "touch";
2831
+ of: [string, string, string];
2667
2832
  } | {
2668
2833
  kind: "rightAngleViewing";
2669
2834
  onLine: string;
@@ -2710,7 +2875,7 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
2710
2875
  triangle?: [string, string, string] | undefined;
2711
2876
  endpoints?: [string, string] | undefined;
2712
2877
  } | {
2713
- kind: "angleBisector" | "lineThrough" | "radicalAxis" | "perpThrough" | "parallelThrough" | "tangentAt" | "tangentFromExt";
2878
+ kind: "perpBisector" | "angleBisector" | "lineThrough" | "radicalAxis" | "perpThrough" | "parallelThrough" | "tangentAt" | "tangentFromExt";
2714
2879
  name: string;
2715
2880
  op: "draw-line";
2716
2881
  circle?: string | undefined;
@@ -2742,6 +2907,10 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
2742
2907
  constraint: {
2743
2908
  kind: "midpoint";
2744
2909
  of: string;
2910
+ } | {
2911
+ kind: "onPerpBisector";
2912
+ p1: string;
2913
+ p2: string;
2745
2914
  } | {
2746
2915
  kind: "perpFoot";
2747
2916
  onLine: string;
@@ -2813,7 +2982,8 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
2813
2982
  circle: string;
2814
2983
  a: string;
2815
2984
  b: string;
2816
- notContaining: string;
2985
+ notContaining?: string | undefined;
2986
+ containing?: string | undefined;
2817
2987
  } | {
2818
2988
  kind: "reflectPoint";
2819
2989
  through: string;
@@ -2826,6 +2996,10 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
2826
2996
  kind: "excenter";
2827
2997
  opposite: string;
2828
2998
  of: [string, string, string];
2999
+ } | {
3000
+ kind: "mixtilinearPoint";
3001
+ which: "center" | "touch";
3002
+ of: [string, string, string];
2829
3003
  } | {
2830
3004
  kind: "rightAngleViewing";
2831
3005
  onLine: string;
@@ -2872,7 +3046,7 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
2872
3046
  triangle?: [string, string, string] | undefined;
2873
3047
  endpoints?: [string, string] | undefined;
2874
3048
  } | {
2875
- kind: "angleBisector" | "lineThrough" | "radicalAxis" | "perpThrough" | "parallelThrough" | "tangentAt" | "tangentFromExt";
3049
+ kind: "perpBisector" | "angleBisector" | "lineThrough" | "radicalAxis" | "perpThrough" | "parallelThrough" | "tangentAt" | "tangentFromExt";
2876
3050
  name: string;
2877
3051
  op: "draw-line";
2878
3052
  circle?: string | undefined;
@@ -2904,6 +3078,10 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
2904
3078
  constraint: {
2905
3079
  kind: "midpoint";
2906
3080
  of: string;
3081
+ } | {
3082
+ kind: "onPerpBisector";
3083
+ p1: string;
3084
+ p2: string;
2907
3085
  } | {
2908
3086
  kind: "perpFoot";
2909
3087
  onLine: string;
@@ -2975,7 +3153,8 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
2975
3153
  circle: string;
2976
3154
  a: string;
2977
3155
  b: string;
2978
- notContaining: string;
3156
+ notContaining?: string | undefined;
3157
+ containing?: string | undefined;
2979
3158
  } | {
2980
3159
  kind: "reflectPoint";
2981
3160
  through: string;
@@ -2988,6 +3167,10 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
2988
3167
  kind: "excenter";
2989
3168
  opposite: string;
2990
3169
  of: [string, string, string];
3170
+ } | {
3171
+ kind: "mixtilinearPoint";
3172
+ which: "center" | "touch";
3173
+ of: [string, string, string];
2991
3174
  } | {
2992
3175
  kind: "rightAngleViewing";
2993
3176
  onLine: string;
@@ -3034,7 +3217,7 @@ declare const IntentEnvelopeZ: z.ZodEffects<z.ZodObject<{
3034
3217
  triangle?: [string, string, string] | undefined;
3035
3218
  endpoints?: [string, string] | undefined;
3036
3219
  } | {
3037
- kind: "angleBisector" | "lineThrough" | "radicalAxis" | "perpThrough" | "parallelThrough" | "tangentAt" | "tangentFromExt";
3220
+ kind: "perpBisector" | "angleBisector" | "lineThrough" | "radicalAxis" | "perpThrough" | "parallelThrough" | "tangentAt" | "tangentFromExt";
3038
3221
  name: string;
3039
3222
  op: "draw-line";
3040
3223
  circle?: string | undefined;
@@ -3097,6 +3280,13 @@ interface IntentSuccessResult {
3097
3280
  verify: VerifyReport;
3098
3281
  usage: IntentTokenUsage;
3099
3282
  provider: string;
3283
+ /**
3284
+ * Có mặt khi đây là PARTIAL render: rule base chỉ dựng được một phần đề (phần
3285
+ * chắc chắn đúng), `message` là to-do list cho user tự dựng nốt. Vắng = full.
3286
+ */
3287
+ partial?: {
3288
+ message: string;
3289
+ };
3100
3290
  }
3101
3291
  interface IntentFailureResult {
3102
3292
  ok: false;
@@ -3267,6 +3457,10 @@ type AiFigureIntentUiResult = {
3267
3457
  inputTokens: number;
3268
3458
  outputTokens: number;
3269
3459
  };
3460
+ /** Có mặt khi partial render: `message` là to-do list cho user tự dựng nốt. */
3461
+ partial?: {
3462
+ message: string;
3463
+ };
3270
3464
  } | {
3271
3465
  kind: 'refused';
3272
3466
  message: string;
@@ -3309,7 +3503,7 @@ type TryDeterministicResult = {
3309
3503
  detail?: string;
3310
3504
  coverage?: CoverageReport;
3311
3505
  };
3312
- declare function tryDeterministicFigure(problem: string): TryDeterministicResult;
3506
+ declare function tryDeterministicFigure(rawProblem: string): TryDeterministicResult;
3313
3507
 
3314
3508
  interface PartialDeterministicResult {
3315
3509
  /** Intent deterministic từ các clause đã được rule claim (deduped). */