@siglume/api-sdk 0.10.3 → 0.10.5

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,9 +2528,11 @@ 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",
2535
+ "currency",
2534
2536
  "permission_class",
2535
2537
  "approval_mode",
2536
2538
  "dry_run_supported",
@@ -2543,6 +2545,21 @@ var init_client = __esm({
2543
2545
  payload[fieldName] = value;
2544
2546
  }
2545
2547
  }
2548
+ if (payload.store_vertical === void 0 || payload.store_vertical === null) {
2549
+ throw new SiglumeClientError(
2550
+ "AppManifest.store_vertical is required. Choose 'api' for normal API Store listings or 'game' for API games."
2551
+ );
2552
+ }
2553
+ const currency = String(payload.currency ?? "").trim().toUpperCase();
2554
+ if (!currency) {
2555
+ throw new SiglumeClientError(
2556
+ "AppManifest.currency is required. Choose 'USD' for USDC settlement or 'JPY' for JPYC settlement."
2557
+ );
2558
+ }
2559
+ if (currency !== "USD" && currency !== "JPY") {
2560
+ throw new SiglumeClientError(`AppManifest.currency must be 'USD' or 'JPY'. Got ${String(payload.currency)}.`);
2561
+ }
2562
+ payload.currency = currency;
2546
2563
  if (payload.manifest && typeof payload.manifest === "object") {
2547
2564
  delete payload.manifest.version;
2548
2565
  }
@@ -7666,11 +7683,13 @@ function buildOperationManifest(operation, capability_key_override) {
7666
7683
  name: operationDisplayName(operation),
7667
7684
  job_to_be_done: `Wrap the Siglume first-party operation \`${operation.operation_key}\` for owned agents.`,
7668
7685
  category: AppCategory.OTHER,
7686
+ store_vertical: "api",
7669
7687
  permission_class: permissionClassFromOperation(operation),
7670
7688
  approval_mode: approvalModeFromOperation(operation),
7671
7689
  dry_run_supported: true,
7672
7690
  required_connected_accounts: [],
7673
7691
  price_model: PriceModel.FREE,
7692
+ currency: "USD",
7674
7693
  jurisdiction: "US",
7675
7694
  short_description: operation.summary,
7676
7695
  docs_url: "https://example.com/docs",
@@ -7742,11 +7761,13 @@ function operationAdapterSource(operation, manifest) {
7742
7761
  ` name: ${JSON.stringify(manifest.name)},`,
7743
7762
  ` job_to_be_done: ${JSON.stringify(manifest.job_to_be_done)},`,
7744
7763
  " category: AppCategory.OTHER,",
7764
+ " store_vertical: 'api' as const,",
7745
7765
  ` permission_class: PermissionClass.${permissionEnumName},`,
7746
7766
  ` approval_mode: ApprovalMode.${approvalEnumName},`,
7747
7767
  " dry_run_supported: true,",
7748
7768
  " required_connected_accounts: [],",
7749
7769
  " price_model: PriceModel.FREE,",
7770
+ " currency: 'USD' as const,",
7750
7771
  ` jurisdiction: ${JSON.stringify(manifest.jurisdiction)},`,
7751
7772
  ` short_description: ${JSON.stringify(manifest.short_description ?? "")},`,
7752
7773
  ` support_contact: ${JSON.stringify(manifest.support_contact ?? "")},`,
@@ -8420,11 +8441,13 @@ function fallbackTemplateSource(template) {
8420
8441
  ` name: "${className}",`,
8421
8442
  ' job_to_be_done: "Describe what this starter API should do.",',
8422
8443
  " category: AppCategory.OTHER,",
8444
+ " store_vertical: 'api' as const,",
8423
8445
  ` permission_class: ${permissionClass},`,
8424
8446
  ` approval_mode: ${approvalMode},`,
8425
8447
  " dry_run_supported: true,",
8426
8448
  " required_connected_accounts: [],",
8427
8449
  " price_model: PriceModel.FREE,",
8450
+ " currency: 'USD' as const,",
8428
8451
  ' jurisdiction: "US",',
8429
8452
  ' short_description: "Starter template generated by siglume init.",',
8430
8453
  ' support_contact: "support@example.com",',
@@ -8472,11 +8495,13 @@ function starterManifest(template) {
8472
8495
  name: className,
8473
8496
  job_to_be_done: "Describe what this starter API should do.",
8474
8497
  category: "other",
8498
+ store_vertical: "api",
8475
8499
  permission_class,
8476
8500
  approval_mode: approval_mode[template],
8477
8501
  dry_run_supported: true,
8478
8502
  required_connected_accounts: [],
8479
8503
  price_model: "free",
8504
+ currency: "USD",
8480
8505
  jurisdiction: "US",
8481
8506
  short_description: "Starter template generated by siglume init.",
8482
8507
  support_contact: "support@example.com",