agent-shim 11.5.1 → 11.5.2
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/cli.cjs +22 -2
- package/dist/index.cjs +22 -2
- package/dist/index.mjs +22 -2
- package/dist/types/index.d.ts +30 -28
- package/package.json +1 -1
package/dist/cli.cjs
CHANGED
|
@@ -33976,7 +33976,7 @@ var init_package = __esm({
|
|
|
33976
33976
|
"package.json"() {
|
|
33977
33977
|
package_default = {
|
|
33978
33978
|
name: "agent-shim",
|
|
33979
|
-
version: "11.5.
|
|
33979
|
+
version: "11.5.2",
|
|
33980
33980
|
description: "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
|
|
33981
33981
|
license: "MIT",
|
|
33982
33982
|
author: "Joseph Mearman <joseph@mearman.co.uk>",
|
|
@@ -61821,7 +61821,13 @@ function ensureFrontDoor(params) {
|
|
|
61821
61821
|
};
|
|
61822
61822
|
const stopAndAwaitExit = (supervisorPid, failure2) => {
|
|
61823
61823
|
ports.stopSupervisor(supervisorPid);
|
|
61824
|
+
const graceEnds = ports.now() + FRONTDOOR_EXIT_GRACE_MS;
|
|
61825
|
+
let killed = false;
|
|
61824
61826
|
while (ports.isRunning(supervisorPid)) {
|
|
61827
|
+
if (!killed && ports.now() >= graceEnds) {
|
|
61828
|
+
ports.killSupervisor(supervisorPid);
|
|
61829
|
+
killed = true;
|
|
61830
|
+
}
|
|
61825
61831
|
if (ports.now() >= deadline) {
|
|
61826
61832
|
throw new FrontDoorStartError(`${failure2}. Daemon log: ${paths.frontdoorLogPath}`);
|
|
61827
61833
|
}
|
|
@@ -61833,6 +61839,11 @@ function ensureFrontDoor(params) {
|
|
|
61833
61839
|
const supervisorPid = state?.supervisorPid;
|
|
61834
61840
|
if (supervisorPid !== void 0 && !distrusted.has(supervisorPid) && ports.isRunning(supervisorPid)) {
|
|
61835
61841
|
if (state?.port !== void 0 && state.connectPort !== void 0) {
|
|
61842
|
+
if (supervisorPid === params.launcherPid && params.replace !== true && ports.isFrontDoorSupervisor(supervisorPid)) {
|
|
61843
|
+
const token = (0, import_node_crypto10.randomUUID)();
|
|
61844
|
+
writeFrontDoorSession(ports.fs, paths.frontdoorSessionsDir, { pid: params.launcherPid, startedAt: ports.now(), token, supervisorPid });
|
|
61845
|
+
return { port: state.port, connectPort: state.connectPort, token };
|
|
61846
|
+
}
|
|
61836
61847
|
const verdict = verifyWithRetry(state.port);
|
|
61837
61848
|
if (verdict.ok && !replaced && !spawned && (params.replace === true || (state.protocol ?? 0) < FRONT_DOOR_PROTOCOL)) {
|
|
61838
61849
|
stopAndAwaitExit(
|
|
@@ -61853,6 +61864,11 @@ function ensureFrontDoor(params) {
|
|
|
61853
61864
|
}
|
|
61854
61865
|
if (ports.isFrontDoorSupervisor(supervisorPid)) {
|
|
61855
61866
|
const stranded = liveSessionsOn(supervisorPid);
|
|
61867
|
+
if (params.replace === true && !replaced) {
|
|
61868
|
+
stopAndAwaitExit(supervisorPid, `the front door (pid ${String(supervisorPid)}) stopped answering and did not exit when asked to`);
|
|
61869
|
+
replaced = true;
|
|
61870
|
+
continue;
|
|
61871
|
+
}
|
|
61856
61872
|
if (stranded > 0) {
|
|
61857
61873
|
busyDoor = { pid: supervisorPid, sessions: stranded };
|
|
61858
61874
|
} else {
|
|
@@ -61908,7 +61924,7 @@ function restartFrontDoor(params) {
|
|
|
61908
61924
|
}
|
|
61909
61925
|
return { action: "restarted", previousPid, pid };
|
|
61910
61926
|
}
|
|
61911
|
-
var import_node_crypto10, FRONTDOOR_START_TIMEOUT_MS, FRONTDOOR_LAUNCHER_POLL_MS, FRONTDOOR_PROBE_ATTEMPTS, FrontDoorStartError;
|
|
61927
|
+
var import_node_crypto10, FRONTDOOR_START_TIMEOUT_MS, FRONTDOOR_LAUNCHER_POLL_MS, FRONTDOOR_PROBE_ATTEMPTS, FRONTDOOR_EXIT_GRACE_MS, FrontDoorStartError;
|
|
61912
61928
|
var init_ensure2 = __esm({
|
|
61913
61929
|
"src/frontdoor/ensure.ts"() {
|
|
61914
61930
|
"use strict";
|
|
@@ -61919,6 +61935,7 @@ var init_ensure2 = __esm({
|
|
|
61919
61935
|
FRONTDOOR_START_TIMEOUT_MS = 3e4;
|
|
61920
61936
|
FRONTDOOR_LAUNCHER_POLL_MS = 100;
|
|
61921
61937
|
FRONTDOOR_PROBE_ATTEMPTS = 3;
|
|
61938
|
+
FRONTDOOR_EXIT_GRACE_MS = 5e3;
|
|
61922
61939
|
FrontDoorStartError = class extends CliError {
|
|
61923
61940
|
constructor(message) {
|
|
61924
61941
|
super(message);
|
|
@@ -62048,6 +62065,9 @@ function realEnsurePorts(paths, spawnDaemon) {
|
|
|
62048
62065
|
stopSupervisor: (pid) => {
|
|
62049
62066
|
process.kill(pid, "SIGTERM");
|
|
62050
62067
|
},
|
|
62068
|
+
killSupervisor: (pid) => {
|
|
62069
|
+
process.kill(pid, "SIGKILL");
|
|
62070
|
+
},
|
|
62051
62071
|
// Read fresh for each probe: a replacement supervisor may have regenerated an unparseable CA, and the probe must trust exactly what the serving door's leaf chains to.
|
|
62052
62072
|
verifyListener: (port) => probeFrontDoorSync(port, import_node_fs13.default.readFileSync(paths.frontdoorCaCertFile, "utf8"))
|
|
62053
62073
|
};
|
package/dist/index.cjs
CHANGED
|
@@ -2758,7 +2758,7 @@ var init_package = __esm({
|
|
|
2758
2758
|
"package.json"() {
|
|
2759
2759
|
package_default = {
|
|
2760
2760
|
name: "agent-shim",
|
|
2761
|
-
version: "11.5.
|
|
2761
|
+
version: "11.5.2",
|
|
2762
2762
|
description: "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
|
|
2763
2763
|
license: "MIT",
|
|
2764
2764
|
author: "Joseph Mearman <joseph@mearman.co.uk>",
|
|
@@ -6772,7 +6772,13 @@ function ensureFrontDoor(params) {
|
|
|
6772
6772
|
};
|
|
6773
6773
|
const stopAndAwaitExit = (supervisorPid, failure) => {
|
|
6774
6774
|
ports.stopSupervisor(supervisorPid);
|
|
6775
|
+
const graceEnds = ports.now() + FRONTDOOR_EXIT_GRACE_MS;
|
|
6776
|
+
let killed = false;
|
|
6775
6777
|
while (ports.isRunning(supervisorPid)) {
|
|
6778
|
+
if (!killed && ports.now() >= graceEnds) {
|
|
6779
|
+
ports.killSupervisor(supervisorPid);
|
|
6780
|
+
killed = true;
|
|
6781
|
+
}
|
|
6776
6782
|
if (ports.now() >= deadline) {
|
|
6777
6783
|
throw new FrontDoorStartError(`${failure}. Daemon log: ${paths.frontdoorLogPath}`);
|
|
6778
6784
|
}
|
|
@@ -6784,6 +6790,11 @@ function ensureFrontDoor(params) {
|
|
|
6784
6790
|
const supervisorPid = state?.supervisorPid;
|
|
6785
6791
|
if (supervisorPid !== void 0 && !distrusted.has(supervisorPid) && ports.isRunning(supervisorPid)) {
|
|
6786
6792
|
if (state?.port !== void 0 && state.connectPort !== void 0) {
|
|
6793
|
+
if (supervisorPid === params.launcherPid && params.replace !== true && ports.isFrontDoorSupervisor(supervisorPid)) {
|
|
6794
|
+
const token = (0, import_node_crypto9.randomUUID)();
|
|
6795
|
+
writeFrontDoorSession(ports.fs, paths.frontdoorSessionsDir, { pid: params.launcherPid, startedAt: ports.now(), token, supervisorPid });
|
|
6796
|
+
return { port: state.port, connectPort: state.connectPort, token };
|
|
6797
|
+
}
|
|
6787
6798
|
const verdict = verifyWithRetry(state.port);
|
|
6788
6799
|
if (verdict.ok && !replaced && !spawned && (params.replace === true || (state.protocol ?? 0) < FRONT_DOOR_PROTOCOL)) {
|
|
6789
6800
|
stopAndAwaitExit(
|
|
@@ -6804,6 +6815,11 @@ function ensureFrontDoor(params) {
|
|
|
6804
6815
|
}
|
|
6805
6816
|
if (ports.isFrontDoorSupervisor(supervisorPid)) {
|
|
6806
6817
|
const stranded = liveSessionsOn(supervisorPid);
|
|
6818
|
+
if (params.replace === true && !replaced) {
|
|
6819
|
+
stopAndAwaitExit(supervisorPid, `the front door (pid ${String(supervisorPid)}) stopped answering and did not exit when asked to`);
|
|
6820
|
+
replaced = true;
|
|
6821
|
+
continue;
|
|
6822
|
+
}
|
|
6807
6823
|
if (stranded > 0) {
|
|
6808
6824
|
busyDoor = { pid: supervisorPid, sessions: stranded };
|
|
6809
6825
|
} else {
|
|
@@ -6842,7 +6858,7 @@ function ensureFrontDoor(params) {
|
|
|
6842
6858
|
ports.sleep(FRONTDOOR_LAUNCHER_POLL_MS);
|
|
6843
6859
|
}
|
|
6844
6860
|
}
|
|
6845
|
-
var import_node_crypto9, FRONTDOOR_START_TIMEOUT_MS, FRONTDOOR_LAUNCHER_POLL_MS, FRONTDOOR_PROBE_ATTEMPTS, FrontDoorStartError;
|
|
6861
|
+
var import_node_crypto9, FRONTDOOR_START_TIMEOUT_MS, FRONTDOOR_LAUNCHER_POLL_MS, FRONTDOOR_PROBE_ATTEMPTS, FRONTDOOR_EXIT_GRACE_MS, FrontDoorStartError;
|
|
6846
6862
|
var init_ensure2 = __esm({
|
|
6847
6863
|
"src/frontdoor/ensure.ts"() {
|
|
6848
6864
|
"use strict";
|
|
@@ -6853,6 +6869,7 @@ var init_ensure2 = __esm({
|
|
|
6853
6869
|
FRONTDOOR_START_TIMEOUT_MS = 3e4;
|
|
6854
6870
|
FRONTDOOR_LAUNCHER_POLL_MS = 100;
|
|
6855
6871
|
FRONTDOOR_PROBE_ATTEMPTS = 3;
|
|
6872
|
+
FRONTDOOR_EXIT_GRACE_MS = 5e3;
|
|
6856
6873
|
FrontDoorStartError = class extends CliError {
|
|
6857
6874
|
constructor(message) {
|
|
6858
6875
|
super(message);
|
|
@@ -8140,6 +8157,9 @@ function realEnsurePorts(paths, spawnDaemon) {
|
|
|
8140
8157
|
stopSupervisor: (pid) => {
|
|
8141
8158
|
process.kill(pid, "SIGTERM");
|
|
8142
8159
|
},
|
|
8160
|
+
killSupervisor: (pid) => {
|
|
8161
|
+
process.kill(pid, "SIGKILL");
|
|
8162
|
+
},
|
|
8143
8163
|
// Read fresh for each probe: a replacement supervisor may have regenerated an unparseable CA, and the probe must trust exactly what the serving door's leaf chains to.
|
|
8144
8164
|
verifyListener: (port) => probeFrontDoorSync(port, import_node_fs11.default.readFileSync(paths.frontdoorCaCertFile, "utf8"))
|
|
8145
8165
|
};
|
package/dist/index.mjs
CHANGED
|
@@ -2734,7 +2734,7 @@ var init_package = __esm({
|
|
|
2734
2734
|
"package.json"() {
|
|
2735
2735
|
package_default = {
|
|
2736
2736
|
name: "agent-shim",
|
|
2737
|
-
version: "11.5.
|
|
2737
|
+
version: "11.5.2",
|
|
2738
2738
|
description: "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
|
|
2739
2739
|
license: "MIT",
|
|
2740
2740
|
author: "Joseph Mearman <joseph@mearman.co.uk>",
|
|
@@ -6746,7 +6746,13 @@ function ensureFrontDoor(params) {
|
|
|
6746
6746
|
};
|
|
6747
6747
|
const stopAndAwaitExit = (supervisorPid, failure) => {
|
|
6748
6748
|
ports.stopSupervisor(supervisorPid);
|
|
6749
|
+
const graceEnds = ports.now() + FRONTDOOR_EXIT_GRACE_MS;
|
|
6750
|
+
let killed = false;
|
|
6749
6751
|
while (ports.isRunning(supervisorPid)) {
|
|
6752
|
+
if (!killed && ports.now() >= graceEnds) {
|
|
6753
|
+
ports.killSupervisor(supervisorPid);
|
|
6754
|
+
killed = true;
|
|
6755
|
+
}
|
|
6750
6756
|
if (ports.now() >= deadline) {
|
|
6751
6757
|
throw new FrontDoorStartError(`${failure}. Daemon log: ${paths.frontdoorLogPath}`);
|
|
6752
6758
|
}
|
|
@@ -6758,6 +6764,11 @@ function ensureFrontDoor(params) {
|
|
|
6758
6764
|
const supervisorPid = state?.supervisorPid;
|
|
6759
6765
|
if (supervisorPid !== void 0 && !distrusted.has(supervisorPid) && ports.isRunning(supervisorPid)) {
|
|
6760
6766
|
if (state?.port !== void 0 && state.connectPort !== void 0) {
|
|
6767
|
+
if (supervisorPid === params.launcherPid && params.replace !== true && ports.isFrontDoorSupervisor(supervisorPid)) {
|
|
6768
|
+
const token = randomUUID3();
|
|
6769
|
+
writeFrontDoorSession(ports.fs, paths.frontdoorSessionsDir, { pid: params.launcherPid, startedAt: ports.now(), token, supervisorPid });
|
|
6770
|
+
return { port: state.port, connectPort: state.connectPort, token };
|
|
6771
|
+
}
|
|
6761
6772
|
const verdict = verifyWithRetry(state.port);
|
|
6762
6773
|
if (verdict.ok && !replaced && !spawned && (params.replace === true || (state.protocol ?? 0) < FRONT_DOOR_PROTOCOL)) {
|
|
6763
6774
|
stopAndAwaitExit(
|
|
@@ -6778,6 +6789,11 @@ function ensureFrontDoor(params) {
|
|
|
6778
6789
|
}
|
|
6779
6790
|
if (ports.isFrontDoorSupervisor(supervisorPid)) {
|
|
6780
6791
|
const stranded = liveSessionsOn(supervisorPid);
|
|
6792
|
+
if (params.replace === true && !replaced) {
|
|
6793
|
+
stopAndAwaitExit(supervisorPid, `the front door (pid ${String(supervisorPid)}) stopped answering and did not exit when asked to`);
|
|
6794
|
+
replaced = true;
|
|
6795
|
+
continue;
|
|
6796
|
+
}
|
|
6781
6797
|
if (stranded > 0) {
|
|
6782
6798
|
busyDoor = { pid: supervisorPid, sessions: stranded };
|
|
6783
6799
|
} else {
|
|
@@ -6816,7 +6832,7 @@ function ensureFrontDoor(params) {
|
|
|
6816
6832
|
ports.sleep(FRONTDOOR_LAUNCHER_POLL_MS);
|
|
6817
6833
|
}
|
|
6818
6834
|
}
|
|
6819
|
-
var FRONTDOOR_START_TIMEOUT_MS, FRONTDOOR_LAUNCHER_POLL_MS, FRONTDOOR_PROBE_ATTEMPTS, FrontDoorStartError;
|
|
6835
|
+
var FRONTDOOR_START_TIMEOUT_MS, FRONTDOOR_LAUNCHER_POLL_MS, FRONTDOOR_PROBE_ATTEMPTS, FRONTDOOR_EXIT_GRACE_MS, FrontDoorStartError;
|
|
6820
6836
|
var init_ensure2 = __esm({
|
|
6821
6837
|
"src/frontdoor/ensure.ts"() {
|
|
6822
6838
|
"use strict";
|
|
@@ -6826,6 +6842,7 @@ var init_ensure2 = __esm({
|
|
|
6826
6842
|
FRONTDOOR_START_TIMEOUT_MS = 3e4;
|
|
6827
6843
|
FRONTDOOR_LAUNCHER_POLL_MS = 100;
|
|
6828
6844
|
FRONTDOOR_PROBE_ATTEMPTS = 3;
|
|
6845
|
+
FRONTDOOR_EXIT_GRACE_MS = 5e3;
|
|
6829
6846
|
FrontDoorStartError = class extends CliError {
|
|
6830
6847
|
constructor(message) {
|
|
6831
6848
|
super(message);
|
|
@@ -8112,6 +8129,9 @@ function realEnsurePorts(paths, spawnDaemon) {
|
|
|
8112
8129
|
stopSupervisor: (pid) => {
|
|
8113
8130
|
process.kill(pid, "SIGTERM");
|
|
8114
8131
|
},
|
|
8132
|
+
killSupervisor: (pid) => {
|
|
8133
|
+
process.kill(pid, "SIGKILL");
|
|
8134
|
+
},
|
|
8115
8135
|
// Read fresh for each probe: a replacement supervisor may have regenerated an unparseable CA, and the probe must trust exactly what the serving door's leaf chains to.
|
|
8116
8136
|
verifyListener: (port) => probeFrontDoorSync(port, fs11.readFileSync(paths.frontdoorCaCertFile, "utf8"))
|
|
8117
8137
|
};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1332,8 +1332,8 @@ declare const HeadroomGlobalConfigSchema: z.ZodObject<{
|
|
|
1332
1332
|
targetRatio: z.ZodOptional<z.ZodNumber>;
|
|
1333
1333
|
ccr: z.ZodOptional<z.ZodEnum<{
|
|
1334
1334
|
default: "default";
|
|
1335
|
-
lossless: "lossless";
|
|
1336
1335
|
none: "none";
|
|
1336
|
+
lossless: "lossless";
|
|
1337
1337
|
}>>;
|
|
1338
1338
|
rolloutChannel: z.ZodOptional<z.ZodEnum<{
|
|
1339
1339
|
beta: "beta";
|
|
@@ -1460,8 +1460,8 @@ declare const GlobalConfigSchema: z.ZodObject<{
|
|
|
1460
1460
|
targetRatio: z.ZodOptional<z.ZodNumber>;
|
|
1461
1461
|
ccr: z.ZodOptional<z.ZodEnum<{
|
|
1462
1462
|
default: "default";
|
|
1463
|
-
lossless: "lossless";
|
|
1464
1463
|
none: "none";
|
|
1464
|
+
lossless: "lossless";
|
|
1465
1465
|
}>>;
|
|
1466
1466
|
rolloutChannel: z.ZodOptional<z.ZodEnum<{
|
|
1467
1467
|
beta: "beta";
|
|
@@ -4163,12 +4163,12 @@ declare const CheckReportJsonSchema: z.ZodObject<{
|
|
|
4163
4163
|
identity: z.ZodObject<{
|
|
4164
4164
|
name: z.ZodNullable<z.ZodString>;
|
|
4165
4165
|
source: z.ZodEnum<{
|
|
4166
|
-
env: "env";
|
|
4167
|
-
none: "none";
|
|
4168
4166
|
"config-dir-escape-hatch": "config-dir-escape-hatch";
|
|
4169
4167
|
argv: "argv";
|
|
4168
|
+
env: "env";
|
|
4170
4169
|
"directory-pin": "directory-pin";
|
|
4171
4170
|
"active-identity-file": "active-identity-file";
|
|
4171
|
+
none: "none";
|
|
4172
4172
|
}>;
|
|
4173
4173
|
}, z.core.$strict>;
|
|
4174
4174
|
pool: z.ZodOptional<z.ZodObject<{
|
|
@@ -4246,11 +4246,11 @@ declare const CheckReportJsonSchema: z.ZodObject<{
|
|
|
4246
4246
|
"category-default": "category-default";
|
|
4247
4247
|
}>;
|
|
4248
4248
|
category: z.ZodNullable<z.ZodEnum<{
|
|
4249
|
+
secret: "secret";
|
|
4249
4250
|
runtime: "runtime";
|
|
4250
4251
|
history: "history";
|
|
4251
4252
|
knowledge: "knowledge";
|
|
4252
4253
|
settings: "settings";
|
|
4253
|
-
secret: "secret";
|
|
4254
4254
|
}>>;
|
|
4255
4255
|
rule: z.ZodOptional<z.ZodObject<{
|
|
4256
4256
|
key: z.ZodString;
|
|
@@ -6942,9 +6942,9 @@ declare function createLifecycleApiRouter(deps: LifecycleApiDeps): {
|
|
|
6942
6942
|
current: zod.ZodString;
|
|
6943
6943
|
latest: zod.ZodString;
|
|
6944
6944
|
action: zod.ZodEnum<{
|
|
6945
|
-
updated: "updated";
|
|
6946
6945
|
current: "current";
|
|
6947
6946
|
available: "available";
|
|
6947
|
+
updated: "updated";
|
|
6948
6948
|
}>;
|
|
6949
6949
|
}, zod_v4_core.$strict>, MergedErrorMap<$ErrorMap, TErrorMap>>;
|
|
6950
6950
|
};
|
|
@@ -7191,12 +7191,12 @@ declare function createLaunchApiRouter(deps: LaunchApiDeps): {
|
|
|
7191
7191
|
decision: zod.ZodObject<{
|
|
7192
7192
|
identity: zod.ZodOptional<zod.ZodString>;
|
|
7193
7193
|
identitySource: zod.ZodEnum<{
|
|
7194
|
-
env: "env";
|
|
7195
|
-
none: "none";
|
|
7196
7194
|
"config-dir-escape-hatch": "config-dir-escape-hatch";
|
|
7197
7195
|
argv: "argv";
|
|
7196
|
+
env: "env";
|
|
7198
7197
|
"directory-pin": "directory-pin";
|
|
7199
7198
|
"active-identity-file": "active-identity-file";
|
|
7199
|
+
none: "none";
|
|
7200
7200
|
}>;
|
|
7201
7201
|
pool: zod.ZodOptional<zod.ZodObject<{
|
|
7202
7202
|
name: zod.ZodString;
|
|
@@ -7791,12 +7791,12 @@ declare function createControlApiRouter(deps: ControlApiDeps): {
|
|
|
7791
7791
|
identity: zod.ZodObject<{
|
|
7792
7792
|
name: zod.ZodNullable<zod.ZodString>;
|
|
7793
7793
|
source: zod.ZodEnum<{
|
|
7794
|
-
env: "env";
|
|
7795
|
-
none: "none";
|
|
7796
7794
|
"config-dir-escape-hatch": "config-dir-escape-hatch";
|
|
7797
7795
|
argv: "argv";
|
|
7796
|
+
env: "env";
|
|
7798
7797
|
"directory-pin": "directory-pin";
|
|
7799
7798
|
"active-identity-file": "active-identity-file";
|
|
7799
|
+
none: "none";
|
|
7800
7800
|
}>;
|
|
7801
7801
|
}, zod_v4_core.$strict>;
|
|
7802
7802
|
pool: zod.ZodOptional<zod.ZodObject<{
|
|
@@ -7874,11 +7874,11 @@ declare function createControlApiRouter(deps: ControlApiDeps): {
|
|
|
7874
7874
|
"category-default": "category-default";
|
|
7875
7875
|
}>;
|
|
7876
7876
|
category: zod.ZodNullable<zod.ZodEnum<{
|
|
7877
|
+
secret: "secret";
|
|
7877
7878
|
runtime: "runtime";
|
|
7878
7879
|
history: "history";
|
|
7879
7880
|
knowledge: "knowledge";
|
|
7880
7881
|
settings: "settings";
|
|
7881
|
-
secret: "secret";
|
|
7882
7882
|
}>>;
|
|
7883
7883
|
rule: zod.ZodOptional<zod.ZodObject<{
|
|
7884
7884
|
key: zod.ZodString;
|
|
@@ -8097,11 +8097,10 @@ declare function createControlApiRouter(deps: ControlApiDeps): {
|
|
|
8097
8097
|
"global-config": "global-config";
|
|
8098
8098
|
"config-profile": "config-profile";
|
|
8099
8099
|
identity: "identity";
|
|
8100
|
-
keychain: "keychain";
|
|
8101
8100
|
provider: "provider";
|
|
8102
|
-
headroom: "headroom";
|
|
8103
8101
|
frontdoor: "frontdoor";
|
|
8104
8102
|
pool: "pool";
|
|
8103
|
+
keychain: "keychain";
|
|
8105
8104
|
"ambient-credential": "ambient-credential";
|
|
8106
8105
|
"binary-discovery": "binary-discovery";
|
|
8107
8106
|
"claude-shim": "claude-shim";
|
|
@@ -8111,6 +8110,7 @@ declare function createControlApiRouter(deps: ControlApiDeps): {
|
|
|
8111
8110
|
"directory-rules": "directory-rules";
|
|
8112
8111
|
"categories-local": "categories-local";
|
|
8113
8112
|
"active-identity": "active-identity";
|
|
8113
|
+
headroom: "headroom";
|
|
8114
8114
|
}>;
|
|
8115
8115
|
subject: zod.ZodOptional<zod.ZodString>;
|
|
8116
8116
|
severity: zod.ZodEnum<{
|
|
@@ -8303,12 +8303,12 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
|
|
|
8303
8303
|
decision: zod.ZodObject<{
|
|
8304
8304
|
identity: zod.ZodOptional<zod.ZodString>;
|
|
8305
8305
|
identitySource: zod.ZodEnum<{
|
|
8306
|
-
env: "env";
|
|
8307
|
-
none: "none";
|
|
8308
8306
|
"config-dir-escape-hatch": "config-dir-escape-hatch";
|
|
8309
8307
|
argv: "argv";
|
|
8308
|
+
env: "env";
|
|
8310
8309
|
"directory-pin": "directory-pin";
|
|
8311
8310
|
"active-identity-file": "active-identity-file";
|
|
8311
|
+
none: "none";
|
|
8312
8312
|
}>;
|
|
8313
8313
|
pool: zod.ZodOptional<zod.ZodObject<{
|
|
8314
8314
|
name: zod.ZodString;
|
|
@@ -9684,9 +9684,9 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
|
|
|
9684
9684
|
current: zod.ZodString;
|
|
9685
9685
|
latest: zod.ZodString;
|
|
9686
9686
|
action: zod.ZodEnum<{
|
|
9687
|
-
updated: "updated";
|
|
9688
9687
|
current: "current";
|
|
9689
9688
|
available: "available";
|
|
9689
|
+
updated: "updated";
|
|
9690
9690
|
}>;
|
|
9691
9691
|
}, zod_v4_core.$strict>, MergedErrorMap<$ErrorMap, TErrorMap>>;
|
|
9692
9692
|
};
|
|
@@ -9885,12 +9885,12 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
|
|
|
9885
9885
|
identity: zod.ZodObject<{
|
|
9886
9886
|
name: zod.ZodNullable<zod.ZodString>;
|
|
9887
9887
|
source: zod.ZodEnum<{
|
|
9888
|
-
env: "env";
|
|
9889
|
-
none: "none";
|
|
9890
9888
|
"config-dir-escape-hatch": "config-dir-escape-hatch";
|
|
9891
9889
|
argv: "argv";
|
|
9890
|
+
env: "env";
|
|
9892
9891
|
"directory-pin": "directory-pin";
|
|
9893
9892
|
"active-identity-file": "active-identity-file";
|
|
9893
|
+
none: "none";
|
|
9894
9894
|
}>;
|
|
9895
9895
|
}, zod_v4_core.$strict>;
|
|
9896
9896
|
pool: zod.ZodOptional<zod.ZodObject<{
|
|
@@ -9968,11 +9968,11 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
|
|
|
9968
9968
|
"category-default": "category-default";
|
|
9969
9969
|
}>;
|
|
9970
9970
|
category: zod.ZodNullable<zod.ZodEnum<{
|
|
9971
|
+
secret: "secret";
|
|
9971
9972
|
runtime: "runtime";
|
|
9972
9973
|
history: "history";
|
|
9973
9974
|
knowledge: "knowledge";
|
|
9974
9975
|
settings: "settings";
|
|
9975
|
-
secret: "secret";
|
|
9976
9976
|
}>>;
|
|
9977
9977
|
rule: zod.ZodOptional<zod.ZodObject<{
|
|
9978
9978
|
key: zod.ZodString;
|
|
@@ -10191,11 +10191,10 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
|
|
|
10191
10191
|
"global-config": "global-config";
|
|
10192
10192
|
"config-profile": "config-profile";
|
|
10193
10193
|
identity: "identity";
|
|
10194
|
-
keychain: "keychain";
|
|
10195
10194
|
provider: "provider";
|
|
10196
|
-
headroom: "headroom";
|
|
10197
10195
|
frontdoor: "frontdoor";
|
|
10198
10196
|
pool: "pool";
|
|
10197
|
+
keychain: "keychain";
|
|
10199
10198
|
"ambient-credential": "ambient-credential";
|
|
10200
10199
|
"binary-discovery": "binary-discovery";
|
|
10201
10200
|
"claude-shim": "claude-shim";
|
|
@@ -10205,6 +10204,7 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
|
|
|
10205
10204
|
"directory-rules": "directory-rules";
|
|
10206
10205
|
"categories-local": "categories-local";
|
|
10207
10206
|
"active-identity": "active-identity";
|
|
10207
|
+
headroom: "headroom";
|
|
10208
10208
|
}>;
|
|
10209
10209
|
subject: zod.ZodOptional<zod.ZodString>;
|
|
10210
10210
|
severity: zod.ZodEnum<{
|
|
@@ -12037,11 +12037,10 @@ declare const DoctorFindingSchema: z.ZodObject<{
|
|
|
12037
12037
|
"global-config": "global-config";
|
|
12038
12038
|
"config-profile": "config-profile";
|
|
12039
12039
|
identity: "identity";
|
|
12040
|
-
keychain: "keychain";
|
|
12041
12040
|
provider: "provider";
|
|
12042
|
-
headroom: "headroom";
|
|
12043
12041
|
frontdoor: "frontdoor";
|
|
12044
12042
|
pool: "pool";
|
|
12043
|
+
keychain: "keychain";
|
|
12045
12044
|
"ambient-credential": "ambient-credential";
|
|
12046
12045
|
"binary-discovery": "binary-discovery";
|
|
12047
12046
|
"claude-shim": "claude-shim";
|
|
@@ -12051,6 +12050,7 @@ declare const DoctorFindingSchema: z.ZodObject<{
|
|
|
12051
12050
|
"directory-rules": "directory-rules";
|
|
12052
12051
|
"categories-local": "categories-local";
|
|
12053
12052
|
"active-identity": "active-identity";
|
|
12053
|
+
headroom: "headroom";
|
|
12054
12054
|
}>;
|
|
12055
12055
|
subject: z.ZodOptional<z.ZodString>;
|
|
12056
12056
|
severity: z.ZodEnum<{
|
|
@@ -12068,11 +12068,10 @@ declare const DoctorRunOutputSchema: z.ZodObject<{
|
|
|
12068
12068
|
"global-config": "global-config";
|
|
12069
12069
|
"config-profile": "config-profile";
|
|
12070
12070
|
identity: "identity";
|
|
12071
|
-
keychain: "keychain";
|
|
12072
12071
|
provider: "provider";
|
|
12073
|
-
headroom: "headroom";
|
|
12074
12072
|
frontdoor: "frontdoor";
|
|
12075
12073
|
pool: "pool";
|
|
12074
|
+
keychain: "keychain";
|
|
12076
12075
|
"ambient-credential": "ambient-credential";
|
|
12077
12076
|
"binary-discovery": "binary-discovery";
|
|
12078
12077
|
"claude-shim": "claude-shim";
|
|
@@ -12082,6 +12081,7 @@ declare const DoctorRunOutputSchema: z.ZodObject<{
|
|
|
12082
12081
|
"directory-rules": "directory-rules";
|
|
12083
12082
|
"categories-local": "categories-local";
|
|
12084
12083
|
"active-identity": "active-identity";
|
|
12084
|
+
headroom: "headroom";
|
|
12085
12085
|
}>;
|
|
12086
12086
|
subject: z.ZodOptional<z.ZodString>;
|
|
12087
12087
|
severity: z.ZodEnum<{
|
|
@@ -12102,9 +12102,9 @@ declare const UpdateCheckOutputSchema: z.ZodObject<{
|
|
|
12102
12102
|
current: z.ZodString;
|
|
12103
12103
|
latest: z.ZodString;
|
|
12104
12104
|
action: z.ZodEnum<{
|
|
12105
|
-
updated: "updated";
|
|
12106
12105
|
current: "current";
|
|
12107
12106
|
available: "available";
|
|
12107
|
+
updated: "updated";
|
|
12108
12108
|
}>;
|
|
12109
12109
|
}, z.core.$strict>;
|
|
12110
12110
|
/** The Sign in with ChatGPT login's state as `codex status` reports it: no sign-in yet, signed in (with who, whether the plan scope was granted, and when the access token lapses), or a file that cannot be read. */
|
|
@@ -12154,12 +12154,12 @@ declare const LaunchResolveOutputSchema: z.ZodObject<{
|
|
|
12154
12154
|
decision: z.ZodObject<{
|
|
12155
12155
|
identity: z.ZodOptional<z.ZodString>;
|
|
12156
12156
|
identitySource: z.ZodEnum<{
|
|
12157
|
-
env: "env";
|
|
12158
|
-
none: "none";
|
|
12159
12157
|
"config-dir-escape-hatch": "config-dir-escape-hatch";
|
|
12160
12158
|
argv: "argv";
|
|
12159
|
+
env: "env";
|
|
12161
12160
|
"directory-pin": "directory-pin";
|
|
12162
12161
|
"active-identity-file": "active-identity-file";
|
|
12162
|
+
none: "none";
|
|
12163
12163
|
}>;
|
|
12164
12164
|
pool: z.ZodOptional<z.ZodObject<{
|
|
12165
12165
|
name: z.ZodString;
|
|
@@ -12533,6 +12533,8 @@ interface EnsureFrontDoorPorts {
|
|
|
12533
12533
|
readonly verifyListener: (port: number) => ListenerVerdict;
|
|
12534
12534
|
/** Asks a running front-door supervisor to exit, without waiting for it to: the caller polls `isRunning`. Only ever called for a pid whose recorded listener has just authenticated as agent-shim's own, or whose process is agent-shim's front-door supervisor (`isFrontDoorSupervisor`). */
|
|
12535
12535
|
readonly stopSupervisor: (pid: number) => void;
|
|
12536
|
+
/** Ends a supervisor that did not exit when asked to, without giving it the chance to refuse: a door whose event loop is blocked never runs its signal handler. Called only for a pid `isFrontDoorSupervisor` has just confirmed, after `stopSupervisor` and a grace period. */
|
|
12537
|
+
readonly killSupervisor: (pid: number) => void;
|
|
12536
12538
|
/** Whether `pid` is a live agent-shim front-door supervisor process, read from the process's own command line. This is what separates a wedged door of this tool, which a replacement must retire so the two never coexist, from an unrelated process that reuses the recorded pid, which must never be signalled. */
|
|
12537
12539
|
readonly isFrontDoorSupervisor: (pid: number) => boolean;
|
|
12538
12540
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-shim",
|
|
3
|
-
"version": "11.5.
|
|
3
|
+
"version": "11.5.2",
|
|
4
4
|
"description": "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Joseph Mearman <joseph@mearman.co.uk>",
|