@sakupa/mcp 0.7.52 → 0.7.53

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 (3) hide show
  1. package/dist/bin.js +21 -11
  2. package/dist/index.js +21 -11
  3. package/package.json +1 -1
package/dist/bin.js CHANGED
@@ -402,7 +402,7 @@ function isFreeSiteAllowanceNetworkReference(value) {
402
402
  }
403
403
 
404
404
  // ../core/dist/domain/version.js
405
- var SAKUPA_MCP_VERSION = "0.7.52";
405
+ var SAKUPA_MCP_VERSION = "0.7.53";
406
406
 
407
407
  // ../core/dist/domain/errors.js
408
408
  var HTTP_STATUS = {
@@ -2758,8 +2758,6 @@ async function diagnoseBinding(input) {
2758
2758
  const layers = `Pipeline: [1] public DNS (checked LIVE above) -> [2] Sakupa ownership verification: ${input.verificationStatus} -> [3] HTTPS certificate & serving: ` + (input.provisioning ? "provisioning (Sakupa's certificate service validates and issues within minutes once the required www record above is OK; run bind status again in about 5 minutes to re-check the provider and advance activation)." : "starts after verification.");
2759
2759
  return { checks, apexResolves, allOk, checklist, layers };
2760
2760
  }
2761
- var DNS_RETRY_AFTER_SECONDS = 300;
2762
- var DNS_MAX_ATTEMPTS = 10;
2763
2761
  function toDnsChecklist(checks) {
2764
2762
  return checks.map((c) => ({
2765
2763
  name: c.record.name,
@@ -2770,13 +2768,12 @@ function toDnsChecklist(checks) {
2770
2768
  }));
2771
2769
  }
2772
2770
  function renderChecklistBlock(diag, fixTail) {
2773
- const cadence = `Re-check every ${DNS_RETRY_AFTER_SECONDS / 60} minutes, up to ${DNS_MAX_ATTEMPTS} times.`;
2774
2771
  return `Live DNS checklist (host values are the SHORT panel form):
2775
2772
  ${diag.checklist}
2776
2773
 
2777
2774
  ${diag.layers}
2778
2775
 
2779
- ` + (diag.allOk ? "All required records are live; certificate issuance completes automatically \u2014 re-check in a few minutes until the binding is active." : `${fixTail} ${cadence}`);
2776
+ ` + (diag.allOk ? "All required records are live. Cloudflare continues certificate issuance; wait about one minute, then run bind status once when the user asks. Do not poll automatically." : `${fixTail} After the user reports the DNS change is complete, run bind status once. Do not poll automatically.`);
2780
2777
  }
2781
2778
 
2782
2779
  // src/version.ts
@@ -4854,7 +4851,7 @@ Once Stripe confirms payment and Sakupa synchronizes the subscription, the curre
4854
4851
  });
4855
4852
  const { apexResolves, allOk } = diag;
4856
4853
  return text(
4857
- res2.bindingStatus === "active" ? "domain_binding_active" : res2.status === "verified" ? "domain_verification_succeeded" : "domain_verification_pending",
4854
+ res2.bindingStatus === "active" ? "domain_binding_active" : res2.bindingStatus === "provisioning" ? "domain_binding_provisioning" : "domain_verification_pending",
4858
4855
  `Domain binding status for ${apex2}: ${res2.status}
4859
4856
  ${res2.message}
4860
4857
 
@@ -4866,6 +4863,7 @@ ${res2.message}
4866
4863
  verificationId: res2.verificationId,
4867
4864
  status: res2.status,
4868
4865
  bindingStatus: res2.bindingStatus,
4866
+ provisioningPhase: res2.provisioningPhase,
4869
4867
  apexDomain: apex2,
4870
4868
  provisioningJobId: res2.provisioningJobId,
4871
4869
  servingTarget: res2.servingTarget,
@@ -4874,11 +4872,23 @@ ${res2.message}
4874
4872
  apexRequired: false,
4875
4873
  requiredServingHostname: `www.${apex2}`,
4876
4874
  optionalApexHostname: apex2,
4877
- retryAfterSeconds: DNS_RETRY_AFTER_SECONDS,
4878
- maxAttempts: DNS_MAX_ATTEMPTS,
4875
+ automaticRetries: 0,
4876
+ manualRecheckOnly: true,
4877
+ backgroundRetry: false,
4878
+ manualStatusCheckRequired: res2.bindingStatus === "provisioning" && res2.provisioningPhase !== "waiting_dns",
4879
+ suggestedRecheckAfterSeconds: res2.bindingStatus === "provisioning" && res2.provisioningPhase !== "waiting_dns" ? 60 : void 0,
4880
+ customerLiveConfirmed: res2.bindingStatus === "active",
4879
4881
  message: res2.message
4880
4882
  },
4881
- res2.bindingStatus === "active" ? "completed" : res2.status === "verified" ? "pending_provider" : "waiting_user"
4883
+ res2.bindingStatus === "active" ? "completed" : res2.provisioningPhase === "waiting_dns" || res2.status !== "verified" ? "waiting_user" : res2.bindingStatus === "provisioning" ? "pending_provider" : "waiting_user",
4884
+ res2.bindingStatus === "provisioning" ? [
4885
+ {
4886
+ tool: "bind",
4887
+ arguments: { action: "status" },
4888
+ allowed: true,
4889
+ reasonCode: res2.provisioningPhase === "waiting_dns" ? "after_user_fixes_dns" : "manual_recheck_after_provider_wait"
4890
+ }
4891
+ ] : []
4882
4892
  );
4883
4893
  }
4884
4894
  if (!args.hostname) {
@@ -4925,8 +4935,8 @@ When the user says the TXT is set, run bind "status". It verifies ownership and
4925
4935
  value: res.verificationRecord.value
4926
4936
  }
4927
4937
  ],
4928
- retryAfterSeconds: DNS_RETRY_AFTER_SECONDS,
4929
- maxAttempts: DNS_MAX_ATTEMPTS
4938
+ automaticRetries: 0,
4939
+ manualRecheckOnly: true
4930
4940
  },
4931
4941
  "waiting_user"
4932
4942
  );
package/dist/index.js CHANGED
@@ -147,7 +147,7 @@ function isFreeSiteAllowanceNetworkReference(value) {
147
147
  }
148
148
 
149
149
  // ../core/dist/domain/version.js
150
- var SAKUPA_MCP_VERSION = "0.7.52";
150
+ var SAKUPA_MCP_VERSION = "0.7.53";
151
151
 
152
152
  // ../core/dist/domain/errors.js
153
153
  var HTTP_STATUS = {
@@ -3508,8 +3508,6 @@ async function diagnoseBinding(input) {
3508
3508
  const layers = `Pipeline: [1] public DNS (checked LIVE above) -> [2] Sakupa ownership verification: ${input.verificationStatus} -> [3] HTTPS certificate & serving: ` + (input.provisioning ? "provisioning (Sakupa's certificate service validates and issues within minutes once the required www record above is OK; run bind status again in about 5 minutes to re-check the provider and advance activation)." : "starts after verification.");
3509
3509
  return { checks, apexResolves, allOk, checklist, layers };
3510
3510
  }
3511
- var DNS_RETRY_AFTER_SECONDS = 300;
3512
- var DNS_MAX_ATTEMPTS = 10;
3513
3511
  function toDnsChecklist(checks) {
3514
3512
  return checks.map((c) => ({
3515
3513
  name: c.record.name,
@@ -3520,13 +3518,12 @@ function toDnsChecklist(checks) {
3520
3518
  }));
3521
3519
  }
3522
3520
  function renderChecklistBlock(diag, fixTail) {
3523
- const cadence = `Re-check every ${DNS_RETRY_AFTER_SECONDS / 60} minutes, up to ${DNS_MAX_ATTEMPTS} times.`;
3524
3521
  return `Live DNS checklist (host values are the SHORT panel form):
3525
3522
  ${diag.checklist}
3526
3523
 
3527
3524
  ${diag.layers}
3528
3525
 
3529
- ` + (diag.allOk ? "All required records are live; certificate issuance completes automatically \u2014 re-check in a few minutes until the binding is active." : `${fixTail} ${cadence}`);
3526
+ ` + (diag.allOk ? "All required records are live. Cloudflare continues certificate issuance; wait about one minute, then run bind status once when the user asks. Do not poll automatically." : `${fixTail} After the user reports the DNS change is complete, run bind status once. Do not poll automatically.`);
3530
3527
  }
3531
3528
 
3532
3529
  // src/credential-rotation.ts
@@ -4970,7 +4967,7 @@ Once Stripe confirms payment and Sakupa synchronizes the subscription, the curre
4970
4967
  });
4971
4968
  const { apexResolves, allOk } = diag;
4972
4969
  return text(
4973
- res2.bindingStatus === "active" ? "domain_binding_active" : res2.status === "verified" ? "domain_verification_succeeded" : "domain_verification_pending",
4970
+ res2.bindingStatus === "active" ? "domain_binding_active" : res2.bindingStatus === "provisioning" ? "domain_binding_provisioning" : "domain_verification_pending",
4974
4971
  `Domain binding status for ${apex2}: ${res2.status}
4975
4972
  ${res2.message}
4976
4973
 
@@ -4982,6 +4979,7 @@ ${res2.message}
4982
4979
  verificationId: res2.verificationId,
4983
4980
  status: res2.status,
4984
4981
  bindingStatus: res2.bindingStatus,
4982
+ provisioningPhase: res2.provisioningPhase,
4985
4983
  apexDomain: apex2,
4986
4984
  provisioningJobId: res2.provisioningJobId,
4987
4985
  servingTarget: res2.servingTarget,
@@ -4990,11 +4988,23 @@ ${res2.message}
4990
4988
  apexRequired: false,
4991
4989
  requiredServingHostname: `www.${apex2}`,
4992
4990
  optionalApexHostname: apex2,
4993
- retryAfterSeconds: DNS_RETRY_AFTER_SECONDS,
4994
- maxAttempts: DNS_MAX_ATTEMPTS,
4991
+ automaticRetries: 0,
4992
+ manualRecheckOnly: true,
4993
+ backgroundRetry: false,
4994
+ manualStatusCheckRequired: res2.bindingStatus === "provisioning" && res2.provisioningPhase !== "waiting_dns",
4995
+ suggestedRecheckAfterSeconds: res2.bindingStatus === "provisioning" && res2.provisioningPhase !== "waiting_dns" ? 60 : void 0,
4996
+ customerLiveConfirmed: res2.bindingStatus === "active",
4995
4997
  message: res2.message
4996
4998
  },
4997
- res2.bindingStatus === "active" ? "completed" : res2.status === "verified" ? "pending_provider" : "waiting_user"
4999
+ res2.bindingStatus === "active" ? "completed" : res2.provisioningPhase === "waiting_dns" || res2.status !== "verified" ? "waiting_user" : res2.bindingStatus === "provisioning" ? "pending_provider" : "waiting_user",
5000
+ res2.bindingStatus === "provisioning" ? [
5001
+ {
5002
+ tool: "bind",
5003
+ arguments: { action: "status" },
5004
+ allowed: true,
5005
+ reasonCode: res2.provisioningPhase === "waiting_dns" ? "after_user_fixes_dns" : "manual_recheck_after_provider_wait"
5006
+ }
5007
+ ] : []
4998
5008
  );
4999
5009
  }
5000
5010
  if (!args.hostname) {
@@ -5041,8 +5051,8 @@ When the user says the TXT is set, run bind "status". It verifies ownership and
5041
5051
  value: res.verificationRecord.value
5042
5052
  }
5043
5053
  ],
5044
- retryAfterSeconds: DNS_RETRY_AFTER_SECONDS,
5045
- maxAttempts: DNS_MAX_ATTEMPTS
5054
+ automaticRetries: 0,
5055
+ manualRecheckOnly: true
5046
5056
  },
5047
5057
  "waiting_user"
5048
5058
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sakupa/mcp",
3
- "version": "0.7.52",
3
+ "version": "0.7.53",
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",