caelus-mcp 0.15.0 → 0.16.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.
- package/README.md +1 -1
- package/dist/src/server.d.ts +642 -0
- package/dist/src/server.js +194 -3
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# caelus-mcp
|
|
2
2
|
|
|
3
3
|
MCP server for the [caelus](https://github.com/heavyblotto/caelus) ephemeris
|
|
4
|
-
engine: twenty-
|
|
4
|
+
engine: twenty-seven chart tools over stdio. Computation only — positions, houses,
|
|
5
5
|
aspects with orbs, event search, electional, returns, progressions, composite,
|
|
6
6
|
dignities, Hermetic lots, the Hellenistic time-lords (profections, firdaria,
|
|
7
7
|
zodiacal releasing), primary directions, and the Vedic layer (nakshatras,
|
package/dist/src/server.d.ts
CHANGED
|
@@ -1312,26 +1312,34 @@ export declare const dignitiesOut: z.ZodObject<{
|
|
|
1312
1312
|
bodies: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
1313
1313
|
sign: z.ZodString;
|
|
1314
1314
|
dignity: z.ZodArray<z.ZodEnum<["domicile", "exaltation", "detriment", "fall"]>, "many">;
|
|
1315
|
+
score: z.ZodNumber;
|
|
1316
|
+
peregrine: z.ZodOptional<z.ZodBoolean>;
|
|
1315
1317
|
planetary_sect: z.ZodNullable<z.ZodEnum<["diurnal", "nocturnal"]>>;
|
|
1316
1318
|
in_sect: z.ZodNullable<z.ZodBoolean>;
|
|
1317
1319
|
}, "strip", z.ZodTypeAny, {
|
|
1318
1320
|
dignity: ("domicile" | "exaltation" | "detriment" | "fall")[];
|
|
1319
1321
|
sign: string;
|
|
1322
|
+
score: number;
|
|
1320
1323
|
planetary_sect: "diurnal" | "nocturnal" | null;
|
|
1321
1324
|
in_sect: boolean | null;
|
|
1325
|
+
peregrine?: boolean | undefined;
|
|
1322
1326
|
}, {
|
|
1323
1327
|
dignity: ("domicile" | "exaltation" | "detriment" | "fall")[];
|
|
1324
1328
|
sign: string;
|
|
1329
|
+
score: number;
|
|
1325
1330
|
planetary_sect: "diurnal" | "nocturnal" | null;
|
|
1326
1331
|
in_sect: boolean | null;
|
|
1332
|
+
peregrine?: boolean | undefined;
|
|
1327
1333
|
}>>;
|
|
1328
1334
|
}, "strip", z.ZodTypeAny, {
|
|
1329
1335
|
utc: string;
|
|
1330
1336
|
bodies: Record<string, {
|
|
1331
1337
|
dignity: ("domicile" | "exaltation" | "detriment" | "fall")[];
|
|
1332
1338
|
sign: string;
|
|
1339
|
+
score: number;
|
|
1333
1340
|
planetary_sect: "diurnal" | "nocturnal" | null;
|
|
1334
1341
|
in_sect: boolean | null;
|
|
1342
|
+
peregrine?: boolean | undefined;
|
|
1335
1343
|
}>;
|
|
1336
1344
|
sect: "day" | "night";
|
|
1337
1345
|
}, {
|
|
@@ -1339,8 +1347,10 @@ export declare const dignitiesOut: z.ZodObject<{
|
|
|
1339
1347
|
bodies: Record<string, {
|
|
1340
1348
|
dignity: ("domicile" | "exaltation" | "detriment" | "fall")[];
|
|
1341
1349
|
sign: string;
|
|
1350
|
+
score: number;
|
|
1342
1351
|
planetary_sect: "diurnal" | "nocturnal" | null;
|
|
1343
1352
|
in_sect: boolean | null;
|
|
1353
|
+
peregrine?: boolean | undefined;
|
|
1344
1354
|
}>;
|
|
1345
1355
|
sect: "day" | "night";
|
|
1346
1356
|
}>;
|
|
@@ -1960,6 +1970,317 @@ export declare const yogasOut: z.ZodObject<{
|
|
|
1960
1970
|
}[];
|
|
1961
1971
|
yogakarakas: string[];
|
|
1962
1972
|
}>;
|
|
1973
|
+
export declare const patternsOut: z.ZodObject<{
|
|
1974
|
+
utc: z.ZodString;
|
|
1975
|
+
houses: z.ZodEnum<["placidus", "whole_sign", "equal", "porphyry", "koch", "regiomontanus", "campanus", "alcabitius", "morinus", "meridian", "polich_page", "vehlow"]>;
|
|
1976
|
+
zodiac: z.ZodOptional<z.ZodEnum<["tropical", "sidereal:lahiri", "sidereal:fagan_bradley", "sidereal:krishnamurti", "sidereal:raman", "sidereal:yukteshwar", "sidereal:galcent_0sag", "sidereal:true_citra"]>>;
|
|
1977
|
+
patterns: z.ZodArray<z.ZodObject<{
|
|
1978
|
+
kind: z.ZodString;
|
|
1979
|
+
bodies: z.ZodArray<z.ZodString, "many">;
|
|
1980
|
+
apex: z.ZodOptional<z.ZodString>;
|
|
1981
|
+
sign: z.ZodOptional<z.ZodString>;
|
|
1982
|
+
house: z.ZodOptional<z.ZodNumber>;
|
|
1983
|
+
orb: z.ZodNumber;
|
|
1984
|
+
}, "strip", z.ZodTypeAny, {
|
|
1985
|
+
orb: number;
|
|
1986
|
+
bodies: string[];
|
|
1987
|
+
kind: string;
|
|
1988
|
+
house?: number | undefined;
|
|
1989
|
+
sign?: string | undefined;
|
|
1990
|
+
apex?: string | undefined;
|
|
1991
|
+
}, {
|
|
1992
|
+
orb: number;
|
|
1993
|
+
bodies: string[];
|
|
1994
|
+
kind: string;
|
|
1995
|
+
house?: number | undefined;
|
|
1996
|
+
sign?: string | undefined;
|
|
1997
|
+
apex?: string | undefined;
|
|
1998
|
+
}>, "many">;
|
|
1999
|
+
}, "strip", z.ZodTypeAny, {
|
|
2000
|
+
utc: string;
|
|
2001
|
+
houses: "placidus" | "whole_sign" | "equal" | "porphyry" | "koch" | "regiomontanus" | "campanus" | "alcabitius" | "morinus" | "meridian" | "polich_page" | "vehlow";
|
|
2002
|
+
patterns: {
|
|
2003
|
+
orb: number;
|
|
2004
|
+
bodies: string[];
|
|
2005
|
+
kind: string;
|
|
2006
|
+
house?: number | undefined;
|
|
2007
|
+
sign?: string | undefined;
|
|
2008
|
+
apex?: string | undefined;
|
|
2009
|
+
}[];
|
|
2010
|
+
zodiac?: "tropical" | "sidereal:lahiri" | "sidereal:fagan_bradley" | "sidereal:krishnamurti" | "sidereal:raman" | "sidereal:yukteshwar" | "sidereal:galcent_0sag" | "sidereal:true_citra" | undefined;
|
|
2011
|
+
}, {
|
|
2012
|
+
utc: string;
|
|
2013
|
+
houses: "placidus" | "whole_sign" | "equal" | "porphyry" | "koch" | "regiomontanus" | "campanus" | "alcabitius" | "morinus" | "meridian" | "polich_page" | "vehlow";
|
|
2014
|
+
patterns: {
|
|
2015
|
+
orb: number;
|
|
2016
|
+
bodies: string[];
|
|
2017
|
+
kind: string;
|
|
2018
|
+
house?: number | undefined;
|
|
2019
|
+
sign?: string | undefined;
|
|
2020
|
+
apex?: string | undefined;
|
|
2021
|
+
}[];
|
|
2022
|
+
zodiac?: "tropical" | "sidereal:lahiri" | "sidereal:fagan_bradley" | "sidereal:krishnamurti" | "sidereal:raman" | "sidereal:yukteshwar" | "sidereal:galcent_0sag" | "sidereal:true_citra" | undefined;
|
|
2023
|
+
}>;
|
|
2024
|
+
export declare const signatureOut: z.ZodObject<{
|
|
2025
|
+
utc: z.ZodString;
|
|
2026
|
+
houses: z.ZodEnum<["placidus", "whole_sign", "equal", "porphyry", "koch", "regiomontanus", "campanus", "alcabitius", "morinus", "meridian", "polich_page", "vehlow"]>;
|
|
2027
|
+
zodiac: z.ZodOptional<z.ZodEnum<["tropical", "sidereal:lahiri", "sidereal:fagan_bradley", "sidereal:krishnamurti", "sidereal:raman", "sidereal:yukteshwar", "sidereal:galcent_0sag", "sidereal:true_citra"]>>;
|
|
2028
|
+
signature: z.ZodObject<{
|
|
2029
|
+
elements: z.ZodRecord<z.ZodString, z.ZodNumber>;
|
|
2030
|
+
modalities: z.ZodRecord<z.ZodString, z.ZodNumber>;
|
|
2031
|
+
angularity: z.ZodRecord<z.ZodString, z.ZodNumber>;
|
|
2032
|
+
quadrants: z.ZodRecord<z.ZodString, z.ZodNumber>;
|
|
2033
|
+
hemispheres: z.ZodRecord<z.ZodString, z.ZodNumber>;
|
|
2034
|
+
dominant: z.ZodObject<{
|
|
2035
|
+
element: z.ZodString;
|
|
2036
|
+
modality: z.ZodString;
|
|
2037
|
+
sign: z.ZodNullable<z.ZodString>;
|
|
2038
|
+
}, "strip", z.ZodTypeAny, {
|
|
2039
|
+
sign: string | null;
|
|
2040
|
+
element: string;
|
|
2041
|
+
modality: string;
|
|
2042
|
+
}, {
|
|
2043
|
+
sign: string | null;
|
|
2044
|
+
element: string;
|
|
2045
|
+
modality: string;
|
|
2046
|
+
}>;
|
|
2047
|
+
ruler: z.ZodNullable<z.ZodString>;
|
|
2048
|
+
bodies: z.ZodArray<z.ZodString, "many">;
|
|
2049
|
+
}, "strip", z.ZodTypeAny, {
|
|
2050
|
+
bodies: string[];
|
|
2051
|
+
ruler: string | null;
|
|
2052
|
+
elements: Record<string, number>;
|
|
2053
|
+
modalities: Record<string, number>;
|
|
2054
|
+
angularity: Record<string, number>;
|
|
2055
|
+
quadrants: Record<string, number>;
|
|
2056
|
+
hemispheres: Record<string, number>;
|
|
2057
|
+
dominant: {
|
|
2058
|
+
sign: string | null;
|
|
2059
|
+
element: string;
|
|
2060
|
+
modality: string;
|
|
2061
|
+
};
|
|
2062
|
+
}, {
|
|
2063
|
+
bodies: string[];
|
|
2064
|
+
ruler: string | null;
|
|
2065
|
+
elements: Record<string, number>;
|
|
2066
|
+
modalities: Record<string, number>;
|
|
2067
|
+
angularity: Record<string, number>;
|
|
2068
|
+
quadrants: Record<string, number>;
|
|
2069
|
+
hemispheres: Record<string, number>;
|
|
2070
|
+
dominant: {
|
|
2071
|
+
sign: string | null;
|
|
2072
|
+
element: string;
|
|
2073
|
+
modality: string;
|
|
2074
|
+
};
|
|
2075
|
+
}>;
|
|
2076
|
+
}, "strip", z.ZodTypeAny, {
|
|
2077
|
+
utc: string;
|
|
2078
|
+
houses: "placidus" | "whole_sign" | "equal" | "porphyry" | "koch" | "regiomontanus" | "campanus" | "alcabitius" | "morinus" | "meridian" | "polich_page" | "vehlow";
|
|
2079
|
+
signature: {
|
|
2080
|
+
bodies: string[];
|
|
2081
|
+
ruler: string | null;
|
|
2082
|
+
elements: Record<string, number>;
|
|
2083
|
+
modalities: Record<string, number>;
|
|
2084
|
+
angularity: Record<string, number>;
|
|
2085
|
+
quadrants: Record<string, number>;
|
|
2086
|
+
hemispheres: Record<string, number>;
|
|
2087
|
+
dominant: {
|
|
2088
|
+
sign: string | null;
|
|
2089
|
+
element: string;
|
|
2090
|
+
modality: string;
|
|
2091
|
+
};
|
|
2092
|
+
};
|
|
2093
|
+
zodiac?: "tropical" | "sidereal:lahiri" | "sidereal:fagan_bradley" | "sidereal:krishnamurti" | "sidereal:raman" | "sidereal:yukteshwar" | "sidereal:galcent_0sag" | "sidereal:true_citra" | undefined;
|
|
2094
|
+
}, {
|
|
2095
|
+
utc: string;
|
|
2096
|
+
houses: "placidus" | "whole_sign" | "equal" | "porphyry" | "koch" | "regiomontanus" | "campanus" | "alcabitius" | "morinus" | "meridian" | "polich_page" | "vehlow";
|
|
2097
|
+
signature: {
|
|
2098
|
+
bodies: string[];
|
|
2099
|
+
ruler: string | null;
|
|
2100
|
+
elements: Record<string, number>;
|
|
2101
|
+
modalities: Record<string, number>;
|
|
2102
|
+
angularity: Record<string, number>;
|
|
2103
|
+
quadrants: Record<string, number>;
|
|
2104
|
+
hemispheres: Record<string, number>;
|
|
2105
|
+
dominant: {
|
|
2106
|
+
sign: string | null;
|
|
2107
|
+
element: string;
|
|
2108
|
+
modality: string;
|
|
2109
|
+
};
|
|
2110
|
+
};
|
|
2111
|
+
zodiac?: "tropical" | "sidereal:lahiri" | "sidereal:fagan_bradley" | "sidereal:krishnamurti" | "sidereal:raman" | "sidereal:yukteshwar" | "sidereal:galcent_0sag" | "sidereal:true_citra" | undefined;
|
|
2112
|
+
}>;
|
|
2113
|
+
export declare const similarSkiesOut: z.ZodObject<{
|
|
2114
|
+
reference_utc: z.ZodString;
|
|
2115
|
+
matches: z.ZodArray<z.ZodObject<{
|
|
2116
|
+
utc: z.ZodString;
|
|
2117
|
+
similarity: z.ZodNumber;
|
|
2118
|
+
}, "strip", z.ZodTypeAny, {
|
|
2119
|
+
utc: string;
|
|
2120
|
+
similarity: number;
|
|
2121
|
+
}, {
|
|
2122
|
+
utc: string;
|
|
2123
|
+
similarity: number;
|
|
2124
|
+
}>, "many">;
|
|
2125
|
+
}, "strip", z.ZodTypeAny, {
|
|
2126
|
+
reference_utc: string;
|
|
2127
|
+
matches: {
|
|
2128
|
+
utc: string;
|
|
2129
|
+
similarity: number;
|
|
2130
|
+
}[];
|
|
2131
|
+
}, {
|
|
2132
|
+
reference_utc: string;
|
|
2133
|
+
matches: {
|
|
2134
|
+
utc: string;
|
|
2135
|
+
similarity: number;
|
|
2136
|
+
}[];
|
|
2137
|
+
}>;
|
|
2138
|
+
export declare const electionalOut: z.ZodObject<{
|
|
2139
|
+
start: z.ZodString;
|
|
2140
|
+
end: z.ZodString;
|
|
2141
|
+
moments: z.ZodArray<z.ZodObject<{
|
|
2142
|
+
utc: z.ZodString;
|
|
2143
|
+
score: z.ZodNumber;
|
|
2144
|
+
matched: z.ZodArray<z.ZodObject<{
|
|
2145
|
+
a: z.ZodString;
|
|
2146
|
+
b: z.ZodString;
|
|
2147
|
+
aspect: z.ZodEnum<["conjunction", "sextile", "square", "trine", "opposition"]>;
|
|
2148
|
+
orb: z.ZodNumber;
|
|
2149
|
+
applying: z.ZodBoolean;
|
|
2150
|
+
}, "strip", z.ZodTypeAny, {
|
|
2151
|
+
applying: boolean;
|
|
2152
|
+
a: string;
|
|
2153
|
+
b: string;
|
|
2154
|
+
aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
|
|
2155
|
+
orb: number;
|
|
2156
|
+
}, {
|
|
2157
|
+
applying: boolean;
|
|
2158
|
+
a: string;
|
|
2159
|
+
b: string;
|
|
2160
|
+
aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
|
|
2161
|
+
orb: number;
|
|
2162
|
+
}>, "many">;
|
|
2163
|
+
}, "strip", z.ZodTypeAny, {
|
|
2164
|
+
utc: string;
|
|
2165
|
+
score: number;
|
|
2166
|
+
matched: {
|
|
2167
|
+
applying: boolean;
|
|
2168
|
+
a: string;
|
|
2169
|
+
b: string;
|
|
2170
|
+
aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
|
|
2171
|
+
orb: number;
|
|
2172
|
+
}[];
|
|
2173
|
+
}, {
|
|
2174
|
+
utc: string;
|
|
2175
|
+
score: number;
|
|
2176
|
+
matched: {
|
|
2177
|
+
applying: boolean;
|
|
2178
|
+
a: string;
|
|
2179
|
+
b: string;
|
|
2180
|
+
aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
|
|
2181
|
+
orb: number;
|
|
2182
|
+
}[];
|
|
2183
|
+
}>, "many">;
|
|
2184
|
+
}, "strip", z.ZodTypeAny, {
|
|
2185
|
+
start: string;
|
|
2186
|
+
end: string;
|
|
2187
|
+
moments: {
|
|
2188
|
+
utc: string;
|
|
2189
|
+
score: number;
|
|
2190
|
+
matched: {
|
|
2191
|
+
applying: boolean;
|
|
2192
|
+
a: string;
|
|
2193
|
+
b: string;
|
|
2194
|
+
aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
|
|
2195
|
+
orb: number;
|
|
2196
|
+
}[];
|
|
2197
|
+
}[];
|
|
2198
|
+
}, {
|
|
2199
|
+
start: string;
|
|
2200
|
+
end: string;
|
|
2201
|
+
moments: {
|
|
2202
|
+
utc: string;
|
|
2203
|
+
score: number;
|
|
2204
|
+
matched: {
|
|
2205
|
+
applying: boolean;
|
|
2206
|
+
a: string;
|
|
2207
|
+
b: string;
|
|
2208
|
+
aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
|
|
2209
|
+
orb: number;
|
|
2210
|
+
}[];
|
|
2211
|
+
}[];
|
|
2212
|
+
}>;
|
|
2213
|
+
export declare const cosmicWeatherOut: z.ZodObject<{
|
|
2214
|
+
utc: z.ZodString;
|
|
2215
|
+
patterns: z.ZodArray<z.ZodObject<{
|
|
2216
|
+
kind: z.ZodString;
|
|
2217
|
+
bodies: z.ZodArray<z.ZodString, "many">;
|
|
2218
|
+
apex: z.ZodOptional<z.ZodString>;
|
|
2219
|
+
sign: z.ZodOptional<z.ZodString>;
|
|
2220
|
+
house: z.ZodOptional<z.ZodNumber>;
|
|
2221
|
+
orb: z.ZodNumber;
|
|
2222
|
+
}, "strip", z.ZodTypeAny, {
|
|
2223
|
+
orb: number;
|
|
2224
|
+
bodies: string[];
|
|
2225
|
+
kind: string;
|
|
2226
|
+
house?: number | undefined;
|
|
2227
|
+
sign?: string | undefined;
|
|
2228
|
+
apex?: string | undefined;
|
|
2229
|
+
}, {
|
|
2230
|
+
orb: number;
|
|
2231
|
+
bodies: string[];
|
|
2232
|
+
kind: string;
|
|
2233
|
+
house?: number | undefined;
|
|
2234
|
+
sign?: string | undefined;
|
|
2235
|
+
apex?: string | undefined;
|
|
2236
|
+
}>, "many">;
|
|
2237
|
+
stationing: z.ZodArray<z.ZodObject<{
|
|
2238
|
+
body: z.ZodString;
|
|
2239
|
+
utc: z.ZodString;
|
|
2240
|
+
direction: z.ZodEnum<["retrograde", "direct"]>;
|
|
2241
|
+
}, "strip", z.ZodTypeAny, {
|
|
2242
|
+
utc: string;
|
|
2243
|
+
body: string;
|
|
2244
|
+
direction: "retrograde" | "direct";
|
|
2245
|
+
}, {
|
|
2246
|
+
utc: string;
|
|
2247
|
+
body: string;
|
|
2248
|
+
direction: "retrograde" | "direct";
|
|
2249
|
+
}>, "many">;
|
|
2250
|
+
moon_void_of_course: z.ZodBoolean;
|
|
2251
|
+
}, "strip", z.ZodTypeAny, {
|
|
2252
|
+
utc: string;
|
|
2253
|
+
patterns: {
|
|
2254
|
+
orb: number;
|
|
2255
|
+
bodies: string[];
|
|
2256
|
+
kind: string;
|
|
2257
|
+
house?: number | undefined;
|
|
2258
|
+
sign?: string | undefined;
|
|
2259
|
+
apex?: string | undefined;
|
|
2260
|
+
}[];
|
|
2261
|
+
stationing: {
|
|
2262
|
+
utc: string;
|
|
2263
|
+
body: string;
|
|
2264
|
+
direction: "retrograde" | "direct";
|
|
2265
|
+
}[];
|
|
2266
|
+
moon_void_of_course: boolean;
|
|
2267
|
+
}, {
|
|
2268
|
+
utc: string;
|
|
2269
|
+
patterns: {
|
|
2270
|
+
orb: number;
|
|
2271
|
+
bodies: string[];
|
|
2272
|
+
kind: string;
|
|
2273
|
+
house?: number | undefined;
|
|
2274
|
+
sign?: string | undefined;
|
|
2275
|
+
apex?: string | undefined;
|
|
2276
|
+
}[];
|
|
2277
|
+
stationing: {
|
|
2278
|
+
utc: string;
|
|
2279
|
+
body: string;
|
|
2280
|
+
direction: "retrograde" | "direct";
|
|
2281
|
+
}[];
|
|
2282
|
+
moon_void_of_course: boolean;
|
|
2283
|
+
}>;
|
|
1963
2284
|
export declare const OUTPUT_SCHEMAS: {
|
|
1964
2285
|
readonly natal_chart: z.ZodObject<{
|
|
1965
2286
|
utc: z.ZodString;
|
|
@@ -3389,26 +3710,34 @@ export declare const OUTPUT_SCHEMAS: {
|
|
|
3389
3710
|
bodies: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
3390
3711
|
sign: z.ZodString;
|
|
3391
3712
|
dignity: z.ZodArray<z.ZodEnum<["domicile", "exaltation", "detriment", "fall"]>, "many">;
|
|
3713
|
+
score: z.ZodNumber;
|
|
3714
|
+
peregrine: z.ZodOptional<z.ZodBoolean>;
|
|
3392
3715
|
planetary_sect: z.ZodNullable<z.ZodEnum<["diurnal", "nocturnal"]>>;
|
|
3393
3716
|
in_sect: z.ZodNullable<z.ZodBoolean>;
|
|
3394
3717
|
}, "strip", z.ZodTypeAny, {
|
|
3395
3718
|
dignity: ("domicile" | "exaltation" | "detriment" | "fall")[];
|
|
3396
3719
|
sign: string;
|
|
3720
|
+
score: number;
|
|
3397
3721
|
planetary_sect: "diurnal" | "nocturnal" | null;
|
|
3398
3722
|
in_sect: boolean | null;
|
|
3723
|
+
peregrine?: boolean | undefined;
|
|
3399
3724
|
}, {
|
|
3400
3725
|
dignity: ("domicile" | "exaltation" | "detriment" | "fall")[];
|
|
3401
3726
|
sign: string;
|
|
3727
|
+
score: number;
|
|
3402
3728
|
planetary_sect: "diurnal" | "nocturnal" | null;
|
|
3403
3729
|
in_sect: boolean | null;
|
|
3730
|
+
peregrine?: boolean | undefined;
|
|
3404
3731
|
}>>;
|
|
3405
3732
|
}, "strip", z.ZodTypeAny, {
|
|
3406
3733
|
utc: string;
|
|
3407
3734
|
bodies: Record<string, {
|
|
3408
3735
|
dignity: ("domicile" | "exaltation" | "detriment" | "fall")[];
|
|
3409
3736
|
sign: string;
|
|
3737
|
+
score: number;
|
|
3410
3738
|
planetary_sect: "diurnal" | "nocturnal" | null;
|
|
3411
3739
|
in_sect: boolean | null;
|
|
3740
|
+
peregrine?: boolean | undefined;
|
|
3412
3741
|
}>;
|
|
3413
3742
|
sect: "day" | "night";
|
|
3414
3743
|
}, {
|
|
@@ -3416,8 +3745,10 @@ export declare const OUTPUT_SCHEMAS: {
|
|
|
3416
3745
|
bodies: Record<string, {
|
|
3417
3746
|
dignity: ("domicile" | "exaltation" | "detriment" | "fall")[];
|
|
3418
3747
|
sign: string;
|
|
3748
|
+
score: number;
|
|
3419
3749
|
planetary_sect: "diurnal" | "nocturnal" | null;
|
|
3420
3750
|
in_sect: boolean | null;
|
|
3751
|
+
peregrine?: boolean | undefined;
|
|
3421
3752
|
}>;
|
|
3422
3753
|
sect: "day" | "night";
|
|
3423
3754
|
}>;
|
|
@@ -4037,6 +4368,317 @@ export declare const OUTPUT_SCHEMAS: {
|
|
|
4037
4368
|
}[];
|
|
4038
4369
|
yogakarakas: string[];
|
|
4039
4370
|
}>;
|
|
4371
|
+
readonly aspect_patterns: z.ZodObject<{
|
|
4372
|
+
utc: z.ZodString;
|
|
4373
|
+
houses: z.ZodEnum<["placidus", "whole_sign", "equal", "porphyry", "koch", "regiomontanus", "campanus", "alcabitius", "morinus", "meridian", "polich_page", "vehlow"]>;
|
|
4374
|
+
zodiac: z.ZodOptional<z.ZodEnum<["tropical", "sidereal:lahiri", "sidereal:fagan_bradley", "sidereal:krishnamurti", "sidereal:raman", "sidereal:yukteshwar", "sidereal:galcent_0sag", "sidereal:true_citra"]>>;
|
|
4375
|
+
patterns: z.ZodArray<z.ZodObject<{
|
|
4376
|
+
kind: z.ZodString;
|
|
4377
|
+
bodies: z.ZodArray<z.ZodString, "many">;
|
|
4378
|
+
apex: z.ZodOptional<z.ZodString>;
|
|
4379
|
+
sign: z.ZodOptional<z.ZodString>;
|
|
4380
|
+
house: z.ZodOptional<z.ZodNumber>;
|
|
4381
|
+
orb: z.ZodNumber;
|
|
4382
|
+
}, "strip", z.ZodTypeAny, {
|
|
4383
|
+
orb: number;
|
|
4384
|
+
bodies: string[];
|
|
4385
|
+
kind: string;
|
|
4386
|
+
house?: number | undefined;
|
|
4387
|
+
sign?: string | undefined;
|
|
4388
|
+
apex?: string | undefined;
|
|
4389
|
+
}, {
|
|
4390
|
+
orb: number;
|
|
4391
|
+
bodies: string[];
|
|
4392
|
+
kind: string;
|
|
4393
|
+
house?: number | undefined;
|
|
4394
|
+
sign?: string | undefined;
|
|
4395
|
+
apex?: string | undefined;
|
|
4396
|
+
}>, "many">;
|
|
4397
|
+
}, "strip", z.ZodTypeAny, {
|
|
4398
|
+
utc: string;
|
|
4399
|
+
houses: "placidus" | "whole_sign" | "equal" | "porphyry" | "koch" | "regiomontanus" | "campanus" | "alcabitius" | "morinus" | "meridian" | "polich_page" | "vehlow";
|
|
4400
|
+
patterns: {
|
|
4401
|
+
orb: number;
|
|
4402
|
+
bodies: string[];
|
|
4403
|
+
kind: string;
|
|
4404
|
+
house?: number | undefined;
|
|
4405
|
+
sign?: string | undefined;
|
|
4406
|
+
apex?: string | undefined;
|
|
4407
|
+
}[];
|
|
4408
|
+
zodiac?: "tropical" | "sidereal:lahiri" | "sidereal:fagan_bradley" | "sidereal:krishnamurti" | "sidereal:raman" | "sidereal:yukteshwar" | "sidereal:galcent_0sag" | "sidereal:true_citra" | undefined;
|
|
4409
|
+
}, {
|
|
4410
|
+
utc: string;
|
|
4411
|
+
houses: "placidus" | "whole_sign" | "equal" | "porphyry" | "koch" | "regiomontanus" | "campanus" | "alcabitius" | "morinus" | "meridian" | "polich_page" | "vehlow";
|
|
4412
|
+
patterns: {
|
|
4413
|
+
orb: number;
|
|
4414
|
+
bodies: string[];
|
|
4415
|
+
kind: string;
|
|
4416
|
+
house?: number | undefined;
|
|
4417
|
+
sign?: string | undefined;
|
|
4418
|
+
apex?: string | undefined;
|
|
4419
|
+
}[];
|
|
4420
|
+
zodiac?: "tropical" | "sidereal:lahiri" | "sidereal:fagan_bradley" | "sidereal:krishnamurti" | "sidereal:raman" | "sidereal:yukteshwar" | "sidereal:galcent_0sag" | "sidereal:true_citra" | undefined;
|
|
4421
|
+
}>;
|
|
4422
|
+
readonly chart_signature: z.ZodObject<{
|
|
4423
|
+
utc: z.ZodString;
|
|
4424
|
+
houses: z.ZodEnum<["placidus", "whole_sign", "equal", "porphyry", "koch", "regiomontanus", "campanus", "alcabitius", "morinus", "meridian", "polich_page", "vehlow"]>;
|
|
4425
|
+
zodiac: z.ZodOptional<z.ZodEnum<["tropical", "sidereal:lahiri", "sidereal:fagan_bradley", "sidereal:krishnamurti", "sidereal:raman", "sidereal:yukteshwar", "sidereal:galcent_0sag", "sidereal:true_citra"]>>;
|
|
4426
|
+
signature: z.ZodObject<{
|
|
4427
|
+
elements: z.ZodRecord<z.ZodString, z.ZodNumber>;
|
|
4428
|
+
modalities: z.ZodRecord<z.ZodString, z.ZodNumber>;
|
|
4429
|
+
angularity: z.ZodRecord<z.ZodString, z.ZodNumber>;
|
|
4430
|
+
quadrants: z.ZodRecord<z.ZodString, z.ZodNumber>;
|
|
4431
|
+
hemispheres: z.ZodRecord<z.ZodString, z.ZodNumber>;
|
|
4432
|
+
dominant: z.ZodObject<{
|
|
4433
|
+
element: z.ZodString;
|
|
4434
|
+
modality: z.ZodString;
|
|
4435
|
+
sign: z.ZodNullable<z.ZodString>;
|
|
4436
|
+
}, "strip", z.ZodTypeAny, {
|
|
4437
|
+
sign: string | null;
|
|
4438
|
+
element: string;
|
|
4439
|
+
modality: string;
|
|
4440
|
+
}, {
|
|
4441
|
+
sign: string | null;
|
|
4442
|
+
element: string;
|
|
4443
|
+
modality: string;
|
|
4444
|
+
}>;
|
|
4445
|
+
ruler: z.ZodNullable<z.ZodString>;
|
|
4446
|
+
bodies: z.ZodArray<z.ZodString, "many">;
|
|
4447
|
+
}, "strip", z.ZodTypeAny, {
|
|
4448
|
+
bodies: string[];
|
|
4449
|
+
ruler: string | null;
|
|
4450
|
+
elements: Record<string, number>;
|
|
4451
|
+
modalities: Record<string, number>;
|
|
4452
|
+
angularity: Record<string, number>;
|
|
4453
|
+
quadrants: Record<string, number>;
|
|
4454
|
+
hemispheres: Record<string, number>;
|
|
4455
|
+
dominant: {
|
|
4456
|
+
sign: string | null;
|
|
4457
|
+
element: string;
|
|
4458
|
+
modality: string;
|
|
4459
|
+
};
|
|
4460
|
+
}, {
|
|
4461
|
+
bodies: string[];
|
|
4462
|
+
ruler: string | null;
|
|
4463
|
+
elements: Record<string, number>;
|
|
4464
|
+
modalities: Record<string, number>;
|
|
4465
|
+
angularity: Record<string, number>;
|
|
4466
|
+
quadrants: Record<string, number>;
|
|
4467
|
+
hemispheres: Record<string, number>;
|
|
4468
|
+
dominant: {
|
|
4469
|
+
sign: string | null;
|
|
4470
|
+
element: string;
|
|
4471
|
+
modality: string;
|
|
4472
|
+
};
|
|
4473
|
+
}>;
|
|
4474
|
+
}, "strip", z.ZodTypeAny, {
|
|
4475
|
+
utc: string;
|
|
4476
|
+
houses: "placidus" | "whole_sign" | "equal" | "porphyry" | "koch" | "regiomontanus" | "campanus" | "alcabitius" | "morinus" | "meridian" | "polich_page" | "vehlow";
|
|
4477
|
+
signature: {
|
|
4478
|
+
bodies: string[];
|
|
4479
|
+
ruler: string | null;
|
|
4480
|
+
elements: Record<string, number>;
|
|
4481
|
+
modalities: Record<string, number>;
|
|
4482
|
+
angularity: Record<string, number>;
|
|
4483
|
+
quadrants: Record<string, number>;
|
|
4484
|
+
hemispheres: Record<string, number>;
|
|
4485
|
+
dominant: {
|
|
4486
|
+
sign: string | null;
|
|
4487
|
+
element: string;
|
|
4488
|
+
modality: string;
|
|
4489
|
+
};
|
|
4490
|
+
};
|
|
4491
|
+
zodiac?: "tropical" | "sidereal:lahiri" | "sidereal:fagan_bradley" | "sidereal:krishnamurti" | "sidereal:raman" | "sidereal:yukteshwar" | "sidereal:galcent_0sag" | "sidereal:true_citra" | undefined;
|
|
4492
|
+
}, {
|
|
4493
|
+
utc: string;
|
|
4494
|
+
houses: "placidus" | "whole_sign" | "equal" | "porphyry" | "koch" | "regiomontanus" | "campanus" | "alcabitius" | "morinus" | "meridian" | "polich_page" | "vehlow";
|
|
4495
|
+
signature: {
|
|
4496
|
+
bodies: string[];
|
|
4497
|
+
ruler: string | null;
|
|
4498
|
+
elements: Record<string, number>;
|
|
4499
|
+
modalities: Record<string, number>;
|
|
4500
|
+
angularity: Record<string, number>;
|
|
4501
|
+
quadrants: Record<string, number>;
|
|
4502
|
+
hemispheres: Record<string, number>;
|
|
4503
|
+
dominant: {
|
|
4504
|
+
sign: string | null;
|
|
4505
|
+
element: string;
|
|
4506
|
+
modality: string;
|
|
4507
|
+
};
|
|
4508
|
+
};
|
|
4509
|
+
zodiac?: "tropical" | "sidereal:lahiri" | "sidereal:fagan_bradley" | "sidereal:krishnamurti" | "sidereal:raman" | "sidereal:yukteshwar" | "sidereal:galcent_0sag" | "sidereal:true_citra" | undefined;
|
|
4510
|
+
}>;
|
|
4511
|
+
readonly similar_skies: z.ZodObject<{
|
|
4512
|
+
reference_utc: z.ZodString;
|
|
4513
|
+
matches: z.ZodArray<z.ZodObject<{
|
|
4514
|
+
utc: z.ZodString;
|
|
4515
|
+
similarity: z.ZodNumber;
|
|
4516
|
+
}, "strip", z.ZodTypeAny, {
|
|
4517
|
+
utc: string;
|
|
4518
|
+
similarity: number;
|
|
4519
|
+
}, {
|
|
4520
|
+
utc: string;
|
|
4521
|
+
similarity: number;
|
|
4522
|
+
}>, "many">;
|
|
4523
|
+
}, "strip", z.ZodTypeAny, {
|
|
4524
|
+
reference_utc: string;
|
|
4525
|
+
matches: {
|
|
4526
|
+
utc: string;
|
|
4527
|
+
similarity: number;
|
|
4528
|
+
}[];
|
|
4529
|
+
}, {
|
|
4530
|
+
reference_utc: string;
|
|
4531
|
+
matches: {
|
|
4532
|
+
utc: string;
|
|
4533
|
+
similarity: number;
|
|
4534
|
+
}[];
|
|
4535
|
+
}>;
|
|
4536
|
+
readonly electional_search: z.ZodObject<{
|
|
4537
|
+
start: z.ZodString;
|
|
4538
|
+
end: z.ZodString;
|
|
4539
|
+
moments: z.ZodArray<z.ZodObject<{
|
|
4540
|
+
utc: z.ZodString;
|
|
4541
|
+
score: z.ZodNumber;
|
|
4542
|
+
matched: z.ZodArray<z.ZodObject<{
|
|
4543
|
+
a: z.ZodString;
|
|
4544
|
+
b: z.ZodString;
|
|
4545
|
+
aspect: z.ZodEnum<["conjunction", "sextile", "square", "trine", "opposition"]>;
|
|
4546
|
+
orb: z.ZodNumber;
|
|
4547
|
+
applying: z.ZodBoolean;
|
|
4548
|
+
}, "strip", z.ZodTypeAny, {
|
|
4549
|
+
applying: boolean;
|
|
4550
|
+
a: string;
|
|
4551
|
+
b: string;
|
|
4552
|
+
aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
|
|
4553
|
+
orb: number;
|
|
4554
|
+
}, {
|
|
4555
|
+
applying: boolean;
|
|
4556
|
+
a: string;
|
|
4557
|
+
b: string;
|
|
4558
|
+
aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
|
|
4559
|
+
orb: number;
|
|
4560
|
+
}>, "many">;
|
|
4561
|
+
}, "strip", z.ZodTypeAny, {
|
|
4562
|
+
utc: string;
|
|
4563
|
+
score: number;
|
|
4564
|
+
matched: {
|
|
4565
|
+
applying: boolean;
|
|
4566
|
+
a: string;
|
|
4567
|
+
b: string;
|
|
4568
|
+
aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
|
|
4569
|
+
orb: number;
|
|
4570
|
+
}[];
|
|
4571
|
+
}, {
|
|
4572
|
+
utc: string;
|
|
4573
|
+
score: number;
|
|
4574
|
+
matched: {
|
|
4575
|
+
applying: boolean;
|
|
4576
|
+
a: string;
|
|
4577
|
+
b: string;
|
|
4578
|
+
aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
|
|
4579
|
+
orb: number;
|
|
4580
|
+
}[];
|
|
4581
|
+
}>, "many">;
|
|
4582
|
+
}, "strip", z.ZodTypeAny, {
|
|
4583
|
+
start: string;
|
|
4584
|
+
end: string;
|
|
4585
|
+
moments: {
|
|
4586
|
+
utc: string;
|
|
4587
|
+
score: number;
|
|
4588
|
+
matched: {
|
|
4589
|
+
applying: boolean;
|
|
4590
|
+
a: string;
|
|
4591
|
+
b: string;
|
|
4592
|
+
aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
|
|
4593
|
+
orb: number;
|
|
4594
|
+
}[];
|
|
4595
|
+
}[];
|
|
4596
|
+
}, {
|
|
4597
|
+
start: string;
|
|
4598
|
+
end: string;
|
|
4599
|
+
moments: {
|
|
4600
|
+
utc: string;
|
|
4601
|
+
score: number;
|
|
4602
|
+
matched: {
|
|
4603
|
+
applying: boolean;
|
|
4604
|
+
a: string;
|
|
4605
|
+
b: string;
|
|
4606
|
+
aspect: "conjunction" | "sextile" | "square" | "trine" | "opposition";
|
|
4607
|
+
orb: number;
|
|
4608
|
+
}[];
|
|
4609
|
+
}[];
|
|
4610
|
+
}>;
|
|
4611
|
+
readonly cosmic_weather: z.ZodObject<{
|
|
4612
|
+
utc: z.ZodString;
|
|
4613
|
+
patterns: z.ZodArray<z.ZodObject<{
|
|
4614
|
+
kind: z.ZodString;
|
|
4615
|
+
bodies: z.ZodArray<z.ZodString, "many">;
|
|
4616
|
+
apex: z.ZodOptional<z.ZodString>;
|
|
4617
|
+
sign: z.ZodOptional<z.ZodString>;
|
|
4618
|
+
house: z.ZodOptional<z.ZodNumber>;
|
|
4619
|
+
orb: z.ZodNumber;
|
|
4620
|
+
}, "strip", z.ZodTypeAny, {
|
|
4621
|
+
orb: number;
|
|
4622
|
+
bodies: string[];
|
|
4623
|
+
kind: string;
|
|
4624
|
+
house?: number | undefined;
|
|
4625
|
+
sign?: string | undefined;
|
|
4626
|
+
apex?: string | undefined;
|
|
4627
|
+
}, {
|
|
4628
|
+
orb: number;
|
|
4629
|
+
bodies: string[];
|
|
4630
|
+
kind: string;
|
|
4631
|
+
house?: number | undefined;
|
|
4632
|
+
sign?: string | undefined;
|
|
4633
|
+
apex?: string | undefined;
|
|
4634
|
+
}>, "many">;
|
|
4635
|
+
stationing: z.ZodArray<z.ZodObject<{
|
|
4636
|
+
body: z.ZodString;
|
|
4637
|
+
utc: z.ZodString;
|
|
4638
|
+
direction: z.ZodEnum<["retrograde", "direct"]>;
|
|
4639
|
+
}, "strip", z.ZodTypeAny, {
|
|
4640
|
+
utc: string;
|
|
4641
|
+
body: string;
|
|
4642
|
+
direction: "retrograde" | "direct";
|
|
4643
|
+
}, {
|
|
4644
|
+
utc: string;
|
|
4645
|
+
body: string;
|
|
4646
|
+
direction: "retrograde" | "direct";
|
|
4647
|
+
}>, "many">;
|
|
4648
|
+
moon_void_of_course: z.ZodBoolean;
|
|
4649
|
+
}, "strip", z.ZodTypeAny, {
|
|
4650
|
+
utc: string;
|
|
4651
|
+
patterns: {
|
|
4652
|
+
orb: number;
|
|
4653
|
+
bodies: string[];
|
|
4654
|
+
kind: string;
|
|
4655
|
+
house?: number | undefined;
|
|
4656
|
+
sign?: string | undefined;
|
|
4657
|
+
apex?: string | undefined;
|
|
4658
|
+
}[];
|
|
4659
|
+
stationing: {
|
|
4660
|
+
utc: string;
|
|
4661
|
+
body: string;
|
|
4662
|
+
direction: "retrograde" | "direct";
|
|
4663
|
+
}[];
|
|
4664
|
+
moon_void_of_course: boolean;
|
|
4665
|
+
}, {
|
|
4666
|
+
utc: string;
|
|
4667
|
+
patterns: {
|
|
4668
|
+
orb: number;
|
|
4669
|
+
bodies: string[];
|
|
4670
|
+
kind: string;
|
|
4671
|
+
house?: number | undefined;
|
|
4672
|
+
sign?: string | undefined;
|
|
4673
|
+
apex?: string | undefined;
|
|
4674
|
+
}[];
|
|
4675
|
+
stationing: {
|
|
4676
|
+
utc: string;
|
|
4677
|
+
body: string;
|
|
4678
|
+
direction: "retrograde" | "direct";
|
|
4679
|
+
}[];
|
|
4680
|
+
moon_void_of_course: boolean;
|
|
4681
|
+
}>;
|
|
4040
4682
|
};
|
|
4041
4683
|
export interface BuildServerOptions {
|
|
4042
4684
|
version?: string;
|
package/dist/src/server.js
CHANGED
|
@@ -17,7 +17,7 @@ import { dirname, join } from "node:path";
|
|
|
17
17
|
import { fileURLToPath } from "node:url";
|
|
18
18
|
import { createRequire } from "node:module";
|
|
19
19
|
import { realpathSync } from "node:fs";
|
|
20
|
-
import { Engine, BODIES, julianDay, mod, riseSet, crossings, lunarPhases, stations, lunarEclipses, solarEclipses, ASPECTS, DEFAULT_ORBS, SIGNS as SIGN_NAMES, dignities, normalizeHouseSystem, solarPhase, aspectPhase, planetaryHour, voidOfCourse, CAZIMI_DEG, COMBUST_DEG, UNDER_BEAMS_DEG, solarReturn, lunarReturn, progressedLongitude, directedLongitude, solarArc, progressedJd, compositeLongitudes, davisonParams, midpointLon, dignityOf, isDayChart, planetarySect, inSect, lots, HERMETIC_LOTS, profectionAt, firdaria, firdariaActive, zrRelease, zrActive, lotSpirit, lotFortune, primaryDirections, mundaneDirections, nakshatra, vimshottariDashas, vimshottariAt, yoginiDashas, yoginiAt, ashtottariDashas, ashtottariAt, varga, VARGA_DIVISIONS, yogasAt, kemadrumaAt, rajaYogasAt, dhanaYogasAt, } from "caelus";
|
|
20
|
+
import { Engine, BODIES, julianDay, mod, riseSet, crossings, lunarPhases, stations, lunarEclipses, solarEclipses, ASPECTS, DEFAULT_ORBS, SIGNS as SIGN_NAMES, dignities, normalizeHouseSystem, solarPhase, aspectPhase, planetaryHour, voidOfCourse, CAZIMI_DEG, COMBUST_DEG, UNDER_BEAMS_DEG, solarReturn, lunarReturn, progressedLongitude, directedLongitude, solarArc, progressedJd, compositeLongitudes, davisonParams, midpointLon, dignityOf, isDayChart, planetarySect, inSect, lots, HERMETIC_LOTS, profectionAt, firdaria, firdariaActive, zrRelease, zrActive, lotSpirit, lotFortune, primaryDirections, mundaneDirections, nakshatra, vimshottariDashas, vimshottariAt, yoginiDashas, yoginiAt, ashtottariDashas, ashtottariAt, varga, VARGA_DIVISIONS, yogasAt, kemadrumaAt, rajaYogasAt, dhanaYogasAt, detectPatterns, detectPatternsIn, chartSignature, chartFeatures, searchConfigurations, dignityScore, aspectBetween, } from "caelus";
|
|
21
21
|
import { loadNodeData } from "caelus/node";
|
|
22
22
|
const require = createRequire(import.meta.url);
|
|
23
23
|
// Read our own version relative to this file (dist/src/server.js -> the package
|
|
@@ -339,6 +339,8 @@ export const compositeOut = z.object({
|
|
|
339
339
|
const dignityBody = z.object({
|
|
340
340
|
sign: z.string(),
|
|
341
341
|
dignity: z.array(z.enum(["domicile", "exaltation", "detriment", "fall"])),
|
|
342
|
+
score: z.number(),
|
|
343
|
+
peregrine: z.boolean().optional(),
|
|
342
344
|
planetary_sect: z.enum(["diurnal", "nocturnal"]).nullable(),
|
|
343
345
|
in_sect: z.boolean().nullable(),
|
|
344
346
|
});
|
|
@@ -482,6 +484,62 @@ export const yogasOut = z.object({
|
|
|
482
484
|
dhana_yogas: z.array(lordPairOut),
|
|
483
485
|
yogakarakas: z.array(z.string()),
|
|
484
486
|
});
|
|
487
|
+
export const patternsOut = z.object({
|
|
488
|
+
utc: z.string(),
|
|
489
|
+
houses: z.enum(HOUSE_SYSTEMS),
|
|
490
|
+
zodiac: z.enum(ZODIACS).optional(),
|
|
491
|
+
patterns: z.array(z.object({
|
|
492
|
+
kind: z.string(),
|
|
493
|
+
bodies: z.array(z.string()),
|
|
494
|
+
apex: z.string().optional(),
|
|
495
|
+
sign: z.string().optional(),
|
|
496
|
+
house: z.number().int().optional(),
|
|
497
|
+
orb: z.number(),
|
|
498
|
+
})),
|
|
499
|
+
});
|
|
500
|
+
const countMap = z.record(z.string(), z.number().int());
|
|
501
|
+
export const signatureOut = z.object({
|
|
502
|
+
utc: z.string(),
|
|
503
|
+
houses: z.enum(HOUSE_SYSTEMS),
|
|
504
|
+
zodiac: z.enum(ZODIACS).optional(),
|
|
505
|
+
signature: z.object({
|
|
506
|
+
elements: countMap,
|
|
507
|
+
modalities: countMap,
|
|
508
|
+
angularity: countMap,
|
|
509
|
+
quadrants: countMap,
|
|
510
|
+
hemispheres: countMap,
|
|
511
|
+
dominant: z.object({ element: z.string(), modality: z.string(), sign: z.string().nullable() }),
|
|
512
|
+
ruler: z.string().nullable(),
|
|
513
|
+
bodies: z.array(z.string()),
|
|
514
|
+
}),
|
|
515
|
+
});
|
|
516
|
+
export const similarSkiesOut = z.object({
|
|
517
|
+
reference_utc: z.string(),
|
|
518
|
+
matches: z.array(z.object({ utc: z.string(), similarity: z.number() })),
|
|
519
|
+
});
|
|
520
|
+
export const electionalOut = z.object({
|
|
521
|
+
start: z.string(),
|
|
522
|
+
end: z.string(),
|
|
523
|
+
moments: z.array(z.object({
|
|
524
|
+
utc: z.string(),
|
|
525
|
+
score: z.number(),
|
|
526
|
+
matched: z.array(z.object({
|
|
527
|
+
a: z.string(), b: z.string(), aspect: aspectName, orb: z.number(),
|
|
528
|
+
applying: z.boolean(),
|
|
529
|
+
})),
|
|
530
|
+
})),
|
|
531
|
+
});
|
|
532
|
+
const patternRow = z.object({
|
|
533
|
+
kind: z.string(), bodies: z.array(z.string()),
|
|
534
|
+
apex: z.string().optional(), sign: z.string().optional(),
|
|
535
|
+
house: z.number().int().optional(), orb: z.number(),
|
|
536
|
+
});
|
|
537
|
+
export const cosmicWeatherOut = z.object({
|
|
538
|
+
utc: z.string(),
|
|
539
|
+
patterns: z.array(patternRow),
|
|
540
|
+
stationing: z.array(z.object({ body: z.string(), utc: z.string(), direction: z.enum(["retrograde", "direct"]) })),
|
|
541
|
+
moon_void_of_course: z.boolean(),
|
|
542
|
+
});
|
|
485
543
|
export const OUTPUT_SCHEMAS = {
|
|
486
544
|
natal_chart: chartOut,
|
|
487
545
|
current_sky: chartOut,
|
|
@@ -505,6 +563,11 @@ export const OUTPUT_SCHEMAS = {
|
|
|
505
563
|
dasha: dashaOut,
|
|
506
564
|
vargas: vargasOut,
|
|
507
565
|
yogas: yogasOut,
|
|
566
|
+
aspect_patterns: patternsOut,
|
|
567
|
+
chart_signature: signatureOut,
|
|
568
|
+
similar_skies: similarSkiesOut,
|
|
569
|
+
electional_search: electionalOut,
|
|
570
|
+
cosmic_weather: cosmicWeatherOut,
|
|
508
571
|
};
|
|
509
572
|
export function buildServer(engine = defaultEngine(), opts = {}) {
|
|
510
573
|
const version = opts.version ?? VERSION;
|
|
@@ -903,7 +966,7 @@ export function buildServer(engine = defaultEngine(), opts = {}) {
|
|
|
903
966
|
});
|
|
904
967
|
});
|
|
905
968
|
server.registerTool("dignities", {
|
|
906
|
-
description: "Essential dignity and sect for the seven traditional planets at a moment and place. Per planet: its sign, any essential dignity (domicile/exaltation/detriment/fall), its planetary sect (diurnal/nocturnal, null for Mercury), and whether it is in sect given a day or night chart. The chart is day when the Sun is above the horizon — so lat+lon are required.",
|
|
969
|
+
description: "Essential dignity and sect for the seven traditional planets at a moment and place. Per planet: its sign, any essential dignity (domicile/exaltation/detriment/fall), its weighted essential-dignity score (Lilly: rulership 5, exaltation 4, triplicity 3, term 2, face 1; detriment -5, fall -4) with a peregrine flag, its planetary sect (diurnal/nocturnal, null for Mercury), and whether it is in sect given a day or night chart. The chart is day when the Sun is above the horizon — so lat+lon are required.",
|
|
907
970
|
inputSchema: { ...birth, zodiac: zodiacSchema },
|
|
908
971
|
}, async ({ date, lat, lon, zodiac }) => {
|
|
909
972
|
const jd = jdFromIso(date);
|
|
@@ -911,9 +974,13 @@ export function buildServer(engine = defaultEngine(), opts = {}) {
|
|
|
911
974
|
const bodies = {};
|
|
912
975
|
for (const b of TRADITIONAL) {
|
|
913
976
|
const lonB = engine.longitude(b, jd, { zodiac });
|
|
977
|
+
// Weighted essential-dignity score (Lilly) for this planet at its place.
|
|
978
|
+
const ds = dignityScore(b, lonB, dayChart ? "day" : "night");
|
|
914
979
|
bodies[b] = {
|
|
915
980
|
sign: SIGNS[Math.floor(lonB / 30)],
|
|
916
981
|
dignity: dignityOf(engine, b, jd, zodiac),
|
|
982
|
+
score: ds.total,
|
|
983
|
+
...(ds.peregrine ? { peregrine: true } : {}),
|
|
917
984
|
planetary_sect: planetarySect(b),
|
|
918
985
|
in_sect: inSect(b, dayChart),
|
|
919
986
|
};
|
|
@@ -1179,6 +1246,120 @@ export function buildServer(engine = defaultEngine(), opts = {}) {
|
|
|
1179
1246
|
yogakarakas,
|
|
1180
1247
|
});
|
|
1181
1248
|
});
|
|
1249
|
+
server.registerTool("aspect_patterns", {
|
|
1250
|
+
description: "Classical aspect configurations in a chart: T-squares, grand trines, grand crosses, yods, kites, mystic rectangles, and stelliums by sign and by house. Each is a structured object with the participating bodies and the worst defining-aspect orb; T-squares and yods also name the apex, stelliums their sign or house. Reported patterns are maximal — a grand cross hides the T-squares it contains, a kite its grand trine. Pure geometry (engine orbs plus a quincunx for yods), no interpretation. Needs date, lat, lon.",
|
|
1251
|
+
inputSchema: { ...birth, house_system: houseSys, zodiac: zodiacSchema },
|
|
1252
|
+
}, async ({ date, lat, lon, house_system, zodiac }) => {
|
|
1253
|
+
const d = new Date(date);
|
|
1254
|
+
if (Number.isNaN(d.getTime()))
|
|
1255
|
+
throw new Error(`Invalid date: ${date}`);
|
|
1256
|
+
const c = engine.chart(d.getUTCFullYear(), d.getUTCMonth() + 1, d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), lat, lon, { houseSystem: normalizeHouseSystem(house_system), zodiac });
|
|
1257
|
+
return text({
|
|
1258
|
+
utc: date, houses: c.houseSystem,
|
|
1259
|
+
...(zodiac !== "tropical" ? { zodiac } : {}),
|
|
1260
|
+
patterns: detectPatterns(c),
|
|
1261
|
+
});
|
|
1262
|
+
});
|
|
1263
|
+
server.registerTool("chart_signature", {
|
|
1264
|
+
description: "A chart's structural signature as plain counts: element, modality, angularity, quadrant, and hemisphere distributions over the bodies; the dominant element, modality, and most-occupied sign; and the classical chart ruler (the ruler of the Ascendant's sign). Counts only, no interpretation — a compact summary for emphasis and comparison. Needs date, lat, lon.",
|
|
1265
|
+
inputSchema: { ...birth, house_system: houseSys, zodiac: zodiacSchema },
|
|
1266
|
+
}, async ({ date, lat, lon, house_system, zodiac }) => {
|
|
1267
|
+
const d = new Date(date);
|
|
1268
|
+
if (Number.isNaN(d.getTime()))
|
|
1269
|
+
throw new Error(`Invalid date: ${date}`);
|
|
1270
|
+
const c = engine.chart(d.getUTCFullYear(), d.getUTCMonth() + 1, d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), lat, lon, { houseSystem: normalizeHouseSystem(house_system), zodiac });
|
|
1271
|
+
return text({
|
|
1272
|
+
utc: date, houses: c.houseSystem,
|
|
1273
|
+
...(zodiac !== "tropical" ? { zodiac } : {}),
|
|
1274
|
+
signature: chartSignature(c),
|
|
1275
|
+
});
|
|
1276
|
+
});
|
|
1277
|
+
server.registerTool("similar_skies", {
|
|
1278
|
+
description: "Find when the sky most resembled a reference moment. Builds a feature vector for the reference date's planetary configuration and scans a window for the closest matches by cosine similarity (1.0 = identical configuration). Answers 'when did the sky last look like this?' for transit echoes and historical analogues. Returns the top matches with their similarity, highest first.",
|
|
1279
|
+
inputSchema: {
|
|
1280
|
+
reference_date: z.string().describe("UTC ISO date whose sky is the target to match"),
|
|
1281
|
+
start: z.string().describe("UTC ISO start of the search window"),
|
|
1282
|
+
end: z.string().describe("UTC ISO end of the search window"),
|
|
1283
|
+
step_days: z.number().positive().default(1).describe("sampling step in days (default 1)"),
|
|
1284
|
+
limit: z.number().int().positive().default(10).describe("max matches to return (default 10)"),
|
|
1285
|
+
},
|
|
1286
|
+
}, async ({ reference_date, start, end, step_days, limit }) => {
|
|
1287
|
+
const target = chartFeatures(engine, jdFromIso(reference_date));
|
|
1288
|
+
const matches = searchConfigurations(engine, target, {
|
|
1289
|
+
start: jdFromIso(start), end: jdFromIso(end), step: step_days, limit,
|
|
1290
|
+
});
|
|
1291
|
+
return text({
|
|
1292
|
+
reference_utc: reference_date,
|
|
1293
|
+
matches: matches.map((m) => ({ utc: isoFromJd(m.jd), similarity: Math.round(m.score * 1e4) / 1e4 })),
|
|
1294
|
+
});
|
|
1295
|
+
});
|
|
1296
|
+
server.registerTool("electional_search", {
|
|
1297
|
+
description: "Rank moments in a window for an electional aim. Samples the window and scores each instant by how closely a set of wanted body-to-body aspects is satisfied (tighter and applying aspects score higher), optionally penalizing a void-of-course Moon. Returns the top moments with the aspects that matched. Body-to-body only; for aspects to the angles, compute the chart at a candidate moment.",
|
|
1298
|
+
inputSchema: {
|
|
1299
|
+
start: z.string().describe("UTC ISO start of the window"),
|
|
1300
|
+
end: z.string().describe("UTC ISO end of the window"),
|
|
1301
|
+
wanted: z.array(z.object({
|
|
1302
|
+
a: z.string().describe("first body, snake_case"),
|
|
1303
|
+
b: z.string().describe("second body, snake_case"),
|
|
1304
|
+
aspect: aspectName,
|
|
1305
|
+
})).min(1).describe("aspects to reward when close to exact"),
|
|
1306
|
+
step_hours: z.number().positive().default(6).describe("sampling step in hours (default 6)"),
|
|
1307
|
+
avoid_void_moon: z.boolean().default(false).describe("penalize a void-of-course Moon"),
|
|
1308
|
+
limit: z.number().int().positive().default(10).describe("max moments to return (default 10)"),
|
|
1309
|
+
zodiac: zodiacSchema,
|
|
1310
|
+
},
|
|
1311
|
+
}, async ({ start, end, wanted, step_hours, avoid_void_moon, limit, zodiac }) => {
|
|
1312
|
+
const startJd = jdFromIso(start);
|
|
1313
|
+
const endJd = jdFromIso(end);
|
|
1314
|
+
const stepJd = step_hours / 24;
|
|
1315
|
+
const moments = [];
|
|
1316
|
+
for (let jd = startJd; jd <= endJd + 1e-9; jd += stepJd) {
|
|
1317
|
+
const matched = [];
|
|
1318
|
+
let score = 0;
|
|
1319
|
+
for (const w of wanted) {
|
|
1320
|
+
const m = aspectBetween(engine, w.a, w.b, jd, zodiac);
|
|
1321
|
+
if (m && m.aspect === w.aspect) {
|
|
1322
|
+
const maxOrb = DEFAULT_ORBS[w.aspect] ?? 6;
|
|
1323
|
+
const orb = Math.abs(m.orb); // aspectBetween returns a signed orb
|
|
1324
|
+
const applying = m.phase === "applying";
|
|
1325
|
+
score += Math.max(0, 1 - orb / maxOrb) + (applying ? 0.3 : 0);
|
|
1326
|
+
matched.push({ a: w.a, b: w.b, aspect: w.aspect, orb: r2(orb), applying });
|
|
1327
|
+
}
|
|
1328
|
+
}
|
|
1329
|
+
if (avoid_void_moon && voidOfCourse(engine, jd, zodiac).isVoid)
|
|
1330
|
+
score -= 1;
|
|
1331
|
+
if (matched.length > 0)
|
|
1332
|
+
moments.push({ utc: isoFromJd(jd), score: r2(score), matched });
|
|
1333
|
+
}
|
|
1334
|
+
moments.sort((a, b) => b.score - a.score);
|
|
1335
|
+
return text({ start, end, moments: moments.slice(0, limit) });
|
|
1336
|
+
});
|
|
1337
|
+
server.registerTool("cosmic_weather", {
|
|
1338
|
+
description: "The mundane sky on a date: the active aspect configurations among the transiting planets (T-squares, grand trines, grand crosses, yods, kites, mystic rectangles, stelliums by sign), any planet stationing within a window, and whether the Moon is void of course. A 'cosmic weather' snapshot; no birth chart or location needed.",
|
|
1339
|
+
inputSchema: {
|
|
1340
|
+
date: z.string().describe("UTC ISO date"),
|
|
1341
|
+
window_days: z.number().positive().default(7).describe("days either side to scan for stations (default 7)"),
|
|
1342
|
+
zodiac: zodiacSchema,
|
|
1343
|
+
},
|
|
1344
|
+
}, async ({ date, window_days, zodiac }) => {
|
|
1345
|
+
const jd = jdFromIso(date);
|
|
1346
|
+
const bodies = {};
|
|
1347
|
+
for (const b of BODIES)
|
|
1348
|
+
bodies[b] = { lon: engine.longitude(b, jd, { zodiac }) };
|
|
1349
|
+
const stationing = [];
|
|
1350
|
+
for (const b of ["mercury", "venus", "mars", "jupiter", "saturn", "uranus", "neptune", "pluto"]) {
|
|
1351
|
+
for (const [sjd, direction] of stations(engine, b, jd - window_days, jd + window_days, 2)) {
|
|
1352
|
+
stationing.push({ body: b, utc: isoFromJd(sjd), direction });
|
|
1353
|
+
}
|
|
1354
|
+
}
|
|
1355
|
+
stationing.sort((x, y) => (x.utc < y.utc ? -1 : 1));
|
|
1356
|
+
return text({
|
|
1357
|
+
utc: date,
|
|
1358
|
+
patterns: detectPatternsIn(bodies),
|
|
1359
|
+
stationing,
|
|
1360
|
+
moon_void_of_course: voidOfCourse(engine, jd, zodiac).isVoid,
|
|
1361
|
+
});
|
|
1362
|
+
});
|
|
1182
1363
|
// --------------------------------------------------------- resources
|
|
1183
1364
|
// Chart wheel widget (MCP Apps / Apps SDK). The CSP allowlists the embed
|
|
1184
1365
|
// origin only for loading the widget script (resourceDomains) — no
|
|
@@ -1259,6 +1440,16 @@ if (isMain) {
|
|
|
1259
1440
|
const server = buildServer();
|
|
1260
1441
|
const transport = new StdioServerTransport();
|
|
1261
1442
|
await server.connect(transport);
|
|
1262
|
-
|
|
1443
|
+
// Caelus under the velificatio, in stderr's ASCII. stdout is the protocol
|
|
1444
|
+
// channel, so the banner goes to stderr where hosts collect logs.
|
|
1445
|
+
const arch = String.raw `
|
|
1446
|
+
.-~~~~~-.
|
|
1447
|
+
.' * . '.
|
|
1448
|
+
/ ( o o ) \
|
|
1449
|
+
| > |
|
|
1450
|
+
\ \___/ /
|
|
1451
|
+
'. .'
|
|
1452
|
+
'-_____-'`;
|
|
1453
|
+
console.error(`${arch}\n caelus-mcp v${VERSION} · western + vedic ephemeris · MIT\n listening on stdio\n`);
|
|
1263
1454
|
})();
|
|
1264
1455
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "caelus-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"mcpName": "io.github.heavyblotto/caelus-mcp",
|
|
5
5
|
"description": "MCP server for caelus chart computation.",
|
|
6
6
|
"type": "module",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
17
17
|
"zod": "^3.24.0",
|
|
18
|
-
"caelus": "^0.
|
|
18
|
+
"caelus": "^0.16.0"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"ajv": "^8.17.1"
|