caelus-mcp 0.1.0 → 0.2.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.
@@ -53,7 +53,22 @@ export declare const chartOut: z.ZodObject<{
53
53
  mcPos: string;
54
54
  }>;
55
55
  cusps: z.ZodArray<z.ZodNumber, "many">;
56
- aspects: z.ZodArray<z.ZodString, "many">;
56
+ aspects: z.ZodArray<z.ZodObject<{
57
+ a: z.ZodString;
58
+ b: z.ZodString;
59
+ aspect: z.ZodEnum<["conjunction", "sextile", "square", "trine", "opposition"]>;
60
+ orb: z.ZodNumber;
61
+ }, "strip", z.ZodTypeAny, {
62
+ a: string;
63
+ b: string;
64
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
65
+ orb: number;
66
+ }, {
67
+ a: string;
68
+ b: string;
69
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
70
+ orb: number;
71
+ }>, "many">;
57
72
  }, "strip", z.ZodTypeAny, {
58
73
  utc: string;
59
74
  houses: "placidus" | "whole_sign" | "equal" | "porphyry";
@@ -71,7 +86,12 @@ export declare const chartOut: z.ZodObject<{
71
86
  mcPos: string;
72
87
  };
73
88
  cusps: number[];
74
- aspects: string[];
89
+ aspects: {
90
+ a: string;
91
+ b: string;
92
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
93
+ orb: number;
94
+ }[];
75
95
  houses_requested?: "placidus" | "whole_sign" | "equal" | "porphyry" | undefined;
76
96
  houses_fallback_reason?: string | undefined;
77
97
  }, {
@@ -91,7 +111,12 @@ export declare const chartOut: z.ZodObject<{
91
111
  mcPos: string;
92
112
  };
93
113
  cusps: number[];
94
- aspects: string[];
114
+ aspects: {
115
+ a: string;
116
+ b: string;
117
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
118
+ orb: number;
119
+ }[];
95
120
  houses_requested?: "placidus" | "whole_sign" | "equal" | "porphyry" | undefined;
96
121
  houses_fallback_reason?: string | undefined;
97
122
  }>;
@@ -110,7 +135,25 @@ export declare const transitsOut: z.ZodObject<{
110
135
  natal_house: number;
111
136
  rx?: boolean | undefined;
112
137
  }>>;
113
- aspects_to_natal: z.ZodArray<z.ZodString, "many">;
138
+ aspects_to_natal: z.ZodArray<z.ZodObject<{
139
+ t: z.ZodString;
140
+ n: z.ZodString;
141
+ aspect: z.ZodEnum<["conjunction", "sextile", "square", "trine", "opposition"]>;
142
+ orb: z.ZodNumber;
143
+ applying: z.ZodBoolean;
144
+ }, "strip", z.ZodTypeAny, {
145
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
146
+ orb: number;
147
+ t: string;
148
+ n: string;
149
+ applying: boolean;
150
+ }, {
151
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
152
+ orb: number;
153
+ t: string;
154
+ n: string;
155
+ applying: boolean;
156
+ }>, "many">;
114
157
  }, "strip", z.ZodTypeAny, {
115
158
  transit_utc: string;
116
159
  transiting: Record<string, {
@@ -118,7 +161,13 @@ export declare const transitsOut: z.ZodObject<{
118
161
  natal_house: number;
119
162
  rx?: boolean | undefined;
120
163
  }>;
121
- aspects_to_natal: string[];
164
+ aspects_to_natal: {
165
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
166
+ orb: number;
167
+ t: string;
168
+ n: string;
169
+ applying: boolean;
170
+ }[];
122
171
  }, {
123
172
  transit_utc: string;
124
173
  transiting: Record<string, {
@@ -126,7 +175,13 @@ export declare const transitsOut: z.ZodObject<{
126
175
  natal_house: number;
127
176
  rx?: boolean | undefined;
128
177
  }>;
129
- aspects_to_natal: string[];
178
+ aspects_to_natal: {
179
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
180
+ orb: number;
181
+ t: string;
182
+ n: string;
183
+ applying: boolean;
184
+ }[];
130
185
  }>;
131
186
  export declare const synastryOut: z.ZodObject<{
132
187
  a: z.ZodObject<{
@@ -170,7 +225,22 @@ export declare const synastryOut: z.ZodObject<{
170
225
  mcPos: string;
171
226
  }>;
172
227
  cusps: z.ZodArray<z.ZodNumber, "many">;
173
- aspects: z.ZodArray<z.ZodString, "many">;
228
+ aspects: z.ZodArray<z.ZodObject<{
229
+ a: z.ZodString;
230
+ b: z.ZodString;
231
+ aspect: z.ZodEnum<["conjunction", "sextile", "square", "trine", "opposition"]>;
232
+ orb: z.ZodNumber;
233
+ }, "strip", z.ZodTypeAny, {
234
+ a: string;
235
+ b: string;
236
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
237
+ orb: number;
238
+ }, {
239
+ a: string;
240
+ b: string;
241
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
242
+ orb: number;
243
+ }>, "many">;
174
244
  }, "strip", z.ZodTypeAny, {
175
245
  utc: string;
176
246
  houses: "placidus" | "whole_sign" | "equal" | "porphyry";
@@ -188,7 +258,12 @@ export declare const synastryOut: z.ZodObject<{
188
258
  mcPos: string;
189
259
  };
190
260
  cusps: number[];
191
- aspects: string[];
261
+ aspects: {
262
+ a: string;
263
+ b: string;
264
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
265
+ orb: number;
266
+ }[];
192
267
  houses_requested?: "placidus" | "whole_sign" | "equal" | "porphyry" | undefined;
193
268
  houses_fallback_reason?: string | undefined;
194
269
  }, {
@@ -208,7 +283,12 @@ export declare const synastryOut: z.ZodObject<{
208
283
  mcPos: string;
209
284
  };
210
285
  cusps: number[];
211
- aspects: string[];
286
+ aspects: {
287
+ a: string;
288
+ b: string;
289
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
290
+ orb: number;
291
+ }[];
212
292
  houses_requested?: "placidus" | "whole_sign" | "equal" | "porphyry" | undefined;
213
293
  houses_fallback_reason?: string | undefined;
214
294
  }>;
@@ -253,7 +333,22 @@ export declare const synastryOut: z.ZodObject<{
253
333
  mcPos: string;
254
334
  }>;
255
335
  cusps: z.ZodArray<z.ZodNumber, "many">;
256
- aspects: z.ZodArray<z.ZodString, "many">;
336
+ aspects: z.ZodArray<z.ZodObject<{
337
+ a: z.ZodString;
338
+ b: z.ZodString;
339
+ aspect: z.ZodEnum<["conjunction", "sextile", "square", "trine", "opposition"]>;
340
+ orb: z.ZodNumber;
341
+ }, "strip", z.ZodTypeAny, {
342
+ a: string;
343
+ b: string;
344
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
345
+ orb: number;
346
+ }, {
347
+ a: string;
348
+ b: string;
349
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
350
+ orb: number;
351
+ }>, "many">;
257
352
  }, "strip", z.ZodTypeAny, {
258
353
  utc: string;
259
354
  houses: "placidus" | "whole_sign" | "equal" | "porphyry";
@@ -271,7 +366,12 @@ export declare const synastryOut: z.ZodObject<{
271
366
  mcPos: string;
272
367
  };
273
368
  cusps: number[];
274
- aspects: string[];
369
+ aspects: {
370
+ a: string;
371
+ b: string;
372
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
373
+ orb: number;
374
+ }[];
275
375
  houses_requested?: "placidus" | "whole_sign" | "equal" | "porphyry" | undefined;
276
376
  houses_fallback_reason?: string | undefined;
277
377
  }, {
@@ -291,11 +391,31 @@ export declare const synastryOut: z.ZodObject<{
291
391
  mcPos: string;
292
392
  };
293
393
  cusps: number[];
294
- aspects: string[];
394
+ aspects: {
395
+ a: string;
396
+ b: string;
397
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
398
+ orb: number;
399
+ }[];
295
400
  houses_requested?: "placidus" | "whole_sign" | "equal" | "porphyry" | undefined;
296
401
  houses_fallback_reason?: string | undefined;
297
402
  }>;
298
- inter_aspects: z.ZodArray<z.ZodString, "many">;
403
+ inter_aspects: z.ZodArray<z.ZodObject<{
404
+ a: z.ZodString;
405
+ b: z.ZodString;
406
+ aspect: z.ZodEnum<["conjunction", "sextile", "square", "trine", "opposition"]>;
407
+ orb: z.ZodNumber;
408
+ }, "strip", z.ZodTypeAny, {
409
+ a: string;
410
+ b: string;
411
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
412
+ orb: number;
413
+ }, {
414
+ a: string;
415
+ b: string;
416
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
417
+ orb: number;
418
+ }>, "many">;
299
419
  a_planets_in_b_houses: z.ZodRecord<z.ZodString, z.ZodNumber>;
300
420
  b_planets_in_a_houses: z.ZodRecord<z.ZodString, z.ZodNumber>;
301
421
  }, "strip", z.ZodTypeAny, {
@@ -316,7 +436,12 @@ export declare const synastryOut: z.ZodObject<{
316
436
  mcPos: string;
317
437
  };
318
438
  cusps: number[];
319
- aspects: string[];
439
+ aspects: {
440
+ a: string;
441
+ b: string;
442
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
443
+ orb: number;
444
+ }[];
320
445
  houses_requested?: "placidus" | "whole_sign" | "equal" | "porphyry" | undefined;
321
446
  houses_fallback_reason?: string | undefined;
322
447
  };
@@ -337,11 +462,21 @@ export declare const synastryOut: z.ZodObject<{
337
462
  mcPos: string;
338
463
  };
339
464
  cusps: number[];
340
- aspects: string[];
465
+ aspects: {
466
+ a: string;
467
+ b: string;
468
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
469
+ orb: number;
470
+ }[];
341
471
  houses_requested?: "placidus" | "whole_sign" | "equal" | "porphyry" | undefined;
342
472
  houses_fallback_reason?: string | undefined;
343
473
  };
344
- inter_aspects: string[];
474
+ inter_aspects: {
475
+ a: string;
476
+ b: string;
477
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
478
+ orb: number;
479
+ }[];
345
480
  a_planets_in_b_houses: Record<string, number>;
346
481
  b_planets_in_a_houses: Record<string, number>;
347
482
  }, {
@@ -362,7 +497,12 @@ export declare const synastryOut: z.ZodObject<{
362
497
  mcPos: string;
363
498
  };
364
499
  cusps: number[];
365
- aspects: string[];
500
+ aspects: {
501
+ a: string;
502
+ b: string;
503
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
504
+ orb: number;
505
+ }[];
366
506
  houses_requested?: "placidus" | "whole_sign" | "equal" | "porphyry" | undefined;
367
507
  houses_fallback_reason?: string | undefined;
368
508
  };
@@ -383,11 +523,21 @@ export declare const synastryOut: z.ZodObject<{
383
523
  mcPos: string;
384
524
  };
385
525
  cusps: number[];
386
- aspects: string[];
526
+ aspects: {
527
+ a: string;
528
+ b: string;
529
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
530
+ orb: number;
531
+ }[];
387
532
  houses_requested?: "placidus" | "whole_sign" | "equal" | "porphyry" | undefined;
388
533
  houses_fallback_reason?: string | undefined;
389
534
  };
390
- inter_aspects: string[];
535
+ inter_aspects: {
536
+ a: string;
537
+ b: string;
538
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
539
+ orb: number;
540
+ }[];
391
541
  a_planets_in_b_houses: Record<string, number>;
392
542
  b_planets_in_a_houses: Record<string, number>;
393
543
  }>;
@@ -482,7 +632,22 @@ export declare const OUTPUT_SCHEMAS: {
482
632
  mcPos: string;
483
633
  }>;
484
634
  cusps: z.ZodArray<z.ZodNumber, "many">;
485
- aspects: z.ZodArray<z.ZodString, "many">;
635
+ aspects: z.ZodArray<z.ZodObject<{
636
+ a: z.ZodString;
637
+ b: z.ZodString;
638
+ aspect: z.ZodEnum<["conjunction", "sextile", "square", "trine", "opposition"]>;
639
+ orb: z.ZodNumber;
640
+ }, "strip", z.ZodTypeAny, {
641
+ a: string;
642
+ b: string;
643
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
644
+ orb: number;
645
+ }, {
646
+ a: string;
647
+ b: string;
648
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
649
+ orb: number;
650
+ }>, "many">;
486
651
  }, "strip", z.ZodTypeAny, {
487
652
  utc: string;
488
653
  houses: "placidus" | "whole_sign" | "equal" | "porphyry";
@@ -500,7 +665,12 @@ export declare const OUTPUT_SCHEMAS: {
500
665
  mcPos: string;
501
666
  };
502
667
  cusps: number[];
503
- aspects: string[];
668
+ aspects: {
669
+ a: string;
670
+ b: string;
671
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
672
+ orb: number;
673
+ }[];
504
674
  houses_requested?: "placidus" | "whole_sign" | "equal" | "porphyry" | undefined;
505
675
  houses_fallback_reason?: string | undefined;
506
676
  }, {
@@ -520,7 +690,12 @@ export declare const OUTPUT_SCHEMAS: {
520
690
  mcPos: string;
521
691
  };
522
692
  cusps: number[];
523
- aspects: string[];
693
+ aspects: {
694
+ a: string;
695
+ b: string;
696
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
697
+ orb: number;
698
+ }[];
524
699
  houses_requested?: "placidus" | "whole_sign" | "equal" | "porphyry" | undefined;
525
700
  houses_fallback_reason?: string | undefined;
526
701
  }>;
@@ -565,7 +740,22 @@ export declare const OUTPUT_SCHEMAS: {
565
740
  mcPos: string;
566
741
  }>;
567
742
  cusps: z.ZodArray<z.ZodNumber, "many">;
568
- aspects: z.ZodArray<z.ZodString, "many">;
743
+ aspects: z.ZodArray<z.ZodObject<{
744
+ a: z.ZodString;
745
+ b: z.ZodString;
746
+ aspect: z.ZodEnum<["conjunction", "sextile", "square", "trine", "opposition"]>;
747
+ orb: z.ZodNumber;
748
+ }, "strip", z.ZodTypeAny, {
749
+ a: string;
750
+ b: string;
751
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
752
+ orb: number;
753
+ }, {
754
+ a: string;
755
+ b: string;
756
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
757
+ orb: number;
758
+ }>, "many">;
569
759
  }, "strip", z.ZodTypeAny, {
570
760
  utc: string;
571
761
  houses: "placidus" | "whole_sign" | "equal" | "porphyry";
@@ -583,7 +773,12 @@ export declare const OUTPUT_SCHEMAS: {
583
773
  mcPos: string;
584
774
  };
585
775
  cusps: number[];
586
- aspects: string[];
776
+ aspects: {
777
+ a: string;
778
+ b: string;
779
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
780
+ orb: number;
781
+ }[];
587
782
  houses_requested?: "placidus" | "whole_sign" | "equal" | "porphyry" | undefined;
588
783
  houses_fallback_reason?: string | undefined;
589
784
  }, {
@@ -603,7 +798,12 @@ export declare const OUTPUT_SCHEMAS: {
603
798
  mcPos: string;
604
799
  };
605
800
  cusps: number[];
606
- aspects: string[];
801
+ aspects: {
802
+ a: string;
803
+ b: string;
804
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
805
+ orb: number;
806
+ }[];
607
807
  houses_requested?: "placidus" | "whole_sign" | "equal" | "porphyry" | undefined;
608
808
  houses_fallback_reason?: string | undefined;
609
809
  }>;
@@ -622,7 +822,25 @@ export declare const OUTPUT_SCHEMAS: {
622
822
  natal_house: number;
623
823
  rx?: boolean | undefined;
624
824
  }>>;
625
- aspects_to_natal: z.ZodArray<z.ZodString, "many">;
825
+ aspects_to_natal: z.ZodArray<z.ZodObject<{
826
+ t: z.ZodString;
827
+ n: z.ZodString;
828
+ aspect: z.ZodEnum<["conjunction", "sextile", "square", "trine", "opposition"]>;
829
+ orb: z.ZodNumber;
830
+ applying: z.ZodBoolean;
831
+ }, "strip", z.ZodTypeAny, {
832
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
833
+ orb: number;
834
+ t: string;
835
+ n: string;
836
+ applying: boolean;
837
+ }, {
838
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
839
+ orb: number;
840
+ t: string;
841
+ n: string;
842
+ applying: boolean;
843
+ }>, "many">;
626
844
  }, "strip", z.ZodTypeAny, {
627
845
  transit_utc: string;
628
846
  transiting: Record<string, {
@@ -630,7 +848,13 @@ export declare const OUTPUT_SCHEMAS: {
630
848
  natal_house: number;
631
849
  rx?: boolean | undefined;
632
850
  }>;
633
- aspects_to_natal: string[];
851
+ aspects_to_natal: {
852
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
853
+ orb: number;
854
+ t: string;
855
+ n: string;
856
+ applying: boolean;
857
+ }[];
634
858
  }, {
635
859
  transit_utc: string;
636
860
  transiting: Record<string, {
@@ -638,7 +862,13 @@ export declare const OUTPUT_SCHEMAS: {
638
862
  natal_house: number;
639
863
  rx?: boolean | undefined;
640
864
  }>;
641
- aspects_to_natal: string[];
865
+ aspects_to_natal: {
866
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
867
+ orb: number;
868
+ t: string;
869
+ n: string;
870
+ applying: boolean;
871
+ }[];
642
872
  }>;
643
873
  readonly synastry: z.ZodObject<{
644
874
  a: z.ZodObject<{
@@ -682,7 +912,22 @@ export declare const OUTPUT_SCHEMAS: {
682
912
  mcPos: string;
683
913
  }>;
684
914
  cusps: z.ZodArray<z.ZodNumber, "many">;
685
- aspects: z.ZodArray<z.ZodString, "many">;
915
+ aspects: z.ZodArray<z.ZodObject<{
916
+ a: z.ZodString;
917
+ b: z.ZodString;
918
+ aspect: z.ZodEnum<["conjunction", "sextile", "square", "trine", "opposition"]>;
919
+ orb: z.ZodNumber;
920
+ }, "strip", z.ZodTypeAny, {
921
+ a: string;
922
+ b: string;
923
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
924
+ orb: number;
925
+ }, {
926
+ a: string;
927
+ b: string;
928
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
929
+ orb: number;
930
+ }>, "many">;
686
931
  }, "strip", z.ZodTypeAny, {
687
932
  utc: string;
688
933
  houses: "placidus" | "whole_sign" | "equal" | "porphyry";
@@ -700,7 +945,12 @@ export declare const OUTPUT_SCHEMAS: {
700
945
  mcPos: string;
701
946
  };
702
947
  cusps: number[];
703
- aspects: string[];
948
+ aspects: {
949
+ a: string;
950
+ b: string;
951
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
952
+ orb: number;
953
+ }[];
704
954
  houses_requested?: "placidus" | "whole_sign" | "equal" | "porphyry" | undefined;
705
955
  houses_fallback_reason?: string | undefined;
706
956
  }, {
@@ -720,7 +970,12 @@ export declare const OUTPUT_SCHEMAS: {
720
970
  mcPos: string;
721
971
  };
722
972
  cusps: number[];
723
- aspects: string[];
973
+ aspects: {
974
+ a: string;
975
+ b: string;
976
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
977
+ orb: number;
978
+ }[];
724
979
  houses_requested?: "placidus" | "whole_sign" | "equal" | "porphyry" | undefined;
725
980
  houses_fallback_reason?: string | undefined;
726
981
  }>;
@@ -765,7 +1020,22 @@ export declare const OUTPUT_SCHEMAS: {
765
1020
  mcPos: string;
766
1021
  }>;
767
1022
  cusps: z.ZodArray<z.ZodNumber, "many">;
768
- aspects: z.ZodArray<z.ZodString, "many">;
1023
+ aspects: z.ZodArray<z.ZodObject<{
1024
+ a: z.ZodString;
1025
+ b: z.ZodString;
1026
+ aspect: z.ZodEnum<["conjunction", "sextile", "square", "trine", "opposition"]>;
1027
+ orb: z.ZodNumber;
1028
+ }, "strip", z.ZodTypeAny, {
1029
+ a: string;
1030
+ b: string;
1031
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
1032
+ orb: number;
1033
+ }, {
1034
+ a: string;
1035
+ b: string;
1036
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
1037
+ orb: number;
1038
+ }>, "many">;
769
1039
  }, "strip", z.ZodTypeAny, {
770
1040
  utc: string;
771
1041
  houses: "placidus" | "whole_sign" | "equal" | "porphyry";
@@ -783,7 +1053,12 @@ export declare const OUTPUT_SCHEMAS: {
783
1053
  mcPos: string;
784
1054
  };
785
1055
  cusps: number[];
786
- aspects: string[];
1056
+ aspects: {
1057
+ a: string;
1058
+ b: string;
1059
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
1060
+ orb: number;
1061
+ }[];
787
1062
  houses_requested?: "placidus" | "whole_sign" | "equal" | "porphyry" | undefined;
788
1063
  houses_fallback_reason?: string | undefined;
789
1064
  }, {
@@ -803,11 +1078,31 @@ export declare const OUTPUT_SCHEMAS: {
803
1078
  mcPos: string;
804
1079
  };
805
1080
  cusps: number[];
806
- aspects: string[];
1081
+ aspects: {
1082
+ a: string;
1083
+ b: string;
1084
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
1085
+ orb: number;
1086
+ }[];
807
1087
  houses_requested?: "placidus" | "whole_sign" | "equal" | "porphyry" | undefined;
808
1088
  houses_fallback_reason?: string | undefined;
809
1089
  }>;
810
- inter_aspects: z.ZodArray<z.ZodString, "many">;
1090
+ inter_aspects: z.ZodArray<z.ZodObject<{
1091
+ a: z.ZodString;
1092
+ b: z.ZodString;
1093
+ aspect: z.ZodEnum<["conjunction", "sextile", "square", "trine", "opposition"]>;
1094
+ orb: z.ZodNumber;
1095
+ }, "strip", z.ZodTypeAny, {
1096
+ a: string;
1097
+ b: string;
1098
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
1099
+ orb: number;
1100
+ }, {
1101
+ a: string;
1102
+ b: string;
1103
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
1104
+ orb: number;
1105
+ }>, "many">;
811
1106
  a_planets_in_b_houses: z.ZodRecord<z.ZodString, z.ZodNumber>;
812
1107
  b_planets_in_a_houses: z.ZodRecord<z.ZodString, z.ZodNumber>;
813
1108
  }, "strip", z.ZodTypeAny, {
@@ -828,7 +1123,12 @@ export declare const OUTPUT_SCHEMAS: {
828
1123
  mcPos: string;
829
1124
  };
830
1125
  cusps: number[];
831
- aspects: string[];
1126
+ aspects: {
1127
+ a: string;
1128
+ b: string;
1129
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
1130
+ orb: number;
1131
+ }[];
832
1132
  houses_requested?: "placidus" | "whole_sign" | "equal" | "porphyry" | undefined;
833
1133
  houses_fallback_reason?: string | undefined;
834
1134
  };
@@ -849,11 +1149,21 @@ export declare const OUTPUT_SCHEMAS: {
849
1149
  mcPos: string;
850
1150
  };
851
1151
  cusps: number[];
852
- aspects: string[];
1152
+ aspects: {
1153
+ a: string;
1154
+ b: string;
1155
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
1156
+ orb: number;
1157
+ }[];
853
1158
  houses_requested?: "placidus" | "whole_sign" | "equal" | "porphyry" | undefined;
854
1159
  houses_fallback_reason?: string | undefined;
855
1160
  };
856
- inter_aspects: string[];
1161
+ inter_aspects: {
1162
+ a: string;
1163
+ b: string;
1164
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
1165
+ orb: number;
1166
+ }[];
857
1167
  a_planets_in_b_houses: Record<string, number>;
858
1168
  b_planets_in_a_houses: Record<string, number>;
859
1169
  }, {
@@ -874,7 +1184,12 @@ export declare const OUTPUT_SCHEMAS: {
874
1184
  mcPos: string;
875
1185
  };
876
1186
  cusps: number[];
877
- aspects: string[];
1187
+ aspects: {
1188
+ a: string;
1189
+ b: string;
1190
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
1191
+ orb: number;
1192
+ }[];
878
1193
  houses_requested?: "placidus" | "whole_sign" | "equal" | "porphyry" | undefined;
879
1194
  houses_fallback_reason?: string | undefined;
880
1195
  };
@@ -895,11 +1210,21 @@ export declare const OUTPUT_SCHEMAS: {
895
1210
  mcPos: string;
896
1211
  };
897
1212
  cusps: number[];
898
- aspects: string[];
1213
+ aspects: {
1214
+ a: string;
1215
+ b: string;
1216
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
1217
+ orb: number;
1218
+ }[];
899
1219
  houses_requested?: "placidus" | "whole_sign" | "equal" | "porphyry" | undefined;
900
1220
  houses_fallback_reason?: string | undefined;
901
1221
  };
902
- inter_aspects: string[];
1222
+ inter_aspects: {
1223
+ a: string;
1224
+ b: string;
1225
+ aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
1226
+ orb: number;
1227
+ }[];
903
1228
  a_planets_in_b_houses: Record<string, number>;
904
1229
  b_planets_in_a_houses: Record<string, number>;
905
1230
  }>;
@@ -16,9 +16,11 @@ import { z } from "zod";
16
16
  import { dirname, join } from "node:path";
17
17
  import { fileURLToPath } from "node:url";
18
18
  import { createRequire } from "node:module";
19
+ import { realpathSync } from "node:fs";
19
20
  import { Engine, BODIES, julianDay, mod } from "caelus";
20
21
  import { loadNodeData } from "caelus/node";
21
22
  const require = createRequire(import.meta.url);
23
+ const VERSION = require("caelus-mcp/package.json").version;
22
24
  const DATA_DIR = process.env.CAELUS_DATA
23
25
  ?? join(dirname(require.resolve("caelus/package.json")), "data");
24
26
  const engine = new Engine(loadNodeData(DATA_DIR, "embedded", "full"));
@@ -70,7 +72,9 @@ function chartPayload(iso, lat, lon, hs) {
70
72
  bodies,
71
73
  angles: { asc: r2(c.angles.asc), ascPos: fmt(c.angles.asc), mc: r2(c.angles.mc), mcPos: fmt(c.angles.mc) },
72
74
  cusps: cusps.map(r2),
73
- aspects: c.aspects.map((a) => `${a.a} ${a.aspect} ${a.b} (${a.orb}°)`),
75
+ // Engine Aspect objects pass through unchanged ({a, b, aspect, orb}) so
76
+ // the whole payload feeds caelus-wheel's <ChartWheel> without adaptation.
77
+ aspects: c.aspects,
74
78
  };
75
79
  }
76
80
  const text = (obj) => ({ content: [{ type: "text", text: JSON.stringify(obj) }] });
@@ -81,6 +85,10 @@ const bodyOut = z.object({
81
85
  lon: z.number(), pos: z.string(), house: z.number().int().min(1).max(12),
82
86
  speed: z.number(), rx: z.boolean().optional(),
83
87
  });
88
+ const aspectName = z.enum(["conjunction", "sextile", "square", "trine", "opposition"]);
89
+ const aspectOut = z.object({
90
+ a: z.string(), b: z.string(), aspect: aspectName, orb: z.number(),
91
+ });
84
92
  export const chartOut = z.object({
85
93
  utc: z.string(),
86
94
  houses: z.enum(["placidus", "whole_sign", "equal", "porphyry"]),
@@ -89,18 +97,20 @@ export const chartOut = z.object({
89
97
  bodies: z.record(z.string(), bodyOut),
90
98
  angles: z.object({ asc: z.number(), ascPos: z.string(), mc: z.number(), mcPos: z.string() }),
91
99
  cusps: z.array(z.number()).length(12),
92
- aspects: z.array(z.string()),
100
+ aspects: z.array(aspectOut),
93
101
  });
94
102
  export const transitsOut = z.object({
95
103
  transit_utc: z.string(),
96
104
  transiting: z.record(z.string(), z.object({
97
105
  pos: z.string(), natal_house: z.number().int().min(1).max(12), rx: z.boolean().optional(),
98
106
  })),
99
- aspects_to_natal: z.array(z.string()),
107
+ aspects_to_natal: z.array(z.object({
108
+ t: z.string(), n: z.string(), aspect: aspectName, orb: z.number(), applying: z.boolean(),
109
+ })),
100
110
  });
101
111
  export const synastryOut = z.object({
102
112
  a: chartOut, b: chartOut,
103
- inter_aspects: z.array(z.string()),
113
+ inter_aspects: z.array(aspectOut),
104
114
  a_planets_in_b_houses: z.record(z.string(), z.number().int().min(1).max(12)),
105
115
  b_planets_in_a_houses: z.record(z.string(), z.number().int().min(1).max(12)),
106
116
  });
@@ -124,7 +134,7 @@ export const OUTPUT_SCHEMAS = {
124
134
  };
125
135
  // ---------------------------------------------------------------- server
126
136
  export function buildServer() {
127
- const server = new McpServer({ name: "caelus", version: "0.1.0" });
137
+ const server = new McpServer({ name: "caelus", version: VERSION });
128
138
  server.registerTool("natal_chart", {
129
139
  description: "A person's birth chart. Requires their exact birth date+time and birthplace (all three: date, lat, lon). Use this — not current_sky — whenever the question is about someone's natal/birth chart. Returns 13 bodies (sun–pluto, chiron, nodes) with sign, house, retrograde, speed; ASC/MC; cusps; major aspects with orbs. Vs Swiss Ephemeris (1900–2099): Sun–Saturn ≤1″, Uranus ≤1.9″, Neptune ≤4.6″, Moon ≤2.5″, Pluto ≤2.5″ (series valid 1885–2099), Chiron ≤1″, nodes ≤1″.",
130
140
  inputSchema: { ...birth, house_system: houseSys },
@@ -150,7 +160,9 @@ export function buildServer() {
150
160
  const natal = chartPayload(date, lat, lon, house_system);
151
161
  const tIso = transit_date ?? new Date().toISOString();
152
162
  const jdT = jdFromIso(tIso);
153
- const ASP = [["conj", 0], ["sext", 60], ["sq", 90], ["tri", 120], ["opp", 180]];
163
+ const ASP = [
164
+ ["conjunction", 0], ["sextile", 60], ["square", 90], ["trine", 120], ["opposition", 180],
165
+ ];
154
166
  const hits = [];
155
167
  const cusps = natal.cusps;
156
168
  const houseOf = (bl) => {
@@ -172,7 +184,7 @@ export function buildServer() {
172
184
  if (o <= orb) {
173
185
  const future = Math.abs(mod(tp.lon + tp.speed * 0.5 - nLon + 180, 360) - 180);
174
186
  const applying = Math.abs(future - angle) < o;
175
- hits.push(`t.${tb} ${name} n.${nb} (${r2(o)}°${applying ? " applying" : " separating"})`);
187
+ hits.push({ t: tb, n: nb, aspect: name, orb: r2(o), applying });
176
188
  }
177
189
  }
178
190
  }
@@ -189,7 +201,9 @@ export function buildServer() {
189
201
  }, async ({ a, b, orb }) => {
190
202
  const ca = chartPayload(a.date, a.lat, a.lon, "placidus");
191
203
  const cb = chartPayload(b.date, b.lat, b.lon, "placidus");
192
- const ASP = [["conj", 0], ["sext", 60], ["sq", 90], ["tri", 120], ["opp", 180]];
204
+ const ASP = [
205
+ ["conjunction", 0], ["sextile", 60], ["square", 90], ["trine", 120], ["opposition", 180],
206
+ ];
193
207
  const inter = [];
194
208
  const houseIn = (cusps, bl) => {
195
209
  for (let i = 0; i < 12; i++) {
@@ -214,7 +228,7 @@ export function buildServer() {
214
228
  for (const [name, angle] of ASP) {
215
229
  const o = Math.abs(sep - angle);
216
230
  if (o <= orb)
217
- inter.push(`A.${ba} ${name} B.${bb} (${r2(o)}°)`);
231
+ inter.push({ a: ba, b: bb, aspect: name, orb: r2(o) });
218
232
  }
219
233
  }
220
234
  }
@@ -224,7 +238,7 @@ export function buildServer() {
224
238
  });
225
239
  });
226
240
  server.registerTool("find_aspect_dates", {
227
- description: "Exact dates a transiting body makes an aspect, within a range: to a fixed longitude OR to another transiting body. Provide exactly one of target_lon / target_body. Includes retrograde re-hits. Body names are snake_case (mean_node, true_node); note the output uses abbreviated aspect tokens (conj/sext/sq/tri/opp).",
241
+ description: "Exact dates a transiting body makes an aspect, within a range: to a fixed longitude OR to another transiting body. Provide exactly one of target_lon / target_body. Includes retrograde re-hits. Body names are snake_case (mean_node, true_node).",
228
242
  inputSchema: {
229
243
  body: z.enum(BODIES).describe("Transiting body (snake_case, e.g. saturn, true_node)"),
230
244
  aspect: z.enum(["conjunction", "sextile", "square", "trine", "opposition"]),
@@ -311,7 +325,18 @@ export function buildServer() {
311
325
  return server;
312
326
  }
313
327
  // ---------------------------------------------------------------- main
314
- const isMain = process.argv[1] && fileURLToPath(import.meta.url) === process.argv[1];
328
+ // argv[1] is a symlink when invoked via a bin shim (npx, node_modules/.bin),
329
+ // so compare realpaths or the server silently never starts.
330
+ const isMain = (() => {
331
+ if (!process.argv[1])
332
+ return false;
333
+ try {
334
+ return fileURLToPath(import.meta.url) === realpathSync(process.argv[1]);
335
+ }
336
+ catch {
337
+ return false;
338
+ }
339
+ })();
315
340
  if (isMain) {
316
341
  const server = buildServer();
317
342
  const transport = new StdioServerTransport();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "caelus-mcp",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "MCP server for caelus chart computation.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -14,7 +14,7 @@
14
14
  "dependencies": {
15
15
  "@modelcontextprotocol/sdk": "^1.12.0",
16
16
  "zod": "^3.24.0",
17
- "caelus": "^0.1.0"
17
+ "caelus": "^0.2.0"
18
18
  },
19
19
  "devDependencies": {
20
20
  "ajv": "^8.17.1"
@@ -36,4 +36,4 @@
36
36
  "model-context-protocol",
37
37
  "natal-chart"
38
38
  ]
39
- }
39
+ }