agent-shim 11.5.0 → 11.5.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.
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.0",
33979
+ version: "11.5.1",
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>",
@@ -61807,6 +61807,10 @@ function ensureFrontDoor(params) {
61807
61807
  let replaced = false;
61808
61808
  const distrusted = /* @__PURE__ */ new Set();
61809
61809
  let lastRejection;
61810
+ let busyDoor;
61811
+ const liveSessionsOn = (doorPid) => listFrontDoorSessions(ports.fs, paths.frontdoorSessionsDir).filter(
61812
+ (session) => session.pid !== params.launcherPid && ports.isRunning(session.pid) && (session.supervisorPid === void 0 || session.supervisorPid === doorPid)
61813
+ ).length;
61810
61814
  const verifyWithRetry = (port) => {
61811
61815
  let verdict = ports.verifyListener(port);
61812
61816
  for (let attempt = 1; !verdict.ok && attempt < FRONTDOOR_PROBE_ATTEMPTS; attempt += 1) {
@@ -61848,11 +61852,17 @@ function ensureFrontDoor(params) {
61848
61852
  throw new FrontDoorStartError(`${lastRejection}; refusing to send this session's credentials to it. Daemon log: ${paths.frontdoorLogPath}`);
61849
61853
  }
61850
61854
  if (ports.isFrontDoorSupervisor(supervisorPid)) {
61851
- stopAndAwaitExit(supervisorPid, `the front door (pid ${String(supervisorPid)}) stopped answering and did not exit when asked to`);
61855
+ const stranded = liveSessionsOn(supervisorPid);
61856
+ if (stranded > 0) {
61857
+ busyDoor = { pid: supervisorPid, sessions: stranded };
61858
+ } else {
61859
+ stopAndAwaitExit(supervisorPid, `the front door (pid ${String(supervisorPid)}) stopped answering and did not exit when asked to`);
61860
+ continue;
61861
+ }
61862
+ } else {
61863
+ distrusted.add(supervisorPid);
61852
61864
  continue;
61853
61865
  }
61854
- distrusted.add(supervisorPid);
61855
- continue;
61856
61866
  }
61857
61867
  if (state?.lastError !== void 0) {
61858
61868
  throw new FrontDoorStartError(`the front door reported a fatal error and is not serving: ${state.lastError} (daemon log: ${paths.frontdoorLogPath})`);
@@ -61875,7 +61885,7 @@ function ensureFrontDoor(params) {
61875
61885
  if (ports.now() >= deadline) {
61876
61886
  const lastError = state?.lastError;
61877
61887
  throw new FrontDoorStartError(
61878
- `the front door did not become ready within ${String(FRONTDOOR_START_TIMEOUT_MS)}ms` + (lastError === void 0 ? "" : ` (last error: ${lastError})`) + (lastRejection === void 0 ? "" : ` (${lastRejection})`) + `. Daemon log: ${paths.frontdoorLogPath}`
61888
+ `the front door did not become ready within ${String(FRONTDOOR_START_TIMEOUT_MS)}ms` + (lastError === void 0 ? "" : ` (last error: ${lastError})`) + (lastRejection === void 0 ? "" : ` (${lastRejection})`) + (busyDoor === void 0 ? "" : `. It was not replaced because ${String(busyDoor.sessions)} live session(s) are using it and would lose their connections; run \`agent-shim frontdoor restart\` to replace it deliberately`) + `. Daemon log: ${paths.frontdoorLogPath}`
61879
61889
  );
61880
61890
  }
61881
61891
  ports.sleep(FRONTDOOR_LAUNCHER_POLL_MS);
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.0",
2761
+ version: "11.5.1",
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>",
@@ -6758,6 +6758,10 @@ function ensureFrontDoor(params) {
6758
6758
  let replaced = false;
6759
6759
  const distrusted = /* @__PURE__ */ new Set();
6760
6760
  let lastRejection;
6761
+ let busyDoor;
6762
+ const liveSessionsOn = (doorPid) => listFrontDoorSessions(ports.fs, paths.frontdoorSessionsDir).filter(
6763
+ (session) => session.pid !== params.launcherPid && ports.isRunning(session.pid) && (session.supervisorPid === void 0 || session.supervisorPid === doorPid)
6764
+ ).length;
6761
6765
  const verifyWithRetry = (port) => {
6762
6766
  let verdict = ports.verifyListener(port);
6763
6767
  for (let attempt = 1; !verdict.ok && attempt < FRONTDOOR_PROBE_ATTEMPTS; attempt += 1) {
@@ -6799,11 +6803,17 @@ function ensureFrontDoor(params) {
6799
6803
  throw new FrontDoorStartError(`${lastRejection}; refusing to send this session's credentials to it. Daemon log: ${paths.frontdoorLogPath}`);
6800
6804
  }
6801
6805
  if (ports.isFrontDoorSupervisor(supervisorPid)) {
6802
- stopAndAwaitExit(supervisorPid, `the front door (pid ${String(supervisorPid)}) stopped answering and did not exit when asked to`);
6806
+ const stranded = liveSessionsOn(supervisorPid);
6807
+ if (stranded > 0) {
6808
+ busyDoor = { pid: supervisorPid, sessions: stranded };
6809
+ } else {
6810
+ stopAndAwaitExit(supervisorPid, `the front door (pid ${String(supervisorPid)}) stopped answering and did not exit when asked to`);
6811
+ continue;
6812
+ }
6813
+ } else {
6814
+ distrusted.add(supervisorPid);
6803
6815
  continue;
6804
6816
  }
6805
- distrusted.add(supervisorPid);
6806
- continue;
6807
6817
  }
6808
6818
  if (state?.lastError !== void 0) {
6809
6819
  throw new FrontDoorStartError(`the front door reported a fatal error and is not serving: ${state.lastError} (daemon log: ${paths.frontdoorLogPath})`);
@@ -6826,7 +6836,7 @@ function ensureFrontDoor(params) {
6826
6836
  if (ports.now() >= deadline) {
6827
6837
  const lastError = state?.lastError;
6828
6838
  throw new FrontDoorStartError(
6829
- `the front door did not become ready within ${String(FRONTDOOR_START_TIMEOUT_MS)}ms` + (lastError === void 0 ? "" : ` (last error: ${lastError})`) + (lastRejection === void 0 ? "" : ` (${lastRejection})`) + `. Daemon log: ${paths.frontdoorLogPath}`
6839
+ `the front door did not become ready within ${String(FRONTDOOR_START_TIMEOUT_MS)}ms` + (lastError === void 0 ? "" : ` (last error: ${lastError})`) + (lastRejection === void 0 ? "" : ` (${lastRejection})`) + (busyDoor === void 0 ? "" : `. It was not replaced because ${String(busyDoor.sessions)} live session(s) are using it and would lose their connections; run \`agent-shim frontdoor restart\` to replace it deliberately`) + `. Daemon log: ${paths.frontdoorLogPath}`
6830
6840
  );
6831
6841
  }
6832
6842
  ports.sleep(FRONTDOOR_LAUNCHER_POLL_MS);
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.0",
2737
+ version: "11.5.1",
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>",
@@ -6732,6 +6732,10 @@ function ensureFrontDoor(params) {
6732
6732
  let replaced = false;
6733
6733
  const distrusted = /* @__PURE__ */ new Set();
6734
6734
  let lastRejection;
6735
+ let busyDoor;
6736
+ const liveSessionsOn = (doorPid) => listFrontDoorSessions(ports.fs, paths.frontdoorSessionsDir).filter(
6737
+ (session) => session.pid !== params.launcherPid && ports.isRunning(session.pid) && (session.supervisorPid === void 0 || session.supervisorPid === doorPid)
6738
+ ).length;
6735
6739
  const verifyWithRetry = (port) => {
6736
6740
  let verdict = ports.verifyListener(port);
6737
6741
  for (let attempt = 1; !verdict.ok && attempt < FRONTDOOR_PROBE_ATTEMPTS; attempt += 1) {
@@ -6773,11 +6777,17 @@ function ensureFrontDoor(params) {
6773
6777
  throw new FrontDoorStartError(`${lastRejection}; refusing to send this session's credentials to it. Daemon log: ${paths.frontdoorLogPath}`);
6774
6778
  }
6775
6779
  if (ports.isFrontDoorSupervisor(supervisorPid)) {
6776
- stopAndAwaitExit(supervisorPid, `the front door (pid ${String(supervisorPid)}) stopped answering and did not exit when asked to`);
6780
+ const stranded = liveSessionsOn(supervisorPid);
6781
+ if (stranded > 0) {
6782
+ busyDoor = { pid: supervisorPid, sessions: stranded };
6783
+ } else {
6784
+ stopAndAwaitExit(supervisorPid, `the front door (pid ${String(supervisorPid)}) stopped answering and did not exit when asked to`);
6785
+ continue;
6786
+ }
6787
+ } else {
6788
+ distrusted.add(supervisorPid);
6777
6789
  continue;
6778
6790
  }
6779
- distrusted.add(supervisorPid);
6780
- continue;
6781
6791
  }
6782
6792
  if (state?.lastError !== void 0) {
6783
6793
  throw new FrontDoorStartError(`the front door reported a fatal error and is not serving: ${state.lastError} (daemon log: ${paths.frontdoorLogPath})`);
@@ -6800,7 +6810,7 @@ function ensureFrontDoor(params) {
6800
6810
  if (ports.now() >= deadline) {
6801
6811
  const lastError = state?.lastError;
6802
6812
  throw new FrontDoorStartError(
6803
- `the front door did not become ready within ${String(FRONTDOOR_START_TIMEOUT_MS)}ms` + (lastError === void 0 ? "" : ` (last error: ${lastError})`) + (lastRejection === void 0 ? "" : ` (${lastRejection})`) + `. Daemon log: ${paths.frontdoorLogPath}`
6813
+ `the front door did not become ready within ${String(FRONTDOOR_START_TIMEOUT_MS)}ms` + (lastError === void 0 ? "" : ` (last error: ${lastError})`) + (lastRejection === void 0 ? "" : ` (${lastRejection})`) + (busyDoor === void 0 ? "" : `. It was not replaced because ${String(busyDoor.sessions)} live session(s) are using it and would lose their connections; run \`agent-shim frontdoor restart\` to replace it deliberately`) + `. Daemon log: ${paths.frontdoorLogPath}`
6804
6814
  );
6805
6815
  }
6806
6816
  ports.sleep(FRONTDOOR_LAUNCHER_POLL_MS);
@@ -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
- none: "none";
1336
1335
  lossless: "lossless";
1336
+ none: "none";
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
- none: "none";
1464
1463
  lossless: "lossless";
1464
+ none: "none";
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";
4166
4168
  "config-dir-escape-hatch": "config-dir-escape-hatch";
4167
4169
  argv: "argv";
4168
- env: "env";
4169
4170
  "directory-pin": "directory-pin";
4170
4171
  "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";
4250
4249
  runtime: "runtime";
4251
4250
  history: "history";
4252
4251
  knowledge: "knowledge";
4253
4252
  settings: "settings";
4253
+ secret: "secret";
4254
4254
  }>>;
4255
4255
  rule: z.ZodOptional<z.ZodObject<{
4256
4256
  key: z.ZodString;
@@ -5656,7 +5656,6 @@ declare function createConfigApiRouter(deps: ConfigApiDeps): {
5656
5656
  kind: zod.ZodLiteral<"profile">;
5657
5657
  name: zod.ZodString;
5658
5658
  value: zod.ZodObject<{
5659
- description: zod.ZodOptional<zod.ZodString>;
5660
5659
  entries: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodBoolean, zod.ZodObject<{
5661
5660
  value: zod.ZodBoolean;
5662
5661
  when: zod.ZodUnion<readonly [zod.ZodObject<{
@@ -5732,6 +5731,7 @@ declare function createConfigApiRouter(deps: ConfigApiDeps): {
5732
5731
  key: zod.ZodType<trilean.JsonValue, unknown, zod_v4_core.$ZodTypeInternals<trilean.JsonValue, unknown>>;
5733
5732
  }, zod_v4_core.$strip>], "kind">]>;
5734
5733
  }, zod_v4_core.$strict>]>>>;
5734
+ description: zod.ZodOptional<zod.ZodString>;
5735
5735
  extends: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
5736
5736
  categories: zod.ZodOptional<zod.ZodPipe<zod.ZodObject<{
5737
5737
  all: zod.ZodOptional<zod.ZodBoolean>;
@@ -5775,7 +5775,6 @@ declare function createConfigApiRouter(deps: ConfigApiDeps): {
5775
5775
  kind: zod.ZodLiteral<"profile">;
5776
5776
  name: zod.ZodString;
5777
5777
  value: zod.ZodObject<{
5778
- description: zod.ZodOptional<zod.ZodString>;
5779
5778
  entries: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodBoolean, zod.ZodObject<{
5780
5779
  value: zod.ZodBoolean;
5781
5780
  when: zod.ZodUnion<readonly [zod.ZodObject<{
@@ -5851,6 +5850,7 @@ declare function createConfigApiRouter(deps: ConfigApiDeps): {
5851
5850
  key: zod.ZodType<trilean.JsonValue, unknown, zod_v4_core.$ZodTypeInternals<trilean.JsonValue, unknown>>;
5852
5851
  }, zod_v4_core.$strip>], "kind">]>;
5853
5852
  }, zod_v4_core.$strict>]>>>;
5853
+ description: zod.ZodOptional<zod.ZodString>;
5854
5854
  extends: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
5855
5855
  categories: zod.ZodOptional<zod.ZodPipe<zod.ZodObject<{
5856
5856
  all: zod.ZodOptional<zod.ZodBoolean>;
@@ -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";
6945
6946
  current: "current";
6946
6947
  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";
7194
7196
  "config-dir-escape-hatch": "config-dir-escape-hatch";
7195
7197
  argv: "argv";
7196
- env: "env";
7197
7198
  "directory-pin": "directory-pin";
7198
7199
  "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";
7794
7796
  "config-dir-escape-hatch": "config-dir-escape-hatch";
7795
7797
  argv: "argv";
7796
- env: "env";
7797
7798
  "directory-pin": "directory-pin";
7798
7799
  "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";
7878
7877
  runtime: "runtime";
7879
7878
  history: "history";
7880
7879
  knowledge: "knowledge";
7881
7880
  settings: "settings";
7881
+ secret: "secret";
7882
7882
  }>>;
7883
7883
  rule: zod.ZodOptional<zod.ZodObject<{
7884
7884
  key: zod.ZodString;
@@ -8097,10 +8097,11 @@ declare function createControlApiRouter(deps: ControlApiDeps): {
8097
8097
  "global-config": "global-config";
8098
8098
  "config-profile": "config-profile";
8099
8099
  identity: "identity";
8100
+ keychain: "keychain";
8100
8101
  provider: "provider";
8102
+ headroom: "headroom";
8101
8103
  frontdoor: "frontdoor";
8102
8104
  pool: "pool";
8103
- keychain: "keychain";
8104
8105
  "ambient-credential": "ambient-credential";
8105
8106
  "binary-discovery": "binary-discovery";
8106
8107
  "claude-shim": "claude-shim";
@@ -8110,7 +8111,6 @@ declare function createControlApiRouter(deps: ControlApiDeps): {
8110
8111
  "directory-rules": "directory-rules";
8111
8112
  "categories-local": "categories-local";
8112
8113
  "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";
8306
8308
  "config-dir-escape-hatch": "config-dir-escape-hatch";
8307
8309
  argv: "argv";
8308
- env: "env";
8309
8310
  "directory-pin": "directory-pin";
8310
8311
  "active-identity-file": "active-identity-file";
8311
- none: "none";
8312
8312
  }>;
8313
8313
  pool: zod.ZodOptional<zod.ZodObject<{
8314
8314
  name: zod.ZodString;
@@ -8606,7 +8606,6 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
8606
8606
  kind: zod.ZodLiteral<"profile">;
8607
8607
  name: zod.ZodString;
8608
8608
  value: zod.ZodObject<{
8609
- description: zod.ZodOptional<zod.ZodString>;
8610
8609
  entries: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodBoolean, zod.ZodObject<{
8611
8610
  value: zod.ZodBoolean;
8612
8611
  when: zod.ZodUnion<readonly [zod.ZodObject<{
@@ -8682,6 +8681,7 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
8682
8681
  key: zod.ZodType<trilean.JsonValue, unknown, zod_v4_core.$ZodTypeInternals<trilean.JsonValue, unknown>>;
8683
8682
  }, zod_v4_core.$strip>], "kind">]>;
8684
8683
  }, zod_v4_core.$strict>]>>>;
8684
+ description: zod.ZodOptional<zod.ZodString>;
8685
8685
  extends: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
8686
8686
  categories: zod.ZodOptional<zod.ZodPipe<zod.ZodObject<{
8687
8687
  all: zod.ZodOptional<zod.ZodBoolean>;
@@ -8725,7 +8725,6 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
8725
8725
  kind: zod.ZodLiteral<"profile">;
8726
8726
  name: zod.ZodString;
8727
8727
  value: zod.ZodObject<{
8728
- description: zod.ZodOptional<zod.ZodString>;
8729
8728
  entries: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodBoolean, zod.ZodObject<{
8730
8729
  value: zod.ZodBoolean;
8731
8730
  when: zod.ZodUnion<readonly [zod.ZodObject<{
@@ -8801,6 +8800,7 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
8801
8800
  key: zod.ZodType<trilean.JsonValue, unknown, zod_v4_core.$ZodTypeInternals<trilean.JsonValue, unknown>>;
8802
8801
  }, zod_v4_core.$strip>], "kind">]>;
8803
8802
  }, zod_v4_core.$strict>]>>>;
8803
+ description: zod.ZodOptional<zod.ZodString>;
8804
8804
  extends: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
8805
8805
  categories: zod.ZodOptional<zod.ZodPipe<zod.ZodObject<{
8806
8806
  all: zod.ZodOptional<zod.ZodBoolean>;
@@ -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";
9687
9688
  current: "current";
9688
9689
  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";
9888
9890
  "config-dir-escape-hatch": "config-dir-escape-hatch";
9889
9891
  argv: "argv";
9890
- env: "env";
9891
9892
  "directory-pin": "directory-pin";
9892
9893
  "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";
9972
9971
  runtime: "runtime";
9973
9972
  history: "history";
9974
9973
  knowledge: "knowledge";
9975
9974
  settings: "settings";
9975
+ secret: "secret";
9976
9976
  }>>;
9977
9977
  rule: zod.ZodOptional<zod.ZodObject<{
9978
9978
  key: zod.ZodString;
@@ -10191,10 +10191,11 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
10191
10191
  "global-config": "global-config";
10192
10192
  "config-profile": "config-profile";
10193
10193
  identity: "identity";
10194
+ keychain: "keychain";
10194
10195
  provider: "provider";
10196
+ headroom: "headroom";
10195
10197
  frontdoor: "frontdoor";
10196
10198
  pool: "pool";
10197
- keychain: "keychain";
10198
10199
  "ambient-credential": "ambient-credential";
10199
10200
  "binary-discovery": "binary-discovery";
10200
10201
  "claude-shim": "claude-shim";
@@ -10204,7 +10205,6 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
10204
10205
  "directory-rules": "directory-rules";
10205
10206
  "categories-local": "categories-local";
10206
10207
  "active-identity": "active-identity";
10207
- headroom: "headroom";
10208
10208
  }>;
10209
10209
  subject: zod.ZodOptional<zod.ZodString>;
10210
10210
  severity: zod.ZodEnum<{
@@ -10714,7 +10714,6 @@ declare const ConfigProfileAddOutputSchema: z.ZodObject<{
10714
10714
  kind: z.ZodLiteral<"profile">;
10715
10715
  name: z.ZodString;
10716
10716
  value: z.ZodObject<{
10717
- description: z.ZodOptional<z.ZodString>;
10718
10717
  entries: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
10719
10718
  value: z.ZodBoolean;
10720
10719
  when: z.ZodUnion<readonly [z.ZodObject<{
@@ -10790,6 +10789,7 @@ declare const ConfigProfileAddOutputSchema: z.ZodObject<{
10790
10789
  key: z.ZodType<trilean.JsonValue, unknown, z.core.$ZodTypeInternals<trilean.JsonValue, unknown>>;
10791
10790
  }, z.core.$strip>], "kind">]>;
10792
10791
  }, z.core.$strict>]>>>;
10792
+ description: z.ZodOptional<z.ZodString>;
10793
10793
  extends: z.ZodOptional<z.ZodArray<z.ZodString>>;
10794
10794
  categories: z.ZodOptional<z.ZodPipe<z.ZodObject<{
10795
10795
  all: z.ZodOptional<z.ZodBoolean>;
@@ -10835,7 +10835,6 @@ declare const ConfigProfileSetOutputSchema: z.ZodObject<{
10835
10835
  kind: z.ZodLiteral<"profile">;
10836
10836
  name: z.ZodString;
10837
10837
  value: z.ZodObject<{
10838
- description: z.ZodOptional<z.ZodString>;
10839
10838
  entries: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
10840
10839
  value: z.ZodBoolean;
10841
10840
  when: z.ZodUnion<readonly [z.ZodObject<{
@@ -10911,6 +10910,7 @@ declare const ConfigProfileSetOutputSchema: z.ZodObject<{
10911
10910
  key: z.ZodType<trilean.JsonValue, unknown, z.core.$ZodTypeInternals<trilean.JsonValue, unknown>>;
10912
10911
  }, z.core.$strip>], "kind">]>;
10913
10912
  }, z.core.$strict>]>>>;
10913
+ description: z.ZodOptional<z.ZodString>;
10914
10914
  extends: z.ZodOptional<z.ZodArray<z.ZodString>>;
10915
10915
  categories: z.ZodOptional<z.ZodPipe<z.ZodObject<{
10916
10916
  all: z.ZodOptional<z.ZodBoolean>;
@@ -12037,10 +12037,11 @@ declare const DoctorFindingSchema: z.ZodObject<{
12037
12037
  "global-config": "global-config";
12038
12038
  "config-profile": "config-profile";
12039
12039
  identity: "identity";
12040
+ keychain: "keychain";
12040
12041
  provider: "provider";
12042
+ headroom: "headroom";
12041
12043
  frontdoor: "frontdoor";
12042
12044
  pool: "pool";
12043
- keychain: "keychain";
12044
12045
  "ambient-credential": "ambient-credential";
12045
12046
  "binary-discovery": "binary-discovery";
12046
12047
  "claude-shim": "claude-shim";
@@ -12050,7 +12051,6 @@ declare const DoctorFindingSchema: z.ZodObject<{
12050
12051
  "directory-rules": "directory-rules";
12051
12052
  "categories-local": "categories-local";
12052
12053
  "active-identity": "active-identity";
12053
- headroom: "headroom";
12054
12054
  }>;
12055
12055
  subject: z.ZodOptional<z.ZodString>;
12056
12056
  severity: z.ZodEnum<{
@@ -12068,10 +12068,11 @@ declare const DoctorRunOutputSchema: z.ZodObject<{
12068
12068
  "global-config": "global-config";
12069
12069
  "config-profile": "config-profile";
12070
12070
  identity: "identity";
12071
+ keychain: "keychain";
12071
12072
  provider: "provider";
12073
+ headroom: "headroom";
12072
12074
  frontdoor: "frontdoor";
12073
12075
  pool: "pool";
12074
- keychain: "keychain";
12075
12076
  "ambient-credential": "ambient-credential";
12076
12077
  "binary-discovery": "binary-discovery";
12077
12078
  "claude-shim": "claude-shim";
@@ -12081,7 +12082,6 @@ declare const DoctorRunOutputSchema: z.ZodObject<{
12081
12082
  "directory-rules": "directory-rules";
12082
12083
  "categories-local": "categories-local";
12083
12084
  "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";
12105
12106
  current: "current";
12106
12107
  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";
12157
12159
  "config-dir-escape-hatch": "config-dir-escape-hatch";
12158
12160
  argv: "argv";
12159
- env: "env";
12160
12161
  "directory-pin": "directory-pin";
12161
12162
  "active-identity-file": "active-identity-file";
12162
- none: "none";
12163
12163
  }>;
12164
12164
  pool: z.ZodOptional<z.ZodObject<{
12165
12165
  name: z.ZodString;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-shim",
3
- "version": "11.5.0",
3
+ "version": "11.5.1",
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>",