@siglume/api-sdk 0.10.2 → 0.10.4

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 CHANGED
@@ -82,3 +82,10 @@ non-material upgrade when checks pass. The server-side publish gate
82
82
  includes runtime checks, contract checks, seller OAuth checks, pricing / payout
83
83
  rules, and a mandatory fail-closed LLM legal review for law compliance plus
84
84
  public-order / morals compliance.
85
+
86
+ Game APIs use the same publishing flow. To make a listing eligible for the
87
+ dedicated Game API Store entry point, include explicit game-oriented
88
+ `compatibility_tags` in the manifest, for example `["game", "unity",
89
+ "realtime", "npc"]`. Use concrete tags such as `game`, `unity`, `unreal`,
90
+ `godot`, `npc`, `matchmaking`, `multiplayer`, `realtime`, `ugc`, or
91
+ `narrative`; do not send arbitrary registration `metadata` for store placement.
@@ -2528,6 +2528,7 @@ var init_client = __esm({
2528
2528
  "support_contact",
2529
2529
  "seller_homepage_url",
2530
2530
  "seller_social_url",
2531
+ "store_vertical",
2531
2532
  "jurisdiction",
2532
2533
  "price_model",
2533
2534
  "price_value_minor",
@@ -2543,6 +2544,11 @@ var init_client = __esm({
2543
2544
  payload[fieldName] = value;
2544
2545
  }
2545
2546
  }
2547
+ if (payload.store_vertical === void 0 || payload.store_vertical === null) {
2548
+ throw new SiglumeClientError(
2549
+ "AppManifest.store_vertical is required. Choose 'api' for normal API Store listings or 'game' for API games."
2550
+ );
2551
+ }
2546
2552
  if (payload.manifest && typeof payload.manifest === "object") {
2547
2553
  delete payload.manifest.version;
2548
2554
  }
@@ -7666,6 +7672,7 @@ function buildOperationManifest(operation, capability_key_override) {
7666
7672
  name: operationDisplayName(operation),
7667
7673
  job_to_be_done: `Wrap the Siglume first-party operation \`${operation.operation_key}\` for owned agents.`,
7668
7674
  category: AppCategory.OTHER,
7675
+ store_vertical: "api",
7669
7676
  permission_class: permissionClassFromOperation(operation),
7670
7677
  approval_mode: approvalModeFromOperation(operation),
7671
7678
  dry_run_supported: true,
@@ -7742,6 +7749,7 @@ function operationAdapterSource(operation, manifest) {
7742
7749
  ` name: ${JSON.stringify(manifest.name)},`,
7743
7750
  ` job_to_be_done: ${JSON.stringify(manifest.job_to_be_done)},`,
7744
7751
  " category: AppCategory.OTHER,",
7752
+ " store_vertical: 'api' as const,",
7745
7753
  ` permission_class: PermissionClass.${permissionEnumName},`,
7746
7754
  ` approval_mode: ApprovalMode.${approvalEnumName},`,
7747
7755
  " dry_run_supported: true,",
@@ -8420,6 +8428,7 @@ function fallbackTemplateSource(template) {
8420
8428
  ` name: "${className}",`,
8421
8429
  ' job_to_be_done: "Describe what this starter API should do.",',
8422
8430
  " category: AppCategory.OTHER,",
8431
+ " store_vertical: 'api' as const,",
8423
8432
  ` permission_class: ${permissionClass},`,
8424
8433
  ` approval_mode: ${approvalMode},`,
8425
8434
  " dry_run_supported: true,",
@@ -8472,6 +8481,7 @@ function starterManifest(template) {
8472
8481
  name: className,
8473
8482
  job_to_be_done: "Describe what this starter API should do.",
8474
8483
  category: "other",
8484
+ store_vertical: "api",
8475
8485
  permission_class,
8476
8486
  approval_mode: approval_mode[template],
8477
8487
  dry_run_supported: true,