space-data-module-sdk 0.8.14 → 0.8.16

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 (125) hide show
  1. package/bin/space-data-module.js +91 -0
  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 +156 -0
  7. package/docs/conformance.md +92 -0
  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 +318 -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 +190 -0
  27. package/docs/families/estimation.md +128 -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 +333 -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 +73 -21
  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/publication-submission.html +158 -0
  65. package/docs/publication-submission.md +78 -0
  66. package/docs/secrets-capability.html +206 -0
  67. package/docs/styles.css +860 -167
  68. package/docs/testing-harness.html +408 -0
  69. package/docs/tri-runtime-parity-gate.html +182 -0
  70. package/docs/tri-runtime-parity.html +203 -0
  71. package/include/orbpro/orbpro_event_runner.h +951 -0
  72. package/include/orbpro/orbpro_events_abi.h +565 -0
  73. package/include/orbpro/orbpro_propagator_abi.h +17 -0
  74. package/package.json +15 -5
  75. package/schemas/orbpro/Events.fbs +501 -0
  76. package/schemas/orbpro/Propagator.fbs +72 -9
  77. package/schemas/orbpro/reference-frame-crosswalk.json +108 -0
  78. package/schemas/orbpro/reference-frame.lock.json +98 -0
  79. package/src/browser.js +13 -0
  80. package/src/conformance/abiDriver.js +225 -0
  81. package/src/conformance/index.js +151 -0
  82. package/src/conformance/propagatorSuite.js +526 -0
  83. package/src/conformance/selfTest.js +275 -0
  84. package/src/conformance/selfTestCorpus.js +68 -0
  85. package/src/conformance/twoBodyReference.js +132 -0
  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 +17 -0
  91. package/src/generated/orbpro/propagator-abi.ts +17 -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/testing/isomorphicHarness.js +233 -0
  124. package/src/transport/index.js +16 -0
  125. package/src/transport/records.js +1015 -3
@@ -17,6 +17,7 @@ import { PLGProtocolSpec, PLGProtocolSpecT } from './PLGProtocolSpec.js';
17
17
  import { PLGTimerSpec, PLGTimerSpecT } from './PLGTimerSpec.js';
18
18
  import { PluginCapability, PluginCapabilityT } from './PluginCapability.js';
19
19
  import { PluginDependency, PluginDependencyT } from './PluginDependency.js';
20
+ import { capabilityClass } from './capabilityClass.js';
20
21
  import { invokeSurfaceKind } from './invokeSurfaceKind.js';
21
22
  import { pluginCategory } from './pluginCategory.js';
22
23
  import { publicationState } from './publicationState.js';
@@ -704,8 +705,61 @@ flowTriggerBindingsLength():number {
704
705
  return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;
705
706
  }
706
707
 
708
+ /**
709
+ * The one ratified $CCT category this module is shelved under. This is the
710
+ * category a storefront capsule, a library shelf and a breadcrumb show when
711
+ * exactly one must be chosen. UNSPECIFIED means the publisher did not
712
+ * classify the module; a consumer renders it ungrouped and never guesses.
713
+ *
714
+ * This supersedes PLUGIN_TYPE for all storefront, library and search
715
+ * surfaces. PLUGIN_TYPE remains on the wire and is not removed, but its
716
+ * `pluginCategory` vocabulary mixes capability families with node-internal
717
+ * plumbing, carries a legacy vendor-derived member, holds a real family at
718
+ * ordinal 0, and admits only one value. Canonical migration, applied by a
719
+ * publisher rewriting an old manifest:
720
+ * Sensor->SENSORS_AND_COVERAGE, Propagator->PROPAGATION,
721
+ * Renderer->VISUALIZATION_AND_RENDERING,
722
+ * Analysis->MISSION_DESIGN_AND_ANALYSIS,
723
+ * DataSource->DATA_SOURCES_AND_INGEST, EW->ELECTRONIC_WARFARE,
724
+ * Comms->RF_AND_COMMUNICATIONS, Physics->SPACE_ENVIRONMENT,
725
+ * Shader->VISUALIZATION_AND_RENDERING, Parser->DATA_SOURCES_AND_INGEST,
726
+ * Validator->DATA_VALIDATION_AND_QUALITY, Interpolator->PROPAGATION,
727
+ * Exporter->DATA_SOURCES_AND_INGEST, Foundation->FOUNDATION_AND_MATH,
728
+ * Infrastructure->NODE_INFRASTRUCTURE, Licensing->COMMERCE_AND_LICENSING,
729
+ * Storefront->COMMERCE_AND_LICENSING, Publisher->NODE_INFRASTRUCTURE,
730
+ * Basilisk->PROPAGATION, Maneuver->MANEUVER_PLANNING,
731
+ * Flow->FLOW_AND_COMPOSITION, Unspecified->UNSPECIFIED.
732
+ * The mapping is one-way: PRIMARY_CATEGORY is never back-derived into
733
+ * PLUGIN_TYPE.
734
+ */
735
+ PRIMARY_CATEGORY():capabilityClass {
736
+ const offset = this.bb!.__offset(this.bb_pos, 116);
737
+ return offset ? this.bb!.readUint8(this.bb_pos + offset) : capabilityClass.UNSPECIFIED;
738
+ }
739
+
740
+ /**
741
+ * Every ratified $CCT category this module belongs to, for browse, filter
742
+ * and per-category counting. A module MAY carry several. If nonempty it
743
+ * MUST include PRIMARY_CATEGORY. Codes MUST NOT repeat. An empty list with
744
+ * a set PRIMARY_CATEGORY means the module belongs to that one category.
745
+ */
746
+ CATEGORIES(index: number):capabilityClass|null {
747
+ const offset = this.bb!.__offset(this.bb_pos, 118);
748
+ return offset ? this.bb!.readUint8(this.bb!.__vector(this.bb_pos + offset) + index) : null;
749
+ }
750
+
751
+ categoriesLength():number {
752
+ const offset = this.bb!.__offset(this.bb_pos, 118);
753
+ return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;
754
+ }
755
+
756
+ categoriesArray():Uint8Array|null {
757
+ const offset = this.bb!.__offset(this.bb_pos, 118);
758
+ return offset ? new Uint8Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null;
759
+ }
760
+
707
761
  static startPLG(builder:flatbuffers.Builder) {
708
- builder.startObject(56);
762
+ builder.startObject(58);
709
763
  }
710
764
 
711
765
  static addPluginId(builder:flatbuffers.Builder, PLUGIN_IDOffset:flatbuffers.Offset) {
@@ -1232,6 +1286,26 @@ static startFlowTriggerBindingsVector(builder:flatbuffers.Builder, numElems:numb
1232
1286
  builder.startVector(4, numElems, 4);
1233
1287
  }
1234
1288
 
1289
+ static addPrimaryCategory(builder:flatbuffers.Builder, PRIMARY_CATEGORY:capabilityClass) {
1290
+ builder.addFieldInt8(56, PRIMARY_CATEGORY, capabilityClass.UNSPECIFIED);
1291
+ }
1292
+
1293
+ static addCategories(builder:flatbuffers.Builder, CATEGORIESOffset:flatbuffers.Offset) {
1294
+ builder.addFieldOffset(57, CATEGORIESOffset, 0);
1295
+ }
1296
+
1297
+ static createCategoriesVector(builder:flatbuffers.Builder, data:capabilityClass[]):flatbuffers.Offset {
1298
+ builder.startVector(1, data.length, 1);
1299
+ for (let i = data.length - 1; i >= 0; i--) {
1300
+ builder.addInt8(data[i]!);
1301
+ }
1302
+ return builder.endVector();
1303
+ }
1304
+
1305
+ static startCategoriesVector(builder:flatbuffers.Builder, numElems:number) {
1306
+ builder.startVector(1, numElems, 1);
1307
+ }
1308
+
1235
1309
  static endPLG(builder:flatbuffers.Builder):flatbuffers.Offset {
1236
1310
  const offset = builder.endObject();
1237
1311
  builder.requiredField(offset, 4) // PLUGIN_ID
@@ -1248,7 +1322,7 @@ static finishSizePrefixedPLGBuffer(builder:flatbuffers.Builder, offset:flatbuffe
1248
1322
  builder.finish(offset, '$PLG', true);
1249
1323
  }
1250
1324
 
1251
- static createPLG(builder:flatbuffers.Builder, PLUGIN_IDOffset:flatbuffers.Offset, NAMEOffset:flatbuffers.Offset, VERSIONOffset:flatbuffers.Offset, DESCRIPTIONOffset:flatbuffers.Offset, TAGLINEOffset:flatbuffers.Offset, PLUGIN_TYPE:pluginCategory, PUBLISHER_NAMEOffset:flatbuffers.Offset, PUBLISHER_HANDLEOffset:flatbuffers.Offset, PUBLISHER_URLOffset:flatbuffers.Offset, SUPPORT_URLOffset:flatbuffers.Offset, TAGSOffset:flatbuffers.Offset, FEATURESOffset:flatbuffers.Offset, SCREENSHOT_URLSOffset:flatbuffers.Offset, BANNER_URLOffset:flatbuffers.Offset, ABI_VERSION:number, WASM_HASHOffset:flatbuffers.Offset, WASM_SIZE:bigint, WASM_CIDOffset:flatbuffers.Offset, ENCRYPTED_WASM_HASHOffset:flatbuffers.Offset, ENCRYPTED_WASM_SIZE:bigint, ENTRY_FUNCTIONSOffset:flatbuffers.Offset, REQUIRED_SCHEMASOffset:flatbuffers.Offset, DEPENDENCIESOffset:flatbuffers.Offset, CAPABILITIESOffset:flatbuffers.Offset, PROVIDER_PEER_IDOffset:flatbuffers.Offset, PROVIDER_EPM_CIDOffset:flatbuffers.Offset, ENCRYPTED:boolean, REQUIRED_SCOPEOffset:flatbuffers.Offset, KEY_IDOffset:flatbuffers.Offset, MAX_GRANT_TIMEOUT_MS:bigint, MIN_PERMISSIONSOffset:flatbuffers.Offset, CREATED_AT:bigint, UPDATED_AT:bigint, DOCUMENTATION_URLOffset:flatbuffers.Offset, CHANGELOG_URLOffset:flatbuffers.Offset, ICON_URLOffset:flatbuffers.Offset, LICENSEOffset:flatbuffers.Offset, PAYMENT_MODEL:purchaseTier, PRICE_USD_CENTS:number, SUBSCRIPTION_PERIOD_DAYS:number, ACCEPTED_PAYMENT_METHODSOffset:flatbuffers.Offset, LISTING_STATUS:publicationState, SIGNATUREOffset:flatbuffers.Offset, INVOKE_SURFACESOffset:flatbuffers.Offset, METHODSOffset:flatbuffers.Offset, HOST_CAPABILITIESOffset:flatbuffers.Offset, TIMERSOffset:flatbuffers.Offset, PROTOCOLSOffset:flatbuffers.Offset, SCHEMAS_USEDOffset:flatbuffers.Offset, BUILD_ARTIFACTSOffset:flatbuffers.Offset, RUNTIME_TARGETSOffset:flatbuffers.Offset, ALLOWED_XPUBSOffset:flatbuffers.Offset, FLOW_NODESOffset:flatbuffers.Offset, FLOW_EDGESOffset:flatbuffers.Offset, FLOW_TRIGGERSOffset:flatbuffers.Offset, FLOW_TRIGGER_BINDINGSOffset:flatbuffers.Offset):flatbuffers.Offset {
1325
+ static createPLG(builder:flatbuffers.Builder, PLUGIN_IDOffset:flatbuffers.Offset, NAMEOffset:flatbuffers.Offset, VERSIONOffset:flatbuffers.Offset, DESCRIPTIONOffset:flatbuffers.Offset, TAGLINEOffset:flatbuffers.Offset, PLUGIN_TYPE:pluginCategory, PUBLISHER_NAMEOffset:flatbuffers.Offset, PUBLISHER_HANDLEOffset:flatbuffers.Offset, PUBLISHER_URLOffset:flatbuffers.Offset, SUPPORT_URLOffset:flatbuffers.Offset, TAGSOffset:flatbuffers.Offset, FEATURESOffset:flatbuffers.Offset, SCREENSHOT_URLSOffset:flatbuffers.Offset, BANNER_URLOffset:flatbuffers.Offset, ABI_VERSION:number, WASM_HASHOffset:flatbuffers.Offset, WASM_SIZE:bigint, WASM_CIDOffset:flatbuffers.Offset, ENCRYPTED_WASM_HASHOffset:flatbuffers.Offset, ENCRYPTED_WASM_SIZE:bigint, ENTRY_FUNCTIONSOffset:flatbuffers.Offset, REQUIRED_SCHEMASOffset:flatbuffers.Offset, DEPENDENCIESOffset:flatbuffers.Offset, CAPABILITIESOffset:flatbuffers.Offset, PROVIDER_PEER_IDOffset:flatbuffers.Offset, PROVIDER_EPM_CIDOffset:flatbuffers.Offset, ENCRYPTED:boolean, REQUIRED_SCOPEOffset:flatbuffers.Offset, KEY_IDOffset:flatbuffers.Offset, MAX_GRANT_TIMEOUT_MS:bigint, MIN_PERMISSIONSOffset:flatbuffers.Offset, CREATED_AT:bigint, UPDATED_AT:bigint, DOCUMENTATION_URLOffset:flatbuffers.Offset, CHANGELOG_URLOffset:flatbuffers.Offset, ICON_URLOffset:flatbuffers.Offset, LICENSEOffset:flatbuffers.Offset, PAYMENT_MODEL:purchaseTier, PRICE_USD_CENTS:number, SUBSCRIPTION_PERIOD_DAYS:number, ACCEPTED_PAYMENT_METHODSOffset:flatbuffers.Offset, LISTING_STATUS:publicationState, SIGNATUREOffset:flatbuffers.Offset, INVOKE_SURFACESOffset:flatbuffers.Offset, METHODSOffset:flatbuffers.Offset, HOST_CAPABILITIESOffset:flatbuffers.Offset, TIMERSOffset:flatbuffers.Offset, PROTOCOLSOffset:flatbuffers.Offset, SCHEMAS_USEDOffset:flatbuffers.Offset, BUILD_ARTIFACTSOffset:flatbuffers.Offset, RUNTIME_TARGETSOffset:flatbuffers.Offset, ALLOWED_XPUBSOffset:flatbuffers.Offset, FLOW_NODESOffset:flatbuffers.Offset, FLOW_EDGESOffset:flatbuffers.Offset, FLOW_TRIGGERSOffset:flatbuffers.Offset, FLOW_TRIGGER_BINDINGSOffset:flatbuffers.Offset, PRIMARY_CATEGORY:capabilityClass, CATEGORIESOffset:flatbuffers.Offset):flatbuffers.Offset {
1252
1326
  PLG.startPLG(builder);
1253
1327
  PLG.addPluginId(builder, PLUGIN_IDOffset);
1254
1328
  PLG.addName(builder, NAMEOffset);
@@ -1306,6 +1380,8 @@ static createPLG(builder:flatbuffers.Builder, PLUGIN_IDOffset:flatbuffers.Offset
1306
1380
  PLG.addFlowEdges(builder, FLOW_EDGESOffset);
1307
1381
  PLG.addFlowTriggers(builder, FLOW_TRIGGERSOffset);
1308
1382
  PLG.addFlowTriggerBindings(builder, FLOW_TRIGGER_BINDINGSOffset);
1383
+ PLG.addPrimaryCategory(builder, PRIMARY_CATEGORY);
1384
+ PLG.addCategories(builder, CATEGORIESOffset);
1309
1385
  return PLG.endPLG(builder);
1310
1386
  }
1311
1387
 
@@ -1366,7 +1442,9 @@ unpack(): PLGT {
1366
1442
  this.bb!.createObjList<PLGFlowNode, PLGFlowNodeT>(this.FLOW_NODES.bind(this), this.flowNodesLength()),
1367
1443
  this.bb!.createObjList<PLGFlowEdge, PLGFlowEdgeT>(this.FLOW_EDGES.bind(this), this.flowEdgesLength()),
1368
1444
  this.bb!.createObjList<PLGFlowTrigger, PLGFlowTriggerT>(this.FLOW_TRIGGERS.bind(this), this.flowTriggersLength()),
1369
- this.bb!.createObjList<PLGFlowTriggerBinding, PLGFlowTriggerBindingT>(this.FLOW_TRIGGER_BINDINGS.bind(this), this.flowTriggerBindingsLength())
1445
+ this.bb!.createObjList<PLGFlowTriggerBinding, PLGFlowTriggerBindingT>(this.FLOW_TRIGGER_BINDINGS.bind(this), this.flowTriggerBindingsLength()),
1446
+ this.PRIMARY_CATEGORY(),
1447
+ this.bb!.createScalarList<capabilityClass>(this.CATEGORIES.bind(this), this.categoriesLength())
1370
1448
  );
1371
1449
  }
1372
1450
 
@@ -1428,6 +1506,8 @@ unpackTo(_o: PLGT): void {
1428
1506
  _o.FLOW_EDGES = this.bb!.createObjList<PLGFlowEdge, PLGFlowEdgeT>(this.FLOW_EDGES.bind(this), this.flowEdgesLength());
1429
1507
  _o.FLOW_TRIGGERS = this.bb!.createObjList<PLGFlowTrigger, PLGFlowTriggerT>(this.FLOW_TRIGGERS.bind(this), this.flowTriggersLength());
1430
1508
  _o.FLOW_TRIGGER_BINDINGS = this.bb!.createObjList<PLGFlowTriggerBinding, PLGFlowTriggerBindingT>(this.FLOW_TRIGGER_BINDINGS.bind(this), this.flowTriggerBindingsLength());
1509
+ _o.PRIMARY_CATEGORY = this.PRIMARY_CATEGORY();
1510
+ _o.CATEGORIES = this.bb!.createScalarList<capabilityClass>(this.CATEGORIES.bind(this), this.categoriesLength());
1431
1511
  }
1432
1512
  }
1433
1513
 
@@ -1488,7 +1568,9 @@ constructor(
1488
1568
  public FLOW_NODES: (PLGFlowNodeT)[] = [],
1489
1569
  public FLOW_EDGES: (PLGFlowEdgeT)[] = [],
1490
1570
  public FLOW_TRIGGERS: (PLGFlowTriggerT)[] = [],
1491
- public FLOW_TRIGGER_BINDINGS: (PLGFlowTriggerBindingT)[] = []
1571
+ public FLOW_TRIGGER_BINDINGS: (PLGFlowTriggerBindingT)[] = [],
1572
+ public PRIMARY_CATEGORY: capabilityClass = capabilityClass.UNSPECIFIED,
1573
+ public CATEGORIES: (capabilityClass)[] = []
1492
1574
  ){}
1493
1575
 
1494
1576
 
@@ -1537,6 +1619,7 @@ pack(builder:flatbuffers.Builder): flatbuffers.Offset {
1537
1619
  const FLOW_EDGES = PLG.createFlowEdgesVector(builder, builder.createObjectOffsetList(this.FLOW_EDGES));
1538
1620
  const FLOW_TRIGGERS = PLG.createFlowTriggersVector(builder, builder.createObjectOffsetList(this.FLOW_TRIGGERS));
1539
1621
  const FLOW_TRIGGER_BINDINGS = PLG.createFlowTriggerBindingsVector(builder, builder.createObjectOffsetList(this.FLOW_TRIGGER_BINDINGS));
1622
+ const CATEGORIES = PLG.createCategoriesVector(builder, this.CATEGORIES);
1540
1623
 
1541
1624
  return PLG.createPLG(builder,
1542
1625
  PLUGIN_ID,
@@ -1594,7 +1677,9 @@ pack(builder:flatbuffers.Builder): flatbuffers.Offset {
1594
1677
  FLOW_NODES,
1595
1678
  FLOW_EDGES,
1596
1679
  FLOW_TRIGGERS,
1597
- FLOW_TRIGGER_BINDINGS
1680
+ FLOW_TRIGGER_BINDINGS,
1681
+ this.PRIMARY_CATEGORY,
1682
+ CATEGORIES
1598
1683
  );
1599
1684
  }
1600
1685
  }
@@ -0,0 +1,181 @@
1
+ /**
2
+ * Capability class of a distributable software unit (module, application, or
3
+ * composed flow).
4
+ *
5
+ * This enum IS the ratified category vocabulary. A storefront, library, module
6
+ * manifest and search surface all classify against these members and nothing
7
+ * else; a category that is not a member here does not exist. Members name
8
+ * CAPABILITY CLASSES only — what the unit DOES. No member names a vendor,
9
+ * site, organization, product, protocol brand or algorithm implementation;
10
+ * that identity belongs in data fields such as PLG.PUBLISHER_NAME, never in
11
+ * the taxonomy.
12
+ *
13
+ * Ordinals are wire values: APPEND ONLY. Never reorder, never remove, never
14
+ * reuse an ordinal. A reorder silently re-labels every published listing.
15
+ *
16
+ * UNSPECIFIED deliberately holds ordinal 0 so that a zero-filled or
17
+ * default-constructed classification can never decode as a real category. The
18
+ * pre-existing `pluginCategory` enum in $PLG made the opposite choice — its
19
+ * ordinal 0 is a real family — and had to append an `Unspecified` member at
20
+ * the tail to recover. This enum does not repeat that.
21
+ *
22
+ * Each member's canonical display name is stated in its doc comment and is
23
+ * part of the ratified contract: a consumer rendering a category label uses
24
+ * that string verbatim, so every surface spells a category identically. The
25
+ * canonical route slug is the member identifier lowercased with `_` replaced
26
+ * by `-` (PROPAGATION -> "propagation", RF_AND_COMMUNICATIONS ->
27
+ * "rf-and-communications").
28
+ */
29
+ export declare enum capabilityClass {
30
+ /**
31
+ * No capability class stated. The publisher did not classify the unit.
32
+ * A consumer MUST render an UNSPECIFIED unit as ungrouped and MUST NOT
33
+ * infer a class from the unit's name, description or tags.
34
+ * Display name: "Unspecified".
35
+ */
36
+ UNSPECIFIED = 0,
37
+ /**
38
+ * Advancing an object's state forward or backward in time under a force
39
+ * model, and interpolating between computed states.
40
+ * Display name: "Propagation".
41
+ */
42
+ PROPAGATION = 1,
43
+ /**
44
+ * Estimating an object's state or model parameters by fitting to
45
+ * observations or ephemerides.
46
+ * Display name: "Orbit Determination".
47
+ */
48
+ ORBIT_DETERMINATION = 2,
49
+ /**
50
+ * Planning, targeting and optimizing trajectory changes, including
51
+ * station-keeping, transfers and collision-avoidance maneuvers.
52
+ * Display name: "Maneuver Planning".
53
+ */
54
+ MANEUVER_PLANNING = 3,
55
+ /**
56
+ * Screening for close approaches between objects and quantifying collision
57
+ * probability and miss distance.
58
+ * Display name: "Conjunction Assessment".
59
+ */
60
+ CONJUNCTION_ASSESSMENT = 4,
61
+ /**
62
+ * Atmospheric reentry, decay prediction, fragmentation and debris-cloud
63
+ * evolution.
64
+ * Display name: "Reentry & Breakup".
65
+ */
66
+ REENTRY_AND_BREAKUP = 5,
67
+ /**
68
+ * Attitude determination and control, body orientation, and pointing or
69
+ * slew planning.
70
+ * Display name: "Attitude & Pointing".
71
+ */
72
+ ATTITUDE_AND_POINTING = 6,
73
+ /**
74
+ * Coordinate frame realization and transformation, time scale conversion,
75
+ * and earth-orientation parameter handling.
76
+ * Display name: "Reference Frames & Time".
77
+ */
78
+ REFERENCE_FRAMES_AND_TIME = 7,
79
+ /**
80
+ * Sensor modelling and tasking, field-of-regard and access computation, and
81
+ * area or target coverage figures of merit.
82
+ * Display name: "Sensors & Coverage".
83
+ */
84
+ SENSORS_AND_COVERAGE = 8,
85
+ /**
86
+ * Producing, correlating or associating observations of tracked objects,
87
+ * and maintaining tracks from them.
88
+ * Display name: "Tracking & Observation".
89
+ */
90
+ TRACKING_AND_OBSERVATION = 9,
91
+ /**
92
+ * Radio-frequency link modelling, emitter and band characterization, signal
93
+ * capture handling, and communications planning.
94
+ * Display name: "RF & Communications".
95
+ */
96
+ RF_AND_COMMUNICATIONS = 10,
97
+ /**
98
+ * Interference, jamming, spoofing and countermeasure modelling.
99
+ * Display name: "Electronic Warfare".
100
+ */
101
+ ELECTRONIC_WARFARE = 11,
102
+ /**
103
+ * Atmospheric density, gravity field, magnetic field, radiation, solar and
104
+ * geomagnetic activity, and ionospheric modelling.
105
+ * Display name: "Space Environment".
106
+ */
107
+ SPACE_ENVIRONMENT = 12,
108
+ /**
109
+ * Acquiring bytes from upstream providers and parsing or exporting them
110
+ * across canonical record formats.
111
+ * Display name: "Data Sources & Ingest".
112
+ */
113
+ DATA_SOURCES_AND_INGEST = 13,
114
+ /**
115
+ * Validating records for integrity, physical plausibility, continuity and
116
+ * schema conformance, and scoring data quality.
117
+ * Display name: "Data Validation & Quality".
118
+ */
119
+ DATA_VALIDATION_AND_QUALITY = 14,
120
+ /**
121
+ * Object catalogue curation, cross-identifier resolution, bus and physical
122
+ * property association, and entity identity.
123
+ * Display name: "Catalog & Identity".
124
+ */
125
+ CATALOG_AND_IDENTITY = 15,
126
+ /**
127
+ * Rendering, scene composition, shading and interactive display of space
128
+ * data.
129
+ * Display name: "Visualization & Rendering".
130
+ */
131
+ VISUALIZATION_AND_RENDERING = 16,
132
+ /**
133
+ * Ground station operation and control of physical equipment, including
134
+ * antenna rotators, radios and other hardware interfaces.
135
+ * Display name: "Ground Segment & Hardware".
136
+ */
137
+ GROUND_SEGMENT_AND_HARDWARE = 17,
138
+ /**
139
+ * Mission and constellation design, trade studies, performance analysis and
140
+ * report generation.
141
+ * Display name: "Mission Design & Analysis".
142
+ */
143
+ MISSION_DESIGN_AND_ANALYSIS = 18,
144
+ /**
145
+ * Composition of other units into a graph. The unit of distribution is a
146
+ * flow of modules, not a leaf algorithm.
147
+ * Display name: "Flows & Composition".
148
+ */
149
+ FLOW_AND_COMPOSITION = 19,
150
+ /**
151
+ * Persisting, indexing and querying records; storage engines and query
152
+ * surfaces.
153
+ * Display name: "Data Storage & Query".
154
+ */
155
+ DATA_STORAGE_AND_QUERY = 20,
156
+ /**
157
+ * Key custody, signing and verification, authentication, authorization and
158
+ * access control.
159
+ * Display name: "Security & Identity".
160
+ */
161
+ SECURITY_AND_IDENTITY = 21,
162
+ /**
163
+ * Listing, purchase, subscription, entitlement and license enforcement for
164
+ * distributed units.
165
+ * Display name: "Commerce & Licensing".
166
+ */
167
+ COMMERCE_AND_LICENSING = 22,
168
+ /**
169
+ * Node runtime, artifact delivery, registry, publication and peer transport
170
+ * plumbing.
171
+ * Display name: "Node Infrastructure".
172
+ */
173
+ NODE_INFRASTRUCTURE = 23,
174
+ /**
175
+ * Foundational mathematics and general-purpose utility libraries consumed by
176
+ * other units rather than run on their own.
177
+ * Display name: "Foundation & Math".
178
+ */
179
+ FOUNDATION_AND_MATH = 24
180
+ }
181
+ //# sourceMappingURL=capabilityClass.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilityClass.d.ts","sourceRoot":"","sources":["../../../ts/PLG/capabilityClass.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,oBAAY,eAAe;IACzB;;;;;OAKG;IACH,WAAW,IAAI;IAEf;;;;OAIG;IACH,WAAW,IAAI;IAEf;;;;OAIG;IACH,mBAAmB,IAAI;IAEvB;;;;OAIG;IACH,iBAAiB,IAAI;IAErB;;;;OAIG;IACH,sBAAsB,IAAI;IAE1B;;;;OAIG;IACH,mBAAmB,IAAI;IAEvB;;;;OAIG;IACH,qBAAqB,IAAI;IAEzB;;;;OAIG;IACH,yBAAyB,IAAI;IAE7B;;;;OAIG;IACH,oBAAoB,IAAI;IAExB;;;;OAIG;IACH,wBAAwB,IAAI;IAE5B;;;;OAIG;IACH,qBAAqB,KAAK;IAE1B;;;OAGG;IACH,kBAAkB,KAAK;IAEvB;;;;OAIG;IACH,iBAAiB,KAAK;IAEtB;;;;OAIG;IACH,uBAAuB,KAAK;IAE5B;;;;OAIG;IACH,2BAA2B,KAAK;IAEhC;;;;OAIG;IACH,oBAAoB,KAAK;IAEzB;;;;OAIG;IACH,2BAA2B,KAAK;IAEhC;;;;OAIG;IACH,2BAA2B,KAAK;IAEhC;;;;OAIG;IACH,2BAA2B,KAAK;IAEhC;;;;OAIG;IACH,oBAAoB,KAAK;IAEzB;;;;OAIG;IACH,sBAAsB,KAAK;IAE3B;;;;OAIG;IACH,qBAAqB,KAAK;IAE1B;;;;OAIG;IACH,sBAAsB,KAAK;IAE3B;;;;OAIG;IACH,mBAAmB,KAAK;IAExB;;;;OAIG;IACH,mBAAmB,KAAK;CACzB"}
@@ -0,0 +1,183 @@
1
+ // automatically generated by the FlatBuffers compiler, do not modify
2
+ /* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
3
+ /**
4
+ * Capability class of a distributable software unit (module, application, or
5
+ * composed flow).
6
+ *
7
+ * This enum IS the ratified category vocabulary. A storefront, library, module
8
+ * manifest and search surface all classify against these members and nothing
9
+ * else; a category that is not a member here does not exist. Members name
10
+ * CAPABILITY CLASSES only — what the unit DOES. No member names a vendor,
11
+ * site, organization, product, protocol brand or algorithm implementation;
12
+ * that identity belongs in data fields such as PLG.PUBLISHER_NAME, never in
13
+ * the taxonomy.
14
+ *
15
+ * Ordinals are wire values: APPEND ONLY. Never reorder, never remove, never
16
+ * reuse an ordinal. A reorder silently re-labels every published listing.
17
+ *
18
+ * UNSPECIFIED deliberately holds ordinal 0 so that a zero-filled or
19
+ * default-constructed classification can never decode as a real category. The
20
+ * pre-existing `pluginCategory` enum in $PLG made the opposite choice — its
21
+ * ordinal 0 is a real family — and had to append an `Unspecified` member at
22
+ * the tail to recover. This enum does not repeat that.
23
+ *
24
+ * Each member's canonical display name is stated in its doc comment and is
25
+ * part of the ratified contract: a consumer rendering a category label uses
26
+ * that string verbatim, so every surface spells a category identically. The
27
+ * canonical route slug is the member identifier lowercased with `_` replaced
28
+ * by `-` (PROPAGATION -> "propagation", RF_AND_COMMUNICATIONS ->
29
+ * "rf-and-communications").
30
+ */
31
+ export var capabilityClass;
32
+ (function (capabilityClass) {
33
+ /**
34
+ * No capability class stated. The publisher did not classify the unit.
35
+ * A consumer MUST render an UNSPECIFIED unit as ungrouped and MUST NOT
36
+ * infer a class from the unit's name, description or tags.
37
+ * Display name: "Unspecified".
38
+ */
39
+ capabilityClass[capabilityClass["UNSPECIFIED"] = 0] = "UNSPECIFIED";
40
+ /**
41
+ * Advancing an object's state forward or backward in time under a force
42
+ * model, and interpolating between computed states.
43
+ * Display name: "Propagation".
44
+ */
45
+ capabilityClass[capabilityClass["PROPAGATION"] = 1] = "PROPAGATION";
46
+ /**
47
+ * Estimating an object's state or model parameters by fitting to
48
+ * observations or ephemerides.
49
+ * Display name: "Orbit Determination".
50
+ */
51
+ capabilityClass[capabilityClass["ORBIT_DETERMINATION"] = 2] = "ORBIT_DETERMINATION";
52
+ /**
53
+ * Planning, targeting and optimizing trajectory changes, including
54
+ * station-keeping, transfers and collision-avoidance maneuvers.
55
+ * Display name: "Maneuver Planning".
56
+ */
57
+ capabilityClass[capabilityClass["MANEUVER_PLANNING"] = 3] = "MANEUVER_PLANNING";
58
+ /**
59
+ * Screening for close approaches between objects and quantifying collision
60
+ * probability and miss distance.
61
+ * Display name: "Conjunction Assessment".
62
+ */
63
+ capabilityClass[capabilityClass["CONJUNCTION_ASSESSMENT"] = 4] = "CONJUNCTION_ASSESSMENT";
64
+ /**
65
+ * Atmospheric reentry, decay prediction, fragmentation and debris-cloud
66
+ * evolution.
67
+ * Display name: "Reentry & Breakup".
68
+ */
69
+ capabilityClass[capabilityClass["REENTRY_AND_BREAKUP"] = 5] = "REENTRY_AND_BREAKUP";
70
+ /**
71
+ * Attitude determination and control, body orientation, and pointing or
72
+ * slew planning.
73
+ * Display name: "Attitude & Pointing".
74
+ */
75
+ capabilityClass[capabilityClass["ATTITUDE_AND_POINTING"] = 6] = "ATTITUDE_AND_POINTING";
76
+ /**
77
+ * Coordinate frame realization and transformation, time scale conversion,
78
+ * and earth-orientation parameter handling.
79
+ * Display name: "Reference Frames & Time".
80
+ */
81
+ capabilityClass[capabilityClass["REFERENCE_FRAMES_AND_TIME"] = 7] = "REFERENCE_FRAMES_AND_TIME";
82
+ /**
83
+ * Sensor modelling and tasking, field-of-regard and access computation, and
84
+ * area or target coverage figures of merit.
85
+ * Display name: "Sensors & Coverage".
86
+ */
87
+ capabilityClass[capabilityClass["SENSORS_AND_COVERAGE"] = 8] = "SENSORS_AND_COVERAGE";
88
+ /**
89
+ * Producing, correlating or associating observations of tracked objects,
90
+ * and maintaining tracks from them.
91
+ * Display name: "Tracking & Observation".
92
+ */
93
+ capabilityClass[capabilityClass["TRACKING_AND_OBSERVATION"] = 9] = "TRACKING_AND_OBSERVATION";
94
+ /**
95
+ * Radio-frequency link modelling, emitter and band characterization, signal
96
+ * capture handling, and communications planning.
97
+ * Display name: "RF & Communications".
98
+ */
99
+ capabilityClass[capabilityClass["RF_AND_COMMUNICATIONS"] = 10] = "RF_AND_COMMUNICATIONS";
100
+ /**
101
+ * Interference, jamming, spoofing and countermeasure modelling.
102
+ * Display name: "Electronic Warfare".
103
+ */
104
+ capabilityClass[capabilityClass["ELECTRONIC_WARFARE"] = 11] = "ELECTRONIC_WARFARE";
105
+ /**
106
+ * Atmospheric density, gravity field, magnetic field, radiation, solar and
107
+ * geomagnetic activity, and ionospheric modelling.
108
+ * Display name: "Space Environment".
109
+ */
110
+ capabilityClass[capabilityClass["SPACE_ENVIRONMENT"] = 12] = "SPACE_ENVIRONMENT";
111
+ /**
112
+ * Acquiring bytes from upstream providers and parsing or exporting them
113
+ * across canonical record formats.
114
+ * Display name: "Data Sources & Ingest".
115
+ */
116
+ capabilityClass[capabilityClass["DATA_SOURCES_AND_INGEST"] = 13] = "DATA_SOURCES_AND_INGEST";
117
+ /**
118
+ * Validating records for integrity, physical plausibility, continuity and
119
+ * schema conformance, and scoring data quality.
120
+ * Display name: "Data Validation & Quality".
121
+ */
122
+ capabilityClass[capabilityClass["DATA_VALIDATION_AND_QUALITY"] = 14] = "DATA_VALIDATION_AND_QUALITY";
123
+ /**
124
+ * Object catalogue curation, cross-identifier resolution, bus and physical
125
+ * property association, and entity identity.
126
+ * Display name: "Catalog & Identity".
127
+ */
128
+ capabilityClass[capabilityClass["CATALOG_AND_IDENTITY"] = 15] = "CATALOG_AND_IDENTITY";
129
+ /**
130
+ * Rendering, scene composition, shading and interactive display of space
131
+ * data.
132
+ * Display name: "Visualization & Rendering".
133
+ */
134
+ capabilityClass[capabilityClass["VISUALIZATION_AND_RENDERING"] = 16] = "VISUALIZATION_AND_RENDERING";
135
+ /**
136
+ * Ground station operation and control of physical equipment, including
137
+ * antenna rotators, radios and other hardware interfaces.
138
+ * Display name: "Ground Segment & Hardware".
139
+ */
140
+ capabilityClass[capabilityClass["GROUND_SEGMENT_AND_HARDWARE"] = 17] = "GROUND_SEGMENT_AND_HARDWARE";
141
+ /**
142
+ * Mission and constellation design, trade studies, performance analysis and
143
+ * report generation.
144
+ * Display name: "Mission Design & Analysis".
145
+ */
146
+ capabilityClass[capabilityClass["MISSION_DESIGN_AND_ANALYSIS"] = 18] = "MISSION_DESIGN_AND_ANALYSIS";
147
+ /**
148
+ * Composition of other units into a graph. The unit of distribution is a
149
+ * flow of modules, not a leaf algorithm.
150
+ * Display name: "Flows & Composition".
151
+ */
152
+ capabilityClass[capabilityClass["FLOW_AND_COMPOSITION"] = 19] = "FLOW_AND_COMPOSITION";
153
+ /**
154
+ * Persisting, indexing and querying records; storage engines and query
155
+ * surfaces.
156
+ * Display name: "Data Storage & Query".
157
+ */
158
+ capabilityClass[capabilityClass["DATA_STORAGE_AND_QUERY"] = 20] = "DATA_STORAGE_AND_QUERY";
159
+ /**
160
+ * Key custody, signing and verification, authentication, authorization and
161
+ * access control.
162
+ * Display name: "Security & Identity".
163
+ */
164
+ capabilityClass[capabilityClass["SECURITY_AND_IDENTITY"] = 21] = "SECURITY_AND_IDENTITY";
165
+ /**
166
+ * Listing, purchase, subscription, entitlement and license enforcement for
167
+ * distributed units.
168
+ * Display name: "Commerce & Licensing".
169
+ */
170
+ capabilityClass[capabilityClass["COMMERCE_AND_LICENSING"] = 22] = "COMMERCE_AND_LICENSING";
171
+ /**
172
+ * Node runtime, artifact delivery, registry, publication and peer transport
173
+ * plumbing.
174
+ * Display name: "Node Infrastructure".
175
+ */
176
+ capabilityClass[capabilityClass["NODE_INFRASTRUCTURE"] = 23] = "NODE_INFRASTRUCTURE";
177
+ /**
178
+ * Foundational mathematics and general-purpose utility libraries consumed by
179
+ * other units rather than run on their own.
180
+ * Display name: "Foundation & Math".
181
+ */
182
+ capabilityClass[capabilityClass["FOUNDATION_AND_MATH"] = 24] = "FOUNDATION_AND_MATH";
183
+ })(capabilityClass || (capabilityClass = {}));