@indigoai-us/hq-cloud 6.18.95 → 6.18.97

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 (58) hide show
  1. package/dist/bin/sync-runner-company.d.ts.map +1 -1
  2. package/dist/bin/sync-runner-company.js +3 -0
  3. package/dist/bin/sync-runner-company.js.map +1 -1
  4. package/dist/bin/sync-runner-watch-loop.d.ts.map +1 -1
  5. package/dist/bin/sync-runner-watch-loop.js +12 -3
  6. package/dist/bin/sync-runner-watch-loop.js.map +1 -1
  7. package/dist/bin/sync-runner.d.ts +8 -0
  8. package/dist/bin/sync-runner.d.ts.map +1 -1
  9. package/dist/bin/sync-runner.js +8 -2
  10. package/dist/bin/sync-runner.js.map +1 -1
  11. package/dist/cli/conflict.d.ts +12 -1
  12. package/dist/cli/conflict.d.ts.map +1 -1
  13. package/dist/cli/conflict.js +6 -2
  14. package/dist/cli/conflict.js.map +1 -1
  15. package/dist/cli/rescue-core.d.ts +3 -2
  16. package/dist/cli/rescue-core.d.ts.map +1 -1
  17. package/dist/cli/rescue-core.js +144 -21
  18. package/dist/cli/rescue-core.js.map +1 -1
  19. package/dist/cli/rescue.d.ts +9 -1
  20. package/dist/cli/rescue.d.ts.map +1 -1
  21. package/dist/cli/rescue.js +47 -11
  22. package/dist/cli/rescue.js.map +1 -1
  23. package/dist/cli/share.d.ts +18 -0
  24. package/dist/cli/share.d.ts.map +1 -1
  25. package/dist/cli/share.js +46 -5
  26. package/dist/cli/share.js.map +1 -1
  27. package/dist/cli/sync.d.ts +37 -1
  28. package/dist/cli/sync.d.ts.map +1 -1
  29. package/dist/cli/sync.js +156 -14
  30. package/dist/cli/sync.js.map +1 -1
  31. package/dist/cli/tombstones.d.ts +8 -0
  32. package/dist/cli/tombstones.d.ts.map +1 -1
  33. package/dist/cli/tombstones.js +9 -0
  34. package/dist/cli/tombstones.js.map +1 -1
  35. package/dist/context.d.ts.map +1 -1
  36. package/dist/context.js +61 -79
  37. package/dist/context.js.map +1 -1
  38. package/dist/index.d.ts +2 -0
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +2 -0
  41. package/dist/index.js.map +1 -1
  42. package/dist/journal.d.ts +57 -0
  43. package/dist/journal.d.ts.map +1 -1
  44. package/dist/journal.js +242 -0
  45. package/dist/journal.js.map +1 -1
  46. package/dist/lib/net-errors.d.ts +14 -0
  47. package/dist/lib/net-errors.d.ts.map +1 -1
  48. package/dist/lib/net-errors.js +49 -0
  49. package/dist/lib/net-errors.js.map +1 -1
  50. package/dist/lib/server-owned-skips.d.ts +64 -0
  51. package/dist/lib/server-owned-skips.d.ts.map +1 -0
  52. package/dist/lib/server-owned-skips.js +182 -0
  53. package/dist/lib/server-owned-skips.js.map +1 -0
  54. package/dist/sync/state-store.d.ts +8 -1
  55. package/dist/sync/state-store.d.ts.map +1 -1
  56. package/dist/sync/state-store.js +96 -9
  57. package/dist/sync/state-store.js.map +1 -1
  58. package/package.json +1 -1
@@ -0,0 +1,182 @@
1
+ /**
2
+ * Plain-language report of the server-owned vault paths that sync skips.
3
+ *
4
+ * Push refuses to upload server-owned paths (see `isLocallyIneligibleForPush`
5
+ * in ./cloud-authoritative.ts). That refusal is correct, but it used to be
6
+ * reported only as a count, so a user who wrote a file under `sources/` or
7
+ * `signals/` saw the file never reach the cloud and concluded that sync was
8
+ * broken. This module names each skipped folder and says why it is skipped.
9
+ *
10
+ * It reads only. It does not change which paths are server-owned, does not
11
+ * upload or ingest local files, and does not change permissions. The
12
+ * classifier delegates to `isLocallyIneligibleForPush`, so the report and the
13
+ * push refusal cannot disagree about which paths are skipped.
14
+ */
15
+ import * as fs from "fs";
16
+ import * as path from "path";
17
+ import { isTombstone } from "../journal.js";
18
+ import { isLocallyIneligibleForPush } from "./cloud-authoritative.js";
19
+ /**
20
+ * Server-owned folders, most specific first. `sources/slack-dm/` is listed
21
+ * before `sources/` so Slack DM files get their own line.
22
+ */
23
+ export const SERVER_OWNED_FOLDERS = [
24
+ {
25
+ folder: "sources/slack-dm/",
26
+ reason: "The server writes these Slack DM files for each person. Sync downloads them but never uploads local changes.",
27
+ },
28
+ {
29
+ folder: "sources/",
30
+ reason: "The server writes these from connected integrations and ingestion. Sync downloads them but never uploads local changes. Add sources through the integration or ingestion flow.",
31
+ },
32
+ {
33
+ folder: "signals/",
34
+ reason: "The server's signals pipeline writes these. Sync downloads them but never uploads local changes.",
35
+ },
36
+ {
37
+ folder: "ontology/",
38
+ reason: "The server's ontology gardener writes these. Sync downloads them but never uploads local changes, except entity files when checkpoint ontology push is on for the company.",
39
+ },
40
+ {
41
+ folder: "company-brief.md",
42
+ reason: "The server regenerates the company brief. Sync downloads it but never uploads local changes.",
43
+ },
44
+ {
45
+ folder: "secrets/",
46
+ reason: "The server manages these credentials. Sync never uploads or downloads them, and local copies stay where they are.",
47
+ },
48
+ ];
49
+ function toVaultRelative(relPath) {
50
+ return relPath
51
+ .split("\\")
52
+ .join("/")
53
+ .replace(/^\.?\//, "")
54
+ .replace(/^companies\/[^/]+\//, "");
55
+ }
56
+ /**
57
+ * The server-owned folder a path belongs to, or undefined when push would
58
+ * upload it. Accepts a vault-relative or hqRoot-relative (`companies/<slug>/…`)
59
+ * path. board.json is client-owned for push and is never reported.
60
+ */
61
+ export function serverOwnedSkipFolder(relPath, options = {}) {
62
+ if (!isLocallyIneligibleForPush(relPath, {
63
+ boardClientOwned: true,
64
+ ontologyEntityPush: options.ontologyEntityPush,
65
+ })) {
66
+ return undefined;
67
+ }
68
+ const vaultRel = toVaultRelative(relPath);
69
+ return SERVER_OWNED_FOLDERS.find((entry) => entry.folder.endsWith("/") ? vaultRel.startsWith(entry.folder) : vaultRel === entry.folder);
70
+ }
71
+ export const SERVER_OWNED_SKIP_SAMPLE_CAP = 3;
72
+ /**
73
+ * Group skipped paths by server-owned folder, in {@link SERVER_OWNED_FOLDERS}
74
+ * order. Paths that push would upload are ignored.
75
+ */
76
+ export function groupServerOwnedSkips(paths, options = {}) {
77
+ const sampleCap = options.sampleCap ?? SERVER_OWNED_SKIP_SAMPLE_CAP;
78
+ const byFolder = new Map();
79
+ for (const relPath of paths) {
80
+ const entry = serverOwnedSkipFolder(relPath, options);
81
+ if (!entry)
82
+ continue;
83
+ const list = byFolder.get(entry.folder) ?? [];
84
+ list.push(relPath);
85
+ byFolder.set(entry.folder, list);
86
+ }
87
+ const groups = [];
88
+ for (const entry of SERVER_OWNED_FOLDERS) {
89
+ const list = byFolder.get(entry.folder);
90
+ if (!list)
91
+ continue;
92
+ list.sort();
93
+ groups.push({ ...entry, count: list.length, samplePaths: list.slice(0, sampleCap) });
94
+ }
95
+ return groups;
96
+ }
97
+ const IGNORED_BASENAMES = new Set([".DS_Store", "Thumbs.db"]);
98
+ function walkFiles(absDir, relDir, out) {
99
+ let entries;
100
+ try {
101
+ entries = fs.readdirSync(absDir, { withFileTypes: true });
102
+ }
103
+ catch {
104
+ return;
105
+ }
106
+ for (const entry of entries) {
107
+ if (IGNORED_BASENAMES.has(entry.name) || entry.name.startsWith("._"))
108
+ continue;
109
+ const rel = `${relDir}/${entry.name}`;
110
+ // Links are listed but never followed, so the scan stays inside the vault.
111
+ if (entry.isDirectory())
112
+ walkFiles(path.join(absDir, entry.name), rel, out);
113
+ else
114
+ out.push(rel);
115
+ }
116
+ }
117
+ /**
118
+ * Scan a company folder for files under server-owned paths and split them by
119
+ * whether sync tracks them. Only the server-owned top-level entries are read,
120
+ * so the cost does not grow with the rest of the vault.
121
+ */
122
+ export function scanServerOwnedSkips(options) {
123
+ const found = [];
124
+ const topLevel = new Set(SERVER_OWNED_FOLDERS.map((entry) => entry.folder.split("/")[0]));
125
+ for (const name of topLevel) {
126
+ const abs = path.join(options.companyRoot, name);
127
+ let stat;
128
+ try {
129
+ stat = fs.lstatSync(abs);
130
+ }
131
+ catch {
132
+ continue;
133
+ }
134
+ if (stat.isDirectory())
135
+ walkFiles(abs, name, found);
136
+ else
137
+ found.push(name);
138
+ }
139
+ const files = options.journal?.files ?? {};
140
+ const localOnly = [];
141
+ const tracked = [];
142
+ for (const relPath of found) {
143
+ const row = files[relPath];
144
+ if (row && !isTombstone(row))
145
+ tracked.push(relPath);
146
+ else
147
+ localOnly.push(relPath);
148
+ }
149
+ const groupOptions = {
150
+ ontologyEntityPush: options.ontologyEntityPush,
151
+ sampleCap: options.sampleCap,
152
+ };
153
+ return {
154
+ localOnly: groupServerOwnedSkips(localOnly, groupOptions),
155
+ tracked: groupServerOwnedSkips(tracked, groupOptions),
156
+ };
157
+ }
158
+ function plural(count, one, many) {
159
+ return `${count} ${count === 1 ? one : many}`;
160
+ }
161
+ /**
162
+ * Human lines for a status surface such as `hq sync status`. Returns no lines
163
+ * when nothing is skipped.
164
+ */
165
+ export function formatServerOwnedSkipReport(report) {
166
+ if (report.localOnly.length === 0 && report.tracked.length === 0)
167
+ return [];
168
+ const lines = ["Server-owned paths (sync does not upload these):"];
169
+ for (const group of report.localOnly) {
170
+ lines.push(` ${group.folder}: ${plural(group.count, "local file was", "local files were")} not uploaded. ${group.reason}`);
171
+ for (const sample of group.samplePaths)
172
+ lines.push(` · ${sample}`);
173
+ if (group.count > group.samplePaths.length) {
174
+ lines.push(` ... and ${group.count - group.samplePaths.length} more`);
175
+ }
176
+ }
177
+ for (const group of report.tracked) {
178
+ lines.push(` ${group.folder}: ${plural(group.count, "file is", "files are")} kept in step with the cloud copy by pull. ${group.reason}`);
179
+ }
180
+ return lines;
181
+ }
182
+ //# sourceMappingURL=server-owned-skips.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-owned-skips.js","sourceRoot":"","sources":["../../src/lib/server-owned-skips.ts"],"names":[],"mappings":"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"}
@@ -248,7 +248,13 @@ export declare class StateStoreCorruptionError extends Error {
248
248
  }
249
249
  /** A well-formed WAL record this client version's reducer cannot read. */
250
250
  export interface StateStoreRecoveryMarker {
251
- kind: "rebuilt_from_prefix";
251
+ /**
252
+ * `rebuilt_from_prefix`: a reducer-rejected WAL suffix was quarantined and
253
+ * the valid prefix kept. `rebuilt_empty`: no snapshot/WAL generation could
254
+ * be read at all, so every generation file was quarantined and the store
255
+ * restarted empty. Both hold remote deletes until a full listing.
256
+ */
257
+ kind: "rebuilt_from_prefix" | "rebuilt_empty";
252
258
  createdAt: string;
253
259
  quarantinePath: string;
254
260
  }
@@ -287,6 +293,7 @@ export declare class StateStoreLockError extends Error {
287
293
  reason?: StateStoreLockErrorReason;
288
294
  });
289
295
  }
296
+ export declare function isStateStoreNoValidGenerationError(error: unknown): boolean;
290
297
  /** A recovered v3 store. `append` is the ordinary hot path. */
291
298
  export declare class StateStore<T> {
292
299
  private readonly options;
@@ -1 +1 @@
1
- {"version":3,"file":"state-store.d.ts","sourceRoot":"","sources":["../../src/sync/state-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state-store.d.ts","sourceRoot":"","sources":["../../src/sync/state-store.ts"],"names":[],"mappings":"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"}
@@ -349,7 +349,7 @@ export function readStateStoreRecoveryMarker(rootDir, scopeId) {
349
349
  if (!parsed || typeof parsed !== "object")
350
350
  throw new Error(`state-store: invalid recovery marker at ${markerPath}`);
351
351
  const marker = parsed;
352
- if (marker.kind !== "rebuilt_from_prefix" || typeof marker.createdAt !== "string" || typeof marker.quarantinePath !== "string") {
352
+ if ((marker.kind !== "rebuilt_from_prefix" && marker.kind !== "rebuilt_empty") || typeof marker.createdAt !== "string" || typeof marker.quarantinePath !== "string") {
353
353
  throw new Error(`state-store: invalid recovery marker at ${markerPath}`);
354
354
  }
355
355
  return marker;
@@ -433,6 +433,17 @@ class StateStoreReducerError extends Error {
433
433
  /** A sampled generation disappeared while it was being read off-lock. */
434
434
  class StateStoreGenerationMissingError extends StateStoreCorruptionError {
435
435
  }
436
+ /**
437
+ * Marks a StateStoreCorruptionError raised because every snapshot/WAL
438
+ * generation on disk failed its integrity checks. A property, not a subclass:
439
+ * diagnostics (manifest ledgerUnavailable, journal ledger index) report the
440
+ * constructor name, which must stay "StateStoreCorruptionError".
441
+ */
442
+ const NO_VALID_GENERATION = Symbol("state-store.no-valid-generation");
443
+ export function isStateStoreNoValidGenerationError(error) {
444
+ return error instanceof StateStoreCorruptionError &&
445
+ error[NO_VALID_GENERATION] === true;
446
+ }
436
447
  /** A recovered v3 store. `append` is the ordinary hot path. */
437
448
  export class StateStore {
438
449
  options;
@@ -483,9 +494,17 @@ export class StateStore {
483
494
  recovered = readNewestGenerationOptimistically(dir, scopeDigest, normalized.reduce, normalized.snapshotDecoder, normalized.snapshotMagics);
484
495
  }
485
496
  catch (error) {
486
- if (!normalized.recoverRejectedDelta || !isReducerRejectedGeneration(error))
497
+ if (!normalized.recoverRejectedDelta)
487
498
  throw error;
488
- recovered = recoverRejectedDeltaGeneration(dir, scopeDigest, normalized);
499
+ if (isReducerRejectedGeneration(error)) {
500
+ recovered = recoverRejectedDeltaGeneration(dir, scopeDigest, normalized);
501
+ }
502
+ else if (isNoValidGeneration(error)) {
503
+ recovered = recoverNoValidGeneration(dir, scopeDigest, normalized);
504
+ }
505
+ else {
506
+ throw error;
507
+ }
489
508
  }
490
509
  if (recovered) {
491
510
  const store = new StateStore(normalized, recovered, false);
@@ -539,9 +558,17 @@ export class StateStore {
539
558
  recovered = await readNewestGenerationOptimisticallyAsync(dir, scopeDigest, normalized.reduce, normalized.snapshotDecoder, normalized.snapshotMagics);
540
559
  }
541
560
  catch (error) {
542
- if (!normalized.recoverRejectedDelta || !isReducerRejectedGeneration(error))
561
+ if (!normalized.recoverRejectedDelta)
562
+ throw error;
563
+ if (isReducerRejectedGeneration(error)) {
564
+ recovered = recoverRejectedDeltaGeneration(dir, scopeDigest, normalized);
565
+ }
566
+ else if (isNoValidGeneration(error)) {
567
+ recovered = recoverNoValidGeneration(dir, scopeDigest, normalized);
568
+ }
569
+ else {
543
570
  throw error;
544
- recovered = recoverRejectedDeltaGeneration(dir, scopeDigest, normalized);
571
+ }
545
572
  }
546
573
  if (recovered) {
547
574
  const store = new StateStore(normalized, recovered, false);
@@ -1385,6 +1412,62 @@ function isReducerRejectedGeneration(error) {
1385
1412
  return reducerError instanceof StateStoreReducerError &&
1386
1413
  !(reducerError.cause instanceof StateStoreUnsupportedRecordTypeError);
1387
1414
  }
1415
+ function isNoValidGeneration(error) {
1416
+ return isStateStoreNoValidGenerationError(error);
1417
+ }
1418
+ /**
1419
+ * Every generation on disk is unreadable (bad checksums, torn snapshots, a
1420
+ * missing pair). Without this the scope fails every open forever and the user
1421
+ * has to delete state by hand. Under the scope lock, re-check (a torn tail is
1422
+ * repaired by the locked read), then move every generation file into a
1423
+ * quarantine folder, write the recovery marker so remote deletes are held
1424
+ * until a full authoritative listing, and start a fresh empty generation.
1425
+ * No bytes are discarded.
1426
+ */
1427
+ function recoverNoValidGeneration(dir, scopeDigest, options) {
1428
+ return withScopeLock(dir, () => {
1429
+ cleanupUnpublishedInitialGeneration(dir);
1430
+ try {
1431
+ const readable = readNewestGeneration(dir, scopeDigest, options.reduce, options.snapshotDecoder, options.snapshotMagics, undefined, true);
1432
+ if (readable)
1433
+ return readable;
1434
+ }
1435
+ catch (error) {
1436
+ if (!isNoValidGeneration(error))
1437
+ throw error;
1438
+ }
1439
+ const names = fs.readdirSync(dir).filter((name) => name === "current" || /^(?:snapshot|wal)-\d+\.bin$/.test(name));
1440
+ const highest = highestGenerationOnDisk(dir);
1441
+ const quarantinePath = path.join(dir, `quarantine-${Date.now()}-${crypto.randomBytes(5).toString("hex")}`);
1442
+ try {
1443
+ fs.mkdirSync(quarantinePath);
1444
+ for (const name of names)
1445
+ fs.renameSync(path.join(dir, name), path.join(quarantinePath, name));
1446
+ fsyncDirectory(quarantinePath);
1447
+ fsyncDirectory(dir);
1448
+ const marker = {
1449
+ kind: "rebuilt_empty",
1450
+ createdAt: new Date().toISOString(),
1451
+ quarantinePath,
1452
+ };
1453
+ writeDurableTempThenRename(dir, recoveryMarkerPath(dir), [Buffer.from(JSON.stringify(marker), "utf8")]);
1454
+ const next = {
1455
+ generation: highest + 1,
1456
+ state: options.initialState,
1457
+ lastRecordSequence: 0,
1458
+ recordCount: 0,
1459
+ walBytes: WAL_HEADER_BYTES,
1460
+ maxReadBytes: 0,
1461
+ };
1462
+ writeGeneration(dir, scopeDigest, next, options.snapshotEncoder);
1463
+ writeCurrentPointer(dir, next.generation);
1464
+ return next;
1465
+ }
1466
+ catch (error) {
1467
+ throw new Error(`state-store: unreadable-generation recovery failed; inspect state path ${dir} and preserve ${quarantinePath}`, { cause: error });
1468
+ }
1469
+ });
1470
+ }
1388
1471
  function recoveryMarkerPath(dir) {
1389
1472
  return path.join(dir, "recovery-marker.json");
1390
1473
  }
@@ -1500,12 +1583,16 @@ function readNewestGeneration(dir, scopeDigest, reduce, snapshotDecoder, snapsho
1500
1583
  }
1501
1584
  }
1502
1585
  if (generations.length > 0) {
1503
- const ErrorType = sawMissingGeneration
1504
- ? StateStoreGenerationMissingError
1505
- : StateStoreCorruptionError;
1506
- throw new ErrorType("no valid snapshot/WAL generation remains", {
1586
+ if (sawMissingGeneration) {
1587
+ throw new StateStoreGenerationMissingError("no valid snapshot/WAL generation remains", {
1588
+ cause: errors[0],
1589
+ });
1590
+ }
1591
+ const noValid = new StateStoreCorruptionError("no valid snapshot/WAL generation remains", {
1507
1592
  cause: errors[0],
1508
1593
  });
1594
+ Object.defineProperty(noValid, NO_VALID_GENERATION, { value: true });
1595
+ throw noValid;
1509
1596
  }
1510
1597
  return undefined;
1511
1598
  }