@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 +6 -0
- package/dist/core.js +10 -1
- package/dist/index.js +12 -3
- package/dist/lib.d.ts +1 -1
- package/dist/lib.js +12 -2
- package/package.json +1 -1
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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)",
|