agent-shim 8.18.0 → 8.20.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.
@@ -354,9 +354,25 @@ declare const ConfigProfileSchema: z.ZodObject<{
354
354
  type ConfigProfile = z.infer<typeof ConfigProfileSchema>;
355
355
  /** A pool's own name: the identity alphabet minus `@`, since a pool is never an email address. */
356
356
  declare const PoolNameSchema: z.ZodString;
357
- /** A named, explicit set of identities to choose among at launch. Never implicit: a pool lists its members, so an identity that bills a client is only ever picked when someone put it there. */
357
+ /** How a pool chooses the member a launch runs as: "score" by remaining quota, "listed" in the order the pool names its members. */
358
+ declare const PoolPreferenceSchema: z.ZodEnum<{
359
+ score: "score";
360
+ listed: "listed";
361
+ }>;
362
+ type PoolPreference = z.infer<typeof PoolPreferenceSchema>;
363
+ /**
364
+ * A named, explicit set of identities to choose among at launch. Never implicit: a pool lists its members, so an identity that bills a client is only ever picked when someone put it there.
365
+ *
366
+ * A member entry may name another pool (`pool:<name>`), which is ranked with its own preference and contributes its pick at the entry's position; see `PoolMemberSchema`. The graph must stay acyclic, which `pool add`/`pool set` enforce and `doctor` re-checks.
367
+ *
368
+ * `preference` decides how the member is chosen, and an absent field means "score". "score" ranks members by plan-size-weighted remaining quota per hour until reset, so the quota closest to expiring is spent first (use-it-or-lose-it). "listed" ranks members strictly in the order the pool lists them, skipping only a member that is currently refused, so a pool can pin one identity first and fall back to the others only while that one is refused.
369
+ */
358
370
  declare const PoolSchema: z.ZodObject<{
359
371
  identities: z.ZodArray<z.ZodString>;
372
+ preference: z.ZodOptional<z.ZodEnum<{
373
+ score: "score";
374
+ listed: "listed";
375
+ }>>;
360
376
  }, z.core.$strict>;
361
377
  type Pool = z.infer<typeof PoolSchema>;
362
378
  /** One directory rule in `~/.agent-shim/directory-rules.json`, scoped to an explicit absolute (or `~`-rooted) path. */
@@ -588,6 +604,10 @@ declare const GlobalConfigSchema: z.ZodObject<{
588
604
  }, z.core.$strict>>;
589
605
  pools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
590
606
  identities: z.ZodArray<z.ZodString>;
607
+ preference: z.ZodOptional<z.ZodEnum<{
608
+ score: "score";
609
+ listed: "listed";
610
+ }>>;
591
611
  }, z.core.$strict>>>;
592
612
  }, z.core.$strict>;
593
613
  type GlobalConfig = z.infer<typeof GlobalConfigSchema>;
@@ -3978,13 +3998,13 @@ declare function createControlApiRouter(deps: ControlApiDeps): {
3978
3998
  "config-profile": "config-profile";
3979
3999
  identity: "identity";
3980
4000
  provider: "provider";
3981
- pool: "pool";
3982
- keychain: "keychain";
3983
4001
  "ambient-credential": "ambient-credential";
3984
4002
  "binary-discovery": "binary-discovery";
3985
4003
  "claude-shim": "claude-shim";
3986
4004
  "path-resolution": "path-resolution";
3987
4005
  "legacy-name": "legacy-name";
4006
+ pool: "pool";
4007
+ keychain: "keychain";
3988
4008
  "directory-rules": "directory-rules";
3989
4009
  "categories-local": "categories-local";
3990
4010
  "active-identity": "active-identity";
@@ -4455,13 +4475,13 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
4455
4475
  "config-profile": "config-profile";
4456
4476
  identity: "identity";
4457
4477
  provider: "provider";
4458
- pool: "pool";
4459
- keychain: "keychain";
4460
4478
  "ambient-credential": "ambient-credential";
4461
4479
  "binary-discovery": "binary-discovery";
4462
4480
  "claude-shim": "claude-shim";
4463
4481
  "path-resolution": "path-resolution";
4464
4482
  "legacy-name": "legacy-name";
4483
+ pool: "pool";
4484
+ keychain: "keychain";
4465
4485
  "directory-rules": "directory-rules";
4466
4486
  "categories-local": "categories-local";
4467
4487
  "active-identity": "active-identity";
@@ -4749,13 +4769,13 @@ declare const DoctorFindingSchema: z.ZodObject<{
4749
4769
  "config-profile": "config-profile";
4750
4770
  identity: "identity";
4751
4771
  provider: "provider";
4752
- pool: "pool";
4753
- keychain: "keychain";
4754
4772
  "ambient-credential": "ambient-credential";
4755
4773
  "binary-discovery": "binary-discovery";
4756
4774
  "claude-shim": "claude-shim";
4757
4775
  "path-resolution": "path-resolution";
4758
4776
  "legacy-name": "legacy-name";
4777
+ pool: "pool";
4778
+ keychain: "keychain";
4759
4779
  "directory-rules": "directory-rules";
4760
4780
  "categories-local": "categories-local";
4761
4781
  "active-identity": "active-identity";
@@ -4778,13 +4798,13 @@ declare const DoctorRunOutputSchema: z.ZodObject<{
4778
4798
  "config-profile": "config-profile";
4779
4799
  identity: "identity";
4780
4800
  provider: "provider";
4781
- pool: "pool";
4782
- keychain: "keychain";
4783
4801
  "ambient-credential": "ambient-credential";
4784
4802
  "binary-discovery": "binary-discovery";
4785
4803
  "claude-shim": "claude-shim";
4786
4804
  "path-resolution": "path-resolution";
4787
4805
  "legacy-name": "legacy-name";
4806
+ pool: "pool";
4807
+ keychain: "keychain";
4788
4808
  "directory-rules": "directory-rules";
4789
4809
  "categories-local": "categories-local";
4790
4810
  "active-identity": "active-identity";
@@ -5058,6 +5078,21 @@ declare function planOf(account: AccountMetadata | undefined): PlanClass;
5058
5078
 
5059
5079
  /** Anthropic's longest prompt-cache lifetime (the one-hour tier): a conversation resumed within it still has a warm cache on the account that served it, and the cache is per organisation, so it is lost by switching. */
5060
5080
  declare const PROMPT_CACHE_TTL_MS: number;
5081
+ /**
5082
+ * Stands for a nested `pool:<name>` member entry rather than a direct identity. `pick` carries the nested pool's own pick (its identity and reasons), which the outer ranking re-ranks from that identity's snapshot like any member; `refused` marks an entry whose every member is refused, so the entry itself is ineligible, carrying the nested pool's earliest return.
5083
+ */
5084
+ type NestedContribution = {
5085
+ readonly kind: "pick";
5086
+ readonly pool: string;
5087
+ readonly reasons: readonly string[];
5088
+ } | {
5089
+ readonly kind: "refused";
5090
+ readonly pool: string;
5091
+ readonly earliestReturn?: {
5092
+ readonly identity: string;
5093
+ readonly atMs: number;
5094
+ };
5095
+ };
5061
5096
  /** The state a member's ranking was built from. */
5062
5097
  interface PoolMember {
5063
5098
  readonly identity: string;
@@ -5068,6 +5103,8 @@ interface PoolMember {
5068
5103
  readonly account?: AccountMetadata;
5069
5104
  /** The member's usage-log records from the current five-hour window on. */
5070
5105
  readonly records: readonly UsageRecord[];
5106
+ /** Present when this member stands for a nested `pool:<name>` entry rather than a direct identity. */
5107
+ readonly nested?: NestedContribution;
5071
5108
  }
5072
5109
  /** The member last picked for this directory, kept so a conversation stays on the account whose prompt cache is warm. */
5073
5110
  interface StickyPick {
@@ -5080,6 +5117,8 @@ interface RankPoolInput {
5080
5117
  readonly sticky?: StickyPick;
5081
5118
  /** True when the launch continues or resumes a conversation, which belongs on the account it started on whatever the cache lifetime. */
5082
5119
  readonly resuming: boolean;
5120
+ /** How members are ordered: "score" (the default when absent) by the use-it-or-lose-it ranking, "listed" strictly in `members` order. */
5121
+ readonly preference?: "score" | "listed";
5083
5122
  }
5084
5123
  /** In pick order. `scored` has usable quota data; `unknown` has none (never recorded, or unreadable); `pay-per-use` bills by use instead of drawing on a plan; `ineligible` is refused right now. */
5085
5124
  type CandidateClass = "scored" | "unknown" | "pay-per-use" | "ineligible";
@@ -5111,18 +5150,20 @@ interface PoolRanking {
5111
5150
  * Ranks `members` for a launch.
5112
5151
  *
5113
5152
  * A member is `ineligible` while a window of its plan, or a refusal it last hit, still binds; it is `unknown` without recorded quota, `pay-per-use` when its usage bills by use, and otherwise `scored`. Scored members order by how much plan-size-weighted quota would expire unused per hour of runway, with any whose five-hour window would run dry at the observed pace (their own, or the person's pace on another member rescaled by plan size) placed behind those that would not. The member last picked for this directory then moves to the front if it is still usable and either the launch resumes a conversation or its prompt cache is still warm.
5153
+ *
5154
+ * How members are ordered depends on `preference`. The default, "score", is the order above: class first, then feasibility, then score, with ties by name. "listed" keeps the order of `members`, which callers build in pool member order, so member order, not class, decides: an `unknown` (no usage recorded) or `pay-per-use` member can be picked before a later `scored` one, which is the list owner's stated preference, and a `scored` member that is not feasible keeps its place and its reason line rather than being demoted. In both modes the pick is the first non-`ineligible` candidate, `earliestReturn` still reports the soonest returning refused member, and the sticky-pick promotion applies unchanged.
5114
5155
  */
5115
5156
  declare function rankPool(input: RankPoolInput): PoolRanking;
5116
5157
 
5117
5158
  /**
5118
- * Ranks a pool exactly as a launch from `directory` would right now, without recording a pick. Shares `rankPoolFromStore` with the launcher, so what this prints is what a launch does.
5159
+ * Ranks a pool exactly as a launch from `directory` would right now, without recording a pick. Shares `rankPoolGraph` with the launcher, so what this prints is what a launch does.
5119
5160
  */
5120
5161
  declare function collectPoolPick(params: Readonly<{
5121
5162
  paths: LayoutPaths;
5122
5163
  fs: FsPort;
5123
5164
  usageFs: FarmFs;
5124
5165
  poolName: string;
5125
- pool: Pool;
5166
+ pools: Readonly<Record<string, Pool>>;
5126
5167
  directory: string;
5127
5168
  nowMs: number;
5128
5169
  }>): PoolPickReport;
@@ -5492,10 +5533,10 @@ declare class PoolNotFoundError extends CliError {
5492
5533
  declare function readPools(paths: LayoutPaths): Readonly<Record<string, Pool>>;
5493
5534
  /** The pool named `name`; throws `PoolNotFoundError` when none is defined. */
5494
5535
  declare function requirePool(paths: LayoutPaths, name: string): Pool;
5495
- /** Defines a new pool. Throws `InvalidPoolNameError` for a name `PoolNameSchema` rejects and `PoolAlreadyExistsError` for one already defined. */
5496
- declare function addPool(paths: LayoutPaths, name: string, identities: readonly string[]): Pool;
5497
- /** Replaces an existing pool's members. Throws `PoolNotFoundError` when it is not defined. */
5498
- declare function setPool(paths: LayoutPaths, name: string, identities: readonly string[]): Pool;
5536
+ /** Defines a new pool. Throws `InvalidPoolNameError` for a name `PoolNameSchema` rejects, `PoolAlreadyExistsError` for one already defined, and `UsageError` for a nested member that names an undefined pool or a cycle. */
5537
+ declare function addPool(paths: LayoutPaths, name: string, identities: readonly string[], preference?: PoolPreference): Pool;
5538
+ /** Replaces an existing pool's members and preference. Throws `PoolNotFoundError` when it is not defined, and `UsageError` for a nested member that names an undefined pool or a cycle. */
5539
+ declare function setPool(paths: LayoutPaths, name: string, identities: readonly string[], preference?: PoolPreference): Pool;
5499
5540
  /** Removes a pool. Throws `PoolNotFoundError` when it is not defined. Anything that selected it (an active-identity file, a directory rule) is left for `doctor` to report, as with a removed identity. */
5500
5541
  declare function removePool(paths: LayoutPaths, name: string): void;
5501
5542
 
@@ -5687,4 +5728,4 @@ interface PrepareClaudeLaunchOptions {
5687
5728
  declare function prepareClaudeLaunch(options: PrepareClaudeLaunchOptions): LaunchPlan;
5688
5729
 
5689
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 };
5690
- 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, 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 };
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 };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-shim",
3
- "version": "8.18.0",
3
+ "version": "8.20.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>",
@@ -79,7 +79,7 @@
79
79
  "rollup": "4.64.0",
80
80
  "rollup-plugin-dts": "6.5.1",
81
81
  "semantic-release": "^25.0.9",
82
- "turbo": "^2.10.12",
82
+ "turbo": "^2.11.5",
83
83
  "typescript": "^6.0.3",
84
84
  "typescript-eslint": "^8.70.0",
85
85
  "vitest": "^4.1.11"