@indigoai-us/hq-cloud 6.15.81 → 6.15.82

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 (91) hide show
  1. package/dist/backup-prune.d.ts +18 -0
  2. package/dist/backup-prune.d.ts.map +1 -1
  3. package/dist/backup-prune.js +20 -0
  4. package/dist/backup-prune.js.map +1 -1
  5. package/dist/backup-prune.test.js +30 -1
  6. package/dist/backup-prune.test.js.map +1 -1
  7. package/dist/bin/backup-prune-runner.d.ts +4 -1
  8. package/dist/bin/backup-prune-runner.d.ts.map +1 -1
  9. package/dist/bin/backup-prune-runner.js +61 -38
  10. package/dist/bin/backup-prune-runner.js.map +1 -1
  11. package/dist/bin/backup-prune-runner.test.d.ts +2 -0
  12. package/dist/bin/backup-prune-runner.test.d.ts.map +1 -0
  13. package/dist/bin/backup-prune-runner.test.js +22 -0
  14. package/dist/bin/backup-prune-runner.test.js.map +1 -0
  15. package/dist/bin/layout-compatibility.d.ts +12 -0
  16. package/dist/bin/layout-compatibility.d.ts.map +1 -0
  17. package/dist/bin/layout-compatibility.js +50 -0
  18. package/dist/bin/layout-compatibility.js.map +1 -0
  19. package/dist/bin/layout-compatibility.test.d.ts +2 -0
  20. package/dist/bin/layout-compatibility.test.d.ts.map +1 -0
  21. package/dist/bin/layout-compatibility.test.js +87 -0
  22. package/dist/bin/layout-compatibility.test.js.map +1 -0
  23. package/dist/bin/sync-runner-watch-loop.d.ts +2 -0
  24. package/dist/bin/sync-runner-watch-loop.d.ts.map +1 -1
  25. package/dist/bin/sync-runner-watch-loop.js +71 -11
  26. package/dist/bin/sync-runner-watch-loop.js.map +1 -1
  27. package/dist/bin/sync-runner.d.ts.map +1 -1
  28. package/dist/bin/sync-runner.js +11 -1
  29. package/dist/bin/sync-runner.js.map +1 -1
  30. package/dist/bin/sync-runner.test.js +22 -2
  31. package/dist/bin/sync-runner.test.js.map +1 -1
  32. package/dist/index.d.ts +2 -2
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +1 -1
  35. package/dist/index.js.map +1 -1
  36. package/dist/journal.d.ts +18 -0
  37. package/dist/journal.d.ts.map +1 -1
  38. package/dist/journal.js +41 -17
  39. package/dist/journal.js.map +1 -1
  40. package/dist/journal.test.js +8 -1
  41. package/dist/journal.test.js.map +1 -1
  42. package/dist/outposts/self-deploy.d.ts.map +1 -1
  43. package/dist/outposts/self-deploy.js +10 -1
  44. package/dist/outposts/self-deploy.js.map +1 -1
  45. package/dist/outposts/self-deploy.test.js +4 -1
  46. package/dist/outposts/self-deploy.test.js.map +1 -1
  47. package/dist/sync/area-ledger-migration.d.ts +8 -1
  48. package/dist/sync/area-ledger-migration.d.ts.map +1 -1
  49. package/dist/sync/area-ledger-migration.js +23 -0
  50. package/dist/sync/area-ledger-migration.js.map +1 -1
  51. package/dist/sync/area-ledger-migration.test.js +20 -0
  52. package/dist/sync/area-ledger-migration.test.js.map +1 -1
  53. package/dist/sync/area-ledger.d.ts +10 -0
  54. package/dist/sync/area-ledger.d.ts.map +1 -1
  55. package/dist/sync/area-ledger.js +11 -0
  56. package/dist/sync/area-ledger.js.map +1 -1
  57. package/dist/sync/feature-flags.d.ts +20 -0
  58. package/dist/sync/feature-flags.d.ts.map +1 -1
  59. package/dist/sync/feature-flags.js +25 -0
  60. package/dist/sync/feature-flags.js.map +1 -1
  61. package/dist/sync/feature-flags.test.js +28 -1
  62. package/dist/sync/feature-flags.test.js.map +1 -1
  63. package/dist/sync/index.d.ts +6 -0
  64. package/dist/sync/index.d.ts.map +1 -1
  65. package/dist/sync/index.js +3 -0
  66. package/dist/sync/index.js.map +1 -1
  67. package/dist/sync/layout-compatibility.d.ts +17 -0
  68. package/dist/sync/layout-compatibility.d.ts.map +1 -0
  69. package/dist/sync/layout-compatibility.js +29 -0
  70. package/dist/sync/layout-compatibility.js.map +1 -0
  71. package/dist/sync/per-area-maintenance.d.ts +45 -0
  72. package/dist/sync/per-area-maintenance.d.ts.map +1 -0
  73. package/dist/sync/per-area-maintenance.js +131 -0
  74. package/dist/sync/per-area-maintenance.js.map +1 -0
  75. package/dist/sync/per-area-maintenance.test.d.ts +2 -0
  76. package/dist/sync/per-area-maintenance.test.d.ts.map +1 -0
  77. package/dist/sync/per-area-maintenance.test.js +100 -0
  78. package/dist/sync/per-area-maintenance.test.js.map +1 -0
  79. package/dist/sync/realtime-telemetry.d.ts +49 -0
  80. package/dist/sync/realtime-telemetry.d.ts.map +1 -0
  81. package/dist/sync/realtime-telemetry.js +101 -0
  82. package/dist/sync/realtime-telemetry.js.map +1 -0
  83. package/dist/sync/realtime-telemetry.test.d.ts +2 -0
  84. package/dist/sync/realtime-telemetry.test.d.ts.map +1 -0
  85. package/dist/sync/realtime-telemetry.test.js +64 -0
  86. package/dist/sync/realtime-telemetry.test.js.map +1 -0
  87. package/dist/sync/state-store.d.ts +10 -0
  88. package/dist/sync/state-store.d.ts.map +1 -1
  89. package/dist/sync/state-store.js +18 -0
  90. package/dist/sync/state-store.js.map +1 -1
  91. package/package.json +3 -2
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Low-cardinality telemetry contract for coordinator-owned realtime work.
3
+ *
4
+ * The values are per-item observations and every timing carries an explicit
5
+ * denominator. Paths, causality IDs, area IDs, tenant IDs, and worker PIDs are
6
+ * intentionally excluded: they belong in bounded diagnostic traces, never in
7
+ * metric labels.
8
+ */
9
+ export const REALTIME_TELEMETRY_EVENT = "sync.realtime.timing";
10
+ export const REALTIME_TELEMETRY_SCHEMA_VERSION = 1;
11
+ export const REALTIME_TIMING_STAGES = [
12
+ "queue",
13
+ "conflict",
14
+ "worker",
15
+ "operationGate",
16
+ "appendLock",
17
+ "network",
18
+ "commit",
19
+ ];
20
+ const sourceValues = new Set(["watcher", "receiver", "wake"]);
21
+ const directionValues = new Set(["push", "pull"]);
22
+ const outcomeValues = new Set(["durable", "retryable", "refused"]);
23
+ function emptyTiming() {
24
+ return Object.fromEntries(REALTIME_TIMING_STAGES.map((stage) => [stage, 0]));
25
+ }
26
+ function allDenominators(items) {
27
+ return Object.fromEntries(REALTIME_TIMING_STAGES.map((stage) => [stage, items]));
28
+ }
29
+ /** Reject dynamic dimensions before they can become a metric-key convention. */
30
+ export function assertRealtimeTelemetryLowCardinality(record) {
31
+ const allowed = new Set(["event", "schemaVersion", "source", "direction", "outcome", "items", "timingMs", "denominator"]);
32
+ if (Object.keys(record).some((key) => !allowed.has(key))) {
33
+ throw new Error("realtime telemetry: record contains a high-cardinality label");
34
+ }
35
+ if (!sourceValues.has(record.source) || !directionValues.has(record.direction) || !outcomeValues.has(record.outcome)) {
36
+ throw new Error("realtime telemetry: record contains an unsupported label value");
37
+ }
38
+ if (!Number.isSafeInteger(record.items) || record.items < 0)
39
+ throw new Error("realtime telemetry: items must be a non-negative integer");
40
+ for (const stage of REALTIME_TIMING_STAGES) {
41
+ if (!Number.isFinite(record.timingMs[stage]) || record.timingMs[stage] < 0)
42
+ throw new Error(`realtime telemetry: ${stage} timing is invalid`);
43
+ if (record.denominator[stage] !== record.items)
44
+ throw new Error(`realtime telemetry: ${stage} denominator must equal items`);
45
+ }
46
+ }
47
+ /**
48
+ * A bridge executor currently exposes one composite sync pass. It marks all
49
+ * seven contract stages around that pass so dashboards remain denominator-safe
50
+ * while child workers gain finer internal probes. The stages are separately
51
+ * named now, so that refinement does not change the published schema.
52
+ */
53
+ export class RealtimeTelemetrySpan {
54
+ source;
55
+ direction;
56
+ items;
57
+ sink;
58
+ now;
59
+ startedAt;
60
+ marks = new Map();
61
+ constructor(source, direction, items, sink, now = Date.now) {
62
+ this.source = source;
63
+ this.direction = direction;
64
+ this.items = items;
65
+ this.sink = sink;
66
+ this.now = now;
67
+ this.startedAt = now();
68
+ }
69
+ mark(stage) {
70
+ this.marks.set(stage, this.now());
71
+ }
72
+ finish(outcome) {
73
+ const end = this.now();
74
+ const timingMs = emptyTiming();
75
+ const workerStart = this.marks.get("worker") ?? end;
76
+ timingMs.queue = Math.max(0, workerStart - this.startedAt);
77
+ for (const stage of REALTIME_TIMING_STAGES) {
78
+ if (stage === "queue")
79
+ continue;
80
+ const stageStart = this.marks.get(stage) ?? workerStart;
81
+ timingMs[stage] = Math.max(0, end - stageStart);
82
+ }
83
+ const record = {
84
+ event: REALTIME_TELEMETRY_EVENT,
85
+ schemaVersion: REALTIME_TELEMETRY_SCHEMA_VERSION,
86
+ source: this.source,
87
+ direction: this.direction,
88
+ outcome,
89
+ items: this.items,
90
+ timingMs,
91
+ denominator: allDenominators(this.items),
92
+ };
93
+ assertRealtimeTelemetryLowCardinality(record);
94
+ this.sink(record);
95
+ return record;
96
+ }
97
+ }
98
+ export function writeRealtimeTelemetryToStderr(record) {
99
+ process.stderr.write(`${JSON.stringify(record)}\n`);
100
+ }
101
+ //# sourceMappingURL=realtime-telemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-telemetry.js","sourceRoot":"","sources":["../../src/sync/realtime-telemetry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=realtime-telemetry.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-telemetry.test.d.ts","sourceRoot":"","sources":["../../src/sync/realtime-telemetry.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,64 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { REALTIME_TELEMETRY_EVENT, RealtimeTelemetrySpan, assertRealtimeTelemetryLowCardinality, } from "./realtime-telemetry.js";
3
+ describe("realtime telemetry schema", () => {
4
+ it("emits every required timing with a per-item denominator and stable labels", () => {
5
+ let now = 100;
6
+ const records = [];
7
+ const span = new RealtimeTelemetrySpan("watcher", "push", 2, (record) => records.push(record), () => now);
8
+ now = 110;
9
+ span.mark("worker");
10
+ for (const stage of ["conflict", "operationGate", "appendLock", "network", "commit"])
11
+ span.mark(stage);
12
+ now = 135;
13
+ const record = span.finish("durable");
14
+ expect(records).toEqual([record]);
15
+ expect(record).toEqual({
16
+ event: REALTIME_TELEMETRY_EVENT,
17
+ schemaVersion: 1,
18
+ source: "watcher",
19
+ direction: "push",
20
+ outcome: "durable",
21
+ items: 2,
22
+ timingMs: {
23
+ queue: 10,
24
+ conflict: 25,
25
+ worker: 25,
26
+ operationGate: 25,
27
+ appendLock: 25,
28
+ network: 25,
29
+ commit: 25,
30
+ },
31
+ denominator: {
32
+ queue: 2,
33
+ conflict: 2,
34
+ worker: 2,
35
+ operationGate: 2,
36
+ appendLock: 2,
37
+ network: 2,
38
+ commit: 2,
39
+ },
40
+ });
41
+ });
42
+ it("rejects a path-shaped field before it can create a high-cardinality metric key", () => {
43
+ const record = {
44
+ event: REALTIME_TELEMETRY_EVENT,
45
+ schemaVersion: 1,
46
+ source: "watcher",
47
+ direction: "push",
48
+ outcome: "durable",
49
+ items: 1,
50
+ timingMs: { queue: 0, conflict: 0, worker: 0, operationGate: 0, appendLock: 0, network: 0, commit: 0 },
51
+ denominator: { queue: 1, conflict: 1, worker: 1, operationGate: 1, appendLock: 1, network: 1, commit: 1 },
52
+ path: "companies/indigo/private.md",
53
+ };
54
+ expect(() => assertRealtimeTelemetryLowCardinality(record)).toThrow("high-cardinality");
55
+ });
56
+ it("preserves pathless wake failures as zero-item retryable observations", () => {
57
+ const records = [];
58
+ const record = new RealtimeTelemetrySpan("wake", "pull", 0, (value) => records.push(value)).finish("retryable");
59
+ expect(records).toEqual([record]);
60
+ expect(record).toMatchObject({ source: "wake", outcome: "retryable", items: 0 });
61
+ expect(Object.values(record.denominator)).toEqual([0, 0, 0, 0, 0, 0, 0]);
62
+ });
63
+ });
64
+ //# sourceMappingURL=realtime-telemetry.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-telemetry.test.js","sourceRoot":"","sources":["../../src/sync/realtime-telemetry.test.ts"],"names":[],"mappings":"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"}
@@ -177,6 +177,16 @@ export declare class StateStore<T> {
177
177
  getGeneration(): number;
178
178
  getLastRecordSequence(): number;
179
179
  getRecoveryStats(): StateStoreRecoveryStats;
180
+ /**
181
+ * Run format-preserving maintenance for this scope only.
182
+ *
183
+ * Callers that own several independent scopes must invoke this one scope at
184
+ * a time. In particular, this does not acquire a process-wide maintenance
185
+ * lock, so an area rotation cannot accidentally serialize another area.
186
+ */
187
+ repairIfNeeded(maintenance?: StateStoreMaintenanceOptions): StateStoreMaintenanceResult;
188
+ /** Compact only this scope when its ordinary append thresholds require it. */
189
+ compactIfNeeded(): boolean;
180
190
  getGenerationIdentity(): StateStoreGenerationIdentity;
181
191
  /**
182
192
  * Persist a generation pin while holding append.lock. The pin is a tiny
@@ -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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"}
@@ -434,6 +434,24 @@ export class StateStore {
434
434
  getRecoveryStats() {
435
435
  return { walBytes: this.walBytes, maxReadBytes: this.maxRecoveryReadBytes };
436
436
  }
437
+ /**
438
+ * Run format-preserving maintenance for this scope only.
439
+ *
440
+ * Callers that own several independent scopes must invoke this one scope at
441
+ * a time. In particular, this does not acquire a process-wide maintenance
442
+ * lock, so an area rotation cannot accidentally serialize another area.
443
+ */
444
+ repairIfNeeded(maintenance = {}) {
445
+ return StateStore.repairIfNeeded(this.options, maintenance);
446
+ }
447
+ /** Compact only this scope when its ordinary append thresholds require it. */
448
+ compactIfNeeded() {
449
+ this.refresh();
450
+ if (!this.needsCompaction())
451
+ return false;
452
+ this.compact();
453
+ return true;
454
+ }
437
455
  getGenerationIdentity() {
438
456
  return {
439
457
  generation: this.generation,