agent-shim 11.8.1 → 11.8.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 +76 -11
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/types/index.d.ts +28 -28
- package/package.json +1 -1
package/dist/cli.cjs
CHANGED
|
@@ -34007,7 +34007,7 @@ var init_package = __esm({
|
|
|
34007
34007
|
"package.json"() {
|
|
34008
34008
|
package_default = {
|
|
34009
34009
|
name: "agent-shim",
|
|
34010
|
-
version: "11.8.
|
|
34010
|
+
version: "11.8.2",
|
|
34011
34011
|
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.",
|
|
34012
34012
|
license: "MIT",
|
|
34013
34013
|
author: "Joseph Mearman <joseph@mearman.co.uk>",
|
|
@@ -114184,6 +114184,13 @@ function watchedInstallEntry(resolvedOwnExecutablePath, siblingExists) {
|
|
|
114184
114184
|
const sibling = import_node_path44.default.join(parsed.dir, `agent-shim${parsed.ext}`);
|
|
114185
114185
|
return siblingExists(sibling) ? sibling : resolvedOwnExecutablePath;
|
|
114186
114186
|
}
|
|
114187
|
+
var AWAIT_PID_POLL_MS = 50;
|
|
114188
|
+
async function awaitPidExit(pid, boundMs, ports) {
|
|
114189
|
+
const deadline = ports.now() + boundMs;
|
|
114190
|
+
while (ports.isRunning(pid) && ports.now() < deadline) {
|
|
114191
|
+
await ports.sleep(AWAIT_PID_POLL_MS);
|
|
114192
|
+
}
|
|
114193
|
+
}
|
|
114187
114194
|
var FRONTDOOR_SUPERVISOR_STILL_RUNNING = -1;
|
|
114188
114195
|
var FRONTDOOR_POLL_MS = 1e3;
|
|
114189
114196
|
var MS_PER_MINUTE3 = 6e4;
|
|
@@ -131081,15 +131088,20 @@ function createRcStreamHub(deps) {
|
|
|
131081
131088
|
|
|
131082
131089
|
// src/frontdoor/watchdog.ts
|
|
131083
131090
|
var import_node_worker_threads2 = require("node:worker_threads");
|
|
131091
|
+
init_schema();
|
|
131084
131092
|
init_ensure2();
|
|
131085
131093
|
init_probe();
|
|
131086
131094
|
var DOOR_STALL_BOUND_MS = 2 * FRONTDOOR_PROBE_ATTEMPTS * PROBE_TIMEOUT_MS;
|
|
131095
|
+
var MS_PER_MINUTE4 = 6e4;
|
|
131096
|
+
var DOOR_RESPAWN_MIN_SERVING_MS = FRONTDOOR_DEFAULT_IDLE_SHUTDOWN_MINUTES * MS_PER_MINUTE4;
|
|
131097
|
+
var DOOR_AWAIT_PID_ENV = "AGENT_SHIM_FRONTDOOR_AWAIT_PID";
|
|
131087
131098
|
var CHECKS_PER_PROBE_DEADLINE = 2;
|
|
131088
131099
|
var DOOR_WATCHDOG_CHECK_MS = PROBE_TIMEOUT_MS / CHECKS_PER_PROBE_DEADLINE;
|
|
131089
131100
|
var WATCHDOG_SOURCE = `
|
|
131090
131101
|
const { workerData, parentPort } = require("node:worker_threads");
|
|
131091
131102
|
const fs = require("node:fs");
|
|
131092
|
-
const { shared, boundMs, checkEveryMs, stateFile, ownPid, action } = workerData;
|
|
131103
|
+
const { shared, boundMs, checkEveryMs, stateFile, ownPid, action, logFile, respawn, respawnAfterServingMs, awaitPidEnv } = workerData;
|
|
131104
|
+
const startedAt = Date.now();
|
|
131093
131105
|
const counter = new Int32Array(shared);
|
|
131094
131106
|
let lastValue = Atomics.load(counter, 0);
|
|
131095
131107
|
let lastChangeAt = Date.now();
|
|
@@ -131106,6 +131118,31 @@ const record = (message) => {
|
|
|
131106
131118
|
// The state file is a courtesy to whoever looks next; the process still has to end.
|
|
131107
131119
|
}
|
|
131108
131120
|
};
|
|
131121
|
+
const log = (line) => {
|
|
131122
|
+
if (logFile === undefined) return;
|
|
131123
|
+
try {
|
|
131124
|
+
fs.appendFileSync(logFile, new Date().toISOString() + " frontdoor " + String(ownPid) + ": " + line + "\\n");
|
|
131125
|
+
} catch (error) {
|
|
131126
|
+
// Nowhere left to report a failed log write to; the process still has to end.
|
|
131127
|
+
}
|
|
131128
|
+
};
|
|
131129
|
+
const spawnReplacement = () => {
|
|
131130
|
+
if (respawn === undefined || logFile === undefined) return;
|
|
131131
|
+
const servedMs = Date.now() - startedAt;
|
|
131132
|
+
if (servedMs < respawnAfterServingMs) {
|
|
131133
|
+
log("the door served for " + String(servedMs) + "ms before stalling, less than the " + String(respawnAfterServingMs) + "ms it must have served to be replaced; leaving the next launch to start one");
|
|
131134
|
+
return;
|
|
131135
|
+
}
|
|
131136
|
+
try {
|
|
131137
|
+
const out = fs.openSync(logFile, "a");
|
|
131138
|
+
const child = require("node:child_process").spawn(respawn.command, respawn.args, { detached: true, stdio: ["ignore", out, out], env: Object.assign({}, respawn.env, { [awaitPidEnv]: String(ownPid) }) });
|
|
131139
|
+
child.unref();
|
|
131140
|
+
fs.closeSync(out);
|
|
131141
|
+
log("started replacement door " + String(child.pid) + ", which binds once this process is gone");
|
|
131142
|
+
} catch (error) {
|
|
131143
|
+
log("could not start a replacement door: " + (error instanceof Error ? error.message : String(error)));
|
|
131144
|
+
}
|
|
131145
|
+
};
|
|
131109
131146
|
const timer = setInterval(() => {
|
|
131110
131147
|
if (stopped) return;
|
|
131111
131148
|
const now = Date.now();
|
|
@@ -131120,6 +131157,8 @@ const timer = setInterval(() => {
|
|
|
131120
131157
|
if (now - lastChangeAt >= boundMs) {
|
|
131121
131158
|
const message = "the front door's event loop did not run for " + String(now - lastChangeAt) + "ms; its watchdog ended the process so the next launch starts a fresh door on the same ports";
|
|
131122
131159
|
record(message);
|
|
131160
|
+
log(message);
|
|
131161
|
+
spawnReplacement();
|
|
131123
131162
|
stopped = true;
|
|
131124
131163
|
clearInterval(timer);
|
|
131125
131164
|
if (action === "kill-process") {
|
|
@@ -131142,7 +131181,7 @@ function startThreadWatchdog(params) {
|
|
|
131142
131181
|
const counter = new Int32Array(shared);
|
|
131143
131182
|
const worker = new import_node_worker_threads2.Worker(WATCHDOG_SOURCE, {
|
|
131144
131183
|
eval: true,
|
|
131145
|
-
workerData: { shared, boundMs: params.boundMs, checkEveryMs: params.checkEveryMs, stateFile: params.stateFile, ownPid: params.ownPid, action: params.action }
|
|
131184
|
+
workerData: { shared, boundMs: params.boundMs, checkEveryMs: params.checkEveryMs, stateFile: params.stateFile, ownPid: params.ownPid, action: params.action, logFile: params.logFile, respawn: params.respawn, respawnAfterServingMs: params.respawnAfterServingMs, awaitPidEnv: DOOR_AWAIT_PID_ENV }
|
|
131146
131185
|
});
|
|
131147
131186
|
worker.unref();
|
|
131148
131187
|
worker.on("message", (message) => {
|
|
@@ -131270,6 +131309,13 @@ function createRealQuotaRefresher(params) {
|
|
|
131270
131309
|
|
|
131271
131310
|
// src/frontdoor/commands.ts
|
|
131272
131311
|
init_store2();
|
|
131312
|
+
function respawnInvocation(paths) {
|
|
131313
|
+
const env = {};
|
|
131314
|
+
for (const [name, value2] of Object.entries({ ...process.env, AGENT_SHIM_HOME: paths.root })) {
|
|
131315
|
+
env[name] = value2;
|
|
131316
|
+
}
|
|
131317
|
+
return { ...selfInvocation(["__frontdoor-supervisor"]), env };
|
|
131318
|
+
}
|
|
131273
131319
|
function appendLog(paths, line) {
|
|
131274
131320
|
import_node_fs19.default.mkdirSync(paths.logsDir, { recursive: true });
|
|
131275
131321
|
import_node_fs19.default.appendFileSync(paths.frontdoorLogPath, `${(/* @__PURE__ */ new Date()).toISOString()} ${line}
|
|
@@ -131663,7 +131709,16 @@ function realFrontDoorSupervisorPorts(paths) {
|
|
|
131663
131709
|
return { port: handle.port, close: handle.close };
|
|
131664
131710
|
},
|
|
131665
131711
|
closeRcStreamHub: rcHub.close,
|
|
131666
|
-
startWatchdog: () => startThreadWatchdog({
|
|
131712
|
+
startWatchdog: () => startThreadWatchdog({
|
|
131713
|
+
stateFile: paths.frontdoorStateFile,
|
|
131714
|
+
ownPid: process.pid,
|
|
131715
|
+
boundMs: DOOR_STALL_BOUND_MS,
|
|
131716
|
+
checkEveryMs: DOOR_WATCHDOG_CHECK_MS,
|
|
131717
|
+
action: "kill-process",
|
|
131718
|
+
logFile: paths.frontdoorLogPath,
|
|
131719
|
+
respawn: respawnInvocation(paths),
|
|
131720
|
+
respawnAfterServingMs: DOOR_RESPAWN_MIN_SERVING_MS
|
|
131721
|
+
}),
|
|
131667
131722
|
// The launch lifecycle publisher over the same backbone the typed API serves: the tick's registry facts go in here, and the door's own register, prune and end moments come out as source-tagged events.
|
|
131668
131723
|
observeLaunchRegistry: createLaunchEventPublisher(doorEvents, () => Date.now()).observe,
|
|
131669
131724
|
doorHealth,
|
|
@@ -131708,14 +131763,24 @@ function registerFrontDoorCommand(program2, deps) {
|
|
|
131708
131763
|
registerRcCommand(frontdoor, paths);
|
|
131709
131764
|
program2.command("__frontdoor-supervisor", { hidden: true }).description("Internal: serve the front-door routing listeners. Started by the launcher; never run by hand.").allowUnknownOption().action(async () => {
|
|
131710
131765
|
const idleShutdownMinutes = readGlobalConfig(paths)?.frontdoor?.idleShutdownMinutes ?? FRONTDOOR_DEFAULT_IDLE_SHUTDOWN_MINUTES;
|
|
131711
|
-
|
|
131712
|
-
|
|
131713
|
-
|
|
131714
|
-
|
|
131715
|
-
|
|
131716
|
-
|
|
131766
|
+
const supervisorPorts = realFrontDoorSupervisorPorts(paths);
|
|
131767
|
+
const ownPid = process.pid;
|
|
131768
|
+
process.on("exit", (code) => {
|
|
131769
|
+
supervisorPorts.log(`frontdoor ${String(ownPid)}: exiting with code ${String(code)}`);
|
|
131770
|
+
});
|
|
131771
|
+
for (const signal of ["SIGTERM", "SIGINT"]) {
|
|
131772
|
+
process.on(signal, () => {
|
|
131773
|
+
supervisorPorts.log(`frontdoor ${String(ownPid)}: received ${signal}; exiting`);
|
|
131774
|
+
deps.exit(0);
|
|
131775
|
+
});
|
|
131776
|
+
}
|
|
131777
|
+
const awaited = Number(process.env[DOOR_AWAIT_PID_ENV]);
|
|
131778
|
+
Reflect.deleteProperty(process.env, DOOR_AWAIT_PID_ENV);
|
|
131779
|
+
if (Number.isInteger(awaited) && awaited > 0) {
|
|
131780
|
+
await awaitPidExit(awaited, DOOR_STALL_BOUND_MS, supervisorPorts);
|
|
131781
|
+
}
|
|
131717
131782
|
declareThisProcessTheFrontDoor();
|
|
131718
|
-
deps.exit(await runFrontDoorSupervisor(idleShutdownMinutes,
|
|
131783
|
+
deps.exit(await runFrontDoorSupervisor(idleShutdownMinutes, supervisorPorts));
|
|
131719
131784
|
});
|
|
131720
131785
|
}
|
|
131721
131786
|
|
package/dist/index.cjs
CHANGED
|
@@ -2787,7 +2787,7 @@ var init_package = __esm({
|
|
|
2787
2787
|
"package.json"() {
|
|
2788
2788
|
package_default = {
|
|
2789
2789
|
name: "agent-shim",
|
|
2790
|
-
version: "11.8.
|
|
2790
|
+
version: "11.8.2",
|
|
2791
2791
|
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.",
|
|
2792
2792
|
license: "MIT",
|
|
2793
2793
|
author: "Joseph Mearman <joseph@mearman.co.uk>",
|
package/dist/index.mjs
CHANGED
|
@@ -2763,7 +2763,7 @@ var init_package = __esm({
|
|
|
2763
2763
|
"package.json"() {
|
|
2764
2764
|
package_default = {
|
|
2765
2765
|
name: "agent-shim",
|
|
2766
|
-
version: "11.8.
|
|
2766
|
+
version: "11.8.2",
|
|
2767
2767
|
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.",
|
|
2768
2768
|
license: "MIT",
|
|
2769
2769
|
author: "Joseph Mearman <joseph@mearman.co.uk>",
|
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;
|
|
@@ -6964,9 +6964,9 @@ declare function createLifecycleApiRouter(deps: LifecycleApiDeps): {
|
|
|
6964
6964
|
current: zod.ZodString;
|
|
6965
6965
|
latest: zod.ZodString;
|
|
6966
6966
|
action: zod.ZodEnum<{
|
|
6967
|
-
updated: "updated";
|
|
6968
6967
|
current: "current";
|
|
6969
6968
|
available: "available";
|
|
6969
|
+
updated: "updated";
|
|
6970
6970
|
}>;
|
|
6971
6971
|
}, zod_v4_core.$strict>, MergedErrorMap<$ErrorMap, TErrorMap>>;
|
|
6972
6972
|
};
|
|
@@ -7213,12 +7213,12 @@ declare function createLaunchApiRouter(deps: LaunchApiDeps): {
|
|
|
7213
7213
|
decision: zod.ZodObject<{
|
|
7214
7214
|
identity: zod.ZodOptional<zod.ZodString>;
|
|
7215
7215
|
identitySource: zod.ZodEnum<{
|
|
7216
|
-
env: "env";
|
|
7217
|
-
none: "none";
|
|
7218
7216
|
"config-dir-escape-hatch": "config-dir-escape-hatch";
|
|
7219
7217
|
argv: "argv";
|
|
7218
|
+
env: "env";
|
|
7220
7219
|
"directory-pin": "directory-pin";
|
|
7221
7220
|
"active-identity-file": "active-identity-file";
|
|
7221
|
+
none: "none";
|
|
7222
7222
|
}>;
|
|
7223
7223
|
pool: zod.ZodOptional<zod.ZodObject<{
|
|
7224
7224
|
name: zod.ZodString;
|
|
@@ -7813,12 +7813,12 @@ declare function createControlApiRouter(deps: ControlApiDeps): {
|
|
|
7813
7813
|
identity: zod.ZodObject<{
|
|
7814
7814
|
name: zod.ZodNullable<zod.ZodString>;
|
|
7815
7815
|
source: zod.ZodEnum<{
|
|
7816
|
-
env: "env";
|
|
7817
|
-
none: "none";
|
|
7818
7816
|
"config-dir-escape-hatch": "config-dir-escape-hatch";
|
|
7819
7817
|
argv: "argv";
|
|
7818
|
+
env: "env";
|
|
7820
7819
|
"directory-pin": "directory-pin";
|
|
7821
7820
|
"active-identity-file": "active-identity-file";
|
|
7821
|
+
none: "none";
|
|
7822
7822
|
}>;
|
|
7823
7823
|
}, zod_v4_core.$strict>;
|
|
7824
7824
|
pool: zod.ZodOptional<zod.ZodObject<{
|
|
@@ -7896,11 +7896,11 @@ declare function createControlApiRouter(deps: ControlApiDeps): {
|
|
|
7896
7896
|
"category-default": "category-default";
|
|
7897
7897
|
}>;
|
|
7898
7898
|
category: zod.ZodNullable<zod.ZodEnum<{
|
|
7899
|
+
secret: "secret";
|
|
7899
7900
|
runtime: "runtime";
|
|
7900
7901
|
history: "history";
|
|
7901
7902
|
knowledge: "knowledge";
|
|
7902
7903
|
settings: "settings";
|
|
7903
|
-
secret: "secret";
|
|
7904
7904
|
}>>;
|
|
7905
7905
|
rule: zod.ZodOptional<zod.ZodObject<{
|
|
7906
7906
|
key: zod.ZodString;
|
|
@@ -8119,11 +8119,10 @@ declare function createControlApiRouter(deps: ControlApiDeps): {
|
|
|
8119
8119
|
"global-config": "global-config";
|
|
8120
8120
|
"config-profile": "config-profile";
|
|
8121
8121
|
identity: "identity";
|
|
8122
|
-
keychain: "keychain";
|
|
8123
8122
|
provider: "provider";
|
|
8124
|
-
headroom: "headroom";
|
|
8125
8123
|
frontdoor: "frontdoor";
|
|
8126
8124
|
pool: "pool";
|
|
8125
|
+
keychain: "keychain";
|
|
8127
8126
|
"ambient-credential": "ambient-credential";
|
|
8128
8127
|
"binary-discovery": "binary-discovery";
|
|
8129
8128
|
"claude-shim": "claude-shim";
|
|
@@ -8133,6 +8132,7 @@ declare function createControlApiRouter(deps: ControlApiDeps): {
|
|
|
8133
8132
|
"directory-rules": "directory-rules";
|
|
8134
8133
|
"categories-local": "categories-local";
|
|
8135
8134
|
"active-identity": "active-identity";
|
|
8135
|
+
headroom: "headroom";
|
|
8136
8136
|
}>;
|
|
8137
8137
|
subject: zod.ZodOptional<zod.ZodString>;
|
|
8138
8138
|
severity: zod.ZodEnum<{
|
|
@@ -8325,12 +8325,12 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
|
|
|
8325
8325
|
decision: zod.ZodObject<{
|
|
8326
8326
|
identity: zod.ZodOptional<zod.ZodString>;
|
|
8327
8327
|
identitySource: zod.ZodEnum<{
|
|
8328
|
-
env: "env";
|
|
8329
|
-
none: "none";
|
|
8330
8328
|
"config-dir-escape-hatch": "config-dir-escape-hatch";
|
|
8331
8329
|
argv: "argv";
|
|
8330
|
+
env: "env";
|
|
8332
8331
|
"directory-pin": "directory-pin";
|
|
8333
8332
|
"active-identity-file": "active-identity-file";
|
|
8333
|
+
none: "none";
|
|
8334
8334
|
}>;
|
|
8335
8335
|
pool: zod.ZodOptional<zod.ZodObject<{
|
|
8336
8336
|
name: zod.ZodString;
|
|
@@ -9706,9 +9706,9 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
|
|
|
9706
9706
|
current: zod.ZodString;
|
|
9707
9707
|
latest: zod.ZodString;
|
|
9708
9708
|
action: zod.ZodEnum<{
|
|
9709
|
-
updated: "updated";
|
|
9710
9709
|
current: "current";
|
|
9711
9710
|
available: "available";
|
|
9711
|
+
updated: "updated";
|
|
9712
9712
|
}>;
|
|
9713
9713
|
}, zod_v4_core.$strict>, MergedErrorMap<$ErrorMap, TErrorMap>>;
|
|
9714
9714
|
};
|
|
@@ -9907,12 +9907,12 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
|
|
|
9907
9907
|
identity: zod.ZodObject<{
|
|
9908
9908
|
name: zod.ZodNullable<zod.ZodString>;
|
|
9909
9909
|
source: zod.ZodEnum<{
|
|
9910
|
-
env: "env";
|
|
9911
|
-
none: "none";
|
|
9912
9910
|
"config-dir-escape-hatch": "config-dir-escape-hatch";
|
|
9913
9911
|
argv: "argv";
|
|
9912
|
+
env: "env";
|
|
9914
9913
|
"directory-pin": "directory-pin";
|
|
9915
9914
|
"active-identity-file": "active-identity-file";
|
|
9915
|
+
none: "none";
|
|
9916
9916
|
}>;
|
|
9917
9917
|
}, zod_v4_core.$strict>;
|
|
9918
9918
|
pool: zod.ZodOptional<zod.ZodObject<{
|
|
@@ -9990,11 +9990,11 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
|
|
|
9990
9990
|
"category-default": "category-default";
|
|
9991
9991
|
}>;
|
|
9992
9992
|
category: zod.ZodNullable<zod.ZodEnum<{
|
|
9993
|
+
secret: "secret";
|
|
9993
9994
|
runtime: "runtime";
|
|
9994
9995
|
history: "history";
|
|
9995
9996
|
knowledge: "knowledge";
|
|
9996
9997
|
settings: "settings";
|
|
9997
|
-
secret: "secret";
|
|
9998
9998
|
}>>;
|
|
9999
9999
|
rule: zod.ZodOptional<zod.ZodObject<{
|
|
10000
10000
|
key: zod.ZodString;
|
|
@@ -10213,11 +10213,10 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
|
|
|
10213
10213
|
"global-config": "global-config";
|
|
10214
10214
|
"config-profile": "config-profile";
|
|
10215
10215
|
identity: "identity";
|
|
10216
|
-
keychain: "keychain";
|
|
10217
10216
|
provider: "provider";
|
|
10218
|
-
headroom: "headroom";
|
|
10219
10217
|
frontdoor: "frontdoor";
|
|
10220
10218
|
pool: "pool";
|
|
10219
|
+
keychain: "keychain";
|
|
10221
10220
|
"ambient-credential": "ambient-credential";
|
|
10222
10221
|
"binary-discovery": "binary-discovery";
|
|
10223
10222
|
"claude-shim": "claude-shim";
|
|
@@ -10227,6 +10226,7 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
|
|
|
10227
10226
|
"directory-rules": "directory-rules";
|
|
10228
10227
|
"categories-local": "categories-local";
|
|
10229
10228
|
"active-identity": "active-identity";
|
|
10229
|
+
headroom: "headroom";
|
|
10230
10230
|
}>;
|
|
10231
10231
|
subject: zod.ZodOptional<zod.ZodString>;
|
|
10232
10232
|
severity: zod.ZodEnum<{
|
|
@@ -12059,11 +12059,10 @@ declare const DoctorFindingSchema: z.ZodObject<{
|
|
|
12059
12059
|
"global-config": "global-config";
|
|
12060
12060
|
"config-profile": "config-profile";
|
|
12061
12061
|
identity: "identity";
|
|
12062
|
-
keychain: "keychain";
|
|
12063
12062
|
provider: "provider";
|
|
12064
|
-
headroom: "headroom";
|
|
12065
12063
|
frontdoor: "frontdoor";
|
|
12066
12064
|
pool: "pool";
|
|
12065
|
+
keychain: "keychain";
|
|
12067
12066
|
"ambient-credential": "ambient-credential";
|
|
12068
12067
|
"binary-discovery": "binary-discovery";
|
|
12069
12068
|
"claude-shim": "claude-shim";
|
|
@@ -12073,6 +12072,7 @@ declare const DoctorFindingSchema: z.ZodObject<{
|
|
|
12073
12072
|
"directory-rules": "directory-rules";
|
|
12074
12073
|
"categories-local": "categories-local";
|
|
12075
12074
|
"active-identity": "active-identity";
|
|
12075
|
+
headroom: "headroom";
|
|
12076
12076
|
}>;
|
|
12077
12077
|
subject: z.ZodOptional<z.ZodString>;
|
|
12078
12078
|
severity: z.ZodEnum<{
|
|
@@ -12090,11 +12090,10 @@ declare const DoctorRunOutputSchema: z.ZodObject<{
|
|
|
12090
12090
|
"global-config": "global-config";
|
|
12091
12091
|
"config-profile": "config-profile";
|
|
12092
12092
|
identity: "identity";
|
|
12093
|
-
keychain: "keychain";
|
|
12094
12093
|
provider: "provider";
|
|
12095
|
-
headroom: "headroom";
|
|
12096
12094
|
frontdoor: "frontdoor";
|
|
12097
12095
|
pool: "pool";
|
|
12096
|
+
keychain: "keychain";
|
|
12098
12097
|
"ambient-credential": "ambient-credential";
|
|
12099
12098
|
"binary-discovery": "binary-discovery";
|
|
12100
12099
|
"claude-shim": "claude-shim";
|
|
@@ -12104,6 +12103,7 @@ declare const DoctorRunOutputSchema: z.ZodObject<{
|
|
|
12104
12103
|
"directory-rules": "directory-rules";
|
|
12105
12104
|
"categories-local": "categories-local";
|
|
12106
12105
|
"active-identity": "active-identity";
|
|
12106
|
+
headroom: "headroom";
|
|
12107
12107
|
}>;
|
|
12108
12108
|
subject: z.ZodOptional<z.ZodString>;
|
|
12109
12109
|
severity: z.ZodEnum<{
|
|
@@ -12124,9 +12124,9 @@ declare const UpdateCheckOutputSchema: z.ZodObject<{
|
|
|
12124
12124
|
current: z.ZodString;
|
|
12125
12125
|
latest: z.ZodString;
|
|
12126
12126
|
action: z.ZodEnum<{
|
|
12127
|
-
updated: "updated";
|
|
12128
12127
|
current: "current";
|
|
12129
12128
|
available: "available";
|
|
12129
|
+
updated: "updated";
|
|
12130
12130
|
}>;
|
|
12131
12131
|
}, z.core.$strict>;
|
|
12132
12132
|
/** 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. */
|
|
@@ -12176,12 +12176,12 @@ declare const LaunchResolveOutputSchema: z.ZodObject<{
|
|
|
12176
12176
|
decision: z.ZodObject<{
|
|
12177
12177
|
identity: z.ZodOptional<z.ZodString>;
|
|
12178
12178
|
identitySource: z.ZodEnum<{
|
|
12179
|
-
env: "env";
|
|
12180
|
-
none: "none";
|
|
12181
12179
|
"config-dir-escape-hatch": "config-dir-escape-hatch";
|
|
12182
12180
|
argv: "argv";
|
|
12181
|
+
env: "env";
|
|
12183
12182
|
"directory-pin": "directory-pin";
|
|
12184
12183
|
"active-identity-file": "active-identity-file";
|
|
12184
|
+
none: "none";
|
|
12185
12185
|
}>;
|
|
12186
12186
|
pool: z.ZodOptional<z.ZodObject<{
|
|
12187
12187
|
name: z.ZodString;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-shim",
|
|
3
|
-
"version": "11.8.
|
|
3
|
+
"version": "11.8.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>",
|