@sakupa/mcp 0.7.26 → 0.7.27

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/bin.js CHANGED
@@ -129,7 +129,7 @@ var FORBIDDEN_PATH_SEGMENTS = [
129
129
  var ALLOWED_HIDDEN_PATHS = [".well-known/"];
130
130
 
131
131
  // ../core/dist/domain/version.js
132
- var SAKUPA_MCP_VERSION = "0.7.26";
132
+ var SAKUPA_MCP_VERSION = "0.7.27";
133
133
 
134
134
  // ../core/dist/domain/errors.js
135
135
  var HTTP_STATUS = {
@@ -3322,7 +3322,6 @@ Summary: ${res.sanitizedSummary}`,
3322
3322
 
3323
3323
  // src/tools/billing.ts
3324
3324
  import { z as z4 } from "zod";
3325
- var plan = z4.enum(["water", "personal", "share", "business"]);
3326
3325
  function registerBillingTools(server, baseCtx) {
3327
3326
  server.registerTool(
3328
3327
  "plans",
@@ -3350,12 +3349,11 @@ function registerBillingTools(server, baseCtx) {
3350
3349
  }
3351
3350
  );
3352
3351
  server.registerTool(
3353
- "upgrade",
3352
+ "change",
3354
3353
  {
3355
- description: "Create a Stripe-hosted confirmation link for a manually selected subscription plan. Creating the link does not change billing; only the user can confirm on Stripe.",
3354
+ description: "Create one Stripe-hosted subscription-management link. The user chooses the plan or period-end cancellation on Stripe; Sakupa never infers intent from the conversation. Creating the link does not change billing.",
3356
3355
  inputSchema: {
3357
3356
  projectDir: projectDirInput,
3358
- targetPlan: plan,
3359
3357
  operationId: z4.string().min(1)
3360
3358
  },
3361
3359
  outputSchema: STRUCTURED_TOOL_OUTPUT_SCHEMA,
@@ -3367,21 +3365,20 @@ function registerBillingTools(server, baseCtx) {
3367
3365
  const site = requireSiteFile(ctx);
3368
3366
  const result = await ctx.client.changeSubscriptionPlan(site.credential, {
3369
3367
  siteId: site.siteId,
3370
- targetPlan: args.targetPlan,
3371
3368
  operationId: args.operationId
3372
3369
  });
3373
3370
  return structuredToolResult({
3374
3371
  schemaVersion: 1,
3375
3372
  outcome: "waiting_user",
3376
- resultCode: "stripe_plan_change_confirmation_required",
3373
+ resultCode: "stripe_subscription_management_required",
3377
3374
  operationId: args.operationId,
3378
- summary: `Stripe confirmation link created for ${result.currentPlan} -> ${result.targetPlan}; the subscription has NOT changed yet. ` + (result.direction === "upgrade" ? "Confirming starts a new paid month immediately at the full target price; Sakupa applies the plan only after invoice payment and carries unused transfer once." : result.direction === "downgrade" ? "The downgrade is scheduled for the end of the already-paid period." : "Confirming cancels the scheduled plan change and keeps the current plan without a new charge."),
3375
+ summary: "Stripe subscription-management link created; the subscription has NOT changed yet. Stripe is the authoritative place to choose Water, Personal, Share, Business, or period-end cancellation. Query billing after the user finishes.",
3379
3376
  data: { result },
3380
3377
  userAction: {
3381
3378
  type: "open_url",
3382
3379
  provider: "stripe",
3383
3380
  url: result.portalUrl,
3384
- expectedOutcome: "After the user confirms on the Stripe-hosted page, the webhook updates the Sakupa subscription state"
3381
+ expectedOutcome: "After the user finishes on Stripe, webhooks update Sakupa and billing reports the authoritative result"
3385
3382
  },
3386
3383
  nextActions: [{ tool: "billing", allowed: true }]
3387
3384
  });
@@ -3611,7 +3608,7 @@ Workflow:
3611
3608
  4. Optionally bind a custom domain to the subscribed site (bind): an included extra
3612
3609
  serving surface alongside the permanent URL. Ownership is proven only by DNS control; the
3613
3610
  first verified request wins; unverified requests expire after 72 hours. billing,
3614
- upgrade, portal and recover manage the paid
3611
+ change, portal and recover manage the paid
3615
3612
  lifecycle; delete tears the whole site down after explicit confirmation. Binding a
3616
3613
  NEW domain while one is live is a zero-downtime SWITCH: the old domain keeps serving
3617
3614
  until the new domain's www is confirmed live, then it is replaced automatically.
package/dist/index.js CHANGED
@@ -124,7 +124,7 @@ var FORBIDDEN_PATH_SEGMENTS = [
124
124
  var ALLOWED_HIDDEN_PATHS = [".well-known/"];
125
125
 
126
126
  // ../core/dist/domain/version.js
127
- var SAKUPA_MCP_VERSION = "0.7.26";
127
+ var SAKUPA_MCP_VERSION = "0.7.27";
128
128
 
129
129
  // ../core/dist/domain/errors.js
130
130
  var HTTP_STATUS = {
@@ -3515,7 +3515,6 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3515
3515
 
3516
3516
  // src/tools/billing.ts
3517
3517
  import { z as z5 } from "zod";
3518
- var plan = z5.enum(["water", "personal", "share", "business"]);
3519
3518
  function registerBillingTools(server, baseCtx) {
3520
3519
  server.registerTool(
3521
3520
  "plans",
@@ -3543,12 +3542,11 @@ function registerBillingTools(server, baseCtx) {
3543
3542
  }
3544
3543
  );
3545
3544
  server.registerTool(
3546
- "upgrade",
3545
+ "change",
3547
3546
  {
3548
- description: "Create a Stripe-hosted confirmation link for a manually selected subscription plan. Creating the link does not change billing; only the user can confirm on Stripe.",
3547
+ description: "Create one Stripe-hosted subscription-management link. The user chooses the plan or period-end cancellation on Stripe; Sakupa never infers intent from the conversation. Creating the link does not change billing.",
3549
3548
  inputSchema: {
3550
3549
  projectDir: projectDirInput,
3551
- targetPlan: plan,
3552
3550
  operationId: z5.string().min(1)
3553
3551
  },
3554
3552
  outputSchema: STRUCTURED_TOOL_OUTPUT_SCHEMA,
@@ -3560,21 +3558,20 @@ function registerBillingTools(server, baseCtx) {
3560
3558
  const site = requireSiteFile(ctx);
3561
3559
  const result = await ctx.client.changeSubscriptionPlan(site.credential, {
3562
3560
  siteId: site.siteId,
3563
- targetPlan: args.targetPlan,
3564
3561
  operationId: args.operationId
3565
3562
  });
3566
3563
  return structuredToolResult({
3567
3564
  schemaVersion: 1,
3568
3565
  outcome: "waiting_user",
3569
- resultCode: "stripe_plan_change_confirmation_required",
3566
+ resultCode: "stripe_subscription_management_required",
3570
3567
  operationId: args.operationId,
3571
- summary: `Stripe confirmation link created for ${result.currentPlan} -> ${result.targetPlan}; the subscription has NOT changed yet. ` + (result.direction === "upgrade" ? "Confirming starts a new paid month immediately at the full target price; Sakupa applies the plan only after invoice payment and carries unused transfer once." : result.direction === "downgrade" ? "The downgrade is scheduled for the end of the already-paid period." : "Confirming cancels the scheduled plan change and keeps the current plan without a new charge."),
3568
+ summary: "Stripe subscription-management link created; the subscription has NOT changed yet. Stripe is the authoritative place to choose Water, Personal, Share, Business, or period-end cancellation. Query billing after the user finishes.",
3572
3569
  data: { result },
3573
3570
  userAction: {
3574
3571
  type: "open_url",
3575
3572
  provider: "stripe",
3576
3573
  url: result.portalUrl,
3577
- expectedOutcome: "After the user confirms on the Stripe-hosted page, the webhook updates the Sakupa subscription state"
3574
+ expectedOutcome: "After the user finishes on Stripe, webhooks update Sakupa and billing reports the authoritative result"
3578
3575
  },
3579
3576
  nextActions: [{ tool: "billing", allowed: true }]
3580
3577
  });
@@ -3606,7 +3603,7 @@ Workflow:
3606
3603
  4. Optionally bind a custom domain to the subscribed site (bind): an included extra
3607
3604
  serving surface alongside the permanent URL. Ownership is proven only by DNS control; the
3608
3605
  first verified request wins; unverified requests expire after 72 hours. billing,
3609
- upgrade, portal and recover manage the paid
3606
+ change, portal and recover manage the paid
3610
3607
  lifecycle; delete tears the whole site down after explicit confirmation. Binding a
3611
3608
  NEW domain while one is live is a zero-downtime SWITCH: the old domain keeps serving
3612
3609
  until the new domain's www is confirmed live, then it is replaced automatically.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sakupa/mcp",
3
- "version": "0.7.26",
3
+ "version": "0.7.27",
4
4
  "description": "Sakupa MCP server: publish AI-made static sites from your AI tool. AI-made pages, live in seconds.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",