tim-hooks 0.1.0-beta.0 → 0.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/marker.js CHANGED
@@ -33,9 +33,10 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.CWD_ONLY_MARKER_DISCOVERY_POLICY = exports.DEFAULT_MARKER_DISCOVERY_POLICY = exports.LOCK_TTL_MS = exports.ExclusiveMarkerConflictError = exports.INBOX_LABEL = exports.MARKER_VERSION = exports.CANONICAL_PROJECT_FILENAME = exports.MARKER_LOCK = exports.MARKER_FILENAME = void 0;
36
+ exports.CWD_ONLY_MARKER_DISCOVERY_POLICY = exports.DEFAULT_MARKER_DISCOVERY_POLICY = exports.LOCK_TTL_MS = exports.ExclusiveMarkerConflictError = exports.INBOX_LABEL = exports.MARKER_VERSION = exports.CANONICAL_PROJECT_FILENAME = exports.MARKER_LOCK = exports.SUMMARIZER_LOCK = exports.MARKER_FILENAME = void 0;
37
37
  exports.markerPath = markerPath;
38
38
  exports.canonicalProjectPath = canonicalProjectPath;
39
+ exports.summarizerLockPath = summarizerLockPath;
39
40
  exports.validateProjectLabel = validateProjectLabel;
40
41
  exports.readMarker = readMarker;
41
42
  exports.validateMarkerAgainstStore = validateMarkerAgainstStore;
@@ -43,10 +44,8 @@ exports.isUnsafeMarkerDir = isUnsafeMarkerDir;
43
44
  exports.writeMarkerAtomic = writeMarkerAtomic;
44
45
  exports.writeMarkerExclusive = writeMarkerExclusive;
45
46
  exports.writeMarker = writeMarker;
46
- exports.rotateMarkerSession = rotateMarkerSession;
47
47
  exports.syncNearestProjectMarker = syncNearestProjectMarker;
48
48
  exports.detectProject = detectProject;
49
- exports.reconcileMarker = reconcileMarker;
50
49
  exports.acquireLock = acquireLock;
51
50
  exports.isSessionLocked = isSessionLocked;
52
51
  exports.releaseLock = releaseLock;
@@ -60,14 +59,14 @@ const os = __importStar(require("os"));
60
59
  const path = __importStar(require("path"));
61
60
  const crypto = __importStar(require("node:crypto"));
62
61
  const constants_js_1 = require("./constants.js");
63
- const tim_store_1 = require("tim-store");
64
62
  exports.MARKER_FILENAME = '.tim-project';
65
- exports.MARKER_LOCK = '.tim-project.lock';
63
+ var constants_js_2 = require("./constants.js");
64
+ Object.defineProperty(exports, "SUMMARIZER_LOCK", { enumerable: true, get: function () { return constants_js_2.SUMMARIZER_LOCK; } });
65
+ Object.defineProperty(exports, "MARKER_LOCK", { enumerable: true, get: function () { return constants_js_2.MARKER_LOCK; } });
66
66
  /**
67
67
  * Committed default project label for repos that gitignore `.tim-project`.
68
- * Contains only the stable `project` field; runtime counters live in the
69
- * local `.tim-project` file created on session start. Override per-machine
70
- * by creating `.tim-project` in the repo root (it wins over tim.json).
68
+ * Contains only the stable `project` field. Override per-machine by creating
69
+ * `.tim-project` in the repo root (it wins over tim.json).
71
70
  */
72
71
  exports.CANONICAL_PROJECT_FILENAME = 'tim.json';
73
72
  /**
@@ -75,13 +74,16 @@ exports.CANONICAL_PROJECT_FILENAME = 'tim.json';
75
74
  * readers detect older files by the missing/unknown `version` field and
76
75
  * normalize to the current shape.
77
76
  */
78
- exports.MARKER_VERSION = 2;
77
+ exports.MARKER_VERSION = 3;
79
78
  function markerPath(cwd) {
80
79
  return path.join(cwd, exports.MARKER_FILENAME);
81
80
  }
82
81
  function canonicalProjectPath(cwd) {
83
82
  return path.join(cwd, exports.CANONICAL_PROJECT_FILENAME);
84
83
  }
84
+ function summarizerLockPath(cwd) {
85
+ return path.join(cwd, constants_js_1.TIM_META_DIR, constants_js_1.SUMMARIZER_LOCK);
86
+ }
85
87
  /** Valid project labels: P/L/E/N + 4 digits (P0062, L0042, …). */
86
88
  const PROJECT_LABEL_PATTERN = /^[PLEN]\d{4}$/;
87
89
  /**
@@ -106,14 +108,8 @@ exports.INBOX_LABEL = 'P0000';
106
108
  *
107
109
  * - Missing file → null
108
110
  * - Corrupt JSON → null
109
- * - v1 file (no `version` field) strips `route_exchanges_to` + `sessions`
110
- * map, sets `version: 2`, returns the upgraded object. The file itself
111
- * is NOT rewritten here — the next `writeMarker` call upgrades it.
112
- * - v2 file → returned as-is.
113
- *
114
- * Callers always see a v2-conformant `ProjectMarker` regardless of what's
115
- * on disk. This is the only safe way to evolve the schema without forcing
116
- * a one-shot migration.
111
+ * - v1/v2 file `{ version: 3, project }` (runtime fields ignored)
112
+ * - v3 file returned as-is
117
113
  *
118
114
  * When no `.tim-project` exists, falls back to `tim.json` (committed
119
115
  * canonical default). A real `.tim-project` always wins — even when
@@ -134,8 +130,7 @@ function readMarker(cwd) {
134
130
  return readCanonicalProject(cwd);
135
131
  }
136
132
  /**
137
- * Read the committed default project from tim.json. Runtime fields use
138
- * neutral defaults — session start overwrites them into `.tim-project`.
133
+ * Read the committed default project from tim.json.
139
134
  */
140
135
  function readCanonicalProject(cwd) {
141
136
  const p = canonicalProjectPath(cwd);
@@ -159,24 +154,11 @@ function readCanonicalProject(cwd) {
159
154
  return {
160
155
  version: exports.MARKER_VERSION,
161
156
  project: obj.project,
162
- session: '',
163
- exchanges: 0,
164
- batch_size: 5,
165
- batches_summarized: 0,
166
157
  };
167
158
  }
168
159
  /**
169
- * Coerce an unknown JSON value into a v2 ProjectMarker. Strips legacy
170
- * fields. Returns null if the value isn't a usable marker (missing
171
- * project/session, wrong types, or malformed project label).
172
- *
173
- * NOTE: This is the pure-FS reader. The DB-existence check
174
- * (project label must resolve to a real entry in the TIM DB) lives
175
- * in `validateMarkerAgainstStore` — called from the two write-side
176
- * paths (runSessionStart, syncNearestProjectMarker) before they
177
- * persist anything. We deliberately keep the disk reader free of
178
- * DB dependencies so hooks under a tight timeout can still parse
179
- * the marker without paying for an SQLite roundtrip.
160
+ * Coerce an unknown JSON value into a v3 ProjectMarker. Returns null if the
161
+ * value isn't a usable marker (missing project, wrong type, or malformed label).
180
162
  */
181
163
  function normalizeMarker(raw) {
182
164
  if (!raw || typeof raw !== 'object')
@@ -189,43 +171,14 @@ function normalizeMarker(raw) {
189
171
  `expected ^[PLEN]\\d{4}$ (P0062, L0042, …). Ignoring marker.`);
190
172
  return null;
191
173
  }
192
- if (typeof obj.session !== 'string')
193
- return null;
194
- if (typeof obj.exchanges !== 'number' || !Number.isFinite(obj.exchanges))
195
- return null;
196
- if (typeof obj.batch_size !== 'number' || !Number.isFinite(obj.batch_size))
197
- return null;
198
- if (typeof obj.batches_summarized !== 'number' || !Number.isFinite(obj.batches_summarized)) {
199
- return null;
200
- }
201
174
  return {
202
175
  version: exports.MARKER_VERSION,
203
176
  project: obj.project,
204
- session: obj.session,
205
- exchanges: obj.exchanges,
206
- batch_size: obj.batch_size,
207
- batches_summarized: obj.batches_summarized,
208
177
  };
209
178
  }
210
179
  /**
211
180
  * Defense-in-depth check: a project label that matches the
212
- * pattern but is semantically bogus (e.g. `P9999` a label that
213
- * was never issued by TIM, often the residue of a hand-edit or a
214
- * botched commit) must NOT be persisted into `.tim-project`. The
215
- * original P9999 bug bound the statusline to a non-existent
216
- * project because the file was trusted blindly.
217
- *
218
- * Resolution: pattern-match (already enforced by normalizeMarker)
219
- * AND the project must exist as a `kind=project` entry in the DB.
220
- * The Inbox (P0000) is exempt — it's a system project that
221
- * tim-store creates on first use via `ensureInboxProject`.
222
- *
223
- * Returns the marker on success, null on rejection. On DB error
224
- * (store unavailable, DB locked, etc.) we FAIL OPEN: a corrupted
225
- * DB is not a license to corrupt the marker, but a transient
226
- * read failure shouldn't brick the session-start hook. The
227
- * pattern check in normalizeMarker still ran, so we never accept
228
- * malformed labels — we just skip the existence confirmation.
181
+ * pattern but is semantically bogus (e.g. `P9999`) must NOT be persisted.
229
182
  */
230
183
  async function validateMarkerAgainstStore(marker, store) {
231
184
  if (marker.project === exports.INBOX_LABEL)
@@ -247,12 +200,7 @@ async function validateMarkerAgainstStore(marker, store) {
247
200
  return null;
248
201
  }
249
202
  /**
250
- * Shared/system directories where a `.tim-project` must never live: every
251
- * process can have them as cwd, so a marker there leaks into unrelated
252
- * sessions via walk-up (observed: a cron with cwd=/tmp wrote /tmp/.tim-project
253
- * and every process under /tmp inherited it). v1 unsafe set — deliberately
254
- * minimal and explicit: os.tmpdir() itself and the filesystem root.
255
- * Subdirectories of tmpdir (mkdtemp scratch dirs) are private and stay legal.
203
+ * Shared/system directories where a `.tim-project` must never live.
256
204
  */
257
205
  function isUnsafeMarkerDir(dir) {
258
206
  let resolved = path.resolve(dir);
@@ -290,7 +238,7 @@ function writeMarkerExclusive(cwd, marker) {
290
238
  }
291
239
  const filePath = markerPath(cwd);
292
240
  const tmp = `${filePath}.tmp.${process.pid}.${crypto.randomUUID()}`;
293
- const complete = { ...marker, version: exports.MARKER_VERSION };
241
+ const complete = { version: exports.MARKER_VERSION, project: marker.project };
294
242
  let ownsTemp = false;
295
243
  try {
296
244
  fs.writeFileSync(tmp, JSON.stringify(complete, null, 2), { flag: 'wx' });
@@ -317,9 +265,7 @@ function writeMarkerExclusive(cwd, marker) {
317
265
  }
318
266
  }
319
267
  }
320
- /** Write a project marker file. Always emits the current schema version:
321
- * the on-disk file becomes v2 on first write, regardless of the caller's
322
- * input. This is the auto-upgrade path for v1 files. */
268
+ /** Write a project marker file. Always emits the current v3 schema. */
323
269
  function writeMarker(cwd, marker) {
324
270
  if (isUnsafeMarkerDir(cwd)) {
325
271
  console.warn(`[tim-hooks] writeMarker: refusing to write ${exports.MARKER_FILENAME} in shared directory ` +
@@ -332,36 +278,11 @@ function writeMarker(cwd, marker) {
332
278
  return;
333
279
  }
334
280
  const p = markerPath(cwd);
335
- const upgraded = { ...marker, version: exports.MARKER_VERSION };
281
+ const upgraded = { version: exports.MARKER_VERSION, project: marker.project };
336
282
  writeMarkerAtomic(p, JSON.stringify(upgraded, null, 2));
337
283
  }
338
- /**
339
- * Rotate the session id in cwd's `.tim-project` when the harness supplies a new one.
340
- * Used by tim-session-start.sh — must not interpolate paths into JS source.
341
- */
342
- function rotateMarkerSession(cwd, sessionId) {
343
- if (isUnsafeMarkerDir(cwd)) {
344
- console.warn(`[tim-hooks] rotateMarkerSession: refusing to touch ${exports.MARKER_FILENAME} in shared ` +
345
- `directory "${cwd}" (tmpdir / filesystem root). Running markerless.`);
346
- return;
347
- }
348
- const p = markerPath(cwd);
349
- if (!fs.existsSync(p))
350
- return;
351
- try {
352
- const raw = JSON.parse(fs.readFileSync(p, 'utf8'));
353
- if (raw.session === sessionId)
354
- return;
355
- raw.session = sessionId;
356
- writeMarkerAtomic(p, JSON.stringify(raw, null, 2));
357
- }
358
- catch {
359
- /* corrupt marker — leave untouched */
360
- }
361
- }
362
284
  /**
363
285
  * Update the nearest `.tim-project` (walk-up from cwd) after tim_load_project.
364
- * Statusline and hooks read this marker — must match the loaded project label.
365
286
  */
366
287
  function syncNearestProjectMarker(startCwd, projectLabel, options) {
367
288
  if (!validateProjectLabel(projectLabel)) {
@@ -375,39 +296,20 @@ function syncNearestProjectMarker(startCwd, projectLabel, options) {
375
296
  });
376
297
  if (!located)
377
298
  return false;
378
- const sessionId = options?.sessionId?.trim();
379
- const { version: _v, ...rest } = located.marker;
380
- writeMarker(located.dir, {
381
- ...rest,
382
- project: projectLabel,
383
- ...(sessionId ? { session: sessionId } : {}),
384
- });
299
+ writeMarker(located.dir, { project: projectLabel });
385
300
  return true;
386
301
  }
387
302
  /** Project detection — cwd-only marker (no walk-up). */
388
303
  function detectProject(cwd) {
389
304
  return discoverMarker(cwd, exports.CWD_ONLY_MARKER_DISCOVERY_POLICY)?.marker ?? null;
390
305
  }
391
- /** Re-derive counters from the DB and persist them into the marker. */
392
- async function reconcileMarker(store, cwd) {
393
- const marker = readMarker(cwd);
394
- if (!marker)
395
- throw new Error(`No ${exports.MARKER_FILENAME} in ${cwd}`);
396
- const { exchangeCount, batchesSummarized } = await (0, tim_store_1.deriveCounters)(store, marker.session);
397
- const reconciled = {
398
- ...marker,
399
- exchanges: exchangeCount,
400
- batches_summarized: batchesSummarized,
401
- };
402
- writeMarker(cwd, reconciled);
403
- // Read back to return the canonical v2 shape (writeMarker upgraded the file).
404
- return readMarker(cwd) ?? reconciled;
405
- }
406
- var constants_js_2 = require("./constants.js");
407
- Object.defineProperty(exports, "LOCK_TTL_MS", { enumerable: true, get: function () { return constants_js_2.LOCK_TTL_MS; } });
306
+ var constants_js_3 = require("./constants.js");
307
+ Object.defineProperty(exports, "LOCK_TTL_MS", { enumerable: true, get: function () { return constants_js_3.LOCK_TTL_MS; } });
408
308
  function acquireLock(cwd) {
409
- const lock = path.join(cwd, exports.MARKER_LOCK);
309
+ const lockDir = path.join(cwd, constants_js_1.TIM_META_DIR);
310
+ const lock = summarizerLockPath(cwd);
410
311
  try {
312
+ fs.mkdirSync(lockDir, { recursive: true });
411
313
  fs.writeFileSync(lock, JSON.stringify({ pid: process.pid, ts: Date.now() }), { flag: 'wx' });
412
314
  return true;
413
315
  }
@@ -427,7 +329,7 @@ function acquireLock(cwd) {
427
329
  }
428
330
  /** True when an active (non-stale) summarizer/session lock is held. */
429
331
  function isSessionLocked(cwd) {
430
- const lock = path.join(cwd, exports.MARKER_LOCK);
332
+ const lock = summarizerLockPath(cwd);
431
333
  if (!fs.existsSync(lock))
432
334
  return false;
433
335
  try {
@@ -440,7 +342,7 @@ function isSessionLocked(cwd) {
440
342
  }
441
343
  function releaseLock(cwd) {
442
344
  try {
443
- fs.rmSync(path.join(cwd, exports.MARKER_LOCK), { force: true });
345
+ fs.rmSync(summarizerLockPath(cwd), { force: true });
444
346
  }
445
347
  catch {
446
348
  /* ignore */
@@ -481,8 +383,6 @@ function pickMarkerLocation(candidates) {
481
383
  return candidates.reduce((best, cur) => path.resolve(cur.dir).length > path.resolve(best.dir).length ? cur : best);
482
384
  }
483
385
  function scanDirForMarker(dir) {
484
- // Markers in shared directories (tmpdir, /) are never trusted — treat the
485
- // dir as marker-free and keep walking, same as any dir without a marker.
486
386
  if (isUnsafeMarkerDir(dir))
487
387
  return null;
488
388
  if (fs.existsSync(markerPath(dir))) {
@@ -498,9 +398,6 @@ function scanDirForMarker(dir) {
498
398
  }
499
399
  /**
500
400
  * Find a project marker from `startCwd` — the single discovery implementation.
501
- *
502
- * Policy defaults (when fields omitted): walkUp=true, allowHome=true.
503
- * Pass `CWD_ONLY_MARKER_DISCOVERY_POLICY` for harness cwd binding.
504
401
  */
505
402
  function discoverMarker(startCwd, policy = exports.DEFAULT_MARKER_DISCOVERY_POLICY) {
506
403
  const walkUp = policy.walkUp ?? true;
@@ -543,7 +440,6 @@ function discoverMarker(startCwd, policy = exports.DEFAULT_MARKER_DISCOVERY_POLI
543
440
  }
544
441
  /**
545
442
  * Back-compat wrapper: when `options` is omitted, cwd-only (historical default).
546
- * Prefer `discoverMarker` with an explicit policy for new code.
547
443
  */
548
444
  function findMarker(startCwd, options) {
549
445
  if (!options) {
@@ -556,9 +452,7 @@ function findMarker(startCwd, options) {
556
452
  });
557
453
  }
558
454
  /**
559
- * Shared, harness-agnostic directive text. Every start hook (Hermes,
560
- * Claude Code, Cursor) emits exactly this so wording stays DRY. The TIM
561
- * marker is authoritative for project binding this turn (see plan §end-state).
455
+ * Shared, harness-agnostic directive text. Every start hook emits exactly this.
562
456
  */
563
457
  function buildLoadDirective(projectLabel, markerDir, bindingLabel) {
564
458
  const display = bindingLabel?.trim() || projectLabel;
@@ -1 +1 @@
1
- {"version":3,"file":"marker.js","sourceRoot":"","sources":["../src/marker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"marker.js","sourceRoot":"","sources":["../src/marker.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,gCAEC;AAED,oDAEC;AAED,gDAEC;AAYD,oDAGC;AAqBD,gCAYC;AAwDD,gEAuBC;AAKD,8CAMC;AAGD,8CAIC;AAUD,oDAkCC;AAGD,kCAkBC;AAKD,4DAmBC;AAGD,sCAEC;AAID,kCAmBC;AAGD,0CASC;AAED,kCAMC;AAsCD,4DAUC;AA6BD,wCAmCC;AAKD,gCASC;AAKD,gDAgBC;AAGD,sDAgBC;AApfD,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAC7B,oDAAsC;AACtC,iDAAyF;AAG5E,QAAA,eAAe,GAAG,cAAc,CAAC;AAC9C,+CAA8D;AAArD,+GAAA,eAAe,OAAA;AAAE,2GAAA,WAAW,OAAA;AAErC;;;;GAIG;AACU,QAAA,0BAA0B,GAAG,UAAU,CAAC;AAErD;;;;GAIG;AACU,QAAA,cAAc,GAAG,CAAC,CAAC;AAoBhC,SAAgB,UAAU,CAAC,GAAW;IACpC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,uBAAe,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,oBAAoB,CAAC,GAAW;IAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,kCAA0B,CAAC,CAAC;AACpD,CAAC;AAED,SAAgB,kBAAkB,CAAC,GAAW;IAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,2BAAY,EAAE,8BAAe,CAAC,CAAC;AACvD,CAAC;AAED,kEAAkE;AAClE,MAAM,qBAAqB,GAAG,eAAe,CAAC;AAE9C;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAEhD,SAAgB,oBAAoB,CAAC,KAAa;IAChD,IAAI,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAClD,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACU,QAAA,WAAW,GAAG,OAAO,CAAC;AAEnC;;;;;;;;;;;GAWG;AACH,SAAgB,UAAU,CAAC,GAAW;IACpC,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,IAAI,GAAY,CAAC;QACjB,IAAI,CAAC;YACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,GAAW;IACvC,MAAM,CAAC,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,GAAG,GAAG,GAA8B,CAAC;IAC3C,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAChF,OAAO,CAAC,IAAI,CACV,eAAe,kCAA0B,+BAA+B;YACtE,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,wCAAwC,CAClE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO;QACL,OAAO,EAAE,sBAAc;QACvB,OAAO,EAAE,GAAG,CAAC,OAAO;KACrB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,GAAY;IACnC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,GAAG,GAAG,GAA8B,CAAC;IAE3C,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7E,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,IAAI,CACV,yDAAyD,GAAG,CAAC,OAAO,MAAM;YACxE,6DAA6D,CAChE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,OAAO,EAAE,sBAAc;QACvB,OAAO,EAAE,GAAG,CAAC,OAAO;KACrB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,0BAA0B,CAC9C,MAAqB,EACrB,KAA4C;IAE5C,IAAI,MAAM,CAAC,OAAO,KAAK,mBAAW;QAAE,OAAO,MAAM,CAAC;IAClD,IAAI,QAAQ,CAAC;IACb,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CACV,uDAAuD,MAAM,CAAC,OAAO,IAAI;YACvE,WAAY,GAAa,CAAC,OAAO,IAAI,GAAG,sCAAsC,CACjF,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAChC,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;IAChD,CAAC;IACD,OAAO,CAAC,IAAI,CACV,6DAA6D,MAAM,CAAC,OAAO,IAAI;QAC7E,8DAA8D,CACjE,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,GAAW;IAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC;QAAC,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,iCAAiC,CAAC,CAAC;IACzF,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,IAAI,CAAC;QAAC,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,CAAC;IACjE,OAAO,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;AACpE,CAAC;AAED,mFAAmF;AACnF,SAAgB,iBAAiB,CAAC,QAAgB,EAAE,OAAe;IACjE,MAAM,GAAG,GAAG,GAAG,QAAQ,QAAQ,OAAO,CAAC,GAAG,EAAE,CAAC;IAC7C,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC/B,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED,MAAa,4BAA6B,SAAQ,KAAK;IACzB;IAA5B,YAA4B,QAAgB;QAC1C,KAAK,CAAC,gCAAgC,QAAQ,EAAE,CAAC,CAAC;QADxB,aAAQ,GAAR,QAAQ,CAAQ;QAE1C,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;IAC7C,CAAC;CACF;AALD,oEAKC;AAED,iEAAiE;AACjE,SAAgB,oBAAoB,CAAC,GAAW,EAAE,MAA0B;IAC1E,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,8EAA8E,MAAM,CAAC,OAAO,MAAM;YAChG,gEAAgE,CACnE,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,GAAG,QAAQ,QAAQ,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;IACpE,MAAM,QAAQ,GAAkB,EAAE,OAAO,EAAE,sBAAc,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IACrF,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,IAAI,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,QAAQ,GAAG,IAAI,CAAC;QAChB,IAAI,CAAC;YACH,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrD,MAAM,IAAI,4BAA4B,CAAC,QAAQ,CAAC,CAAC;YACnD,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;YAAS,CAAC;QACT,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAClC,CAAC;YAAC,MAAM,CAAC;gBACP,2EAA2E;YAC7E,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,uEAAuE;AACvE,SAAgB,WAAW,CAAC,GAAW,EAAE,MAA0B;IACjE,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CACV,8CAA8C,uBAAe,uBAAuB;YAClF,IAAI,GAAG,wEAAwE,CAClF,CAAC;QACF,OAAO;IACT,CAAC;IACD,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,OAAO,CAAC,IAAI,CACV,qEAAqE,MAAM,CAAC,OAAO,MAAM;YACvF,gEAAgE,CACnE,CAAC;QACF,OAAO;IACT,CAAC;IACD,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,QAAQ,GAAkB,EAAE,OAAO,EAAE,sBAAc,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IACrF,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,SAAgB,wBAAwB,CACtC,QAAgB,EAChB,YAAoB,EACpB,OAA6C;IAE7C,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,IAAI,CACV,+EAA+E;YAC7E,IAAI,YAAY,+CAA+C,CAClE,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,EAAE;QACvC,GAAG,uCAA+B;QAClC,GAAG,OAAO,EAAE,WAAW;KACxB,CAAC,CAAC;IACH,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,wDAAwD;AACxD,SAAgB,aAAa,CAAC,GAAW;IACvC,OAAO,cAAc,CAAC,GAAG,EAAE,wCAAgC,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC;AAC/E,CAAC;AAED,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAEpB,SAAgB,WAAW,CAAC,GAAW;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,2BAAY,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,CAAC;QACH,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7F,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAmB,CAAC;YACxE,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,0BAAW,EAAE,CAAC;gBACtC,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC7E,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,qCAAqC;QACvC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,uEAAuE;AACvE,SAAgB,eAAe,CAAC,GAAW;IACzC,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAmB,CAAC;QACxE,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,0BAAW,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAgB,WAAW,CAAC,GAAW;IACrC,IAAI,CAAC;QACH,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;AACH,CAAC;AAmBD,8FAA8F;AACjF,QAAA,+BAA+B,GAA0B;IACpE,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF,mEAAmE;AACtD,QAAA,gCAAgC,GAA0B;IACrE,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,KAAK;CACjB,CAAC;AAEF,SAAS,YAAY,CAAC,GAAW,EAAE,IAAY;IAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED,uEAAuE;AACvE,SAAgB,wBAAwB;IACtC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC;IACxD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,GAAG,CAAC;IACtD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,GAAG,CAAC;IAC5D,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACxD,OAAO;QACL,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,kBAAkB,CAAC,UAA4B;IACtD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CACrC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAC1E,CAAC;AACJ,CAAC;AAID,SAAS,gBAAgB,CAAC,GAAW;IACnC,IAAI,iBAAiB,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAC9B,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACzB,CAAC;IACD,MAAM,SAAS,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,SAAS;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;IACjD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAC5B,QAAgB,EAChB,SAAgC,uCAA+B;IAE/D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;IACrC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC;IAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE7C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAC/C,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrE,IAAI,GAAG,GAAG,aAAa,CAAC;IACxB,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACtC,IAAI,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC;YAAE,MAAM;QACnF,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QACpC,IAAI,SAAS;YAAE,OAAO,IAAI,CAAC;QAC3B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,aAAa,CAAC;IACjD,CAAC,CAAC,CAAC;IACH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,QAAgB,EAAE,OAA2B;IACtE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,cAAc,CAAC,QAAQ,EAAE,wCAAgC,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,cAAc,CAAC,QAAQ,EAAE;QAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;QAC/B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK;QACrC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzD,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAChC,YAAoB,EACpB,SAAiB,EACjB,YAAqB;IAErB,MAAM,OAAO,GAAG,YAAY,EAAE,IAAI,EAAE,IAAI,YAAY,CAAC;IACrD,OAAO;QACL,mDAAmD,SAAS,IAAI;QAChE,wCAAwC,OAAO,GAAG;QAClD,EAAE;QACF,wCAAwC,YAAY,6BAA6B;YAC/E,yEAAyE;YACzE,yEAAyE;YACzE,0EAA0E;YAC1E,gDAAgD;KACnD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,sFAAsF;AACtF,SAAgB,qBAAqB,CACnC,YAAoB,EACpB,GAAW,EACX,YAAqB;IAErB,MAAM,OAAO,GAAG,YAAY,EAAE,IAAI,EAAE,IAAI,YAAY,CAAC;IACrD,OAAO;QACL,mCAAmC,OAAO,oBAAoB,GAAG,IAAI;QACrE,wCAAwC,OAAO,GAAG;QAClD,EAAE;QACF,wCAAwC,YAAY,6BAA6B;YAC/E,yEAAyE;YACzE,gFAAgF;YAChF,uFAAuF;YACvF,gBAAgB;KACnB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"phantom-recovery.d.ts","sourceRoot":"","sources":["../src/phantom-recovery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AAgCrB;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA8BxB;AAED,iEAAiE;AACjE,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,aAAa,EACrB,cAAc,EAAE,MAAM,GACrB,aAAa,CAEf"}
1
+ {"version":3,"file":"phantom-recovery.d.ts","sourceRoot":"","sources":["../src/phantom-recovery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AAyBrB;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA8BxB;AAED,iEAAiE;AACjE,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,aAAa,EACrB,cAAc,EAAE,MAAM,GACrB,aAAa,CAEf"}
@@ -55,14 +55,7 @@ function readTimJsonProjectLabel(dir) {
55
55
  }
56
56
  }
57
57
  async function labelIfValidProject(store, label) {
58
- const validated = await (0, marker_js_1.validateMarkerAgainstStore)({
59
- version: 2,
60
- project: label,
61
- session: '',
62
- exchanges: 0,
63
- batch_size: 5,
64
- batches_summarized: 0,
65
- }, store);
58
+ const validated = await (0, marker_js_1.validateMarkerAgainstStore)({ version: 3, project: label }, store);
66
59
  return validated?.project ?? null;
67
60
  }
68
61
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"phantom-recovery.js","sourceRoot":"","sources":["../src/phantom-recovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"phantom-recovery.js","sourceRoot":"","sources":["../src/phantom-recovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { TimStore } from 'tim-store';
2
+ import { type ProjectCreationDeps } from './project-creation.js';
3
+ export type ProjectBindingStatus = 'bound' | 'unbound' | 'label-mismatch' | 'path-missing' | 'no-path';
4
+ export interface ProjectBindingFinding {
5
+ label: string;
6
+ path?: string;
7
+ status: ProjectBindingStatus;
8
+ markerLabel?: string;
9
+ }
10
+ export interface StalePathFinding {
11
+ label: string;
12
+ path: string;
13
+ device: string;
14
+ lastSeenAt?: string;
15
+ }
16
+ export interface BindingReport {
17
+ projects: ProjectBindingFinding[];
18
+ stalePaths: StalePathFinding[];
19
+ }
20
+ export interface BindOutcome {
21
+ label: string;
22
+ outcome: 'bound' | 'already-bound' | 'failed';
23
+ detail?: string;
24
+ }
25
+ export declare function bindingDeviceId(): string;
26
+ /** Classify a project's on-disk binding from store metadata.path. */
27
+ export declare function classifyProjectPathBinding(label: string, projectPath: string | undefined): Pick<ProjectBindingFinding, 'status' | 'markerLabel'>;
28
+ export declare function collectBindingReport(store: TimStore): Promise<BindingReport>;
29
+ export declare function formatBindingFindingLine(finding: ProjectBindingFinding): string;
30
+ export declare function formatStalePathLine(finding: StalePathFinding): string;
31
+ export declare function formatBindOutcomeLine(outcome: BindOutcome): string;
32
+ export declare function bindUnboundBindings(store: TimStore, findings: ProjectBindingFinding[], deps?: Partial<ProjectCreationDeps>): Promise<BindOutcome[]>;
33
+ //# sourceMappingURL=project-binding-health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-binding-health.d.ts","sourceRoot":"","sources":["../src/project-binding-health.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,QAAQ,EAIT,MAAM,WAAW,CAAC;AAEnB,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,oBAAoB,GAC5B,OAAO,GACP,SAAS,GACT,gBAAgB,GAChB,cAAc,GACd,SAAS,CAAC;AAEd,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,oBAAoB,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAClC,UAAU,EAAE,gBAAgB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,GAAG,eAAe,GAAG,QAAQ,CAAC;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,qEAAqE;AACrE,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,IAAI,CAAC,qBAAqB,EAAE,QAAQ,GAAG,aAAa,CAAC,CAkBvD;AAED,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAuClF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,CAU/E;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAGrE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAKlE;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,qBAAqB,EAAE,EACjC,IAAI,GAAE,OAAO,CAAC,mBAAmB,CAAM,GACtC,OAAO,CAAC,WAAW,EAAE,CAAC,CAuBxB"}
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.bindingDeviceId = bindingDeviceId;
37
+ exports.classifyProjectPathBinding = classifyProjectPathBinding;
38
+ exports.collectBindingReport = collectBindingReport;
39
+ exports.formatBindingFindingLine = formatBindingFindingLine;
40
+ exports.formatStalePathLine = formatStalePathLine;
41
+ exports.formatBindOutcomeLine = formatBindOutcomeLine;
42
+ exports.bindUnboundBindings = bindUnboundBindings;
43
+ const fs = __importStar(require("node:fs"));
44
+ const os = __importStar(require("node:os"));
45
+ const path = __importStar(require("node:path"));
46
+ const tim_store_1 = require("tim-store");
47
+ const marker_js_1 = require("./marker.js");
48
+ const project_creation_js_1 = require("./project-creation.js");
49
+ function bindingDeviceId() {
50
+ return os.hostname();
51
+ }
52
+ /** Classify a project's on-disk binding from store metadata.path. */
53
+ function classifyProjectPathBinding(label, projectPath) {
54
+ if (typeof projectPath !== 'string' || projectPath.trim().length === 0) {
55
+ return { status: 'no-path' };
56
+ }
57
+ const resolved = path.resolve(projectPath);
58
+ if (!fs.existsSync(resolved)) {
59
+ return { status: 'path-missing' };
60
+ }
61
+ const marker = (0, marker_js_1.readMarker)(resolved);
62
+ if (!marker) {
63
+ return { status: 'unbound' };
64
+ }
65
+ if (marker.project === label) {
66
+ return { status: 'bound' };
67
+ }
68
+ return { status: 'label-mismatch', markerLabel: marker.project };
69
+ }
70
+ async function collectBindingReport(store) {
71
+ const projects = [];
72
+ const stalePaths = [];
73
+ const device = bindingDeviceId();
74
+ const now = Date.now();
75
+ for (const row of await store.listProjects()) {
76
+ const entry = await store.read(row.id);
77
+ if (!entry || entry.metadata.kind !== 'project')
78
+ continue;
79
+ const projectPath = typeof entry.metadata.path === 'string' ? entry.metadata.path : undefined;
80
+ const classification = classifyProjectPathBinding(row.label, projectPath);
81
+ projects.push({
82
+ label: row.label,
83
+ path: projectPath,
84
+ ...classification,
85
+ });
86
+ for (const pathRow of await (0, tim_store_1.listProjectPathRows)(store, row.label)) {
87
+ if (pathRow.metadata.device !== device)
88
+ continue;
89
+ if (!(0, tim_store_1.isStalePathRow)(pathRow, now, tim_store_1.DEFAULT_STALE_PATH_MAX_AGE_DAYS))
90
+ continue;
91
+ const inventoryPath = typeof pathRow.metadata.path === 'string' ? pathRow.metadata.path : '';
92
+ stalePaths.push({
93
+ label: row.label,
94
+ path: inventoryPath,
95
+ device,
96
+ lastSeenAt: typeof pathRow.metadata.last_seen_at === 'string'
97
+ ? pathRow.metadata.last_seen_at
98
+ : undefined,
99
+ });
100
+ }
101
+ }
102
+ projects.sort((a, b) => a.label.localeCompare(b.label));
103
+ stalePaths.sort((a, b) => a.label.localeCompare(b.label) || a.path.localeCompare(b.path));
104
+ return { projects, stalePaths };
105
+ }
106
+ function formatBindingFindingLine(finding) {
107
+ switch (finding.status) {
108
+ case 'no-path':
109
+ return ` ${finding.label} no-path`;
110
+ case 'path-missing':
111
+ return ` ${finding.label} ${finding.path} path-missing`;
112
+ case 'label-mismatch':
113
+ return ` ${finding.label} ${finding.path} label-mismatch (marker ${finding.markerLabel})`;
114
+ }
115
+ return ` ${finding.label} ${finding.path} ${finding.status}`;
116
+ }
117
+ function formatStalePathLine(finding) {
118
+ const seen = finding.lastSeenAt ?? 'unknown';
119
+ return ` stale ${finding.label} ${finding.path} (${finding.device}, last seen ${seen})`;
120
+ }
121
+ function formatBindOutcomeLine(outcome) {
122
+ if (outcome.outcome === 'failed') {
123
+ return ` ${outcome.label}: failed (${outcome.detail ?? 'unknown error'})`;
124
+ }
125
+ return ` ${outcome.label}: ${outcome.outcome}`;
126
+ }
127
+ async function bindUnboundBindings(store, findings, deps = {}) {
128
+ const outcomes = [];
129
+ for (const finding of findings) {
130
+ if (finding.status !== 'unbound' || !finding.path)
131
+ continue;
132
+ try {
133
+ const result = await (0, project_creation_js_1.recoverProjectBinding)(store, { label: finding.label, path: finding.path }, deps);
134
+ outcomes.push({
135
+ label: finding.label,
136
+ outcome: result.alreadyBound ? 'already-bound' : 'bound',
137
+ });
138
+ }
139
+ catch (error) {
140
+ outcomes.push({
141
+ label: finding.label,
142
+ outcome: 'failed',
143
+ detail: error instanceof Error ? error.message : String(error),
144
+ });
145
+ }
146
+ }
147
+ return outcomes;
148
+ }
149
+ //# sourceMappingURL=project-binding-health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-binding-health.js","sourceRoot":"","sources":["../src/project-binding-health.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,6 @@ export interface ProjectCreationDeps {
27
27
  export interface RecoverProjectBindingArgs {
28
28
  label: string;
29
29
  path: string;
30
- sessionId?: string;
31
30
  }
32
31
  export interface RecoverProjectBindingResult {
33
32
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"project-creation.d.ts","sourceRoot":"","sources":["../src/project-creation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAIL,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,UAAU,iKAAiK,CAAC;AAEzL,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,+BAAgC,SAAQ,KAAK;IAC5D,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,0BAA2B,SAAQ,KAAK;IACvD,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,qBAAqB,GAC7B,+BAA+B,GAC/B,0BAA0B,CAAC;AAE/B,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,cAAc,EAAE,OAAO,oBAAoB,CAAC;IAC5C,SAAS,EAAE,OAAO,yBAAyB,CAAC;CAC7C;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,qBAAa,kCAAmC,SAAQ,KAAK;aAGzC,YAAY,EAAE,MAAM;aACpB,WAAW,EAAE,MAAM;gBAFnC,OAAO,EAAE,MAAM,EACC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM;CAKtC;AAQD,wBAAgB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,GAAG,aAAa,CAY/E;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAkB5D;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CASjE;AAmFD,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,mBAAmB,EACzB,IAAI,GAAE,OAAO,CAAC,mBAAmB,CAAM,GACtC,OAAO,CAAC,qBAAqB,CAAC,CA6EhC;AAED,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,yBAAyB,EAC/B,IAAI,GAAE,OAAO,CAAC,mBAAmB,CAAM,GACtC,OAAO,CAAC,2BAA2B,CAAC,CAoDtC"}
1
+ {"version":3,"file":"project-creation.d.ts","sourceRoot":"","sources":["../src/project-creation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAwB,MAAM,WAAW,CAAC;AAC3D,OAAO,EAIL,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,UAAU,iKAAiK,CAAC;AAEzL,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,+BAAgC,SAAQ,KAAK;IAC5D,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,0BAA2B,SAAQ,KAAK;IACvD,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,qBAAqB,GAC7B,+BAA+B,GAC/B,0BAA0B,CAAC;AAE/B,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,cAAc,EAAE,OAAO,oBAAoB,CAAC;IAC5C,SAAS,EAAE,OAAO,yBAAyB,CAAC;CAC7C;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,qBAAa,kCAAmC,SAAQ,KAAK;aAGzC,YAAY,EAAE,MAAM;aACpB,WAAW,EAAE,MAAM;gBAFnC,OAAO,EAAE,MAAM,EACC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM;CAKtC;AAQD,wBAAgB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,GAAG,aAAa,CAY/E;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAkB5D;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CASjE;AAkHD,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,mBAAmB,EACzB,IAAI,GAAE,OAAO,CAAC,mBAAmB,CAAM,GACtC,OAAO,CAAC,qBAAqB,CAAC,CA+EhC;AAED,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,yBAAyB,EAC/B,IAAI,GAAE,OAAO,CAAC,mBAAmB,CAAM,GACtC,OAAO,CAAC,2BAA2B,CAAC,CAkDtC"}