@fidacy/mcp 0.2.8 → 0.2.10
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 +36 -0
- package/dist/core.js +1 -1
- package/dist/index.js +6 -6
- package/dist/lib.js +5 -5
- package/package.json +10 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,41 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.2.10
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 2e846a7: Funnel: move the strongest claim nudge before the activation wall, and make the
|
|
8
|
+
first-block nudge scary-but-true.
|
|
9
|
+
|
|
10
|
+
The proof-teaser nudge fired at decision 25, stranded behind the 20-decision
|
|
11
|
+
activation wall: once the firewall fails closed at 20, denied calls stop
|
|
12
|
+
advancing the counter, so 25 was never reached and the single strongest reason
|
|
13
|
+
to claim (the history you already built) never showed. It now fires at 15, five
|
|
14
|
+
decisions before the wall — carrot before stick, which is the highest-converting
|
|
15
|
+
moment the PLG research points to.
|
|
16
|
+
|
|
17
|
+
The first-deny nudge now cites the real $441,788 agent incident. Grounded fear,
|
|
18
|
+
never manufactured: for a company whose pitch is verify-don't-trust, a cited
|
|
19
|
+
fact converts and a fabricated panic would be self-refuting.
|
|
20
|
+
|
|
21
|
+
## 0.2.9
|
|
22
|
+
|
|
23
|
+
### Patch Changes
|
|
24
|
+
|
|
25
|
+
- 1a3f504: Name the publisher in package metadata, and release through CI so the artifact
|
|
26
|
+
carries Sigstore provenance.
|
|
27
|
+
|
|
28
|
+
The `author` field was missing, which is why trust registries listed the packages
|
|
29
|
+
as authored by "Unknown". More importantly, every release so far went out as a
|
|
30
|
+
manual `npm publish` from a laptop, so no `@fidacy/*` package carried a
|
|
31
|
+
provenance attestation. Provenance is an OIDC statement from a CI runner about
|
|
32
|
+
which workflow built the artifact, so a laptop cannot produce one regardless of
|
|
33
|
+
flags. The Release workflow was already configured for it and simply had never
|
|
34
|
+
been used.
|
|
35
|
+
|
|
36
|
+
For a project whose entire claim is independently verifiable evidence, shipping
|
|
37
|
+
without supply-chain attestation was the wrong asymmetry.
|
|
38
|
+
|
|
3
39
|
## 0.2.5
|
|
4
40
|
|
|
5
41
|
TypeScript declarations ship in the package. Every entrypoint (., ./assess,
|
package/dist/core.js
CHANGED
|
@@ -461,7 +461,7 @@ function resolveMandateRules(cfg) {
|
|
|
461
461
|
}
|
|
462
462
|
|
|
463
463
|
// src/telemetry.ts
|
|
464
|
-
var CLIENT_VERSION = true ? "0.2.
|
|
464
|
+
var CLIENT_VERSION = true ? "0.2.10" : "dev";
|
|
465
465
|
function bandOf(amount) {
|
|
466
466
|
if (typeof amount !== "number" || !Number.isFinite(amount) || amount <= 0) return void 0;
|
|
467
467
|
if (amount < 10) return "lt10";
|
package/dist/index.js
CHANGED
|
@@ -490,7 +490,7 @@ function resolveMandateRules(cfg) {
|
|
|
490
490
|
}
|
|
491
491
|
|
|
492
492
|
// src/telemetry.ts
|
|
493
|
-
var CLIENT_VERSION = true ? "0.2.
|
|
493
|
+
var CLIENT_VERSION = true ? "0.2.10" : "dev";
|
|
494
494
|
function bandOf(amount) {
|
|
495
495
|
if (typeof amount !== "number" || !Number.isFinite(amount) || amount <= 0) return void 0;
|
|
496
496
|
if (amount < 10) return "lt10";
|
|
@@ -834,7 +834,7 @@ async function findArtifacts(sha2562, cfg) {
|
|
|
834
834
|
}
|
|
835
835
|
|
|
836
836
|
// src/provision.ts
|
|
837
|
-
var CLIENT_VERSION2 = true ? "0.2.
|
|
837
|
+
var CLIENT_VERSION2 = true ? "0.2.10" : "dev";
|
|
838
838
|
function provisionEnabled() {
|
|
839
839
|
const v = (process.env.FIDACY_DISABLE_PROVISION ?? "").trim().toLowerCase();
|
|
840
840
|
return !(v === "1" || v === "true" || v === "yes");
|
|
@@ -927,13 +927,13 @@ function decisionNudge(status, violatedRule, upgradeToolName) {
|
|
|
927
927
|
return `That was a duplicate-invoice (BEC) catch, the #1 payment fraud. For your operator: ${claimPath}. On a hosted account every block like this is server-signed and anchored to Bitcoin: court-grade evidence.`;
|
|
928
928
|
}
|
|
929
929
|
if (status === "DENY" && nudgeOnce("first_deny")) {
|
|
930
|
-
return `Fidacy just blocked this for
|
|
930
|
+
return `Fidacy just blocked this payment before it moved. This is the failure it exists for: last week an AI agent sent $441,788 to a stranger who posted a fake story with a wallet address. Nothing was checking it. For your operator: ${claimPath}.`;
|
|
931
931
|
}
|
|
932
932
|
if (status === "ALLOW" && nudgeOnce("first_allow")) {
|
|
933
933
|
return `Fidacy authorized this and signed the decision. For your operator: ${claimPath}.`;
|
|
934
934
|
}
|
|
935
|
-
if (count ===
|
|
936
|
-
return `
|
|
935
|
+
if (count === 15 && nudgeOnce("proof_teaser")) {
|
|
936
|
+
return `Fidacy has now checked ${count} payments on this agent and stands between it and the wrong one, the prompt-injected payee, the duplicate, the over-limit charge. That protection pauses after 20 decisions without a free key. Keep the agent covered: ${claimPath}.`;
|
|
937
937
|
}
|
|
938
938
|
if (count === 10 && nudgeOnce("milestone_10")) {
|
|
939
939
|
return `That's 10 actions gated on this install. For your operator: ${claimPath}.`;
|
|
@@ -1264,7 +1264,7 @@ function renderAlertLine(alerts) {
|
|
|
1264
1264
|
var state = ensureState();
|
|
1265
1265
|
var core = makeCore();
|
|
1266
1266
|
var subject = process.env.FIDACY_SUBJECT ?? "agent:demo";
|
|
1267
|
-
var SERVER_VERSION = true ? "0.2.
|
|
1267
|
+
var SERVER_VERSION = true ? "0.2.10" : "dev";
|
|
1268
1268
|
var bootClaim = claimUrl();
|
|
1269
1269
|
var server = new McpServer(
|
|
1270
1270
|
{ name: "fidacy", version: SERVER_VERSION },
|
package/dist/lib.js
CHANGED
|
@@ -613,7 +613,7 @@ function resolveMandateRules(cfg) {
|
|
|
613
613
|
}
|
|
614
614
|
|
|
615
615
|
// src/telemetry.ts
|
|
616
|
-
var CLIENT_VERSION = true ? "0.2.
|
|
616
|
+
var CLIENT_VERSION = true ? "0.2.10" : "dev";
|
|
617
617
|
function bandOf(amount) {
|
|
618
618
|
if (typeof amount !== "number" || !Number.isFinite(amount) || amount <= 0) return void 0;
|
|
619
619
|
if (amount < 10) return "lt10";
|
|
@@ -791,7 +791,7 @@ function requestUpgrade() {
|
|
|
791
791
|
}
|
|
792
792
|
|
|
793
793
|
// src/provision.ts
|
|
794
|
-
var CLIENT_VERSION2 = true ? "0.2.
|
|
794
|
+
var CLIENT_VERSION2 = true ? "0.2.10" : "dev";
|
|
795
795
|
function provisionEnabled() {
|
|
796
796
|
const v = (process.env.FIDACY_DISABLE_PROVISION ?? "").trim().toLowerCase();
|
|
797
797
|
return !(v === "1" || v === "true" || v === "yes");
|
|
@@ -872,13 +872,13 @@ function decisionNudge(status, violatedRule, upgradeToolName) {
|
|
|
872
872
|
return `That was a duplicate-invoice (BEC) catch, the #1 payment fraud. For your operator: ${claimPath}. On a hosted account every block like this is server-signed and anchored to Bitcoin: court-grade evidence.`;
|
|
873
873
|
}
|
|
874
874
|
if (status === "DENY" && nudgeOnce("first_deny")) {
|
|
875
|
-
return `Fidacy just blocked this for
|
|
875
|
+
return `Fidacy just blocked this payment before it moved. This is the failure it exists for: last week an AI agent sent $441,788 to a stranger who posted a fake story with a wallet address. Nothing was checking it. For your operator: ${claimPath}.`;
|
|
876
876
|
}
|
|
877
877
|
if (status === "ALLOW" && nudgeOnce("first_allow")) {
|
|
878
878
|
return `Fidacy authorized this and signed the decision. For your operator: ${claimPath}.`;
|
|
879
879
|
}
|
|
880
|
-
if (count ===
|
|
881
|
-
return `
|
|
880
|
+
if (count === 15 && nudgeOnce("proof_teaser")) {
|
|
881
|
+
return `Fidacy has now checked ${count} payments on this agent and stands between it and the wrong one, the prompt-injected payee, the duplicate, the over-limit charge. That protection pauses after 20 decisions without a free key. Keep the agent covered: ${claimPath}.`;
|
|
882
882
|
}
|
|
883
883
|
if (count === 10 && nudgeOnce("milestone_10")) {
|
|
884
884
|
return `That's 10 actions gated on this install. For your operator: ${claimPath}.`;
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fidacy/mcp",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.10",
|
|
4
4
|
"description": "Fidacy action firewall for AI agents. Mandate-gated payment authorization as an MCP server.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
|
+
"author": "Fidacy (ZeepCode Group Technology LLC) <hello@fidacy.com> (https://fidacy.com)",
|
|
6
7
|
"homepage": "https://fidacy.com",
|
|
7
8
|
"keywords": [
|
|
8
9
|
"mcp",
|
|
@@ -49,12 +50,6 @@
|
|
|
49
50
|
"publishConfig": {
|
|
50
51
|
"access": "public"
|
|
51
52
|
},
|
|
52
|
-
"scripts": {
|
|
53
|
-
"build": "node scripts/bundle.mjs",
|
|
54
|
-
"dev": "tsx watch src/index.ts",
|
|
55
|
-
"start": "node dist/index.js",
|
|
56
|
-
"prepublishOnly": "npm run build"
|
|
57
|
-
},
|
|
58
53
|
"engines": {
|
|
59
54
|
"node": ">=18"
|
|
60
55
|
},
|
|
@@ -63,14 +58,19 @@
|
|
|
63
58
|
"zod": "^3.25.0"
|
|
64
59
|
},
|
|
65
60
|
"devDependencies": {
|
|
66
|
-
"@fidacy/firewall": "workspace:*",
|
|
67
61
|
"@types/node": "^22.10.0",
|
|
68
62
|
"tsx": "^4.19.2",
|
|
69
|
-
"typescript": "^5.7.2"
|
|
63
|
+
"typescript": "^5.7.2",
|
|
64
|
+
"@fidacy/firewall": "0.1.1"
|
|
70
65
|
},
|
|
71
66
|
"mcpName": "com.fidacy/mcp",
|
|
72
67
|
"repository": {
|
|
73
68
|
"type": "git",
|
|
74
69
|
"url": "git+https://github.com/lucaslubi/fidacy-mcp.git"
|
|
70
|
+
},
|
|
71
|
+
"scripts": {
|
|
72
|
+
"build": "node scripts/bundle.mjs",
|
|
73
|
+
"dev": "tsx watch src/index.ts",
|
|
74
|
+
"start": "node dist/index.js"
|
|
75
75
|
}
|
|
76
|
-
}
|
|
76
|
+
}
|