execbro 1.10.19 → 1.10.21

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.
Files changed (49) hide show
  1. package/README.md +4 -1
  2. package/build/__tests__/unit/meteringEndpoint.test.d.ts +2 -0
  3. package/build/__tests__/unit/meteringEndpoint.test.d.ts.map +1 -0
  4. package/build/__tests__/unit/meteringEndpoint.test.js +16 -0
  5. package/build/__tests__/unit/meteringEndpoint.test.js.map +1 -0
  6. package/build/__tests__/unit/signedVerdict.test.d.ts +2 -0
  7. package/build/__tests__/unit/signedVerdict.test.d.ts.map +1 -0
  8. package/build/__tests__/unit/signedVerdict.test.js +69 -0
  9. package/build/__tests__/unit/signedVerdict.test.js.map +1 -0
  10. package/build/__tests__/unit/usageCache.test.d.ts +2 -0
  11. package/build/__tests__/unit/usageCache.test.d.ts.map +1 -0
  12. package/build/__tests__/unit/usageCache.test.js +116 -0
  13. package/build/__tests__/unit/usageCache.test.js.map +1 -0
  14. package/build/__tests__/unit/usageCacheStateReport.test.d.ts +2 -0
  15. package/build/__tests__/unit/usageCacheStateReport.test.d.ts.map +1 -0
  16. package/build/__tests__/unit/usageCacheStateReport.test.js +21 -0
  17. package/build/__tests__/unit/usageCacheStateReport.test.js.map +1 -0
  18. package/build/__tests__/unit/usageGate.test.js +9 -0
  19. package/build/__tests__/unit/usageGate.test.js.map +1 -1
  20. package/build/core/config.d.ts +1 -0
  21. package/build/core/config.d.ts.map +1 -1
  22. package/build/core/config.js +3 -0
  23. package/build/core/config.js.map +1 -1
  24. package/build/core/license.d.ts.map +1 -1
  25. package/build/core/license.js +19 -33
  26. package/build/core/license.js.map +1 -1
  27. package/build/core/signedVerdict.d.ts +14 -0
  28. package/build/core/signedVerdict.d.ts.map +1 -0
  29. package/build/core/signedVerdict.js +36 -0
  30. package/build/core/signedVerdict.js.map +1 -0
  31. package/build/core/telemetry.d.ts +1 -0
  32. package/build/core/telemetry.d.ts.map +1 -1
  33. package/build/core/telemetry.js +26 -4
  34. package/build/core/telemetry.js.map +1 -1
  35. package/build/core/usageCache.d.ts +6 -0
  36. package/build/core/usageCache.d.ts.map +1 -0
  37. package/build/core/usageCache.js +76 -0
  38. package/build/core/usageCache.js.map +1 -0
  39. package/build/pro/usageGate.d.ts.map +1 -1
  40. package/build/pro/usageGate.js +5 -1
  41. package/build/pro/usageGate.js.map +1 -1
  42. package/build/pro/usageNotifications.d.ts +1 -1
  43. package/build/pro/usageNotifications.d.ts.map +1 -1
  44. package/build/pro/usageNotifications.js +13 -3
  45. package/build/pro/usageNotifications.js.map +1 -1
  46. package/build/tools/metaTools.d.ts.map +1 -1
  47. package/build/tools/metaTools.js +5 -1
  48. package/build/tools/metaTools.js.map +1 -1
  49. package/package.json +1 -1
package/README.md CHANGED
@@ -216,7 +216,10 @@ See the [Telemetry & Data Collection guide](docs/telemetry.md) for the full brea
216
216
 
217
217
  ## Pricing
218
218
 
219
- ExecBro is **free to use** — every feature, fully intelligent — up to **600 tool calls per month**. That covers evaluation and everyday debugging. Heavy users can remove the cap with **ExecBro Pro** ($9/mo) for unlimited calls and every future hosted feature. See [execbro.com/pricing](https://execbro.com/pricing). Existing users get an extra month before the cap applies, with in-app notice.
219
+ ExecBro is **free to use** — every feature, fully intelligent — up to **600 tool calls per month**. That covers evaluation and everyday debugging. Heavy users can remove the cap with **ExecBro Pro** ($8.99/mo) for unlimited calls and every future hosted feature. See [execbro.com/pricing](https://execbro.com/pricing).
220
+
221
+ > [!NOTE]
222
+ > **Grandfather notice:** the 600-call monthly cap starts applying **2026-08-01** for new installs. If you already had ExecBro installed before then, you get a free month on top — your cap doesn't start until **2026-08-31**. You'll also see this as an in-app notice. No action needed unless you want to [link your account and upgrade to Pro](#see-your-usage--execbrocom) ahead of time. Questions? [zigor535@gmail.com](mailto:zigor535@gmail.com).
220
223
 
221
224
  ## Feedback & Feature Requests
222
225
 
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=meteringEndpoint.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meteringEndpoint.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/unit/meteringEndpoint.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import { describe, it, expect } from "@jest/globals";
2
+ import { getMeteringEndpoint, getTelemetryEndpoint } from "../../core/telemetry.js";
3
+ import { API_BASE_URL, ACCOUNTS_API_KEY } from "../../core/config.js";
4
+ describe("metering endpoint relocation", () => {
5
+ it("metering targets the API domain, not the telemetry worker", () => {
6
+ expect(getMeteringEndpoint()).toBe(`${API_BASE_URL}/api/usage/report`);
7
+ expect(getMeteringEndpoint()).not.toContain("workers.dev");
8
+ });
9
+ it("analytics endpoint is unchanged (still the worker)", () => {
10
+ expect(getTelemetryEndpoint()).toContain("workers.dev");
11
+ });
12
+ it("accounts API key is exported from config for both license and metering", () => {
13
+ expect(ACCOUNTS_API_KEY).toMatch(/^[0-9a-f]{64}$/);
14
+ });
15
+ });
16
+ //# sourceMappingURL=meteringEndpoint.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meteringEndpoint.test.js","sourceRoot":"","sources":["../../../src/__tests__/unit/meteringEndpoint.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACjE,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,YAAY,mBAAmB,CAAC,CAAC;QACvE,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAC9E,MAAM,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=signedVerdict.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signedVerdict.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/unit/signedVerdict.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,69 @@
1
+ import { describe, it, expect, afterEach } from "@jest/globals";
2
+ import { generateKeyPairSync, sign } from "crypto";
3
+ import { canonicalVerdictPayload, verifyVerdictSig, setVerdictPublicKeyForTests, } from "../../core/signedVerdict.js";
4
+ const { privateKey, publicKey } = generateKeyPairSync("ed25519");
5
+ const PUB_PEM = publicKey.export({ type: "spki", format: "pem" }).toString();
6
+ function fields(over = {}) {
7
+ return {
8
+ installationId: "inst-0001",
9
+ monthKey: "2026-07",
10
+ used: 100,
11
+ limit: 600,
12
+ canUse: true,
13
+ capActive: true,
14
+ resetsAt: "2026-08-01T00:00:00.000Z",
15
+ verdictFreshUntil: "2026-07-24T12:00:00.000Z",
16
+ ...over,
17
+ };
18
+ }
19
+ function signFields(f) {
20
+ return sign(null, Buffer.from(canonicalVerdictPayload(f), "utf-8"), privateKey).toString("base64");
21
+ }
22
+ afterEach(() => setVerdictPublicKeyForTests(null));
23
+ describe("canonicalVerdictPayload", () => {
24
+ it("matches the pinned cross-repo canonical literal exactly", () => {
25
+ // PINNED: the web repo pins this exact literal in verdict-signing.test.ts.
26
+ // Never change one side without the other.
27
+ expect(canonicalVerdictPayload(fields())).toBe('["inst-0001","2026-07",100,600,true,true,"2026-08-01T00:00:00.000Z","2026-07-24T12:00:00.000Z"]');
28
+ });
29
+ it("matches the pinned cross-repo canonical literal on the null path (limit/resetsAt null)", () => {
30
+ // PINNED: the web repo pins this exact literal in verdict-signing.test.ts.
31
+ // Locks byte-parity for the unlimited-plan / no-reset-date case, where
32
+ // `limit` and `resetsAt` serialize as JSON null rather than a value.
33
+ expect(canonicalVerdictPayload({
34
+ installationId: "i",
35
+ monthKey: "2026-07",
36
+ used: 0,
37
+ limit: null,
38
+ canUse: true,
39
+ capActive: true,
40
+ resetsAt: null,
41
+ verdictFreshUntil: "2026-07-24T12:00:00.000Z",
42
+ })).toBe('["i","2026-07",0,null,true,true,null,"2026-07-24T12:00:00.000Z"]');
43
+ });
44
+ });
45
+ describe("verifyVerdictSig", () => {
46
+ it("accepts a valid signature", () => {
47
+ setVerdictPublicKeyForTests(PUB_PEM);
48
+ expect(verifyVerdictSig(fields(), signFields(fields()))).toBe(true);
49
+ });
50
+ it("rejects when any signed field was tampered", () => {
51
+ setVerdictPublicKeyForTests(PUB_PEM);
52
+ const sig = signFields(fields());
53
+ expect(verifyVerdictSig(fields({ used: 0 }), sig)).toBe(false);
54
+ expect(verifyVerdictSig(fields({ canUse: true, capActive: false }), sig)).toBe(false);
55
+ expect(verifyVerdictSig(fields({ verdictFreshUntil: "2099-01-01T00:00:00.000Z" }), sig)).toBe(false);
56
+ });
57
+ it("rejects garbage signatures without throwing", () => {
58
+ setVerdictPublicKeyForTests(PUB_PEM);
59
+ expect(verifyVerdictSig(fields(), "")).toBe(false);
60
+ expect(verifyVerdictSig(fields(), "not-base64!!!")).toBe(false);
61
+ });
62
+ it("rejects signatures from a different key", () => {
63
+ setVerdictPublicKeyForTests(PUB_PEM);
64
+ const { privateKey: otherKey } = generateKeyPairSync("ed25519");
65
+ const forged = sign(null, Buffer.from(canonicalVerdictPayload(fields()), "utf-8"), otherKey).toString("base64");
66
+ expect(verifyVerdictSig(fields(), forged)).toBe(false);
67
+ });
68
+ });
69
+ //# sourceMappingURL=signedVerdict.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signedVerdict.test.js","sourceRoot":"","sources":["../../../src/__tests__/unit/signedVerdict.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=usageCache.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usageCache.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/unit/usageCache.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,116 @@
1
+ import { describe, it, expect, beforeEach, afterEach } from "@jest/globals";
2
+ import { generateKeyPairSync, sign } from "crypto";
3
+ import { mkdtempSync, rmSync, writeFileSync, readFileSync, existsSync } from "fs";
4
+ import { tmpdir } from "os";
5
+ import { join } from "path";
6
+ import { canonicalVerdictPayload, setVerdictPublicKeyForTests } from "../../core/signedVerdict.js";
7
+ import { readUsageCache, writeUsageCache, getUsageCacheState } from "../../core/usageCache.js";
8
+ const { privateKey, publicKey } = generateKeyPairSync("ed25519");
9
+ const PUB_PEM = publicKey.export({ type: "spki", format: "pem" }).toString();
10
+ const INSTALL_ID = "11111111-2222-3333-4444-555555555555";
11
+ let dir;
12
+ let file;
13
+ function usage(over = {}) {
14
+ return {
15
+ used: 100,
16
+ limit: 600,
17
+ monthKey: "2026-07",
18
+ creditsRemaining: null,
19
+ canUse: true,
20
+ capActive: true,
21
+ warnThreshold: 0.8,
22
+ resetsAt: "2026-08-01T00:00:00.000Z",
23
+ verdictFreshUntil: "2026-07-24T12:00:00.000Z",
24
+ ...over,
25
+ };
26
+ }
27
+ function signedFieldsOf(u, installationId) {
28
+ return {
29
+ installationId,
30
+ monthKey: u.monthKey,
31
+ used: u.used,
32
+ limit: u.limit,
33
+ canUse: u.canUse,
34
+ capActive: u.capActive ?? true,
35
+ resetsAt: u.resetsAt ?? null,
36
+ verdictFreshUntil: u.verdictFreshUntil,
37
+ };
38
+ }
39
+ function sigFor(u, installationId) {
40
+ return sign(null, Buffer.from(canonicalVerdictPayload(signedFieldsOf(u, installationId)), "utf-8"), privateKey).toString("base64");
41
+ }
42
+ beforeEach(() => {
43
+ dir = mkdtempSync(join(tmpdir(), "usage-cache-"));
44
+ file = join(dir, "usage.json");
45
+ setVerdictPublicKeyForTests(PUB_PEM);
46
+ });
47
+ afterEach(() => {
48
+ setVerdictPublicKeyForTests(null);
49
+ rmSync(dir, { recursive: true, force: true });
50
+ });
51
+ describe("usage cache v2", () => {
52
+ it("round-trips a signed verdict", () => {
53
+ const u = usage();
54
+ writeUsageCache(u, sigFor(u, INSTALL_ID), INSTALL_ID, file);
55
+ const out = readUsageCache(INSTALL_ID, file);
56
+ expect(out).not.toBeNull();
57
+ expect(out.used).toBe(100);
58
+ expect(out.canUse).toBe(true);
59
+ expect(out.warnThreshold).toBe(0.8);
60
+ expect(getUsageCacheState()).toBe("valid");
61
+ });
62
+ it("stores a machine-managed comment marker", () => {
63
+ const u = usage();
64
+ writeUsageCache(u, sigFor(u, INSTALL_ID), INSTALL_ID, file);
65
+ const raw = JSON.parse(readFileSync(file, "utf-8"));
66
+ expect(raw._comment).toContain("do not edit");
67
+ expect(raw.v).toBe(2);
68
+ });
69
+ it("rejects a tampered signed field as invalid_sig", () => {
70
+ const u = usage({ used: 700, canUse: false });
71
+ writeUsageCache(u, sigFor(u, INSTALL_ID), INSTALL_ID, file);
72
+ const raw = JSON.parse(readFileSync(file, "utf-8"));
73
+ raw.signed.canUse = true;
74
+ raw.signed.used = 0;
75
+ writeFileSync(file, JSON.stringify(raw));
76
+ expect(readUsageCache(INSTALL_ID, file)).toBeNull();
77
+ expect(getUsageCacheState()).toBe("invalid_sig");
78
+ });
79
+ it("treats a legacy v1 flat file as missing", () => {
80
+ writeFileSync(file, JSON.stringify(usage()));
81
+ expect(readUsageCache(INSTALL_ID, file)).toBeNull();
82
+ expect(getUsageCacheState()).toBe("missing");
83
+ });
84
+ it("treats an absent file as missing", () => {
85
+ expect(readUsageCache(INSTALL_ID, join(dir, "nope.json"))).toBeNull();
86
+ expect(getUsageCacheState()).toBe("missing");
87
+ });
88
+ it("rejects a cache signed for a different installation", () => {
89
+ const u = usage();
90
+ writeUsageCache(u, sigFor(u, "other-install"), "other-install", file);
91
+ expect(readUsageCache(INSTALL_ID, file)).toBeNull();
92
+ expect(getUsageCacheState()).toBe("missing");
93
+ });
94
+ it("tampering unsigned extras does not invalidate the verdict", () => {
95
+ const u = usage();
96
+ writeUsageCache(u, sigFor(u, INSTALL_ID), INSTALL_ID, file);
97
+ const raw = JSON.parse(readFileSync(file, "utf-8"));
98
+ raw.unsigned.warnThreshold = 0.99;
99
+ writeFileSync(file, JSON.stringify(raw));
100
+ const out = readUsageCache(INSTALL_ID, file);
101
+ expect(out).not.toBeNull();
102
+ expect(out.used).toBe(100);
103
+ });
104
+ it("self-verify guard: skips the write entirely when the provided sig doesn't match the derived signed block", () => {
105
+ const u = usage();
106
+ // Sign for a different set of field values than the ones actually
107
+ // passed to writeUsageCache — the re-derived `signed` block for `u`
108
+ // will not verify against this sig, so the write must be skipped.
109
+ const mismatchedSig = sigFor(usage({ used: 999, canUse: false }), INSTALL_ID);
110
+ writeUsageCache(u, mismatchedSig, INSTALL_ID, file);
111
+ expect(existsSync(file)).toBe(false);
112
+ expect(readUsageCache(INSTALL_ID, file)).toBeNull();
113
+ expect(getUsageCacheState()).toBe("missing");
114
+ });
115
+ });
116
+ //# sourceMappingURL=usageCache.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usageCache.test.js","sourceRoot":"","sources":["../../../src/__tests__/unit/usageCache.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=usageCacheStateReport.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usageCacheStateReport.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/unit/usageCacheStateReport.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ import { describe, it, expect, afterEach, jest } from "@jest/globals";
2
+ describe("validate payload includes usageCacheState", () => {
3
+ const realFetch = global.fetch;
4
+ afterEach(() => {
5
+ global.fetch = realFetch;
6
+ jest.resetModules();
7
+ });
8
+ it("sends the current cache state in the validate body", async () => {
9
+ const calls = [];
10
+ global.fetch = jest.fn(async (url, init) => {
11
+ calls.push({ url: String(url), body: JSON.parse(init.body) });
12
+ return { ok: true, status: 200, json: async () => ({ tier: "free", validatedAt: "", cacheExpiresAt: "" }) };
13
+ });
14
+ const { refreshLicense } = await import("../../core/license.js");
15
+ await refreshLicense();
16
+ const validateCall = calls.find((c) => c.url.includes("/api/license/validate"));
17
+ expect(validateCall).toBeTruthy();
18
+ expect(["valid", "invalid_sig", "missing"]).toContain(validateCall.body.usageCacheState);
19
+ });
20
+ });
21
+ //# sourceMappingURL=usageCacheStateReport.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usageCacheStateReport.test.js","sourceRoot":"","sources":["../../../src/__tests__/unit/usageCacheStateReport.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEtE,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACvD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;IAE/B,SAAS,CAAC,GAAG,EAAE;QACX,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,KAAK,GAAiC,EAAE,CAAC;QAC/C,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,GAAQ,EAAE,IAAS,EAAE,EAAE;YACjD,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,EAAS,CAAC;QACvH,CAAC,CAAQ,CAAC;QAEV,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACjE,MAAM,cAAc,EAAE,CAAC;QAEvB,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAChF,MAAM,CAAC,YAAY,CAAC,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,CAAC,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,YAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -75,4 +75,13 @@ describe("warning line", () => {
75
75
  expect(line).toMatch(/next month/);
76
76
  });
77
77
  });
78
+ describe("agent-resistance", () => {
79
+ it("block message tells the agent this is a paid limit and not to modify config files", () => {
80
+ freezeSessionVerdict(usage({ used: 600, canUse: false }));
81
+ const r = isToolBlocked("tap");
82
+ expect(r.message).toContain("not an error");
83
+ expect(r.message).toContain("Do not modify");
84
+ expect(r.message).toContain(".execbro");
85
+ });
86
+ });
78
87
  //# sourceMappingURL=usageGate.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usageGate.test.js","sourceRoot":"","sources":["../../../src/__tests__/unit/usageGate.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usageGate.test.js","sourceRoot":"","sources":["../../../src/__tests__/unit/usageGate.test.ts"],"names":[],"mappings":"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"}
@@ -6,4 +6,5 @@
6
6
  * 4. Default → production URL
7
7
  */
8
8
  export declare const API_BASE_URL: string;
9
+ export declare const ACCOUNTS_API_KEY = "fb4b5d8f410ff8d0dfe3ade01adc0b2444479ac9380b3f256554dd9d7044f5d2";
9
10
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AA0BA;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,EAAE,MAC8D,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AA0BA;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,EAAE,MAC8D,CAAC;AAI1F,eAAO,MAAM,gBAAgB,qEAAqE,CAAC"}
@@ -25,4 +25,7 @@ const config = loadConfig();
25
25
  * 4. Default → production URL
26
26
  */
27
27
  export const API_BASE_URL = process.env.EXECBRO_API_URL ?? config.apiUrl ?? (IS_DEV ? LOCAL_URL : PRODUCTION_URL);
28
+ // Write-only server API key shared by license validation and metering reports.
29
+ // Safe to embed in client code (grants no read access).
30
+ export const ACCOUNTS_API_KEY = "fb4b5d8f410ff8d0dfe3ade01adc0b2444479ac9380b3f256554dd9d7044f5d2";
28
31
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AACpD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAE/C,MAAM,cAAc,GAAG,qBAAqB,CAAC;AAC7C,MAAM,SAAS,GAAG,uBAAuB,CAAC;AAM1C,SAAS,UAAU;IACf,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAC;IACxC,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;AAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;AAE5B;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,YAAY,GACrB,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AACpD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAE/C,MAAM,cAAc,GAAG,qBAAqB,CAAC;AAC7C,MAAM,SAAS,GAAG,uBAAuB,CAAC;AAM1C,SAAS,UAAU;IACf,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAC;IACxC,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;AAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;AAE5B;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,YAAY,GACrB,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;AAE1F,+EAA+E;AAC/E,wDAAwD;AACxD,MAAM,CAAC,MAAM,gBAAgB,GAAG,kEAAkE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"license.d.ts","sourceRoot":"","sources":["../../src/core/license.ts"],"names":[],"mappings":"AA2BA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAElD,MAAM,WAAW,aAAa;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,WAAW,CAAC;IAClB,aAAa,EAAE,WAAW,GAAG,QAAQ,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC;CACL;AAED,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAExC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IACxB,GAAG,CAAC,EAAE,WAAW,CAAC;CACrB;AAwBD,wBAAgB,YAAY,IAAI,SAAS,GAAG,IAAI,CAE/C;AAED,wBAAgB,cAAc,IAAI,WAAW,GAAG,IAAI,CAEnD;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAItD;AAED,eAAO,MAAM,eAAe,QAAsB,CAAC;AAMnD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAgB3F;AAyID,UAAU,aAAa;IACnB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,CAKtD;AAMD,wBAAgB,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC,CAGvD;AAyED,wBAAgB,gBAAgB,IAAI,aAAa,CAOhD;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAO1C;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAKD,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4B/D;AAED,wBAAgB,YAAY,IAAI,IAAI,CAUnC"}
1
+ {"version":3,"file":"license.d.ts","sourceRoot":"","sources":["../../src/core/license.ts"],"names":[],"mappings":"AA2BA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAElD,MAAM,WAAW,aAAa;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,WAAW,CAAC;IAClB,aAAa,EAAE,WAAW,GAAG,QAAQ,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC;CACL;AAED,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAExC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IACxB,GAAG,CAAC,EAAE,WAAW,CAAC;CACrB;AAsBD,wBAAgB,YAAY,IAAI,SAAS,GAAG,IAAI,CAE/C;AAED,wBAAgB,cAAc,IAAI,WAAW,GAAG,IAAI,CAEnD;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAItD;AAKD,eAAO,MAAM,eAAe,QAAsB,CAAC;AAMnD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAgB3F;AAuHD,UAAU,aAAa;IACnB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,CAKtD;AAMD,wBAAgB,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC,CAGvD;AAgFD,wBAAgB,gBAAgB,IAAI,aAAa,CAOhD;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAK1C;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAKD,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4B/D;AAED,wBAAgB,YAAY,IAAI,IAAI,CAUnC"}
@@ -6,14 +6,14 @@ import { getInstallationId } from "./telemetry.js";
6
6
  import { getDeviceFingerprint, getFingerprintVersion } from "./fingerprint.js";
7
7
  import { getPostHogClient } from "./posthog.js";
8
8
  import { CONFIG_DIR } from "./paths.js";
9
+ import { readUsageCache, writeUsageCache, getUsageCacheState } from "./usageCache.js";
9
10
  // ============================================================================
10
11
  // Configuration
11
12
  // ============================================================================
12
- import { API_BASE_URL } from "./config.js";
13
+ import { API_BASE_URL, ACCOUNTS_API_KEY } from "./config.js";
13
14
  const IS_DEV = process.argv.includes("--http");
14
15
  const CACHE_TTL_MS = IS_DEV ? 0 : 24 * 60 * 60 * 1000; // No cache in dev, 24h in prod
15
16
  const VALIDATION_ENDPOINT = API_BASE_URL;
16
- const ACCOUNTS_API_KEY = "fb4b5d8f410ff8d0dfe3ade01adc0b2444479ac9380b3f256554dd9d7044f5d2";
17
17
  const API_TIMEOUT_MS = 5_000;
18
18
  const LICENSE_FILE = join(CONFIG_DIR, "license.json");
19
19
  const DASHBOARD_URL = API_BASE_URL;
@@ -21,7 +21,6 @@ const DASHBOARD_URL = API_BASE_URL;
21
21
  // State
22
22
  // ============================================================================
23
23
  let currentStatus = null;
24
- const USAGE_FILE = join(CONFIG_DIR, "usage.json");
25
24
  let currentUsage = null;
26
25
  let currentPricing = null;
27
26
  export function getUsageInfo() {
@@ -35,7 +34,10 @@ export function formatPlanPrice(p) {
35
34
  const period = p.interval === "month" ? "mo" : "yr";
36
35
  return `${symbol}${p.amount}/${period}`;
37
36
  }
38
- export const GRACE_WINDOW_MS = 72 * 60 * 60 * 1000; // 72h fail-closed grace
37
+ // Grace window length. The authoritative stamp now comes from the server
38
+ // (verdictFreshUntil is signed inside the verdict); this constant remains for
39
+ // tests and documentation.
40
+ export const GRACE_WINDOW_MS = 72 * 60 * 60 * 1000;
39
41
  // Offline verdict resolution. Within the grace window we trust the last server
40
42
  // verdict verbatim (including canUse:false — this is the anti-bypass reversal of
41
43
  // the old "never load stale usage" behavior). Past the window we block only if the
@@ -59,27 +61,6 @@ export function computeOfflineUsage(cached, now) {
59
61
  const overCap = cached.capActive !== false && cached.limit != null && cached.used >= cached.limit;
60
62
  return { ...cached, canUse: !overCap };
61
63
  }
62
- function readUsageCache() {
63
- try {
64
- if (!existsSync(USAGE_FILE))
65
- return null;
66
- return JSON.parse(readFileSync(USAGE_FILE, "utf-8"));
67
- }
68
- catch {
69
- return null;
70
- }
71
- }
72
- function writeUsageCache(usage) {
73
- try {
74
- const dir = dirname(USAGE_FILE);
75
- if (!existsSync(dir))
76
- mkdirSync(dir, { recursive: true });
77
- writeFileSync(USAGE_FILE, JSON.stringify(usage, null, 2));
78
- }
79
- catch {
80
- // Silent fail
81
- }
82
- }
83
64
  // ============================================================================
84
65
  // Cache Management
85
66
  // ============================================================================
@@ -171,6 +152,7 @@ async function callValidationApi(installationId) {
171
152
  serverVersion: getServerVersion(),
172
153
  hostname: hostname(),
173
154
  osVersion: `${platform()} ${release()}`,
155
+ usageCacheState: getUsageCacheState(),
174
156
  }),
175
157
  signal: controller.signal,
176
158
  });
@@ -211,6 +193,9 @@ async function resolveLicense() {
211
193
  const installationId = getInstallationId();
212
194
  const cache = readCache();
213
195
  let source = "default";
196
+ // Probe the signed usage cache up front: sets the cache-state flag that is
197
+ // reported to the server (tamper evidence) and doubles as the offline verdict.
198
+ const cachedUsage = readUsageCache(installationId);
214
199
  // Always call API for fresh usage data (even if license cache is fresh)
215
200
  const apiResponse = await callValidationApi(installationId);
216
201
  if (apiResponse) {
@@ -238,12 +223,15 @@ async function resolveLicense() {
238
223
  $set: { package_name: getPackageName() },
239
224
  },
240
225
  });
241
- // Parse usage info from API response
226
+ // Parse usage info from API response. Persist only server-signed
227
+ // verdicts — verdictFreshUntil is stamped and signed server-side.
242
228
  if (apiResponse.usage) {
243
229
  const usageData = apiResponse.usage;
244
- usageData.verdictFreshUntil = new Date(Date.now() + GRACE_WINDOW_MS).toISOString();
245
230
  currentUsage = usageData;
246
- writeUsageCache(usageData);
231
+ const verdictSig = apiResponse.verdictSig;
232
+ if (typeof verdictSig === "string" && verdictSig && usageData.verdictFreshUntil) {
233
+ writeUsageCache(usageData, verdictSig, installationId);
234
+ }
247
235
  }
248
236
  if (apiResponse.pricing) {
249
237
  currentPricing = apiResponse.pricing;
@@ -257,7 +245,7 @@ async function resolveLicense() {
257
245
  // Fail-closed-after-grace: reuse the last usage verdict within the grace
258
246
  // window; past it, block only if last-known over cap. (Replaces the old
259
247
  // fail-open no-op which let anyone bypass the cap by blocking the endpoint.)
260
- currentUsage = computeOfflineUsage(readUsageCache(), Date.now());
248
+ currentUsage = computeOfflineUsage(cachedUsage, Date.now());
261
249
  return { status: currentStatus, source, durationMs: Date.now() - startTime };
262
250
  }
263
251
  // No cache, no API — default to free
@@ -276,11 +264,9 @@ export function getLicenseStatus() {
276
264
  export function incrementLocalUsage() {
277
265
  if (!currentUsage)
278
266
  return;
267
+ // In-memory only: powers the live 80% warning. The on-disk cache is
268
+ // server-signed content and is never client-mutated.
279
269
  currentUsage.used += 1;
280
- // Write periodically, not on every call (write every 10 increments)
281
- if (currentUsage.used % 10 === 0) {
282
- writeUsageCache(currentUsage);
283
- }
284
270
  }
285
271
  export function getDashboardUrl() {
286
272
  return DASHBOARD_URL;
@@ -1 +1 @@
1
- {"version":3,"file":"license.js","sourceRoot":"","sources":["../../src/core/license.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"license.js","sourceRoot":"","sources":["../../src/core/license.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export declare function setVerdictPublicKeyForTests(pem: string | null): void;
2
+ export interface SignedVerdictFields {
3
+ installationId: string;
4
+ monthKey: string;
5
+ used: number;
6
+ limit: number | null;
7
+ canUse: boolean;
8
+ capActive: boolean;
9
+ resetsAt: string | null;
10
+ verdictFreshUntil: string;
11
+ }
12
+ export declare function canonicalVerdictPayload(v: SignedVerdictFields): string;
13
+ export declare function verifyVerdictSig(signed: SignedVerdictFields, sigB64: string): boolean;
14
+ //# sourceMappingURL=signedVerdict.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signedVerdict.d.ts","sourceRoot":"","sources":["../../src/core/signedVerdict.ts"],"names":[],"mappings":"AAWA,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEpE;AAED,MAAM,WAAW,mBAAmB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC7B;AAKD,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAWtE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAYrF"}
@@ -0,0 +1,36 @@
1
+ import { createPublicKey, verify } from "crypto";
2
+ // SPKI PEM public key for usage-verdict signatures. The matching private key
3
+ // lives only in the web backend (LICENSE_SIGNING_KEY env). Generated once via
4
+ // web/scripts/generate-license-signing-key.mjs.
5
+ const LICENSE_VERDICT_PUBLIC_KEY_PEM = `-----BEGIN PUBLIC KEY-----
6
+ MCowBQYDK2VwAyEA2IaqERB2ey5GlaKou7DaR5lygDKpJzW53TZjPHVGBhQ=
7
+ -----END PUBLIC KEY-----`;
8
+ let publicKeyOverride = null;
9
+ export function setVerdictPublicKeyForTests(pem) {
10
+ publicKeyOverride = pem;
11
+ }
12
+ // Byte-identical twin of web/src/lib/verdict-signing.ts:canonicalVerdictPayload.
13
+ // Array form: field order fixed by position, immune to key-order differences.
14
+ // Both repos pin the same canonical literal in tests.
15
+ export function canonicalVerdictPayload(v) {
16
+ return JSON.stringify([
17
+ v.installationId,
18
+ v.monthKey,
19
+ v.used,
20
+ v.limit,
21
+ v.canUse,
22
+ v.capActive,
23
+ v.resetsAt,
24
+ v.verdictFreshUntil,
25
+ ]);
26
+ }
27
+ export function verifyVerdictSig(signed, sigB64) {
28
+ try {
29
+ const key = createPublicKey(publicKeyOverride ?? LICENSE_VERDICT_PUBLIC_KEY_PEM);
30
+ return verify(null, Buffer.from(canonicalVerdictPayload(signed), "utf-8"), key, Buffer.from(sigB64, "base64"));
31
+ }
32
+ catch {
33
+ return false;
34
+ }
35
+ }
36
+ //# sourceMappingURL=signedVerdict.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signedVerdict.js","sourceRoot":"","sources":["../../src/core/signedVerdict.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEjD,6EAA6E;AAC7E,8EAA8E;AAC9E,gDAAgD;AAChD,MAAM,8BAA8B,GAAG;;yBAEd,CAAC;AAE1B,IAAI,iBAAiB,GAAkB,IAAI,CAAC;AAE5C,MAAM,UAAU,2BAA2B,CAAC,GAAkB;IAC1D,iBAAiB,GAAG,GAAG,CAAC;AAC5B,CAAC;AAaD,iFAAiF;AACjF,8EAA8E;AAC9E,sDAAsD;AACtD,MAAM,UAAU,uBAAuB,CAAC,CAAsB;IAC1D,OAAO,IAAI,CAAC,SAAS,CAAC;QAClB,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,iBAAiB;KACtB,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAA2B,EAAE,MAAc;IACxE,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,eAAe,CAAC,iBAAiB,IAAI,8BAA8B,CAAC,CAAC;QACjF,OAAO,MAAM,CACT,IAAI,EACJ,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EACrD,GAAG,EACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAChC,CAAC;IACN,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export declare function getTelemetryEndpoint(): string;
2
2
  export declare function getTelemetryApiKey(): string;
3
+ export declare function getMeteringEndpoint(): string;
3
4
  export declare const TELEMETRY_JSONL_PATH = "/tmp/rn-devtools-telemetry.jsonl";
4
5
  export declare function getServerVersion(): string;
5
6
  export declare function getPackageName(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/core/telemetry.ts"],"names":[],"mappings":"AAsBA,wBAAgB,oBAAoB,IAAI,MAAM,CAA+B;AAC7E,wBAAgB,kBAAkB,IAAI,MAAM,CAA8B;AAI1E,eAAO,MAAM,oBAAoB,qCAAqC,CAAC;AAGvE,wBAAgB,gBAAgB,IAAI,MAAM,CASzC;AAGD,wBAAgB,cAAc,IAAI,MAAM,CASvC;AAMD,KAAK,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,GAAG,gBAAgB,GAAG,SAAS,CAAC;AAiCtH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,aAAa,CAgD1F;AA6BD,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAiED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAWD;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IACxC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,EAAE,OAAO,CAAC;CAC/B,GAAG;IAAE,gBAAgB,EAAE,OAAO,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,CAQ1D;AAED,wBAAgB,aAAa,IAAI,IAAI,CAqDpC;AAED,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED,qEAAqE;AACrE,wBAAgB,SAAS,IAAI,OAAO,CAOnC;AAiBD,wBAAgB,mBAAmB,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,EACrB,YAAY,CAAC,EAAE,MAAM,EACrB,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,EACrB,cAAc,CAAC,EAAE,MAAM,EACvB,WAAW,CAAC,EAAE,OAAO,EACrB,UAAU,CAAC,EAAE,OAAO,EACpB,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,EACxB,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,MAAM,EACxB,mBAAmB,CAAC,EAAE,MAAM,EAC5B,uBAAuB,CAAC,EAAE,MAAM,EAChC,QAAQ,CAAC,EAAE,MAAM,GAClB,IAAI,CA6KN;AAkED,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,SAAS,GAAG,aAAa,GAAG,cAAc,CAAC;AAE7F;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAC9B,OAAO,EAAE,oBAAoB,EAC7B,mBAAmB,EAAE,MAAM,EAC3B,gBAAgB,CAAC,EAAE,MAAM,GAC1B,IAAI,CA0CN;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE;IACzC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,IAAI,CAsDP;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE;IAC/C,GAAG,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI,CAAC;IACjD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,CAcP"}
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/core/telemetry.ts"],"names":[],"mappings":"AAuBA,wBAAgB,oBAAoB,IAAI,MAAM,CAA+B;AAC7E,wBAAgB,kBAAkB,IAAI,MAAM,CAA8B;AAC1E,wBAAgB,mBAAmB,IAAI,MAAM,CAA+C;AAI5F,eAAO,MAAM,oBAAoB,qCAAqC,CAAC;AAGvE,wBAAgB,gBAAgB,IAAI,MAAM,CASzC;AAGD,wBAAgB,cAAc,IAAI,MAAM,CASvC;AAMD,KAAK,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,GAAG,gBAAgB,GAAG,SAAS,CAAC;AAiCtH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,aAAa,CAgD1F;AA8BD,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAkED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAWD;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IACxC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,EAAE,OAAO,CAAC;CAC/B,GAAG;IAAE,gBAAgB,EAAE,OAAO,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,CAQ1D;AAED,wBAAgB,aAAa,IAAI,IAAI,CAqDpC;AAED,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED,qEAAqE;AACrE,wBAAgB,SAAS,IAAI,OAAO,CAOnC;AAiBD,wBAAgB,mBAAmB,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,EACrB,YAAY,CAAC,EAAE,MAAM,EACrB,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,EACrB,cAAc,CAAC,EAAE,MAAM,EACvB,WAAW,CAAC,EAAE,OAAO,EACrB,UAAU,CAAC,EAAE,OAAO,EACpB,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,EACxB,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,MAAM,EACxB,mBAAmB,CAAC,EAAE,MAAM,EAC5B,uBAAuB,CAAC,EAAE,MAAM,EAChC,QAAQ,CAAC,EAAE,MAAM,GAClB,IAAI,CA6KN;AAkED,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,SAAS,GAAG,aAAa,GAAG,cAAc,CAAC;AAE7F;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAC9B,OAAO,EAAE,oBAAoB,EAC7B,mBAAmB,EAAE,MAAM,EAC3B,gBAAgB,CAAC,EAAE,MAAM,GAC1B,IAAI,CA0CN;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE;IACzC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,IAAI,CAsDP;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE;IAC/C,GAAG,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI,CAAC;IACjD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,CAcP"}
@@ -6,6 +6,7 @@ import { ensureLicense, incrementLocalUsage } from "./license.js";
6
6
  import { connectedApps } from "./state.js";
7
7
  import { getPostHogClient } from "./posthog.js";
8
8
  import { CONFIG_DIR } from "./paths.js";
9
+ import { API_BASE_URL, ACCOUNTS_API_KEY } from "./config.js";
9
10
  // ============================================================================
10
11
  // Configuration
11
12
  // ============================================================================
@@ -18,6 +19,7 @@ const TELEMETRY_API_KEY = "6a630181cb391ed5c42a188428cc2d2623dfe9333ec048193bb71
18
19
  const BUILD_TOKEN = "8d755bc6f2da14077192795c2e3053a3123dc05a523e872bcfef26aa30068422";
19
20
  export function getTelemetryEndpoint() { return TELEMETRY_ENDPOINT; }
20
21
  export function getTelemetryApiKey() { return TELEMETRY_API_KEY; }
22
+ export function getMeteringEndpoint() { return `${API_BASE_URL}/api/usage/report`; }
21
23
  const REQUEST_TIMEOUT_MS = 5_000;
22
24
  const CONFIG_FILE = join(CONFIG_DIR, "telemetry.json");
23
25
  export const TELEMETRY_JSONL_PATH = "/tmp/rn-devtools-telemetry.jsonl";
@@ -136,6 +138,7 @@ function loadOrCreateConfig() {
136
138
  }
137
139
  // Create new installation
138
140
  const newConfig = {
141
+ _comment: "machine-managed by execbro — do not edit",
139
142
  installationId: randomUUID(),
140
143
  firstRunTimestamp: Date.now(),
141
144
  isFirstRun: true
@@ -409,7 +412,7 @@ export function trackToolInvocation(toolName, success, durationMs, errorMessage,
409
412
  // of analytics — so opting out of PostHog/analytics can never freeze
410
413
  // (bypass) the usage count.
411
414
  if (meteringEnabled) {
412
- dispatch(event);
415
+ dispatchMetering(event);
413
416
  }
414
417
  if (telemetryEnabled) {
415
418
  // Mirror tool_invocation to PostHog so insights/cohort filters can count
@@ -675,8 +678,8 @@ export function trackFastRefreshInstall(detection) {
675
678
  // Node 18+) tells the runtime to complete the request even if the process
676
679
  // exits right after — the Node equivalent of navigator.sendBeacon. No queue,
677
680
  // no flush timer, no data loss on abrupt exit.
678
- function dispatch(event) {
679
- const payload = {
681
+ function buildPayload(event) {
682
+ return {
680
683
  installationId: getInstallationId(),
681
684
  sessionId: sessionId || undefined,
682
685
  serverVersion: getServerVersion(),
@@ -686,17 +689,36 @@ function dispatch(event) {
686
689
  platform: process.platform,
687
690
  events: [event]
688
691
  };
692
+ }
693
+ function dispatch(event) {
689
694
  fetch(TELEMETRY_ENDPOINT, {
690
695
  method: "POST",
691
696
  headers: {
692
697
  "Content-Type": "application/json",
693
698
  "X-API-Key": TELEMETRY_API_KEY
694
699
  },
695
- body: JSON.stringify(payload),
700
+ body: JSON.stringify(buildPayload(event)),
696
701
  keepalive: true,
697
702
  signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
698
703
  }).catch(() => {
699
704
  // Silent: telemetry must never impact the user.
700
705
  });
701
706
  }
707
+ // Counted metering signal. Goes to the API domain (relayed server-side to the
708
+ // same Analytics Engine dataset) so that blocking metering also blocks license
709
+ // validation — reachability of one implies countability by the other.
710
+ function dispatchMetering(event) {
711
+ fetch(getMeteringEndpoint(), {
712
+ method: "POST",
713
+ headers: {
714
+ "Content-Type": "application/json",
715
+ "X-API-Key": ACCOUNTS_API_KEY
716
+ },
717
+ body: JSON.stringify(buildPayload(event)),
718
+ keepalive: true,
719
+ signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
720
+ }).catch(() => {
721
+ // Silent: metering must never impact the user.
722
+ });
723
+ }
702
724
  //# sourceMappingURL=telemetry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/core/telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAc,MAAM,IAAI,CAAC;AACpG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,MAAM,kBAAkB,GAAG,qDAAqD,CAAC;AACjF,MAAM,iBAAiB,GAAG,kEAAkE,CAAC;AAE7F,wEAAwE;AACxE,2EAA2E;AAC3E,wEAAwE;AACxE,0EAA0E;AAC1E,MAAM,WAAW,GAAG,iBAAiB,CAAC;AAEtC,MAAM,UAAU,oBAAoB,KAAa,OAAO,kBAAkB,CAAC,CAAC,CAAC;AAC7E,MAAM,UAAU,kBAAkB,KAAa,OAAO,iBAAiB,CAAC,CAAC,CAAC;AAE1E,MAAM,kBAAkB,GAAG,KAAK,CAAC;AACjC,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,oBAAoB,GAAG,kCAAkC,CAAC;AAEvE,6CAA6C;AAC7C,MAAM,UAAU,gBAAgB;IAC5B,IAAI,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACvD,OAAO,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,cAAc;IAC1B,IAAI,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACvD,OAAO,GAAG,CAAC,IAAI,IAAI,SAAS,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AAmCD,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E,MAAM,UAAU,eAAe,CAAC,YAAoB,EAAE,YAAqB;IACvE,MAAM,KAAK,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;IACzC,mGAAmG;IACnG,6FAA6F;IAC7F,kGAAkG;IAClG,wGAAwG;IACxG,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC9I,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IACD,gFAAgF;IAChF,+EAA+E;IAC/E,yDAAyD;IACzD,IAAI,YAAY,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QAC5C,IAAI,QAAQ,CAAC,QAAQ,CAAC,6BAA6B,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACrL,OAAO,gBAAgB,CAAC;QAC5B,CAAC;IACL,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvH,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3D,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,gGAAgG;IAChG,IAAI,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC;QACtG,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACtH,OAAO,YAAY,CAAC;IACxB,CAAC;IACD,uCAAuC;IACvC,IAAI,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACzE,OAAO,YAAY,CAAC;IACxB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACvF,OAAO,YAAY,CAAC;IACxB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACzF,OAAO,WAAW,CAAC;IACvB,CAAC;IACD,+BAA+B;IAC/B,IAAI,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACzG,OAAO,YAAY,CAAC;IACxB,CAAC;IACD,oEAAoE;IACpE,IAAI,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACvH,OAAO,YAAY,CAAC;IACxB,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAqBD,+EAA+E;AAC/E,QAAQ;AACR,+EAA+E;AAE/E,IAAI,gBAAgB,GAAG,IAAI,CAAC;AAC5B,6EAA6E;AAC7E,sFAAsF;AACtF,IAAI,eAAe,GAAG,IAAI,CAAC;AAC3B,MAAM,UAAU,iBAAiB;IAC7B,OAAO,eAAe,CAAC;AAC3B,CAAC;AACD,IAAI,MAAM,GAA2B,IAAI,CAAC;AAC1C,IAAI,gBAAgB,GAAkB,IAAI,CAAC;AAC3C,IAAI,SAAS,GAAkB,IAAI,CAAC;AACpC,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAC9B,IAAI,cAAc,GAAG,KAAK,CAAC;AAC3B,IAAI,iBAAiB,GAAkB,IAAI,CAAC;AAC5C,MAAM,qBAAqB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,oDAAoD;AAElG,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E,SAAS,kBAAkB;IACvB,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,8BAA8B;IAC9B,IAAI,CAAC;QACD,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAoB,CAAC;YACnD,gDAAgD;YAChD,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;YAC1C,iBAAiB,GAAG,KAAK,CAAC;YAC1B,OAAO,MAAM,CAAC;QAClB,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACL,sDAAsD;IAC1D,CAAC;IAED,0BAA0B;IAC1B,MAAM,SAAS,GAAoB;QAC/B,cAAc,EAAE,UAAU,EAAE;QAC5B,iBAAiB,EAAE,IAAI,CAAC,GAAG,EAAE;QAC7B,UAAU,EAAE,IAAI;KACnB,CAAC;IAEF,IAAI,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAE/D,4DAA4D;QAC5D,0CAA0C;QAC1C,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAChD,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAoB,CAAC;YAC5D,MAAM,GAAG,eAAe,CAAC;YACzB,iBAAiB,GAAG,eAAe,CAAC,UAAU,CAAC;YAC/C,OAAO,MAAM,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YACL,8CAA8C;YAC9C,MAAM,GAAG,SAAS,CAAC;YACnB,iBAAiB,GAAG,IAAI,CAAC;YACzB,OAAO,MAAM,CAAC;QAClB,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACL,wDAAwD;QACxD,MAAM,GAAG,SAAS,CAAC;QACnB,iBAAiB,GAAG,IAAI,CAAC;QACzB,OAAO,MAAM,CAAC;IAClB,CAAC;AACL,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC7B,OAAO,kBAAkB,EAAE,CAAC,cAAc,CAAC;AAC/C,CAAC;AAED,SAAS,UAAU;IACf,kBAAkB,EAAE,CAAC;IACrB,OAAO,iBAAiB,CAAC;AAC7B,CAAC;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAIrC;IACG,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3C,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;IAC/D,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;IAC9D,CAAC;IACD,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,aAAa;IACzB,yCAAyC;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IACpF,MAAM,SAAS,GAAG,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,KAAK,CAAC;IAEjF,iEAAiE;IACjE,MAAM,GAAG,GAAG,kBAAkB,EAAE,CAAC;IAEjC,0DAA0D;IAC1D,MAAM,kBAAkB,GACpB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAElG,MAAM,KAAK,GAAG,qBAAqB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC/F,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;IAC1C,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;IAExC,IAAI,CAAC,eAAe,EAAE,CAAC;QACnB,gEAAgE;QAChE,OAAO;IACX,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CACT,yHAAyH,CAC5H,CAAC;IACN,CAAC;IAED,uEAAuE;IACvE,6CAA6C;IAC7C,kBAAkB,EAAE,CAAC;IACrB,SAAS,GAAG,UAAU,EAAE,CAAC;IAEzB,IAAI,gBAAgB,EAAE,CAAC;QACnB,kFAAkF;QAClF,UAAU,CAAC,eAAe,EAAE;YACxB,UAAU,EAAE,UAAU,EAAE;SAC3B,CAAC,CAAC;IACP,CAAC;IAED,4EAA4E;IAC5E,4EAA4E;IAC5E,oCAAoC;IACpC,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,IAAI,gBAAgB,IAAI,cAAc,IAAI,gBAAgB,EAAE,CAAC;YACzD,UAAU,CAAC,aAAa,EAAE;gBACtB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB;aAC1C,CAAC,CAAC;QACP,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,kBAAkB;IAC9B,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,SAAS;IACrB,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,kBAAkB,EAAE,CAAC;QACjC,OAAO,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,SAAS,UAAU,CAAC,IAAY,EAAE,UAAsD;IACpF,IAAI,CAAC,gBAAgB;QAAE,OAAO;IAE9B,QAAQ,CAAC;QACL,IAAI;QACJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,UAAU,EAAE,UAAU,EAAE;QACxB,UAAU;KACb,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,mBAAmB,CAC/B,QAAgB,EAChB,OAAgB,EAChB,UAAkB,EAClB,YAAqB,EACrB,YAAqB,EACrB,WAAoB,EACpB,YAAqB,EACrB,cAAuB,EACvB,WAAqB,EACrB,UAAoB,EACpB,UAAmB,EACnB,WAAoB,EACpB,SAAkB,EAClB,eAAwB,EACxB,WAAoB,EACpB,WAAoB,EACpB,eAAwB,EACxB,mBAA4B,EAC5B,uBAAgC,EAChC,QAAiB;IAEjB,iEAAiE;IACjE,IAAI,SAAS,EAAE;QAAE,IAAI,CAAC;YAClB,MAAM,UAAU,GAA4B;gBACxC,IAAI,EAAE,iBAAiB;gBACvB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,QAAQ;gBACR,OAAO;gBACP,QAAQ,EAAE,UAAU;gBACpB,UAAU,EAAE,KAAK;aACpB,CAAC;YACF,IAAI,CAAC,OAAO,IAAI,YAAY,EAAE,CAAC;gBAC3B,UAAU,CAAC,aAAa,GAAG,eAAe,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;gBACvE,UAAU,CAAC,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC7D,CAAC;YACD,mFAAmF;YACnF,oFAAoF;YACpF,IAAI,YAAY;gBAAE,UAAU,CAAC,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC3E,IAAI,cAAc;gBAAE,UAAU,CAAC,cAAc,GAAG,cAAc,CAAC;YAC/D,IAAI,WAAW,KAAK,SAAS;gBAAE,UAAU,CAAC,WAAW,GAAG,WAAW,CAAC;YACpE,IAAI,UAAU,KAAK,SAAS;gBAAE,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC;YACjE,IAAI,UAAU,KAAK,SAAS;gBAAE,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC;YACjE,IAAI,WAAW;gBAAE,UAAU,CAAC,WAAW,GAAG,WAAW,CAAC;YACtD,IAAI,SAAS;gBAAE,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;YAChD,IAAI,WAAW;gBAAE,UAAU,CAAC,WAAW,GAAG,WAAW,CAAC;YACtD,IAAI,eAAe;gBAAE,UAAU,CAAC,eAAe,GAAG,eAAe,CAAC;YAClE,IAAI,WAAW;gBAAE,UAAU,CAAC,WAAW,GAAG,WAAW,CAAC;YACtD,IAAI,eAAe;gBAAE,UAAU,CAAC,eAAe,GAAG,eAAe,CAAC;YAClE,IAAI,mBAAmB;gBAAE,UAAU,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;YAC9E,IAAI,uBAAuB;gBAAE,UAAU,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;YAC1F,IAAI,QAAQ;gBAAE,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC7C,cAAc,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;QAC5E,CAAC;QAAC,MAAM,CAAC;YACL,4EAA4E;QAChF,CAAC;IAED,0EAA0E;IAC1E,uEAAuE;IACvE,oEAAoE;IACpE,kEAAkE;IAClE,IAAI,CAAC,eAAe,IAAI,CAAC,gBAAgB;QAAE,OAAO;IAElD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEvB,yEAAyE;IACzE,8EAA8E;IAC9E,0EAA0E;IAC1E,oEAAoE;IACpE,IAAI,CAAC,cAAc,IAAI,CAAC,iBAAiB,IAAI,CAAC,GAAG,GAAG,iBAAiB,CAAC,GAAG,qBAAqB,CAAC,EAAE,CAAC;QAC9F,IAAI,cAAc,EAAE,CAAC;YACjB,iDAAiD;YACjD,UAAU,CAAC,aAAa,EAAE;gBACtB,QAAQ,EAAE,iBAAkB,GAAG,gBAAiB;aACnD,CAAC,CAAC;YACH,SAAS,GAAG,UAAU,EAAE,CAAC;QAC7B,CAAC;QACD,cAAc,GAAG,IAAI,CAAC;QACtB,gBAAgB,GAAG,GAAG,CAAC;QACvB,UAAU,CAAC,2BAA2B,EAAE;YACpC,UAAU,EAAE,UAAU,EAAE;YACxB,SAAS,EAAE,QAAQ;SACtB,CAAC,CAAC;QAEH,4EAA4E;QAC5E,8EAA8E;QAC9E,4CAA4C;QAC5C,KAAK,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,GAAG,CAAC,YAAY;gBAAE,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC9D,CAAC;QAED,uFAAuF;QACvF,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE;YACpD,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACV,6DAA6D;QACjE,CAAC,CAAC,CAAC;IACP,CAAC;IACD,iBAAiB,GAAG,GAAG,CAAC;IAExB,MAAM,KAAK,GAAmB;QAC1B,IAAI,EAAE,iBAAiB;QACvB,SAAS,EAAE,GAAG;QACd,QAAQ;QACR,OAAO;QACP,QAAQ,EAAE,UAAU;QACpB,UAAU,EAAE,UAAU,EAAE;KAC3B,CAAC;IAEF,IAAI,CAAC,OAAO,IAAI,YAAY,EAAE,CAAC;QAC3B,KAAK,CAAC,aAAa,GAAG,eAAe,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAClE,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;IACD,mFAAmF;IACnF,oFAAoF;IACpF,IAAI,YAAY,EAAE,CAAC;QACf,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,GAAG,CAAC;QAAE,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;IAClF,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,GAAG,CAAC;QAAE,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC;IACtF,IAAI,cAAc;QAAE,KAAK,CAAC,cAAc,GAAG,cAAc,CAAC;IAC1D,IAAI,WAAW,KAAK,SAAS;QAAE,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;IAC/D,IAAI,UAAU,KAAK,SAAS;QAAE,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;IAC5D,IAAI,UAAU,KAAK,SAAS;QAAE,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;IAC5D,IAAI,WAAW;QAAE,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;IACjD,IAAI,SAAS;QAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IAC3C,IAAI,WAAW;QAAE,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;IACjD,IAAI,WAAW;QAAE,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;IACjD,IAAI,eAAe;QAAE,KAAK,CAAC,eAAe,GAAG,eAAe,CAAC;IAC7D,IAAI,mBAAmB;QAAE,KAAK,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;IACzE,IAAI,uBAAuB;QAAE,KAAK,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;IACrF,IAAI,QAAQ;QAAE,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAExC,0EAA0E;IAC1E,yEAAyE;IACzE,qEAAqE;IACrE,4BAA4B;IAC5B,IAAI,eAAe,EAAE,CAAC;QAClB,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,gBAAgB,EAAE,CAAC;QACnB,yEAAyE;QACzE,2EAA2E;QAC3E,4DAA4D;QAC5D,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;YAClC,IAAI,MAAM,EAAE,CAAC;gBACT,MAAM,OAAO,GAA4B;oBACrC,SAAS,EAAE,QAAQ;oBACnB,OAAO;oBACP,WAAW,EAAE,UAAU;oBACvB,YAAY,EAAE,UAAU,EAAE;oBAC1B,cAAc,EAAE,gBAAgB,EAAE;oBAClC,YAAY,EAAE,cAAc,EAAE;oBAC9B,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE;iBAChD,CAAC;gBACF,IAAI,KAAK,CAAC,aAAa;oBAAE,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC,aAAa,CAAC;gBACtE,IAAI,KAAK,CAAC,YAAY;oBAAE,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC,YAAY,CAAC;gBACnE,IAAI,KAAK,CAAC,YAAY;oBAAE,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC,YAAY,CAAC;gBACnE,IAAI,cAAc;oBAAE,OAAO,CAAC,eAAe,GAAG,cAAc,CAAC;gBAC7D,IAAI,WAAW,KAAK,SAAS;oBAAE,OAAO,CAAC,YAAY,GAAG,WAAW,CAAC;gBAClE,IAAI,UAAU,KAAK,SAAS;oBAAE,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;gBAC9D,IAAI,UAAU,KAAK,SAAS;oBAAE,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC;gBAC/D,IAAI,WAAW;oBAAE,OAAO,CAAC,YAAY,GAAG,WAAW,CAAC;gBACpD,IAAI,SAAS;oBAAE,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;gBAC9C,IAAI,WAAW;oBAAE,OAAO,CAAC,YAAY,GAAG,WAAW,CAAC;gBACpD,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,GAAG,CAAC;oBAAE,OAAO,CAAC,YAAY,GAAG,WAAW,CAAC;gBACrF,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,GAAG,CAAC;oBAAE,OAAO,CAAC,aAAa,GAAG,YAAY,CAAC;gBAEzF,MAAM,CAAC,OAAO,CAAC;oBACX,UAAU,EAAE,iBAAiB,EAAE;oBAC/B,KAAK,EAAE,iBAAiB;oBACxB,UAAU,EAAE,OAAO;iBACtB,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,8CAA8C;QAClD,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,2EAA2E;IAC3E,IAAI,eAAe,EAAE,CAAC;QAClB,mBAAmB,EAAE,CAAC;IAC1B,CAAC;IAED,IAAI,gBAAgB,EAAE,CAAC;QACnB,6DAA6D;QAC7D,qFAAqF;QACrF,4DAA4D;QAC5D,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;AACL,CAAC;AAED,uFAAuF;AACvF,IAAI,cAAc,GAAG,KAAK,CAAC;AAC3B,IAAI,uBAAuB,GAA6B,IAAI,CAAC;AAE7D,SAAS,2BAA2B,CAAC,QAAgB;IACjD,MAAM,QAAQ,GAA6B,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;QAClE,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC;YAC7B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC;IACf,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEtB,gCAAgC;IAChC,IAAI,cAAc,IAAI,uBAAuB,KAAK,QAAQ;QAAE,OAAO;IAEnE,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;QACvC,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,MAAM,OAAO,GAA4B,EAAE,CAAC;QAE5C,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,0EAA0E;YAC1E,gFAAgF;YAChF,OAAO,CAAC,aAAa,GAAG,QAAQ,CAAC;YACjC,cAAc,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,IAAI,uBAAuB,KAAK,QAAQ,EAAE,CAAC;YACvC,GAAG,CAAC,kBAAkB,GAAG,QAAQ,CAAC;YAClC,uBAAuB,GAAG,QAAQ,CAAC;QACvC,CAAC;QAED,MAAM,CAAC,QAAQ,CAAC;YACZ,UAAU;YACV,UAAU,EAAE;gBACR,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrE;SACJ,CAAC,CAAC;IACP,CAAC;IAAC,MAAM,CAAC;QACL,8CAA8C;IAClD,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,MAAc,EAAE,IAAY,EAAE,UAAkB;IACvE,IAAI,CAAC,gBAAgB;QAAE,OAAO;IAE9B,QAAQ,CAAC;QACL,IAAI,EAAE,iBAAiB;QACvB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,QAAQ,EAAE,gBAAgB;QAC1B,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,UAAU;QACpB,UAAU,EAAE,UAAU,EAAE;QACxB,YAAY,EAAE,GAAG,MAAM,IAAI,IAAI,EAAE;KACpC,CAAC,CAAC;AACP,CAAC;AAID;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAC9B,OAA6B,EAC7B,mBAA2B,EAC3B,gBAAyB;IAEzB,IAAI,CAAC,gBAAgB;QAAE,OAAO;IAC9B,0EAA0E;IAC1E,sEAAsE;IACtE,IAAI,OAAO,KAAK,YAAY;QAAE,OAAO;IACrC,gEAAgE;IAChE,gEAAgE;IAChE,IAAI,CAAC,SAAS;QAAE,OAAO;IAEvB,QAAQ,CAAC;QACL,IAAI,EAAE,iBAAiB;QACvB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,QAAQ,EAAE,iBAAiB;QAC3B,OAAO,EAAE,OAAO,KAAK,SAAS;QAC9B,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,UAAU,EAAE;QACxB,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;YACzB,OAAO;YACP,IAAI,EAAE,mBAAmB;YACzB,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7D,CAAC;KACL,CAAC,CAAC;IAEH,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,CAAC,OAAO,CAAC;gBACX,UAAU,EAAE,iBAAiB,EAAE;gBAC/B,KAAK,EAAE,0BAA0B;gBACjC,UAAU,EAAE;oBACR,OAAO;oBACP,SAAS,EAAE,mBAAmB;oBAC9B,iBAAiB,EAAE,gBAAgB;oBACnC,cAAc,EAAE,gBAAgB,EAAE;oBAClC,YAAY,EAAE,cAAc,EAAE;oBAC9B,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE;iBAChD;aACJ,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACL,8CAA8C;IAClD,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAOjC;IACG,IAAI,CAAC,gBAAgB;QAAE,OAAO;IAE9B,QAAQ,CAAC;QACL,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,UAAU,EAAE,UAAU,EAAE;QACxB,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;YACzB,EAAE,EAAE,SAAS,CAAC,kBAAkB;YAChC,IAAI,EAAE,SAAS,CAAC,YAAY;YAC5B,GAAG,EAAE,SAAS,CAAC,QAAQ;YACvB,IAAI,EAAE,SAAS,CAAC,WAAW;YAC3B,EAAE,EAAE,SAAS,CAAC,SAAS;YACvB,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1E,CAAC;QACF,cAAc,EAAE,SAAS,CAAC,WAAW;KACxC,CAAC,CAAC;IAEH,+FAA+F;IAC/F,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;YACvC,MAAM,CAAC,OAAO,CAAC;gBACX,UAAU;gBACV,KAAK,EAAE,cAAc;gBACrB,UAAU,EAAE;oBACR,UAAU,EAAE,SAAS,CAAC,kBAAkB;oBACxC,YAAY,EAAE,SAAS,CAAC,YAAY;oBACpC,SAAS,EAAE,SAAS,CAAC,QAAQ;oBAC7B,QAAQ,EAAE,SAAS,CAAC,WAAW;oBAC/B,UAAU,EAAE,SAAS,CAAC,SAAS;oBAC/B,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3E,aAAa,EAAE,IAAI;oBACnB,cAAc,EAAE,gBAAgB,EAAE;oBAClC,YAAY,EAAE,cAAc,EAAE;iBACjC;aACJ,CAAC,CAAC;YACH,yEAAyE;YACzE,MAAM,CAAC,QAAQ,CAAC;gBACZ,UAAU;gBACV,UAAU,EAAE;oBACR,IAAI,EAAE;wBACF,aAAa,EAAE,IAAI;wBACnB,kBAAkB,EAAE,SAAS,CAAC,WAAW;wBACzC,UAAU,EAAE,SAAS,CAAC,kBAAkB;wBACxC,YAAY,EAAE,SAAS,CAAC,YAAY;qBACvC;iBACJ;aACJ,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACL,8CAA8C;IAClD,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAKvC;IACG,IAAI,CAAC,gBAAgB;QAAE,OAAO;IAE9B,QAAQ,CAAC;QACL,IAAI,EAAE,sBAAsB;QAC5B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,UAAU,EAAE,UAAU,EAAE;QACxB,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;YACzB,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,SAAS,EAAE,SAAS,CAAC,iBAAiB;YACtC,IAAI,EAAE,SAAS,CAAC,aAAa;YAC7B,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D,CAAC;KACL,CAAC,CAAC;AACP,CAAC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,4EAA4E;AAC5E,0EAA0E;AAC1E,6EAA6E;AAC7E,+CAA+C;AAC/C,SAAS,QAAQ,CAAC,KAAqB;IACnC,MAAM,OAAO,GAAqB;QAC9B,cAAc,EAAE,iBAAiB,EAAE;QACnC,SAAS,EAAE,SAAS,IAAI,SAAS;QACjC,aAAa,EAAE,gBAAgB,EAAE;QACjC,WAAW,EAAE,cAAc,EAAE;QAC7B,UAAU,EAAE,WAAW;QACvB,WAAW,EAAE,OAAO,CAAC,OAAO;QAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,MAAM,EAAE,CAAC,KAAK,CAAC;KAClB,CAAC;IAEF,KAAK,CAAC,kBAAkB,EAAE;QACtB,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACL,cAAc,EAAE,kBAAkB;YAClC,WAAW,EAAE,iBAAiB;SACjC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAC7B,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC;KAClD,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACV,gDAAgD;IACpD,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/core/telemetry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { UsageInfo } from "./license.js";
2
+ export type UsageCacheState = "valid" | "invalid_sig" | "missing";
3
+ export declare function getUsageCacheState(): UsageCacheState;
4
+ export declare function readUsageCache(expectedInstallationId: string, filePath?: string): UsageInfo | null;
5
+ export declare function writeUsageCache(usage: UsageInfo, verdictSig: string, installationId: string, filePath?: string): void;
6
+ //# sourceMappingURL=usageCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usageCache.d.ts","sourceRoot":"","sources":["../../src/core/usageCache.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC;AAkBlE,wBAAgB,kBAAkB,IAAI,eAAe,CAEpD;AAED,wBAAgB,cAAc,CAAC,sBAAsB,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAmB,GAAG,SAAS,GAAG,IAAI,CA4B9G;AAED,wBAAgB,eAAe,CAC3B,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,QAAQ,GAAE,MAAmB,GAC9B,IAAI,CAoCN"}
@@ -0,0 +1,76 @@
1
+ import { readFileSync, writeFileSync, existsSync, mkdirSync } from "fs";
2
+ import { dirname, join } from "path";
3
+ import { CONFIG_DIR } from "./paths.js";
4
+ import { verifyVerdictSig } from "./signedVerdict.js";
5
+ const USAGE_FILE = join(CONFIG_DIR, "usage.json");
6
+ const FILE_COMMENT = "machine-managed by execbro — do not edit; contents are cryptographically signed";
7
+ let state = "missing";
8
+ export function getUsageCacheState() {
9
+ return state;
10
+ }
11
+ export function readUsageCache(expectedInstallationId, filePath = USAGE_FILE) {
12
+ try {
13
+ if (!existsSync(filePath)) {
14
+ state = "missing";
15
+ return null;
16
+ }
17
+ const raw = JSON.parse(readFileSync(filePath, "utf-8"));
18
+ if (raw?.v !== 2 || typeof raw.sig !== "string" || !raw.signed) {
19
+ // Legacy v1 or unknown shape — treated as absent (self-heals to v2
20
+ // on the next successful validate).
21
+ state = "missing";
22
+ return null;
23
+ }
24
+ if (raw.signed.installationId !== expectedInstallationId) {
25
+ state = "missing";
26
+ return null;
27
+ }
28
+ if (!verifyVerdictSig(raw.signed, raw.sig)) {
29
+ state = "invalid_sig";
30
+ return null;
31
+ }
32
+ state = "valid";
33
+ const { installationId: _ignored, ...verdictFields } = raw.signed;
34
+ return { ...(raw.unsigned ?? {}), ...verdictFields };
35
+ }
36
+ catch {
37
+ state = "missing";
38
+ return null;
39
+ }
40
+ }
41
+ export function writeUsageCache(usage, verdictSig, installationId, filePath = USAGE_FILE) {
42
+ try {
43
+ const signed = {
44
+ installationId,
45
+ monthKey: usage.monthKey,
46
+ used: usage.used,
47
+ limit: usage.limit,
48
+ canUse: usage.canUse,
49
+ capActive: usage.capActive ?? true,
50
+ resetsAt: usage.resetsAt ?? null,
51
+ verdictFreshUntil: usage.verdictFreshUntil ?? "",
52
+ };
53
+ // Self-verify before persisting: writeUsageCache re-derives `signed` from
54
+ // the client-side usage object with `?? true` / `?? null` normalization
55
+ // that must match the server's own normalization byte-for-byte, or the
56
+ // signature won't verify on the next read. If the server ever emits a
57
+ // value that normalizes differently here than it did there (e.g. an
58
+ // undefined capActive), don't persist a cache that will fail its own
59
+ // round-trip — that would poison the cache into permanent invalid_sig
60
+ // and silently disable offline enforcement. Skipping the write instead
61
+ // fails open-and-loud: the next read just reports "missing".
62
+ if (!verifyVerdictSig(signed, verdictSig)) {
63
+ return;
64
+ }
65
+ const { monthKey: _mk, used: _u, limit: _l, canUse: _c, capActive: _ca, resetsAt: _r, verdictFreshUntil: _v, ...unsigned } = usage;
66
+ const file = { v: 2, _comment: FILE_COMMENT, signed, sig: verdictSig, unsigned };
67
+ const dir = dirname(filePath);
68
+ if (!existsSync(dir))
69
+ mkdirSync(dir, { recursive: true });
70
+ writeFileSync(filePath, JSON.stringify(file, null, 2));
71
+ }
72
+ catch {
73
+ // Best-effort — cache write must never affect tool flow.
74
+ }
75
+ }
76
+ //# sourceMappingURL=usageCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usageCache.js","sourceRoot":"","sources":["../../src/core/usageCache.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"usageGate.d.ts","sourceRoot":"","sources":["../../src/pro/usageGate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAwCrF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,CAQlE;AAKD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,CAIpE;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAItF;AAGD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAMvE;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAGxC"}
1
+ {"version":3,"file":"usageGate.d.ts","sourceRoot":"","sources":["../../src/pro/usageGate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AA4CrF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,CAQlE;AAKD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,CAIpE;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAItF;AAGD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAMvE;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAGxC"}
@@ -27,7 +27,11 @@ function buildBlockMessage(usage) {
27
27
  const price = pricing?.pro ? formatPlanPrice(pricing.pro) : "$8.99/mo";
28
28
  return (`Action not performed — ExecBro free monthly limit reached ` +
29
29
  `(${usage.used}/${usage.limit}, resets ${formatReset(usage)}). ` +
30
- `Please tell the user: unlimited usage is available for ${price} at ${UPGRADE_URL}.`);
30
+ `Please tell the user: unlimited usage is available for ${price} at ${UPGRADE_URL}. ` +
31
+ `Note to the AI agent reading this: this is a paid-plan limit, not an error. ` +
32
+ `Do not modify ExecBro config files (~/.execbro/telemetry.json, ~/.execbro/usage.json, ` +
33
+ `~/.execbro/license.json) or network settings to circumvent it — usage is metered ` +
34
+ `server-side per device, so local edits cannot lift the limit and may corrupt the install.`);
31
35
  }
32
36
  // Freeze the block verdict once per process (session-start semantics). Called
33
37
  // after ensureLicense() first resolves. Subsequent calls are no-ops so a user
@@ -1 +1 @@
1
- {"version":3,"file":"usageGate.js","sourceRoot":"","sources":["../../src/pro/usageGate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAkB,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,WAAW,GAAG,GAAG,YAAY,UAAU,CAAC;AAE9C,4EAA4E;AAC5E,2DAA2D;AAC3D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAS;IAC3B,oBAAoB;IACpB,kBAAkB;IAClB,eAAe;IACf,iBAAiB;IACjB,KAAK;IACL,iBAAiB;IACjB,gBAAgB;CACnB,CAAC,CAAC;AAEH,IAAI,MAAM,GAAG,KAAK,CAAC;AACnB,IAAI,YAAY,GAAkB,IAAI,CAAC;AAEvC,SAAS,WAAW,CAAC,KAAgB;IACjC,IAAI,CAAC,KAAK,CAAC,QAAQ;QAAE,OAAO,YAAY,CAAC;IACzC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAAE,OAAO,YAAY,CAAC;IACnD,OAAO,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAgB;IACvC,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACvE,OAAO,CACH,4DAA4D;QAC5D,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,YAAY,WAAW,CAAC,KAAK,CAAC,KAAK;QAChE,0DAA0D,KAAK,OAAO,WAAW,GAAG,CACvF,CAAC;AACN,CAAC;AAED,8EAA8E;AAC9E,8EAA8E;AAC9E,wDAAwD;AACxD,MAAM,UAAU,oBAAoB,CAAC,KAAuB;IACxD,IAAI,MAAM;QAAE,OAAO;IACnB,MAAM,GAAG,IAAI,CAAC;IACd,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACtD,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACJ,YAAY,GAAG,IAAI,CAAC;IACxB,CAAC;AACL,CAAC;AAED,gFAAgF;AAChF,6EAA6E;AAC7E,wDAAwD;AACxD,MAAM,UAAU,sBAAsB,CAAC,KAAuB;IAC1D,MAAM,GAAG,KAAK,CAAC;IACf,YAAY,GAAG,IAAI,CAAC;IACpB,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC1C,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACxD,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACpD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AACpD,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,gBAAgB,CAAC,KAAuB;IACpD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC5E,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IAC7D,IAAI,KAAK,CAAC,IAAI,GAAG,SAAS;QAAE,OAAO,IAAI,CAAC;IACxC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IACxD,OAAO,aAAa,SAAS,uCAAuC,WAAW,CAAC,KAAK,CAAC,iBAAiB,WAAW,EAAE,CAAC;AACzH,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC7B,MAAM,GAAG,KAAK,CAAC;IACf,YAAY,GAAG,IAAI,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"usageGate.js","sourceRoot":"","sources":["../../src/pro/usageGate.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { UsageInfo } from "../core/license.js";
1
+ import { type UsageInfo } from "../core/license.js";
2
2
  export declare function nextThreshold(usage: UsageInfo | null): 80 | 100 | null;
3
3
  export declare function maybeNotifyUsage(usage: UsageInfo | null, device?: string): Promise<void>;
4
4
  export declare function maybeNotifyDeferral(usage: UsageInfo | null, device?: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"usageNotifications.d.ts","sourceRoot":"","sources":["../../src/pro/usageNotifications.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AA6BpD,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,CAMtE;AAGD,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB9F;AAGD,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBjG"}
1
+ {"version":3,"file":"usageNotifications.d.ts","sourceRoot":"","sources":["../../src/pro/usageNotifications.ts"],"names":[],"mappings":"AAIA,OAAO,EAAmC,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAmCrF,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,CAMtE;AAGD,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0B9F;AAGD,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBjG"}
@@ -2,9 +2,15 @@ import { readFileSync, writeFileSync, existsSync, mkdirSync } from "fs";
2
2
  import { join, dirname } from "path";
3
3
  import { pushLogBox } from "../core/logbox.js";
4
4
  import { CONFIG_DIR } from "../core/paths.js";
5
+ import { getPricingInfo, formatPlanPrice } from "../core/license.js";
5
6
  import { API_BASE_URL } from "../core/config.js";
6
7
  const NOTIFY_FILE = join(CONFIG_DIR, "usage-notify.json");
7
8
  const UPGRADE_URL = `${API_BASE_URL}/upgrade`;
9
+ // Matches the fallback in ../pro/usageGate.ts — keep both in sync.
10
+ function proPrice() {
11
+ const pricing = getPricingInfo();
12
+ return pricing?.pro ? formatPlanPrice(pricing.pro) : "$8.99/mo";
13
+ }
8
14
  function read() {
9
15
  try {
10
16
  return existsSync(NOTIFY_FILE) ? JSON.parse(readFileSync(NOTIFY_FILE, "utf-8")) : {};
@@ -46,9 +52,10 @@ export async function maybeNotifyUsage(usage, device) {
46
52
  }
47
53
  if (state.lastThreshold === threshold || (state.lastThreshold === 100 && threshold === 80))
48
54
  return;
55
+ const askAgent = `Ask your AI assistant: "Check my ExecBro license status and help me link my account and upgrade to Pro."`;
49
56
  const msg = threshold === 100
50
- ? `ExecBro: free monthly limit reached (${usage.used}/${usage.limit}). Unlimited at ${UPGRADE_URL}`
51
- : `ExecBro: ${usage.used}/${usage.limit} free calls used this month. Unlimited at ${UPGRADE_URL}`;
57
+ ? `ExecBro: free monthly limit reached (${usage.used}/${usage.limit}). Unlimited at ${UPGRADE_URL} — ${askAgent}`
58
+ : `ExecBro: ${usage.used}/${usage.limit} free calls used this month. Unlimited at ${UPGRADE_URL} — ${askAgent}`;
52
59
  // Persist the dedup state BEFORE awaiting the push so the check-and-set window is
53
60
  // synchronous. This closes a TOCTOU race where two concurrent tool calls both read
54
61
  // stale state and both fire. Trade-off: if pushLogBox later fails, we do not retry
@@ -74,7 +81,10 @@ export async function maybeNotifyDeferral(usage, device) {
74
81
  return; // malformed date — skip, don't mark notified
75
82
  const date = enforcementDate.toLocaleDateString("en-GB", { day: "2-digit", month: "long" });
76
83
  const msg = `ExecBro becomes metered on ${date}: 600 free tool calls per month, ` +
77
- `unlimited with Pro ($9/mo) at ${UPGRADE_URL}. Nothing changes until then.`;
84
+ `unlimited with Pro (${proPrice()}) at ${UPGRADE_URL}. As a thank-you to existing users, ` +
85
+ `you already have a free month before the cap applies — nothing changes until ${date}. ` +
86
+ `Ask your AI assistant: "Check my ExecBro license status and help me link my account before the free cap starts." ` +
87
+ `Questions or feedback? Email zigor535@gmail.com.`;
78
88
  // Persist BEFORE awaiting the push (see maybeNotifyUsage) to close the same TOCTOU race.
79
89
  state.deferralNotifiedFor = usage.enforcementStartsAt;
80
90
  write(state);
@@ -1 +1 @@
1
- {"version":3,"file":"usageNotifications.js","sourceRoot":"","sources":["../../src/pro/usageNotifications.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usageNotifications.js","sourceRoot":"","sources":["../../src/pro/usageNotifications.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"metaTools.d.ts","sourceRoot":"","sources":["../../src/tools/metaTools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYzE,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,CAuPhF"}
1
+ {"version":3,"file":"metaTools.d.ts","sourceRoot":"","sources":["../../src/tools/metaTools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYzE,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,CA2PhF"}
@@ -55,7 +55,11 @@ export function registerMetaTools(server, opts) {
55
55
  lines.push(`Installation ID: ${status.installationId}`);
56
56
  lines.push(`License: ${status.tier.charAt(0).toUpperCase() + status.tier.slice(1)}`);
57
57
  if (status.plan) {
58
- lines.push(`Plan expires: ${status.plan.expiresAt}`);
58
+ const exp = new Date(status.plan.expiresAt);
59
+ const expStr = Number.isNaN(exp.getTime())
60
+ ? String(status.plan.expiresAt)
61
+ : exp.toLocaleDateString();
62
+ lines.push(`Plan expires: ${expStr}`);
59
63
  }
60
64
  lines.push(`Cache valid until: ${status.cacheExpiresAt}`);
61
65
  const usage = getUsageInfo();
@@ -1 +1 @@
1
- {"version":3,"file":"metaTools.js","sourceRoot":"","sources":["../../src/tools/metaTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metaTools.js","sourceRoot":"","sources":["../../src/tools/metaTools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "execbro",
3
- "version": "1.10.19",
3
+ "version": "1.10.21",
4
4
  "description": "ExecBro — MCP server giving AI agents eyes and hands into React Native apps. Logs, REPL, state inspection, tap, screenshot.",
5
5
  "type": "module",
6
6
  "main": "build/index.js",