@indigoai-us/hq-cloud 6.2.7 → 6.3.0

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 (40) hide show
  1. package/dist/bin/sync-runner.d.ts.map +1 -1
  2. package/dist/bin/sync-runner.js +20 -1
  3. package/dist/bin/sync-runner.js.map +1 -1
  4. package/dist/bin/sync-runner.test.js +61 -0
  5. package/dist/bin/sync-runner.test.js.map +1 -1
  6. package/dist/cli/reindex.d.ts +8 -0
  7. package/dist/cli/reindex.d.ts.map +1 -1
  8. package/dist/cli/reindex.js +222 -198
  9. package/dist/cli/reindex.js.map +1 -1
  10. package/dist/cli/reindex.test.js +35 -0
  11. package/dist/cli/reindex.test.js.map +1 -1
  12. package/dist/cli/rescue.d.ts.map +1 -1
  13. package/dist/cli/rescue.js +39 -16
  14. package/dist/cli/rescue.js.map +1 -1
  15. package/dist/cli/rescue.reindex.test.js +15 -2
  16. package/dist/cli/rescue.reindex.test.js.map +1 -1
  17. package/dist/cli/sync.d.ts.map +1 -1
  18. package/dist/cli/sync.js +3 -1
  19. package/dist/cli/sync.js.map +1 -1
  20. package/dist/cli/sync.test.js +2 -1
  21. package/dist/cli/sync.test.js.map +1 -1
  22. package/dist/operation-lock.d.ts +100 -0
  23. package/dist/operation-lock.d.ts.map +1 -0
  24. package/dist/operation-lock.js +256 -0
  25. package/dist/operation-lock.js.map +1 -0
  26. package/dist/operation-lock.test.d.ts +5 -0
  27. package/dist/operation-lock.test.d.ts.map +1 -0
  28. package/dist/operation-lock.test.js +140 -0
  29. package/dist/operation-lock.test.js.map +1 -0
  30. package/package.json +1 -1
  31. package/src/bin/sync-runner.test.ts +77 -0
  32. package/src/bin/sync-runner.ts +22 -1
  33. package/src/cli/reindex.test.ts +45 -0
  34. package/src/cli/reindex.ts +36 -0
  35. package/src/cli/rescue.reindex.test.ts +17 -2
  36. package/src/cli/rescue.ts +40 -15
  37. package/src/cli/sync.test.ts +2 -1
  38. package/src/cli/sync.ts +3 -1
  39. package/src/operation-lock.test.ts +162 -0
  40. package/src/operation-lock.ts +293 -0
@@ -17,6 +17,7 @@
17
17
  import { spawnSync } from "child_process";
18
18
  import * as fs from "fs";
19
19
  import * as path from "path";
20
+ import { acquireOperationLock, OperationLockedError, OPERATION_LOCKED_EXIT, } from "../operation-lock.js";
20
21
  // --- small fs helpers (each mirrors a bash test operator) -------------------
21
22
  /** `[ -d "$p" ]` — exists and is a directory (follows symlinks). */
22
23
  function isDir(p) {
@@ -112,240 +113,263 @@ export function reindex(opts = {}) {
112
113
  return { status: 1 };
113
114
  }
114
115
  const root = path.resolve(rawRoot);
115
- fs.mkdirSync(path.join(root, ".claude", "skills"), { recursive: true });
116
- // --- Build (namespace, src_rel) pairs -------------------------------------
117
- const pairs = [];
118
- const addNs = (ns, srcRel) => {
119
- if (isDir(path.join(root, srcRel)))
120
- pairs.push({ ns, srcRel });
121
- };
122
- for (const slug of globEntries(path.join(root, "companies"))) {
123
- if (isDir(path.join(root, "companies", slug))) {
124
- addNs(slug, `companies/${slug}/skills`);
116
+ // Acquire the per-root operation lock unless an internal caller (sync/rescue,
117
+ // which already hold it) opted out. A live holder → refuse fast with the
118
+ // holder's command + PID. The whole body runs inside the try so the lock is
119
+ // released on every exit path (the process-level signal/exit hooks are the
120
+ // crash backstop).
121
+ let opLock = null;
122
+ if (!opts.skipLock) {
123
+ try {
124
+ opLock = acquireOperationLock(root, "reindex");
125
125
  }
126
- }
127
- addNs("core", "core/skills");
128
- addNs("personal", "personal/skills");
129
- for (const pack of globEntries(path.join(root, "core", "packages"))) {
130
- if (isDir(path.join(root, "core", "packages", pack))) {
131
- addNs(pack, `core/packages/${pack}/skills`);
126
+ catch (err) {
127
+ if (err instanceof OperationLockedError) {
128
+ warn(err.message);
129
+ return { status: OPERATION_LOCKED_EXIT };
130
+ }
131
+ throw err;
132
132
  }
133
133
  }
134
- // --- Cleanup pass A: drop legacy .claude/commands/<ns>/<skill>.md links ----
135
- const commandsDir = path.join(root, ".claude", "commands");
136
- if (isDir(commandsDir)) {
137
- for (const nsName of globEntries(commandsDir)) {
138
- const cmdNsDir = path.join(commandsDir, nsName);
139
- // Only real directories (bash `*/`); folder-level symlinks are left for
140
- // a human to resolve. lstat().isDirectory() is false for a symlink, so
141
- // this single check covers both bash guards.
142
- const st = lstatOrNull(cmdNsDir);
143
- if (!st || !st.isDirectory())
134
+ try {
135
+ fs.mkdirSync(path.join(root, ".claude", "skills"), { recursive: true });
136
+ // --- Build (namespace, src_rel) pairs -------------------------------------
137
+ const pairs = [];
138
+ const addNs = (ns, srcRel) => {
139
+ if (isDir(path.join(root, srcRel)))
140
+ pairs.push({ ns, srcRel });
141
+ };
142
+ for (const slug of globEntries(path.join(root, "companies"))) {
143
+ if (isDir(path.join(root, "companies", slug))) {
144
+ addNs(slug, `companies/${slug}/skills`);
145
+ }
146
+ }
147
+ addNs("core", "core/skills");
148
+ addNs("personal", "personal/skills");
149
+ for (const pack of globEntries(path.join(root, "core", "packages"))) {
150
+ if (isDir(path.join(root, "core", "packages", pack))) {
151
+ addNs(pack, `core/packages/${pack}/skills`);
152
+ }
153
+ }
154
+ // --- Cleanup pass A: drop legacy .claude/commands/<ns>/<skill>.md links ----
155
+ const commandsDir = path.join(root, ".claude", "commands");
156
+ if (isDir(commandsDir)) {
157
+ for (const nsName of globEntries(commandsDir)) {
158
+ const cmdNsDir = path.join(commandsDir, nsName);
159
+ // Only real directories (bash `*/`); folder-level symlinks are left for
160
+ // a human to resolve. lstat().isDirectory() is false for a symlink, so
161
+ // this single check covers both bash guards.
162
+ const st = lstatOrNull(cmdNsDir);
163
+ if (!st || !st.isDirectory())
164
+ continue;
165
+ for (const f of globEntries(cmdNsDir)) {
166
+ if (!f.endsWith(".md"))
167
+ continue;
168
+ const fp = path.join(cmdNsDir, f);
169
+ const fst = lstatOrNull(fp);
170
+ if (!fst || !fst.isSymbolicLink())
171
+ continue;
172
+ const target = readlinkOrNull(fp);
173
+ if (target && isLegacyCommandTarget(target)) {
174
+ try {
175
+ fs.rmSync(fp);
176
+ }
177
+ catch {
178
+ /* best-effort */
179
+ }
180
+ }
181
+ }
182
+ // rmdir if empty; ignore "directory not empty".
183
+ try {
184
+ fs.rmdirSync(cmdNsDir);
185
+ }
186
+ catch {
187
+ /* not empty / gone — fine */
188
+ }
189
+ }
190
+ }
191
+ // --- Skill wrapper creation -----------------------------------------------
192
+ const expectedWrappers = new Set();
193
+ const seen = new Set();
194
+ for (const { ns, srcRel } of pairs) {
195
+ // First writer for a namespace wins.
196
+ if (seen.has(ns)) {
197
+ warn(`reindex: namespace '${ns}' already claimed by an earlier source; skipping ${srcRel}`);
144
198
  continue;
145
- for (const f of globEntries(cmdNsDir)) {
146
- if (!f.endsWith(".md"))
199
+ }
200
+ seen.add(ns);
201
+ const srcAbs = path.join(root, srcRel);
202
+ for (const skillName of globEntries(srcAbs)) {
203
+ const skillPath = path.join(srcAbs, skillName);
204
+ if (!isDir(skillPath))
205
+ continue;
206
+ // Skip `_shared`, `_template`, etc. (dotfiles already excluded by glob).
207
+ if (skillName.startsWith("_"))
208
+ continue;
209
+ if (!isFile(path.join(skillPath, "SKILL.md")))
147
210
  continue;
148
- const fp = path.join(cmdNsDir, f);
149
- const fst = lstatOrNull(fp);
150
- if (!fst || !fst.isSymbolicLink())
211
+ const wrapperName = `${ns}:${skillName}`;
212
+ const wrapper = path.join(root, ".claude", "skills", wrapperName);
213
+ expectedWrappers.add(wrapperName);
214
+ const wst = lstatOrNull(wrapper);
215
+ // If something non-directory, non-symlink occupies the slot, bail.
216
+ if (wst && !wst.isSymbolicLink() && !wst.isDirectory()) {
217
+ warn(`reindex: ${wrapper} exists and is not a directory; skipping`);
151
218
  continue;
152
- const target = readlinkOrNull(fp);
153
- if (target && isLegacyCommandTarget(target)) {
219
+ }
220
+ // If it's a symlink (legacy directory-symlink form), replace it with a
221
+ // real directory of per-file symlinks.
222
+ if (wst && wst.isSymbolicLink()) {
154
223
  try {
155
- fs.rmSync(fp);
224
+ fs.rmSync(wrapper);
225
+ }
226
+ catch {
227
+ /* best-effort */
228
+ }
229
+ }
230
+ fs.mkdirSync(wrapper, { recursive: true });
231
+ // Symlink every (non-hidden) entry in the source skill folder. The
232
+ // wrapper lives three levels below REPO_ROOT.
233
+ for (const entry of globEntries(skillPath)) {
234
+ const entryPath = path.join(skillPath, entry);
235
+ if (!existsFollow(entryPath))
236
+ continue;
237
+ const linkPath = path.join(wrapper, entry);
238
+ const relativeTarget = `../../../${srcRel}/${skillName}/${entry}`;
239
+ const lst = lstatOrNull(linkPath);
240
+ if (lst && lst.isSymbolicLink()) {
241
+ const current = readlinkOrNull(linkPath);
242
+ if (current === relativeTarget)
243
+ continue;
244
+ warn(`reindex: .claude/skills/${wrapperName}/${entry} already points to '${current}' (expected '${relativeTarget}'); leaving alone`);
245
+ continue;
246
+ }
247
+ else if (lst) {
248
+ warn(`reindex: ${linkPath} already exists and is not a symlink; skipping`);
249
+ continue;
250
+ }
251
+ fs.symlinkSync(relativeTarget, linkPath);
252
+ }
253
+ // Prune symlinks in the wrapper whose source entry no longer exists.
254
+ for (const entry of globEntries(wrapper)) {
255
+ const linkPath = path.join(wrapper, entry);
256
+ const lst = lstatOrNull(linkPath);
257
+ if (!lst || !lst.isSymbolicLink())
258
+ continue;
259
+ if (existsFollow(linkPath))
260
+ continue;
261
+ try {
262
+ fs.rmSync(linkPath);
156
263
  }
157
264
  catch {
158
265
  /* best-effort */
159
266
  }
160
267
  }
161
268
  }
162
- // rmdir if empty; ignore "directory not empty".
163
- try {
164
- fs.rmdirSync(cmdNsDir);
269
+ }
270
+ // --- Cleanup pass B: drop orphan <ns>:<skill> wrappers --------------------
271
+ const skillsDir = path.join(root, ".claude", "skills");
272
+ for (const entry of globEntries(skillsDir)) {
273
+ const entryPath = path.join(skillsDir, entry);
274
+ const lst = lstatOrNull(entryPath);
275
+ if (!lst)
276
+ continue; // accept broken symlinks (lstat still succeeds)
277
+ if (!entry.includes(":"))
278
+ continue; // not a namespaced wrapper
279
+ if (expectedWrappers.has(entry))
280
+ continue; // maintained this run
281
+ // A wrapper is "managed" only when its namespace prefix matches the
282
+ // namespace encoded in its symlink target — this distinguishes
283
+ // script-produced wrappers from hand-authored composite wrappers.
284
+ const ns = entry.slice(0, entry.indexOf(":"));
285
+ const matchTarget = (t, p) => {
286
+ if (!t)
287
+ return false;
288
+ if (t.startsWith(`${p}/personal/skills/`))
289
+ return ns === "personal";
290
+ if (t.startsWith(`${p}/core/skills/`))
291
+ return ns === "core";
292
+ if (t.startsWith(`${p}/companies/${ns}/skills/`))
293
+ return true;
294
+ if (t.startsWith(`${p}/core/packages/${ns}/skills/`))
295
+ return true;
296
+ return false;
297
+ };
298
+ let isManaged = false;
299
+ if (lst.isSymbolicLink()) {
300
+ // (a) directory-style symlink wrapper (older shape): 2-level target.
301
+ isManaged = matchTarget(readlinkOrNull(entryPath), "../..");
165
302
  }
166
- catch {
167
- /* not empty / gone fine */
303
+ else if (lst.isDirectory()) {
304
+ // (b) real directory of per-file symlinks (current shape): 3-level.
305
+ for (const f of globEntries(entryPath)) {
306
+ const fp = path.join(entryPath, f);
307
+ const fst = lstatOrNull(fp);
308
+ if (!fst || !fst.isSymbolicLink())
309
+ continue;
310
+ if (matchTarget(readlinkOrNull(fp), "../../..")) {
311
+ isManaged = true;
312
+ break;
313
+ }
314
+ }
168
315
  }
169
- }
170
- }
171
- // --- Skill wrapper creation -----------------------------------------------
172
- const expectedWrappers = new Set();
173
- const seen = new Set();
174
- for (const { ns, srcRel } of pairs) {
175
- // First writer for a namespace wins.
176
- if (seen.has(ns)) {
177
- warn(`reindex: namespace '${ns}' already claimed by an earlier source; skipping ${srcRel}`);
178
- continue;
179
- }
180
- seen.add(ns);
181
- const srcAbs = path.join(root, srcRel);
182
- for (const skillName of globEntries(srcAbs)) {
183
- const skillPath = path.join(srcAbs, skillName);
184
- if (!isDir(skillPath))
185
- continue;
186
- // Skip `_shared`, `_template`, etc. (dotfiles already excluded by glob).
187
- if (skillName.startsWith("_"))
188
- continue;
189
- if (!isFile(path.join(skillPath, "SKILL.md")))
316
+ if (!isManaged)
190
317
  continue;
191
- const wrapperName = `${ns}:${skillName}`;
192
- const wrapper = path.join(root, ".claude", "skills", wrapperName);
193
- expectedWrappers.add(wrapperName);
194
- const wst = lstatOrNull(wrapper);
195
- // If something non-directory, non-symlink occupies the slot, bail.
196
- if (wst && !wst.isSymbolicLink() && !wst.isDirectory()) {
197
- warn(`reindex: ${wrapper} exists and is not a directory; skipping`);
198
- continue;
199
- }
200
- // If it's a symlink (legacy directory-symlink form), replace it with a
201
- // real directory of per-file symlinks.
202
- if (wst && wst.isSymbolicLink()) {
203
- try {
204
- fs.rmSync(wrapper);
318
+ // Managed-namespace wrapper with no corresponding live source → drop.
319
+ try {
320
+ if (lst.isSymbolicLink()) {
321
+ fs.rmSync(entryPath);
205
322
  }
206
- catch {
207
- /* best-effort */
323
+ else if (lst.isDirectory()) {
324
+ fs.rmSync(entryPath, { recursive: true, force: true });
208
325
  }
209
326
  }
210
- fs.mkdirSync(wrapper, { recursive: true });
211
- // Symlink every (non-hidden) entry in the source skill folder. The
212
- // wrapper lives three levels below REPO_ROOT.
213
- for (const entry of globEntries(skillPath)) {
214
- const entryPath = path.join(skillPath, entry);
327
+ catch {
328
+ /* best-effort */
329
+ }
330
+ }
331
+ // --- Personal type mirroring ----------------------------------------------
332
+ // Mirror personal/<type>/<entry> into core/<type>/<entry> as symlinks.
333
+ for (const type of ["knowledge", "policies", "workers", "settings"]) {
334
+ const personalDir = path.join(root, "personal", type);
335
+ const coreDir = path.join(root, "core", type);
336
+ if (!isDir(personalDir))
337
+ continue;
338
+ fs.mkdirSync(coreDir, { recursive: true });
339
+ for (const entry of globEntries(personalDir)) {
340
+ const entryPath = path.join(personalDir, entry);
215
341
  if (!existsFollow(entryPath))
216
342
  continue;
217
- const linkPath = path.join(wrapper, entry);
218
- const relativeTarget = `../../../${srcRel}/${skillName}/${entry}`;
343
+ const linkPath = path.join(coreDir, entry);
344
+ const relativeTarget = `../../personal/${type}/${entry}`;
219
345
  const lst = lstatOrNull(linkPath);
220
346
  if (lst && lst.isSymbolicLink()) {
221
347
  const current = readlinkOrNull(linkPath);
222
348
  if (current === relativeTarget)
223
349
  continue;
224
- warn(`reindex: .claude/skills/${wrapperName}/${entry} already points to '${current}' (expected '${relativeTarget}'); leaving alone`);
350
+ warn(`reindex: core/${type}/${entry} already points to '${current}' (expected '${relativeTarget}'); leaving alone`);
225
351
  continue;
226
352
  }
227
353
  else if (lst) {
228
- warn(`reindex: ${linkPath} already exists and is not a symlink; skipping`);
354
+ warn(`reindex: core/${type}/${entry} already exists and is not a symlink; skipping`);
229
355
  continue;
230
356
  }
231
357
  fs.symlinkSync(relativeTarget, linkPath);
232
358
  }
233
- // Prune symlinks in the wrapper whose source entry no longer exists.
234
- for (const entry of globEntries(wrapper)) {
235
- const linkPath = path.join(wrapper, entry);
236
- const lst = lstatOrNull(linkPath);
237
- if (!lst || !lst.isSymbolicLink())
238
- continue;
239
- if (existsFollow(linkPath))
240
- continue;
241
- try {
242
- fs.rmSync(linkPath);
243
- }
244
- catch {
245
- /* best-effort */
246
- }
247
- }
248
359
  }
249
- }
250
- // --- Cleanup pass B: drop orphan <ns>:<skill> wrappers --------------------
251
- const skillsDir = path.join(root, ".claude", "skills");
252
- for (const entry of globEntries(skillsDir)) {
253
- const entryPath = path.join(skillsDir, entry);
254
- const lst = lstatOrNull(entryPath);
255
- if (!lst)
256
- continue; // accept broken symlinks (lstat still succeeds)
257
- if (!entry.includes(":"))
258
- continue; // not a namespaced wrapper
259
- if (expectedWrappers.has(entry))
260
- continue; // maintained this run
261
- // A wrapper is "managed" only when its namespace prefix matches the
262
- // namespace encoded in its symlink target — this distinguishes
263
- // script-produced wrappers from hand-authored composite wrappers.
264
- const ns = entry.slice(0, entry.indexOf(":"));
265
- const matchTarget = (t, p) => {
266
- if (!t)
267
- return false;
268
- if (t.startsWith(`${p}/personal/skills/`))
269
- return ns === "personal";
270
- if (t.startsWith(`${p}/core/skills/`))
271
- return ns === "core";
272
- if (t.startsWith(`${p}/companies/${ns}/skills/`))
273
- return true;
274
- if (t.startsWith(`${p}/core/packages/${ns}/skills/`))
275
- return true;
276
- return false;
277
- };
278
- let isManaged = false;
279
- if (lst.isSymbolicLink()) {
280
- // (a) directory-style symlink wrapper (older shape): 2-level target.
281
- isManaged = matchTarget(readlinkOrNull(entryPath), "../..");
282
- }
283
- else if (lst.isDirectory()) {
284
- // (b) real directory of per-file symlinks (current shape): 3-level.
285
- for (const f of globEntries(entryPath)) {
286
- const fp = path.join(entryPath, f);
287
- const fst = lstatOrNull(fp);
288
- if (!fst || !fst.isSymbolicLink())
289
- continue;
290
- if (matchTarget(readlinkOrNull(fp), "../../..")) {
291
- isManaged = true;
292
- break;
293
- }
294
- }
295
- }
296
- if (!isManaged)
297
- continue;
298
- // Managed-namespace wrapper with no corresponding live source → drop.
299
- try {
300
- if (lst.isSymbolicLink()) {
301
- fs.rmSync(entryPath);
302
- }
303
- else if (lst.isDirectory()) {
304
- fs.rmSync(entryPath, { recursive: true, force: true });
305
- }
306
- }
307
- catch {
308
- /* best-effort */
309
- }
310
- }
311
- // --- Personal type mirroring ----------------------------------------------
312
- // Mirror personal/<type>/<entry> into core/<type>/<entry> as symlinks.
313
- for (const type of ["knowledge", "policies", "workers", "settings"]) {
314
- const personalDir = path.join(root, "personal", type);
315
- const coreDir = path.join(root, "core", type);
316
- if (!isDir(personalDir))
317
- continue;
318
- fs.mkdirSync(coreDir, { recursive: true });
319
- for (const entry of globEntries(personalDir)) {
320
- const entryPath = path.join(personalDir, entry);
321
- if (!existsFollow(entryPath))
322
- continue;
323
- const linkPath = path.join(coreDir, entry);
324
- const relativeTarget = `../../personal/${type}/${entry}`;
325
- const lst = lstatOrNull(linkPath);
326
- if (lst && lst.isSymbolicLink()) {
327
- const current = readlinkOrNull(linkPath);
328
- if (current === relativeTarget)
329
- continue;
330
- warn(`reindex: core/${type}/${entry} already points to '${current}' (expected '${relativeTarget}'); leaving alone`);
331
- continue;
332
- }
333
- else if (lst) {
334
- warn(`reindex: core/${type}/${entry} already exists and is not a symlink; skipping`);
335
- continue;
336
- }
337
- fs.symlinkSync(relativeTarget, linkPath);
360
+ // --- Workers registry regeneration ----------------------------------------
361
+ // Source of truth: each worker.yaml. The registry is a derived index — the
362
+ // generator (when present in the operated-on tree) keeps it in sync.
363
+ // Best-effort and idempotent; never fails the reindex.
364
+ const genScript = path.join(root, "core", "scripts", "generate-workers-registry.sh");
365
+ if (isExecutable(genScript)) {
366
+ // Route the generator's stdout+stderr to our stderr (`>&2 2>&1`).
367
+ spawnSync("bash", [genScript], { stdio: ["ignore", 2, 2] });
338
368
  }
369
+ return { status: 0 };
339
370
  }
340
- // --- Workers registry regeneration ----------------------------------------
341
- // Source of truth: each worker.yaml. The registry is a derived index — the
342
- // generator (when present in the operated-on tree) keeps it in sync.
343
- // Best-effort and idempotent; never fails the reindex.
344
- const genScript = path.join(root, "core", "scripts", "generate-workers-registry.sh");
345
- if (isExecutable(genScript)) {
346
- // Route the generator's stdout+stderr to our stderr (`>&2 2>&1`).
347
- spawnSync("bash", [genScript], { stdio: ["ignore", 2, 2] });
371
+ finally {
372
+ opLock?.release();
348
373
  }
349
- return { status: 0 };
350
374
  }
351
375
  //# sourceMappingURL=reindex.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reindex.js","sourceRoot":"","sources":["../../src/cli/reindex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reindex.js","sourceRoot":"","sources":["../../src/cli/reindex.ts"],"names":[],"mappings":"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"}
@@ -12,13 +12,21 @@ import * as fs from "fs";
12
12
  import * as path from "path";
13
13
  import * as os from "os";
14
14
  import { reindex } from "./reindex.js";
15
+ import { lockPathFor, OPERATION_LOCKED_EXIT } from "../operation-lock.js";
15
16
  describe("reindex", () => {
16
17
  let root;
18
+ let stateDir;
17
19
  beforeEach(() => {
18
20
  root = fs.mkdtempSync(path.join(os.tmpdir(), "ms-test-"));
21
+ // Redirect the operation lock into a throwaway dir so reindex's default
22
+ // locking never touches the real ~/.hq during tests.
23
+ stateDir = fs.mkdtempSync(path.join(os.tmpdir(), "ms-state-"));
24
+ process.env.HQ_STATE_DIR = stateDir;
19
25
  });
20
26
  afterEach(() => {
21
27
  fs.rmSync(root, { recursive: true, force: true });
28
+ fs.rmSync(stateDir, { recursive: true, force: true });
29
+ delete process.env.HQ_STATE_DIR;
22
30
  });
23
31
  function writeSkill(rel) {
24
32
  const dir = path.join(root, rel);
@@ -94,5 +102,32 @@ describe("reindex", () => {
94
102
  expect(fs.existsSync(wrapper)).toBe(true);
95
103
  expect(fs.lstatSync(path.join(wrapper, "SKILL.md")).isSymbolicLink()).toBe(true);
96
104
  });
105
+ // ── operation lock (mutual exclusion with sync/rescue) ──────────────────
106
+ it("refuses (OPERATION_LOCKED_EXIT) when another op holds this root's lock", () => {
107
+ // A live holder in another process (pid 1) → reindex must refuse fast and
108
+ // do no work.
109
+ const lp = lockPathFor(root);
110
+ fs.mkdirSync(path.dirname(lp), { recursive: true });
111
+ fs.writeFileSync(lp, JSON.stringify({ pid: 1, command: "sync", startedAt: new Date(0).toISOString(), hqRoot: root }));
112
+ const before = fs.existsSync(path.join(root, ".claude/skills"));
113
+ const { status } = reindex({ repoRoot: root });
114
+ expect(status).toBe(OPERATION_LOCKED_EXIT);
115
+ // It refused before doing any work (didn't create .claude/skills).
116
+ expect(fs.existsSync(path.join(root, ".claude/skills"))).toBe(before);
117
+ });
118
+ it("skipLock bypasses the lock (internal sync/rescue caller path)", () => {
119
+ const lp = lockPathFor(root);
120
+ fs.mkdirSync(path.dirname(lp), { recursive: true });
121
+ fs.writeFileSync(lp, JSON.stringify({ pid: 1, command: "sync", startedAt: new Date(0).toISOString(), hqRoot: root }));
122
+ // Even with a live holder on record, the internal caller (which already
123
+ // holds the lock) runs to completion.
124
+ const { status } = reindex({ repoRoot: root, skipLock: true });
125
+ expect(status).toBe(0);
126
+ expect(fs.existsSync(path.join(root, ".claude/skills"))).toBe(true);
127
+ });
128
+ it("releases the lock after a normal run (no leftover lock file)", () => {
129
+ reindex({ repoRoot: root });
130
+ expect(fs.existsSync(lockPathFor(root))).toBe(false);
131
+ });
97
132
  });
98
133
  //# sourceMappingURL=reindex.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reindex.test.js","sourceRoot":"","sources":["../../src/cli/reindex.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reindex.test.js","sourceRoot":"","sources":["../../src/cli/reindex.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE1E,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,IAAI,IAAY,CAAC;IACjB,IAAI,QAAgB,CAAC;IAErB,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;QAC1D,wEAAwE;QACxE,qDAAqD;QACrD,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,QAAQ,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,SAAS,UAAU,CAAC,GAAW;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACjC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAC/B,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,4BAA4B,CAAC,EAAE,KAAK,CAAC,CAAC;QACvE,UAAU,CAAC,8BAA8B,CAAC,CAAC;QAE3C,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEvB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;QAChE,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrF,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAC9D,oCAAoC,CACrC,CAAC;QACF,oDAAoD;QACpD,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEtE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;QAClE,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAC9D,gDAAgD,CACjD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,6BAA6B,CAAC,EAAE,QAAQ,CAAC,CAAC;QAE3E,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEvB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAC;QACxD,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5B,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9E,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjF,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5B,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAC/B,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,CACJ,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,mCAAmC,CAAC,CAAC,CACtE,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,UAAU,CAAC,uBAAuB,CAAC,CAAC;QACpC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1E,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,8BAA8B,CAAC,EAAE,KAAK,CAAC,CAAC;QACzE,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAE/B,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5B,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9E,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,+BAA+B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpF,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;QACxD,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,iEAAiE;QACjE,EAAE,CAAC,WAAW,CAAC,oCAAoC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;QACnF,yCAAyC;QACzC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC;QAE3D,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5B,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,sEAAsE;QACtE,qEAAqE;QACrE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;QAC9D,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,UAAU,CAAC,oBAAoB,CAAC,CAAC;QACjC,EAAE,CAAC,WAAW,CAAC,sCAAsC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;QAEvF,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5B,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,2EAA2E;IAE3E,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,0EAA0E;QAC1E,cAAc;QACd,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAC7B,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,EAAE,CAAC,aAAa,CACd,EAAE,EACF,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAChG,CAAC;QACF,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAChE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC3C,mEAAmE;QACnE,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAC7B,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,EAAE,CAAC,aAAa,CACd,EAAE,EACF,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAChG,CAAC;QACF,wEAAwE;QACxE,sCAAsC;QACtC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5B,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"rescue.d.ts","sourceRoot":"","sources":["../../src/cli/rescue.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,aAAa;IAC5B;mDAC+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;yCACqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;+EAC2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;yBACqB;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;uBACmB;IACnB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,2EAA2E;IAC3E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;kCAC8B;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;kCAC8B;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;qEACiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,GAAE,aAAkB,GAAG,MAAM,EAAE,CAiBlE;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,IAAI,GAAE,aAAkB,GAAG,YAAY,CAkB7D"}
1
+ {"version":3,"file":"rescue.d.ts","sourceRoot":"","sources":["../../src/cli/rescue.ts"],"names":[],"mappings":"AAsBA,MAAM,WAAW,aAAa;IAC5B;mDAC+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;yCACqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;+EAC2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;yBACqB;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;uBACmB;IACnB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,2EAA2E;IAC3E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;kCAC8B;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;kCAC8B;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;qEACiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,GAAE,aAAkB,GAAG,MAAM,EAAE,CAiBlE;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,IAAI,GAAE,aAAkB,GAAG,YAAY,CAsC7D"}