agent-shim 8.11.3 → 8.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/cli.cjs +1032 -238
- package/dist/index.cjs +1129 -384
- package/dist/index.mjs +1116 -384
- package/dist/types/index.d.ts +126 -2
- package/package.json +1 -1
package/dist/types/index.d.ts
CHANGED
|
@@ -1590,6 +1590,10 @@ interface ConnectServerConfig {
|
|
|
1590
1590
|
readonly transparentCapability?: string;
|
|
1591
1591
|
/** The intercept hosts that are never HTTP-parsed: terminated, tapped at the byte level, and pumped to their real host. */
|
|
1592
1592
|
readonly tapHosts: readonly string[];
|
|
1593
|
+
/**
|
|
1594
|
+
* The door's local answer surface, consulted before routing or piping on every parsed host's session, and given the parsing of the tap hosts it names: absent (the default, and every door that has not asked for the self-hosted Remote Control mode) nothing about the surface's behaviour changes.
|
|
1595
|
+
*/
|
|
1596
|
+
readonly localSurface?: ConnectLocalSurface;
|
|
1593
1597
|
/** The connection deadlines and caps; production passes `CONNECT_LIMITS`. */
|
|
1594
1598
|
readonly limits: ConnectLimits;
|
|
1595
1599
|
/** The diagnostic tap, when capturing is enabled; absent means nothing is recorded. */
|
|
@@ -1603,6 +1607,17 @@ interface ConnectServerHandle {
|
|
|
1603
1607
|
/** Stops the listener, drops every live tunnel and terminated session, and resolves once the port is released. */
|
|
1604
1608
|
readonly close: () => Promise<void>;
|
|
1605
1609
|
}
|
|
1610
|
+
/**
|
|
1611
|
+
* A surface the connect layer consults before it routes or pipes anything: the door's self-hosted Remote Control answers (see `rcSelfHost.ts`), which own a fixed set of non-pipeline paths on the API host and the OAuth refresh on the control-plane host. Absent, every request keeps exactly the behaviour it has today.
|
|
1612
|
+
*
|
|
1613
|
+
* A host this surface needs to parse (`parsesHost`) is served as ordinary HTTP even when it is named as a tap host: the tap exists because that host's channel could not be safely parsed, so taking it over is the surface's own explicit decision, made only for the mode whose contract already excludes the traffic the tap protects.
|
|
1614
|
+
*/
|
|
1615
|
+
interface ConnectLocalSurface {
|
|
1616
|
+
/** Whether this surface needs one host's terminated sessions parsed as HTTP rather than byte-tapped. */
|
|
1617
|
+
readonly parsesHost: (host: string) => boolean;
|
|
1618
|
+
/** Serves one request locally; resolves false when the surface does not own the path, so routing or piping continues unchanged. */
|
|
1619
|
+
readonly serve: (host: string, request: IncomingMessage, response: ServerResponse) => Promise<boolean>;
|
|
1620
|
+
}
|
|
1606
1621
|
/**
|
|
1607
1622
|
* Starts the connect surface: binds the listener, mints the intercept host's leaf, and wires the per-connection routing. Resolves once the listener is bound.
|
|
1608
1623
|
*
|
|
@@ -2081,6 +2096,14 @@ interface RcDialTarget {
|
|
|
2081
2096
|
* The real `RcEventDial`: one keep-alive TLS agent of the door's own exempt kind, so every injected event rides the same interception-proof dials the door's forwarded traffic does. The dial only ever reads small JSON answers (an event write's result, or an error), never a stream.
|
|
2082
2097
|
*/
|
|
2083
2098
|
declare function realRcEventDial(target?: RcDialTarget): RcEventDial;
|
|
2099
|
+
/**
|
|
2100
|
+
* A write dial whose target is resolved at call time rather than construction: the self-hosted Remote Control mode points the door's client half at the door's own transparent surface, whose port is known only once the connect listener has bound, and every other caller keeps the construction-time target (or the default real host when the resolver has nothing yet). The underlying dial is built once per resolved target and reused, so the connection pooling a dial exists for is preserved.
|
|
2101
|
+
*/
|
|
2102
|
+
declare function lateRcEventDial(resolve: () => RcDialTarget | undefined): RcEventDial;
|
|
2103
|
+
/**
|
|
2104
|
+
* The stream dial's own late-targeted sibling, for the same reason: the self-hosted mode's attachment stream dials the door's own transparent surface once its port is bound.
|
|
2105
|
+
*/
|
|
2106
|
+
declare function lateRcStreamDial(resolve: () => RcDialTarget | undefined): RcStreamDial;
|
|
2084
2107
|
declare function realRcStreamDial(target?: RcDialTarget): RcStreamDial;
|
|
2085
2108
|
/** The real effects, dialling upstream from `ports` (the door's own range unless a test injects a private one). */
|
|
2086
2109
|
declare function realConnectEffects(ports?: SourcePortRange): ConnectEffects;
|
|
@@ -2377,6 +2400,107 @@ type RcApiClient = RouterClient<RcApiRouter>;
|
|
|
2377
2400
|
/** Builds the typed API's client for the door's provider listener: the same address, CA and per-generation control token the bespoke control client uses. */
|
|
2378
2401
|
declare function frontDoorRcApiClient(port: number, ca: string, token: string): RcApiClient;
|
|
2379
2402
|
|
|
2403
|
+
/**
|
|
2404
|
+
* The self-hosted Remote Control service: the door serving, locally, the CCR surface it normally only observes (ExaDev/agent-shim#207). When the mode is on, a Claude Code session activates Remote Control against this surface and is controlled through it with no Anthropic credential anywhere: the door answers the session family itself instead of piping it to the real API host, so the `cse_` sessions, their sequence numbers, their worker and client streams and their event writes all live on this machine.
|
|
2405
|
+
*
|
|
2406
|
+
* The protocol spoken is exactly the one the door already speaks as a client, which is what makes this honest: every path, envelope, sequence rule and resume pair below is the shape the merged client-half machinery (`rcSessions.ts`, `rcStream.ts`, `connectEffects.ts`) dials the real host with, cross-checked against the CLI source (the 2.1.88 source-map dump behind the issue's spike) and live 2.1.289 envelopes captured through the interception rig. The transport is version-unstable (CCRv1 websocket to CCRv2 SSE plus POST within the 2.1.x line), so this surface pins what the rig's pinned CLI speaks and must be re-verified on upgrades; that standing caveat is issue #207's own.
|
|
2407
|
+
*
|
|
2408
|
+
* Division of the surface: the session family (`/v1/code/sessions...` and the `/v1/sessions` compatibility list) rides the routed pipeline as a `FrontDoorRoute`, so it flows through the same admission and middleware as any routed request and, above all, through the same observation wrapper that feeds the tracker (the door's own client half learns each session's credential precisely because the create is observed like any other exchange). The non-`/v1/` answers the CLI needs around activation (feature eval, profile, telemetry no-ops) and the OAuth refresh on the control-plane host have no pipeline to ride, so they are served by `local`, which the connect surface consults before routing or piping; that surface also takes over the control-plane host's terminated session as ordinary HTTP (it is normally byte-tapped) because answering `/v1/oauth/token` requires parsing it.
|
|
2409
|
+
*
|
|
2410
|
+
* The one network lever this uses is the bridge response's `api_base_url`: the protocol lets the server name where the worker dials, so the door names the API host it itself terminates, and the worker's `/worker/...` calls arrive straight back at this surface over the same interception that carried the create.
|
|
2411
|
+
*
|
|
2412
|
+
* Everything is in memory only and dies with the door process: sessions, events, worker JWTs. No credential this door authenticates against is ever written or logged by this module; the minting command owns the files.
|
|
2413
|
+
*/
|
|
2414
|
+
/** The environment variable that turns the self-hosted Remote Control service on, read once at door start like the door's other mode selections: the door is one process serving every launch, so the mode is a property of the door, not of any one launch. Anything but `1` means off, the same exact-value vocabulary the capture toggle uses. */
|
|
2415
|
+
declare const RC_SELF_HOST_ENV = "AGENT_SHIM_FRONTDOOR_RC_SELF_HOST";
|
|
2416
|
+
/** Whether the environment asked for the self-hosted Remote Control service. */
|
|
2417
|
+
declare function rcSelfHostFromEnv(env: NodeJS.ProcessEnv): boolean;
|
|
2418
|
+
/** The full scope list the minting writes and the local refresh echoes: the CLI's own claude.ai login scope set (`CLAUDE_AI_OAUTH_SCOPES` in its source), whose `user:inference` and `user:profile` members are exactly the two the Remote Control gate demands. */
|
|
2419
|
+
declare const RC_SELF_HOST_SCOPE_LIST: readonly string[];
|
|
2420
|
+
/**
|
|
2421
|
+
* How long a minted worker JWT is good for. Not a fresh number: 46800 seconds is the `expires_in` the real bridge handed the live rig session (13 hours), so the local surface keeps the CLI's refresh cadence exactly where the real one put it.
|
|
2422
|
+
*/
|
|
2423
|
+
declare const RC_SELF_HOST_WORKER_JWT_TTL_SECONDS = 46800;
|
|
2424
|
+
/**
|
|
2425
|
+
* How often the SSE streams send a keepalive comment. Not a fresh number: it is the protocol's own keepalive cadence (the 15 s comments the door's client-half parser documents from live captures), and it must beat the worker transport's 45 s liveness bound (`DIY` in the CLI source), which a 15 s cadence does with two comments to spare.
|
|
2426
|
+
*/
|
|
2427
|
+
declare const RC_SELF_HOST_KEEPALIVE_MS = 15000;
|
|
2428
|
+
/**
|
|
2429
|
+
* How long a session's events are retained for stream resume, and how long a streamless, trafficless session survives. One number serves both because one protocol constant derives them: the worker transport's reconnection budget is 600000 ms (`WIY` in the CLI source), so a resume can only ever name a cursor whose events are at most that old, and a worker that has been gone longer has given up by its own rules.
|
|
2430
|
+
*/
|
|
2431
|
+
declare const RC_SELF_HOST_RETENTION_MS = 600000;
|
|
2432
|
+
/** The whole credential this door's self-hosted mode mints, read back for every authenticated call and never logged: the token pair the identity's Claude Code presents, beside the organisation the minting chose. */
|
|
2433
|
+
interface RcSelfHostCredentialRecord {
|
|
2434
|
+
readonly accessToken: string;
|
|
2435
|
+
readonly refreshToken: string;
|
|
2436
|
+
readonly organizationUuid: string;
|
|
2437
|
+
readonly accountUuid: string;
|
|
2438
|
+
}
|
|
2439
|
+
/** Everything the service needs, injected so the decision logic runs against fakes in unit tests. */
|
|
2440
|
+
interface RcSelfHostDeps {
|
|
2441
|
+
readonly now: () => number;
|
|
2442
|
+
/** Mints the session and event ids: a v4 UUID or better in production. */
|
|
2443
|
+
readonly newUuid: () => string;
|
|
2444
|
+
/** Mints opaque token material (the worker JWTs): cryptographically random in production. */
|
|
2445
|
+
readonly randomToken: () => string;
|
|
2446
|
+
/** The minted credential this door authenticates against, read fresh so a re-mint takes effect without restarting the door; undefined while none was ever minted, in which case every authenticated call is refused. */
|
|
2447
|
+
readonly credentialRecord: () => RcSelfHostCredentialRecord | undefined;
|
|
2448
|
+
readonly log?: (line: string) => void;
|
|
2449
|
+
}
|
|
2450
|
+
/** The self-hosted Remote Control service: the session-family route for the pipeline, and the local answers the connect surface consults before routing or piping. */
|
|
2451
|
+
interface RcSelfHostSurface {
|
|
2452
|
+
/** The pipeline route serving the whole `/v1/code/sessions` family and the `/v1/sessions` compatibility list. */
|
|
2453
|
+
readonly route: FrontDoorRoute;
|
|
2454
|
+
/** The connect surface's local answers: which hosts it takes over as HTTP, and the requests it answers itself. */
|
|
2455
|
+
readonly local: {
|
|
2456
|
+
/** The hosts whose terminated sessions this surface needs parsed as HTTP (the control-plane host, normally byte-tapped). */
|
|
2457
|
+
readonly parsesHost: (host: string) => boolean;
|
|
2458
|
+
/** Serves one request locally; resolves false when the surface does not own the path, so routing or piping continues unchanged. */
|
|
2459
|
+
readonly serve: (host: string, request: IncomingMessage, response: ServerResponse) => Promise<boolean>;
|
|
2460
|
+
};
|
|
2461
|
+
/** Stops the service's timers and retires every open stream. The sessions themselves are unreachable the moment the door drops them. */
|
|
2462
|
+
readonly close: () => void;
|
|
2463
|
+
}
|
|
2464
|
+
/** Creates the self-hosted Remote Control service. One per door process; everything it holds dies with it. */
|
|
2465
|
+
declare function createRcSelfHostSurface(deps: RcSelfHostDeps): RcSelfHostSurface;
|
|
2466
|
+
|
|
2467
|
+
/** Where the door's own copy of the minted credential lives, under the door's state directory. */
|
|
2468
|
+
declare const RC_SELF_HOST_RECORD_DIR = "rc-selfhost";
|
|
2469
|
+
/** The door's copy of the minted credential: the record `rcSelfHost.ts` reads fresh on every authenticated call. */
|
|
2470
|
+
declare const RC_SELF_HOST_RECORD_FILE = "credential.json";
|
|
2471
|
+
/** Everything the minting needs, injected so it runs against an in-memory fake filesystem in unit tests. */
|
|
2472
|
+
interface RcSelfHostMintDeps {
|
|
2473
|
+
readonly fs: Pick<FarmFs, "readFileUtf8" | "writeFilePrivate" | "mkdirPrivate">;
|
|
2474
|
+
/** The agent-shim identities directory (the mint writes inside `<identitiesDir>/<identity>/`). */
|
|
2475
|
+
readonly identitiesDir: string;
|
|
2476
|
+
/** The door's state directory (the record is written under `<frontdoorDir>/rc-selfhost/`). */
|
|
2477
|
+
readonly frontdoorDir: string;
|
|
2478
|
+
readonly identity: string;
|
|
2479
|
+
/** Mints ids: a v4 UUID or better in production. */
|
|
2480
|
+
readonly newUuid: () => string;
|
|
2481
|
+
/** Mints token material: cryptographically random bytes in production. */
|
|
2482
|
+
readonly randomToken: () => string;
|
|
2483
|
+
/** Overwrite an existing credential that is not a previous mint of this door's. */
|
|
2484
|
+
readonly force: boolean;
|
|
2485
|
+
readonly now: () => number;
|
|
2486
|
+
}
|
|
2487
|
+
/** What the minting produced: names and shapes only, never a token. */
|
|
2488
|
+
interface RcSelfHostMintResult {
|
|
2489
|
+
readonly identity: string;
|
|
2490
|
+
readonly organizationUuid: string;
|
|
2491
|
+
readonly credentialsFile: string;
|
|
2492
|
+
readonly claudeJsonFile: string;
|
|
2493
|
+
readonly recordFile: string;
|
|
2494
|
+
/** Whether a previous mint of this door's was replaced. */
|
|
2495
|
+
readonly replaced: boolean;
|
|
2496
|
+
}
|
|
2497
|
+
/** Reads the door's previously minted record, or undefined when none exists (or what exists does not parse). */
|
|
2498
|
+
declare function readRcSelfHostRecord(fs: Pick<FarmFs, "readFileUtf8">, frontdoorDir: string): RcSelfHostCredentialRecord | undefined;
|
|
2499
|
+
/**
|
|
2500
|
+
* Mints the local credential for one identity and records the door's copy. Refuses, unless `force`, when the identity already holds an OAuth credential this door did not mint (a real claude.ai login): overwriting one silently would sign the identity out, and the mode's own contract is that no Anthropic credential is in play at all.
|
|
2501
|
+
*/
|
|
2502
|
+
declare function mintRcSelfHostCredential(deps: RcSelfHostMintDeps): RcSelfHostMintResult;
|
|
2503
|
+
|
|
2380
2504
|
/** The outcome of authenticating the listener a front-door state file names. */
|
|
2381
2505
|
type ListenerVerdict = {
|
|
2382
2506
|
readonly ok: true;
|
|
@@ -3808,5 +3932,5 @@ interface PrepareClaudeLaunchOptions {
|
|
|
3808
3932
|
*/
|
|
3809
3933
|
declare function prepareClaudeLaunch(options: PrepareClaudeLaunchOptions): LaunchPlan;
|
|
3810
3934
|
|
|
3811
|
-
export { AMBIENT_CREDENTIAL_VARS, CONNECT_INTERCEPT_HOST, CONNECT_INTERCEPT_HOSTS, CONNECT_LIMITS, CONTROL_PATH_PREFIX, CategoryClassificationOverlaySchema, CategoryClassificationSchema, CategoryMapSchema, CliError, ConfigProfileSchema, CredentialCacheSchema, CredentialSchema, CredentialSourceSchema, DirectoryRuleAlreadyExistsError, DirectoryRuleMissingTargetError, DirectoryRuleNotFoundError, DirectoryRuleSchema, DirectoryRulesSchema, EXIT_FAILURE, EXIT_USAGE, EntryValueSchema, FARM_MANIFEST_FILENAME, FrontDoorStartError, GlobalConfigSchema, HeadroomStartError, IdentityAlreadyExistsError, IdentityNotFoundError, IdentitySchema, InvalidCategoryNameError, InvalidIdentityNameError, InvalidProviderNameError, LaunchRefusedError, LegacyProviderFileError, PROMPT_CACHE_TTL_MS, PlanClassSchema, PoolNameSchema, PoolNotFoundError, PoolPickReportSchema, PoolSchema, PortableConfigSchema, ProfileAlreadyExistsError, ProfileNotFoundError, ProviderAlreadyExistsError, ProviderKindMismatchError, ProviderNotFoundError, ProviderSchema, RC_IDLE_EXPIRY_MS, RC_ORPC_PATH_PREFIX, RC_PENDING_DEADLINE_MS, RC_PERMISSION_MODES, RC_REQUEST_PARSE_CAP_BYTES, RC_SESSIONS_PATH_PREFIX, RC_STREAM_BACKOFF_MS, ROUTED_PATH_PREFIX, RcPermissionModeSchema, RcStreamEnvelopeSchema, RcStreamEventSchema, UsageError, UsageSnapshotError, UsageSnapshotSchema, WhenSchema, addDirectoryRule, addIdentity, addPool, addProvider, answerRcControlRequest, buildEntryFacts, buildLayoutPaths, buildRcControlResponsePayload, buildRcEventWriteBody, buildRcInterruptPayload, buildRcSetModelPayload, buildRcSetPermissionModePayload, buildRcUserMessagePayload, carryOver, checkReportHasWarnings, checkReportToJson, collectCheckReport, collectDoctorReport, collectPoolPick, createLeafCache, createProfile, createRcApiNodeHandler, createRcApiRouter, createRcControlHandler, createRcCredentialStore, createRcEventFanout, createRcSessionTracker, createRcStreamHub, createSseParser, describeProviderEndpoint, detectAmbientCredential, effectiveWindow, ensureCa, ensureFrontDoor, ensureHeadroom, evaluateAmbientCredentialGuard, evaluateWhen, formatAmbientCredentialGuardMessage, formatCheckReport, formatDoctorReport, forwardableHeaders, frontDoorRcApiClient, frontDoorRcControl, generateCa, identityExists, injectRcUserMessage, interruptRcSession, isIdentityDirectoryName, isInterceptedHost, isRcPermissionMode, listDirectoryRules, listIdentities, listProfiles, listProviders, listUsageSnapshots, matchBranch, mintLeaf, observingRoutedRoute, parseConnectTarget, parseRcStreamEnvelope, planOf, prepareClaudeLaunch, prepareLaunch, profileExists, providerExists, rankPool, rcEventWriteResultFromAnswer, rcObserverAsPassthrough, readActiveIdentity, readDirectoryRules, readFarmManifest, readGlobalConfig, readIdentity, readPools, readProfile, readProvider, readUsageSnapshot, realConnectCertStore, realConnectEffects, realRcControlTransport, realRcEventDial, realRcStreamDial, recoverFarm, recoveryDiagnostics, removeDirectoryRule, removeIdentity, removePool, removeProfile, removeProvider, requirePool, resolveAgentShimHome, resolveClaudeHome, resolveDecisions, resolveLayoutPaths, resolveSupervisorConfig, resyncFarm, runCheck, runDoctor, runFrontDoorSupervisor, runSupervisor, servedByPipeline, setAllowAmbientCredential, setDefaultConfigProfile, setGlobalDefaultProfile, setIdentityCredential, setPool, setProfileCategories, setProfileEntries, setProfileLaunchFlags, setProfileMetadata, setRcSessionModel, setRcSessionPermissionMode, snapshotPath, startConnectServer, topLevelNames, updateDirectoryRule, updateProvider, useIdentity, writeDirectoryRules };
|
|
3812
|
-
export type { AddDirectoryRuleOptions, AddProviderInput, AmbientCredentialDetection, AmbientCredentialGuardResult, AmbientCredentialVar, BuildEntryFactsParams, CaMaterial, Candidate, CarryOverParams, CarryOverResult, CategoryMap, CheckReport, CollectCheckReportParams, CollectDoctorReportParams, CompiledRule, ConditionContext, ConfigProfile, ConnectCertStore, ConnectEffects, ConnectLimits, ConnectServerConfig, ConnectServerHandle, ConnectTarget, Credential, CredentialSource, Decision, Diagnostic, DirectoryRule, DirectoryRules, DoctorReport, EffectiveWindow, EliminatedRule, EnsureFrontDoorPorts, EnsureHeadroomPorts, EntryFact, EntryFacts, EntryValue, EvaluateAmbientCredentialGuardParams, FlattenedCascade, FrontDoorRcControl, FrontDoorSupervisorPorts, GlobalConfig, HeadroomSupervisorConfig, Identity, IdentityCredentialChange, IdentityListEntry, IdentityListing, InjectedCredential, LaunchPlan, Layer, LayerId, LayoutPaths, LeafCert, PlanClass, Pool, PoolMember, PoolPickReport, PoolRanking, PortableConfig, PrepareClaudeLaunchOptions, PrepareLaunchParams, ProfileListEntry, Provider, ProviderListEntry, RankPoolInput, RcAnswerDecision, RcAnswerDeps, RcApiClient, RcApiDeps, RcApiRouter, RcControlAnswer, RcControlHandlerDeps, RcControlRequestDeps, RcControlTransport, RcCredentialStore, RcDialAnswer, RcDialTarget, RcEventDial, RcEventFanout, RcEventWriteResult, RcExchangeObserver, RcInjectDeps, RcObservedCredential, RcObservedRequest, RcPendingRequestSummary, RcPermissionMode, RcPresenceAnswer, RcSessionStatus, RcSessionSummary, RcSessionTracker, RcSessionTrackerDeps, RcStreamAnswer, RcStreamDial, RcStreamEnvelope, RcStreamEvent, RcStreamHub, RcStreamHubDeps, RcWorkerFact, RcWriteHeaders, RecoverFarmParams, RecoveryResult, ResolveDecisionsInput, ResolvedState, ResyncFarmParams, ResyncFarmResult, RunCheckParams, RunDoctorParams, RunFrontDoorSupervisorOptions, RunSupervisorOptions, SseParsedEvent, StickyPick, SupervisorPorts, UnreadableIdentityListEntry, UpdateDirectoryRuleOptions, UpdateProviderInput, UsageReadFs, UsageSnapshot, WhenCondition, WhenEvaluation };
|
|
3935
|
+
export { AMBIENT_CREDENTIAL_VARS, CONNECT_INTERCEPT_HOST, CONNECT_INTERCEPT_HOSTS, CONNECT_LIMITS, CONTROL_PATH_PREFIX, CategoryClassificationOverlaySchema, CategoryClassificationSchema, CategoryMapSchema, CliError, ConfigProfileSchema, CredentialCacheSchema, CredentialSchema, CredentialSourceSchema, DirectoryRuleAlreadyExistsError, DirectoryRuleMissingTargetError, DirectoryRuleNotFoundError, DirectoryRuleSchema, DirectoryRulesSchema, EXIT_FAILURE, EXIT_USAGE, EntryValueSchema, FARM_MANIFEST_FILENAME, FrontDoorStartError, GlobalConfigSchema, HeadroomStartError, IdentityAlreadyExistsError, IdentityNotFoundError, IdentitySchema, InvalidCategoryNameError, InvalidIdentityNameError, InvalidProviderNameError, LaunchRefusedError, LegacyProviderFileError, PROMPT_CACHE_TTL_MS, PlanClassSchema, PoolNameSchema, PoolNotFoundError, PoolPickReportSchema, PoolSchema, PortableConfigSchema, ProfileAlreadyExistsError, ProfileNotFoundError, ProviderAlreadyExistsError, ProviderKindMismatchError, ProviderNotFoundError, ProviderSchema, RC_IDLE_EXPIRY_MS, RC_ORPC_PATH_PREFIX, RC_PENDING_DEADLINE_MS, RC_PERMISSION_MODES, RC_REQUEST_PARSE_CAP_BYTES, RC_SELF_HOST_ENV, RC_SELF_HOST_KEEPALIVE_MS, RC_SELF_HOST_RECORD_DIR, RC_SELF_HOST_RECORD_FILE, RC_SELF_HOST_RETENTION_MS, RC_SELF_HOST_SCOPE_LIST, RC_SELF_HOST_WORKER_JWT_TTL_SECONDS, RC_SESSIONS_PATH_PREFIX, RC_STREAM_BACKOFF_MS, ROUTED_PATH_PREFIX, RcPermissionModeSchema, RcStreamEnvelopeSchema, RcStreamEventSchema, UsageError, UsageSnapshotError, UsageSnapshotSchema, WhenSchema, addDirectoryRule, addIdentity, addPool, addProvider, answerRcControlRequest, buildEntryFacts, buildLayoutPaths, buildRcControlResponsePayload, buildRcEventWriteBody, buildRcInterruptPayload, buildRcSetModelPayload, buildRcSetPermissionModePayload, buildRcUserMessagePayload, carryOver, checkReportHasWarnings, checkReportToJson, collectCheckReport, collectDoctorReport, collectPoolPick, createLeafCache, createProfile, createRcApiNodeHandler, createRcApiRouter, createRcControlHandler, createRcCredentialStore, createRcEventFanout, createRcSelfHostSurface, createRcSessionTracker, createRcStreamHub, createSseParser, describeProviderEndpoint, detectAmbientCredential, effectiveWindow, ensureCa, ensureFrontDoor, ensureHeadroom, evaluateAmbientCredentialGuard, evaluateWhen, formatAmbientCredentialGuardMessage, formatCheckReport, formatDoctorReport, forwardableHeaders, frontDoorRcApiClient, frontDoorRcControl, generateCa, identityExists, injectRcUserMessage, interruptRcSession, isIdentityDirectoryName, isInterceptedHost, isRcPermissionMode, lateRcEventDial, lateRcStreamDial, listDirectoryRules, listIdentities, listProfiles, listProviders, listUsageSnapshots, matchBranch, mintLeaf, mintRcSelfHostCredential, observingRoutedRoute, parseConnectTarget, parseRcStreamEnvelope, planOf, prepareClaudeLaunch, prepareLaunch, profileExists, providerExists, rankPool, rcEventWriteResultFromAnswer, rcObserverAsPassthrough, rcSelfHostFromEnv, readActiveIdentity, readDirectoryRules, readFarmManifest, readGlobalConfig, readIdentity, readPools, readProfile, readProvider, readRcSelfHostRecord, readUsageSnapshot, realConnectCertStore, realConnectEffects, realRcControlTransport, realRcEventDial, realRcStreamDial, recoverFarm, recoveryDiagnostics, removeDirectoryRule, removeIdentity, removePool, removeProfile, removeProvider, requirePool, resolveAgentShimHome, resolveClaudeHome, resolveDecisions, resolveLayoutPaths, resolveSupervisorConfig, resyncFarm, runCheck, runDoctor, runFrontDoorSupervisor, runSupervisor, servedByPipeline, setAllowAmbientCredential, setDefaultConfigProfile, setGlobalDefaultProfile, setIdentityCredential, setPool, setProfileCategories, setProfileEntries, setProfileLaunchFlags, setProfileMetadata, setRcSessionModel, setRcSessionPermissionMode, snapshotPath, startConnectServer, topLevelNames, updateDirectoryRule, updateProvider, useIdentity, writeDirectoryRules };
|
|
3936
|
+
export type { AddDirectoryRuleOptions, AddProviderInput, AmbientCredentialDetection, AmbientCredentialGuardResult, AmbientCredentialVar, BuildEntryFactsParams, CaMaterial, Candidate, CarryOverParams, CarryOverResult, CategoryMap, CheckReport, CollectCheckReportParams, CollectDoctorReportParams, CompiledRule, ConditionContext, ConfigProfile, ConnectCertStore, ConnectEffects, ConnectLimits, ConnectLocalSurface, ConnectServerConfig, ConnectServerHandle, ConnectTarget, Credential, CredentialSource, Decision, Diagnostic, DirectoryRule, DirectoryRules, DoctorReport, EffectiveWindow, EliminatedRule, EnsureFrontDoorPorts, EnsureHeadroomPorts, EntryFact, EntryFacts, EntryValue, EvaluateAmbientCredentialGuardParams, FlattenedCascade, FrontDoorRcControl, FrontDoorSupervisorPorts, GlobalConfig, HeadroomSupervisorConfig, Identity, IdentityCredentialChange, IdentityListEntry, IdentityListing, InjectedCredential, LaunchPlan, Layer, LayerId, LayoutPaths, LeafCert, PlanClass, Pool, PoolMember, PoolPickReport, PoolRanking, PortableConfig, PrepareClaudeLaunchOptions, PrepareLaunchParams, ProfileListEntry, Provider, ProviderListEntry, RankPoolInput, RcAnswerDecision, RcAnswerDeps, RcApiClient, RcApiDeps, RcApiRouter, RcControlAnswer, RcControlHandlerDeps, RcControlRequestDeps, RcControlTransport, RcCredentialStore, RcDialAnswer, RcDialTarget, RcEventDial, RcEventFanout, RcEventWriteResult, RcExchangeObserver, RcInjectDeps, RcObservedCredential, RcObservedRequest, RcPendingRequestSummary, RcPermissionMode, RcPresenceAnswer, RcSelfHostCredentialRecord, RcSelfHostDeps, RcSelfHostMintResult, RcSelfHostSurface, RcSessionStatus, RcSessionSummary, RcSessionTracker, RcSessionTrackerDeps, RcStreamAnswer, RcStreamDial, RcStreamEnvelope, RcStreamEvent, RcStreamHub, RcStreamHubDeps, RcWorkerFact, RcWriteHeaders, RecoverFarmParams, RecoveryResult, ResolveDecisionsInput, ResolvedState, ResyncFarmParams, ResyncFarmResult, RunCheckParams, RunDoctorParams, RunFrontDoorSupervisorOptions, RunSupervisorOptions, SseParsedEvent, StickyPick, SupervisorPorts, UnreadableIdentityListEntry, UpdateDirectoryRuleOptions, UpdateProviderInput, UsageReadFs, UsageSnapshot, WhenCondition, WhenEvaluation };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-shim",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.12.0",
|
|
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>",
|