kshana 0.23.0 → 0.25.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 +8 -8
- package/kshana-sbom.cdx.json +3 -3
- package/kshana.d.ts +23 -0
- package/kshana.js +83 -0
- package/kshana_bg.wasm +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
|
|
16
16
|
<p align="center">
|
|
17
17
|
<a href="https://github.com/AshfordeOU/kshana/blob/main/tests/sgp4_verification.rs"><img src="https://img.shields.io/badge/SGP4-666%2F666%20AIAA%20vectors%20%C2%B7%204.12mm-3fb950" alt="SGP4 validated against all 666 AIAA 2006-6753 vectors, worst 4.12 mm"></a>
|
|
18
|
-
<a href="https://github.com/AshfordeOU/kshana#validation-at-a-glance"><img src="https://img.shields.io/badge/validated-
|
|
19
|
-
<a href="https://github.com/AshfordeOU/kshana/releases"><img src="https://img.shields.io/badge/release-v0.
|
|
20
|
-
<a href="https://
|
|
18
|
+
<a href="https://github.com/AshfordeOU/kshana#validation-at-a-glance"><img src="https://img.shields.io/badge/validated-56%20external%20oracles-3fb950" alt="56 of 102 capabilities validated against independent external oracles"></a>
|
|
19
|
+
<a href="https://github.com/AshfordeOU/kshana/releases"><img src="https://img.shields.io/badge/release-v0.25.0-c79e63" alt="Release v0.25.0"></a>
|
|
20
|
+
<a href="https://kshana.dev"><img src="https://img.shields.io/badge/playground-try%20in%20browser-c79e63" alt="Live playground — run in your browser, no install"></a>
|
|
21
21
|
<a href="https://github.com/AshfordeOU/kshana/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-AGPL_v3-blue.svg" alt="License: AGPL-3.0-only"></a>
|
|
22
22
|
<a href="https://doi.org/10.5281/zenodo.20528627"><img src="https://img.shields.io/badge/DOI-10.5281%2Fzenodo.20528627-blue.svg" alt="DOI 10.5281/zenodo.20528627"></a>
|
|
23
23
|
</p>
|
|
@@ -32,8 +32,8 @@ parameter is traceable to a published source.
|
|
|
32
32
|
> ***Validated, not asserted.*** 666/666 AIAA SGP4 vectors to **4.12 mm** · Cowell
|
|
33
33
|
> force model **0.08 m** vs Orekit 12.2 · Galileo **0.61 m** / Swarm-A **0.10 m** vs
|
|
34
34
|
> real ESA precise ephemerides · GCRS→ITRS bit-for-bit vs SOFA/ERFA · ML metrics exact
|
|
35
|
-
> vs scikit-learn · **
|
|
36
|
-
> oracles;
|
|
35
|
+
> vs scikit-learn · **56 of 102** capabilities validated against independent external
|
|
36
|
+
> oracles; 42 honestly labelled Modelled, 4 partner-owned.
|
|
37
37
|
|
|
38
38
|
<p align="center">
|
|
39
39
|
<img src="https://raw.githubusercontent.com/AshfordeOU/kshana/main/docs/assets/diagrams/system-overview.png" alt="Kshana system overview: five front doors (CLI, Python wheel, WebAssembly playground, MCP server, JetBrains plugin) converge on a single api::run_toml dispatch, through the engine, to a reproducible result.json + chart.svg" width="840">
|
|
@@ -51,7 +51,7 @@ parameter is traceable to a published source.
|
|
|
51
51
|
| ✅ | GNSS DOP · ML detector metrics | to **1e-6** · to **1e-9** | gnss_lib_py · scikit-learn |
|
|
52
52
|
|
|
53
53
|
<p align="center">
|
|
54
|
-
<img src="https://raw.githubusercontent.com/AshfordeOU/kshana/main/docs/assets/figures/validation-breakdown.png" alt="Verification status across all
|
|
54
|
+
<img src="https://raw.githubusercontent.com/AshfordeOU/kshana/main/docs/assets/figures/validation-breakdown.png" alt="Verification status across all 102 capabilities: 56 Validated, 42 Modelled, 4 Partner-owned" width="780">
|
|
55
55
|
</p>
|
|
56
56
|
|
|
57
57
|
## Install
|
|
@@ -81,7 +81,7 @@ const { json, svg } = run_full(toml);
|
|
|
81
81
|
Beyond `run` / `run_full` / `version`, the module also exports `summary` (the one-line
|
|
82
82
|
result string), `list_kinds` / `error_kind` (introspection), and
|
|
83
83
|
`encode_permalink` / `decode_permalink` — the shareable-URL codec the
|
|
84
|
-
[playground](https://
|
|
84
|
+
[playground](https://kshana.dev) uses to round-trip a whole scenario through the
|
|
85
85
|
address-bar fragment.
|
|
86
86
|
|
|
87
87
|
Every figure of merit is labelled **validated** or **modelled**; optical-clock figures
|
|
@@ -92,7 +92,7 @@ navigation is simulation-validated; real-mission deep-space OD is on the roadmap
|
|
|
92
92
|
## Learn more
|
|
93
93
|
|
|
94
94
|
- **Full README & validation matrix** → <https://github.com/AshfordeOU/kshana>
|
|
95
|
-
- **Live playground** → <https://
|
|
95
|
+
- **Live playground** → <https://kshana.dev>
|
|
96
96
|
- **Capabilities** → [docs/CAPABILITY.md](https://github.com/AshfordeOU/kshana/blob/main/docs/CAPABILITY.md)
|
|
97
97
|
- **Validation & provenance** → [docs/VALIDATION.md](https://github.com/AshfordeOU/kshana/blob/main/docs/VALIDATION.md) · [docs/PROVENANCE.md](https://github.com/AshfordeOU/kshana/blob/main/docs/PROVENANCE.md)
|
|
98
98
|
|
package/kshana-sbom.cdx.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"bomFormat": "CycloneDX",
|
|
3
3
|
"specVersion": "1.5",
|
|
4
|
-
"serialNumber": "urn:uuid:
|
|
4
|
+
"serialNumber": "urn:uuid:4fd7e47c-819f-ee15-0566-8651aca3bb00",
|
|
5
5
|
"version": 1,
|
|
6
6
|
"metadata": {
|
|
7
7
|
"component": {
|
|
@@ -380,8 +380,8 @@
|
|
|
380
380
|
{
|
|
381
381
|
"type": "library",
|
|
382
382
|
"name": "kshana",
|
|
383
|
-
"version": "0.
|
|
384
|
-
"purl": "pkg:cargo/kshana@0.
|
|
383
|
+
"version": "0.25.0",
|
|
384
|
+
"purl": "pkg:cargo/kshana@0.25.0",
|
|
385
385
|
"licenses": [
|
|
386
386
|
{
|
|
387
387
|
"license": {
|
package/kshana.d.ts
CHANGED
|
@@ -24,6 +24,26 @@ export function encode_permalink(toml: string): string;
|
|
|
24
24
|
*/
|
|
25
25
|
export function error_kind(toml: string): string;
|
|
26
26
|
|
|
27
|
+
/**
|
|
28
|
+
* Export the velocity-carrying state as a **CCSDS OEM 2.0** ephemeris string for
|
|
29
|
+
* flight-dynamics tools (GMAT / Orekit / STK; the CLI `--export-oem` artifact). Pure
|
|
30
|
+
* client-side.
|
|
31
|
+
*/
|
|
32
|
+
export function export_oem(toml: string): string;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Export a constellation's mean elements as a **CCSDS OMM** catalogue string (one OMM
|
|
36
|
+
* message per TLE-defined satellite; the CLI `--export-omm` artifact). Pure client-side.
|
|
37
|
+
*/
|
|
38
|
+
export function export_omm(toml: string): string;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Export a propagated constellation scenario as an **SP3-c** precise-ephemeris string
|
|
42
|
+
* (the same artifact the CLI `--export-sp3` flag writes). Pure client-side; nothing is
|
|
43
|
+
* uploaded. Throws a JS error if the scenario cannot produce an SP3 (e.g. a non-orbit kind).
|
|
44
|
+
*/
|
|
45
|
+
export function export_sp3(toml: string): string;
|
|
46
|
+
|
|
27
47
|
/**
|
|
28
48
|
* List the available scenario kinds and their metadata as a JSON array (name,
|
|
29
49
|
* description, required and optional fields), for programmatic introspection.
|
|
@@ -54,6 +74,9 @@ export interface InitOutput {
|
|
|
54
74
|
readonly decode_permalink: (a: number, b: number) => [number, number];
|
|
55
75
|
readonly encode_permalink: (a: number, b: number) => [number, number];
|
|
56
76
|
readonly error_kind: (a: number, b: number) => [number, number];
|
|
77
|
+
readonly export_oem: (a: number, b: number) => [number, number, number, number];
|
|
78
|
+
readonly export_omm: (a: number, b: number) => [number, number, number, number];
|
|
79
|
+
readonly export_sp3: (a: number, b: number) => [number, number, number, number];
|
|
57
80
|
readonly list_kinds: () => [number, number];
|
|
58
81
|
readonly run: (a: number, b: number) => [number, number, number, number];
|
|
59
82
|
readonly summary: (a: number, b: number) => [number, number, number, number];
|
package/kshana.js
CHANGED
|
@@ -89,6 +89,89 @@ export function error_kind(toml) {
|
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
+
/**
|
|
93
|
+
* Export the velocity-carrying state as a **CCSDS OEM 2.0** ephemeris string for
|
|
94
|
+
* flight-dynamics tools (GMAT / Orekit / STK; the CLI `--export-oem` artifact). Pure
|
|
95
|
+
* client-side.
|
|
96
|
+
* @param {string} toml
|
|
97
|
+
* @returns {string}
|
|
98
|
+
*/
|
|
99
|
+
export function export_oem(toml) {
|
|
100
|
+
let deferred3_0;
|
|
101
|
+
let deferred3_1;
|
|
102
|
+
try {
|
|
103
|
+
const ptr0 = passStringToWasm0(toml, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
104
|
+
const len0 = WASM_VECTOR_LEN;
|
|
105
|
+
const ret = wasm.export_oem(ptr0, len0);
|
|
106
|
+
var ptr2 = ret[0];
|
|
107
|
+
var len2 = ret[1];
|
|
108
|
+
if (ret[3]) {
|
|
109
|
+
ptr2 = 0; len2 = 0;
|
|
110
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
111
|
+
}
|
|
112
|
+
deferred3_0 = ptr2;
|
|
113
|
+
deferred3_1 = len2;
|
|
114
|
+
return getStringFromWasm0(ptr2, len2);
|
|
115
|
+
} finally {
|
|
116
|
+
wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Export a constellation's mean elements as a **CCSDS OMM** catalogue string (one OMM
|
|
122
|
+
* message per TLE-defined satellite; the CLI `--export-omm` artifact). Pure client-side.
|
|
123
|
+
* @param {string} toml
|
|
124
|
+
* @returns {string}
|
|
125
|
+
*/
|
|
126
|
+
export function export_omm(toml) {
|
|
127
|
+
let deferred3_0;
|
|
128
|
+
let deferred3_1;
|
|
129
|
+
try {
|
|
130
|
+
const ptr0 = passStringToWasm0(toml, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
131
|
+
const len0 = WASM_VECTOR_LEN;
|
|
132
|
+
const ret = wasm.export_omm(ptr0, len0);
|
|
133
|
+
var ptr2 = ret[0];
|
|
134
|
+
var len2 = ret[1];
|
|
135
|
+
if (ret[3]) {
|
|
136
|
+
ptr2 = 0; len2 = 0;
|
|
137
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
138
|
+
}
|
|
139
|
+
deferred3_0 = ptr2;
|
|
140
|
+
deferred3_1 = len2;
|
|
141
|
+
return getStringFromWasm0(ptr2, len2);
|
|
142
|
+
} finally {
|
|
143
|
+
wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Export a propagated constellation scenario as an **SP3-c** precise-ephemeris string
|
|
149
|
+
* (the same artifact the CLI `--export-sp3` flag writes). Pure client-side; nothing is
|
|
150
|
+
* uploaded. Throws a JS error if the scenario cannot produce an SP3 (e.g. a non-orbit kind).
|
|
151
|
+
* @param {string} toml
|
|
152
|
+
* @returns {string}
|
|
153
|
+
*/
|
|
154
|
+
export function export_sp3(toml) {
|
|
155
|
+
let deferred3_0;
|
|
156
|
+
let deferred3_1;
|
|
157
|
+
try {
|
|
158
|
+
const ptr0 = passStringToWasm0(toml, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
159
|
+
const len0 = WASM_VECTOR_LEN;
|
|
160
|
+
const ret = wasm.export_sp3(ptr0, len0);
|
|
161
|
+
var ptr2 = ret[0];
|
|
162
|
+
var len2 = ret[1];
|
|
163
|
+
if (ret[3]) {
|
|
164
|
+
ptr2 = 0; len2 = 0;
|
|
165
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
166
|
+
}
|
|
167
|
+
deferred3_0 = ptr2;
|
|
168
|
+
deferred3_1 = len2;
|
|
169
|
+
return getStringFromWasm0(ptr2, len2);
|
|
170
|
+
} finally {
|
|
171
|
+
wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
92
175
|
/**
|
|
93
176
|
* List the available scenario kinds and their metadata as a JSON array (name,
|
|
94
177
|
* description, required and optional fields), for programmatic introspection.
|
package/kshana_bg.wasm
CHANGED
|
Binary file
|
package/package.json
CHANGED