@fidacy/mcp 0.4.0 → 0.4.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.4.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Say what actually goes wrong. The lapse warning used to talk about proof and auditors, which is not what an operator is afraid of. What genuinely switches off when the allowance runs out is the set of checks that ask WHO is spending: agent identity verification, revoked/stolen key detection, and behavioural anomaly detection all run server-side. Local rules keep blocking the wrong payee and the over-cap amount, but a compromised or prompt-injected agent operating inside your own allowlist and under your own cap now pays out unchallenged — real money, irreversible. The warnings now name that, and the trial-expiry warnings name the operational cost of a halted agent plus the trap of "fixing" it by removing the firewall entirely.
8
+
3
9
  ## 0.4.0
4
10
 
5
11
  ### Minor Changes
package/dist/core.js CHANGED
@@ -486,7 +486,7 @@ function resolveMandateRules(cfg) {
486
486
  }
487
487
 
488
488
  // src/telemetry.ts
489
- var CLIENT_VERSION = true ? "0.4.0" : "dev";
489
+ var CLIENT_VERSION = true ? "0.4.1" : "dev";
490
490
  function bandOf(amount) {
491
491
  if (typeof amount !== "number" || !Number.isFinite(amount) || amount <= 0) return void 0;
492
492
  if (amount < 10) return "lt10";
package/dist/index.js CHANGED
@@ -518,7 +518,7 @@ function resolveMandateRules(cfg) {
518
518
  }
519
519
 
520
520
  // src/telemetry.ts
521
- var CLIENT_VERSION = true ? "0.4.0" : "dev";
521
+ var CLIENT_VERSION = true ? "0.4.1" : "dev";
522
522
  function bandOf(amount) {
523
523
  if (typeof amount !== "number" || !Number.isFinite(amount) || amount <= 0) return void 0;
524
524
  if (amount < 10) return "lt10";
@@ -880,7 +880,7 @@ async function findArtifacts(sha2562, cfg) {
880
880
  }
881
881
 
882
882
  // src/provision.ts
883
- var CLIENT_VERSION2 = true ? "0.4.0" : "dev";
883
+ var CLIENT_VERSION2 = true ? "0.4.1" : "dev";
884
884
  function provisionEnabled() {
885
885
  const v = (process.env.FIDACY_DISABLE_PROVISION ?? "").trim().toLowerCase();
886
886
  return !(v === "1" || v === "true" || v === "yes");
@@ -1088,11 +1088,11 @@ function protectionWarning(decisionsUsed2, keyOverride) {
1088
1088
  return null;
1089
1089
  // working and nothing is expiring soon: silence is the respect.
1090
1090
  case "protected_low":
1091
- return `\u26A0 ${BRAND}: ${left} free decision${left === 1 ? "" : "s"} left on this install. When they run out the firewall fails closed and your agent STOPS being able to pay \u2014 it does not quietly go unprotected, it halts. Keep it running free at ${where()} (free key, ~2 minutes, no card; this install's block history moves with you, plus ${FREE_MONTHLY_VERDICTS} signed verdicts every month).`;
1091
+ return `\u26A0 ${BRAND}: ${left} free decision${left === 1 ? "" : "s"} left, then this agent's payments STOP DEAD. Every payment it attempts after that is refused \u2014 invoices unpaid, workflows broken, at 3am with nobody watching. And the operators who "fix" it by ripping the firewall out end up with an agent nobody is checking at all, which is how a prompt-injected agent wires money to a stranger. Keep it alive, free, in ~2 minutes: ${where()} \u2014 no card, this install's block history moves with you, plus ${FREE_MONTHLY_VERDICTS} verified payments every month.`;
1092
1092
  case "halted":
1093
- return `\u26D4 ${BRAND} is NOT ACTIVATED and your agent can no longer pay. The firewall failed closed after ${FREE_DECISIONS} free decisions, which is the safe direction \u2014 no money moves because a trial expired. Your agent is frozen, not exposed. Activate free in ~2 minutes at ${where()}: no card, this install's block history moves with you, and you get ${FREE_MONTHLY_VERDICTS} signed verdicts every month.`;
1093
+ return `\u26D4 ${BRAND} IS NOT ACTIVATED \u2014 YOUR AGENT CAN NO LONGER PAY ANYTHING. Every payment it attempts is being refused right now: invoices go unpaid, subscriptions lapse, jobs fail silently. The firewall failed closed after ${FREE_DECISIONS} free decisions, which is the safe direction \u2014 but it is YOUR agent that is stopped until you act. And do not "fix" it by removing the firewall: an agent with nothing checking it is exactly how a stolen key or an injected instruction moves real money you never get back. Activate free in ~2 minutes at ${where()}: no card, your block history moves with you, ${FREE_MONTHLY_VERDICTS} verified payments every month.`;
1094
1094
  case "unproven":
1095
- return `\u26A0 ${BRAND}: your agent is still being blocked locally, but its blocks are no longer PROVABLE \u2014 the monthly signed-verdict allowance is spent, so nothing new can be shown to an auditor, insurer or counterparty. Restore proof at https://app.fidacy.com/billing (pay-as-you-go, no plan, from $0.04 per verdict).`;
1095
+ return `\u26D4 ${BRAND}: YOUR AGENT IS EXPOSED RIGHT NOW. The monthly allowance is spent, so the checks that ask WHO is spending are OFF: agent identity is no longer verified, a revoked or stolen agent key is no longer detected, and behavioural anomalies are no longer caught. Local rules still block the wrong payee and the over-cap amount \u2014 but a compromised or prompt-injected agent that stays inside your own allowlist and under your own cap now pays out unchallenged. That is real money, irreversible, with no signed evidence to recover it or hand an insurer. Turn the checks back on: https://app.fidacy.com/billing \u2014 pay-as-you-go, no plan, from $0.04 per payment checked. One prevented payment pays for years of it.`;
1096
1096
  case "protected_keyed":
1097
1097
  return null;
1098
1098
  }
@@ -1105,7 +1105,7 @@ function protectionBootLine(decisionsUsed2) {
1105
1105
  case "protected_low":
1106
1106
  return ` \u26A0 ${Math.max(0, FREE_DECISIONS - decisionsUsed2)} free decisions left, then this agent's payments halt. Free key: ${where()}`;
1107
1107
  case "unproven":
1108
- return ` \u26A0 Blocking locally, but blocks are no longer provable \u2014 allowance spent. Restore at https://app.fidacy.com/billing`;
1108
+ return ` \u26D4 EXPOSED \u2014 identity, revocation and anomaly checks are OFF (allowance spent). A stolen or hijacked agent inside your caps now pays out unchallenged: https://app.fidacy.com/billing`;
1109
1109
  case "protected_trial":
1110
1110
  return ` ${BRAND} active \u2014 ${decisionsUsed2}/${FREE_DECISIONS} free decisions used.`;
1111
1111
  case "protected_keyed":
@@ -1381,7 +1381,7 @@ function renderAlertLine(alerts) {
1381
1381
  var state = ensureState();
1382
1382
  var core = makeCore();
1383
1383
  var subject = process.env.FIDACY_SUBJECT ?? "agent:demo";
1384
- var SERVER_VERSION = true ? "0.4.0" : "dev";
1384
+ var SERVER_VERSION = true ? "0.4.1" : "dev";
1385
1385
  var bootClaim = claimUrl();
1386
1386
  var server = new McpServer(
1387
1387
  // The commercial identity. `name` is the stable slug hosts key on; `title` is
package/dist/lib.js CHANGED
@@ -641,7 +641,7 @@ function resolveMandateRules(cfg) {
641
641
  }
642
642
 
643
643
  // src/telemetry.ts
644
- var CLIENT_VERSION = true ? "0.4.0" : "dev";
644
+ var CLIENT_VERSION = true ? "0.4.1" : "dev";
645
645
  function bandOf(amount) {
646
646
  if (typeof amount !== "number" || !Number.isFinite(amount) || amount <= 0) return void 0;
647
647
  if (amount < 10) return "lt10";
@@ -829,7 +829,7 @@ function requestUpgrade() {
829
829
  }
830
830
 
831
831
  // src/provision.ts
832
- var CLIENT_VERSION2 = true ? "0.4.0" : "dev";
832
+ var CLIENT_VERSION2 = true ? "0.4.1" : "dev";
833
833
  function provisionEnabled() {
834
834
  const v = (process.env.FIDACY_DISABLE_PROVISION ?? "").trim().toLowerCase();
835
835
  return !(v === "1" || v === "true" || v === "yes");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fidacy/mcp",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "Fidacy action firewall for AI agents. Mandate-gated payment authorization as an MCP server.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Fidacy (ZeepCode Group Technology LLC) <hello@fidacy.com> (https://fidacy.com)",