dsh-connect-workbuddy 4.4.5 → 4.5.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/CHANGELOG.md +43 -0
- package/lib/bin.js +1 -1
- package/lib/client.js +273 -12
- package/lib/{host-heartbeat-Bj7JvSYJ.js → host-heartbeat-DvcOd-3C.js} +20 -2
- package/lib/index.d.ts +159 -3
- package/lib/index.js +352 -14
- package/package.json +1 -1
package/lib/index.d.ts
CHANGED
|
@@ -798,6 +798,15 @@ declare function knownRegionOf(domain: string): WorkBuddyRegion | undefined;
|
|
|
798
798
|
* `tool_choice` (the upstream's field is a string; object forms return 400),
|
|
799
799
|
* and guarantee a leading system message.
|
|
800
800
|
*/
|
|
801
|
+
/**
|
|
802
|
+
* The model id a prepared body asks for, when it carries one (issue #61).
|
|
803
|
+
*
|
|
804
|
+
* Lives beside {@link prepareChatBody} because it reads the same shape: the
|
|
805
|
+
* serialized OpenAI body, after this plugin's rewrites. Never throws — a
|
|
806
|
+
* malformed body is the upstream's to reject, not a reason to lose the failure
|
|
807
|
+
* measurement that this id is needed for.
|
|
808
|
+
*/
|
|
809
|
+
declare function modelIdOfBody(bodyJson: string): string | undefined;
|
|
801
810
|
declare function prepareChatBody(source: string): string;
|
|
802
811
|
/** Marker carried by {@link WorkBuddyCredentialRejectedError}; survives bundling. */
|
|
803
812
|
declare const CREDENTIAL_REJECTED_CODE = "WORKBUDDY_CREDENTIAL_REJECTED";
|
|
@@ -1107,7 +1116,29 @@ interface WorkBuddyShimOptions {
|
|
|
1107
1116
|
status: number;
|
|
1108
1117
|
kind: UpstreamErrorKind;
|
|
1109
1118
|
message: string;
|
|
1119
|
+
/**
|
|
1120
|
+
* The model that request asked for (issue #61).
|
|
1121
|
+
*
|
|
1122
|
+
* Carried because the failure is remembered against the ACCOUNT, and `6004`
|
|
1123
|
+
* is an account × model condition: without this the record cannot say which
|
|
1124
|
+
* model the measurement belongs to, so the card has to present a
|
|
1125
|
+
* single-model result as account-level availability.
|
|
1126
|
+
*/
|
|
1127
|
+
modelId?: string;
|
|
1110
1128
|
}) => void;
|
|
1129
|
+
/**
|
|
1130
|
+
* Called with the FINAL serialized body of every chat request, just before it
|
|
1131
|
+
* goes upstream (issue #59).
|
|
1132
|
+
*
|
|
1133
|
+
* It exists so the plugin can record what was actually sent without the shim
|
|
1134
|
+
* having to know where that record goes: the region belongs to whoever wires
|
|
1135
|
+
* this up, and the report is a plugin concern. The body handed over is the
|
|
1136
|
+
* post-`prepareChatBody` one, because THAT is what the upstream counts.
|
|
1137
|
+
*
|
|
1138
|
+
* Fired without awaiting: a request must never wait on a diagnostic. The
|
|
1139
|
+
* callee must treat the string as read-only.
|
|
1140
|
+
*/
|
|
1141
|
+
onRequestBody?: (bodyJson: string) => void;
|
|
1111
1142
|
}
|
|
1112
1143
|
/**
|
|
1113
1144
|
* Start the loopback endpoint. Requests must carry the shim's shared secret;
|
|
@@ -1944,6 +1975,31 @@ interface WorkBuddyPoolProbe {
|
|
|
1944
1975
|
* old probe files stay readable rather than being discarded.
|
|
1945
1976
|
*/
|
|
1946
1977
|
message?: string;
|
|
1978
|
+
/**
|
|
1979
|
+
* WHICH MODEL this measurement is about (issue #61).
|
|
1980
|
+
*
|
|
1981
|
+
* The pool's "test all accounts" action probes ONE model — the region's
|
|
1982
|
+
* `targetModelId` — while `6004` is an ACCOUNT × MODEL condition: the reporter
|
|
1983
|
+
* measured two accounts where `hy4-preview-f` answered and `step-5-preview`
|
|
1984
|
+
* returned `429 / 6004` at the same moment. A row rendered as plain "可用"
|
|
1985
|
+
* therefore claims more than the measurement says, and the pool's own routing
|
|
1986
|
+
* reads that `ok` as an account-level fact.
|
|
1987
|
+
*
|
|
1988
|
+
* Storing the model id is what makes the claim checkable: the card can say
|
|
1989
|
+
* WHICH model an `ok` came from, and a reader can see that a different model
|
|
1990
|
+
* was never tested at all. `probeModel()` has always returned this field; the
|
|
1991
|
+
* write simply dropped it.
|
|
1992
|
+
*
|
|
1993
|
+
* Deliberately NOT inherited by {@link mergePoolProbe} when an update omits it
|
|
1994
|
+
* — the opposite of `accountName` and `retryAtMs`. Those two describe the
|
|
1995
|
+
* ACCOUNT (a name that a later writer could not see is still true, and a
|
|
1996
|
+
* future refresh time is still in the future), whereas the model describes
|
|
1997
|
+
* THIS measurement. Carrying an older model id forward would relabel a fresh
|
|
1998
|
+
* measurement with a model it was not taken on, which is exactly the confusion
|
|
1999
|
+
* this field exists to end. ABSENT therefore means "unknown scope", never a
|
|
2000
|
+
* guess.
|
|
2001
|
+
*/
|
|
2002
|
+
modelId?: string;
|
|
1947
2003
|
/**
|
|
1948
2004
|
* The account's display name AT THE MOMENT IT WAS MEASURED (issue #60).
|
|
1949
2005
|
*
|
|
@@ -2117,6 +2173,16 @@ declare function regionEnabledOf(value: unknown, region: WorkBuddyWebRegion): bo
|
|
|
2117
2173
|
/** Build the next `regions` settings value for a signed-in tab's save. */
|
|
2118
2174
|
declare function nextRegionSlots<Slot extends object>(regions: unknown, region: WorkBuddyWebRegion, slot: Slot): Record<string, unknown>;
|
|
2119
2175
|
declare function nextRegionEnabled(value: unknown, region: WorkBuddyWebRegion, enabled: boolean): Record<string, unknown>;
|
|
2176
|
+
/**
|
|
2177
|
+
* The two seats the credit readout can occupy (issue #62).
|
|
2178
|
+
*
|
|
2179
|
+
* `composer` is the composer tool row (`conversation.input.left`); `stats` is
|
|
2180
|
+
* the ambient dock below the composer card (`conversation.composer.dock`),
|
|
2181
|
+
* beside the shell's own round/step/token pills. Named as a union rather than a
|
|
2182
|
+
* boolean because a third seat is plausible and `showAtTop: boolean` would have
|
|
2183
|
+
* to be migrated rather than extended.
|
|
2184
|
+
*/
|
|
2185
|
+
type WorkBuddyCreditPosition = 'composer' | 'stats';
|
|
2120
2186
|
/** One credit package as the upstream returns it, node-free. */
|
|
2121
2187
|
interface WorkBuddyWebCreditPackage {
|
|
2122
2188
|
packageName: string;
|
|
@@ -2305,6 +2371,8 @@ type WorkBuddyWebUsage =
|
|
|
2305
2371
|
* "关闭不了" report.
|
|
2306
2372
|
*/
|
|
2307
2373
|
showCreditsInMainUi?: boolean;
|
|
2374
|
+
/** WHERE this region's readout sits (issue #62); absent means `composer`. */
|
|
2375
|
+
creditPosition?: WorkBuddyCreditPosition;
|
|
2308
2376
|
message?: string;
|
|
2309
2377
|
/** The persisted account id matches no local account. */
|
|
2310
2378
|
selectionLost?: boolean;
|
|
@@ -2339,6 +2407,8 @@ type WorkBuddyWebUsage =
|
|
|
2339
2407
|
* settings mirror.
|
|
2340
2408
|
*/
|
|
2341
2409
|
showCreditsInMainUi?: boolean;
|
|
2410
|
+
/** WHERE this region's readout sits (issue #62); absent means `composer`. */
|
|
2411
|
+
creditPosition?: WorkBuddyCreditPosition;
|
|
2342
2412
|
source?: 'desktop' | 'dsh';
|
|
2343
2413
|
tokenExpiresAtMs: number;
|
|
2344
2414
|
/** A saved per-region choice is in effect (false = following the app). */
|
|
@@ -2483,7 +2553,13 @@ interface WorkBuddyWebPoolAccount {
|
|
|
2483
2553
|
expiringSoon?: number;
|
|
2484
2554
|
/** When the nearest package expires, in ms. */
|
|
2485
2555
|
nearestExpiryMs?: number;
|
|
2486
|
-
/**
|
|
2556
|
+
/**
|
|
2557
|
+
* The last test of this account's target model, absent when never tested.
|
|
2558
|
+
*
|
|
2559
|
+
* The model is recorded INSIDE the probe (issue #61) rather than assumed from
|
|
2560
|
+
* the row's current setting: the setting can be changed after the test, and a
|
|
2561
|
+
* result must keep naming what it actually measured.
|
|
2562
|
+
*/
|
|
2487
2563
|
probe?: {
|
|
2488
2564
|
outcome: WorkBuddyWebProbeOutcome;
|
|
2489
2565
|
atMs: number;
|
|
@@ -2495,6 +2571,16 @@ interface WorkBuddyWebPoolAccount {
|
|
|
2495
2571
|
* guess which of the two it was.
|
|
2496
2572
|
*/
|
|
2497
2573
|
source?: 'test-batch' | 'live-request';
|
|
2574
|
+
/**
|
|
2575
|
+
* WHICH model this measurement is about (issue #61).
|
|
2576
|
+
*
|
|
2577
|
+
* `6004` is an account × model condition, so an `ok` without a model reads as
|
|
2578
|
+
* account-level availability — which is exactly the false positive the
|
|
2579
|
+
* reporter hit: the card said 可用 for two accounts whose actual model
|
|
2580
|
+
* returned `429 / 6004`. ABSENT for records written before the field existed;
|
|
2581
|
+
* the card must then say the scope is unknown rather than assume it.
|
|
2582
|
+
*/
|
|
2583
|
+
modelId?: string;
|
|
2498
2584
|
/** Only when the upstream named a time; never invented locally. */
|
|
2499
2585
|
retryAtMs?: number;
|
|
2500
2586
|
/**
|
|
@@ -2527,6 +2613,17 @@ interface WorkBuddyWebPoolAccount {
|
|
|
2527
2613
|
* result the user just watched succeed.
|
|
2528
2614
|
*/
|
|
2529
2615
|
checkedInToday?: boolean;
|
|
2616
|
+
/**
|
|
2617
|
+
* The model a TEST of this row would use (issue #61).
|
|
2618
|
+
*
|
|
2619
|
+
* Per row, because a test model can be chosen per account: the card shows it
|
|
2620
|
+
* beside the row it applies to rather than implying one model for the table.
|
|
2621
|
+
*/
|
|
2622
|
+
testModelId?: string;
|
|
2623
|
+
/** Where this row's test target came from (see {@link WorkBuddyWebPool.targetModelSource}). */
|
|
2624
|
+
testModelSource?: 'preferred' | 'free' | 'none' | 'stale';
|
|
2625
|
+
/** This row's saved override that the region no longer offers. */
|
|
2626
|
+
staleTestModelId?: string;
|
|
2530
2627
|
}
|
|
2531
2628
|
/**
|
|
2532
2629
|
* The pool's state for one region.
|
|
@@ -2556,6 +2653,14 @@ interface WorkBuddyWebPool {
|
|
|
2556
2653
|
* would run against a model the upstream does not offer.
|
|
2557
2654
|
*/
|
|
2558
2655
|
staleTargetModelId?: string;
|
|
2656
|
+
/**
|
|
2657
|
+
* The SAVED per-account test models, keyed by account id (issue #61).
|
|
2658
|
+
*
|
|
2659
|
+
* Sent verbatim rather than as the effective set: the card edits this map, and
|
|
2660
|
+
* an id whose model has left the catalog must survive a save so the user's
|
|
2661
|
+
* record of what they chose is not silently destroyed.
|
|
2662
|
+
*/
|
|
2663
|
+
targetModelIdByAccount?: Readonly<Record<string, string>>;
|
|
2559
2664
|
/**
|
|
2560
2665
|
* Where the target came from. `'stale'` means the SAVED id is no longer in
|
|
2561
2666
|
* the catalog — a distinct state from `'none'` (no free model exists),
|
|
@@ -2693,6 +2798,13 @@ interface WorkBuddyStatusRouteOptions {
|
|
|
2693
2798
|
* absent reads as ON, matching the schema's `default(true)`.
|
|
2694
2799
|
*/
|
|
2695
2800
|
showCreditsInMainUi?(region: WorkBuddyRegion): boolean;
|
|
2801
|
+
/**
|
|
2802
|
+
* WHERE this region's credit readout sits (issue #62).
|
|
2803
|
+
*
|
|
2804
|
+
* Optional, and absent reads as `composer` — the only seat before the setting
|
|
2805
|
+
* existed, so a Host that predates it renders exactly as it used to.
|
|
2806
|
+
*/
|
|
2807
|
+
creditPosition?(region: WorkBuddyRegion): WorkBuddyCreditPosition;
|
|
2696
2808
|
/**
|
|
2697
2809
|
* Send one real-volume request to each named model of a region and report what
|
|
2698
2810
|
* came back.
|
|
@@ -2840,6 +2952,8 @@ interface WorkBuddyPoolDeps {
|
|
|
2840
2952
|
preferences(region: WorkBuddyRegion): {
|
|
2841
2953
|
enabled: boolean;
|
|
2842
2954
|
targetModelId: string;
|
|
2955
|
+
/** Per-account override of `targetModelId` (issue #61). */
|
|
2956
|
+
targetModelIdByAccount?: Readonly<Record<string, string>>;
|
|
2843
2957
|
/**
|
|
2844
2958
|
* Tokens each test probe sends as saved; `0` when the user never chose.
|
|
2845
2959
|
*
|
|
@@ -2935,7 +3049,18 @@ interface WorkBuddyPoolDeps {
|
|
|
2935
3049
|
* the route handles both, because a missing reporter must degrade to the
|
|
2936
3050
|
* previous behaviour rather than to no rows at all.
|
|
2937
3051
|
*/
|
|
2938
|
-
test?(region: WorkBuddyRegion,
|
|
3052
|
+
test?(region: WorkBuddyRegion,
|
|
3053
|
+
/**
|
|
3054
|
+
* One model for the whole batch, or a per-account resolver (issue #61).
|
|
3055
|
+
*
|
|
3056
|
+
* The resolver form is what lets a batch honour a per-account test model; a
|
|
3057
|
+
* resolver that names no model yields an `unavailable` row for that account
|
|
3058
|
+
* rather than silently testing the region default.
|
|
3059
|
+
*/
|
|
3060
|
+
modelId: string | ((accountId: string) => {
|
|
3061
|
+
modelId?: string;
|
|
3062
|
+
staleModelId?: string;
|
|
3063
|
+
}), onRow?: (row: WorkBuddyPoolTestRow) => void): Promise<readonly WorkBuddyPoolTestRow[]>;
|
|
2939
3064
|
/** The region's live catalog, used to resolve the free target model. */
|
|
2940
3065
|
catalog?(region: WorkBuddyRegion): readonly WorkBuddyModelInfo[];
|
|
2941
3066
|
}
|
|
@@ -3003,6 +3128,25 @@ interface WorkBuddyRegionState {
|
|
|
3003
3128
|
* written before this switch existed keeps whatever the default was.
|
|
3004
3129
|
*/
|
|
3005
3130
|
showCreditsInMainUi?: boolean;
|
|
3131
|
+
/**
|
|
3132
|
+
* WHERE this region's credit readout sits (issue #62).
|
|
3133
|
+
*
|
|
3134
|
+
* Two seats, because the first one is not always available:
|
|
3135
|
+
*
|
|
3136
|
+
* - `composer` — the composer tool row (`conversation.input.left`), shared
|
|
3137
|
+
* with the shell's own controls. It is the closer, more glanceable seat,
|
|
3138
|
+
* and it is the default so nothing moves for anyone who does not choose.
|
|
3139
|
+
* - `stats` — the ambient dock below the composer card
|
|
3140
|
+
* (`conversation.composer.dock`), where the shell renders its own
|
|
3141
|
+
* round/step/token pills. That row is a LIST seat whose shipped occupant
|
|
3142
|
+
* registers separately, so a third-party plugin that ALSO parks something
|
|
3143
|
+
* in the composer row cannot crowd this readout out of existence.
|
|
3144
|
+
*
|
|
3145
|
+
* The report behind this (issue #62) was exactly that: with another plugin
|
|
3146
|
+
* installed, the readout vanished from the composer row. Making the seat a
|
|
3147
|
+
* choice is what keeps one plugin's presence from deciding another's.
|
|
3148
|
+
*/
|
|
3149
|
+
creditPosition?: WorkBuddyCreditPosition;
|
|
3006
3150
|
/** The last-refreshed directory for this region; what the card displays. */
|
|
3007
3151
|
lastCatalog?: WorkBuddyModelInfo[];
|
|
3008
3152
|
/** The user's selection in this region, as model ids. */
|
|
@@ -3045,6 +3189,18 @@ interface WorkBuddyPoolPreferences {
|
|
|
3045
3189
|
enabled?: boolean;
|
|
3046
3190
|
/** Model id to test; `''` means auto-pick a free model from this region. */
|
|
3047
3191
|
targetModelId?: string;
|
|
3192
|
+
/**
|
|
3193
|
+
* Per-account override of {@link targetModelId}, keyed by account id (#61).
|
|
3194
|
+
*
|
|
3195
|
+
* `6004` is an ACCOUNT × MODEL condition, so "can this account serve" has no
|
|
3196
|
+
* single answer: the reporter measured two accounts where one model answered
|
|
3197
|
+
* and another returned `429 / 6004` in the same second. The region-wide target
|
|
3198
|
+
* stays the default — this map only says "for THIS account, test THAT model",
|
|
3199
|
+
* which is what makes the pool's verdict match the model the user is actually
|
|
3200
|
+
* chatting with. An id that is no longer in the catalog is reported as stale
|
|
3201
|
+
* rather than replaced, so no credits are spent on a model nobody chose.
|
|
3202
|
+
*/
|
|
3203
|
+
targetModelIdByAccount?: Record<string, string>;
|
|
3048
3204
|
/**
|
|
3049
3205
|
* How much input a probe sends, in tokens — the pool's biggest single knob.
|
|
3050
3206
|
*
|
|
@@ -3216,4 +3372,4 @@ declare function legacyAttributionRegion(value: Config, accountsFor: (region: Wo
|
|
|
3216
3372
|
*/
|
|
3217
3373
|
declare function apply(ctx: Context, config: Config): void;
|
|
3218
3374
|
//#endregion
|
|
3219
|
-
export { CREDENTIAL_REJECTED_CODE, Config, DEFAULT_PROBE_INPUT_TOKENS, ENCRYPTED_CREDENTIAL_CODE, FALLBACK_WORKBUDDY_MODELS, FALLBACK_WORKBUDDY_MODELS_GLOBAL, NATIVE_MODALITY_BY_MODEL_ID, PROBE_INPUT_TOKEN_CHOICES, PROBE_MAX_TOKENS, PROBE_SYSTEM_PROMPT, REFUSES_OFF_MODEL_IDS, type UpstreamErrorKind, WORKBUDDY_ACCOUNTS_REFRESH_PATH, WORKBUDDY_APP_EXECUTABLE_ENV, WORKBUDDY_AUTH_FILENAME, WORKBUDDY_AUTH_FILE_ENV, WORKBUDDY_CHECKIN_PATH, WORKBUDDY_CONNECT_VERSION, WORKBUDDY_GLOBAL_PROVIDER, WORKBUDDY_HOST_HEARTBEAT_FILENAME, WORKBUDDY_MODELS_REFRESH_PATH, WORKBUDDY_PROBE_PATH, WORKBUDDY_PROVIDER, WORKBUDDY_PROVIDERS, WORKBUDDY_PROVIDER_DISPLAY_NAMES, WORKBUDDY_REGIONS, WORKBUDDY_REGION_PARAM, WORKBUDDY_SETTINGS_NS, WORKBUDDY_STREAM_IDLE_TIMEOUT_MS, WORKBUDDY_USAGE_PATH, type WorkBuddyAccountChoice, type WorkBuddyAdapter, type WorkBuddyAuthStatus, type WorkBuddyCandidateFailure, WorkBuddyCatalog, type WorkBuddyChatResult, type WorkBuddyCredential, type WorkBuddyCredentialRecovery, WorkBuddyCredentialRejectedError, WorkBuddyCredentialStore, type WorkBuddyCreditPackage, type WorkBuddyCredits, WorkBuddyEncryptedCredentialError, type WorkBuddyEncryptedField, type WorkBuddyHostHeartbeat, type WorkBuddyModelInfo, type WorkBuddyNativeModality, WorkBuddyPoolPreferences, type WorkBuddyProbeClient, type WorkBuddyProbeOutcome, type WorkBuddyProbeResult, type WorkBuddyProbeStore, type WorkBuddyReasoning, type WorkBuddyRecoveryCandidate, type WorkBuddyRefreshOutcome, WorkBuddyRegionState, type WorkBuddyShim, type WorkBuddyStatusRouteOptions, type WorkBuddyStoreOptions, WorkBuddyUpstreamClient, type WorkBuddyUpstreamModel, type WorkBuddyUsabilityProbeOptions, apply, asVolatile, authFileName, classifyUpstreamError, clearAtRestKeyCache, clearHostHeartbeat, cooldownOf, createAccountUsabilityProbe, createWorkBuddyAdapter, createWorkBuddyShim, creditOfStream, defaultDesktopAuthCandidates, defaultDesktopAuthDirs, defaultDesktopAuthPath, defaultOffModelIds, deriveAtRestKey, deriveAtRestKeyId, deriveCatalog, fallbackModelsFor, fetchAtRestKeyPayload, findWorkbuddyAppExecutable, hasEncryptedCredentialFields, imageDefaultFor, inject, isCredentialRejectedError, isEncryptedCredentialError, isEncryptedFieldWrapper, isHeartbeatProcessAlive, isWorkbuddyBundle, knownRegionOf, legacyAttributionRegion, legacyWorkbuddyOwnAuthPath, macosBundleExecutable, macosNestedAppBundles, name, nativeModalityOf, nextRegionEnabled, nextRegionSlots, offDefaultFor, openEncryptedField, outcomeOfFailure, parseCreditMultiplier, parseReasoning, parseRetryAfter, parseUpstreamModel, parseWorkBuddyAuth, prepareChatBody, probeModel, probeRequestBody, probeSucceeded, processStartTimeMs, readAtRestKey, readHostHeartbeat, regionCleared, regionEnabled, regionEnabledOf, regionOf, regionOfProvider, regionOfStatusUrl, regionStateOf, registerWorkBuddyStatusRoute, resolveCredentialRecovery, selectAccountFor, settingsNamespaceOf, toPersistedWorkBuddyModel, unwrapVolatileDeep, withEffectiveOff, withWorkBuddyRegion, workBuddyDisplayName, workBuddyModelInput, workBuddyThinkingLevelMap, workBuddyWebStatus, workbuddyAccountId, workbuddyAppExecutableCandidates, workbuddyHostHeartbeatPath, workbuddyOwnAuthPath, writeHostHeartbeat };
|
|
3375
|
+
export { CREDENTIAL_REJECTED_CODE, Config, DEFAULT_PROBE_INPUT_TOKENS, ENCRYPTED_CREDENTIAL_CODE, FALLBACK_WORKBUDDY_MODELS, FALLBACK_WORKBUDDY_MODELS_GLOBAL, NATIVE_MODALITY_BY_MODEL_ID, PROBE_INPUT_TOKEN_CHOICES, PROBE_MAX_TOKENS, PROBE_SYSTEM_PROMPT, REFUSES_OFF_MODEL_IDS, type UpstreamErrorKind, WORKBUDDY_ACCOUNTS_REFRESH_PATH, WORKBUDDY_APP_EXECUTABLE_ENV, WORKBUDDY_AUTH_FILENAME, WORKBUDDY_AUTH_FILE_ENV, WORKBUDDY_CHECKIN_PATH, WORKBUDDY_CONNECT_VERSION, WORKBUDDY_GLOBAL_PROVIDER, WORKBUDDY_HOST_HEARTBEAT_FILENAME, WORKBUDDY_MODELS_REFRESH_PATH, WORKBUDDY_PROBE_PATH, WORKBUDDY_PROVIDER, WORKBUDDY_PROVIDERS, WORKBUDDY_PROVIDER_DISPLAY_NAMES, WORKBUDDY_REGIONS, WORKBUDDY_REGION_PARAM, WORKBUDDY_SETTINGS_NS, WORKBUDDY_STREAM_IDLE_TIMEOUT_MS, WORKBUDDY_USAGE_PATH, type WorkBuddyAccountChoice, type WorkBuddyAdapter, type WorkBuddyAuthStatus, type WorkBuddyCandidateFailure, WorkBuddyCatalog, type WorkBuddyChatResult, type WorkBuddyCredential, type WorkBuddyCredentialRecovery, WorkBuddyCredentialRejectedError, WorkBuddyCredentialStore, type WorkBuddyCreditPackage, type WorkBuddyCredits, WorkBuddyEncryptedCredentialError, type WorkBuddyEncryptedField, type WorkBuddyHostHeartbeat, type WorkBuddyModelInfo, type WorkBuddyNativeModality, WorkBuddyPoolPreferences, type WorkBuddyProbeClient, type WorkBuddyProbeOutcome, type WorkBuddyProbeResult, type WorkBuddyProbeStore, type WorkBuddyReasoning, type WorkBuddyRecoveryCandidate, type WorkBuddyRefreshOutcome, WorkBuddyRegionState, type WorkBuddyShim, type WorkBuddyStatusRouteOptions, type WorkBuddyStoreOptions, WorkBuddyUpstreamClient, type WorkBuddyUpstreamModel, type WorkBuddyUsabilityProbeOptions, apply, asVolatile, authFileName, classifyUpstreamError, clearAtRestKeyCache, clearHostHeartbeat, cooldownOf, createAccountUsabilityProbe, createWorkBuddyAdapter, createWorkBuddyShim, creditOfStream, defaultDesktopAuthCandidates, defaultDesktopAuthDirs, defaultDesktopAuthPath, defaultOffModelIds, deriveAtRestKey, deriveAtRestKeyId, deriveCatalog, fallbackModelsFor, fetchAtRestKeyPayload, findWorkbuddyAppExecutable, hasEncryptedCredentialFields, imageDefaultFor, inject, isCredentialRejectedError, isEncryptedCredentialError, isEncryptedFieldWrapper, isHeartbeatProcessAlive, isWorkbuddyBundle, knownRegionOf, legacyAttributionRegion, legacyWorkbuddyOwnAuthPath, macosBundleExecutable, macosNestedAppBundles, modelIdOfBody, name, nativeModalityOf, nextRegionEnabled, nextRegionSlots, offDefaultFor, openEncryptedField, outcomeOfFailure, parseCreditMultiplier, parseReasoning, parseRetryAfter, parseUpstreamModel, parseWorkBuddyAuth, prepareChatBody, probeModel, probeRequestBody, probeSucceeded, processStartTimeMs, readAtRestKey, readHostHeartbeat, regionCleared, regionEnabled, regionEnabledOf, regionOf, regionOfProvider, regionOfStatusUrl, regionStateOf, registerWorkBuddyStatusRoute, resolveCredentialRecovery, selectAccountFor, settingsNamespaceOf, toPersistedWorkBuddyModel, unwrapVolatileDeep, withEffectiveOff, withWorkBuddyRegion, workBuddyDisplayName, workBuddyModelInput, workBuddyThinkingLevelMap, workBuddyWebStatus, workbuddyAccountId, workbuddyAppExecutableCandidates, workbuddyHostHeartbeatPath, workbuddyOwnAuthPath, writeHostHeartbeat };
|