@carrierllc/mcp 0.13.15 → 0.13.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.
package/dist/cli.js CHANGED
@@ -39,7 +39,7 @@ import {
39
39
  verifyStorefront,
40
40
  walletScreen,
41
41
  which
42
- } from "./chunk-QXIY42R6.js";
42
+ } from "./chunk-D6VGTHND.js";
43
43
  import {
44
44
  copyTree,
45
45
  exists,
package/dist/index.js CHANGED
@@ -80,7 +80,7 @@ import {
80
80
  verifyStorefront,
81
81
  withOcsListSummary,
82
82
  withTemplateResellerId
83
- } from "./chunk-QXIY42R6.js";
83
+ } from "./chunk-D6VGTHND.js";
84
84
  import "./chunk-SHKKVIIA.js";
85
85
 
86
86
  // src/index.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@carrierllc/mcp",
3
- "version": "0.13.15",
3
+ "version": "0.13.16",
4
4
  "description": "Carrier MCP \u2014 natural-language control of MVNO/eSIM fleets via eSIMVault OCS. Stdio mode for direct integration with Claude Desktop, Cursor, Windsurf, and MCP-compatible clients. Ships the `carrier` CLI (plugin install + white-label eSIM storefront scaffold).",
5
5
  "license": "MIT",
6
6
  "author": "Carrier (Lifecycle Innovations Limited)",
@@ -72,6 +72,18 @@ const MOCK_TEMPLATES: SkuTemplate[] = [
72
72
  },
73
73
  ];
74
74
 
75
+ /**
76
+ * How long the storefront may keep serving a catalog it already fetched.
77
+ *
78
+ * A price or bundle change made in Carrier must be visible within the agreed
79
+ * ceiling (CAR-281: 3600s ISR). The unscoped `/api/templates` answer also
80
+ * carries `public, max-age=60` upstream, so revalidate + 60s is the real
81
+ * worst case. It used to be 3600 for the unscoped read, which put the worst
82
+ * case at 3660s. Keep one value for both reads and keep it well under the
83
+ * ceiling; the scoped read is also busted by tag on save.
84
+ */
85
+ export const CATALOG_REVALIDATE_SECONDS = 60;
86
+
75
87
  /** Why the catalog is not live. Absent when `source` is "live". */
76
88
  export type CatalogDegradedReason = "unconfigured" | "upstream-error" | "network-error";
77
89
 
@@ -109,8 +121,8 @@ export async function fetchTemplateCatalog(): Promise<TemplateCatalog> {
109
121
  : "/api/templates";
110
122
  const res = await fetch(`${base}${templatesPath}`, {
111
123
  next: slug
112
- ? { revalidate: 60, tags: [`storefront:${slug}`] }
113
- : { revalidate: 3600 },
124
+ ? { revalidate: CATALOG_REVALIDATE_SECONDS, tags: [`storefront:${slug}`] }
125
+ : { revalidate: CATALOG_REVALIDATE_SECONDS },
114
126
  });
115
127
  if (!res.ok) return sampleCatalog("upstream-error");
116
128
  const templates = (await res.json()) as SkuTemplate[];