execbro 1.10.20 → 1.10.22

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 (78) hide show
  1. package/README.md +4 -1
  2. package/build/__tests__/unit/deviceResolver.test.js +87 -0
  3. package/build/__tests__/unit/deviceResolver.test.js.map +1 -1
  4. package/build/__tests__/unit/meteringEndpoint.test.d.ts +2 -0
  5. package/build/__tests__/unit/meteringEndpoint.test.d.ts.map +1 -0
  6. package/build/__tests__/unit/meteringEndpoint.test.js +16 -0
  7. package/build/__tests__/unit/meteringEndpoint.test.js.map +1 -0
  8. package/build/__tests__/unit/projectMemory.test.d.ts +2 -0
  9. package/build/__tests__/unit/projectMemory.test.d.ts.map +1 -0
  10. package/build/__tests__/unit/projectMemory.test.js +78 -0
  11. package/build/__tests__/unit/projectMemory.test.js.map +1 -0
  12. package/build/__tests__/unit/projectStore.test.d.ts +2 -0
  13. package/build/__tests__/unit/projectStore.test.d.ts.map +1 -0
  14. package/build/__tests__/unit/projectStore.test.js +74 -0
  15. package/build/__tests__/unit/projectStore.test.js.map +1 -0
  16. package/build/__tests__/unit/signedVerdict.test.d.ts +2 -0
  17. package/build/__tests__/unit/signedVerdict.test.d.ts.map +1 -0
  18. package/build/__tests__/unit/signedVerdict.test.js +69 -0
  19. package/build/__tests__/unit/signedVerdict.test.js.map +1 -0
  20. package/build/__tests__/unit/usageCache.test.d.ts +2 -0
  21. package/build/__tests__/unit/usageCache.test.d.ts.map +1 -0
  22. package/build/__tests__/unit/usageCache.test.js +116 -0
  23. package/build/__tests__/unit/usageCache.test.js.map +1 -0
  24. package/build/__tests__/unit/usageCacheStateReport.test.d.ts +2 -0
  25. package/build/__tests__/unit/usageCacheStateReport.test.d.ts.map +1 -0
  26. package/build/__tests__/unit/usageCacheStateReport.test.js +21 -0
  27. package/build/__tests__/unit/usageCacheStateReport.test.js.map +1 -0
  28. package/build/__tests__/unit/usageGate.test.js +9 -0
  29. package/build/__tests__/unit/usageGate.test.js.map +1 -1
  30. package/build/core/config.d.ts +3 -0
  31. package/build/core/config.d.ts.map +1 -1
  32. package/build/core/config.js +7 -0
  33. package/build/core/config.js.map +1 -1
  34. package/build/core/deviceResolver.d.ts +4 -9
  35. package/build/core/deviceResolver.d.ts.map +1 -1
  36. package/build/core/deviceResolver.js +56 -1
  37. package/build/core/deviceResolver.js.map +1 -1
  38. package/build/core/license.d.ts.map +1 -1
  39. package/build/core/license.js +19 -33
  40. package/build/core/license.js.map +1 -1
  41. package/build/core/projectMemory.d.ts +39 -0
  42. package/build/core/projectMemory.d.ts.map +1 -0
  43. package/build/core/projectMemory.js +108 -0
  44. package/build/core/projectMemory.js.map +1 -0
  45. package/build/core/projectStore.d.ts +41 -0
  46. package/build/core/projectStore.d.ts.map +1 -0
  47. package/build/core/projectStore.js +97 -0
  48. package/build/core/projectStore.js.map +1 -0
  49. package/build/core/signedVerdict.d.ts +14 -0
  50. package/build/core/signedVerdict.d.ts.map +1 -0
  51. package/build/core/signedVerdict.js +36 -0
  52. package/build/core/signedVerdict.js.map +1 -0
  53. package/build/core/telemetry.d.ts +1 -0
  54. package/build/core/telemetry.d.ts.map +1 -1
  55. package/build/core/telemetry.js +26 -4
  56. package/build/core/telemetry.js.map +1 -1
  57. package/build/core/usageCache.d.ts +6 -0
  58. package/build/core/usageCache.d.ts.map +1 -0
  59. package/build/core/usageCache.js +76 -0
  60. package/build/core/usageCache.js.map +1 -0
  61. package/build/pro/tap.d.ts +2 -0
  62. package/build/pro/tap.d.ts.map +1 -1
  63. package/build/pro/tap.js +3 -0
  64. package/build/pro/tap.js.map +1 -1
  65. package/build/pro/usageGate.d.ts.map +1 -1
  66. package/build/pro/usageGate.js +5 -1
  67. package/build/pro/usageGate.js.map +1 -1
  68. package/build/pro/usageNotifications.d.ts +1 -1
  69. package/build/pro/usageNotifications.d.ts.map +1 -1
  70. package/build/pro/usageNotifications.js +13 -3
  71. package/build/pro/usageNotifications.js.map +1 -1
  72. package/build/tools/interactionTools.d.ts.map +1 -1
  73. package/build/tools/interactionTools.js +1 -0
  74. package/build/tools/interactionTools.js.map +1 -1
  75. package/build/tools/screenshotTools.d.ts.map +1 -1
  76. package/build/tools/screenshotTools.js +27 -0
  77. package/build/tools/screenshotTools.js.map +1 -1
  78. package/package.json +1 -1
@@ -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,7 @@
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";
10
+ /** Local project-memory store is on unless config.json sets it to exactly false. */
11
+ export declare function isProjectMemoryEnabled(): boolean;
9
12
  //# 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":"AA2BA;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,EAAE,MAC8D,CAAC;AAI1F,eAAO,MAAM,gBAAgB,qEAAqE,CAAC;AAEnG,oFAAoF;AACpF,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD"}
@@ -25,4 +25,11 @@ 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";
31
+ /** Local project-memory store is on unless config.json sets it to exactly false. */
32
+ export function isProjectMemoryEnabled() {
33
+ return config.projectMemory?.enabled !== false;
34
+ }
28
35
  //# 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;AAO1C,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;AAEnG,oFAAoF;AACpF,MAAM,UAAU,sBAAsB;IAClC,OAAO,MAAM,CAAC,aAAa,EAAE,OAAO,KAAK,KAAK,CAAC;AACnD,CAAC"}
@@ -19,6 +19,7 @@ export interface DeviceResolverError {
19
19
  export type ResolveResult = {
20
20
  ok: true;
21
21
  target: DeviceTarget;
22
+ note?: string;
22
23
  } | {
23
24
  ok: false;
24
25
  error: DeviceResolverError;
@@ -30,15 +31,9 @@ export type ResolveResult = {
30
31
  */
31
32
  export declare function formatResolverError(error: DeviceResolverError): string;
32
33
  /**
33
- * Resolve a single `device` string (UDID, adb serial, RN-registry deviceName,
34
- * sim/emu name, or undefined) into a structured DeviceTarget.
35
- *
36
- * Resolution order:
37
- * 1. UDID format → iOS simulator lookup (errors if shutdown).
38
- * 2. emulator-NNNN format → Android serial lookup.
39
- * 3. Substring match against the RN-connected registry.
40
- * 4. Substring match against booted iOS sims and online Android devices.
41
- * 5. No `device` argument → pick the single running device, or error.
34
+ * Public resolver: delegates to the inner resolution, then records the resolved
35
+ * device to project memory (best-effort, never throws). The inner function also
36
+ * consults project memory to auto-default on no-hint ambiguity (see Step 5).
42
37
  */
43
38
  export declare function resolveDeviceTarget(device?: string): Promise<ResolveResult>;
44
39
  //# sourceMappingURL=deviceResolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deviceResolver.d.ts","sourceRoot":"","sources":["../../src/core/deviceResolver.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,kBAAkB,GACxB,UAAU,GACV,MAAM,GACN,YAAY,GACZ,YAAY,GACZ,SAAS,CAAC;AAEhB,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,MAAM,uBAAuB,GAC7B,wBAAwB,GACxB,kBAAkB,GAClB,kBAAkB,GAClB,sBAAsB,GACtB,yBAAyB,CAAC;AAEhC,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzF;AAED,MAAM,MAAM,aAAa,GACnB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAClC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,mBAAmB,CAAA;CAAE,CAAC;AA2BhD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAMtE;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAqOjF"}
1
+ {"version":3,"file":"deviceResolver.d.ts","sourceRoot":"","sources":["../../src/core/deviceResolver.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,kBAAkB,GACxB,UAAU,GACV,MAAM,GACN,YAAY,GACZ,YAAY,GACZ,SAAS,CAAC;AAEhB,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,MAAM,uBAAuB,GAC7B,wBAAwB,GACxB,kBAAkB,GAClB,kBAAkB,GAClB,sBAAsB,GACtB,yBAAyB,CAAC;AAEhC,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzF;AAED,MAAM,MAAM,aAAa,GACnB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,YAAY,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,mBAAmB,CAAA;CAAE,CAAC;AA2BhD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAMtE;AA+QD;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAuBjF"}
@@ -1,5 +1,6 @@
1
1
  import { getConnectedApps } from "./connection.js";
2
2
  import { listAllDevices } from "./deviceDiscovery.js";
3
+ import { listDevices, recordDevice } from "./projectMemory.js";
3
4
  const UDID_REGEX = /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i;
4
5
  const ADB_SERIAL_REGEX = /^emulator-\d+$/;
5
6
  /**
@@ -40,7 +41,7 @@ export function formatResolverError(error) {
40
41
  * 4. Substring match against booted iOS sims and online Android devices.
41
42
  * 5. No `device` argument → pick the single running device, or error.
42
43
  */
43
- export async function resolveDeviceTarget(device) {
44
+ async function resolveDeviceTargetInner(device) {
44
45
  const trimmed = device?.trim();
45
46
  // Step 1: UDID match.
46
47
  if (trimmed && UDID_REGEX.test(trimmed)) {
@@ -204,6 +205,32 @@ export async function resolveDeviceTarget(device) {
204
205
  ...runningEmus.map((e) => ({ name: e.name, platform: "android", identifier: e.serial ?? e.name })),
205
206
  ...onlinePhys.map((p) => ({ name: p.model, platform: "android", identifier: p.serial }))
206
207
  ];
208
+ try {
209
+ const remembered = listDevices();
210
+ for (const dev of remembered) {
211
+ const match = candidates.find((c) => c.identifier === dev.identifier);
212
+ if (match) {
213
+ const day = Number.isFinite(dev.lastUsedAt)
214
+ ? new Date(dev.lastUsedAt).toISOString().slice(0, 10)
215
+ : "unknown";
216
+ return {
217
+ ok: true,
218
+ note: `defaulted to ${match.name} (${match.identifier}) — last used ${day}; pass device= to override.`,
219
+ target: {
220
+ platform: match.platform,
221
+ iosUdid: match.platform === "ios" ? match.identifier : undefined,
222
+ androidSerial: match.platform === "android" ? match.identifier : undefined,
223
+ deviceName: match.name,
224
+ source: "default",
225
+ },
226
+ };
227
+ }
228
+ }
229
+ }
230
+ catch {
231
+ // Project-memory lookup must never break device resolution; fall
232
+ // through to the existing MULTIPLE_DEVICES_MATCH error below.
233
+ }
207
234
  return err("MULTIPLE_DEVICES_MATCH", "Multiple devices available. Specify device='...'. Call list_devices to enumerate.", candidates);
208
235
  }
209
236
  if (bootedSims.length === 1) {
@@ -222,4 +249,32 @@ export async function resolveDeviceTarget(device) {
222
249
  const p = onlinePhys[0];
223
250
  return ok({ platform: "android", androidSerial: p.serial, deviceName: p.model, source: "default" });
224
251
  }
252
+ /**
253
+ * Public resolver: delegates to the inner resolution, then records the resolved
254
+ * device to project memory (best-effort, never throws). The inner function also
255
+ * consults project memory to auto-default on no-hint ambiguity (see Step 5).
256
+ */
257
+ export async function resolveDeviceTarget(device) {
258
+ const result = await resolveDeviceTargetInner(device);
259
+ if (result.ok) {
260
+ try {
261
+ const t = result.target;
262
+ const identifier = t.iosUdid ?? t.androidSerial ?? t.deviceName;
263
+ let appId;
264
+ try {
265
+ appId = getConnectedApps().find((e) => e.app.simulatorUdid === identifier ||
266
+ e.app.adbSerial === identifier ||
267
+ e.app.deviceInfo.deviceName === t.deviceName)?.app.deviceInfo.appId;
268
+ }
269
+ catch {
270
+ // registry lookup is best-effort
271
+ }
272
+ recordDevice({ identifier, name: t.deviceName, platform: t.platform, appId });
273
+ }
274
+ catch {
275
+ // recording must never affect resolution
276
+ }
277
+ }
278
+ return result;
279
+ }
225
280
  //# sourceMappingURL=deviceResolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deviceResolver.js","sourceRoot":"","sources":["../../src/core/deviceResolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deviceResolver.js","sourceRoot":"","sources":["../../src/core/deviceResolver.ts"],"names":[],"mappings":"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"}
@@ -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,39 @@
1
+ export interface ScreenMetrics {
2
+ rawWidth: number;
3
+ rawHeight: number;
4
+ deliveredWidth: number;
5
+ deliveredHeight: number;
6
+ downscale: number;
7
+ pointWidth?: number;
8
+ pointHeight?: number;
9
+ scale?: number;
10
+ capturedAt: number;
11
+ }
12
+ export interface DeviceMemoryEntry {
13
+ identifier: string;
14
+ name: string;
15
+ platform: "ios" | "android";
16
+ appId?: string;
17
+ firstSeenAt: number;
18
+ lastUsedAt: number;
19
+ useCount: number;
20
+ screenMetrics?: ScreenMetrics;
21
+ }
22
+ export interface RecordDeviceInput {
23
+ identifier: string;
24
+ name: string;
25
+ platform: "ios" | "android";
26
+ appId?: string;
27
+ }
28
+ export interface ProjectMemoryOpts {
29
+ cwd?: string;
30
+ baseDir?: string;
31
+ now?: number;
32
+ }
33
+ /** Union by identifier: newer lastUsedAt wins wholesale; earliest firstSeenAt and
34
+ * max useCount retained. Sorted desc by lastUsedAt, capped at MAX_DEVICES. */
35
+ export declare function mergeDeviceLists(a: DeviceMemoryEntry[], b: DeviceMemoryEntry[]): DeviceMemoryEntry[];
36
+ export declare function recordDevice(input: RecordDeviceInput, opts?: ProjectMemoryOpts): void;
37
+ export declare function recordScreenMetrics(identifier: string, metrics: ScreenMetrics, opts?: ProjectMemoryOpts): void;
38
+ export declare function listDevices(opts?: ProjectMemoryOpts): DeviceMemoryEntry[];
39
+ //# sourceMappingURL=projectMemory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectMemory.d.ts","sourceRoot":"","sources":["../../src/core/projectMemory.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,aAAa;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,aAAa,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAOD;8EAC8E;AAC9E,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,iBAAiB,EAAE,EAAE,CAAC,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,EAAE,CAgBpG;AA+BD,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAqBrF;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAY9G;AAED,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,CAQzE"}
@@ -0,0 +1,108 @@
1
+ import { homedir } from "os";
2
+ import { join } from "path";
3
+ import { isProjectMemoryEnabled } from "./config.js";
4
+ import { buildWriteEnvelope, computeProjectId, projectsRoot, readConcern, writeConcernAtomic, realpathOrRaw, } from "./projectStore.js";
5
+ const DEVICES_SCHEMA = "execbro/project-devices";
6
+ const META_SCHEMA = "execbro/project-meta";
7
+ const CURRENT_VERSION = 1;
8
+ const MAX_DEVICES = 20;
9
+ /** Union by identifier: newer lastUsedAt wins wholesale; earliest firstSeenAt and
10
+ * max useCount retained. Sorted desc by lastUsedAt, capped at MAX_DEVICES. */
11
+ export function mergeDeviceLists(a, b) {
12
+ const byId = new Map();
13
+ for (const e of [...a, ...b]) {
14
+ const prev = byId.get(e.identifier);
15
+ if (!prev) {
16
+ byId.set(e.identifier, e);
17
+ continue;
18
+ }
19
+ const winner = e.lastUsedAt >= prev.lastUsedAt ? e : prev;
20
+ byId.set(e.identifier, {
21
+ ...winner,
22
+ firstSeenAt: Math.min(prev.firstSeenAt, e.firstSeenAt),
23
+ useCount: Math.max(prev.useCount, e.useCount),
24
+ });
25
+ }
26
+ return [...byId.values()].sort((x, y) => y.lastUsedAt - x.lastUsedAt).slice(0, MAX_DEVICES);
27
+ }
28
+ /** Resolve project dir + device list, or null when disabled / degenerate cwd / foreign file. */
29
+ function loadDevices(opts) {
30
+ if (!isProjectMemoryEnabled())
31
+ return null;
32
+ const cwd = opts?.cwd ?? process.cwd();
33
+ const id = computeProjectId(cwd, homedir());
34
+ if (!id)
35
+ return null;
36
+ const dir = join(projectsRoot(opts?.baseDir), id);
37
+ const read = readConcern(join(dir, "devices.json"), DEVICES_SCHEMA, CURRENT_VERSION);
38
+ if (read.kind === "foreign")
39
+ return null;
40
+ const existing = read.kind === "ours" ? read.env : null;
41
+ const devices = existing?.devices ?? [];
42
+ return { dir, realCwd: realpathOrRaw(cwd), existing, devices };
43
+ }
44
+ function persist(dir, existing, devices, now) {
45
+ const env = buildWriteEnvelope(existing, DEVICES_SCHEMA, CURRENT_VERSION, now, { devices });
46
+ writeConcernAtomic(join(dir, "devices.json"), env);
47
+ }
48
+ function ensureMeta(dir, realCwd, now) {
49
+ const read = readConcern(join(dir, "meta.json"), META_SCHEMA, CURRENT_VERSION);
50
+ if (read.kind === "ours")
51
+ return; // already present (or foreign — leave it)
52
+ if (read.kind === "foreign")
53
+ return;
54
+ const env = buildWriteEnvelope(null, META_SCHEMA, CURRENT_VERSION, now, { path: realCwd });
55
+ writeConcernAtomic(join(dir, "meta.json"), env);
56
+ }
57
+ export function recordDevice(input, opts) {
58
+ try {
59
+ const ctx = loadDevices(opts);
60
+ if (!ctx)
61
+ return;
62
+ const now = opts?.now ?? Date.now();
63
+ const prior = ctx.devices.find((d) => d.identifier === input.identifier);
64
+ const updated = {
65
+ identifier: input.identifier,
66
+ name: input.name,
67
+ platform: input.platform,
68
+ appId: input.appId ?? prior?.appId,
69
+ firstSeenAt: prior?.firstSeenAt ?? now,
70
+ lastUsedAt: now,
71
+ useCount: (prior?.useCount ?? 0) + 1,
72
+ screenMetrics: prior?.screenMetrics,
73
+ };
74
+ persist(ctx.dir, ctx.existing, mergeDeviceLists(ctx.devices, [updated]), now);
75
+ ensureMeta(ctx.dir, ctx.realCwd, now);
76
+ }
77
+ catch {
78
+ // best-effort — never throw into a tool flow
79
+ }
80
+ }
81
+ export function recordScreenMetrics(identifier, metrics, opts) {
82
+ try {
83
+ const ctx = loadDevices(opts);
84
+ if (!ctx)
85
+ return;
86
+ const prior = ctx.devices.find((d) => d.identifier === identifier);
87
+ if (!prior)
88
+ return; // enrichment only — never create an entry
89
+ const now = opts?.now ?? Date.now();
90
+ const updated = { ...prior, screenMetrics: metrics, lastUsedAt: now };
91
+ persist(ctx.dir, ctx.existing, mergeDeviceLists(ctx.devices, [updated]), now);
92
+ }
93
+ catch {
94
+ // best-effort
95
+ }
96
+ }
97
+ export function listDevices(opts) {
98
+ try {
99
+ const ctx = loadDevices(opts);
100
+ if (!ctx)
101
+ return [];
102
+ return [...ctx.devices].sort((x, y) => y.lastUsedAt - x.lastUsedAt);
103
+ }
104
+ catch {
105
+ return [];
106
+ }
107
+ }
108
+ //# sourceMappingURL=projectMemory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectMemory.js","sourceRoot":"","sources":["../../src/core/projectMemory.ts"],"names":[],"mappings":"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"}