lim 0.14.4 → 0.14.6

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 (162) hide show
  1. package/dist/base-command.d.ts +3 -0
  2. package/dist/base-command.d.ts.map +1 -1
  3. package/dist/base-command.js +18 -4
  4. package/dist/base-command.js.map +1 -1
  5. package/dist/commands/android/connect.d.ts +1 -0
  6. package/dist/commands/android/connect.d.ts.map +1 -1
  7. package/dist/commands/android/create.d.ts +1 -0
  8. package/dist/commands/android/create.d.ts.map +1 -1
  9. package/dist/commands/android/delete.d.ts +1 -0
  10. package/dist/commands/android/delete.d.ts.map +1 -1
  11. package/dist/commands/android/element-tree.d.ts +1 -0
  12. package/dist/commands/android/element-tree.d.ts.map +1 -1
  13. package/dist/commands/android/find-element.d.ts +1 -0
  14. package/dist/commands/android/find-element.d.ts.map +1 -1
  15. package/dist/commands/android/get.d.ts +1 -0
  16. package/dist/commands/android/get.d.ts.map +1 -1
  17. package/dist/commands/android/install-app.d.ts +1 -0
  18. package/dist/commands/android/install-app.d.ts.map +1 -1
  19. package/dist/commands/android/list.d.ts +1 -0
  20. package/dist/commands/android/list.d.ts.map +1 -1
  21. package/dist/commands/android/open-url.d.ts +1 -0
  22. package/dist/commands/android/open-url.d.ts.map +1 -1
  23. package/dist/commands/android/press-key.d.ts +1 -0
  24. package/dist/commands/android/press-key.d.ts.map +1 -1
  25. package/dist/commands/android/record.d.ts +1 -0
  26. package/dist/commands/android/record.d.ts.map +1 -1
  27. package/dist/commands/android/screenshot.d.ts +1 -0
  28. package/dist/commands/android/screenshot.d.ts.map +1 -1
  29. package/dist/commands/android/scroll.d.ts +1 -0
  30. package/dist/commands/android/scroll.d.ts.map +1 -1
  31. package/dist/commands/android/set-wifi-bandwidth.d.ts +1 -0
  32. package/dist/commands/android/set-wifi-bandwidth.d.ts.map +1 -1
  33. package/dist/commands/android/tap-element.d.ts +1 -0
  34. package/dist/commands/android/tap-element.d.ts.map +1 -1
  35. package/dist/commands/android/tap.d.ts +1 -0
  36. package/dist/commands/android/tap.d.ts.map +1 -1
  37. package/dist/commands/android/type.d.ts +1 -0
  38. package/dist/commands/android/type.d.ts.map +1 -1
  39. package/dist/commands/asset/delete.d.ts +1 -0
  40. package/dist/commands/asset/delete.d.ts.map +1 -1
  41. package/dist/commands/asset/list.d.ts +1 -0
  42. package/dist/commands/asset/list.d.ts.map +1 -1
  43. package/dist/commands/asset/pull.d.ts +1 -0
  44. package/dist/commands/asset/pull.d.ts.map +1 -1
  45. package/dist/commands/asset/push.d.ts +1 -0
  46. package/dist/commands/asset/push.d.ts.map +1 -1
  47. package/dist/commands/ios/app-log.d.ts +1 -0
  48. package/dist/commands/ios/app-log.d.ts.map +1 -1
  49. package/dist/commands/ios/cp.d.ts +1 -0
  50. package/dist/commands/ios/cp.d.ts.map +1 -1
  51. package/dist/commands/ios/create.d.ts +1 -0
  52. package/dist/commands/ios/create.d.ts.map +1 -1
  53. package/dist/commands/ios/delete.d.ts +1 -0
  54. package/dist/commands/ios/delete.d.ts.map +1 -1
  55. package/dist/commands/ios/element-tree.d.ts +1 -0
  56. package/dist/commands/ios/element-tree.d.ts.map +1 -1
  57. package/dist/commands/ios/get.d.ts +1 -0
  58. package/dist/commands/ios/get.d.ts.map +1 -1
  59. package/dist/commands/ios/info.d.ts +1 -0
  60. package/dist/commands/ios/info.d.ts.map +1 -1
  61. package/dist/commands/ios/install-app.d.ts +1 -0
  62. package/dist/commands/ios/install-app.d.ts.map +1 -1
  63. package/dist/commands/ios/launch-app.d.ts +1 -0
  64. package/dist/commands/ios/launch-app.d.ts.map +1 -1
  65. package/dist/commands/ios/list-apps.d.ts +1 -0
  66. package/dist/commands/ios/list-apps.d.ts.map +1 -1
  67. package/dist/commands/ios/list.d.ts +1 -0
  68. package/dist/commands/ios/list.d.ts.map +1 -1
  69. package/dist/commands/ios/lsof.d.ts +1 -0
  70. package/dist/commands/ios/lsof.d.ts.map +1 -1
  71. package/dist/commands/ios/open-url.d.ts +1 -0
  72. package/dist/commands/ios/open-url.d.ts.map +1 -1
  73. package/dist/commands/ios/perform.d.ts +1 -0
  74. package/dist/commands/ios/perform.d.ts.map +1 -1
  75. package/dist/commands/ios/press-key.d.ts +1 -0
  76. package/dist/commands/ios/press-key.d.ts.map +1 -1
  77. package/dist/commands/ios/record.d.ts +1 -0
  78. package/dist/commands/ios/record.d.ts.map +1 -1
  79. package/dist/commands/ios/reverse.d.ts +1 -0
  80. package/dist/commands/ios/reverse.d.ts.map +1 -1
  81. package/dist/commands/ios/screenshot.d.ts +1 -0
  82. package/dist/commands/ios/screenshot.d.ts.map +1 -1
  83. package/dist/commands/ios/scroll.d.ts +1 -0
  84. package/dist/commands/ios/scroll.d.ts.map +1 -1
  85. package/dist/commands/ios/simctl.d.ts +1 -0
  86. package/dist/commands/ios/simctl.d.ts.map +1 -1
  87. package/dist/commands/ios/sync.d.ts +1 -0
  88. package/dist/commands/ios/sync.d.ts.map +1 -1
  89. package/dist/commands/ios/syslog.d.ts +1 -0
  90. package/dist/commands/ios/syslog.d.ts.map +1 -1
  91. package/dist/commands/ios/tap-element.d.ts +1 -0
  92. package/dist/commands/ios/tap-element.d.ts.map +1 -1
  93. package/dist/commands/ios/tap.d.ts +1 -0
  94. package/dist/commands/ios/tap.d.ts.map +1 -1
  95. package/dist/commands/ios/terminate-app.d.ts +1 -0
  96. package/dist/commands/ios/terminate-app.d.ts.map +1 -1
  97. package/dist/commands/ios/toggle-keyboard.d.ts +1 -0
  98. package/dist/commands/ios/toggle-keyboard.d.ts.map +1 -1
  99. package/dist/commands/ios/type.d.ts +1 -0
  100. package/dist/commands/ios/type.d.ts.map +1 -1
  101. package/dist/commands/ios/xcodebuild.d.ts +1 -0
  102. package/dist/commands/ios/xcodebuild.d.ts.map +1 -1
  103. package/dist/commands/ios/xcrun.d.ts +1 -0
  104. package/dist/commands/ios/xcrun.d.ts.map +1 -1
  105. package/dist/commands/login.d.ts +1 -0
  106. package/dist/commands/login.d.ts.map +1 -1
  107. package/dist/commands/logout.d.ts +1 -0
  108. package/dist/commands/logout.d.ts.map +1 -1
  109. package/dist/commands/session/start.d.ts +1 -0
  110. package/dist/commands/session/start.d.ts.map +1 -1
  111. package/dist/commands/session/status.d.ts +1 -0
  112. package/dist/commands/session/status.d.ts.map +1 -1
  113. package/dist/commands/session/stop.d.ts +1 -0
  114. package/dist/commands/session/stop.d.ts.map +1 -1
  115. package/dist/commands/set-workspace-dir.d.ts +15 -0
  116. package/dist/commands/set-workspace-dir.d.ts.map +1 -0
  117. package/dist/commands/set-workspace-dir.js +60 -0
  118. package/dist/commands/set-workspace-dir.js.map +1 -0
  119. package/dist/commands/xcode/attach-simulator.d.ts +1 -0
  120. package/dist/commands/xcode/attach-simulator.d.ts.map +1 -1
  121. package/dist/commands/xcode/create.d.ts +1 -0
  122. package/dist/commands/xcode/create.d.ts.map +1 -1
  123. package/dist/commands/xcode/delete.d.ts +1 -0
  124. package/dist/commands/xcode/delete.d.ts.map +1 -1
  125. package/dist/commands/xcode/get.d.ts +1 -0
  126. package/dist/commands/xcode/get.d.ts.map +1 -1
  127. package/dist/commands/xcode/list.d.ts +1 -0
  128. package/dist/commands/xcode/list.d.ts.map +1 -1
  129. package/dist/commands/xcode/rbe/install.d.ts +2 -0
  130. package/dist/commands/xcode/rbe/install.d.ts.map +1 -1
  131. package/dist/commands/xcode/rbe/install.js +14 -4
  132. package/dist/commands/xcode/rbe/install.js.map +1 -1
  133. package/dist/commands/xcode/rbe.d.ts +5 -0
  134. package/dist/commands/xcode/rbe.d.ts.map +1 -1
  135. package/dist/commands/xcode/rbe.js +122 -13
  136. package/dist/commands/xcode/rbe.js.map +1 -1
  137. package/dist/commands/xcode/sync.d.ts +1 -0
  138. package/dist/commands/xcode/sync.d.ts.map +1 -1
  139. package/dist/lib/config.d.ts.map +1 -1
  140. package/dist/lib/config.js +324 -105
  141. package/dist/lib/config.js.map +1 -1
  142. package/dist/lib/rbe-bep-watcher.d.ts +41 -0
  143. package/dist/lib/rbe-bep-watcher.d.ts.map +1 -0
  144. package/dist/lib/rbe-bep-watcher.js +267 -0
  145. package/dist/lib/rbe-bep-watcher.js.map +1 -0
  146. package/dist/lib/rbe-session.d.ts +13 -0
  147. package/dist/lib/rbe-session.d.ts.map +1 -1
  148. package/dist/lib/rbe-session.js +15 -0
  149. package/dist/lib/rbe-session.js.map +1 -1
  150. package/dist/lib/rbe-workspace.d.ts +14 -1
  151. package/dist/lib/rbe-workspace.d.ts.map +1 -1
  152. package/dist/lib/rbe-workspace.js +25 -5
  153. package/dist/lib/rbe-workspace.js.map +1 -1
  154. package/dist/lib/scope.d.ts +38 -0
  155. package/dist/lib/scope.d.ts.map +1 -0
  156. package/dist/lib/scope.js +125 -0
  157. package/dist/lib/scope.js.map +1 -0
  158. package/dist/lib/workspace.d.ts +25 -0
  159. package/dist/lib/workspace.d.ts.map +1 -0
  160. package/dist/lib/workspace.js +111 -0
  161. package/dist/lib/workspace.js.map +1 -0
  162. package/package.json +4 -3
@@ -22,6 +22,7 @@ const path_1 = __importDefault(require("path"));
22
22
  const os_1 = __importDefault(require("os"));
23
23
  const js_yaml_1 = __importDefault(require("js-yaml"));
24
24
  const xcode_sandbox_1 = require("./xcode-sandbox");
25
+ const scope_1 = require("./scope");
25
26
  const CONFIG_DIR = path_1.default.join(os_1.default.homedir(), '.lim');
26
27
  const CONFIG_FILE = path_1.default.join(CONFIG_DIR, 'config.yaml');
27
28
  exports.CONFIG_KEYS = {
@@ -76,25 +77,256 @@ function clearApiKey() {
76
77
  }
77
78
  // ---------- Last used instance per type ----------
78
79
  const LAST_INSTANCE_FILE = path_1.default.join(CONFIG_DIR, 'last-instances.json');
79
- function readLastInstances() {
80
+ const LAST_INSTANCE_LOCK = `${LAST_INSTANCE_FILE}.lock`;
81
+ const SCHEMA_VERSION = 2;
82
+ /** Reserved scope key holding pre-scoping (legacy flat-file) data until the next write migrates it. */
83
+ const LEGACY_SCOPE_KEY = '__lim_legacy__';
84
+ /** Pre-rename key for the shared non-repo slot; remapped to GLOBAL_SCOPE_KEY on read. */
85
+ const LEGACY_GLOBAL_SCOPE_KEY = '__global__';
86
+ /** Cap on how many directory scopes we retain; least-recently-used are pruned beyond this. */
87
+ const MAX_SCOPES = 200;
88
+ /** Drop scopes untouched for this long so abandoned worktrees don't accumulate. */
89
+ const SCOPE_TTL_MS = 60 * 24 * 60 * 60 * 1000;
90
+ function readParsedLastInstances() {
80
91
  if (!fs_1.default.existsSync(LAST_INSTANCE_FILE))
81
- return {};
92
+ return null;
93
+ for (let attempt = 0; attempt < 2; attempt++) {
94
+ try {
95
+ return JSON.parse(fs_1.default.readFileSync(LAST_INSTANCE_FILE, 'utf-8'));
96
+ }
97
+ catch {
98
+ // A concurrent atomic rename can momentarily race a read; retry once.
99
+ }
100
+ }
101
+ return null;
102
+ }
103
+ function sanitizeScope(value) {
104
+ const scope = {};
105
+ if (!isRecord(value))
106
+ return scope;
107
+ if (typeof value['lastUsedAt'] === 'string')
108
+ scope.lastUsedAt = value['lastUsedAt'];
109
+ if (isLastAndroidInstance(value['android']))
110
+ scope.android = value['android'];
111
+ if (isLastIosInstance(value['ios']))
112
+ scope.ios = value['ios'];
113
+ if (isLastIosInstance(value['xcode']) || isLastXcodeInstance(value['xcode'])) {
114
+ scope.xcode = value['xcode'];
115
+ }
116
+ return scope;
117
+ }
118
+ function scopeHasInstance(scope) {
119
+ return Boolean(scope.ios || scope.android || scope.xcode);
120
+ }
121
+ /** Copy any slots missing from `primary` out of `fallback`. */
122
+ function fillMissingScope(primary, fallback) {
123
+ const out = { ...primary };
124
+ if (!out.ios && fallback.ios)
125
+ out.ios = fallback.ios;
126
+ if (!out.android && fallback.android)
127
+ out.android = fallback.android;
128
+ if (!out.xcode && fallback.xcode)
129
+ out.xcode = fallback.xcode;
130
+ if (!out.lastUsedAt && fallback.lastUsedAt)
131
+ out.lastUsedAt = fallback.lastUsedAt;
132
+ return out;
133
+ }
134
+ /**
135
+ * Parse the on-disk file into the current scoped schema. Two migrations happen
136
+ * here so upgrades keep resolving instances without recreating them:
137
+ * - a legacy flat file (`{ios,android,xcode}` with no `scopes`) is surfaced
138
+ * under LEGACY_SCOPE_KEY (folded into the active scope on the next write), and
139
+ * - the pre-rename global slot key (`__global__`) is remapped onto the current
140
+ * GLOBAL_SCOPE_KEY (the current key wins for any overlapping slots).
141
+ * Both are persisted on the next write.
142
+ */
143
+ function readNormalizedFile() {
144
+ const parsed = readParsedLastInstances();
145
+ const file = { version: SCHEMA_VERSION, scopes: {} };
146
+ if (!isRecord(parsed))
147
+ return file;
148
+ if (typeof parsed['version'] === 'number' && isRecord(parsed['scopes'])) {
149
+ let legacyGlobal;
150
+ for (const [key, value] of Object.entries(parsed['scopes'])) {
151
+ if (key === LEGACY_GLOBAL_SCOPE_KEY) {
152
+ legacyGlobal = sanitizeScope(value);
153
+ continue;
154
+ }
155
+ file.scopes[key] = sanitizeScope(value);
156
+ }
157
+ if (legacyGlobal && scopeHasInstance(legacyGlobal)) {
158
+ const current = file.scopes[scope_1.GLOBAL_SCOPE_KEY];
159
+ file.scopes[scope_1.GLOBAL_SCOPE_KEY] = current ? fillMissingScope(current, legacyGlobal) : legacyGlobal;
160
+ }
161
+ return file;
162
+ }
163
+ const legacy = sanitizeScope(parsed);
164
+ if (scopeHasInstance(legacy)) {
165
+ file.scopes[LEGACY_SCOPE_KEY] = legacy;
166
+ }
167
+ return file;
168
+ }
169
+ function getScopeData(file, scopeKey) {
170
+ return file.scopes[scopeKey] ?? file.scopes[LEGACY_SCOPE_KEY] ?? {};
171
+ }
172
+ function readScope(scopeKey) {
173
+ return getScopeData(readNormalizedFile(), scopeKey);
174
+ }
175
+ function ensureScope(file, scopeKey) {
176
+ let scope = file.scopes[scopeKey];
177
+ if (!scope) {
178
+ scope = {};
179
+ file.scopes[scopeKey] = scope;
180
+ }
181
+ return scope;
182
+ }
183
+ /** Fold legacy flat-file data into the active scope (only slots not already set), once. */
184
+ function foldLegacyInto(file, scopeKey) {
185
+ const legacy = file.scopes[LEGACY_SCOPE_KEY];
186
+ if (!legacy)
187
+ return false;
188
+ delete file.scopes[LEGACY_SCOPE_KEY];
189
+ const scope = ensureScope(file, scopeKey);
190
+ if (!scope.android && legacy.android)
191
+ scope.android = legacy.android;
192
+ if (!scope.ios && legacy.ios)
193
+ scope.ios = legacy.ios;
194
+ if (!scope.xcode && legacy.xcode)
195
+ scope.xcode = legacy.xcode;
196
+ if (!scope.lastUsedAt)
197
+ scope.lastUsedAt = legacy.lastUsedAt ?? new Date().toISOString();
198
+ return true;
199
+ }
200
+ function scopeTimestamp(scope) {
201
+ const ts = scope.lastUsedAt ? Date.parse(scope.lastUsedAt) : NaN;
202
+ return Number.isNaN(ts) ? 0 : ts;
203
+ }
204
+ /**
205
+ * Drop empty scopes, TTL-expired scopes, and the least-recently-used beyond the
206
+ * cap. The global (non-repo) slot is exempt from TTL/LRU pruning so the "use my
207
+ * most recent instance" fallback persists like the old single-slot behavior; it
208
+ * is still removed once empty.
209
+ */
210
+ function pruneScopes(file) {
211
+ let changed = false;
212
+ const now = Date.now();
213
+ for (const key of Object.keys(file.scopes)) {
214
+ if (key === LEGACY_SCOPE_KEY)
215
+ continue;
216
+ const scope = file.scopes[key];
217
+ if (!scopeHasInstance(scope)) {
218
+ delete file.scopes[key];
219
+ changed = true;
220
+ continue;
221
+ }
222
+ if (key === scope_1.GLOBAL_SCOPE_KEY)
223
+ continue;
224
+ if (scope.lastUsedAt && now - scopeTimestamp(scope) > SCOPE_TTL_MS) {
225
+ delete file.scopes[key];
226
+ changed = true;
227
+ }
228
+ }
229
+ const keys = Object.keys(file.scopes).filter((k) => k !== LEGACY_SCOPE_KEY && k !== scope_1.GLOBAL_SCOPE_KEY);
230
+ if (keys.length > MAX_SCOPES) {
231
+ keys
232
+ .sort((a, b) => scopeTimestamp(file.scopes[a]) - scopeTimestamp(file.scopes[b]))
233
+ .slice(0, keys.length - MAX_SCOPES)
234
+ .forEach((key) => {
235
+ delete file.scopes[key];
236
+ changed = true;
237
+ });
238
+ }
239
+ return changed;
240
+ }
241
+ function atomicWriteFile(file) {
242
+ ensureConfigDir();
243
+ const tmp = `${LAST_INSTANCE_FILE}.${process.pid}.${Math.random().toString(36).slice(2)}.tmp`;
244
+ fs_1.default.writeFileSync(tmp, JSON.stringify(file, null, 2), { mode: 0o600 });
245
+ fs_1.default.renameSync(tmp, LAST_INSTANCE_FILE);
246
+ }
247
+ function sleepSync(ms) {
82
248
  try {
83
- const parsed = JSON.parse(fs_1.default.readFileSync(LAST_INSTANCE_FILE, 'utf-8'));
84
- if (isLastInstances(parsed)) {
85
- return parsed;
249
+ Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
250
+ }
251
+ catch {
252
+ const end = Date.now() + ms;
253
+ while (Date.now() < end) {
254
+ /* SharedArrayBuffer unavailable; brief busy wait */
86
255
  }
87
256
  }
88
- catch { }
89
- deleteLastInstancesFile();
90
- return {};
91
257
  }
92
- function deleteLastInstancesFile() {
258
+ const LOCK_TIMEOUT_MS = 3000;
259
+ const LOCK_STALE_MS = 15000;
260
+ function acquireLock() {
261
+ const start = Date.now();
262
+ for (;;) {
263
+ try {
264
+ const fd = fs_1.default.openSync(LAST_INSTANCE_LOCK, 'wx');
265
+ try {
266
+ fs_1.default.writeSync(fd, String(process.pid));
267
+ }
268
+ catch { }
269
+ return fd;
270
+ }
271
+ catch (err) {
272
+ if (err.code !== 'EEXIST') {
273
+ return null; // can't create lock (e.g. permissions); proceed best-effort
274
+ }
275
+ try {
276
+ const stat = fs_1.default.statSync(LAST_INSTANCE_LOCK);
277
+ if (Date.now() - stat.mtimeMs > LOCK_STALE_MS) {
278
+ try {
279
+ fs_1.default.unlinkSync(LAST_INSTANCE_LOCK);
280
+ }
281
+ catch { }
282
+ continue;
283
+ }
284
+ }
285
+ catch {
286
+ continue; // lock vanished between open and stat; retry immediately
287
+ }
288
+ if (Date.now() - start > LOCK_TIMEOUT_MS)
289
+ return null;
290
+ sleepSync(20 + Math.floor(Math.random() * 30));
291
+ }
292
+ }
293
+ }
294
+ function releaseLock(fd) {
295
+ if (fd === null)
296
+ return;
297
+ try {
298
+ fs_1.default.closeSync(fd);
299
+ }
300
+ catch { }
93
301
  try {
94
- fs_1.default.unlinkSync(LAST_INSTANCE_FILE);
302
+ fs_1.default.unlinkSync(LAST_INSTANCE_LOCK);
95
303
  }
96
304
  catch { }
97
305
  }
306
+ /**
307
+ * Serialized, atomic read-modify-write of the last-instances file. The mutator
308
+ * receives the parsed file plus the active scope key; returning `false` signals
309
+ * no change so we can skip the write (and avoid needless lock churn for parallel
310
+ * agents). Legacy data is migrated into the active scope before the mutator runs.
311
+ */
312
+ function mutate(fn) {
313
+ ensureConfigDir();
314
+ const fd = acquireLock();
315
+ try {
316
+ const file = readNormalizedFile();
317
+ const scopeKey = (0, scope_1.getScopeKey)();
318
+ let changed = foldLegacyInto(file, scopeKey);
319
+ if (fn(file, scopeKey) !== false)
320
+ changed = true;
321
+ if (pruneScopes(file))
322
+ changed = true;
323
+ if (changed)
324
+ atomicWriteFile(file);
325
+ }
326
+ finally {
327
+ releaseLock(fd);
328
+ }
329
+ }
98
330
  function isRecord(value) {
99
331
  return typeof value === 'object' && value !== null && !Array.isArray(value);
100
332
  }
@@ -107,23 +339,6 @@ function isLastIosInstance(value) {
107
339
  function isLastXcodeInstance(value) {
108
340
  return isRecord(value) && value['type'] === 'xcode' && typeof value['id'] === 'string';
109
341
  }
110
- function isLastInstances(value) {
111
- if (!isRecord(value))
112
- return false;
113
- const keys = Object.keys(value);
114
- if (keys.some((key) => !['ios', 'android', 'xcode'].includes(key)))
115
- return false;
116
- if (value['android'] !== undefined && !isLastAndroidInstance(value['android']))
117
- return false;
118
- if (value['ios'] !== undefined && !isLastIosInstance(value['ios']))
119
- return false;
120
- if (value['xcode'] !== undefined &&
121
- !isLastIosInstance(value['xcode']) &&
122
- !isLastXcodeInstance(value['xcode'])) {
123
- return false;
124
- }
125
- return true;
126
- }
127
342
  function detectLastInstanceType(instanceId) {
128
343
  const rawPrefix = instanceId.split('_')[0];
129
344
  if (rawPrefix === 'android')
@@ -234,25 +449,25 @@ function buildLastXcodeSlotRecord(instanceOrId) {
234
449
  };
235
450
  }
236
451
  function saveLastInstance(instanceOrId, slot) {
237
- ensureConfigDir();
238
452
  const record = buildLastInstanceRecord(instanceOrId);
239
- const data = readLastInstances();
240
- if (slot === 'xcode') {
241
- const xcodeRecord = buildLastXcodeSlotRecord(instanceOrId);
242
- if (xcodeRecord) {
243
- data.xcode = xcodeRecord;
453
+ mutate((file, scopeKey) => {
454
+ const scope = ensureScope(file, scopeKey);
455
+ if (slot === 'xcode') {
456
+ const xcodeRecord = buildLastXcodeSlotRecord(instanceOrId);
457
+ if (xcodeRecord)
458
+ scope.xcode = xcodeRecord;
244
459
  }
245
- }
246
- else if (record.type === 'android') {
247
- data.android = record;
248
- }
249
- else if (record.type === 'ios') {
250
- data.ios = record;
251
- }
252
- else {
253
- data.xcode = record;
254
- }
255
- fs_1.default.writeFileSync(LAST_INSTANCE_FILE, JSON.stringify(data, null, 2), { mode: 0o600 });
460
+ else if (record.type === 'android') {
461
+ scope.android = record;
462
+ }
463
+ else if (record.type === 'ios') {
464
+ scope.ios = record;
465
+ }
466
+ else {
467
+ scope.xcode = record;
468
+ }
469
+ scope.lastUsedAt = new Date().toISOString();
470
+ });
256
471
  }
257
472
  function registerCreatedInstance(instanceOrId, relatedTypes = []) {
258
473
  saveLastInstance(instanceOrId);
@@ -261,86 +476,90 @@ function registerCreatedInstance(instanceOrId, relatedTypes = []) {
261
476
  }
262
477
  }
263
478
  function loadLastAndroidInstance() {
264
- const data = readLastInstances();
265
- return data.android ?? null;
479
+ return readScope((0, scope_1.getScopeKey)()).android ?? null;
266
480
  }
267
481
  function loadLastIosInstance() {
268
- const data = readLastInstances();
269
- return data.ios ?? null;
482
+ return readScope((0, scope_1.getScopeKey)()).ios ?? null;
270
483
  }
271
484
  function loadLastXcodeInstance() {
272
- const data = readLastInstances();
273
- return data.xcode ?? null;
485
+ return readScope((0, scope_1.getScopeKey)()).xcode ?? null;
274
486
  }
275
487
  function sandboxXcodeIdFromLastIosInstance(instance) {
276
488
  const sandboxXcodeUrl = instance?.sandboxXcodeUrl ?? instance?.status?.sandbox?.xcode?.url;
277
489
  return sandboxXcodeUrl ? (0, xcode_sandbox_1.xcodeSandboxIdFromUrl)(sandboxXcodeUrl) : undefined;
278
490
  }
279
491
  function clearLastInstanceId(instanceId) {
280
- const data = readLastInstances();
281
- const iosRecord = data.ios;
282
- let changed = false;
283
- for (const key of Object.keys(data)) {
284
- if (data[key]?.id === instanceId) {
285
- delete data[key];
286
- changed = true;
492
+ mutate((file) => {
493
+ let changed = false;
494
+ for (const scope of Object.values(file.scopes)) {
495
+ const iosRecord = scope.ios;
496
+ for (const key of ['ios', 'android', 'xcode']) {
497
+ if (scope[key]?.id === instanceId) {
498
+ delete scope[key];
499
+ changed = true;
500
+ }
501
+ }
502
+ const sandboxXcodeId = iosRecord?.id === instanceId ? sandboxXcodeIdFromLastIosInstance(iosRecord) : undefined;
503
+ if (sandboxXcodeId && scope.xcode?.type === 'xcode' && scope.xcode.id === sandboxXcodeId) {
504
+ delete scope.xcode;
505
+ changed = true;
506
+ }
287
507
  }
288
- }
289
- const sandboxXcodeId = iosRecord?.id === instanceId ? sandboxXcodeIdFromLastIosInstance(iosRecord) : undefined;
290
- if (sandboxXcodeId && data.xcode?.type === 'xcode' && data.xcode.id === sandboxXcodeId) {
291
- delete data.xcode;
292
- changed = true;
293
- }
294
- if (changed) {
295
- ensureConfigDir();
296
- fs_1.default.writeFileSync(LAST_INSTANCE_FILE, JSON.stringify(data, null, 2), { mode: 0o600 });
297
- }
508
+ return changed;
509
+ });
298
510
  }
299
511
  function saveInstanceCache(instanceId, data) {
300
- const lastInstances = readLastInstances();
301
- let changed = false;
302
- if (lastInstances.android?.id === instanceId) {
303
- lastInstances.android = {
304
- ...lastInstances.android,
305
- ...data,
306
- type: 'android',
307
- };
308
- changed = true;
309
- }
310
- if (lastInstances.ios?.id === instanceId) {
311
- lastInstances.ios = {
312
- ...lastInstances.ios,
313
- ...data,
314
- type: 'ios',
315
- };
316
- changed = true;
317
- }
318
- if (lastInstances.xcode?.id === instanceId) {
319
- lastInstances.xcode =
320
- lastInstances.xcode.type === 'ios' ?
321
- { ...lastInstances.xcode, ...data, type: 'ios' }
322
- : { ...lastInstances.xcode, ...data, type: 'xcode' };
323
- changed = true;
324
- }
325
- if (changed) {
326
- ensureConfigDir();
327
- fs_1.default.writeFileSync(LAST_INSTANCE_FILE, JSON.stringify(lastInstances, null, 2), { mode: 0o600 });
328
- }
512
+ mutate((file) => {
513
+ let changed = false;
514
+ for (const scope of Object.values(file.scopes)) {
515
+ if (scope.android?.id === instanceId) {
516
+ scope.android = {
517
+ ...scope.android,
518
+ ...data,
519
+ type: 'android',
520
+ };
521
+ changed = true;
522
+ }
523
+ if (scope.ios?.id === instanceId) {
524
+ scope.ios = {
525
+ ...scope.ios,
526
+ ...data,
527
+ type: 'ios',
528
+ };
529
+ changed = true;
530
+ }
531
+ if (scope.xcode?.id === instanceId) {
532
+ scope.xcode =
533
+ scope.xcode.type === 'ios' ?
534
+ { ...scope.xcode, ...data, type: 'ios' }
535
+ : { ...scope.xcode, ...data, type: 'xcode' };
536
+ changed = true;
537
+ }
538
+ }
539
+ return changed;
540
+ });
329
541
  }
330
542
  function loadAndroidInstanceCache(instanceId) {
331
- const record = readLastInstances().android;
332
- return record?.id === instanceId ? record : null;
543
+ for (const scope of Object.values(readNormalizedFile().scopes)) {
544
+ if (scope.android?.id === instanceId)
545
+ return scope.android;
546
+ }
547
+ return null;
333
548
  }
334
549
  function loadIosInstanceCache(instanceId) {
335
- const data = readLastInstances();
336
- if (data.ios?.id === instanceId)
337
- return data.ios;
338
- if (data.xcode?.type === 'ios' && data.xcode.id === instanceId)
339
- return data.xcode;
550
+ for (const scope of Object.values(readNormalizedFile().scopes)) {
551
+ if (scope.ios?.id === instanceId)
552
+ return scope.ios;
553
+ if (scope.xcode?.type === 'ios' && scope.xcode.id === instanceId)
554
+ return scope.xcode;
555
+ }
340
556
  return null;
341
557
  }
342
558
  function loadXcodeInstanceCache(instanceId) {
343
- const record = readLastInstances().xcode;
344
- return record?.type === 'xcode' && record.id === instanceId ? record : null;
559
+ for (const scope of Object.values(readNormalizedFile().scopes)) {
560
+ if (scope.xcode?.type === 'xcode' && scope.xcode.id === instanceId)
561
+ return scope.xcode;
562
+ }
563
+ return null;
345
564
  }
346
565
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { XcodeClient } from '@limrun/api';
2
+ /**
3
+ * Watches a workspace's `.limrun/bep.json` and, after each completed build,
4
+ * registers the built target's `.ipa` with the instance so it is installed on
5
+ * the attached simulator now (and replayed on a later attach). This is the
6
+ * client-side trigger for `lim xcode rbe` auto-install: only Bazel (on the
7
+ * client) knows the build finished and which CAS digest is the top-level `.ipa`,
8
+ * so the daemon holding the tunnel watches the BEP and the instance does the
9
+ * install server-side.
10
+ *
11
+ * Robustness is the priority: this runs inside the detached daemon that holds
12
+ * the only RBE tunnel, so every read/parse/HTTP error is caught and logged, and
13
+ * the watcher never throws into the daemon (a crash here would drop the tunnel
14
+ * mid-build). It is also idempotent: it acts once per Bazel invocation, even
15
+ * when a build reproduces an earlier `.ipa` digest (e.g. a `git stash` revert),
16
+ * because the instance keys "already installed" on the CAS digest.
17
+ */
18
+ export type BepWatcherOptions = {
19
+ /** Absolute path to Bazel's build-event JSON log (`--build_event_json_file`). */
20
+ bepPath: string;
21
+ /** The build target to select from the BEP and install (e.g. //App:App). */
22
+ target: string;
23
+ /** Returns the XcodeClient to use; called per install so a refreshed client is picked up. */
24
+ getClient: () => XcodeClient;
25
+ /** Sink for status/diagnostic lines (the daemon redirects stdout/stderr to .limrun/rbe.log). */
26
+ log: (msg: string) => void;
27
+ /** Debounce window after a BEP change before acting. */
28
+ debounceMs?: number;
29
+ /** mtime-poll backstop interval (covers FSEvents coalescing/drops on macOS). */
30
+ pollIntervalMs?: number;
31
+ /** Delay before retrying a build after a transient install failure. */
32
+ retryDelayMs?: number;
33
+ /** Max transient-failure retries for one build before giving up (rebuild to retry). */
34
+ maxRetries?: number;
35
+ };
36
+ export type BepWatcher = {
37
+ /** Stops watching and awaits any in-flight registration. Idempotent. */
38
+ close: () => Promise<void>;
39
+ };
40
+ export declare function startBepWatcher(opts: BepWatcherOptions): BepWatcher;
41
+ //# sourceMappingURL=rbe-bep-watcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rbe-bep-watcher.d.ts","sourceRoot":"","sources":["../../src/lib/rbe-bep-watcher.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,aAAa,CAAC;AAE7D;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAC;IACf,6FAA6F;IAC7F,SAAS,EAAE,MAAM,WAAW,CAAC;IAC7B,gGAAgG;IAChG,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,wEAAwE;IACxE,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC;AAEF,wBAAgB,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,UAAU,CAuPnE"}