@fidacy/mcp 0.1.12 → 0.1.14

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
@@ -112,3 +112,15 @@ semantic versioning.
112
112
  on next boot (losing all dedup state). A torn trailing line is now recognized,
113
113
  the intact prefix is salvaged, and the tail truncated. Mid-file damage still
114
114
  quarantines the file as before.
115
+
116
+ ## 0.1.13 — 2026-07-03
117
+
118
+ - MCP handshake now reports the real package version (was hardcoded "0.1.0"
119
+ through 0.1.12 — same class as the client_version telemetry bug, same fix:
120
+ injected from package.json at build time).
121
+
122
+ ## 0.1.14 — 2026-07-03
123
+
124
+ - Granular block-type telemetry: DENY reasons now split into lookalike (BEC),
125
+ duplicate-invoice, payee, cap, window and invalid, so the public threat page
126
+ can count blocks by attack class. Still zero PII (an enum, never the rule text).
package/dist/core.js CHANGED
@@ -423,7 +423,7 @@ function resolveMandateRules(cfg) {
423
423
  }
424
424
 
425
425
  // src/telemetry.ts
426
- var CLIENT_VERSION = true ? "0.1.12" : "dev";
426
+ var CLIENT_VERSION = true ? "0.1.14" : "dev";
427
427
  var currentShell = "mcp";
428
428
  function telemetryEnabled() {
429
429
  const v = (process.env.FIDACY_DISABLE_TELEMETRY ?? "").trim().toLowerCase();
@@ -444,8 +444,13 @@ var flushTimer = null;
444
444
  function resultOf(status, violatedRule) {
445
445
  if (status === "ALLOW") return "allow";
446
446
  const r = violatedRule ?? "";
447
- if (r.startsWith("per_tx_cap") || r.startsWith("total_cap")) return "deny_cap";
447
+ if (r.startsWith("payee_lookalike")) return "deny_lookalike";
448
448
  if (r.startsWith("payee_not_in_allowlist")) return "deny_payee";
449
+ if (r.startsWith("duplicate_invoice")) return "deny_duplicate";
450
+ if (r.startsWith("per_tx_cap") || r.startsWith("total_cap")) return "deny_cap";
451
+ if (r.startsWith("mandate_revoked") || r.startsWith("before_mandate") || r.startsWith("after_mandate"))
452
+ return "deny_window";
453
+ if (r.startsWith("non_positive_amount") || r.startsWith("invalid_")) return "deny_invalid";
449
454
  return "deny_scope";
450
455
  }
451
456
  function record(type, result) {
package/dist/index.js CHANGED
@@ -452,7 +452,7 @@ function resolveMandateRules(cfg) {
452
452
  }
453
453
 
454
454
  // src/telemetry.ts
455
- var CLIENT_VERSION = true ? "0.1.12" : "dev";
455
+ var CLIENT_VERSION = true ? "0.1.14" : "dev";
456
456
  var currentShell = "mcp";
457
457
  function telemetryEnabled() {
458
458
  const v = (process.env.FIDACY_DISABLE_TELEMETRY ?? "").trim().toLowerCase();
@@ -473,8 +473,13 @@ var flushTimer = null;
473
473
  function resultOf(status, violatedRule) {
474
474
  if (status === "ALLOW") return "allow";
475
475
  const r = violatedRule ?? "";
476
- if (r.startsWith("per_tx_cap") || r.startsWith("total_cap")) return "deny_cap";
476
+ if (r.startsWith("payee_lookalike")) return "deny_lookalike";
477
477
  if (r.startsWith("payee_not_in_allowlist")) return "deny_payee";
478
+ if (r.startsWith("duplicate_invoice")) return "deny_duplicate";
479
+ if (r.startsWith("per_tx_cap") || r.startsWith("total_cap")) return "deny_cap";
480
+ if (r.startsWith("mandate_revoked") || r.startsWith("before_mandate") || r.startsWith("after_mandate"))
481
+ return "deny_window";
482
+ if (r.startsWith("non_positive_amount") || r.startsWith("invalid_")) return "deny_invalid";
478
483
  return "deny_scope";
479
484
  }
480
485
  function record(type, result) {
@@ -676,7 +681,7 @@ async function postOnce(fetchImpl, url, headers, payload, timeoutMs) {
676
681
  }
677
682
 
678
683
  // src/provision.ts
679
- var CLIENT_VERSION2 = true ? "0.1.12" : "dev";
684
+ var CLIENT_VERSION2 = true ? "0.1.14" : "dev";
680
685
  function provisionEnabled() {
681
686
  const v = (process.env.FIDACY_DISABLE_PROVISION ?? "").trim().toLowerCase();
682
687
  return !(v === "1" || v === "true" || v === "yes");
@@ -776,7 +781,8 @@ function weekOneBootNudge(upgradeToolName) {
776
781
  var state = ensureState();
777
782
  var core = makeCore();
778
783
  var subject = process.env.FIDACY_SUBJECT ?? "agent:demo";
779
- var server = new McpServer({ name: "fidacy", version: "0.1.0" });
784
+ var SERVER_VERSION = true ? "0.1.14" : "dev";
785
+ var server = new McpServer({ name: "fidacy", version: SERVER_VERSION });
780
786
  server.registerTool(
781
787
  "request_payment",
782
788
  {
package/dist/lib.js CHANGED
@@ -571,7 +571,7 @@ function resolveMandateRules(cfg) {
571
571
  }
572
572
 
573
573
  // src/telemetry.ts
574
- var CLIENT_VERSION = true ? "0.1.12" : "dev";
574
+ var CLIENT_VERSION = true ? "0.1.14" : "dev";
575
575
  var currentShell = "mcp";
576
576
  function setTelemetryShell(shell) {
577
577
  currentShell = shell;
@@ -595,8 +595,13 @@ var flushTimer = null;
595
595
  function resultOf(status, violatedRule) {
596
596
  if (status === "ALLOW") return "allow";
597
597
  const r = violatedRule ?? "";
598
- if (r.startsWith("per_tx_cap") || r.startsWith("total_cap")) return "deny_cap";
598
+ if (r.startsWith("payee_lookalike")) return "deny_lookalike";
599
599
  if (r.startsWith("payee_not_in_allowlist")) return "deny_payee";
600
+ if (r.startsWith("duplicate_invoice")) return "deny_duplicate";
601
+ if (r.startsWith("per_tx_cap") || r.startsWith("total_cap")) return "deny_cap";
602
+ if (r.startsWith("mandate_revoked") || r.startsWith("before_mandate") || r.startsWith("after_mandate"))
603
+ return "deny_window";
604
+ if (r.startsWith("non_positive_amount") || r.startsWith("invalid_")) return "deny_invalid";
600
605
  return "deny_scope";
601
606
  }
602
607
  function record(type, result) {
@@ -694,7 +699,7 @@ function requestUpgrade() {
694
699
  }
695
700
 
696
701
  // src/provision.ts
697
- var CLIENT_VERSION2 = true ? "0.1.12" : "dev";
702
+ var CLIENT_VERSION2 = true ? "0.1.14" : "dev";
698
703
  function provisionEnabled() {
699
704
  const v = (process.env.FIDACY_DISABLE_PROVISION ?? "").trim().toLowerCase();
700
705
  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.1.12",
3
+ "version": "0.1.14",
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
  "homepage": "https://fidacy.com",