@fidacy/mcp 0.3.0 → 0.3.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.3.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 01f0734: Telemetry now flushes on process exit. The 2s flush timer is unref'd so a short-lived process could exit with a full buffer and silently lose it, which is exactly how plugin-channel installs went uncounted. A beforeExit hook sends the last batch, best-effort as always.
8
+
3
9
  ## 0.3.0
4
10
 
5
11
  ### Minor Changes
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.3.0" : "dev";
464
+ var CLIENT_VERSION = true ? "0.3.1" : "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";
@@ -497,6 +497,14 @@ function anonId() {
497
497
  }
498
498
  var buffer = [];
499
499
  var flushTimer = null;
500
+ var exitHookArmed = false;
501
+ function armExitFlush() {
502
+ if (exitHookArmed || typeof process === "undefined" || typeof process.once !== "function") return;
503
+ exitHookArmed = true;
504
+ process.once("beforeExit", () => {
505
+ if (buffer.length > 0) void flush();
506
+ });
507
+ }
500
508
  function resultOf(status, violatedRule) {
501
509
  if (status === "ALLOW") return "allow";
502
510
  const r = violatedRule ?? "";
@@ -511,6 +519,7 @@ function resultOf(status, violatedRule) {
511
519
  }
512
520
  function record(type, result, band, capRatio, action) {
513
521
  if (!telemetryEnabled()) return;
522
+ armExitFlush();
514
523
  buffer.push({
515
524
  type,
516
525
  ts: (/* @__PURE__ */ new Date()).toISOString(),
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.3.0" : "dev";
493
+ var CLIENT_VERSION = true ? "0.3.1" : "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";
@@ -526,6 +526,14 @@ function anonId() {
526
526
  }
527
527
  var buffer = [];
528
528
  var flushTimer = null;
529
+ var exitHookArmed = false;
530
+ function armExitFlush() {
531
+ if (exitHookArmed || typeof process === "undefined" || typeof process.once !== "function") return;
532
+ exitHookArmed = true;
533
+ process.once("beforeExit", () => {
534
+ if (buffer.length > 0) void flush();
535
+ });
536
+ }
529
537
  function resultOf(status, violatedRule) {
530
538
  if (status === "ALLOW") return "allow";
531
539
  const r = violatedRule ?? "";
@@ -540,6 +548,7 @@ function resultOf(status, violatedRule) {
540
548
  }
541
549
  function record(type, result, band, capRatio, action) {
542
550
  if (!telemetryEnabled()) return;
551
+ armExitFlush();
543
552
  buffer.push({
544
553
  type,
545
554
  ts: (/* @__PURE__ */ new Date()).toISOString(),
@@ -836,7 +845,7 @@ async function findArtifacts(sha2562, cfg) {
836
845
  }
837
846
 
838
847
  // src/provision.ts
839
- var CLIENT_VERSION2 = true ? "0.3.0" : "dev";
848
+ var CLIENT_VERSION2 = true ? "0.3.1" : "dev";
840
849
  function provisionEnabled() {
841
850
  const v = (process.env.FIDACY_DISABLE_PROVISION ?? "").trim().toLowerCase();
842
851
  return !(v === "1" || v === "true" || v === "yes");
@@ -1267,7 +1276,7 @@ function renderAlertLine(alerts) {
1267
1276
  var state = ensureState();
1268
1277
  var core = makeCore();
1269
1278
  var subject = process.env.FIDACY_SUBJECT ?? "agent:demo";
1270
- var SERVER_VERSION = true ? "0.3.0" : "dev";
1279
+ var SERVER_VERSION = true ? "0.3.1" : "dev";
1271
1280
  var bootClaim = claimUrl();
1272
1281
  var server = new McpServer(
1273
1282
  { name: "fidacy", version: SERVER_VERSION },
package/dist/lib.d.ts CHANGED
@@ -3,7 +3,7 @@ export { makeCore } from "./core.js";
3
3
  export { ensureState, readConfig } from "./config.js";
4
4
  export { requestUpgrade, upgradeUrl } from "./upgrade.js";
5
5
  export { autoProvision } from "./provision.js";
6
- export { recordInstall, recordAgentActive, setTelemetryShell } from "./telemetry.js";
6
+ export { recordInstall, recordAgentActive, setTelemetryShell, flush as flushTelemetry } from "./telemetry.js";
7
7
  export { decisionNudge, weekOneBootNudge, nudgeOnce, installAgeDays, claimUrl, noKeyCta } from "./nudges.js";
8
8
  export { FREE_DECISIONS, activationGate, activationBootLine, trialCountdownLine, hasEngineKey, remainingFree } from "./activation.js";
9
9
  export { summarize, renderSummary, toRows, renderRows, explainRule, withinDays } from "./reporting.js";
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.3.0" : "dev";
616
+ var CLIENT_VERSION = true ? "0.3.1" : "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";
@@ -652,6 +652,14 @@ function anonId() {
652
652
  }
653
653
  var buffer = [];
654
654
  var flushTimer = null;
655
+ var exitHookArmed = false;
656
+ function armExitFlush() {
657
+ if (exitHookArmed || typeof process === "undefined" || typeof process.once !== "function") return;
658
+ exitHookArmed = true;
659
+ process.once("beforeExit", () => {
660
+ if (buffer.length > 0) void flush();
661
+ });
662
+ }
655
663
  function resultOf(status, violatedRule) {
656
664
  if (status === "ALLOW") return "allow";
657
665
  const r = violatedRule ?? "";
@@ -666,6 +674,7 @@ function resultOf(status, violatedRule) {
666
674
  }
667
675
  function record(type, result, band, capRatio, action) {
668
676
  if (!telemetryEnabled()) return;
677
+ armExitFlush();
669
678
  buffer.push({
670
679
  type,
671
680
  ts: (/* @__PURE__ */ new Date()).toISOString(),
@@ -792,7 +801,7 @@ function requestUpgrade() {
792
801
  }
793
802
 
794
803
  // src/provision.ts
795
- var CLIENT_VERSION2 = true ? "0.3.0" : "dev";
804
+ var CLIENT_VERSION2 = true ? "0.3.1" : "dev";
796
805
  function provisionEnabled() {
797
806
  const v = (process.env.FIDACY_DISABLE_PROVISION ?? "").trim().toLowerCase();
798
807
  return !(v === "1" || v === "true" || v === "yes");
@@ -1156,6 +1165,7 @@ export {
1156
1165
  ensureState,
1157
1166
  evaluate,
1158
1167
  explainRule,
1168
+ flush as flushTelemetry,
1159
1169
  hasEngineKey,
1160
1170
  httpRedeem,
1161
1171
  installAgeDays,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fidacy/mcp",
3
- "version": "0.3.0",
3
+ "version": "0.3.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)",