@fidacy/openclaw-plugin 0.2.7 → 0.2.9

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,29 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.9
4
+
5
+ ### Patch Changes
6
+
7
+ - 48e1a28: Rebundle with @fidacy/mcp 0.3.0: the free-trial decision counter now survives the background auto-provision write (it was being wiped, resetting the 20-decision anonymous trial on every restart), and anonymous telemetry counts tool usage (tool_use event, allowlisted tool name only, never content).
8
+
9
+ ## 0.2.8
10
+
11
+ ### Patch Changes
12
+
13
+ - 2e846a7: Funnel: move the strongest claim nudge before the activation wall, and make the
14
+ first-block nudge scary-but-true.
15
+
16
+ The proof-teaser nudge fired at decision 25, stranded behind the 20-decision
17
+ activation wall: once the firewall fails closed at 20, denied calls stop
18
+ advancing the counter, so 25 was never reached and the single strongest reason
19
+ to claim (the history you already built) never showed. It now fires at 15, five
20
+ decisions before the wall — carrot before stick, which is the highest-converting
21
+ moment the PLG research points to.
22
+
23
+ The first-deny nudge now cites the real $441,788 agent incident. Grounded fear,
24
+ never manufactured: for a company whose pitch is verify-don't-trust, a cited
25
+ fact converts and a fabricated panic would be self-refuting.
26
+
3
27
  ## 0.2.7
4
28
 
5
29
  ### Patch Changes
package/dist/index.js CHANGED
@@ -4709,7 +4709,7 @@ function resolveMandateRules(cfg) {
4709
4709
  }
4710
4710
 
4711
4711
  // ../mcp/src/telemetry.ts
4712
- var CLIENT_VERSION = true ? "0.2.7" : "dev";
4712
+ var CLIENT_VERSION = true ? "0.2.9" : "dev";
4713
4713
  function bandOf(amount) {
4714
4714
  if (typeof amount !== "number" || !Number.isFinite(amount) || amount <= 0) return void 0;
4715
4715
  if (amount < 10) return "lt10";
@@ -4760,7 +4760,7 @@ function resultOf(status, violatedRule) {
4760
4760
  if (r.startsWith("non_positive_amount") || r.startsWith("invalid_")) return "deny_invalid";
4761
4761
  return "deny_scope";
4762
4762
  }
4763
- function record(type, result, band, capRatio) {
4763
+ function record(type, result, band, capRatio, action) {
4764
4764
  if (!telemetryEnabled()) return;
4765
4765
  buffer.push({
4766
4766
  type,
@@ -4769,7 +4769,8 @@ function record(type, result, band, capRatio) {
4769
4769
  shell: currentShell,
4770
4770
  ...result ? { result } : {},
4771
4771
  ...band ? { band } : {},
4772
- ...capRatio ? { cap_ratio: capRatio } : {}
4772
+ ...capRatio ? { cap_ratio: capRatio } : {},
4773
+ ...action ? { action } : {}
4773
4774
  });
4774
4775
  if (!flushTimer) {
4775
4776
  flushTimer = setTimeout(() => {
@@ -4887,7 +4888,7 @@ function requestUpgrade() {
4887
4888
  }
4888
4889
 
4889
4890
  // ../mcp/src/provision.ts
4890
- var CLIENT_VERSION2 = true ? "0.2.7" : "dev";
4891
+ var CLIENT_VERSION2 = true ? "0.2.9" : "dev";
4891
4892
  function provisionEnabled() {
4892
4893
  const v = (process.env.FIDACY_DISABLE_PROVISION ?? "").trim().toLowerCase();
4893
4894
  return !(v === "1" || v === "true" || v === "yes");
@@ -4911,8 +4912,9 @@ async function autoProvision() {
4911
4912
  if (!res.ok) return "failed";
4912
4913
  const data = await res.json();
4913
4914
  if (typeof data.api_key !== "string" || !data.api_key) return "failed";
4915
+ const fresh = readConfig() ?? cfg;
4914
4916
  writeConfig({
4915
- ...cfg,
4917
+ ...fresh,
4916
4918
  api_key: data.api_key,
4917
4919
  tier: data.tier === "paid" ? "paid" : "free"
4918
4920
  });
@@ -4947,7 +4949,7 @@ function bumpDecisionCount() {
4947
4949
  sessionDecisions += 1;
4948
4950
  const cfg = readConfig();
4949
4951
  if (!cfg) return sessionDecisions;
4950
- const n = (cfg.decisions_count ?? 0) + 1;
4952
+ const n = Math.max((cfg.decisions_count ?? 0) + 1, sessionDecisions);
4951
4953
  cfg.decisions_count = n;
4952
4954
  try {
4953
4955
  writeConfig(cfg);
@@ -4963,13 +4965,13 @@ function decisionNudge(status, violatedRule, upgradeToolName) {
4963
4965
  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.`;
4964
4966
  }
4965
4967
  if (status === "DENY" && nudgeOnce("first_deny")) {
4966
- return `Fidacy just blocked this for you. For your operator: ${claimPath}.`;
4968
+ 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}.`;
4967
4969
  }
4968
4970
  if (status === "ALLOW" && nudgeOnce("first_allow")) {
4969
4971
  return `Fidacy authorized this and signed the decision. For your operator: ${claimPath}.`;
4970
4972
  }
4971
- if (count === 25 && nudgeOnce("proof_teaser")) {
4972
- return `Your local chain now holds ${count} decisions only you can read. Anchor them and anyone can verify at fidacy.com/verify, no account needed on their side. For your operator: ${claimPath}.`;
4973
+ if (count === 15 && nudgeOnce("proof_teaser")) {
4974
+ 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}.`;
4973
4975
  }
4974
4976
  if (count === 10 && nudgeOnce("milestone_10")) {
4975
4977
  return `That's 10 actions gated on this install. For your operator: ${claimPath}.`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fidacy/openclaw-plugin",
3
- "version": "0.2.7",
3
+ "version": "0.2.9",
4
4
  "description": "Fidacy payment firewall as a native OpenClaw plugin: signed, verifiable verdicts on every money-moving agent action, in-process (no MCP subprocess).",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Fidacy (ZeepCode Group Technology LLC) <hello@fidacy.com> (https://fidacy.com)",
@@ -56,8 +56,8 @@
56
56
  "openclaw": "2026.6.11",
57
57
  "typebox": "1.1.39",
58
58
  "typescript": "^5.6.3",
59
- "@fidacy/firewall": "0.1.1",
60
- "@fidacy/mcp": "0.2.9"
59
+ "@fidacy/mcp": "0.3.0",
60
+ "@fidacy/firewall": "0.1.1"
61
61
  },
62
62
  "scripts": {
63
63
  "build": "node scripts/bundle.mjs",