agent-shim 8.20.2 → 8.21.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/README.md +1 -0
- package/dist/cli.cjs +1126 -421
- package/dist/index.cjs +386 -27
- package/dist/index.mjs +378 -27
- package/dist/types/index.d.ts +92 -10
- package/package.json +1 -1
package/dist/types/index.d.ts
CHANGED
|
@@ -3998,13 +3998,13 @@ declare function createControlApiRouter(deps: ControlApiDeps): {
|
|
|
3998
3998
|
"config-profile": "config-profile";
|
|
3999
3999
|
identity: "identity";
|
|
4000
4000
|
provider: "provider";
|
|
4001
|
+
pool: "pool";
|
|
4002
|
+
keychain: "keychain";
|
|
4001
4003
|
"ambient-credential": "ambient-credential";
|
|
4002
4004
|
"binary-discovery": "binary-discovery";
|
|
4003
4005
|
"claude-shim": "claude-shim";
|
|
4004
4006
|
"path-resolution": "path-resolution";
|
|
4005
4007
|
"legacy-name": "legacy-name";
|
|
4006
|
-
pool: "pool";
|
|
4007
|
-
keychain: "keychain";
|
|
4008
4008
|
"directory-rules": "directory-rules";
|
|
4009
4009
|
"categories-local": "categories-local";
|
|
4010
4010
|
"active-identity": "active-identity";
|
|
@@ -4475,13 +4475,13 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
|
|
|
4475
4475
|
"config-profile": "config-profile";
|
|
4476
4476
|
identity: "identity";
|
|
4477
4477
|
provider: "provider";
|
|
4478
|
+
pool: "pool";
|
|
4479
|
+
keychain: "keychain";
|
|
4478
4480
|
"ambient-credential": "ambient-credential";
|
|
4479
4481
|
"binary-discovery": "binary-discovery";
|
|
4480
4482
|
"claude-shim": "claude-shim";
|
|
4481
4483
|
"path-resolution": "path-resolution";
|
|
4482
4484
|
"legacy-name": "legacy-name";
|
|
4483
|
-
pool: "pool";
|
|
4484
|
-
keychain: "keychain";
|
|
4485
4485
|
"directory-rules": "directory-rules";
|
|
4486
4486
|
"categories-local": "categories-local";
|
|
4487
4487
|
"active-identity": "active-identity";
|
|
@@ -4769,13 +4769,13 @@ declare const DoctorFindingSchema: z.ZodObject<{
|
|
|
4769
4769
|
"config-profile": "config-profile";
|
|
4770
4770
|
identity: "identity";
|
|
4771
4771
|
provider: "provider";
|
|
4772
|
+
pool: "pool";
|
|
4773
|
+
keychain: "keychain";
|
|
4772
4774
|
"ambient-credential": "ambient-credential";
|
|
4773
4775
|
"binary-discovery": "binary-discovery";
|
|
4774
4776
|
"claude-shim": "claude-shim";
|
|
4775
4777
|
"path-resolution": "path-resolution";
|
|
4776
4778
|
"legacy-name": "legacy-name";
|
|
4777
|
-
pool: "pool";
|
|
4778
|
-
keychain: "keychain";
|
|
4779
4779
|
"directory-rules": "directory-rules";
|
|
4780
4780
|
"categories-local": "categories-local";
|
|
4781
4781
|
"active-identity": "active-identity";
|
|
@@ -4798,13 +4798,13 @@ declare const DoctorRunOutputSchema: z.ZodObject<{
|
|
|
4798
4798
|
"config-profile": "config-profile";
|
|
4799
4799
|
identity: "identity";
|
|
4800
4800
|
provider: "provider";
|
|
4801
|
+
pool: "pool";
|
|
4802
|
+
keychain: "keychain";
|
|
4801
4803
|
"ambient-credential": "ambient-credential";
|
|
4802
4804
|
"binary-discovery": "binary-discovery";
|
|
4803
4805
|
"claude-shim": "claude-shim";
|
|
4804
4806
|
"path-resolution": "path-resolution";
|
|
4805
4807
|
"legacy-name": "legacy-name";
|
|
4806
|
-
pool: "pool";
|
|
4807
|
-
keychain: "keychain";
|
|
4808
4808
|
"directory-rules": "directory-rules";
|
|
4809
4809
|
"categories-local": "categories-local";
|
|
4810
4810
|
"active-identity": "active-identity";
|
|
@@ -4835,6 +4835,64 @@ interface LaunchEventPublisher {
|
|
|
4835
4835
|
/** Creates the launch lifecycle publisher. One per door process, fed by the supervisor's tick. */
|
|
4836
4836
|
declare function createLaunchEventPublisher(hub: DoorEventHub, now: () => number): LaunchEventPublisher;
|
|
4837
4837
|
|
|
4838
|
+
/**
|
|
4839
|
+
* The worker's web-fetch proxy target side: the URL fetch the CLI delegates to the Remote Control host when its environment sends `CLAUDE_CODE_WEBFETCH_USE_CCR_PROXY`, served by the self-hosted surface so such a session does not break on the first fetch. The wire contract is the one the 2.1.289 CLI's own client half defines (its `THr`/`jPt` functions): a POST of `{url}` to `/{cse}/worker/web-fetch` answered with `{url, destination_url, text, content_type}` or `{error: {error_type, error_message}}`, read under a 12 MiB answer cap and a 40 s per-attempt timeout.
|
|
4840
|
+
*
|
|
4841
|
+
* This module owns the fetch's bounds; `rcSelfHost.ts` owns the serving. The bounds are derived, each from a fact of the protocol or the runtime, never chosen: the byte cap and the deadline are the CLI client's own reader limits (an answer past either is dropped unread, so there is no point delivering one), the redirect bound is the runtime fetch's own, and the private-address refusal is what every public proxy owes its host, lifted only by a named environment variable for deployments that deliberately serve internal targets (the interception rig is one).
|
|
4842
|
+
*
|
|
4843
|
+
* The real dial rides the door's own interception-proof agents (`connectEffects.ts`), so a fetch cannot be looped back into the door's transparent surface by the very redirect that surface serves, exactly like every other upstream dial the door makes.
|
|
4844
|
+
*/
|
|
4845
|
+
/** The largest answer the CLI's web proxy client reads: its request is built with `maxContentLength: 12582912`, so an answer past this is dropped unread by the client that asked for it. The door reads at most this many body bytes, and refuses the fetch rather than truncating, because the answer's shape carries no truncated flag a silent cut could hide behind. */
|
|
4846
|
+
declare const RC_WEB_FETCH_MAX_BYTES = 12582912;
|
|
4847
|
+
/** The CLI's web proxy client timeout per attempt (`timeout: 40000` in its source): the door races the same budget so a slow target is answered as a target error inside the attempt the client is willing to wait for, rather than after it. */
|
|
4848
|
+
declare const RC_WEB_FETCH_DEADLINE_MS = 40000;
|
|
4849
|
+
/** The most redirects one fetch follows: the runtime's own `fetch` follows at most 20 (undici's documented default), so the proxy never walks a chain a plain fetch in the same process would refuse. */
|
|
4850
|
+
declare const RC_WEB_FETCH_MAX_REDIRECTS = 20;
|
|
4851
|
+
/** The environment variable that lifts the private-address refusal, read once at door start like the mode variables beside it: an interception rig or an internal-network door deliberately serves loopback and RFC 1918 targets, and names that choice in its environment. Anything but `1` means the refusal stands. */
|
|
4852
|
+
declare const RC_WEB_FETCH_ALLOW_PRIVATE_ENV = "AGENT_SHIM_FRONTDOOR_RC_SELF_HOST_WEB_FETCH_ALLOW_PRIVATE";
|
|
4853
|
+
/** Whether the environment lifted the private-address refusal for the worker's web-fetch proxy. */
|
|
4854
|
+
declare function rcWebFetchAllowsPrivateFromEnv(env: NodeJS.ProcessEnv): boolean;
|
|
4855
|
+
/** One fetch's settled outcome: the fetched facts the serving half answers with, or the target refusal it answers instead. A refusal is a 200 answer with an `error` object (the protocol's own target-error channel), never an HTTP error status: the CLI retries 5xx answers, and a target that failed is not worth retrying as though the proxy were broken. */
|
|
4856
|
+
type RcWebFetchOutcome = {
|
|
4857
|
+
readonly kind: "fetched";
|
|
4858
|
+
readonly url: string;
|
|
4859
|
+
readonly destinationUrl: string;
|
|
4860
|
+
readonly contentType: string | undefined;
|
|
4861
|
+
readonly text: string;
|
|
4862
|
+
} | {
|
|
4863
|
+
readonly kind: "refused";
|
|
4864
|
+
readonly errorType: string;
|
|
4865
|
+
readonly errorMessage: string;
|
|
4866
|
+
};
|
|
4867
|
+
/** The fetch the self-hosted surface calls for one worker web-fetch request. */
|
|
4868
|
+
type RcWebFetcher = (url: string) => Promise<RcWebFetchOutcome>;
|
|
4869
|
+
/** One dial's answer as the bounds logic sees it: status and headers settled, the body still streaming, so the read cap can cut it mid-flight. */
|
|
4870
|
+
interface RcWebFetchHop {
|
|
4871
|
+
readonly status: number;
|
|
4872
|
+
/** The redirect target when the status carries one, exactly as the header named it (possibly relative). */
|
|
4873
|
+
readonly location: string | undefined;
|
|
4874
|
+
readonly contentType: string | undefined;
|
|
4875
|
+
readonly chunks: AsyncIterable<Uint8Array>;
|
|
4876
|
+
}
|
|
4877
|
+
/** Everything one fetch needs, injected so the bounds run against fakes in unit tests: one dial per already-checked URL, one hostname resolution, the private-address stance, and the deadline budget. */
|
|
4878
|
+
interface RcWebFetchDeps {
|
|
4879
|
+
readonly dial: (url: URL, signal: AbortSignal) => Promise<RcWebFetchHop>;
|
|
4880
|
+
/** Resolves one hostname to every address it answers with; the refusal judges them all, so a name whose any address is private is refused. */
|
|
4881
|
+
readonly lookup: (hostname: string) => Promise<readonly string[]>;
|
|
4882
|
+
readonly allowPrivate: boolean;
|
|
4883
|
+
readonly deadlineMs: number;
|
|
4884
|
+
}
|
|
4885
|
+
/** Whether an address is one this proxy refuses unless the deployment lifted the rule: the address blocks that reach a machine's own interfaces or its private interior. Loopback, the RFC 1918 and RFC 4193 interiors, link-local, the shared CGNAT block (which overlay networks live in), unspecified, and multicast: each names a target a public URL fetch has no business reaching, and a hostname resolving to any of them is refused whole. */
|
|
4886
|
+
declare function isPrivateAddress(address: string): boolean;
|
|
4887
|
+
/** Runs one fetch through its bounds: scheme and address checks on every hop, the redirect walk, the content-type gate, the byte cap and the deadline. */
|
|
4888
|
+
declare function fetchThroughWebProxy(url: string, deps: Readonly<RcWebFetchDeps>): Promise<RcWebFetchOutcome>;
|
|
4889
|
+
/**
|
|
4890
|
+
* The production fetch: one plain and one TLS agent of the door's own exempt kind, shared across fetches so connections pool, with every dial carrying the abort signal the bounds own. Hostname resolution is the system resolver (`dns.lookup`, all addresses), which is also the stance the refusal judges; the dial itself routes through the exempt agents, whose real-name dials resolve upstreams through real DNS and the pf-exempt source-port range, so a fetch cannot be looped back into the door's own transparent surface by the interception it serves.
|
|
4891
|
+
*/
|
|
4892
|
+
declare function realRcWebFetch(options: {
|
|
4893
|
+
readonly allowPrivate: boolean;
|
|
4894
|
+
}): RcWebFetcher;
|
|
4895
|
+
|
|
4838
4896
|
/**
|
|
4839
4897
|
* 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.
|
|
4840
4898
|
*
|
|
@@ -4842,6 +4900,8 @@ declare function createLaunchEventPublisher(hub: DoorEventHub, now: () => number
|
|
|
4842
4900
|
*
|
|
4843
4901
|
* 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.
|
|
4844
4902
|
*
|
|
4903
|
+
* The worker family includes the two web proxies the CLI dials only when its environment opts in (`CLAUDE_CODE_WEBFETCH_USE_CCR_PROXY` and `CLAUDE_CODE_WEBSEARCH_USE_CCR_PROXY`, both unset by default and both verified absent from the rig session, so the default session fetches directly and never dials them): `/{cse}/worker/web-fetch` carries the CLI's URL fetch (a POST of `{url}` answered with the fetched facts or a target refusal, both shapes the 2.1.289 client's own schema reads), and `/{cse}/worker/web-search` carries its search. The wire facts the live rig settled beside the source: the session id the proxy URL names comes from a `CLAUDE_CODE_SESSION_ID` latch that only the cloud worker shape provisions (a locally launched bridge never sets it), and the credential the client presents is the session ingress token read from `CLAUDE_SESSION_INGRESS_TOKEN_FILE` or the well-known remote directory, which locally is nothing at all, so a bare local launch sends no Authorization and is refused; when the ingress token is one of this surface's own worker JWTs it authenticates exactly as the worker family's other paths do. The paths also accept the minted credential itself, the shape the client's login-bearer fallback presents, whose principal is the same credential that created the session. The fetch's bounds live in `rcWebFetch.ts`; the search is served as a clear refusal naming that no backend ships, with the injection point a real backend answers through.
|
|
4904
|
+
*
|
|
4845
4905
|
* 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.
|
|
4846
4906
|
*
|
|
4847
4907
|
* 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.
|
|
@@ -4871,6 +4931,24 @@ interface RcSelfHostCredentialRecord {
|
|
|
4871
4931
|
readonly organizationUuid: string;
|
|
4872
4932
|
readonly accountUuid: string;
|
|
4873
4933
|
}
|
|
4934
|
+
/** One search result a backend answers with: the three fields the CLI's web-search schema reads, of which only `url` must be present (the client filters on it). */
|
|
4935
|
+
interface RcWebSearchResult {
|
|
4936
|
+
readonly title?: string;
|
|
4937
|
+
readonly url: string;
|
|
4938
|
+
readonly snippet?: string;
|
|
4939
|
+
}
|
|
4940
|
+
/**
|
|
4941
|
+
* A real search backend for the worker's web-search proxy, injectable because the door ships none: it receives the query exactly as the CLI sent it (with its domain filters and search profile when it named any) and answers either the result list or a refusal shaped like the fetch's. This is the documented hook a future backend plugs into; the door's own answer while none is wired is the clear refusal below, never an invented engine and never a silent empty success.
|
|
4942
|
+
*/
|
|
4943
|
+
type RcWebSearchBackend = (request: {
|
|
4944
|
+
readonly query: string;
|
|
4945
|
+
readonly allowedDomains?: readonly string[];
|
|
4946
|
+
readonly blockedDomains?: readonly string[];
|
|
4947
|
+
readonly searchProfile?: string;
|
|
4948
|
+
}) => Promise<readonly RcWebSearchResult[] | {
|
|
4949
|
+
readonly errorType: string;
|
|
4950
|
+
readonly errorMessage: string;
|
|
4951
|
+
}>;
|
|
4874
4952
|
/** Everything the service needs, injected so the decision logic runs against fakes in unit tests. */
|
|
4875
4953
|
interface RcSelfHostDeps {
|
|
4876
4954
|
readonly now: () => number;
|
|
@@ -4880,6 +4958,10 @@ interface RcSelfHostDeps {
|
|
|
4880
4958
|
readonly randomToken: () => string;
|
|
4881
4959
|
/** 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. */
|
|
4882
4960
|
readonly credentialRecord: () => RcSelfHostCredentialRecord | undefined;
|
|
4961
|
+
/** The URL fetch behind the worker's web-fetch proxy: the door's own exempt-agent dial in production (`realRcWebFetch`), a fake in tests. */
|
|
4962
|
+
readonly webFetch: RcWebFetcher;
|
|
4963
|
+
/** A real search backend for the worker's web-search proxy, when one is wired; while undefined the proxy answers the clear refusal naming that no backend serves this door. */
|
|
4964
|
+
readonly webSearch?: RcWebSearchBackend;
|
|
4883
4965
|
readonly log?: (line: string) => void;
|
|
4884
4966
|
}
|
|
4885
4967
|
/** 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. */
|
|
@@ -5727,5 +5809,5 @@ interface PrepareClaudeLaunchOptions {
|
|
|
5727
5809
|
*/
|
|
5728
5810
|
declare function prepareClaudeLaunch(options: PrepareClaudeLaunchOptions): LaunchPlan;
|
|
5729
5811
|
|
|
5730
|
-
export { AMBIENT_CREDENTIAL_VARS, CHECK_CREDENTIAL_APPLIES, CONNECT_INTERCEPT_HOST, CONNECT_INTERCEPT_HOSTS, CONNECT_LIMITS, CONTROL_PATH_PREFIX, CategoryClassificationOverlaySchema, CategoryClassificationSchema, CategoryMapSchema, CheckReportJsonSchema, CheckRunInputSchema, CliError, ConfigProfileSchema, CredentialCacheSchema, CredentialSchema, CredentialSourceSchema, DOOR_EVENT_BUFFER_EVENTS, DOOR_EVENT_SOURCE_RC, DirectoryRuleAlreadyExistsError, DirectoryRuleMissingTargetError, DirectoryRuleNotFoundError, DirectoryRuleSchema, DirectoryRulesSchema, DoctorFindingSchema, DoctorRunOutputSchema, DoorEventSchema, DoorEventSourceQuerySchema, EXIT_FAILURE, EXIT_USAGE, EffectiveWindowSchema, EntryValueSchema, FARM_MANIFEST_FILENAME, FrontDoorSessionStatusSchema, FrontDoorSessionsOutputSchema, FrontDoorStartError, FrontDoorStateSchema, FrontDoorStatusOutputSchema, GlobalConfigSchema, HeadroomSocketTargetSchema, HeadroomStartError, IdentityAlreadyExistsError, IdentityNotFoundError, IdentitySchema, InvalidCategoryNameError, InvalidIdentityNameError, InvalidProviderNameError, LAUNCH_EVENT_SOURCE, LaunchLifecycleEventSchema, 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, UsageListOutputSchema, UsageSnapshotError, UsageSnapshotSchema, UsageWindowsInputSchema, UsageWindowsOutputSchema, WhenSchema, addDirectoryRule, addIdentity, addPool, addProvider, answerRcControlRequest, buildEntryFacts, buildLayoutPaths, buildRcControlResponsePayload, buildRcEventWriteBody, buildRcInterruptPayload, buildRcSetModelPayload, buildRcSetPermissionModePayload, buildRcUserMessagePayload, carryOver, checkReportHasWarnings, checkReportToJson, collectCheckReport, collectDoctorReport, collectFrontDoorStatus, collectPoolPick, createControlApiRouter, createDoorApiNodeHandler, createDoorApiRouter, createDoorEventHub, createEventsApiRouter, createLaunchEventPublisher, createLeafCache, createProfile, createRcApiNodeHandler, createRcApiRouter, createRcControlHandler, createRcCredentialStore, createRcEventFanout, createRcSelfHostSurface, createRcSessionTracker, createRcStreamHub, createSseParser, describeProviderEndpoint, detectAmbientCredential, doorApiAuth, doorApiNodeHandlerOf, effectiveWindow, ensureCa, ensureFrontDoor, ensureHeadroom, evaluateAmbientCredentialGuard, evaluateWhen, formatAmbientCredentialGuardMessage, formatCheckReport, formatDoctorReport, formatFrontDoorStatus, forwardableHeaders, frontDoorApiClient, frontDoorApiLink, frontDoorRcApiClient, frontDoorRcControl, generateCa, headroomSocketTarget, 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, rcFanoutOnDoorHub, 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, runLauncher, runSupervisor, servedByPipeline, setAllowAmbientCredential, setDefaultConfigProfile, setGlobalDefaultProfile, setIdentityCredential, setPool, setProfileCategories, setProfileEntries, setProfileLaunchFlags, setProfileMetadata, setRcSessionModel, setRcSessionPermissionMode, snapshotPath, spawnClaude, startConnectServer, topLevelNames, updateDirectoryRule, updateProvider, useIdentity, writeDirectoryRules };
|
|
5731
|
-
export type { AddDirectoryRuleOptions, AddProviderInput, AmbientCredentialDetection, AmbientCredentialGuardResult, AmbientCredentialVar, BuildEntryFactsParams, CaMaterial, Candidate, CarryOverParams, CarryOverResult, CategoryMap, CheckReport, CheckReportJson, CollectCheckReportParams, CollectDoctorReportParams, CompiledRule, ConditionContext, ConfigProfile, ConnectCertStore, ConnectEffects, ConnectLimits, ConnectLocalSurface, ConnectServerConfig, ConnectServerHandle, ConnectTarget, ControlApiClient, ControlApiDeps, ControlApiRouter, Credential, CredentialSource, Decision, Diagnostic, DirectoryRule, DirectoryRules, DoctorReport, DoorApiClient, DoorApiContext, DoorApiDeps, DoorApiRouter, DoorEvent, DoorEventHub, DoorEventPublisher, DoorEventStream, DoorEventsApiDeps, EffectiveWindow, EliminatedRule, EnsureFrontDoorPorts, EnsureHeadroomPorts, EntryFact, EntryFacts, EntryValue, EvaluateAmbientCredentialGuardParams, FlattenedCascade, FrontDoorRcControl, FrontDoorSessionStatus, FrontDoorStatus, FrontDoorSupervisorPorts, GlobalConfig, HeadroomSupervisorConfig, Identity, IdentityCredentialChange, IdentityListEntry, IdentityListing, InjectedCredential, LaunchEventPublisher, LaunchLifecycleEvent, LaunchPlan, Layer, LayerId, LayoutPaths, LeafCert, NestedContribution, 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, RunLauncherParams, RunSupervisorOptions, SpawnClaudeParams, SseParsedEvent, StickyPick, SupervisorPorts, UnreadableIdentityListEntry, UpdateDirectoryRuleOptions, UpdateProviderInput, UsageReadFs, UsageSnapshot, WhenCondition, WhenEvaluation };
|
|
5812
|
+
export { AMBIENT_CREDENTIAL_VARS, CHECK_CREDENTIAL_APPLIES, CONNECT_INTERCEPT_HOST, CONNECT_INTERCEPT_HOSTS, CONNECT_LIMITS, CONTROL_PATH_PREFIX, CategoryClassificationOverlaySchema, CategoryClassificationSchema, CategoryMapSchema, CheckReportJsonSchema, CheckRunInputSchema, CliError, ConfigProfileSchema, CredentialCacheSchema, CredentialSchema, CredentialSourceSchema, DOOR_EVENT_BUFFER_EVENTS, DOOR_EVENT_SOURCE_RC, DirectoryRuleAlreadyExistsError, DirectoryRuleMissingTargetError, DirectoryRuleNotFoundError, DirectoryRuleSchema, DirectoryRulesSchema, DoctorFindingSchema, DoctorRunOutputSchema, DoorEventSchema, DoorEventSourceQuerySchema, EXIT_FAILURE, EXIT_USAGE, EffectiveWindowSchema, EntryValueSchema, FARM_MANIFEST_FILENAME, FrontDoorSessionStatusSchema, FrontDoorSessionsOutputSchema, FrontDoorStartError, FrontDoorStateSchema, FrontDoorStatusOutputSchema, GlobalConfigSchema, HeadroomSocketTargetSchema, HeadroomStartError, IdentityAlreadyExistsError, IdentityNotFoundError, IdentitySchema, InvalidCategoryNameError, InvalidIdentityNameError, InvalidProviderNameError, LAUNCH_EVENT_SOURCE, LaunchLifecycleEventSchema, 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, RC_WEB_FETCH_ALLOW_PRIVATE_ENV, RC_WEB_FETCH_DEADLINE_MS, RC_WEB_FETCH_MAX_BYTES, RC_WEB_FETCH_MAX_REDIRECTS, ROUTED_PATH_PREFIX, RcPermissionModeSchema, RcStreamEnvelopeSchema, RcStreamEventSchema, UsageError, UsageListOutputSchema, UsageSnapshotError, UsageSnapshotSchema, UsageWindowsInputSchema, UsageWindowsOutputSchema, WhenSchema, addDirectoryRule, addIdentity, addPool, addProvider, answerRcControlRequest, buildEntryFacts, buildLayoutPaths, buildRcControlResponsePayload, buildRcEventWriteBody, buildRcInterruptPayload, buildRcSetModelPayload, buildRcSetPermissionModePayload, buildRcUserMessagePayload, carryOver, checkReportHasWarnings, checkReportToJson, collectCheckReport, collectDoctorReport, collectFrontDoorStatus, collectPoolPick, createControlApiRouter, createDoorApiNodeHandler, createDoorApiRouter, createDoorEventHub, createEventsApiRouter, createLaunchEventPublisher, createLeafCache, createProfile, createRcApiNodeHandler, createRcApiRouter, createRcControlHandler, createRcCredentialStore, createRcEventFanout, createRcSelfHostSurface, createRcSessionTracker, createRcStreamHub, createSseParser, describeProviderEndpoint, detectAmbientCredential, doorApiAuth, doorApiNodeHandlerOf, effectiveWindow, ensureCa, ensureFrontDoor, ensureHeadroom, evaluateAmbientCredentialGuard, evaluateWhen, fetchThroughWebProxy, formatAmbientCredentialGuardMessage, formatCheckReport, formatDoctorReport, formatFrontDoorStatus, forwardableHeaders, frontDoorApiClient, frontDoorApiLink, frontDoorRcApiClient, frontDoorRcControl, generateCa, headroomSocketTarget, identityExists, injectRcUserMessage, interruptRcSession, isIdentityDirectoryName, isInterceptedHost, isPrivateAddress, isRcPermissionMode, lateRcEventDial, lateRcStreamDial, listDirectoryRules, listIdentities, listProfiles, listProviders, listUsageSnapshots, matchBranch, mintLeaf, mintRcSelfHostCredential, observingRoutedRoute, parseConnectTarget, parseRcStreamEnvelope, planOf, prepareClaudeLaunch, prepareLaunch, profileExists, providerExists, rankPool, rcEventWriteResultFromAnswer, rcFanoutOnDoorHub, rcObserverAsPassthrough, rcSelfHostFromEnv, rcWebFetchAllowsPrivateFromEnv, readActiveIdentity, readDirectoryRules, readFarmManifest, readGlobalConfig, readIdentity, readPools, readProfile, readProvider, readRcSelfHostRecord, readUsageSnapshot, realConnectCertStore, realConnectEffects, realRcControlTransport, realRcEventDial, realRcStreamDial, realRcWebFetch, recoverFarm, recoveryDiagnostics, removeDirectoryRule, removeIdentity, removePool, removeProfile, removeProvider, requirePool, resolveAgentShimHome, resolveClaudeHome, resolveDecisions, resolveLayoutPaths, resolveSupervisorConfig, resyncFarm, runCheck, runDoctor, runFrontDoorSupervisor, runLauncher, runSupervisor, servedByPipeline, setAllowAmbientCredential, setDefaultConfigProfile, setGlobalDefaultProfile, setIdentityCredential, setPool, setProfileCategories, setProfileEntries, setProfileLaunchFlags, setProfileMetadata, setRcSessionModel, setRcSessionPermissionMode, snapshotPath, spawnClaude, startConnectServer, topLevelNames, updateDirectoryRule, updateProvider, useIdentity, writeDirectoryRules };
|
|
5813
|
+
export type { AddDirectoryRuleOptions, AddProviderInput, AmbientCredentialDetection, AmbientCredentialGuardResult, AmbientCredentialVar, BuildEntryFactsParams, CaMaterial, Candidate, CarryOverParams, CarryOverResult, CategoryMap, CheckReport, CheckReportJson, CollectCheckReportParams, CollectDoctorReportParams, CompiledRule, ConditionContext, ConfigProfile, ConnectCertStore, ConnectEffects, ConnectLimits, ConnectLocalSurface, ConnectServerConfig, ConnectServerHandle, ConnectTarget, ControlApiClient, ControlApiDeps, ControlApiRouter, Credential, CredentialSource, Decision, Diagnostic, DirectoryRule, DirectoryRules, DoctorReport, DoorApiClient, DoorApiContext, DoorApiDeps, DoorApiRouter, DoorEvent, DoorEventHub, DoorEventPublisher, DoorEventStream, DoorEventsApiDeps, EffectiveWindow, EliminatedRule, EnsureFrontDoorPorts, EnsureHeadroomPorts, EntryFact, EntryFacts, EntryValue, EvaluateAmbientCredentialGuardParams, FlattenedCascade, FrontDoorRcControl, FrontDoorSessionStatus, FrontDoorStatus, FrontDoorSupervisorPorts, GlobalConfig, HeadroomSupervisorConfig, Identity, IdentityCredentialChange, IdentityListEntry, IdentityListing, InjectedCredential, LaunchEventPublisher, LaunchLifecycleEvent, LaunchPlan, Layer, LayerId, LayoutPaths, LeafCert, NestedContribution, 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, RcWebFetchDeps, RcWebFetchHop, RcWebFetchOutcome, RcWebFetcher, RcWorkerFact, RcWriteHeaders, RecoverFarmParams, RecoveryResult, ResolveDecisionsInput, ResolvedState, ResyncFarmParams, ResyncFarmResult, RunCheckParams, RunDoctorParams, RunFrontDoorSupervisorOptions, RunLauncherParams, RunSupervisorOptions, SpawnClaudeParams, 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.21.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>",
|