@claudexor/daemon 3.3.15 → 3.4.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 (91) hide show
  1. package/dist/command-store.d.ts +3 -0
  2. package/dist/command-store.d.ts.map +1 -1
  3. package/dist/command-store.js +4 -0
  4. package/dist/command-store.js.map +1 -1
  5. package/dist/daemon-listen.d.ts +10 -0
  6. package/dist/daemon-listen.d.ts.map +1 -0
  7. package/dist/daemon-listen.js +36 -0
  8. package/dist/daemon-listen.js.map +1 -0
  9. package/dist/index.d.ts +3 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +3 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/interactions.d.ts +3 -0
  14. package/dist/interactions.d.ts.map +1 -1
  15. package/dist/interactions.js +4 -0
  16. package/dist/interactions.js.map +1 -1
  17. package/dist/journal-manager-lifecycle.d.ts +8 -0
  18. package/dist/journal-manager-lifecycle.d.ts.map +1 -0
  19. package/dist/journal-manager-lifecycle.js +2 -0
  20. package/dist/journal-manager-lifecycle.js.map +1 -0
  21. package/dist/journal-manager.d.ts +21 -11
  22. package/dist/journal-manager.d.ts.map +1 -1
  23. package/dist/journal-manager.js +234 -198
  24. package/dist/journal-manager.js.map +1 -1
  25. package/dist/journal-prepared-operation.d.ts +53 -0
  26. package/dist/journal-prepared-operation.d.ts.map +1 -0
  27. package/dist/journal-prepared-operation.js +158 -0
  28. package/dist/journal-prepared-operation.js.map +1 -0
  29. package/dist/journal-projection-slot.d.ts +28 -0
  30. package/dist/journal-projection-slot.d.ts.map +1 -0
  31. package/dist/journal-projection-slot.js +71 -0
  32. package/dist/journal-projection-slot.js.map +1 -0
  33. package/dist/journal-projection.d.ts +2 -0
  34. package/dist/journal-projection.d.ts.map +1 -1
  35. package/dist/journal-recovery-files.d.ts +19 -1
  36. package/dist/journal-recovery-files.d.ts.map +1 -1
  37. package/dist/journal-recovery-files.js +271 -26
  38. package/dist/journal-recovery-files.js.map +1 -1
  39. package/dist/journal-recovery-operation.d.ts +27 -0
  40. package/dist/journal-recovery-operation.d.ts.map +1 -0
  41. package/dist/journal-recovery-operation.js +68 -0
  42. package/dist/journal-recovery-operation.js.map +1 -0
  43. package/dist/project-partition-preparation.d.ts +75 -0
  44. package/dist/project-partition-preparation.d.ts.map +1 -0
  45. package/dist/project-partition-preparation.js +233 -0
  46. package/dist/project-partition-preparation.js.map +1 -0
  47. package/dist/project-partitions.d.ts +18 -16
  48. package/dist/project-partitions.d.ts.map +1 -1
  49. package/dist/project-partitions.js +98 -99
  50. package/dist/project-partitions.js.map +1 -1
  51. package/dist/project-thread-listing.d.ts +14 -0
  52. package/dist/project-thread-listing.d.ts.map +1 -0
  53. package/dist/project-thread-listing.js +37 -0
  54. package/dist/project-thread-listing.js.map +1 -0
  55. package/dist/quota-projection.d.ts +9 -0
  56. package/dist/quota-projection.d.ts.map +1 -0
  57. package/dist/quota-projection.js +10 -0
  58. package/dist/quota-projection.js.map +1 -0
  59. package/dist/quota-registry.d.ts +3 -5
  60. package/dist/quota-registry.d.ts.map +1 -1
  61. package/dist/quota-registry.js +9 -10
  62. package/dist/quota-registry.js.map +1 -1
  63. package/dist/root-authority.d.ts +68 -0
  64. package/dist/root-authority.d.ts.map +1 -0
  65. package/dist/root-authority.js +380 -0
  66. package/dist/root-authority.js.map +1 -0
  67. package/dist/rpc-followers.d.ts +17 -0
  68. package/dist/rpc-followers.d.ts.map +1 -0
  69. package/dist/rpc-followers.js +46 -0
  70. package/dist/rpc-followers.js.map +1 -0
  71. package/dist/server.d.ts +4 -1
  72. package/dist/server.d.ts.map +1 -1
  73. package/dist/server.js +42 -62
  74. package/dist/server.js.map +1 -1
  75. package/dist/serving-admission.d.ts +21 -0
  76. package/dist/serving-admission.d.ts.map +1 -0
  77. package/dist/serving-admission.js +17 -0
  78. package/dist/serving-admission.js.map +1 -0
  79. package/dist/terminate.d.ts +18 -7
  80. package/dist/terminate.d.ts.map +1 -1
  81. package/dist/terminate.js +213 -69
  82. package/dist/terminate.js.map +1 -1
  83. package/dist/token.d.ts +6 -0
  84. package/dist/token.d.ts.map +1 -1
  85. package/dist/token.js +8 -0
  86. package/dist/token.js.map +1 -1
  87. package/dist/writer-lease.d.ts +76 -4
  88. package/dist/writer-lease.d.ts.map +1 -1
  89. package/dist/writer-lease.js +346 -56
  90. package/dist/writer-lease.js.map +1 -1
  91. package/package.json +5 -5
package/dist/terminate.js CHANGED
@@ -1,5 +1,122 @@
1
1
  import { compareProcessIdentity, defaultProcessIdentityService, } from "@claudexor/core";
2
- import { daemonLeaseOwner, processIsAlive } from "./writer-lease.js";
2
+ import { classifyDaemonLeaseOwner, inspectDaemonWriterLease, processIsAlive, } from "./writer-lease.js";
3
+ const DEFAULT_LEASE_AUTHORITY = {
4
+ inspect: (socketPath) => inspectDaemonWriterLease(socketPath),
5
+ classify: (owner) => classifyDaemonLeaseOwner(owner),
6
+ };
7
+ function compatibilityObservation(identity) {
8
+ return { identity, linuxState: null };
9
+ }
10
+ function compatibilityUnknownObservation(owner) {
11
+ return compatibilityObservation({
12
+ status: "unknown",
13
+ pid: owner.pid,
14
+ platform: process.platform,
15
+ reason: "unsupported_platform",
16
+ });
17
+ }
18
+ function classifyCompatibilityIdentity(owner, identity) {
19
+ if (!owner.identity) {
20
+ return {
21
+ status: "capable",
22
+ reason: "legacy_process_present",
23
+ observation: compatibilityUnknownObservation(owner),
24
+ };
25
+ }
26
+ const observed = identity.read(owner.pid);
27
+ const observation = compatibilityObservation(observed);
28
+ if (observed.status === "missing") {
29
+ return { status: "proven_stale", reason: "process_missing", observation };
30
+ }
31
+ if (observed.status === "known") {
32
+ return compareProcessIdentity(owner.identity, observed) === "same"
33
+ ? { status: "capable", reason: "identity_match", observation }
34
+ : { status: "proven_stale", reason: "identity_mismatch", observation };
35
+ }
36
+ return { status: "unknown", reason: "identity_unavailable", observation };
37
+ }
38
+ /**
39
+ * Patch-compatible dependency adapter for callers that supplied the old
40
+ * identity/isAlive test seams. It is unreachable from normal production and
41
+ * from the explicit strict fourth-argument authority. Filesystem inspection
42
+ * remains strict; only a valid owner's injected process capability follows the
43
+ * old isAlive-before-identity order. The shared termination loop still owns
44
+ * target pinning, successor refusal, and explicit-owner-only signal authority.
45
+ */
46
+ function createCompatibilityLeaseAuthority(identity, isAlive) {
47
+ const classify = (owner) => {
48
+ if (!isAlive(owner.pid)) {
49
+ return {
50
+ status: "proven_stale",
51
+ reason: "process_missing",
52
+ observation: compatibilityObservation({
53
+ status: "missing",
54
+ pid: owner.pid,
55
+ platform: process.platform,
56
+ }),
57
+ };
58
+ }
59
+ return classifyCompatibilityIdentity(owner, identity);
60
+ };
61
+ return {
62
+ inspect: (socketPath) => {
63
+ const current = inspectDaemonWriterLease(socketPath);
64
+ return current.status === "owned"
65
+ ? {
66
+ ...current,
67
+ // Inspection proves only that a valid record is present. The
68
+ // shared loop classifies the pinned target exactly once; this
69
+ // placeholder also preserves old successor refusal semantics.
70
+ capability: {
71
+ status: "capable",
72
+ reason: "legacy_process_present",
73
+ observation: compatibilityUnknownObservation(current.owner),
74
+ },
75
+ }
76
+ : current;
77
+ },
78
+ classify,
79
+ };
80
+ }
81
+ function sameOwner(left, right) {
82
+ return left.pid === right.pid && left.token === right.token;
83
+ }
84
+ function staleOwnerDetail(owner, capability) {
85
+ if (capability.status !== "proven_stale")
86
+ return `daemon pid ${owner.pid} exited`;
87
+ switch (capability.reason) {
88
+ case "process_missing":
89
+ return `daemon pid ${owner.pid} is gone`;
90
+ case "identity_mismatch":
91
+ return `pid ${owner.pid} was recycled by another process (never signalled)`;
92
+ case "linux_zombie":
93
+ return `daemon pid ${owner.pid} is a Linux zombie (never signalled)`;
94
+ }
95
+ }
96
+ function staleOwnerOutcome(owner, capability, current, requireNoSuccessor, killed) {
97
+ const successor = current.status === "owned" && !sameOwner(current.owner, owner) ? current : null;
98
+ if (requireNoSuccessor) {
99
+ if (current.status === "unknown") {
100
+ return {
101
+ outcome: "still_alive",
102
+ detail: `daemon pid ${owner.pid} exited but writer-lease activity is unknown (${current.reason})`,
103
+ };
104
+ }
105
+ if (successor && successor.capability.status !== "proven_stale") {
106
+ return {
107
+ outcome: "still_alive",
108
+ detail: `daemon pid ${owner.pid} exited but successor pid ${successor.owner.pid} owns the writer lease`,
109
+ };
110
+ }
111
+ }
112
+ const successorDetail = successor
113
+ ? ` (writer lease now records stale pid ${successor.owner.pid})`
114
+ : "";
115
+ return {
116
+ outcome: killed ? "killed" : "exited",
117
+ detail: `${staleOwnerDetail(owner, capability)}${successorDetail}`,
118
+ };
119
+ }
3
120
  /**
4
121
  * Await the CONFIRMED death of the daemon owning `socketPath`'s writer lease
5
122
  * (W3.5): "stop requested" is not "stopped" — a disposer that removes state
@@ -12,77 +129,84 @@ import { daemonLeaseOwner, processIsAlive } from "./writer-lease.js";
12
129
  * window (the app auto-starts one) could be waited on — and SIGKILLed — in
13
130
  * place of the process we were asked to stop.
14
131
  *
15
- * Confirmed death = the pinned owner's lease is gone or taken over by a
16
- * different token/pid, or its pid is gone/recycled. Past the graceful window a
17
- * SIGKILL is sent ONLY when the pinned birth identity still matches the live
18
- * process (a recycled pid is never signalled, sol #5); without a verifiable
19
- * identity this fails closed to an honest `still_alive`.
132
+ * Confirmed death = the pinned owner released its lease, or the canonical
133
+ * classifier proves its pid missing, recycled, or a Linux zombie. A takeover
134
+ * alone does not prove that the old owner exited. Past the graceful window a
135
+ * SIGKILL is sent ONLY when an explicitly supplied pinned birth identity still
136
+ * matches the process in that same iteration; without that proof this fails
137
+ * closed to an honest `still_alive`.
20
138
  */
21
- export async function awaitDaemonTermination(socketPath, options = {}, deps = {}) {
139
+ export async function awaitDaemonTermination(socketPath, options = {}, deps = {}, leaseAuthority) {
22
140
  const deadlineMs = options.deadlineMs ?? 20_000;
23
141
  const killAfterMs = options.killAfterMs ?? 17_000;
24
142
  const allowSigkill = options.allowSigkill ?? false;
25
143
  const pollMs = options.pollMs ?? 150;
26
- const identity = deps.identity ?? defaultProcessIdentityService;
27
- const kill = deps.kill ?? ((pid, signal) => process.kill(pid, signal));
28
- const isAlive = deps.isAlive ?? processIsAlive;
29
- const sleep = deps.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
30
- const now = deps.now ?? Date.now;
144
+ // Legacy execution dependencies retain their one-read accessor behavior.
145
+ const configuredKill = deps.kill;
146
+ const configuredSleep = deps.sleep;
147
+ const configuredNow = deps.now;
148
+ const kill = configuredKill ?? ((pid, signal) => process.kill(pid, signal));
149
+ const sleep = configuredSleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
150
+ const now = configuredNow ?? Date.now;
151
+ let authority;
152
+ let classifySignalTarget;
153
+ if (leaseAuthority) {
154
+ authority = leaseAuthority;
155
+ classifySignalTarget = (owner) => leaseAuthority.classify(owner);
156
+ }
157
+ else {
158
+ // Do not even inspect the old policy getters when an explicit fourth
159
+ // authority is present. Without one, capture each exactly once and enable
160
+ // compatibility only when the caller actually supplied that seam.
161
+ const configuredIdentity = deps.identity;
162
+ const configuredIsAlive = deps.isAlive;
163
+ if (configuredIdentity !== undefined || configuredIsAlive !== undefined) {
164
+ const identity = configuredIdentity ?? defaultProcessIdentityService;
165
+ authority = createCompatibilityLeaseAuthority(identity, configuredIsAlive ?? processIsAlive);
166
+ classifySignalTarget = (owner) => classifyCompatibilityIdentity(owner, identity);
167
+ }
168
+ else {
169
+ authority = DEFAULT_LEASE_AUTHORITY;
170
+ classifySignalTarget = (owner) => DEFAULT_LEASE_AUTHORITY.classify(owner);
171
+ }
172
+ }
31
173
  const start = now();
32
174
  let killed = false;
33
175
  let noKillReason = null;
176
+ let current = authority.inspect(socketPath);
34
177
  // The ONE owner this call is about. Everything below judges the world
35
178
  // against this snapshot — never against whoever holds the lease later.
36
- const owner = options.expectedOwner ?? daemonLeaseOwner(socketPath);
37
- if (!owner)
38
- return { outcome: "exited", detail: "no daemon owns the writer lease" };
39
- for (;;) {
40
- const current = daemonLeaseOwner(socketPath);
41
- if (!current) {
179
+ let owner = options.expectedOwner;
180
+ if (!owner) {
181
+ if (current.status === "absent") {
182
+ return { outcome: "exited", detail: "no daemon owns the writer lease" };
183
+ }
184
+ if (current.status === "unknown") {
42
185
  return {
43
- outcome: killed ? "killed" : "exited",
44
- detail: killed ? "daemon exited after SIGKILL escalation" : "daemon released its lease",
186
+ outcome: "still_alive",
187
+ detail: `daemon activity is unknown (${current.reason})`,
45
188
  };
46
189
  }
47
- // A different token/pid holds the lease: the pinned daemon released it and
48
- // a REPLACEMENT took over. The one we were asked to stop is gone — confirm
49
- // that, and never touch the newcomer.
50
- if (current.token !== owner.token || current.pid !== owner.pid) {
51
- // Takeover proves OWNERSHIP changed, not that the old daemon died
52
- // (release wave tier1 #2): confirm the pinned pid is actually gone
53
- // before reporting exit; a still-alive old process keeps this loop
54
- // (and its escalation) on the case.
55
- if (!isAlive(owner.pid)) {
56
- if (options.requireNoSuccessor) {
57
- return {
58
- outcome: "still_alive",
59
- detail: `daemon pid ${owner.pid} exited but successor pid ${current.pid} owns the writer lease`,
60
- };
61
- }
62
- return {
63
- outcome: killed ? "killed" : "exited",
64
- detail: `daemon pid ${owner.pid} released its lease (now held by pid ${current.pid})`,
65
- };
66
- }
190
+ if (current.capability.status === "proven_stale") {
191
+ return { outcome: "exited", detail: staleOwnerDetail(current.owner, current.capability) };
67
192
  }
68
- else if (!isAlive(owner.pid)) {
193
+ owner = current.owner;
194
+ }
195
+ const explicitOwner = options.expectedOwner !== undefined;
196
+ for (;;) {
197
+ if (current.status === "absent") {
69
198
  return {
70
199
  outcome: killed ? "killed" : "exited",
71
- detail: `daemon pid ${owner.pid} is gone (stale lease left behind)`,
200
+ detail: killed ? "daemon exited after SIGKILL escalation" : "daemon released its lease",
72
201
  };
73
202
  }
74
- if (owner.identity) {
75
- const observed = identity.read(owner.pid);
76
- if (observed.status === "missing") {
77
- return { outcome: killed ? "killed" : "exited", detail: `daemon pid ${owner.pid} is gone` };
78
- }
79
- if (observed.status === "known" &&
80
- compareProcessIdentity(owner.identity, observed) === "different") {
81
- return {
82
- outcome: "exited",
83
- detail: `pid ${owner.pid} was recycled by another process (never signalled)`,
84
- };
85
- }
203
+ // The current lease record may have the same pid/token but different
204
+ // identity bytes. Classify the immutable pinned target itself every time;
205
+ // a current record's capability may describe only a successor/current
206
+ // generation and can never lend signal authority to the target.
207
+ const targetCapability = authority.classify(owner);
208
+ if (targetCapability.status === "proven_stale") {
209
+ return staleOwnerOutcome(owner, targetCapability, current, options.requireNoSuccessor, killed);
86
210
  }
87
211
  const elapsed = now() - start;
88
212
  if (elapsed >= deadlineMs) {
@@ -97,27 +221,47 @@ export async function awaitDaemonTermination(socketPath, options = {}, deps = {}
97
221
  if (!killed && elapsed >= killAfterMs) {
98
222
  if (!allowSigkill) {
99
223
  noKillReason = `daemon pid ${owner.pid} is still alive; SIGKILL withheld (caller has no signal authority)`;
100
- await sleep(pollMs);
101
- continue;
102
224
  }
103
- // Escalate ONLY under a verified identity match observed THIS iteration.
104
- const observed = owner.identity ? identity.read(owner.pid) : null;
105
- if (owner.identity &&
106
- observed?.status === "known" &&
107
- compareProcessIdentity(owner.identity, observed) === "same") {
108
- try {
109
- kill(owner.pid, "SIGKILL");
110
- killed = true;
111
- }
112
- catch {
113
- /* delivery raced its exit; the next poll observes the truth */
114
- }
225
+ else if (!explicitOwner) {
226
+ noKillReason = `daemon pid ${owner.pid} is still alive; SIGKILL withheld (no explicit expected owner)`;
227
+ }
228
+ else if (current.status === "unknown") {
229
+ noKillReason = `daemon pid ${owner.pid} is still alive; SIGKILL withheld (writer-lease authority unknown)`;
230
+ }
231
+ else if (!owner.identity) {
232
+ noKillReason = `daemon pid ${owner.pid} is still alive; SIGKILL withheld (no recorded birth identity)`;
115
233
  }
116
234
  else {
117
- noKillReason = `daemon pid ${owner.pid} is still alive; SIGKILL withheld (${owner.identity ? "identity unverifiable" : "no recorded birth identity"})`;
235
+ // Time and injected dependencies may advance between the loop's exit
236
+ // classification and this escalation point. Only a second proof made
237
+ // immediately before delivery can authorize a signal.
238
+ const signalCapability = classifySignalTarget(owner);
239
+ if (signalCapability.status === "proven_stale") {
240
+ // Runtime replacement must also refuse a successor that appeared
241
+ // during the pre-signal identity recheck. The loop's `current`
242
+ // snapshot predates `now()` and this second classification, so it
243
+ // cannot prove the no-successor condition at this return boundary.
244
+ // Other callers preserve their existing inspection/call counts.
245
+ const requireNoSuccessor = options.requireNoSuccessor;
246
+ const exitCurrent = requireNoSuccessor ? authority.inspect(socketPath) : current;
247
+ return staleOwnerOutcome(owner, signalCapability, exitCurrent, requireNoSuccessor, killed);
248
+ }
249
+ if (signalCapability.status === "capable" && signalCapability.reason === "identity_match") {
250
+ try {
251
+ kill(owner.pid, "SIGKILL");
252
+ killed = true;
253
+ }
254
+ catch {
255
+ /* delivery raced its exit; the next poll observes the truth */
256
+ }
257
+ }
258
+ else {
259
+ noKillReason = `daemon pid ${owner.pid} is still alive; SIGKILL withheld (identity unverifiable)`;
260
+ }
118
261
  }
119
262
  }
120
263
  await sleep(pollMs);
264
+ current = authority.inspect(socketPath);
121
265
  }
122
266
  }
123
267
  //# sourceMappingURL=terminate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"terminate.js","sourceRoot":"","sources":["../src/terminate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminate.js","sourceRoot":"","sources":["../src/terminate.ts"],"names":[],"mappings":"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"}
package/dist/token.d.ts CHANGED
@@ -13,6 +13,12 @@ export declare function ensureDaemonRuntimeRoot(): string;
13
13
  * D30 shape) get distinct endpoints, exactly like distinct socket files do.
14
14
  */
15
15
  export declare function defaultSocketPath(platform?: NodeJS.Platform): string;
16
+ /** The data root's canonical default endpoint, ignoring any socket-spelling
17
+ * override. The issue #165 root-authority barrier anchors HERE (D4): authority
18
+ * follows the data root, so runtimes with custom socket spellings still share
19
+ * one root authority, and the legacy barrier stays at the address pre-fix
20
+ * runtimes contend on. */
21
+ export declare function canonicalDefaultSocketPath(platform?: NodeJS.Platform): string;
16
22
  /** Whether a control endpoint is a Windows named pipe rather than a socket FILE. */
17
23
  export declare function isWindowsPipePath(path: string): boolean;
18
24
  export declare function logPath(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"AAyBA,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAShD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAAG,MAAM,CAUtF;AAED,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,OAAO,IAAI,MAAM,CAEhC;AAED,gFAAgF;AAChF,wBAAgB,WAAW,IAAI,MAAM,CAgCpC;AAED,wBAAgB,SAAS,IAAI,MAAM,GAAG,IAAI,CAOzC;AAsBD;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAgCpC"}
1
+ {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"AAyBA,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAShD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAAG,MAAM,CAItF;AAED;;;;0BAI0B;AAC1B,wBAAgB,0BAA0B,CAAC,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAAG,MAAM,CAQ/F;AAED,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,OAAO,IAAI,MAAM,CAEhC;AAED,gFAAgF;AAChF,wBAAgB,WAAW,IAAI,MAAM,CAgCpC;AAED,wBAAgB,SAAS,IAAI,MAAM,GAAG,IAAI,CAOzC;AAsBD;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAgCpC"}
package/dist/token.js CHANGED
@@ -33,6 +33,14 @@ export function defaultSocketPath(platform = process.platform) {
33
33
  const override = process.env.CLAUDEXOR_DAEMON_SOCK;
34
34
  if (override)
35
35
  return override;
36
+ return canonicalDefaultSocketPath(platform);
37
+ }
38
+ /** The data root's canonical default endpoint, ignoring any socket-spelling
39
+ * override. The issue #165 root-authority barrier anchors HERE (D4): authority
40
+ * follows the data root, so runtimes with custom socket spellings still share
41
+ * one root authority, and the legacy barrier stays at the address pre-fix
42
+ * runtimes contend on. */
43
+ export function canonicalDefaultSocketPath(platform = process.platform) {
36
44
  if (platform === "win32") {
37
45
  const digest = sha256(resolve(daemonDir()))
38
46
  .replace(/^sha256:/, "")
package/dist/token.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"token.js","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,28 @@
1
- import { type KnownProcessIdentity, type ProcessIdentityReader } from "@claudexor/core";
1
+ import { type Stats } from "node:fs";
2
+ import { type KnownProcessIdentity, type ProcessIdentityReader, type ProcessObservation, type ProcessObservationReader } from "@claudexor/core";
3
+ /** Marker file whose presence turns a lease directory into the permanent
4
+ * root-authority barrier (issue #165 D1). The barrier directory deliberately
5
+ * carries NO top-level owner.json: a pre-fix claimant's lease parse fails
6
+ * closed on it forever, so it can never quarantine the barrier and take over
7
+ * a data root last served by a fixed runtime. */
8
+ export declare const ROOT_AUTHORITY_MARKER_FILE = "root-authority-v2.json";
2
9
  /**
3
- * Filesystem home of the single-writer lease for a control endpoint. A Unix
10
+ * Filesystem anchor of the single-writer lease for a control endpoint. A Unix
4
11
  * socket FILE anchors its lease right next to itself; a named pipe is not a
5
12
  * filesystem entry (nothing can be created in `\\.\pipe\`), so its lease lives
6
13
  * in the daemon dir under the pipe's own final segment — which already carries
7
14
  * the config-dir digest, keeping concurrent daemons' leases distinct.
8
15
  */
16
+ export declare function writerLeaseAnchorPath(socketPath: string): string;
17
+ /**
18
+ * Effective single-writer lease address. Once the anchor directory carries the
19
+ * permanent root-authority barrier marker (issue #165 D1/D4), the live claim
20
+ * for every FIXED runtime moves to the nested `active.writer` slot inside the
21
+ * barrier, so inspection, acquisition, termination and operator stop all keep
22
+ * following one canonical address. Pre-fix runtimes never resolve the nested
23
+ * slot — they contend on the anchor itself, where the opaque barrier refuses
24
+ * them. Without a marker the anchor stays the (legacy-compatible) address.
25
+ */
9
26
  export declare function writerLeasePath(socketPath: string): string;
10
27
  export interface DaemonWriterLease {
11
28
  readonly path: string;
@@ -23,11 +40,66 @@ export interface DaemonLeaseOwner {
23
40
  * Absent on legacy leases or when the platform cannot observe identity. */
24
41
  identity?: KnownProcessIdentity;
25
42
  }
43
+ export type DaemonLeaseOwnerCapability = {
44
+ status: "capable";
45
+ reason: "identity_match" | "legacy_process_present";
46
+ observation: ProcessObservation;
47
+ } | {
48
+ status: "proven_stale";
49
+ reason: "process_missing" | "identity_mismatch" | "linux_zombie";
50
+ observation: ProcessObservation;
51
+ } | {
52
+ status: "unknown";
53
+ reason: "identity_unavailable" | "presence_unknown";
54
+ observation: ProcessObservation;
55
+ };
56
+ export type DaemonWriterLeaseUnknownReason = "lease_unreadable" | "lease_unstable" | "invalid_lease_path" | "owner_missing" | "owner_unreadable" | "owner_malformed";
57
+ export type DaemonWriterLeaseStatus = {
58
+ status: "absent";
59
+ path: string;
60
+ } | {
61
+ status: "owned";
62
+ path: string;
63
+ owner: DaemonLeaseOwner;
64
+ capability: DaemonLeaseOwnerCapability;
65
+ } | {
66
+ status: "unknown";
67
+ path: string;
68
+ reason: DaemonWriterLeaseUnknownReason;
69
+ };
70
+ /** Narrow synchronous seam used to deterministically exercise failure/race branches. */
71
+ export interface DaemonWriterLeaseFilesystem {
72
+ lstat(path: string): Stats;
73
+ readText(path: string): string;
74
+ createLeaseDirectory(path: string): void;
75
+ writeOwner(path: string, data: string): void;
76
+ rename(from: string, to: string): void;
77
+ remove(path: string): void;
78
+ }
79
+ export interface DaemonWriterLeaseDependencies {
80
+ identity?: ProcessIdentityReader;
81
+ /** Explicit observation capability; never inferred from an identity reader by property name. */
82
+ observation?: ProcessObservationReader;
83
+ /** Signal-zero probe: return for present, throw an errno-bearing error otherwise. */
84
+ probeProcess?: (pid: number) => void;
85
+ filesystem?: Partial<DaemonWriterLeaseFilesystem>;
86
+ }
87
+ /** Resolved filesystem seam. The root-authority in-place migration (C4)
88
+ * shares it so its atomic steps stay deterministically observable in tests. */
89
+ export declare function resolveWriterLeaseFilesystem(deps: DaemonWriterLeaseDependencies): DaemonWriterLeaseFilesystem;
90
+ export declare function classifyDaemonLeaseOwner(owner: DaemonLeaseOwner, deps?: DaemonWriterLeaseDependencies): DaemonLeaseOwnerCapability;
91
+ /** Strict authority read: only a physically missing lease path is `absent`. */
92
+ export declare function inspectDaemonWriterLease(socketPath: string, deps?: DaemonWriterLeaseDependencies): DaemonWriterLeaseStatus;
93
+ export declare function writerLeaseTombstonePath(leasePath: string, owner: DaemonLeaseOwner): string;
26
94
  /** Claim single-writer authority before any daemon journal is opened. */
27
95
  export declare function acquireDaemonWriterLease(socketPath: string, deps?: {
28
96
  identity?: ProcessIdentityReader;
29
- }): DaemonWriterLease;
30
- /** Read the current writer-lease owner for a socket path (null when free). */
97
+ }, acquisitionDeps?: Omit<DaemonWriterLeaseDependencies, "identity">): DaemonWriterLease;
98
+ /**
99
+ * Lossy patch-compatible projection. `null` does not prove the lease path is
100
+ * physically absent; authority-sensitive callers must use strict inspection.
101
+ */
31
102
  export declare function daemonLeaseOwner(socketPath: string): DaemonLeaseOwner | null;
103
+ /** Raw signal-zero presence helper; daemon serviceability uses the classifier. */
32
104
  export declare function processIsAlive(pid: number): boolean;
33
105
  //# sourceMappingURL=writer-lease.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"writer-lease.d.ts","sourceRoot":"","sources":["../src/writer-lease.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC3B,MAAM,iBAAiB,CAAC;AAGzB;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;gEAE4D;IAC5D,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd;;+EAE2E;IAC3E,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC;AAED,yEAAyE;AACzE,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,qBAAqB,CAAA;CAAO,GAC9C,iBAAiB,CA6CnB;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAE5E;AAiCD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOnD"}
1
+ {"version":3,"file":"writer-lease.d.ts","sourceRoot":"","sources":["../src/writer-lease.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,KAAK,EACX,MAAM,SAAS,CAAC;AAEjB,OAAO,EAML,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC9B,MAAM,iBAAiB,CAAC;AAGzB;;;;iDAIiD;AACjD,eAAO,MAAM,0BAA0B,2BAA2B,CAAC;AAInE;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAMhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAU1D;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;gEAE4D;IAC5D,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd;;+EAE2E;IAC3E,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC;AAED,MAAM,MAAM,0BAA0B,GAClC;IACE,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,gBAAgB,GAAG,wBAAwB,CAAC;IACpD,WAAW,EAAE,kBAAkB,CAAC;CACjC,GACD;IACE,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,iBAAiB,GAAG,mBAAmB,GAAG,cAAc,CAAC;IACjE,WAAW,EAAE,kBAAkB,CAAC;CACjC,GACD;IACE,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,sBAAsB,GAAG,kBAAkB,CAAC;IACpD,WAAW,EAAE,kBAAkB,CAAC;CACjC,CAAC;AAEN,MAAM,MAAM,8BAA8B,GACtC,kBAAkB,GAClB,gBAAgB,GAChB,oBAAoB,GACpB,eAAe,GACf,kBAAkB,GAClB,iBAAiB,CAAC;AAEtB,MAAM,MAAM,uBAAuB,GAC/B;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClC;IACE,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,gBAAgB,CAAC;IACxB,UAAU,EAAE,0BAA0B,CAAC;CACxC,GACD;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,8BAA8B,CAAA;CAAE,CAAC;AAOhF,wFAAwF;AACxF,MAAM,WAAW,2BAA2B;IAC1C,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,gGAAgG;IAChG,WAAW,CAAC,EAAE,wBAAwB,CAAC;IACvC,qFAAqF;IACrF,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC;CACnD;AAmBD;+EAC+E;AAC/E,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,6BAA6B,GAClC,2BAA2B,CAE7B;AA2ID,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,gBAAgB,EACvB,IAAI,GAAE,6BAAkC,GACvC,0BAA0B,CAwC5B;AAED,+EAA+E;AAC/E,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,6BAAkC,GACvC,uBAAuB,CAkBzB;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAO3F;AAyCD,yEAAyE;AACzE,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,qBAAqB,CAAA;CAAO,EAC/C,eAAe,GAAE,IAAI,CAAC,6BAA6B,EAAE,UAAU,CAAM,GACpE,iBAAiB,CA6EnB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAE5E;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOnD"}