@claudexor/cli 3.3.16 → 3.4.1

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 (99) hide show
  1. package/dist/acp-surface-runner.d.ts +3 -2
  2. package/dist/acp-surface-runner.d.ts.map +1 -1
  3. package/dist/acp-surface-runner.js +20 -17
  4. package/dist/acp-surface-runner.js.map +1 -1
  5. package/dist/claudexord-entry.d.ts +7 -0
  6. package/dist/claudexord-entry.d.ts.map +1 -1
  7. package/dist/claudexord-entry.js +14 -0
  8. package/dist/claudexord-entry.js.map +1 -1
  9. package/dist/claudexord.d.ts +0 -10
  10. package/dist/claudexord.d.ts.map +1 -1
  11. package/dist/claudexord.js +95 -100
  12. package/dist/claudexord.js.map +1 -1
  13. package/dist/cli.js +10 -12
  14. package/dist/cli.js.map +1 -1
  15. package/dist/control-services.d.ts +26 -23
  16. package/dist/control-services.d.ts.map +1 -1
  17. package/dist/control-services.js +22 -21
  18. package/dist/control-services.js.map +1 -1
  19. package/dist/daemon-admission-runtime.d.ts +63 -0
  20. package/dist/daemon-admission-runtime.d.ts.map +1 -0
  21. package/dist/daemon-admission-runtime.js +180 -0
  22. package/dist/daemon-admission-runtime.js.map +1 -0
  23. package/dist/daemon-launch.d.ts +53 -0
  24. package/dist/daemon-launch.d.ts.map +1 -0
  25. package/dist/daemon-launch.js +211 -0
  26. package/dist/daemon-launch.js.map +1 -0
  27. package/dist/daemon-lifecycle.d.ts +14 -2
  28. package/dist/daemon-lifecycle.d.ts.map +1 -1
  29. package/dist/daemon-lifecycle.js +53 -10
  30. package/dist/daemon-lifecycle.js.map +1 -1
  31. package/dist/daemon-run.d.ts +6 -1
  32. package/dist/daemon-run.d.ts.map +1 -1
  33. package/dist/daemon-run.js +70 -19
  34. package/dist/daemon-run.js.map +1 -1
  35. package/dist/daemon-start-report.d.ts +8 -0
  36. package/dist/daemon-start-report.d.ts.map +1 -0
  37. package/dist/daemon-start-report.js +24 -0
  38. package/dist/daemon-start-report.js.map +1 -0
  39. package/dist/daemon-startup.d.ts +90 -0
  40. package/dist/daemon-startup.d.ts.map +1 -0
  41. package/dist/daemon-startup.js +156 -0
  42. package/dist/daemon-startup.js.map +1 -0
  43. package/dist/engine-skew.d.ts +4 -0
  44. package/dist/engine-skew.d.ts.map +1 -1
  45. package/dist/engine-skew.js +10 -3
  46. package/dist/engine-skew.js.map +1 -1
  47. package/dist/mcp-run-projections.d.ts +78 -1
  48. package/dist/mcp-run-projections.d.ts.map +1 -1
  49. package/dist/mcp-run-projections.js +57 -3
  50. package/dist/mcp-run-projections.js.map +1 -1
  51. package/dist/mcp-runner.d.ts.map +1 -1
  52. package/dist/mcp-runner.js +41 -37
  53. package/dist/mcp-runner.js.map +1 -1
  54. package/dist/native-login.d.ts.map +1 -1
  55. package/dist/native-login.js +3 -7
  56. package/dist/native-login.js.map +1 -1
  57. package/dist/ops-commands.d.ts +9 -0
  58. package/dist/ops-commands.d.ts.map +1 -1
  59. package/dist/ops-commands.js +61 -66
  60. package/dist/ops-commands.js.map +1 -1
  61. package/dist/ops-harness-selection.d.ts +6 -0
  62. package/dist/ops-harness-selection.d.ts.map +1 -0
  63. package/dist/ops-harness-selection.js +29 -0
  64. package/dist/ops-harness-selection.js.map +1 -0
  65. package/dist/orphan-sweeper.js +13 -3
  66. package/dist/orphan-sweeper.js.map +1 -1
  67. package/dist/remote-command.d.ts +10 -1
  68. package/dist/remote-command.d.ts.map +1 -1
  69. package/dist/remote-command.js +34 -10
  70. package/dist/remote-command.js.map +1 -1
  71. package/dist/runtime-replacement-stop.d.ts +13 -2
  72. package/dist/runtime-replacement-stop.d.ts.map +1 -1
  73. package/dist/runtime-replacement-stop.js +46 -11
  74. package/dist/runtime-replacement-stop.js.map +1 -1
  75. package/dist/setup-client-pty.d.ts +8 -0
  76. package/dist/setup-client-pty.d.ts.map +1 -1
  77. package/dist/setup-client-pty.js +17 -0
  78. package/dist/setup-client-pty.js.map +1 -1
  79. package/dist/setup-job-store.d.ts +4 -4
  80. package/dist/setup-jobs.d.ts +10 -10
  81. package/dist/setup-jobs.d.ts.map +1 -1
  82. package/dist/setup-jobs.js +6 -8
  83. package/dist/setup-jobs.js.map +1 -1
  84. package/dist/setup-lifecycle-binding.d.ts +7 -1
  85. package/dist/setup-lifecycle-binding.d.ts.map +1 -1
  86. package/dist/setup-lifecycle-binding.js +27 -17
  87. package/dist/setup-lifecycle-binding.js.map +1 -1
  88. package/dist/setup-login-runner.d.ts +2 -2
  89. package/dist/setup-login-runner.d.ts.map +1 -1
  90. package/dist/setup-login-runner.js +10 -22
  91. package/dist/setup-login-runner.js.map +1 -1
  92. package/dist/startup-diagnostics.d.ts +61 -0
  93. package/dist/startup-diagnostics.d.ts.map +1 -0
  94. package/dist/startup-diagnostics.js +416 -0
  95. package/dist/startup-diagnostics.js.map +1 -0
  96. package/dist/thread-turn-services.d.ts +1 -1
  97. package/dist/thread-turn-services.d.ts.map +1 -1
  98. package/dist/thread-turn-services.js.map +1 -1
  99. package/package.json +23 -23
@@ -1 +1 @@
1
- {"version":3,"file":"remote-command.d.ts","sourceRoot":"","sources":["../src/remote-command.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,KAAK,0BAA0B,EAOhC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAqD5C,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE;IAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACzE,eAAe,EAAE,MAAM,EACvB,gBAAgB,EAAE,MAAM,GACvB,0BAA0B,CAW5B;AA6ED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,UAAU,GAAG,UAAU,EAC7B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,IAAI,CAwBN;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAwCpF;AAgBD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAa5D;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAoDnF"}
1
+ {"version":3,"file":"remote-command.d.ts","sourceRoot":"","sources":["../src/remote-command.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAOhC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAgB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAgEvE,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE;IAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACzE,eAAe,EAAE,MAAM,EACvB,gBAAgB,EAAE,MAAM,GACvB,0BAA0B,CAW5B;AAED,UAAU,qBAAqB;IAC7B,OAAO,IAAI,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;IACrD,UAAU,IAAI,MAAM,CAAC;IACrB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,uBAAuB,CAAC;CACrD;AAiBD,wBAAsB,qCAAqC,CACzD,eAAe,EAAE,MAAM,EACvB,gBAAgB,EAAE,MAAM,EACxB,IAAI,GAAE,qBAAuD,GAC5D,OAAO,CAAC,MAAM,CAAC,CAwCjB;AA8CD,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,UAAU,GAAG,UAAU,EAC7B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,IAAI,CAwBN;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAwCpF;AAgBD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAa5D;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAoDnF"}
@@ -3,12 +3,12 @@ import { closeSync, constants, existsSync, lstatSync, openSync, readlinkSync, re
3
3
  import { arch, homedir, platform } from "node:os";
4
4
  import { join } from "node:path";
5
5
  import { CLAUDEXOR_VERSION } from "@claudexor/util";
6
- import { awaitDaemonTermination, daemonLeaseOwner, daemonDir, defaultSocketPath, socketAlive, } from "@claudexor/daemon";
6
+ import { awaitDaemonTermination, daemonDir, defaultSocketPath, inspectDaemonWriterLease, socketAlive, } from "@claudexor/daemon";
7
7
  import { ensureDaemon, connectDaemonIfRunning } from "./daemon-run.js";
8
8
  import { controlApiFetch, CONTROL_PROTOCOL_MAJOR, handshakeControlApi } from "./live.js";
9
9
  import { printJson, printUsageError } from "./cli-io.js";
10
10
  import { resolveSetupLoginRunnerPath } from "./setup-job-support.js";
11
- import { admitAndAwaitRuntimeReplacementStop } from "./runtime-replacement-stop.js";
11
+ import { admitAndAwaitRuntimeReplacementStop, decideRuntimeReplacementWithoutControl, runtimeReplacementCapableOwner, } from "./runtime-replacement-stop.js";
12
12
  function runtimeTarget() {
13
13
  return `${platform()}-${arch()}`;
14
14
  }
@@ -26,6 +26,11 @@ function endpointPort(baseUrl) {
26
26
  async function bootstrap() {
27
27
  const { addr } = await ensureDaemon();
28
28
  const identity = await handshakeControlApi(addr, "claudexor-macos-remote");
29
+ // C7b: publication requires NORMAL serving (absent = normal for pre-#165
30
+ // daemons). A recovery-only remote must never be published to the app.
31
+ if (identity.servingMode !== "normal") {
32
+ throw Object.assign(new Error("remote daemon is serving recovery only; publication requires normal serving"), { code: "daemon_recovery_only", status: 503, retryable: true });
33
+ }
29
34
  printJson({
30
35
  ok: true,
31
36
  target: runtimeTarget(),
@@ -61,26 +66,45 @@ export function assertRemoteEngineIdentity(observed, expectedVersion, expectedBu
61
66
  }
62
67
  return { version: expectedVersion, buildSha: expectedBuildSha };
63
68
  }
64
- async function stop(expectedVersion, expectedBuildSha) {
65
- const daemon = await connectDaemonIfRunning();
69
+ const productionRemoteRuntimeStopDeps = {
70
+ connect: connectDaemonIfRunning,
71
+ socketPath: defaultSocketPath,
72
+ socketReachable: socketAlive,
73
+ inspectLease: inspectDaemonWriterLease,
74
+ };
75
+ function runtimeActivityUnknown(message) {
76
+ return Object.assign(new Error(message), {
77
+ code: "runtime_activity_unknown",
78
+ status: 503,
79
+ retryable: true,
80
+ });
81
+ }
82
+ export async function stopRemoteDaemonForRuntimeReplacement(expectedVersion, expectedBuildSha, deps = productionRemoteRuntimeStopDeps) {
83
+ const socketPath = deps.socketPath();
84
+ const daemon = await deps.connect();
66
85
  if (!daemon) {
67
- if (daemonLeaseOwner(defaultSocketPath()) || (await socketAlive(defaultSocketPath()))) {
68
- throw new Error("remote daemon is running but its Control API identity cannot be verified");
86
+ const decision = decideRuntimeReplacementWithoutControl(await deps.socketReachable(socketPath), deps.inspectLease(socketPath));
87
+ if (decision.status === "activity_unknown") {
88
+ throw runtimeActivityUnknown(decision.detail);
69
89
  }
70
90
  printJson({ ok: true, stopped: true, alreadyStopped: true });
71
91
  return 0;
72
92
  }
73
93
  const identity = await handshakeControlApi(daemon.addr, "claudexor-macos-remote-stop");
74
94
  const expectedIdentity = assertRemoteEngineIdentity(identity, expectedVersion, expectedBuildSha);
75
- const expectedOwner = daemonLeaseOwner(defaultSocketPath());
95
+ // Bind the target from a fresh strict inspection immediately before the
96
+ // target-bound admission RPC. Control reachability cannot upgrade an
97
+ // absent, stale, or unknown lease into signal authority.
98
+ const lease = deps.inspectLease(socketPath);
99
+ const expectedOwner = runtimeReplacementCapableOwner(lease);
76
100
  if (!expectedOwner) {
77
- throw new Error("remote daemon is live but its writer-lease identity cannot be verified");
101
+ throw runtimeActivityUnknown("remote daemon is live but its writer-lease activity cannot be verified");
78
102
  }
79
103
  const expectedTarget = {
80
104
  ...expectedIdentity,
81
105
  leaseOwner: { pid: expectedOwner.pid, token: expectedOwner.token },
82
106
  };
83
- const termination = await admitAndAwaitRuntimeReplacementStop(() => daemon.client.shutdownForRuntimeReplacement(expectedTarget), (options) => awaitDaemonTermination(defaultSocketPath(), options), expectedOwner);
107
+ const termination = await admitAndAwaitRuntimeReplacementStop(() => daemon.client.shutdownForRuntimeReplacement(expectedTarget), (options) => awaitDaemonTermination(socketPath, options), expectedOwner);
84
108
  if (termination.outcome === "still_alive") {
85
109
  throw new Error(`remote daemon did not stop: ${termination.detail}`);
86
110
  }
@@ -173,7 +197,7 @@ export async function remoteCommand(args, json) {
173
197
  typeof expectedBuildSha !== "string") {
174
198
  return printUsageError(json, "usage: claudexor remote stop <expectedVersion> <expectedBuildSha> --json");
175
199
  }
176
- return stop(expectedVersion, expectedBuildSha);
200
+ return stopRemoteDaemonForRuntimeReplacement(expectedVersion, expectedBuildSha);
177
201
  }
178
202
  if (sub === "activate" || sub === "rollback") {
179
203
  const expected = args._[2];
@@ -1 +1 @@
1
- {"version":3,"file":"remote-command.js","sourceRoot":"","sources":["../src/remote-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EACL,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,WAAW,EACX,UAAU,GACX,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAGL,sBAAsB,EACtB,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,mCAAmC,EAAE,MAAM,+BAA+B,CAAC;AAEpF,SAAS,aAAa;IACpB,OAAO,GAAG,QAAQ,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;AACnC,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACnC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7B,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QAC3F,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,MAAM,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,SAAS;IACtB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;IAC3E,SAAS,CAAC;QACR,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,aAAa,EAAE;QACvB,OAAO,EAAE,iBAAiB;QAC1B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,SAAS;QACzD,aAAa,EAAE,sBAAsB;QACrC,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,cAAc,EAAE,QAAQ,CAAC,cAAc;QACvC,QAAQ,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;KACrF,CAAC,CAAC;IACH,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,KAAK;IAClB,SAAS,CAAC;QACR,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,aAAa,EAAE;QACvB,QAAQ,EAAE,QAAQ,EAAE;QACpB,IAAI,EAAE,IAAI,EAAE;QACZ,IAAI,EAAE,OAAO,EAAE;QACf,OAAO,EAAE,iBAAiB;QAC1B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,SAAS;QACzD,aAAa,EAAE,sBAAsB;KACtC,CAAC,CAAC;IACH,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,QAAyE,EACzE,eAAuB,EACvB,gBAAwB;IAExB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACzF,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,QAAQ,CAAC,aAAa,KAAK,eAAe,IAAI,QAAQ,CAAC,cAAc,KAAK,gBAAgB,EAAE,CAAC;QAC/F,MAAM,IAAI,KAAK,CACb,6CAA6C,eAAe,IAAI,gBAAgB,IAAI;YAClF,YAAY,QAAQ,CAAC,aAAa,IAAI,SAAS,IAAI,QAAQ,CAAC,cAAc,IAAI,SAAS,GAAG,CAC7F,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;AAClE,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,eAAuB,EAAE,gBAAwB;IACnE,MAAM,MAAM,GAAG,MAAM,sBAAsB,EAAE,CAAC;IAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,MAAM,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,CAAC;YACtF,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC9F,CAAC;QACD,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC;IACvF,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,QAAQ,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC;IACjG,MAAM,aAAa,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC5F,CAAC;IACD,MAAM,cAAc,GAA6B;QAC/C,GAAG,gBAAgB;QACnB,UAAU,EAAE,EAAE,GAAG,EAAE,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE;KACnE,CAAC;IACF,MAAM,WAAW,GAAG,MAAM,mCAAmC,CAC3D,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,6BAA6B,CAAC,cAAc,CAAC,EACjE,CAAC,OAAO,EAAE,EAAE,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,EAAE,OAAO,CAAC,EACjE,aAAa,CACd,CAAC;IACF,IAAI,WAAW,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,+BAA+B,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC;IACvD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa;IACzC,IAAI,KAAK,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAC/B,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACtC,IAAI,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACpE,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY,EAAE,IAAY,EAAE,MAAc;IACvE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,SAAS,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7D,IAAI,CAAC;QACH,UAAU,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,KAAK,CAAC;IACtE,CAAC;IACD,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/B,IAAI,CAAC;QACH,4EAA4E;QAC5E,6EAA6E;QAC7E,UAAU,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC;YACH,UAAU,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,iBAAiB;QACnB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,IAA6B,EAC7B,IAAY,EACZ,WAAmB,EACnB,OAAe;IAEf,MAAM,QAAQ,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,yDAAyD,QAAQ,IAAI,GAAG,cAAc,OAAO,IAAI,GAAG,GAAG,CACxG,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC;YAC3E,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IACD,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO;IAC7B,IAAI,IAAI,KAAK,UAAU,IAAI,QAAQ,EAAE,CAAC;QACpC,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,IAAI,EAAE,CAAC;QACT,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAgB,EAAE,IAAa;IACjE,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;IACjC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,eAAe,CAAC,KAAK,EAAE,gEAAgE,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QACnB,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,IACE,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC;YACnB,OAAO,eAAe,KAAK,QAAQ;YACnC,OAAO,gBAAgB,KAAK,QAAQ,EACpC,CAAC;YACD,OAAO,eAAe,CACpB,IAAI,EACJ,0EAA0E,CAC3E,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpF,OAAO,eAAe,CACpB,IAAI,EACJ,2BAA2B,GAAG,2CAA2C,CAC1E,CAAC;QACJ,CAAC;QACD,0BAA0B,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACzF,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,WAAW,CAAC,EAAE,CAAC;QAClE,OAAO,eAAe,CACpB,IAAI,EACJ,uEAAuE,CACxE,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;AACrD,CAAC;AAED,SAAS,YAAY,CAAC,KAA+B;IACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,MAAM,IAAI,CAAC,CAAC;gBAC7E,OAAO,CAAC,CAAC,CAAC,CAAC;YACb,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,SAAiB;IACpD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;IACpD,IAAI,UAAkB,CAAC;IACvB,IAAI,CAAC;QACH,UAAU,GAAG,QAAQ,CACnB,IAAI,EACJ,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,UAAU,EAChF,KAAK,CACN,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,SAAS,CAAC,UAAU,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAgB,EAAE,IAAa;IAChE,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,IACE,GAAG,KAAK,QAAQ;QAChB,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC;QACpC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EACnB,CAAC;QACD,OAAO,eAAe,CAAC,IAAI,EAAE,uCAAuC,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,eAAe,CACpB,IAAI,EACJ,sEAAsE,CACvE,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,sBAAsB,EAAE,CAAC;IAC9C,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChG,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAIlC,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACvF,IAAI,IAAI,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IACD,IACE,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACtE,CAAC,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAC1D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,KAAK,IAAI,SAAS,GAAG,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CAAC;IACjE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACnF,MAAM,MAAM,GAAG,2BAA2B,EAAE,CAAC;IAC7C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAC9E,2EAA2E;IAC3E,6EAA6E;IAC7E,2EAA2E;IAC3E,sCAAsC;IACtC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IACxC,OAAO,YAAY,CACjB,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;QAC1C,GAAG,EAAE,iBAAiB;QACtB,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"remote-command.js","sourceRoot":"","sources":["../src/remote-command.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,24 @@
1
- import { type AwaitDaemonTerminationOptions, type DaemonTerminationOutcome, type DaemonLeaseOwner, DaemonClient, awaitDaemonTermination } from "@claudexor/daemon";
1
+ import { type AwaitDaemonTerminationOptions, type DaemonTerminationOutcome, type DaemonLeaseOwner, type DaemonWriterLeaseStatus, DaemonClient, awaitDaemonTermination } from "@claudexor/daemon";
2
2
  interface RuntimeReplacementStopDeps {
3
3
  socketPath(): string;
4
4
  readToken(): string | null;
5
5
  socketAlive(path: string): Promise<boolean>;
6
- leaseOwner(path: string): DaemonLeaseOwner | null;
6
+ inspectLease(path: string): DaemonWriterLeaseStatus;
7
7
  client(path: string, token: string): Pick<DaemonClient, "shutdownForRuntimeReplacement">;
8
8
  awaitTermination(path: string, options: AwaitDaemonTerminationOptions): ReturnType<typeof awaitDaemonTermination>;
9
9
  write(line: string): void;
10
10
  }
11
+ /** Shared no-Control decision for local and remote runtime replacement.
12
+ * This policy never selects a target: only a physically absent or positively
13
+ * stale lease alongside an unreachable socket proves idempotent stop. */
14
+ export declare function decideRuntimeReplacementWithoutControl(socketReachable: boolean, lease: DaemonWriterLeaseStatus): {
15
+ status: "already_stopped";
16
+ } | {
17
+ status: "activity_unknown";
18
+ detail: string;
19
+ };
20
+ /** Package-private projection for the authenticated local and remote paths. */
21
+ export declare function runtimeReplacementCapableOwner(lease: DaemonWriterLeaseStatus): DaemonLeaseOwner | null;
11
22
  /** One owner for the admission/termination uncertainty boundary used by both
12
23
  * local and remote runtime replacement. Only a proven
13
24
  * `{ok:true,fenced:true,targetBound:true}` receipt grants
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-replacement-stop.d.ts","sourceRoot":"","sources":["../src/runtime-replacement-stop.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,YAAY,EAGZ,sBAAsB,EAIvB,MAAM,mBAAmB,CAAC;AAE3B,UAAU,0BAA0B;IAClC,UAAU,IAAI,MAAM,CAAC;IACrB,SAAS,IAAI,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAAC;IAClD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,+BAA+B,CAAC,CAAC;IACzF,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,6BAA6B,GACrC,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAoED;;;;;oDAKoD;AACpD,wBAAsB,mCAAmC,CACvD,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EACxC,gBAAgB,EAAE,CAAC,OAAO,EAAE,6BAA6B,KAAK,OAAO,CAAC,wBAAwB,CAAC,EAC/F,aAAa,EAAE,gBAAgB,GAC9B,OAAO,CAAC,wBAAwB,CAAC,CAgCnC;AAED;;;;yDAIyD;AACzD,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,IAAI,GAAE,0BAA2C,GAChD,OAAO,CAAC,OAAO,CAAC,CAwElB"}
1
+ {"version":3,"file":"runtime-replacement-stop.d.ts","sourceRoot":"","sources":["../src/runtime-replacement-stop.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,YAAY,EAEZ,sBAAsB,EAKvB,MAAM,mBAAmB,CAAC;AAE3B,UAAU,0BAA0B;IAClC,UAAU,IAAI,MAAM,CAAC;IACrB,SAAS,IAAI,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,uBAAuB,CAAC;IACpD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,+BAA+B,CAAC,CAAC;IACzF,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,6BAA6B,GACrC,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAoED;;yEAEyE;AACzE,wBAAgB,sCAAsC,CACpD,eAAe,EAAE,OAAO,EACxB,KAAK,EAAE,uBAAuB,GAC7B;IAAE,MAAM,EAAE,iBAAiB,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA0BhF;AAED,+EAA+E;AAC/E,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,uBAAuB,GAC7B,gBAAgB,GAAG,IAAI,CAEzB;AAED;;;;;oDAKoD;AACpD,wBAAsB,mCAAmC,CACvD,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EACxC,gBAAgB,EAAE,CAAC,OAAO,EAAE,6BAA6B,KAAK,OAAO,CAAC,wBAAwB,CAAC,EAC/F,aAAa,EAAE,gBAAgB,GAC9B,OAAO,CAAC,wBAAwB,CAAC,CAgCnC;AAED;;;;yDAIyD;AACzD,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,IAAI,GAAE,0BAA2C,GAChD,OAAO,CAAC,OAAO,CAAC,CAoElB"}
@@ -1,9 +1,9 @@
1
- import { DaemonClient, daemonLeaseOwner, awaitDaemonTermination, defaultSocketPath, readToken, socketAlive, } from "@claudexor/daemon";
1
+ import { DaemonClient, awaitDaemonTermination, defaultSocketPath, inspectDaemonWriterLease, readToken, socketAlive, } from "@claudexor/daemon";
2
2
  const productionDeps = {
3
3
  socketPath: defaultSocketPath,
4
4
  readToken,
5
5
  socketAlive,
6
- leaseOwner: daemonLeaseOwner,
6
+ inspectLease: inspectDaemonWriterLease,
7
7
  client: (path, token) => new DaemonClient(path, token),
8
8
  awaitTermination: awaitDaemonTermination,
9
9
  write: (line) => process.stdout.write(line),
@@ -47,6 +47,37 @@ function writeRefusal(deps, code, detail) {
47
47
  deps.write(`${JSON.stringify({ stopped: false, code, retryable: true, detail })}\n`);
48
48
  process.exitCode = 1;
49
49
  }
50
+ /** Shared no-Control decision for local and remote runtime replacement.
51
+ * This policy never selects a target: only a physically absent or positively
52
+ * stale lease alongside an unreachable socket proves idempotent stop. */
53
+ export function decideRuntimeReplacementWithoutControl(socketReachable, lease) {
54
+ if (socketReachable) {
55
+ return {
56
+ status: "activity_unknown",
57
+ detail: "runtime replacement found a reachable daemon socket without verified Control",
58
+ };
59
+ }
60
+ if (lease.status === "absent" ||
61
+ (lease.status === "owned" && lease.capability.status === "proven_stale")) {
62
+ return { status: "already_stopped" };
63
+ }
64
+ if (lease.status === "unknown") {
65
+ return {
66
+ status: "activity_unknown",
67
+ detail: `runtime replacement cannot verify writer-lease authority (${lease.reason})`,
68
+ };
69
+ }
70
+ return {
71
+ status: "activity_unknown",
72
+ detail: lease.capability.status === "capable"
73
+ ? "runtime replacement found a capable writer lease but no reachable daemon socket"
74
+ : "runtime replacement cannot verify writer-lease activity",
75
+ };
76
+ }
77
+ /** Package-private projection for the authenticated local and remote paths. */
78
+ export function runtimeReplacementCapableOwner(lease) {
79
+ return lease.status === "owned" && lease.capability.status === "capable" ? lease.owner : null;
80
+ }
50
81
  /** One owner for the admission/termination uncertainty boundary used by both
51
82
  * local and remote runtime replacement. Only a proven
52
83
  * `{ok:true,fenced:true,targetBound:true}` receipt grants
@@ -99,12 +130,9 @@ export async function runStopIfRequested(argv, deps = productionDeps) {
99
130
  const socketPath = deps.socketPath();
100
131
  const alive = await deps.socketAlive(socketPath);
101
132
  if (!alive) {
102
- // A daemon claims the writer lease before it binds the socket. Treating the
103
- // boot window as absence would let the installer move the runtime pointer
104
- // beneath that live process. Idempotent success therefore requires both
105
- // surfaces to prove absence, matching the remote replacement path.
106
- if (deps.leaseOwner(socketPath)) {
107
- writeRefusal(deps, "runtime_activity_unknown", "runtime replacement found a writer lease but no reachable daemon socket");
133
+ const decision = decideRuntimeReplacementWithoutControl(false, deps.inspectLease(socketPath));
134
+ if (decision.status === "activity_unknown") {
135
+ writeRefusal(deps, "runtime_activity_unknown", decision.detail);
108
136
  return true;
109
137
  }
110
138
  deps.write(`${JSON.stringify({ stopped: true, alreadyStopped: true })}\n`);
@@ -112,10 +140,17 @@ export async function runStopIfRequested(argv, deps = productionDeps) {
112
140
  }
113
141
  const token = deps.readToken();
114
142
  if (!token) {
115
- writeRefusal(deps, "runtime_activity_unknown", "runtime replacement cannot authenticate to the live daemon");
116
- return true;
143
+ const decision = decideRuntimeReplacementWithoutControl(true, deps.inspectLease(socketPath));
144
+ if (decision.status === "activity_unknown") {
145
+ writeRefusal(deps, "runtime_activity_unknown", decision.detail);
146
+ return true;
147
+ }
148
+ throw new Error("reachable socket unexpectedly classified as already stopped");
117
149
  }
118
- const expectedOwner = deps.leaseOwner(socketPath);
150
+ // Select the target from a fresh strict inspection immediately before the
151
+ // target-bound admission RPC. Stale, absent, or unknown authority cannot be
152
+ // turned into a signal target even when the socket itself is reachable.
153
+ const expectedOwner = runtimeReplacementCapableOwner(deps.inspectLease(socketPath));
119
154
  if (!expectedOwner) {
120
155
  writeRefusal(deps, "runtime_activity_unknown", "runtime replacement cannot bind the live daemon to its writer lease");
121
156
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-replacement-stop.js","sourceRoot":"","sources":["../src/runtime-replacement-stop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-replacement-stop.js","sourceRoot":"","sources":["../src/runtime-replacement-stop.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,14 @@ export declare function clientPtyWaitingPatch(input: {
9
9
  export declare function setupTransportConflict(active: ControlSetupJob, requested: ControlSetupJobTransport): string | null;
10
10
  export declare function isDeviceCodeSetupJob(job: ControlSetupJob): boolean;
11
11
  export declare function awaitingSetupUserMessage(job: ControlSetupJob): string;
12
+ /**
13
+ * Codex login remedies. The legacy Terminal handoff is macOS-only
14
+ * (`startObservableLogin` refuses it elsewhere), so only macOS may be told to
15
+ * use it — every other platform reaches these messages through the
16
+ * daemon-hosted device-code flow.
17
+ */
18
+ export declare function deviceAuthUnsupportedMessage(harness: string, platform: string): string;
19
+ export declare function deviceCodeRejectionRemedy(platform: string): string;
12
20
  export declare function projectSetupDeviceCode(job: ControlSetupJob, sidecarPath: string): SetupDeviceCodeDisclosure | undefined;
13
21
  export declare function removeSetupDeviceCodeSidecar(sidecarPath: string): void;
14
22
  //# sourceMappingURL=setup-client-pty.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup-client-pty.d.ts","sourceRoot":"","sources":["../src/setup-client-pty.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,mBAAmB,CAAC;AAI3B,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,GAAG,EAAE,eAAe,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,WAAW,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC;CAC9D,GAAG,OAAO,CAAC,eAAe,CAAC,CAY3B;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,eAAe,EACvB,SAAS,EAAE,wBAAwB,GAClC,MAAM,GAAG,IAAI,CAMf;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAElE;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAIrE;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,eAAe,EACpB,WAAW,EAAE,MAAM,GAClB,yBAAyB,GAAG,SAAS,CAyBvC;AAED,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAMtE"}
1
+ {"version":3,"file":"setup-client-pty.d.ts","sourceRoot":"","sources":["../src/setup-client-pty.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,mBAAmB,CAAC;AAI3B,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,GAAG,EAAE,eAAe,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,WAAW,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC;CAC9D,GAAG,OAAO,CAAC,eAAe,CAAC,CAY3B;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,eAAe,EACvB,SAAS,EAAE,wBAAwB,GAClC,MAAM,GAAG,IAAI,CAMf;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAElE;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAIrE;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMtF;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOlE;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,eAAe,EACpB,WAAW,EAAE,MAAM,GAClB,yBAAyB,GAAG,SAAS,CAyBvC;AAED,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAMtE"}
@@ -27,6 +27,23 @@ export function awaitingSetupUserMessage(job) {
27
27
  ? `Complete ${job.harness} sign-in: open the URL and enter the one-time code shown in Claudexor.`
28
28
  : `Complete ${job.harness} native login in Terminal.`;
29
29
  }
30
+ /**
31
+ * Codex login remedies. The legacy Terminal handoff is macOS-only
32
+ * (`startObservableLogin` refuses it elsewhere), so only macOS may be told to
33
+ * use it — every other platform reaches these messages through the
34
+ * daemon-hosted device-code flow.
35
+ */
36
+ export function deviceAuthUnsupportedMessage(harness, platform) {
37
+ const terminal = platform === "darwin"
38
+ ? ", or retry the legacy Terminal flow with `claudexor auth login codex --browser-redirect`"
39
+ : "";
40
+ return `${harness} does not expose typed device-code auth over its app-server (upgrade the codex CLI)${terminal}.`;
41
+ }
42
+ export function deviceCodeRejectionRemedy(platform) {
43
+ const terminal = platform === "darwin" ? ", or use `claudexor auth login codex --browser-redirect`" : "";
44
+ return (" If the sign-in page rejected your one-time code, enable ChatGPT → Settings → Security → " +
45
+ `"Allow device code login" and retry${terminal}.`);
46
+ }
30
47
  export function projectSetupDeviceCode(job, sidecarPath) {
31
48
  if (!ACTIVE_SETUP_STATES.has(job.state) || job.phase !== "awaiting_user")
32
49
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"setup-client-pty.js","sourceRoot":"","sources":["../src/setup-client-pty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAMjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,UAAU,qBAAqB,CAAC,KAMrC;IACC,OAAO;QACL,KAAK,EAAE,mBAAmB;QAC1B,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,OAAO,EACL,4EAA4E;YAC5E,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,SAAS;KAChC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,MAAuB,EACvB,SAAmC;IAEnC,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAChD,OAAO,CACL,WAAW,MAAM,CAAC,OAAO,yBAAyB,MAAM,CAAC,KAAK,SAAS;QACvE,GAAG,MAAM,CAAC,SAAS,mDAAmD,SAAS,EAAE,CAClF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAoB;IACvD,OAAO,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,GAAoB;IAC3D,OAAO,oBAAoB,CAAC,GAAG,CAAC;QAC9B,CAAC,CAAC,YAAY,GAAG,CAAC,OAAO,wEAAwE;QACjG,CAAC,CAAC,YAAY,GAAG,CAAC,OAAO,4BAA4B,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,GAAoB,EACpB,WAAmB;IAEnB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,KAAK,eAAe;QAAE,OAAO,SAAS,CAAC;IAC3F,yEAAyE;IACzE,wEAAwE;IACxE,wEAAwE;IACxE,wEAAwE;IACxE,IAAI,CAAC,GAAG,CAAC,aAAa;QAAE,OAAO,SAAS,CAAC;IACzC,IAAI,OAAgD,CAAC;IACrD,IAAI,CAAC;QACH,OAAO,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IACE,CAAC,OAAO;QACR,OAAO,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK;QAC3B,OAAO,CAAC,WAAW,KAAK,GAAG,CAAC,aAAa,CAAC,WAAW,EACrD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,WAAmB;IAC9D,IAAI,CAAC;QACH,MAAM,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;IACvE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"setup-client-pty.js","sourceRoot":"","sources":["../src/setup-client-pty.ts"],"names":[],"mappings":"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"}
@@ -206,8 +206,8 @@ export declare class SetupJobStore {
206
206
  leader: {
207
207
  status: "known";
208
208
  pid: number;
209
- platform: "darwin" | "linux";
210
- source: "proc_pidinfo" | "procfs_stat";
209
+ platform: "darwin" | "linux" | "win32";
210
+ source: "proc_pidinfo" | "procfs_stat" | "win32_process_times";
211
211
  startToken: string;
212
212
  processGroupId: number;
213
213
  };
@@ -402,8 +402,8 @@ export declare class SetupJobStore {
402
402
  leader: {
403
403
  status: "known";
404
404
  pid: number;
405
- platform: "darwin" | "linux";
406
- source: "proc_pidinfo" | "procfs_stat";
405
+ platform: "darwin" | "linux" | "win32";
406
+ source: "proc_pidinfo" | "procfs_stat" | "win32_process_times";
407
407
  startToken: string;
408
408
  processGroupId: number;
409
409
  };
@@ -1,5 +1,5 @@
1
1
  import { spawn, type ChildProcess } from "node:child_process";
2
- import { ProcessGroupService } from "@claudexor/core";
2
+ import { processGroupServiceWithWindowsSupport } from "@claudexor/core";
3
3
  import { type AuthSourceReadiness, type AuthCapabilityBinding, type AuthCapabilityReceipt, type ControlHarnessSetupHarness, type CredentialProfileStatus, type ControlSetupJob, type ControlSetupJobListFilter } from "@claudexor/schema";
4
4
  import { SetupJobStore } from "./setup-job-store.js";
5
5
  export interface SetupJobManagerOptions {
@@ -44,7 +44,7 @@ export interface SetupJobManagerOptions {
44
44
  sleep?: (ms: number) => Promise<void>;
45
45
  spawn?: typeof spawn;
46
46
  openTerminal?: (scriptPath: string) => ChildProcess;
47
- processGroups?: ProcessGroupService;
47
+ processGroups?: ReturnType<typeof processGroupServiceWithWindowsSupport>;
48
48
  runnerPath?: string;
49
49
  nodePath?: string;
50
50
  }
@@ -203,8 +203,8 @@ export declare function createSetupJobManager(opts?: SetupJobManagerOptions): {
203
203
  leader: {
204
204
  status: "known";
205
205
  pid: number;
206
- platform: "darwin" | "linux";
207
- source: "proc_pidinfo" | "procfs_stat";
206
+ platform: "darwin" | "linux" | "win32";
207
+ source: "proc_pidinfo" | "procfs_stat" | "win32_process_times";
208
208
  startToken: string;
209
209
  processGroupId: number;
210
210
  };
@@ -388,8 +388,8 @@ export declare function createSetupJobManager(opts?: SetupJobManagerOptions): {
388
388
  leader: {
389
389
  status: "known";
390
390
  pid: number;
391
- platform: "darwin" | "linux";
392
- source: "proc_pidinfo" | "procfs_stat";
391
+ platform: "darwin" | "linux" | "win32";
392
+ source: "proc_pidinfo" | "procfs_stat" | "win32_process_times";
393
393
  startToken: string;
394
394
  processGroupId: number;
395
395
  };
@@ -588,8 +588,8 @@ export declare function createSetupJobManager(opts?: SetupJobManagerOptions): {
588
588
  leader: {
589
589
  status: "known";
590
590
  pid: number;
591
- platform: "darwin" | "linux";
592
- source: "proc_pidinfo" | "procfs_stat";
591
+ platform: "darwin" | "linux" | "win32";
592
+ source: "proc_pidinfo" | "procfs_stat" | "win32_process_times";
593
593
  startToken: string;
594
594
  processGroupId: number;
595
595
  };
@@ -779,8 +779,8 @@ export declare function createSetupJobManager(opts?: SetupJobManagerOptions): {
779
779
  leader: {
780
780
  status: "known";
781
781
  pid: number;
782
- platform: "darwin" | "linux";
783
- source: "proc_pidinfo" | "procfs_stat";
782
+ platform: "darwin" | "linux" | "win32";
783
+ source: "proc_pidinfo" | "procfs_stat" | "win32_process_times";
784
784
  startToken: string;
785
785
  processGroupId: number;
786
786
  };
@@ -1 +1 @@
1
- {"version":3,"file":"setup-jobs.d.ts","sourceRoot":"","sources":["../src/setup-jobs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-jobs.d.ts","sourceRoot":"","sources":["../src/setup-jobs.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { spawn } from "node:child_process";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import { chmodSync, writeFileSync } from "node:fs";
4
4
  import { isAbsolute, join } from "node:path";
5
- import { AuthCapabilityVerifier, ProcessGroupService, parseProcessGroupHandle, } from "@claudexor/core";
5
+ import { AuthCapabilityVerifier, processGroupServiceWithWindowsSupport, parseProcessGroupHandle, } from "@claudexor/core";
6
6
  import { daemonDir } from "@claudexor/daemon";
7
7
  import { ControlSetupJobCreateRequest, SetupNativeCommandReceipt, } from "@claudexor/schema";
8
8
  import { noProjectRepoRoot } from "@claudexor/util";
@@ -15,7 +15,7 @@ import { ACTIVE_SETUP_STATES, SetupJobStore, TERMINAL_SETUP_STATES } from "./set
15
15
  import { SETUP_LOGIN_PROTOCOL_VERSION, atomicPrivateJson, captureExecutableEvidence, commandDigest, readLoginManifest, readRunnerResult, readRunnerState, sealLoginManifest, verifyExecutableEvidence, } from "./setup-login-protocol.js";
16
16
  import { SetupSupervisor } from "./setup-supervisor.js";
17
17
  import { createDeviceCodeDisclosureWatcher } from "./setup-device-code-disclosure.js";
18
- import { awaitingSetupUserMessage, clientPtyWaitingPatch, isDeviceCodeSetupJob, projectSetupDeviceCode, removeSetupDeviceCodeSidecar, setupTransportConflict, } from "./setup-client-pty.js";
18
+ import { awaitingSetupUserMessage, deviceAuthUnsupportedMessage, deviceCodeRejectionRemedy, clientPtyWaitingPatch, isDeviceCodeSetupJob, projectSetupDeviceCode, removeSetupDeviceCodeSidecar, setupTransportConflict, } from "./setup-client-pty.js";
19
19
  import { persistSetupLoginPermit, setupLoginDeadlines } from "./setup-login-permit.js";
20
20
  import { graceVerifyAfterDeadline, isUrlDisclosureLoginMode, submitSetupLoginInput, } from "./setup-login-completion.js";
21
21
  const DEFAULT_STORE_OF = {
@@ -30,7 +30,7 @@ export function createSetupJobManager(opts = {}) {
30
30
  const spawnProcess = opts.spawn ?? spawn;
31
31
  const rootDir = opts.rootDir ?? daemonDir();
32
32
  const store = opts.store ?? new SetupJobStore(rootDir, { now });
33
- const processGroups = opts.processGroups ?? new ProcessGroupService({ platform: opts.platform ?? process.platform });
33
+ const processGroups = opts.processGroups ?? processGroupServiceWithWindowsSupport(opts.platform ?? process.platform);
34
34
  const processing = new Map();
35
35
  const terminations = new Map();
36
36
  const verificationControllers = new Map();
@@ -445,9 +445,7 @@ export function createSetupJobManager(opts = {}) {
445
445
  job = persistNativeCommandOutcome(jobId, result);
446
446
  if (!result.commandStarted) {
447
447
  if (result.errorCode === "device_auth_unsupported") {
448
- finish(jobId, "not_supported", "not_supported", `${job.harness} does not expose typed device-code auth over its app-server ` +
449
- `(upgrade the codex CLI), or retry the legacy Terminal flow with ` +
450
- "`claudexor auth login codex --browser-redirect`.");
448
+ finish(jobId, "not_supported", "not_supported", deviceAuthUnsupportedMessage(job.harness, platform));
451
449
  return;
452
450
  }
453
451
  finish(jobId, "failed", "launch_failed", result.errorCode === "permit_timeout"
@@ -468,8 +466,7 @@ export function createSetupJobManager(opts = {}) {
468
466
  // itself (the `--device-auth` Terminal flow or the app-server device-code
469
467
  // flow, whose argv carries `app-server`).
470
468
  const deviceAuthRemedy = job.authorization?.args.includes("--device-auth") || isDeviceCodeSetupJob(job)
471
- ? " If the sign-in page rejected your one-time code, enable ChatGPT → Settings → Security → " +
472
- '"Allow device code login" and retry, or use `claudexor auth login codex --browser-redirect`.'
469
+ ? deviceCodeRejectionRemedy(platform)
473
470
  : "";
474
471
  finish(jobId, "failed", "command_failed", `${job.harness} login command failed.${result.outputTail ? ` Last output: ${result.outputTail.slice(-600)}` : ""}${deviceAuthRemedy}`, {
475
472
  exitCode: result.exitCode,
@@ -786,6 +783,7 @@ export function createSetupJobManager(opts = {}) {
786
783
  const runner = spawnProcess(nodePath, [runnerPath, paths.manifest], {
787
784
  detached: true,
788
785
  stdio: "ignore",
786
+ windowsHide: true, // "no Terminal" must also mean no console window
789
787
  });
790
788
  const failLaunch = (detail) => {
791
789
  if (!["idle", "healthy"].includes(supervisor.health().state))