@indigoai-us/hq-cloud 6.18.43-alpha.2 → 6.18.43
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/bandwidth.d.ts +2 -3
- package/dist/bandwidth.d.ts.map +1 -1
- package/dist/bandwidth.js +16 -21
- package/dist/bandwidth.js.map +1 -1
- package/dist/bandwidth.test.js +0 -23
- package/dist/bandwidth.test.js.map +1 -1
- package/dist/bin/sync-runner-heap-telemetry.d.ts +0 -3
- package/dist/bin/sync-runner-heap-telemetry.d.ts.map +1 -1
- package/dist/bin/sync-runner-heap-telemetry.js +0 -3
- package/dist/bin/sync-runner-heap-telemetry.js.map +1 -1
- package/dist/bin/sync-runner-watch-loop.d.ts +2 -25
- package/dist/bin/sync-runner-watch-loop.d.ts.map +1 -1
- package/dist/bin/sync-runner-watch-loop.js +8 -82
- package/dist/bin/sync-runner-watch-loop.js.map +1 -1
- package/dist/bin/sync-runner-watch-routes.d.ts +1 -3
- package/dist/bin/sync-runner-watch-routes.d.ts.map +1 -1
- package/dist/bin/sync-runner-watch-routes.js +0 -13
- package/dist/bin/sync-runner-watch-routes.js.map +1 -1
- package/dist/bin/sync-runner.d.ts +1 -2
- package/dist/bin/sync-runner.d.ts.map +1 -1
- package/dist/bin/sync-runner.js.map +1 -1
- package/dist/bin/sync-runner.test.js +4 -297
- package/dist/bin/sync-runner.test.js.map +1 -1
- package/dist/cli/index.d.ts +3 -7
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +1 -5
- package/dist/cli/index.js.map +1 -1
- package/dist/journal-snapshot-rows.d.ts +0 -2
- package/dist/journal-snapshot-rows.d.ts.map +1 -1
- package/dist/journal-snapshot-rows.js +0 -4
- package/dist/journal-snapshot-rows.js.map +1 -1
- package/dist/sync/parallel-sync-coordinator.d.ts +0 -7
- package/dist/sync/parallel-sync-coordinator.d.ts.map +1 -1
- package/dist/sync/parallel-sync-coordinator.js +0 -22
- package/dist/sync/parallel-sync-coordinator.js.map +1 -1
- package/dist/sync/parallel-sync-coordinator.test.js +0 -31
- package/dist/sync/parallel-sync-coordinator.test.js.map +1 -1
- package/dist/sync/realtime-telemetry.d.ts +2 -24
- package/dist/sync/realtime-telemetry.d.ts.map +1 -1
- package/dist/sync/realtime-telemetry.js +3 -47
- package/dist/sync/realtime-telemetry.js.map +1 -1
- package/dist/sync/realtime-telemetry.test.js +8 -47
- package/dist/sync/realtime-telemetry.test.js.map +1 -1
- package/package.json +1 -1
- package/dist/daemon.d.ts +0 -12
- package/dist/daemon.d.ts.map +0 -1
- package/dist/daemon.js +0 -90
- package/dist/daemon.js.map +0 -1
|
@@ -9,7 +9,7 @@ import { monitorEventLoopDelay } from "node:perf_hooks";
|
|
|
9
9
|
* metric labels.
|
|
10
10
|
*/
|
|
11
11
|
export const REALTIME_TELEMETRY_EVENT = "sync.realtime.timing";
|
|
12
|
-
export const REALTIME_TELEMETRY_SCHEMA_VERSION =
|
|
12
|
+
export const REALTIME_TELEMETRY_SCHEMA_VERSION = 5;
|
|
13
13
|
export const REALTIME_TIMING_STAGES = [
|
|
14
14
|
"queue",
|
|
15
15
|
"conflict",
|
|
@@ -19,11 +19,7 @@ export const REALTIME_TIMING_STAGES = [
|
|
|
19
19
|
"network",
|
|
20
20
|
"commit",
|
|
21
21
|
];
|
|
22
|
-
|
|
23
|
-
* `governorWait` is this op's own bandwidth-governor wait. It overlaps the
|
|
24
|
-
* other phases (like `eventLoopDelay`), so phases are not additive.
|
|
25
|
-
*/
|
|
26
|
-
export const REALTIME_NETWORK_PHASES = ["apiPresign", "s3Request", "retryWait", "connectionSetup", "eventLoopDelay", "governorWait"];
|
|
22
|
+
export const REALTIME_NETWORK_PHASES = ["apiPresign", "s3Request", "retryWait", "connectionSetup", "eventLoopDelay"];
|
|
27
23
|
const realtimeNetworkProbe = new AsyncLocalStorage();
|
|
28
24
|
export function recordRealtimeConnectionSetup(durationMs) {
|
|
29
25
|
const probe = realtimeNetworkProbe.getStore();
|
|
@@ -32,12 +28,6 @@ export function recordRealtimeConnectionSetup(durationMs) {
|
|
|
32
28
|
probe.connectionSetupMs += durationMs;
|
|
33
29
|
probe.span.recordNetworkPhase("connectionSetup", durationMs);
|
|
34
30
|
}
|
|
35
|
-
/** Attributes a bandwidth-governor wait to the realtime op it delayed, if any. */
|
|
36
|
-
export function recordRealtimeGovernorWait(durationMs) {
|
|
37
|
-
if (!Number.isFinite(durationMs) || durationMs <= 0)
|
|
38
|
-
return;
|
|
39
|
-
realtimeNetworkProbe.getStore()?.span.recordNetworkPhase("governorWait", durationMs);
|
|
40
|
-
}
|
|
41
31
|
export function recordRealtimeConnectionReuse() {
|
|
42
32
|
realtimeNetworkProbe.getStore()?.span.recordConnectionReuse();
|
|
43
33
|
}
|
|
@@ -66,28 +56,11 @@ export const REALTIME_TELEMETRY_REASONS = [
|
|
|
66
56
|
"unresolved-company",
|
|
67
57
|
"shutdown",
|
|
68
58
|
];
|
|
69
|
-
/**
|
|
70
|
-
* What held a realtime op before it could run: the occupant of its coordinator
|
|
71
|
-
* lane (`admissionBlockedBy`) or the work owning the pass scheduler
|
|
72
|
-
* (`operationGateBlockedBy`). A closed set, never a path or id. `unscoped` is a
|
|
73
|
-
* chore the scheduler runs outside the coordinator, so it has no kind.
|
|
74
|
-
*/
|
|
75
|
-
export const REALTIME_BLOCKERS = [
|
|
76
|
-
"realtime:fast",
|
|
77
|
-
"realtime:slow",
|
|
78
|
-
"chore:cadence",
|
|
79
|
-
"chore:full-reconcile",
|
|
80
|
-
"chore:rotation",
|
|
81
|
-
"chore:backlog",
|
|
82
|
-
"chore:migration",
|
|
83
|
-
"chore:unscoped",
|
|
84
|
-
];
|
|
85
59
|
const sourceValues = new Set(["watcher", "receiver", "wake"]);
|
|
86
60
|
const directionValues = new Set(["push", "pull"]);
|
|
87
61
|
const sizeClassValues = new Set(["small", "large", "unknown"]);
|
|
88
62
|
const outcomeValues = new Set(["durable", "retryable", "refused"]);
|
|
89
63
|
const reasonValues = new Set(REALTIME_TELEMETRY_REASONS);
|
|
90
|
-
const blockerValues = new Set(REALTIME_BLOCKERS);
|
|
91
64
|
function emptyNetworkTiming() {
|
|
92
65
|
return Object.fromEntries(REALTIME_NETWORK_PHASES.map((phase) => [phase, 0]));
|
|
93
66
|
}
|
|
@@ -99,7 +72,7 @@ function allDenominators(items) {
|
|
|
99
72
|
}
|
|
100
73
|
/** Reject dynamic dimensions before they can become a metric-key convention. */
|
|
101
74
|
export function assertRealtimeTelemetryLowCardinality(record) {
|
|
102
|
-
const allowed = new Set(["event", "schemaVersion", "source", "direction", "sizeClass", "outcome", "items", "occupancy", "timingMs", "denominator", "networkTimingMs", "connectionsReused", "reason"
|
|
75
|
+
const allowed = new Set(["event", "schemaVersion", "source", "direction", "sizeClass", "outcome", "items", "occupancy", "timingMs", "denominator", "networkTimingMs", "connectionsReused", "reason"]);
|
|
103
76
|
if (Object.keys(record).some((key) => !allowed.has(key))) {
|
|
104
77
|
throw new Error("realtime telemetry: record contains a high-cardinality label");
|
|
105
78
|
}
|
|
@@ -109,11 +82,6 @@ export function assertRealtimeTelemetryLowCardinality(record) {
|
|
|
109
82
|
if (record.reason !== undefined && !reasonValues.has(record.reason)) {
|
|
110
83
|
throw new Error("realtime telemetry: record contains an unsupported label value");
|
|
111
84
|
}
|
|
112
|
-
for (const blocker of [record.admissionBlockedBy, record.operationGateBlockedBy]) {
|
|
113
|
-
if (blocker !== undefined && !blockerValues.has(blocker)) {
|
|
114
|
-
throw new Error("realtime telemetry: record contains an unsupported label value");
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
85
|
if (!Number.isSafeInteger(record.items) || record.items < 0)
|
|
118
86
|
throw new Error("realtime telemetry: items must be a non-negative integer");
|
|
119
87
|
if (!Number.isSafeInteger(record.occupancy) || record.occupancy < 0)
|
|
@@ -153,8 +121,6 @@ export class RealtimeTelemetrySpan {
|
|
|
153
121
|
occupancy = 0;
|
|
154
122
|
networkTimingMs = emptyNetworkTiming();
|
|
155
123
|
connectionsReused = 0;
|
|
156
|
-
admissionBlockedBy;
|
|
157
|
-
operationGateBlockedBy;
|
|
158
124
|
get direction() {
|
|
159
125
|
return this.directionValue;
|
|
160
126
|
}
|
|
@@ -173,14 +139,6 @@ export class RealtimeTelemetrySpan {
|
|
|
173
139
|
mark(stage) {
|
|
174
140
|
this.marks.set(stage, this.now());
|
|
175
141
|
}
|
|
176
|
-
/** The first occupant seen holding this op's coordinator lane. */
|
|
177
|
-
recordAdmissionBlocker(blocker) {
|
|
178
|
-
this.admissionBlockedBy ??= blocker;
|
|
179
|
-
}
|
|
180
|
-
/** The first work seen owning the pass scheduler when this op queued there. */
|
|
181
|
-
recordOperationGateBlocker(blocker) {
|
|
182
|
-
this.operationGateBlockedBy ??= blocker;
|
|
183
|
-
}
|
|
184
142
|
/** Records the bounded worker count after the guarded pass has been admitted. */
|
|
185
143
|
setOccupancy(occupancy) {
|
|
186
144
|
if (!Number.isSafeInteger(occupancy) || occupancy < 0) {
|
|
@@ -242,8 +200,6 @@ export class RealtimeTelemetrySpan {
|
|
|
242
200
|
networkTimingMs: { ...this.networkTimingMs },
|
|
243
201
|
connectionsReused: this.connectionsReused,
|
|
244
202
|
...(reason !== undefined ? { reason } : {}),
|
|
245
|
-
...(this.admissionBlockedBy !== undefined ? { admissionBlockedBy: this.admissionBlockedBy } : {}),
|
|
246
|
-
...(this.operationGateBlockedBy !== undefined ? { operationGateBlockedBy: this.operationGateBlockedBy } : {}),
|
|
247
203
|
};
|
|
248
204
|
assertRealtimeTelemetryLowCardinality(record);
|
|
249
205
|
this.sink(record);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"realtime-telemetry.js","sourceRoot":"","sources":["../../src/sync/realtime-telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAC/D,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC;AAEnD,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,OAAO;IACP,UAAU;IACV,QAAQ;IACR,eAAe;IACf,YAAY;IACZ,SAAS;IACT,QAAQ;CACA,CAAC;AAMX
|
|
1
|
+
{"version":3,"file":"realtime-telemetry.js","sourceRoot":"","sources":["../../src/sync/realtime-telemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { describe, expect, it } from "vitest";
|
|
2
2
|
import { createServer } from "node:http";
|
|
3
3
|
import { requestWithKeepAlive } from "../http-keepalive.js";
|
|
4
|
-
import { REALTIME_TELEMETRY_EVENT, REALTIME_TELEMETRY_SCHEMA_VERSION, REALTIME_TIMING_STAGES, measureRealtimeNetworkPhase,
|
|
4
|
+
import { REALTIME_TELEMETRY_EVENT, REALTIME_TELEMETRY_SCHEMA_VERSION, REALTIME_TIMING_STAGES, measureRealtimeNetworkPhase, RealtimeTelemetrySpan, assertRealtimeTelemetryLowCardinality, } from "./realtime-telemetry.js";
|
|
5
5
|
describe("realtime telemetry schema", () => {
|
|
6
6
|
it("partitions distinct marked stages into their own intervals", () => {
|
|
7
7
|
let now = 100;
|
|
@@ -25,7 +25,7 @@ describe("realtime telemetry schema", () => {
|
|
|
25
25
|
expect(records).toEqual([record]);
|
|
26
26
|
expect(record).toEqual({
|
|
27
27
|
event: REALTIME_TELEMETRY_EVENT,
|
|
28
|
-
schemaVersion:
|
|
28
|
+
schemaVersion: 5,
|
|
29
29
|
source: "watcher",
|
|
30
30
|
direction: "push",
|
|
31
31
|
sizeClass: "small",
|
|
@@ -50,7 +50,7 @@ describe("realtime telemetry schema", () => {
|
|
|
50
50
|
network: 2,
|
|
51
51
|
commit: 2,
|
|
52
52
|
},
|
|
53
|
-
networkTimingMs: { apiPresign: 0, s3Request: 0, retryWait: 0, connectionSetup: 0, eventLoopDelay: 0
|
|
53
|
+
networkTimingMs: { apiPresign: 0, s3Request: 0, retryWait: 0, connectionSetup: 0, eventLoopDelay: 0 },
|
|
54
54
|
connectionsReused: 0,
|
|
55
55
|
});
|
|
56
56
|
expect(Object.values(record.timingMs).slice(1).reduce((sum, timing) => sum + timing, 0)).toBeLessThanOrEqual(200);
|
|
@@ -173,8 +173,8 @@ describe("realtime telemetry schema", () => {
|
|
|
173
173
|
now = 145;
|
|
174
174
|
expect(span.finish("durable").timingMs.queue).toBe(15);
|
|
175
175
|
});
|
|
176
|
-
it("uses schema version
|
|
177
|
-
expect(REALTIME_TELEMETRY_SCHEMA_VERSION).toBe(
|
|
176
|
+
it("uses schema version 5 and records admission occupancy with size class", () => {
|
|
177
|
+
expect(REALTIME_TELEMETRY_SCHEMA_VERSION).toBe(5);
|
|
178
178
|
const span = new RealtimeTelemetrySpan("receiver", "pull", 1, () => { });
|
|
179
179
|
span.setOccupancy(2);
|
|
180
180
|
expect(span.finish("durable")).toMatchObject({ occupancy: 2 });
|
|
@@ -190,7 +190,7 @@ describe("realtime telemetry schema", () => {
|
|
|
190
190
|
expect(emitted.denominator[stage]).toBe(emitted.items);
|
|
191
191
|
const record = {
|
|
192
192
|
event: REALTIME_TELEMETRY_EVENT,
|
|
193
|
-
schemaVersion:
|
|
193
|
+
schemaVersion: 5,
|
|
194
194
|
source: "watcher",
|
|
195
195
|
direction: "push",
|
|
196
196
|
sizeClass: "unknown",
|
|
@@ -199,7 +199,7 @@ describe("realtime telemetry schema", () => {
|
|
|
199
199
|
occupancy: 1,
|
|
200
200
|
timingMs: { queue: 0, conflict: 0, worker: 0, operationGate: 0, appendLock: 0, network: 0, commit: 0 },
|
|
201
201
|
denominator: { queue: 1, conflict: 1, worker: 1, operationGate: 1, appendLock: 1, network: 1, commit: 1 },
|
|
202
|
-
networkTimingMs: { apiPresign: 0, s3Request: 0, retryWait: 0, connectionSetup: 0, eventLoopDelay: 0
|
|
202
|
+
networkTimingMs: { apiPresign: 0, s3Request: 0, retryWait: 0, connectionSetup: 0, eventLoopDelay: 0 },
|
|
203
203
|
connectionsReused: 0,
|
|
204
204
|
path: "companies/indigo/private.md",
|
|
205
205
|
};
|
|
@@ -214,7 +214,7 @@ describe("realtime telemetry schema", () => {
|
|
|
214
214
|
span.recordNetworkPhase("s3Request", 34);
|
|
215
215
|
span.recordNetworkPhase("retryWait", 5);
|
|
216
216
|
const record = span.finish("durable");
|
|
217
|
-
expect(record.networkTimingMs).toEqual({ apiPresign: 12, s3Request: 34, retryWait: 5, connectionSetup: 0, eventLoopDelay: 0
|
|
217
|
+
expect(record.networkTimingMs).toEqual({ apiPresign: 12, s3Request: 34, retryWait: 5, connectionSetup: 0, eventLoopDelay: 0 });
|
|
218
218
|
expect(() => assertRealtimeTelemetryLowCardinality({ ...record, networkTimingMs: { ...record.networkTimingMs, extra: 1 } })).toThrow("unsupported network phase");
|
|
219
219
|
expect(() => assertRealtimeTelemetryLowCardinality({ ...record, networkTimingMs: { ...record.networkTimingMs, retryWait: -1 } })).toThrow("retryWait timing is invalid");
|
|
220
220
|
});
|
|
@@ -296,44 +296,5 @@ describe("realtime telemetry schema", () => {
|
|
|
296
296
|
expect(record).toMatchObject({ source: "wake", outcome: "retryable", items: 0 });
|
|
297
297
|
expect(Object.values(record.denominator)).toEqual([0, 0, 0, 0, 0, 0, 0]);
|
|
298
298
|
});
|
|
299
|
-
it("names what held a blocked op at admission and at the operation gate, and nothing for an unblocked op", () => {
|
|
300
|
-
const records = [];
|
|
301
|
-
const blocked = new RealtimeTelemetrySpan("watcher", "push", 1, (value) => records.push(value));
|
|
302
|
-
blocked.recordAdmissionBlocker("realtime:slow");
|
|
303
|
-
blocked.recordOperationGateBlocker("chore:full-reconcile");
|
|
304
|
-
// The first blocker seen is the one that held the op; later ones do not overwrite it.
|
|
305
|
-
blocked.recordOperationGateBlocker("chore:cadence");
|
|
306
|
-
blocked.finish("durable");
|
|
307
|
-
new RealtimeTelemetrySpan("watcher", "push", 1, (value) => records.push(value)).finish("durable");
|
|
308
|
-
expect(records[0]).toMatchObject({
|
|
309
|
-
schemaVersion: 6,
|
|
310
|
-
admissionBlockedBy: "realtime:slow",
|
|
311
|
-
operationGateBlockedBy: "chore:full-reconcile",
|
|
312
|
-
});
|
|
313
|
-
expect(records[1]).not.toHaveProperty("admissionBlockedBy");
|
|
314
|
-
expect(records[1]).not.toHaveProperty("operationGateBlockedBy");
|
|
315
|
-
expect(() => assertRealtimeTelemetryLowCardinality(records[0])).not.toThrow();
|
|
316
|
-
expect(() => assertRealtimeTelemetryLowCardinality(records[1])).not.toThrow();
|
|
317
|
-
});
|
|
318
|
-
it("rejects a blocker label outside the closed set", () => {
|
|
319
|
-
const records = [];
|
|
320
|
-
new RealtimeTelemetrySpan("watcher", "push", 1, (value) => records.push(value)).finish("durable");
|
|
321
|
-
const record = records[0];
|
|
322
|
-
expect(() => assertRealtimeTelemetryLowCardinality({ ...record, operationGateBlockedBy: "chore:companies/indigo" })).toThrow("unsupported label value");
|
|
323
|
-
expect(() => assertRealtimeTelemetryLowCardinality({ ...record, admissionBlockedBy: "watcher" })).toThrow("unsupported label value");
|
|
324
|
-
});
|
|
325
|
-
it("records this op's own governor wait, not the process total", async () => {
|
|
326
|
-
const records = [];
|
|
327
|
-
const span = new RealtimeTelemetrySpan("watcher", "push", 1, (value) => records.push(value));
|
|
328
|
-
recordRealtimeGovernorWait(999); // outside any op: attributed to nobody
|
|
329
|
-
await span.measureNetwork(async () => {
|
|
330
|
-
recordRealtimeGovernorWait(40);
|
|
331
|
-
await measureRealtimeNetworkPhase("s3Request", async () => {
|
|
332
|
-
recordRealtimeGovernorWait(2);
|
|
333
|
-
});
|
|
334
|
-
});
|
|
335
|
-
span.finish("durable");
|
|
336
|
-
expect(records[0].networkTimingMs.governorWait).toBe(42);
|
|
337
|
-
});
|
|
338
299
|
});
|
|
339
300
|
//# sourceMappingURL=realtime-telemetry.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"realtime-telemetry.test.js","sourceRoot":"","sources":["../../src/sync/realtime-telemetry.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"realtime-telemetry.test.js","sourceRoot":"","sources":["../../src/sync/realtime-telemetry.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/dist/daemon.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Background sync daemon management
|
|
3
|
-
* Manages a child process that runs the file watcher
|
|
4
|
-
*
|
|
5
|
-
* Day 1: not invoked by CLI surface; retained for future automatic-sync milestone.
|
|
6
|
-
*/
|
|
7
|
-
import type { DaemonState } from "./types.js";
|
|
8
|
-
export declare function isDaemonRunning(hqRoot: string): boolean;
|
|
9
|
-
export declare function startDaemon(hqRoot: string): void;
|
|
10
|
-
export declare function stopDaemon(hqRoot: string): void;
|
|
11
|
-
export declare function getDaemonState(hqRoot: string): DaemonState | null;
|
|
12
|
-
//# sourceMappingURL=daemon.d.ts.map
|
package/dist/daemon.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAa9C,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAcvD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CA2BhD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAkB/C;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CASjE"}
|
package/dist/daemon.js
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Background sync daemon management
|
|
3
|
-
* Manages a child process that runs the file watcher
|
|
4
|
-
*
|
|
5
|
-
* Day 1: not invoked by CLI surface; retained for future automatic-sync milestone.
|
|
6
|
-
*/
|
|
7
|
-
import * as fs from "fs";
|
|
8
|
-
import * as path from "path";
|
|
9
|
-
import { fork } from "child_process";
|
|
10
|
-
import { fileURLToPath } from "url";
|
|
11
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
12
|
-
const __dirname = path.dirname(__filename);
|
|
13
|
-
function getPidFile(hqRoot) {
|
|
14
|
-
return path.join(hqRoot, ".hq-sync.pid");
|
|
15
|
-
}
|
|
16
|
-
function getStateFile(hqRoot) {
|
|
17
|
-
return path.join(hqRoot, ".hq-sync-daemon.json");
|
|
18
|
-
}
|
|
19
|
-
export function isDaemonRunning(hqRoot) {
|
|
20
|
-
const pidFile = getPidFile(hqRoot);
|
|
21
|
-
if (!fs.existsSync(pidFile))
|
|
22
|
-
return false;
|
|
23
|
-
const pid = parseInt(fs.readFileSync(pidFile, "utf-8").trim(), 10);
|
|
24
|
-
try {
|
|
25
|
-
// signal 0 tests if process exists without killing it
|
|
26
|
-
process.kill(pid, 0);
|
|
27
|
-
return true;
|
|
28
|
-
}
|
|
29
|
-
catch {
|
|
30
|
-
// Process not running, clean up stale PID file
|
|
31
|
-
fs.unlinkSync(pidFile);
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
export function startDaemon(hqRoot) {
|
|
36
|
-
if (isDaemonRunning(hqRoot)) {
|
|
37
|
-
console.log(" Sync daemon is already running.");
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
const workerScript = path.join(__dirname, "daemon-worker.js");
|
|
41
|
-
const child = fork(workerScript, [hqRoot], {
|
|
42
|
-
detached: true,
|
|
43
|
-
stdio: "ignore",
|
|
44
|
-
});
|
|
45
|
-
child.unref();
|
|
46
|
-
if (child.pid) {
|
|
47
|
-
// Write PID file
|
|
48
|
-
fs.writeFileSync(getPidFile(hqRoot), String(child.pid));
|
|
49
|
-
// Write state
|
|
50
|
-
const state = {
|
|
51
|
-
pid: child.pid,
|
|
52
|
-
startedAt: new Date().toISOString(),
|
|
53
|
-
hqRoot,
|
|
54
|
-
};
|
|
55
|
-
fs.writeFileSync(getStateFile(hqRoot), JSON.stringify(state, null, 2));
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
export function stopDaemon(hqRoot) {
|
|
59
|
-
const pidFile = getPidFile(hqRoot);
|
|
60
|
-
if (!fs.existsSync(pidFile)) {
|
|
61
|
-
console.log(" No sync daemon running.");
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
const pid = parseInt(fs.readFileSync(pidFile, "utf-8").trim(), 10);
|
|
65
|
-
try {
|
|
66
|
-
process.kill(pid, "SIGTERM");
|
|
67
|
-
}
|
|
68
|
-
catch {
|
|
69
|
-
// Already dead
|
|
70
|
-
}
|
|
71
|
-
// Clean up files
|
|
72
|
-
if (fs.existsSync(pidFile))
|
|
73
|
-
fs.unlinkSync(pidFile);
|
|
74
|
-
const stateFile = getStateFile(hqRoot);
|
|
75
|
-
if (fs.existsSync(stateFile))
|
|
76
|
-
fs.unlinkSync(stateFile);
|
|
77
|
-
}
|
|
78
|
-
export function getDaemonState(hqRoot) {
|
|
79
|
-
const stateFile = getStateFile(hqRoot);
|
|
80
|
-
if (!fs.existsSync(stateFile))
|
|
81
|
-
return null;
|
|
82
|
-
try {
|
|
83
|
-
const content = fs.readFileSync(stateFile, "utf-8");
|
|
84
|
-
return JSON.parse(content);
|
|
85
|
-
}
|
|
86
|
-
catch {
|
|
87
|
-
return null;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
//# sourceMappingURL=daemon.js.map
|
package/dist/daemon.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
|