@eddyskywalker/dsh-chatgpt-subscription 0.8.2 → 0.8.4
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 +17 -0
- package/README.md +1 -1
- package/lib/client.js +87 -1
- package/lib/client.js.map +1 -1
- package/lib/index.js +758 -166
- package/lib/types/client/CodexSubscriptionSection.d.ts.map +1 -1
- package/lib/types/client/antigravity/AntigravitySection.d.ts.map +1 -1
- package/lib/types/client/command-code/CommandCodeSection.d.ts.map +1 -1
- package/lib/types/client/common/quota-follow-up.d.ts +30 -0
- package/lib/types/client/common/quota-follow-up.d.ts.map +1 -0
- package/lib/types/client/kimi-code/KimiCodeSection.d.ts.map +1 -1
- package/lib/types/client/workbuddy/WorkBuddySection.d.ts.map +1 -1
- package/lib/types/client/zhipu/ZhipuSection.d.ts.map +1 -1
- package/lib/types/host/antigravity/oauth.d.ts +15 -1
- package/lib/types/host/antigravity/oauth.d.ts.map +1 -1
- package/lib/types/host/antigravity/port-constants.d.ts +20 -0
- package/lib/types/host/antigravity/port-constants.d.ts.map +1 -0
- package/lib/types/host/antigravity/routes.d.ts.map +1 -1
- package/lib/types/host/command-code/client.d.ts +9 -1
- package/lib/types/host/command-code/client.d.ts.map +1 -1
- package/lib/types/host/command-code/routes.d.ts.map +1 -1
- package/lib/types/host/common/catalog-snapshot.d.ts +61 -0
- package/lib/types/host/common/catalog-snapshot.d.ts.map +1 -0
- package/lib/types/host/common/credential-read-cache.d.ts +73 -0
- package/lib/types/host/common/credential-read-cache.d.ts.map +1 -0
- package/lib/types/host/common/quota-refresh.d.ts +35 -0
- package/lib/types/host/common/quota-refresh.d.ts.map +1 -0
- package/lib/types/host/common/same-origin.d.ts +30 -0
- package/lib/types/host/common/same-origin.d.ts.map +1 -0
- package/lib/types/host/credential-store-secret-service.d.ts +1 -0
- package/lib/types/host/credential-store-secret-service.d.ts.map +1 -1
- package/lib/types/host/kimi-code/client.d.ts.map +1 -1
- package/lib/types/host/kimi-code/routes.d.ts.map +1 -1
- package/lib/types/host/routes.d.ts.map +1 -1
- package/lib/types/host/token-store-macos.d.ts +9 -0
- package/lib/types/host/token-store-macos.d.ts.map +1 -1
- package/lib/types/host/token-store-windows.d.ts +8 -0
- package/lib/types/host/token-store-windows.d.ts.map +1 -1
- package/lib/types/host/usage-service.d.ts +19 -1
- package/lib/types/host/usage-service.d.ts.map +1 -1
- package/lib/types/host/workbuddy/client.d.ts +9 -1
- package/lib/types/host/workbuddy/client.d.ts.map +1 -1
- package/lib/types/host/workbuddy/routes.d.ts.map +1 -1
- package/lib/types/host/zhipu/routes.d.ts.map +1 -1
- package/lib/types/shared/antigravity-contracts.d.ts +8 -0
- package/lib/types/shared/antigravity-contracts.d.ts.map +1 -1
- package/lib/types/shared/command-code-contracts.d.ts +8 -0
- package/lib/types/shared/command-code-contracts.d.ts.map +1 -1
- package/lib/types/shared/contracts.d.ts +8 -0
- package/lib/types/shared/contracts.d.ts.map +1 -1
- package/lib/types/shared/kimi-code-contracts.d.ts +8 -0
- package/lib/types/shared/kimi-code-contracts.d.ts.map +1 -1
- package/lib/types/shared/workbuddy-contracts.d.ts +8 -0
- package/lib/types/shared/workbuddy-contracts.d.ts.map +1 -1
- package/lib/types/shared/zhipu-contracts.d.ts +8 -0
- package/lib/types/shared/zhipu-contracts.d.ts.map +1 -1
- package/package.json +32 -33
- package/lib/types/host/compaction-patch.d.ts +0 -17
- package/lib/types/host/compaction-patch.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodexSubscriptionSection.d.ts","sourceRoot":"","sources":["../../../src/client/CodexSubscriptionSection.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,KAAK,EAAyB,oBAAoB,EAAE,eAAe,EAAkB,cAAc,EAA8D,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"CodexSubscriptionSection.d.ts","sourceRoot":"","sources":["../../../src/client/CodexSubscriptionSection.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,KAAK,EAAyB,oBAAoB,EAAE,eAAe,EAAkB,cAAc,EAA8D,MAAM,wBAAwB,CAAA;AAOtM,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAA;AAGjC,KAAK,KAAK,GAAG,YAAY,CAAC,kBAAkB,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,CAAA;AACtE,KAAK,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,GAC9F,aAAa,GAAG,QAAQ,GAAG,gBAAgB,GAAG,UAAU,GAAG,IAAI,CAAA;AACnE,KAAK,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;AAE3B,wBAAgB,wBAAwB,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAqiBxE;AAiBD,wBAAgB,YAAY,CAAC,OAAO,EAAE,oBAAoB,GAAG,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,MAAM,CAO5F;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,MAAM,CAO7F;AAcD,wBAAgB,gBAAgB,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAAE,YAAY,EAAE,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAUzN;AAED,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,cAAc,CAAC;IAAC,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAczH;AAMD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,MAAM,CAYpF;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOlE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,SAA4B,GAAG,MAAM,GAAG,IAAI,CAGxG;AAoCD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAgBtE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AntigravitySection.d.ts","sourceRoot":"","sources":["../../../../src/client/antigravity/AntigravitySection.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"AntigravitySection.d.ts","sourceRoot":"","sources":["../../../../src/client/antigravity/AntigravitySection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAYvE,UAAU,KAAK;IACb,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;CAChC;AAiBD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOlE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIpD;AAoCD,wBAAgB,kBAAkB,CAAC,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,YAAY,CAslBnG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandCodeSection.d.ts","sourceRoot":"","sources":["../../../../src/client/command-code/CommandCodeSection.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"CommandCodeSection.d.ts","sourceRoot":"","sources":["../../../../src/client/command-code/CommandCodeSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAA;AA2BvE,UAAU,KAAK;IACb,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;CAChC;AAiBD,wEAAwE;AACxE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOlE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIpD;AA2CD,wBAAgB,kBAAkB,CAAC,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,YAAY,CAynBnG"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One follow-up poll after a status answer that carried a background refresh.
|
|
3
|
+
*
|
|
4
|
+
* The host answers a status card from the snapshot it already has and refreshes
|
|
5
|
+
* the quota behind that answer, so a tab renders immediately instead of waiting
|
|
6
|
+
* on the upstream request. The refreshed numbers would otherwise only appear on
|
|
7
|
+
* the next 60 s poll, so an answer that reports a refresh in flight schedules
|
|
8
|
+
* one short follow-up.
|
|
9
|
+
*
|
|
10
|
+
* The chain is bounded. A refresh that keeps failing leaves the snapshot aged,
|
|
11
|
+
* so every answer would keep asking for a follow-up; after a few consecutive
|
|
12
|
+
* attempts the surface falls back to its ordinary polling and stops hammering
|
|
13
|
+
* the host.
|
|
14
|
+
*/
|
|
15
|
+
export interface QuotaFollowUp {
|
|
16
|
+
/**
|
|
17
|
+
* Record one status answer.
|
|
18
|
+
*
|
|
19
|
+
* @param refreshing - whether the host reported a refresh behind this answer.
|
|
20
|
+
* @param reload - how to ask again; used only when a follow-up is owed.
|
|
21
|
+
*/
|
|
22
|
+
observe(refreshing: boolean, reload: () => void): void;
|
|
23
|
+
/** Drop any pending follow-up; call when the surface unmounts. */
|
|
24
|
+
cancel(): void;
|
|
25
|
+
}
|
|
26
|
+
export declare function createQuotaFollowUp(options?: {
|
|
27
|
+
delayMs?: number;
|
|
28
|
+
maxAttempts?: number;
|
|
29
|
+
}): QuotaFollowUp;
|
|
30
|
+
//# sourceMappingURL=quota-follow-up.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quota-follow-up.d.ts","sourceRoot":"","sources":["../../../../src/client/common/quota-follow-up.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;IACtD,kEAAkE;IAClE,MAAM,IAAI,IAAI,CAAA;CACf;AAED,wBAAgB,mBAAmB,CACjC,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GACvD,aAAa,CA4Bf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KimiCodeSection.d.ts","sourceRoot":"","sources":["../../../../src/client/kimi-code/KimiCodeSection.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"KimiCodeSection.d.ts","sourceRoot":"","sources":["../../../../src/client/kimi-code/KimiCodeSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAgBvE,UAAU,KAAK;IACb,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;CAChC;AAiBD,wEAAwE;AACxE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOlE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIpD;AAsED,wBAAgB,eAAe,CAAC,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,YAAY,CA+tBhG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkBuddySection.d.ts","sourceRoot":"","sources":["../../../../src/client/workbuddy/WorkBuddySection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAChF,OAAO,KAAK,EAGV,oBAAoB,EACpB,wBAAwB,EAEzB,MAAM,qCAAqC,CAAA;
|
|
1
|
+
{"version":3,"file":"WorkBuddySection.d.ts","sourceRoot":"","sources":["../../../../src/client/workbuddy/WorkBuddySection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAChF,OAAO,KAAK,EAGV,oBAAoB,EACpB,wBAAwB,EAEzB,MAAM,qCAAqC,CAAA;AAwB5C,UAAU,KAAK;IACb,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;CAChC;AA4ED,wEAAwE;AACxE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOlE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIpD;AAoCD,gFAAgF;AAChF,wBAAgB,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAInD;AAED,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAIxD;AAED,+EAA+E;AAC/E,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,wBAAwB,CAAA;IAC/B,4DAA4D;IAC5D,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,oBAAoB,EAAE,GAAG,qBAAqB,EAAE,CAY9F;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,wBAAwB,GAAG,IAAI,GAAG,SAAS,EACvD,MAAM,EAAE,oBAAoB,EAAE,GAC7B,wBAAwB,GAAG,IAAI,CAIjC;AAYD,wBAAgB,gBAAgB,CAAC,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,YAAY,CAmzBjG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZhipuSection.d.ts","sourceRoot":"","sources":["../../../../src/client/zhipu/ZhipuSection.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ZhipuSection.d.ts","sourceRoot":"","sources":["../../../../src/client/zhipu/ZhipuSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAA;AA2BvE,UAAU,KAAK;IACb,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;CAChC;AAiBD,wEAAwE;AACxE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOlE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIpD;AAoCD,wBAAgB,YAAY,CAAC,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,YAAY,CAmmB7F"}
|
|
@@ -12,8 +12,20 @@ export interface WebLoginFlowState {
|
|
|
12
12
|
progress?: string;
|
|
13
13
|
}
|
|
14
14
|
export declare function callbackPort(): number;
|
|
15
|
+
/**
|
|
16
|
+
* First usable loopback port for the callback listener.
|
|
17
|
+
*
|
|
18
|
+
* Windows (Hyper-V/WinNAT) dynamically reserves TCP port ranges that change on
|
|
19
|
+
* every reboot, and the CLI's default port can land inside one — `listen` then
|
|
20
|
+
* fails with `EACCES: permission denied ::1:51121` and browser authorization
|
|
21
|
+
* never opens. A fixed port therefore cannot be relied on; the Google redirect
|
|
22
|
+
* URI carries whatever port this returns, so any free loopback port works. A
|
|
23
|
+
* configured `DSH_ANTIGRAVITY_CALLBACK_PORT` still wins — callers who set it
|
|
24
|
+
* accept that the port must be usable.
|
|
25
|
+
*/
|
|
26
|
+
export declare function resolveCallbackPort(attempts?: number, host?: string): Promise<number>;
|
|
15
27
|
export declare function resolveCallbackHost(raw?: string | undefined): string;
|
|
16
|
-
export declare function redirectUri(): string;
|
|
28
|
+
export declare function redirectUri(port?: number, host?: string): string;
|
|
17
29
|
export declare function clientId(): string;
|
|
18
30
|
export declare function clientSecret(): string;
|
|
19
31
|
export declare function generatePKCE(): {
|
|
@@ -28,6 +40,8 @@ export declare function startCallbackServer(expectedState: string): Promise<{
|
|
|
28
40
|
code: string;
|
|
29
41
|
state: string;
|
|
30
42
|
}>;
|
|
43
|
+
/** The redirect URI the provider receives: the probed port, not the default. */
|
|
44
|
+
callbackUrl: string;
|
|
31
45
|
}>;
|
|
32
46
|
export declare function extractGoogleValidationUrl(text: string): string | undefined;
|
|
33
47
|
export declare function assertFreeTierEligible(payload: LoadCodeAssistDetailResult): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../../src/host/antigravity/oauth.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../../src/host/antigravity/oauth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loopback callback ports for provider sign-in flows.
|
|
3
|
+
*
|
|
4
|
+
* Windows (Hyper-V/WinNAT) dynamically reserves TCP port ranges that change on
|
|
5
|
+
* every reboot. A fixed callback port can land inside one and `listen` fails
|
|
6
|
+
* with `EACCES` — browser authorization never opens. Flows therefore probe for
|
|
7
|
+
* a usable port instead of assuming the default is free; the redirect URI the
|
|
8
|
+
* provider receives carries whichever port was probed.
|
|
9
|
+
*/
|
|
10
|
+
/** Default loopback port the Antigravity CLI's own flow uses. */
|
|
11
|
+
export declare const DEFAULT_CALLBACK_PORT = 51121;
|
|
12
|
+
/**
|
|
13
|
+
* How many consecutive ports one probe covers.
|
|
14
|
+
*
|
|
15
|
+
* Windows excluded-port ranges are reserved in blocks of up to 100 ports, so a
|
|
16
|
+
* probe narrower than that can stop inside a block and still fail. 128 covers
|
|
17
|
+
* any single block the default port can start in.
|
|
18
|
+
*/
|
|
19
|
+
export declare const CALLBACK_PORT_ATTEMPTS = 128;
|
|
20
|
+
//# sourceMappingURL=port-constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"port-constants.d.ts","sourceRoot":"","sources":["../../../../src/host/antigravity/port-constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,iEAAiE;AACjE,eAAO,MAAM,qBAAqB,QAAQ,CAAA;AAE1C;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../src/host/antigravity/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,KAAK,0BAA0B,EAAE,MAAM,kBAAkB,CAAA;AAC/G,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../src/host/antigravity/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,KAAK,0BAA0B,EAAE,MAAM,kBAAkB,CAAA;AAC/G,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAKpD,OAAO,KAAK,EAA0B,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AA+BzG,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,mBAAmB,EAC1B,aAAa,EAAE,sBAAsB,EACrC,WAAW,CAAC,EAAE,0BAA0B,EACxC,WAAW,mBAAoD,GAC9D,OAAO,CAAC,oBAAoB,CAAC,CAoC/B;AAED,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,mBAAmB,EAC1B,aAAa,EAAE,sBAAsB,EACrC,WAAW,CAAC,EAAE,0BAA0B,EACxC,OAAO,GAAE,OAAO,KAAa,EAC7B,WAAW,mBAAoD,GAC9D,MAAM,IAAI,CA6IZ"}
|
|
@@ -58,7 +58,15 @@ export declare function parseProviderModels(payload: unknown): CommandCodeCatalo
|
|
|
58
58
|
* and is what fills the settings card's context-window defaults.
|
|
59
59
|
*/
|
|
60
60
|
export declare function fetchProviderModels(options?: CommandCodeRequestOptions): Promise<CommandCodeCatalogModel[]>;
|
|
61
|
-
/** Cached catalog with a TTL; a failed refresh keeps the previous snapshot.
|
|
61
|
+
/** Cached catalog with a TTL; a failed refresh keeps the previous snapshot.
|
|
62
|
+
*
|
|
63
|
+
* On the first cache miss of a process the persisted snapshot is rehydrated
|
|
64
|
+
* first, so a restart serves the previous listing without waiting on the
|
|
65
|
+
* network. An expired snapshot still answers immediately (stale) while a
|
|
66
|
+
* refresh runs in the background — the catalog is not fast-moving data, and
|
|
67
|
+
* waiting on an unreachable endpoint turned a restart into the full discovery
|
|
68
|
+
* timeout on every model resolution.
|
|
69
|
+
*/
|
|
62
70
|
export declare function loadProviderModels(options?: CommandCodeRequestOptions & {
|
|
63
71
|
force?: boolean;
|
|
64
72
|
}): Promise<CommandCodeCatalogModel[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/host/command-code/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAYL,WAAW,EAWZ,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,mBAAmB,EAAE,KAAK,uBAAuB,EAA+B,MAAM,kBAAkB,CAAA;AAEjH,OAAO,KAAK,EACV,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,wCAAwC,CAAA;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/host/command-code/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAYL,WAAW,EAWZ,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,mBAAmB,EAAE,KAAK,uBAAuB,EAA+B,MAAM,kBAAkB,CAAA;AAEjH,OAAO,KAAK,EACV,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,wCAAwC,CAAA;AAK/C,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAA;IACtB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,MAAM,CAAC,EAAE,iBAAiB,CAAA;CAC3B;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACjC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAcxB;AAqGD,qFAAqF;AACrF,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,GAAE,OAAO,CAAC,kBAAkB,CAAM,GAAG,kBAAkB,CA8B5G;AA8HD,yFAAyF;AACzF,wBAAgB,WAAW,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,GAAG,IAAI,CAOvE;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAIvE;AAED,+DAA+D;AAC/D,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAI1E;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB,EAAE,CAKhE;AA+GD,sFAAsF;AACtF,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAW5D;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,sBAAsB,EAAE,CAqB5E;AAED;;;;;;;;GAQG;AACH,8EAA8E;AAC9E,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAE5E;AAyCD,sDAAsD;AACtD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,uBAAuB,EAAE,CAgB/E;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAWpC;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,GAAE,yBAAyB,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAC5D,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAqCpC;AAuBD,wBAAgB,gBAAgB,IAAI,uBAAuB,EAAE,CAE5D;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAIzC;AAED,8EAA8E;AAC9E,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,SAAS,uBAAuB,EAAE,EAC3C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,MAAM,CAKR;AA0BD,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,yBAA8B,GAAG,OAAO,CAAC,OAAO,CAAC,CAEhG;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,kBAAkB,CAAC,CAG7B;AAiBD;;;GAGG;AACH,wBAAgB,cAAc,IAAI,uBAAuB,GAAG,SAAS,CAEpE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,uBAAuB,GAAG,SAAS,CAGhG;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAKvC;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAA;IACtB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,GAAE,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAA6B,EACpE,gBAAgB,GAAE,OAAO,KAAK,GAAG,wBAAgC,EACjE,KAAK,UAAQ,EACb,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,uBAAuB,CAAC,CAkGlC;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,SAAS,uBAAuB,EAAE,EAC3C,eAAe,EAAE,SAAS,MAAM,EAAE,EAClC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,KAAK,CAAC;IACP,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,aAAa,EAAE,MAAM,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,IAAI,EAAE,QAAQ,GAAG,WAAW,CAAA;CAC7B,CAAC,CAgBD;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../src/host/command-code/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../src/host/command-code/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAIlD,OAAO,EAAmB,WAAW,EAAE,aAAa,EAAqC,MAAM,YAAY,CAAA;AAC3G,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,uBAAuB,EAE5B,KAAK,0BAA0B,EAChC,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,EAKL,gBAAgB,EAMjB,MAAM,aAAa,CAAA;AAGpB,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAqDrG;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,OAAO,EAAE,SAAS,uBAAuB,EAAE,EAC3C,OAAO,UAAO,GACb,MAAM,EAAE,CAUV;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAA;IACtB,sFAAsF;IACtF,OAAO,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,CAAA;IACnC,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAA;IAChD;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,sBAAsB,CAAA;CACrC;AAMD,mFAAmF;AACnF,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,mBAAmB,EAC1B,aAAa,EAAE,sBAAsB,EACrC,WAAW,CAAC,EAAE,0BAA0B,EACxC,OAAO,GAAE,wBAA6B,EACtC,WAAW,GAAE,sBAAsB,GAAG,SAA+B,GACpE,OAAO,CAAC,oBAAoB,CAAC,CA0E/B;AAED,2EAA2E;AAC3E,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,mBAAmB,EAC1B,aAAa,EAAE,sBAAsB,EACrC,WAAW,CAAC,EAAE,0BAA0B,EACxC,OAAO,GAAE,wBAA6B,EACtC,WAAW,GAAE,sBAAsB,GAAG,SAA+B,GACpE,MAAM,IAAI,CA8OZ;AAED,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,gBAAgB,EAAE,CAAA"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persistent snapshot for one provider's live model catalog.
|
|
3
|
+
*
|
|
4
|
+
* The in-memory catalog caches keep a process alive between requests, but they
|
|
5
|
+
* start cold: on the first call after a restart (or a plugin reinstall) the
|
|
6
|
+
* picker and the settings page both wait on the upstream listing before they
|
|
7
|
+
* can render anything, and an unreachable endpoint turns that wait into the
|
|
8
|
+
* full discovery timeout — "the model server is unavailable" on a fresh
|
|
9
|
+
* install. The catalog is not fast-moving data, so the last successful listing
|
|
10
|
+
* is persisted to `<DSH_HOME>/storages/` and rehydrated into the in-memory
|
|
11
|
+
* cache on first use. A snapshot the caller can read is therefore available
|
|
12
|
+
* from the very first call, with no network in the path.
|
|
13
|
+
*
|
|
14
|
+
* Writes are best-effort: persistence is an optimization, never a capability.
|
|
15
|
+
* A read-only home or a locked file must not fail the fetch that produced the
|
|
16
|
+
* snapshot.
|
|
17
|
+
*/
|
|
18
|
+
/** File name of the persisted snapshot for one catalog. */
|
|
19
|
+
export declare function catalogSnapshotPath(name: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Snapshot name for one catalog *and* one credential scope.
|
|
22
|
+
*
|
|
23
|
+
* A persisted snapshot answers before any credential is read — that is the whole
|
|
24
|
+
* point of it — so the file itself has to carry the scope it was fetched under.
|
|
25
|
+
* Otherwise the first call after a restart, for any account, is answered by
|
|
26
|
+
* whatever listing some other scope happened to persist last: a Kimi listing
|
|
27
|
+
* fetched for the mainland-cn endpoint would answer a global caller with models
|
|
28
|
+
* and context windows that region does not serve, and a Command Code listing
|
|
29
|
+
* fetched against one API environment would answer the other.
|
|
30
|
+
*
|
|
31
|
+
* The scope is part of the file name rather than of the payload because a caller
|
|
32
|
+
* that cannot name the account — the harness resolves this catalog with no token
|
|
33
|
+
* at all — still has to find the snapshot its own scope owns.
|
|
34
|
+
*
|
|
35
|
+
* Everything outside `[a-z0-9]` is folded to `_`, so no scope can escape the
|
|
36
|
+
* `storages` directory.
|
|
37
|
+
*/
|
|
38
|
+
export declare function catalogSnapshotName(base: string, scope: string): string;
|
|
39
|
+
/**
|
|
40
|
+
* Read the persisted snapshot for one catalog.
|
|
41
|
+
*
|
|
42
|
+
* Shape errors and unreadable files both return `undefined` — the caller keeps
|
|
43
|
+
* its in-memory state, and the next successful fetch overwrites the file.
|
|
44
|
+
*/
|
|
45
|
+
export declare function readCatalogSnapshot<T>(name: string, parseModels: (value: unknown) => T[] | undefined): Promise<{
|
|
46
|
+
fetchedAt: number;
|
|
47
|
+
models: T[];
|
|
48
|
+
} | undefined>;
|
|
49
|
+
/** Persist one snapshot; a failure is logged nowhere and never thrown. */
|
|
50
|
+
export declare function writeCatalogSnapshot<T>(name: string, models: T[], fetchedAt: number): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Warm an in-memory cache from the persisted snapshot when it is fresher than
|
|
53
|
+
* what the cache currently holds. Called lazily on the first cache miss of a
|
|
54
|
+
* process, so a restart serves the previous listing without waiting on the
|
|
55
|
+
* network.
|
|
56
|
+
*
|
|
57
|
+
* @returns the snapshot's `fetchedAt`, or `0` when no usable snapshot exists —
|
|
58
|
+
* the caller then fetches as before.
|
|
59
|
+
*/
|
|
60
|
+
export declare function rehydrateCatalogCache<T>(name: string, parseModels: (value: unknown) => T[] | undefined, accept: (fetchedAt: number, models: T[]) => void, currentFetchedAt: number): Promise<number>;
|
|
61
|
+
//# sourceMappingURL=catalog-snapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog-snapshot.d.ts","sourceRoot":"","sources":["../../../../src/host/common/catalog-snapshot.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;GAgBG;AAEH,2DAA2D;AAC3D,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGvE;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,CAAC,EACzC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,EAAE,GAAG,SAAS,GAC/C,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,CAAC,EAAE,CAAA;CAAE,GAAG,SAAS,CAAC,CAczD;AAED,0EAA0E;AAC1E,wBAAsB,oBAAoB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUzG;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CAAC,CAAC,EAC3C,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,EAAE,GAAG,SAAS,EAChD,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,IAAI,EAChD,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,CAAC,CAKjB"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Identity a file-backed credential store reports when nothing is stored.
|
|
3
|
+
*
|
|
4
|
+
* An absent file is a *known* answer, not a cache miss: the store returns null
|
|
5
|
+
* without decrypting anything, which is what makes the signed-out settings card
|
|
6
|
+
* cheap to render.
|
|
7
|
+
*/
|
|
8
|
+
export declare const ABSENT_CREDENTIAL = "absent";
|
|
9
|
+
/**
|
|
10
|
+
* Cheap identity of one credential file: its last write time and size.
|
|
11
|
+
*
|
|
12
|
+
* Returns {@link ABSENT_CREDENTIAL} when the file does not exist, and `null`
|
|
13
|
+
* when its state cannot be established at all (a stat failure other than
|
|
14
|
+
* ENOENT) — `null` disables caching for that read rather than risking a stale
|
|
15
|
+
* answer.
|
|
16
|
+
*/
|
|
17
|
+
export declare function fileCredentialIdentity(path: string): Promise<string | null>;
|
|
18
|
+
/**
|
|
19
|
+
* Identity for a keyring-backed credential, which has no file to compare.
|
|
20
|
+
*
|
|
21
|
+
* A time bucket is the honest substitute: a burst of reads inside one bucket
|
|
22
|
+
* shares a single keyring lookup, and the bucket bounds how long a write from
|
|
23
|
+
* another process can go unnoticed. Fifteen seconds matches the scan cache the
|
|
24
|
+
* WorkBuddy store already keeps, and stays far below the polling interval of
|
|
25
|
+
* every surface that reads these credentials.
|
|
26
|
+
*/
|
|
27
|
+
export declare function keyringCredentialIdentity(ttlMs: number): Promise<string>;
|
|
28
|
+
/**
|
|
29
|
+
* In-memory snapshot of one credential read.
|
|
30
|
+
*
|
|
31
|
+
* Reading a credential is expensive on every platform this plugin supports:
|
|
32
|
+
* Windows runs a DPAPI unprotect through a spawned `powershell.exe` (measured
|
|
33
|
+
* at 200-243 ms on a real machine), macOS spawns `security`, and Linux spawns
|
|
34
|
+
* `secret-tool`. One settings request reads several credentials — a pool is
|
|
35
|
+
* read once per `read()` call, and a status card asks for the pool twice — so
|
|
36
|
+
* opening a tab cost 3-5 process launches and took 1-3 s.
|
|
37
|
+
*
|
|
38
|
+
* A snapshot is reused only while the stored value is provably unchanged, so a
|
|
39
|
+
* write from another process (the CLI login helper, a second Host) is still
|
|
40
|
+
* observed. The identity is read *before* the value: a write that lands during
|
|
41
|
+
* a read leaves the cached identity older than the stored bytes, so the next
|
|
42
|
+
* read compares against a newer identity and decrypts again. Reading it after
|
|
43
|
+
* would cache the older value under the newer identity and hide that write.
|
|
44
|
+
*
|
|
45
|
+
* Concurrent reads that observe the same identity share one in-flight read,
|
|
46
|
+
* which is what makes the two reads inside `readPoolStatus` cost one launch
|
|
47
|
+
* rather than two.
|
|
48
|
+
*
|
|
49
|
+
* Every write through the owning store calls {@link invalidate}, so the
|
|
50
|
+
* write-then-read verification the pools perform still reads real storage
|
|
51
|
+
* instead of the snapshot it just wrote.
|
|
52
|
+
*/
|
|
53
|
+
export declare class CredentialReadCache<T> {
|
|
54
|
+
private readonly identity;
|
|
55
|
+
private entry;
|
|
56
|
+
private pending;
|
|
57
|
+
/**
|
|
58
|
+
* @param identity - cheap identity of the stored value; `null` disables
|
|
59
|
+
* caching for the read.
|
|
60
|
+
*/
|
|
61
|
+
constructor(identity: () => Promise<string | null>);
|
|
62
|
+
/**
|
|
63
|
+
* Read through the snapshot.
|
|
64
|
+
*
|
|
65
|
+
* @param read - the expensive read, invoked only when the snapshot cannot
|
|
66
|
+
* answer.
|
|
67
|
+
* @returns the stored value, or null when nothing is stored.
|
|
68
|
+
*/
|
|
69
|
+
load(read: () => Promise<T | null>): Promise<T | null>;
|
|
70
|
+
/** Drop the snapshot; the next read consults storage again. */
|
|
71
|
+
invalidate(): void;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=credential-read-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credential-read-cache.d.ts","sourceRoot":"","sources":["../../../../src/host/common/credential-read-cache.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,WAAW,CAAA;AAEzC;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOjF;AAED;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE9E;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,mBAAmB,CAAC,CAAC;IAQpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAPrC,OAAO,CAAC,KAAK,CAAqD;IAClE,OAAO,CAAC,OAAO,CAAgE;IAE/E;;;OAGG;gBAC0B,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAEnE;;;;;;OAMG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAwB5D,+DAA+D;IAC/D,UAAU,IAAI,IAAI;CAInB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One quota refresh that runs behind an already-answered status call.
|
|
3
|
+
*
|
|
4
|
+
* A status card used to block on the upstream quota request whenever its
|
|
5
|
+
* snapshot had aged past the line's TTL — measured at up to 3.6 s on a real
|
|
6
|
+
* machine, on a tab whose other work answers in milliseconds. A snapshot that
|
|
7
|
+
* exists can answer immediately instead, with the refresh running behind it.
|
|
8
|
+
*
|
|
9
|
+
* The outcome is remembered here rather than dropped: a refresh that keeps
|
|
10
|
+
* failing would otherwise look exactly like a snapshot that never aged, and the
|
|
11
|
+
* card would show old numbers with no hint of why they stopped moving.
|
|
12
|
+
*
|
|
13
|
+
* The caller still decides whether the snapshot may answer at all. No snapshot,
|
|
14
|
+
* or one belonging to another account, has to be fetched before the card can be
|
|
15
|
+
* rendered — those paths call {@link run} and wait.
|
|
16
|
+
*/
|
|
17
|
+
export declare class QuotaRefresh {
|
|
18
|
+
private pending;
|
|
19
|
+
private error;
|
|
20
|
+
/**
|
|
21
|
+
* Start one refresh behind the answer.
|
|
22
|
+
*
|
|
23
|
+
* A refresh that is already running is not duplicated; the caller can see
|
|
24
|
+
* that one is in flight through {@link refreshing} and ask again when it
|
|
25
|
+
* lands.
|
|
26
|
+
*/
|
|
27
|
+
start(refresh: () => Promise<unknown>): void;
|
|
28
|
+
/** Run one refresh and wait for it, recording the same outcome. */
|
|
29
|
+
run(refresh: () => Promise<unknown>): Promise<void>;
|
|
30
|
+
/** Whether a refresh started here is still running. */
|
|
31
|
+
get refreshing(): boolean;
|
|
32
|
+
/** Message from the most recent failed refresh, or null when none failed. */
|
|
33
|
+
lastError(): string | null;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=quota-refresh.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quota-refresh.d.ts","sourceRoot":"","sources":["../../../../src/host/common/quota-refresh.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,KAAK,CAAsB;IAEnC;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI;IAa5C,mEAAmE;IAC7D,GAAG,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IASzD,uDAAuD;IACvD,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,6EAA6E;IAC7E,SAAS,IAAI,MAAM,GAAG,IAAI;CAG3B"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { IncomingMessage } from 'node:http';
|
|
2
|
+
/**
|
|
3
|
+
* Whether one mutation request comes from this application's own document.
|
|
4
|
+
*
|
|
5
|
+
* Two shapes reach these routes:
|
|
6
|
+
*
|
|
7
|
+
* 1. A browser page served by this Host. The browser states its origin, and it
|
|
8
|
+
* must name the same authority the request was addressed to. A cross-site
|
|
9
|
+
* POST always states the foreign origin, so this comparison is what rejects
|
|
10
|
+
* it.
|
|
11
|
+
*
|
|
12
|
+
* 2. The DSH Desktop shell. Electron's `forwardWebRequest` admits only requests
|
|
13
|
+
* whose origin is the `dsh-app://app` document, then *removes* the `origin`
|
|
14
|
+
* header before forwarding to the Host — that application scheme is not an
|
|
15
|
+
* HTTP origin the Host could compare against. A forwarded request therefore
|
|
16
|
+
* arrives with no `origin` at all, addressed to the loopback Host.
|
|
17
|
+
*
|
|
18
|
+
* A missing `origin` is consequently accepted only when the request was
|
|
19
|
+
* addressed to a loopback authority, and a stated `origin` must still match
|
|
20
|
+
* exactly. This is not a CSRF opening: a browser cannot issue a cross-site POST
|
|
21
|
+
* without stating the foreign origin, so every cross-site request still fails
|
|
22
|
+
* the comparison — the loopback clause admits only the desktop shell's already
|
|
23
|
+
* validated forward, and a request that never reached loopback keeps the strict
|
|
24
|
+
* requirement.
|
|
25
|
+
*
|
|
26
|
+
* @param request - Incoming mutation request.
|
|
27
|
+
* @returns whether the request may be treated as same-origin.
|
|
28
|
+
*/
|
|
29
|
+
export declare function isSameOriginMutation(request: IncomingMessage): boolean;
|
|
30
|
+
//# sourceMappingURL=same-origin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"same-origin.d.ts","sourceRoot":"","sources":["../../../../src/host/common/same-origin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAYtE"}
|
|
@@ -4,6 +4,7 @@ export declare class SecretServiceCredentialStore<T> implements CredentialStore<
|
|
|
4
4
|
private readonly service;
|
|
5
5
|
private readonly account;
|
|
6
6
|
private readonly parse;
|
|
7
|
+
private readonly cache;
|
|
7
8
|
constructor(service: string, account: string, parse: (value: unknown) => T);
|
|
8
9
|
private attributes;
|
|
9
10
|
load(): Promise<T | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-store-secret-service.d.ts","sourceRoot":"","sources":["../../../src/host/credential-store-secret-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"credential-store-secret-service.d.ts","sourceRoot":"","sources":["../../../src/host/credential-store-secret-service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAevD,0FAA0F;AAC1F,qBAAa,4BAA4B,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IAMtE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAPxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAErB;gBAGkB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC;IAG/C,OAAO,CAAC,UAAU;IAIZ,IAAI,IAAI,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAazB,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAS7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAK7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/host/kimi-code/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,aAAa,EAQd,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,mBAAmB,EAEnB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,YAAY,EACb,MAAM,qCAAqC,CAAA;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/host/kimi-code/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../src/host/kimi-code/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../src/host/kimi-code/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAIlD,OAAO,EAEL,WAAW,EACX,aAAa,EAId,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EAEtB,KAAK,oBAAoB,EAGzB,KAAK,uBAAuB,EAC7B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAcvD,OAAO,EAML,KAAK,iBAAiB,EACvB,MAAM,qCAAqC,CAAA;AAwD5C;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,OAAO,EAAE,SAAS,oBAAoB,EAAE,EACxC,OAAO,UAAO,GACb,MAAM,EAAE,CAUV;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAA;IACtB,sFAAsF;IACtF,OAAO,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,CAAA;IACnC,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAA;IAChD;;;;;OAKG;IACH,WAAW,CAAC,EAAE,mBAAmB,CAAA;CAClC;AAMD,mFAAmF;AACnF,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,mBAAmB,EAC1B,aAAa,EAAE,sBAAsB,EACrC,WAAW,CAAC,EAAE,uBAAuB,EACrC,OAAO,GAAE,qBAA0B,EACnC,WAAW,GAAE,mBAAmB,GAAG,SAA+B,GACjE,OAAO,CAAC,iBAAiB,CAAC,CAgE5B;AASD,qEAAqE;AACrE,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,mBAAmB,EAC1B,aAAa,EAAE,sBAAsB,EACrC,WAAW,CAAC,EAAE,uBAAuB,EACrC,OAAO,GAAE,qBAA0B,EACnC,WAAW,GAAE,mBAAmB,GAAG,SAA+B,GACjE,MAAM,IAAI,CAiRZ;AAED,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/host/routes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAGlD,OAAO,KAAK,EAIV,qBAAqB,EAEtB,MAAM,wBAAwB,CAAA;AAG/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/host/routes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAGlD,OAAO,KAAK,EAIV,qBAAqB,EAEtB,MAAM,wBAAwB,CAAA;AAG/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE/D,OAAO,EAAE,YAAY,EAAe,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAmB,KAAK,2BAA2B,EAAE,MAAM,kBAAkB,CAAA;AACpF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AAC3E,OAAO,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAA;AAIpE,0DAA0D;AAC1D,MAAM,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAA;AAEpF,wBAAgB,cAAc,CAC5B,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,YAAY,EACnB,WAAW,EAAE,2BAA2B,EACxC,YAAY,CAAC,EAAE,YAAY,EAC3B,cAAc,CAAC,EAAE,sBAAsB,EACvC,UAAU,CAAC,EAAE,gBAAgB,EAC7B,WAAW,CAAC,EAAE,gBAAgB,GAC7B,MAAM,IAAI,CAyOZ"}
|
|
@@ -12,6 +12,15 @@ export declare class MacKeychainCredentialStore<T> implements CredentialStore<T>
|
|
|
12
12
|
readonly kind: "macos-keychain";
|
|
13
13
|
readonly encrypted: true;
|
|
14
14
|
};
|
|
15
|
+
/**
|
|
16
|
+
* Snapshot of the last keychain read.
|
|
17
|
+
*
|
|
18
|
+
* A keychain lookup spawns `security`, and one settings request performs
|
|
19
|
+
* several of them. There is no file to compare against, so the snapshot is
|
|
20
|
+
* keyed on a short time bucket instead — see
|
|
21
|
+
* {@link keyringCredentialIdentity}.
|
|
22
|
+
*/
|
|
23
|
+
private readonly cache;
|
|
15
24
|
constructor(service: string, account: string, parse: (value: unknown) => T);
|
|
16
25
|
load(): Promise<T | null>;
|
|
17
26
|
save(value: T): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-store-macos.d.ts","sourceRoot":"","sources":["../../../src/host/token-store-macos.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"token-store-macos.d.ts","sourceRoot":"","sources":["../../../src/host/token-store-macos.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAe3F;;;;GAIG;AACH,qBAAa,0BAA0B,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IAepE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAhBxB,QAAQ,CAAC,OAAO;;;MAAuD;IACvE;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAErB;gBAGkB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC;IAKzC,IAAI,IAAI,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAazB,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAK7B;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAM5D;AAED,qBAAa,qBAAsB,SAAQ,0BAA0B,CAAC,sBAAsB,CAAE,YAAW,UAAU;gBACrG,OAAO,SAAkB,EAAE,OAAO,SAAkB;CAGjE"}
|
|
@@ -7,6 +7,14 @@ export declare class WindowsDpapiCredentialStore<T> implements CredentialStore<T
|
|
|
7
7
|
readonly kind: "windows-dpapi";
|
|
8
8
|
readonly encrypted: true;
|
|
9
9
|
};
|
|
10
|
+
/**
|
|
11
|
+
* Decrypted snapshot, validated against the file's own mtime and size.
|
|
12
|
+
*
|
|
13
|
+
* Every uncached read is a spawned `powershell.exe` (~200 ms), and one
|
|
14
|
+
* settings request reads several credentials, so the snapshot is what keeps a
|
|
15
|
+
* tab switch from costing seconds.
|
|
16
|
+
*/
|
|
17
|
+
private readonly cache;
|
|
10
18
|
constructor(path: string, parse: (value: unknown) => T);
|
|
11
19
|
load(): Promise<T | null>;
|
|
12
20
|
save(value: T): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-store-windows.d.ts","sourceRoot":"","sources":["../../../src/host/token-store-windows.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"token-store-windows.d.ts","sourceRoot":"","sources":["../../../src/host/token-store-windows.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AA+C3F,wBAAgB,0BAA0B,IAAI,MAAM,CAGnD;AAED,qBAAa,2BAA2B,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IAW3D,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAU,OAAO,CAAC,QAAQ,CAAC,KAAK;IAVjE,QAAQ,CAAC,OAAO;;;MAAsD;IACtE;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsE;gBAE/D,IAAI,EAAE,MAAM,EAAmB,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC;IAKlF,IAAI,IAAI,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAazB,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAK7B;AAED,qBAAa,sBAAuB,SAAQ,2BAA2B,CAAC,sBAAsB,CAAE,YAAW,UAAU;gBACvG,IAAI,SAA+B;CAGhD"}
|
|
@@ -6,6 +6,15 @@ export interface UsageServiceOptions {
|
|
|
6
6
|
fetchFn?: FetchLike;
|
|
7
7
|
now?: () => number;
|
|
8
8
|
}
|
|
9
|
+
/** How one status read may treat a snapshot that has aged past its TTL. */
|
|
10
|
+
export interface UsageStatusOptions {
|
|
11
|
+
/**
|
|
12
|
+
* Answer from an existing snapshot and refresh behind it, instead of waiting
|
|
13
|
+
* for the upstream request. A caller that must not show aged numbers — or has
|
|
14
|
+
* no snapshot to show — leaves this off.
|
|
15
|
+
*/
|
|
16
|
+
backgroundRefresh?: boolean;
|
|
17
|
+
}
|
|
9
18
|
export declare class UsageService {
|
|
10
19
|
private readonly oauth;
|
|
11
20
|
private readonly fetchFn;
|
|
@@ -26,7 +35,16 @@ export declare class UsageService {
|
|
|
26
35
|
private inFlight;
|
|
27
36
|
private resetConsumeInFlight;
|
|
28
37
|
constructor(oauth: OAuthService, options?: UsageServiceOptions);
|
|
29
|
-
status(authenticated: boolean, force?: boolean): Promise<QuotaStatusDto>;
|
|
38
|
+
status(authenticated: boolean, force?: boolean, options?: UsageStatusOptions): Promise<QuotaStatusDto>;
|
|
39
|
+
/** Whether a quota refresh is running, so a caller can ask again when it lands. */
|
|
40
|
+
get refreshing(): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Refresh behind an answer that has already been given.
|
|
43
|
+
*
|
|
44
|
+
* The rejection is absorbed here: this refresh has no caller to receive it,
|
|
45
|
+
* and {@link fromCache} keeps serving the snapshot it failed to replace.
|
|
46
|
+
*/
|
|
47
|
+
private startBackgroundRefresh;
|
|
30
48
|
invalidate(): void;
|
|
31
49
|
/**
|
|
32
50
|
* When one credential's Codex window reopens, from the last snapshot.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage-service.d.ts","sourceRoot":"","sources":["../../../src/host/usage-service.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,aAAa,EACb,cAAc,EAEf,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAE9D,KAAK,SAAS,GAAG,OAAO,KAAK,CAAA;AA0B7B,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB;AAED,qBAAa,YAAY;IAqBX,OAAO,CAAC,QAAQ,CAAC,KAAK;IApBlC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,KAAK,CAA0B;IAGvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiE;IAC3F,OAAO,CAAC,cAAc,CAAI;IAC1B,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,WAAW,CAAQ;IAC3B;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB,CAAsB;IACnD,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,oBAAoB,CAAuC;gBAEtC,KAAK,EAAE,YAAY,EAAE,OAAO,GAAE,mBAAwB;IAK7E,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"usage-service.d.ts","sourceRoot":"","sources":["../../../src/host/usage-service.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,aAAa,EACb,cAAc,EAEf,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAE9D,KAAK,SAAS,GAAG,OAAO,KAAK,CAAA;AA0B7B,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB;AAED,2EAA2E;AAC3E,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,qBAAa,YAAY;IAqBX,OAAO,CAAC,QAAQ,CAAC,KAAK;IApBlC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,KAAK,CAA0B;IAGvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiE;IAC3F,OAAO,CAAC,cAAc,CAAI;IAC1B,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,WAAW,CAAQ;IAC3B;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB,CAAsB;IACnD,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,oBAAoB,CAAuC;gBAEtC,KAAK,EAAE,YAAY,EAAE,OAAO,GAAE,mBAAwB;IAK7E,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,UAAQ,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,cAAc,CAAC;IAgE9G,mFAAmF;IACnF,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAS9B,UAAU,IAAI,IAAI;IAIlB;;;;;;;OAOG;IACH,eAAe,CAAC,WAAW,EAAE,sBAAsB,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAerF,oFAAoF;IACpF,OAAO,CAAC,gBAAgB;IASxB,KAAK,IAAI,IAAI;IAOb,4FAA4F;IAC5F,cAAc,CAAC,WAAW,EAAE,sBAAsB,GAAG,IAAI;IAInD,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC;YAQrC,0BAA0B;IA2DlC,cAAc,IAAI,OAAO,CAAC,iBAAiB,CAAC;YASpC,eAAe;IAgD7B,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,SAAS;IAiBjB,OAAO,CAAC,OAAO;CAGhB;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC9B,QAAQ,CAAC,WAAW,EAAE,cAAc;gBAA3B,WAAW,EAAE,cAAc;CAGjD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,EAAE,CAE9D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAwB7D;AAuED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,kBAAkB,EAAE,MAAM,EAAE,CAAA;CAAE,CAmBpI"}
|
|
@@ -61,7 +61,15 @@ export declare function clearCachedCatalog(): void;
|
|
|
61
61
|
* falls back, which keeps a first run usable before sign-in.
|
|
62
62
|
*/
|
|
63
63
|
export declare function fetchConfigCatalog(credentials: WorkBuddyCredentials, options?: WorkBuddyRequestOptions): Promise<WorkBuddyModelEntry[]>;
|
|
64
|
-
/** Cached catalog with a TTL; a failed refresh keeps the previous snapshot.
|
|
64
|
+
/** Cached catalog with a TTL; a failed refresh keeps the previous snapshot.
|
|
65
|
+
*
|
|
66
|
+
* On the first cache miss of a process the persisted snapshot is rehydrated
|
|
67
|
+
* first, so a restart serves the previous listing without waiting on the
|
|
68
|
+
* network. An expired snapshot still answers immediately (stale) while a
|
|
69
|
+
* refresh runs in the background — the catalog is not fast-moving data, and
|
|
70
|
+
* waiting on an unreachable gateway turned a restart into the full discovery
|
|
71
|
+
* timeout on every model resolution.
|
|
72
|
+
*/
|
|
65
73
|
export declare function loadConfigCatalog(credentials: WorkBuddyCredentials, options?: WorkBuddyRequestOptions & {
|
|
66
74
|
force?: boolean;
|
|
67
75
|
}): Promise<WorkBuddyModelEntry[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/host/workbuddy/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACf,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAiBL,WAAW,EACX,aAAa,EAKd,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,mBAAmB,EAAsB,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACrG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/host/workbuddy/client.ts"],"names":[],"mappings":"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"}
|