space-data-module-sdk 0.8.15 → 0.8.17

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 (130) hide show
  1. package/bin/space-data-module.js +24 -6
  2. package/docs/_shell/consumer-assets.html +5 -0
  3. package/docs/browser-wasmedge-isomorphic.html +261 -0
  4. package/docs/byo-wasm-quickstart.html +226 -0
  5. package/docs/byo-wasm-quickstart.md +204 -0
  6. package/docs/conformance.html +162 -0
  7. package/docs/conformance.md +20 -4
  8. package/docs/emception-shared-memory-verdict.md +209 -0
  9. package/docs/events-abi.html +313 -0
  10. package/docs/events-abi.md +530 -0
  11. package/docs/families/analytics.html +178 -0
  12. package/docs/families/analytics.md +104 -0
  13. package/docs/families/attitude.html +157 -0
  14. package/docs/families/attitude.md +36 -0
  15. package/docs/families/behavior.html +157 -0
  16. package/docs/families/behavior.md +36 -0
  17. package/docs/families/breakup.html +157 -0
  18. package/docs/families/breakup.md +36 -0
  19. package/docs/families/conjunction.html +186 -0
  20. package/docs/families/conjunction.md +121 -0
  21. package/docs/families/data-source.html +323 -0
  22. package/docs/families/effects.html +157 -0
  23. package/docs/families/effects.md +36 -0
  24. package/docs/families/environment.html +170 -0
  25. package/docs/families/environment.md +73 -0
  26. package/docs/families/estimation.html +192 -0
  27. package/docs/families/estimation.md +158 -0
  28. package/docs/families/gnc.html +157 -0
  29. package/docs/families/gnc.md +36 -0
  30. package/docs/families/maneuver.html +209 -0
  31. package/docs/families/maneuver.md +206 -0
  32. package/docs/families/obstruction.html +191 -0
  33. package/docs/families/obstruction.md +96 -0
  34. package/docs/families/propagator.html +347 -0
  35. package/docs/families/propulsion.html +157 -0
  36. package/docs/families/propulsion.md +36 -0
  37. package/docs/families/reentry.html +157 -0
  38. package/docs/families/reentry.md +36 -0
  39. package/docs/families/rf.html +193 -0
  40. package/docs/families/rf.md +136 -0
  41. package/docs/families/scheduler.html +157 -0
  42. package/docs/families/scheduler.md +36 -0
  43. package/docs/families/sensor.html +157 -0
  44. package/docs/families/sensor.md +36 -0
  45. package/docs/families/signature.html +157 -0
  46. package/docs/families/signature.md +36 -0
  47. package/docs/flatsql-host-contract.html +176 -0
  48. package/docs/flatsql-streaming-standard.html +375 -0
  49. package/docs/gpu-module-abi.html +233 -0
  50. package/docs/harness-family-matrix.md +135 -0
  51. package/docs/index.html +216 -85
  52. package/docs/isomorphic-pthreads.html +228 -0
  53. package/docs/isomorphic-pthreads.md +84 -0
  54. package/docs/isomorphic-sdn-runtime-plan.html +274 -0
  55. package/docs/language-runtime-matrix.html +182 -0
  56. package/docs/llms.txt +86 -0
  57. package/docs/module-bundle-runtime-plan.html +146 -0
  58. package/docs/module-publication-standard.html +503 -0
  59. package/docs/node-red-default-node-parity.html +201 -0
  60. package/docs/propagator-abi.md +97 -12
  61. package/docs/protect-and-sign.html +181 -0
  62. package/docs/protect-and-sign.md +120 -0
  63. package/docs/protocol-installation.html +296 -0
  64. package/docs/provider-access-abi.md +25 -0
  65. package/docs/publication-submission.html +158 -0
  66. package/docs/publication-submission.md +78 -0
  67. package/docs/secrets-capability.html +206 -0
  68. package/docs/styles.css +860 -167
  69. package/docs/testing-harness.html +408 -0
  70. package/docs/tri-runtime-parity-gate.html +182 -0
  71. package/docs/tri-runtime-parity.html +203 -0
  72. package/include/orbpro/orbpro_estimation_abi.h +883 -0
  73. package/include/orbpro/orbpro_event_runner.h +951 -0
  74. package/include/orbpro/orbpro_events_abi.h +565 -0
  75. package/include/orbpro/orbpro_propagator_abi.h +75 -0
  76. package/package.json +13 -4
  77. package/schemas/orbpro/Estimation.fbs +244 -0
  78. package/schemas/orbpro/Events.fbs +501 -0
  79. package/schemas/orbpro/Propagator.fbs +136 -9
  80. package/schemas/orbpro/reference-frame-crosswalk.json +108 -0
  81. package/schemas/orbpro/reference-frame.lock.json +98 -0
  82. package/src/browser.js +13 -0
  83. package/src/conformance/estimationReference.js +81 -0
  84. package/src/conformance/estimationSuite.js +134 -0
  85. package/src/conformance/index.js +39 -2
  86. package/src/generated/orbpro/events-abi.js +206 -0
  87. package/src/generated/orbpro/events-abi.ts +319 -0
  88. package/src/generated/orbpro/propagator/reference-frame.js +17 -0
  89. package/src/generated/orbpro/propagator/reference-frame.ts +91 -1
  90. package/src/generated/orbpro/propagator-abi.js +38 -0
  91. package/src/generated/orbpro/propagator-abi.ts +67 -0
  92. package/src/generated/spacedatastandards/plg/CCT.d.ts +94 -0
  93. package/src/generated/spacedatastandards/plg/CCT.d.ts.map +1 -0
  94. package/src/generated/spacedatastandards/plg/CCT.js +208 -0
  95. package/src/generated/spacedatastandards/plg/CCT.ts +281 -0
  96. package/src/generated/spacedatastandards/plg/CCTCategory.d.ts +98 -0
  97. package/src/generated/spacedatastandards/plg/CCTCategory.d.ts.map +1 -0
  98. package/src/generated/spacedatastandards/plg/CCTCategory.js +177 -0
  99. package/src/generated/spacedatastandards/plg/CCTCategory.ts +269 -0
  100. package/src/generated/spacedatastandards/plg/CCTCategoryRollup.d.ts +54 -0
  101. package/src/generated/spacedatastandards/plg/CCTCategoryRollup.d.ts.map +1 -0
  102. package/src/generated/spacedatastandards/plg/CCTCategoryRollup.js +106 -0
  103. package/src/generated/spacedatastandards/plg/CCTCategoryRollup.ts +144 -0
  104. package/src/generated/spacedatastandards/plg/PLG.d.ts +46 -2
  105. package/src/generated/spacedatastandards/plg/PLG.d.ts.map +1 -1
  106. package/src/generated/spacedatastandards/plg/PLG.js +78 -5
  107. package/src/generated/spacedatastandards/plg/PLG.ts +90 -5
  108. package/src/generated/spacedatastandards/plg/capabilityClass.d.ts +181 -0
  109. package/src/generated/spacedatastandards/plg/capabilityClass.d.ts.map +1 -0
  110. package/src/generated/spacedatastandards/plg/capabilityClass.js +183 -0
  111. package/src/generated/spacedatastandards/plg/capabilityClass.ts +208 -0
  112. package/src/generated/spacedatastandards/plg/main.d.ts +4 -0
  113. package/src/generated/spacedatastandards/plg/main.d.ts.map +1 -1
  114. package/src/generated/spacedatastandards/plg/main.js +4 -0
  115. package/src/generated/spacedatastandards/plg/main.ts +4 -0
  116. package/src/generated/spacedatastandards/plg/pluginCategory.d.ts +40 -2
  117. package/src/generated/spacedatastandards/plg/pluginCategory.d.ts.map +1 -1
  118. package/src/generated/spacedatastandards/plg/pluginCategory.js +40 -2
  119. package/src/generated/spacedatastandards/plg/pluginCategory.ts +40 -2
  120. package/src/host/browserModuleHarness.js +8 -0
  121. package/src/host/wasiThreadHost.js +189 -14
  122. package/src/index.d.ts +18 -1
  123. package/src/standards/sharedCatalog.js +7 -0
  124. package/src/transport/index.js +16 -0
  125. package/src/transport/records.js +1015 -3
  126. package/templates/estimation-module/README.md +24 -0
  127. package/templates/estimation-module/build.mjs +32 -0
  128. package/templates/estimation-module/package.json +12 -0
  129. package/templates/estimation-module/plugin-manifest.json +34 -0
  130. package/templates/estimation-module/src/reference_estimation.cpp +53 -0
@@ -0,0 +1,24 @@
1
+ # Estimation reference module
2
+
3
+ This is the force-model-blind reference implementation for the fixed
4
+ estimation ABI. It demonstrates one covariance-form position update using an
5
+ `OrbProEstimationPropagatorSample` supplied by the caller. It never propagates
6
+ an orbit and never names a provider: production estimators obtain state and
7
+ STM samples from the caller-selected `plugin_propagate` /
8
+ `plugin_compute_stm` port.
9
+
10
+ The reference export is:
11
+
12
+ ```c
13
+ int32_t orbpro_estimation_reference_position_update(
14
+ const OrbProEstimationConfig*,
15
+ const OrbProEstimationObservation*,
16
+ const OrbProEstimationPropagatorSample*,
17
+ OrbProEstimationState*);
18
+ ```
19
+
20
+ It accepts only a three-lane `POSITION_VECTOR` observation. That narrow shape
21
+ is deliberate: the reference proves ABI layout, covariance update, typed
22
+ refusal and deterministic bytes. The estimation conformance kit adjudicates
23
+ full modules against Orekit, Vallado, media, Monte-Carlo and runtime evidence.
24
+ It is not a second JS physics implementation.
@@ -0,0 +1,32 @@
1
+ import fs from "node:fs/promises";
2
+ import { createRequire } from "node:module";
3
+ import path from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+
6
+ import { compileModuleFromSource } from "space-data-module-sdk/compiler";
7
+
8
+ const require = createRequire(import.meta.url);
9
+ const root = fileURLToPath(new URL(".", import.meta.url));
10
+ const manifest = JSON.parse(await fs.readFile(path.join(root, "plugin-manifest.json"), "utf8"));
11
+ const source = await fs.readFile(path.join(root, "src/reference_estimation.cpp"), "utf8");
12
+ const propagatorHeader = await fs.readFile(
13
+ require.resolve("space-data-module-sdk/include/orbpro/orbpro_propagator_abi.h"), "utf8");
14
+ const estimationHeader = (await fs.readFile(
15
+ require.resolve("space-data-module-sdk/include/orbpro/orbpro_estimation_abi.h"), "utf8"))
16
+ .replace('#include "orbpro/orbpro_propagator_abi.h"', "");
17
+ const translationUnit = source
18
+ .replace('#include "orbpro/orbpro_propagator_abi.h"', propagatorHeader)
19
+ .replace('#include "orbpro/orbpro_estimation_abi.h"', estimationHeader);
20
+ const outputPath = path.join(root, "dist/isomorphic/module.wasm");
21
+ await fs.rm(path.join(root, "dist"), { recursive: true, force: true });
22
+ await fs.mkdir(path.dirname(outputPath), { recursive: true });
23
+ const result = await compileModuleFromSource({
24
+ manifest,
25
+ sourceCode: translationUnit,
26
+ language: "c++",
27
+ outputPath,
28
+ threadModel: manifest.threadModel,
29
+ });
30
+ if (!result.report?.ok) throw new Error(JSON.stringify(result.report?.issues ?? [], null, 2));
31
+ await fs.copyFile(path.join(root, "plugin-manifest.json"), path.join(root, "dist/plugin-manifest.json"));
32
+ console.log(`Built ${path.relative(root, outputPath)} with ${result.compiler}`);
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "space-data-network-module-estimation-reference",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "scripts": {
7
+ "build": "node build.mjs"
8
+ },
9
+ "dependencies": {
10
+ "space-data-module-sdk": "^0.8.16"
11
+ }
12
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "pluginId": "com.orbpro.estimation.reference",
3
+ "name": "Estimation ABI Reference",
4
+ "version": "0.1.0",
5
+ "description": "Force-model-blind covariance update reference for the ratified estimation ABI.",
6
+ "pluginFamily": "analysis",
7
+ "capabilities": [],
8
+ "externalInterfaces": [],
9
+ "invokeSurfaces": ["direct"],
10
+ "runtimeTargets": ["browser", "wasmedge"],
11
+ "threadModel": "wasi-sequential",
12
+ "sequentialJustification": {
13
+ "kind": "inherently-sequential-algorithm",
14
+ "detail": "One six-state covariance update is order-dependent and small; callers parallelize independent tracks. The artifact still uses the sanctioned wasm32-wasip1-threads compiler lane."
15
+ },
16
+ "methods": [
17
+ {
18
+ "methodId": "abi_probe",
19
+ "displayName": "ABI Probe",
20
+ "description": "Returns success after the artifact has instantiated; estimation data uses the fixed direct export documented in README.md.",
21
+ "inputPorts": [],
22
+ "outputPorts": [],
23
+ "maxBatch": 1,
24
+ "drainPolicy": "single-shot"
25
+ }
26
+ ],
27
+ "schemasUsed": [
28
+ {"schemaName": "Estimation.fbs", "fileIdentifier": "$EST", "rootTypeName": "EstimationEnvelope"}
29
+ ],
30
+ "buildArtifacts": [
31
+ {"artifactId": "estimation-reference-isomorphic", "kind": "wasm", "path": "dist/isomorphic/module.wasm", "target": "browser,wasmedge"}
32
+ ],
33
+ "abiVersion": 1
34
+ }
@@ -0,0 +1,53 @@
1
+ #include "orbpro/orbpro_propagator_abi.h"
2
+ #include "orbpro/orbpro_estimation_abi.h"
3
+
4
+ #include <cmath>
5
+ #include <cstdint>
6
+
7
+ #if defined(__wasm__)
8
+ #define ESTIMATION_EXPORT(name) __attribute__((export_name(name))) extern "C"
9
+ #else
10
+ #define ESTIMATION_EXPORT(name) extern "C"
11
+ #endif
12
+
13
+ extern "C" int abi_probe(void) { return 0; }
14
+
15
+ ESTIMATION_EXPORT("orbpro_estimation_reference_position_update")
16
+ int32_t orbpro_estimation_reference_position_update(
17
+ const OrbProEstimationConfig* config,
18
+ const OrbProEstimationObservation* observation,
19
+ const OrbProEstimationPropagatorSample* sample,
20
+ OrbProEstimationState* output) {
21
+ if (config == nullptr || observation == nullptr || sample == nullptr || output == nullptr) {
22
+ return ORBPRO_ESTIMATION_NULL_OUTPUT;
23
+ }
24
+ if (observation->kind != ORBPRO_MEASUREMENT_POSITION_VECTOR ||
25
+ observation->value_count != 3) {
26
+ return ORBPRO_ESTIMATION_BAD_INPUT;
27
+ }
28
+
29
+ orbpro_estimation_state_init(output);
30
+ output->epoch[0] = sample->epoch[0];
31
+ output->epoch[1] = sample->epoch[1];
32
+ for (int axis = 0; axis < 6; ++axis) {
33
+ output->state[axis] = sample->state[axis];
34
+ for (int column = 0; column < 6; ++column) {
35
+ output->covariance[axis * 6 + column] = config->initial_covariance[axis * 6 + column];
36
+ }
37
+ }
38
+ for (int axis = 0; axis < 3; ++axis) {
39
+ const double prior = output->covariance[axis * 6 + axis];
40
+ const double sigma = observation->sigma[axis];
41
+ if (!(prior > 0.0) || !(sigma > 0.0) || !std::isfinite(sigma)) {
42
+ return ORBPRO_ESTIMATION_BAD_INPUT;
43
+ }
44
+ const double measurement_variance = sigma * sigma;
45
+ const double gain = prior / (prior + measurement_variance);
46
+ output->state[axis] += gain * (observation->value[axis] - output->state[axis]);
47
+ output->covariance[axis * 6 + axis] = (1.0 - gain) * prior;
48
+ }
49
+ output->accepted_count = 1;
50
+ output->converged = 1;
51
+ output->estimator = ORBPRO_ESTIMATOR_EXTENDED_KALMAN_FILTER;
52
+ return ORBPRO_ESTIMATION_OK;
53
+ }