dsh-antigravity-auth 0.1.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.
Files changed (114) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/LICENSE +21 -0
  3. package/README.md +168 -0
  4. package/README.zh.md +159 -0
  5. package/cordis.patch.yml +12 -0
  6. package/lib/capability-lifecycle--tgGKajs.js +1896 -0
  7. package/lib/client.cjs +2123 -0
  8. package/lib/client.cjs.map +1 -0
  9. package/lib/image.js +564 -0
  10. package/lib/index.js +176 -0
  11. package/lib/invariant.js +2 -0
  12. package/lib/live-gate-runner.js +542 -0
  13. package/lib/live-gates.js +97 -0
  14. package/lib/llm-adapter.js +916 -0
  15. package/lib/media-admission.js +206 -0
  16. package/lib/private-failure-B9vzUkQ7.js +23 -0
  17. package/lib/private-transport-urF138qW.js +641 -0
  18. package/lib/private-transport.js +2 -0
  19. package/lib/project-context.js +133 -0
  20. package/lib/quota.js +283 -0
  21. package/lib/replay.js +156 -0
  22. package/lib/rpc-contract-BFWfdKKs.js +491 -0
  23. package/lib/rpc-contract.js +2 -0
  24. package/lib/safe-text-AlEyN8q_.js +12 -0
  25. package/lib/search.js +259 -0
  26. package/lib/status-D0-em3Ru.js +125 -0
  27. package/lib/types/auth-service.d.ts +64 -0
  28. package/lib/types/auth-service.d.ts.map +1 -0
  29. package/lib/types/auth-store.d.ts +45 -0
  30. package/lib/types/auth-store.d.ts.map +1 -0
  31. package/lib/types/bootstrap-service.d.ts +6 -0
  32. package/lib/types/bootstrap-service.d.ts.map +1 -0
  33. package/lib/types/capability-gates.d.ts +19 -0
  34. package/lib/types/capability-gates.d.ts.map +1 -0
  35. package/lib/types/capability-lifecycle.d.ts +26 -0
  36. package/lib/types/capability-lifecycle.d.ts.map +1 -0
  37. package/lib/types/client/AntigravityAuthSettings.d.ts +19 -0
  38. package/lib/types/client/AntigravityAuthSettings.d.ts.map +1 -0
  39. package/lib/types/client/index.d.ts +18 -0
  40. package/lib/types/client/index.d.ts.map +1 -0
  41. package/lib/types/client/locales.d.ts +121 -0
  42. package/lib/types/client/locales.d.ts.map +1 -0
  43. package/lib/types/client/styles.d.ts +4 -0
  44. package/lib/types/client/styles.d.ts.map +1 -0
  45. package/lib/types/credential-coordinator.d.ts +84 -0
  46. package/lib/types/credential-coordinator.d.ts.map +1 -0
  47. package/lib/types/image.d.ts +39 -0
  48. package/lib/types/image.d.ts.map +1 -0
  49. package/lib/types/index.d.ts +21 -0
  50. package/lib/types/index.d.ts.map +1 -0
  51. package/lib/types/invariant.d.ts +3 -0
  52. package/lib/types/invariant.d.ts.map +1 -0
  53. package/lib/types/live-gate-attachments.d.ts +6 -0
  54. package/lib/types/live-gate-attachments.d.ts.map +1 -0
  55. package/lib/types/live-gate-auth.d.ts +5 -0
  56. package/lib/types/live-gate-auth.d.ts.map +1 -0
  57. package/lib/types/live-gate-image.d.ts +5 -0
  58. package/lib/types/live-gate-image.d.ts.map +1 -0
  59. package/lib/types/live-gate-llm.d.ts +10 -0
  60. package/lib/types/live-gate-llm.d.ts.map +1 -0
  61. package/lib/types/live-gate-outcome.d.ts +8 -0
  62. package/lib/types/live-gate-outcome.d.ts.map +1 -0
  63. package/lib/types/live-gate-runner.d.ts +15 -0
  64. package/lib/types/live-gate-runner.d.ts.map +1 -0
  65. package/lib/types/live-gate-search.d.ts +5 -0
  66. package/lib/types/live-gate-search.d.ts.map +1 -0
  67. package/lib/types/live-gate-video.d.ts +8 -0
  68. package/lib/types/live-gate-video.d.ts.map +1 -0
  69. package/lib/types/live-gates.d.ts +25 -0
  70. package/lib/types/live-gates.d.ts.map +1 -0
  71. package/lib/types/llm-adapter.d.ts +65 -0
  72. package/lib/types/llm-adapter.d.ts.map +1 -0
  73. package/lib/types/login-types.d.ts +36 -0
  74. package/lib/types/login-types.d.ts.map +1 -0
  75. package/lib/types/media-admission.d.ts +54 -0
  76. package/lib/types/media-admission.d.ts.map +1 -0
  77. package/lib/types/model-catalog.d.ts +19 -0
  78. package/lib/types/model-catalog.d.ts.map +1 -0
  79. package/lib/types/oauth-flow.d.ts +87 -0
  80. package/lib/types/oauth-flow.d.ts.map +1 -0
  81. package/lib/types/private-failure.d.ts +6 -0
  82. package/lib/types/private-failure.d.ts.map +1 -0
  83. package/lib/types/private-transport-error.d.ts +13 -0
  84. package/lib/types/private-transport-error.d.ts.map +1 -0
  85. package/lib/types/private-transport.d.ts +48 -0
  86. package/lib/types/private-transport.d.ts.map +1 -0
  87. package/lib/types/project-context.d.ts +30 -0
  88. package/lib/types/project-context.d.ts.map +1 -0
  89. package/lib/types/quota.d.ts +43 -0
  90. package/lib/types/quota.d.ts.map +1 -0
  91. package/lib/types/raw-http.d.ts +11 -0
  92. package/lib/types/raw-http.d.ts.map +1 -0
  93. package/lib/types/replay.d.ts +30 -0
  94. package/lib/types/replay.d.ts.map +1 -0
  95. package/lib/types/rpc-contract.d.ts +33 -0
  96. package/lib/types/rpc-contract.d.ts.map +1 -0
  97. package/lib/types/rpc-vocabulary.d.ts +7 -0
  98. package/lib/types/rpc-vocabulary.d.ts.map +1 -0
  99. package/lib/types/rpc.d.ts +11 -0
  100. package/lib/types/rpc.d.ts.map +1 -0
  101. package/lib/types/safe-text.d.ts +3 -0
  102. package/lib/types/safe-text.d.ts.map +1 -0
  103. package/lib/types/search.d.ts +42 -0
  104. package/lib/types/search.d.ts.map +1 -0
  105. package/lib/types/status.d.ts +62 -0
  106. package/lib/types/status.d.ts.map +1 -0
  107. package/lib/types/video.d.ts +42 -0
  108. package/lib/types/video.d.ts.map +1 -0
  109. package/lib/types/wire-identity.d.ts +49 -0
  110. package/lib/types/wire-identity.d.ts.map +1 -0
  111. package/lib/video.js +320 -0
  112. package/lib/wire-identity.js +162 -0
  113. package/package.json +189 -0
  114. package/scripts/live-gates.mjs +4 -0
@@ -0,0 +1,54 @@
1
+ /** Shared Host-only media admission for image editing and the video POC. */
2
+ import type { Agent } from '@deepseek-ai/dsh-agent';
3
+ import type { AttachmentStore, ImageAttachmentRef, ImageMediaType, SaveImageAttachment, StoredImageAttachment } from '@deepseek-ai/dsh-attachment';
4
+ import type { FileSystem } from '@deepseek-ai/dsh-fs';
5
+ import { HarnessError } from '@deepseek-ai/dsh-llm';
6
+ export declare const DEFAULT_VIDEO_BYTES: number;
7
+ export declare const DEFAULT_INLINE_IMAGE_BYTES: number;
8
+ export declare const IMAGE_HANDLE_PATTERN: RegExp;
9
+ export type MediaKind = 'image' | 'video';
10
+ export interface MediaAdmissionErrorOptions {
11
+ readonly cause?: unknown;
12
+ }
13
+ export declare class MediaAdmissionError extends HarnessError {
14
+ constructor(message: string, code: string, options?: MediaAdmissionErrorOptions);
15
+ }
16
+ export interface MediaAdmissionOptions {
17
+ readonly attachments: Pick<AttachmentStore, 'imageLimits' | 'validateImage' | 'saveImage' | 'readImage'>;
18
+ readonly fs: Pick<FileSystem, 'resolve' | 'contains' | 'readBytes' | 'lstat' | 'stat'>;
19
+ readonly maxVideoBytes?: number;
20
+ }
21
+ export interface AdmittedImage {
22
+ readonly kind: 'image';
23
+ readonly input: SaveImageAttachment;
24
+ readonly stored?: StoredImageAttachment;
25
+ readonly source: 'session' | 'workspace' | 'inline';
26
+ }
27
+ export interface AdmittedVideo {
28
+ readonly kind: 'video';
29
+ readonly data: Uint8Array;
30
+ readonly mediaType: 'video/mp4';
31
+ }
32
+ export declare function imageHandle(ref: ImageAttachmentRef): `image:${string}`;
33
+ /** Admit bounded, canonical image bytes and let AttachmentStore perform full decode validation. */
34
+ export declare function admitImageBytes(options: Pick<MediaAdmissionOptions, 'attachments'>, data: Uint8Array, source: AdmittedImage['source'], name?: string, signal?: AbortSignal): Promise<AdmittedImage>;
35
+ export declare function admitBase64Image(options: Pick<MediaAdmissionOptions, 'attachments'>, encoded: string, source?: AdmittedImage['source'], name?: string, signal?: AbortSignal): Promise<AdmittedImage>;
36
+ /** Resolve one explicit session handle from durable session history; handles are not bearer capabilities. */
37
+ export declare function admitSessionImage(options: Pick<MediaAdmissionOptions, 'attachments'>, agent: Agent, handle: string, signal?: AbortSignal): Promise<AdmittedImage>;
38
+ /** Resolve an image only after containment and regular-file checks, then admit its bytes. */
39
+ export declare function admitWorkspaceImage(options: MediaAdmissionOptions, workspace: string, path: string, signal?: AbortSignal): Promise<AdmittedImage>;
40
+ /** Admit an MP4 container without claiming native video attachment support. */
41
+ export declare function admitWorkspaceVideo(options: Pick<MediaAdmissionOptions, 'fs'> & {
42
+ readonly maxVideoBytes?: number;
43
+ }, workspace: string, path: string, signal?: AbortSignal): Promise<AdmittedVideo>;
44
+ export declare function detectImageMediaType(data: Uint8Array): ImageMediaType | undefined;
45
+ export declare function isMp4(data: Uint8Array): boolean;
46
+ export interface SessionImageCatalogEntry {
47
+ readonly handle: `image:${string}`;
48
+ readonly attachment: ImageAttachmentRef;
49
+ readonly origin: 'user' | 'reference' | 'generated';
50
+ readonly sequence: number;
51
+ }
52
+ /** Traverse durable session history once for both authorization and image listing. */
53
+ export declare function sessionImageCatalog(agent: Agent): readonly SessionImageCatalogEntry[];
54
+ //# sourceMappingURL=media-admission.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-admission.d.ts","sourceRoot":"","sources":["../../src/media-admission.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAG5E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,6BAA6B,CAAA;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGnD,eAAO,MAAM,mBAAmB,QAAmB,CAAA;AACnD,eAAO,MAAM,0BAA0B,QAAmB,CAAA;AAC1D,eAAO,MAAM,oBAAoB,QAA+B,CAAA;AAEhE,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,CAAA;AAEzC,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,qBAAa,mBAAoB,SAAQ,YAAY;gBACvC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,0BAA+B;CAGpF;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,GAAG,eAAe,GAAG,WAAW,GAAG,WAAW,CAAC,CAAA;IACxG,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC,CAAA;IACtF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAA;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAA;IACvC,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAA;CACpD;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAA;CAChC;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,kBAAkB,GAAG,SAAS,MAAM,EAAE,CAEtE;AAED,mGAAmG;AACnG,wBAAsB,eAAe,CACnC,OAAO,EAAE,IAAI,CAAC,qBAAqB,EAAE,aAAa,CAAC,EACnD,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC/B,IAAI,SAAsB,EAC1B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,aAAa,CAAC,CAqBxB;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,IAAI,CAAC,qBAAqB,EAAE,aAAa,CAAC,EACnD,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,aAAa,CAAC,QAAQ,CAAY,EAC1C,IAAI,CAAC,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,aAAa,CAAC,CAUxB;AAED,6GAA6G;AAC7G,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,IAAI,CAAC,qBAAqB,EAAE,aAAa,CAAC,EACnD,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,aAAa,CAAC,CAYxB;AAED,6FAA6F;AAC7F,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,qBAAqB,EAC9B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,aAAa,CAAC,CAcxB;AAED,+EAA+E;AAC/E,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,GAAG;IAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,EAChF,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,aAAa,CAAC,CAWxB;AAwCD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAOjF;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAE/C;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAA;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,WAAW,CAAA;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAED,sFAAsF;AACtF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,wBAAwB,EAAE,CA0BrF"}
@@ -0,0 +1,19 @@
1
+ /** Browser-safe advisory model-catalog state shared by Host RPC and settings. */
2
+ export declare const ANTIGRAVITY_MODEL_CATALOG_STATES: readonly ["snapshot", "live-available", "refresh-failed", "protocol-drift"];
3
+ export type AntigravityModelCatalogState = (typeof ANTIGRAVITY_MODEL_CATALOG_STATES)[number];
4
+ export type AntigravityModelAvailability = 'snapshot' | 'live-available' | 'unavailable';
5
+ export interface AntigravityModelCatalogEntry {
6
+ readonly id: string;
7
+ readonly name: string;
8
+ readonly state: AntigravityModelAvailability;
9
+ }
10
+ export interface AntigravityModelCatalogView {
11
+ readonly state: AntigravityModelCatalogState;
12
+ readonly models: readonly AntigravityModelCatalogEntry[];
13
+ readonly checkedAt?: string;
14
+ }
15
+ export interface AntigravityModelCatalogService {
16
+ catalogSnapshot(): AntigravityModelCatalogView;
17
+ modelCatalog(signal?: AbortSignal, forceRefresh?: boolean): Promise<AntigravityModelCatalogView>;
18
+ }
19
+ //# sourceMappingURL=model-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-catalog.d.ts","sourceRoot":"","sources":["../../src/model-catalog.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAEjF,eAAO,MAAM,gCAAgC,6EAKnC,CAAA;AAEV,MAAM,MAAM,4BAA4B,GAAG,CAAC,OAAO,gCAAgC,CAAC,CAAC,MAAM,CAAC,CAAA;AAC5F,MAAM,MAAM,4BAA4B,GAAG,UAAU,GAAG,gBAAgB,GAAG,aAAa,CAAA;AAExF,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,4BAA4B,CAAA;CAC7C;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,EAAE,4BAA4B,CAAA;IAC5C,QAAQ,CAAC,MAAM,EAAE,SAAS,4BAA4B,EAAE,CAAA;IACxD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,8BAA8B;IAC7C,eAAe,IAAI,2BAA2B,CAAA;IAC9C,YAAY,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAA;CACjG"}
@@ -0,0 +1,87 @@
1
+ /** Host-only PKCE, loopback callback, and token-exchange coordinator. */
2
+ import type { LoginCompletionResult, LoginErrorCode, LoginPhase, LoginStartResult } from './login-types.ts';
3
+ export declare const ANTIGRAVITY_CALLBACK_PORT: 51121;
4
+ export declare const ANTIGRAVITY_CALLBACK_PATH: "/oauth-callback";
5
+ export declare const ANTIGRAVITY_CALLBACK_HOSTS: readonly string[];
6
+ export declare const OAUTH_FLOW_TTL_MS: number;
7
+ export type OAuthErrorCode = LoginErrorCode;
8
+ export declare class OAuthFlowError extends Error {
9
+ readonly code: OAuthErrorCode;
10
+ constructor(code: OAuthErrorCode, message: string);
11
+ }
12
+ export interface OAuthToken {
13
+ readonly accessToken: string;
14
+ readonly refreshToken: string;
15
+ readonly expiresAt: number;
16
+ readonly email?: string;
17
+ }
18
+ export interface ProjectValidation {
19
+ readonly projectId: string;
20
+ readonly email?: string;
21
+ }
22
+ export interface ExchangeCodeInput {
23
+ readonly code: string;
24
+ readonly verifier: string;
25
+ readonly signal: AbortSignal;
26
+ }
27
+ export type ExchangeCode = (input: ExchangeCodeInput) => Promise<OAuthToken>;
28
+ export type ValidateProject = (accessToken: string, signal: AbortSignal) => Promise<ProjectValidation | undefined>;
29
+ export type CommitCredential = (token: OAuthToken, project: ProjectValidation, signal: AbortSignal) => Promise<void>;
30
+ export interface LoopbackCallbackRequest {
31
+ readonly method: string;
32
+ readonly host?: string | undefined;
33
+ /** A relative callback path/query for the loopback listener, or a full URL for tests. */
34
+ readonly url: string;
35
+ }
36
+ export interface LoopbackCallbackResponse {
37
+ readonly status: number;
38
+ readonly headers: Readonly<Record<string, string>>;
39
+ readonly body: string;
40
+ }
41
+ export type LoopbackCallbackHandler = (request: LoopbackCallbackRequest) => Promise<LoopbackCallbackResponse>;
42
+ export interface LoopbackListener {
43
+ close(): Promise<void> | void;
44
+ }
45
+ export interface LoopbackListenerFactory {
46
+ listen(handler: LoopbackCallbackHandler): Promise<LoopbackListener>;
47
+ }
48
+ export interface OAuthClock {
49
+ now(): number;
50
+ setTimeout(handler: () => void, delayMs: number): ReturnType<typeof setTimeout>;
51
+ clearTimeout(handle: ReturnType<typeof setTimeout>): void;
52
+ }
53
+ export interface OAuthFlowOptions {
54
+ readonly randomBytes?: (size: number) => Uint8Array;
55
+ readonly clock?: OAuthClock;
56
+ readonly ttlMs?: number;
57
+ readonly listenerFactory?: LoopbackListenerFactory;
58
+ readonly exchangeCode?: ExchangeCode;
59
+ readonly validateProject?: ValidateProject;
60
+ readonly commit?: CommitCredential;
61
+ readonly fetchImpl?: typeof fetch;
62
+ }
63
+ export interface OAuthFlowStatus {
64
+ readonly phase: LoginPhase;
65
+ readonly authorizationUrl?: string;
66
+ readonly expiresAt?: string;
67
+ readonly errorCode?: OAuthErrorCode;
68
+ }
69
+ export type OAuthFlowCompletionResult = LoginCompletionResult;
70
+ export interface OAuthFlow {
71
+ /** Current one-shot flow generation used to fence late commits. */
72
+ generation(): number;
73
+ start(): Promise<LoginStartResult>;
74
+ status(): OAuthFlowStatus;
75
+ completeCallbackUrl(callbackUrl: string): Promise<OAuthFlowCompletionResult>;
76
+ cancel(): Promise<OAuthFlowStatus>;
77
+ dispose(): Promise<void>;
78
+ }
79
+ /** Create one process-local, one-shot OAuth flow. */
80
+ export declare function createOAuthFlow(options?: OAuthFlowOptions): OAuthFlow;
81
+ /** Create the production loopback listener; it never binds a non-loopback address. */
82
+ export declare function createNodeLoopbackListenerFactory(): LoopbackListenerFactory;
83
+ /** Build the authorization URL without ever putting the verifier in browser state. */
84
+ export declare function buildAuthorizationUrl(state: string, verifier: string): string;
85
+ /** Testable Google token exchange; response bodies are parsed only in Host memory. */
86
+ export declare function createGoogleTokenExchanger(fetchImpl: typeof fetch, clock?: OAuthClock): ExchangeCode;
87
+ //# sourceMappingURL=oauth-flow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-flow.d.ts","sourceRoot":"","sources":["../../src/oauth-flow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /** One closed classifier shared by every capability's public error vocabulary. */
2
+ import type { CapabilityGateOutcome } from './status.ts';
3
+ export type PrivateFailureKind = 'authentication' | 'forbidden' | 'rate-limited' | 'cancelled' | 'timeout' | 'attribution-rejected' | 'protocol-drift' | 'response-limit' | 'request-limit' | 'upstream' | 'network' | 'failed';
4
+ export declare function classifyPrivateFailure(error: unknown): PrivateFailureKind;
5
+ export declare function capabilityOutcomeForError(error: unknown): Exclude<CapabilityGateOutcome, 'passed'>;
6
+ //# sourceMappingURL=private-failure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"private-failure.d.ts","sourceRoot":"","sources":["../../src/private-failure.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAGlF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAExD,MAAM,MAAM,kBAAkB,GAC1B,gBAAgB,GAChB,WAAW,GACX,cAAc,GACd,WAAW,GACX,SAAS,GACT,sBAAsB,GACtB,gBAAgB,GAChB,gBAAgB,GAChB,eAAe,GACf,UAAU,GACV,SAAS,GACT,QAAQ,CAAA;AAEZ,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAiBzE;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAQlG"}
@@ -0,0 +1,13 @@
1
+ /** Shared redacted error vocabulary for private HTTP transport boundaries. */
2
+ export type PrivateTransportErrorCode = 'authentication' | 'forbidden' | 'rate-limited' | 'timeout' | 'offline' | 'cancelled' | 'response-too-large' | 'request-too-large' | 'frame-too-large' | 'invalid-response' | 'protocol-drift' | 'upstream' | 'attribution-rejected';
3
+ export declare class PrivateTransportError extends Error {
4
+ readonly code: PrivateTransportErrorCode;
5
+ readonly status?: number;
6
+ /** Whether an upstream could have accepted the request before the failure. */
7
+ readonly accepted: boolean;
8
+ constructor(code: PrivateTransportErrorCode, message: string, options?: {
9
+ readonly status?: number;
10
+ readonly accepted?: boolean;
11
+ });
12
+ }
13
+ //# sourceMappingURL=private-transport-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"private-transport-error.d.ts","sourceRoot":"","sources":["../../src/private-transport-error.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAE9E,MAAM,MAAM,yBAAyB,GACjC,gBAAgB,GAChB,WAAW,GACX,cAAc,GACd,SAAS,GACT,SAAS,GACT,WAAW,GACX,oBAAoB,GACpB,mBAAmB,GACnB,iBAAiB,GACjB,kBAAkB,GAClB,gBAAgB,GAChB,UAAU,GACV,sBAAsB,CAAA;AAE1B,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAA;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;gBAGxB,IAAI,EAAE,yBAAyB,EAC/B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAO;CAQ1E"}
@@ -0,0 +1,48 @@
1
+ /** Bounded Host-only transport primitives for the private Antigravity endpoints. */
2
+ import { PrivateTransportError } from './private-transport-error.ts';
3
+ export { PrivateTransportError } from './private-transport-error.ts';
4
+ export type { PrivateTransportErrorCode } from './private-transport-error.ts';
5
+ export declare const DEFAULT_PRIVATE_RESPONSE_HEADER_TIMEOUT_MS = 180000;
6
+ export declare const DEFAULT_PRIVATE_IDLE_TIMEOUT_MS = 60000;
7
+ export declare const DEFAULT_PRIVATE_TOTAL_TIMEOUT_MS = 300000;
8
+ export declare const DEFAULT_PRIVATE_RESPONSE_BYTES: number;
9
+ export declare const DEFAULT_PRIVATE_REQUEST_BYTES: number;
10
+ export declare const MAX_PRIVATE_REQUEST_BYTES: number;
11
+ export declare const DEFAULT_PRIVATE_FRAME_BYTES: number;
12
+ export interface PrivateTransportRequest {
13
+ readonly url: string;
14
+ readonly accessToken: string;
15
+ readonly body: string | Uint8Array;
16
+ readonly signal?: AbortSignal;
17
+ readonly responseHeaderTimeoutMs?: number;
18
+ }
19
+ export interface PrivateTransportOptions {
20
+ readonly responseHeaderTimeoutMs?: number;
21
+ readonly maxRequestBytes?: number;
22
+ }
23
+ export interface PrivateTransport {
24
+ request(input: PrivateTransportRequest): Promise<Response>;
25
+ }
26
+ /** Build one fixed raw private transport. Callers cannot supply headers, identity, or origins. */
27
+ export declare function createPrivateTransport(options?: PrivateTransportOptions): PrivateTransport;
28
+ /** Convert a bounded response status to a safe provider error without exposing its body. */
29
+ export declare function privateStatusError(status: number): PrivateTransportError | undefined;
30
+ export interface BoundedReadOptions {
31
+ readonly signal?: AbortSignal;
32
+ readonly idleTimeoutMs?: number;
33
+ readonly totalTimeoutMs?: number;
34
+ readonly maxBytes?: number;
35
+ }
36
+ /** Read a response body with byte, idle, total, and cancellation bounds. */
37
+ export declare function readPrivateBytes(response: Response, options?: BoundedReadOptions): Promise<Uint8Array>;
38
+ export declare function readPrivateText(response: Response, options?: BoundedReadOptions): Promise<string>;
39
+ export interface PrivateSseEvent {
40
+ readonly data: string;
41
+ readonly event?: string;
42
+ }
43
+ /** Parse SSE/JSON responses without retaining unbounded provider frames. */
44
+ export declare function iteratePrivateSse(response: Response, options?: BoundedReadOptions & {
45
+ readonly maxFrameBytes?: number;
46
+ }): AsyncGenerator<PrivateSseEvent>;
47
+ export declare function assertPrivateEndpoint(url: string): void;
48
+ //# sourceMappingURL=private-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"private-transport.d.ts","sourceRoot":"","sources":["../../src/private-transport.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAGpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAEpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,YAAY,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAA;AAE7E,eAAO,MAAM,0CAA0C,SAAU,CAAA;AACjE,eAAO,MAAM,+BAA+B,QAAS,CAAA;AACrD,eAAO,MAAM,gCAAgC,SAAU,CAAA;AACvD,eAAO,MAAM,8BAA8B,QAAkB,CAAA;AAC7D,eAAO,MAAM,6BAA6B,QAAmB,CAAA;AAC7D,eAAO,MAAM,yBAAyB,QAAmB,CAAA;AACzD,eAAO,MAAM,2BAA2B,QAAa,CAAA;AAErD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;IAC7B,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAA;CAC1C;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAA;IACzC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;CAC3D;AAED,kGAAkG;AAClG,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,uBAA4B,GAAG,gBAAgB,CA0B9F;AAED,4FAA4F;AAC5F,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS,CAOpF;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,4EAA4E;AAC5E,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC,CA4ChH;AAED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAO3G;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,4EAA4E;AAC5E,wBAAuB,iBAAiB,CACtC,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,kBAAkB,GAAG;IAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAO,GACrE,cAAc,CAAC,eAAe,CAAC,CAuFjC;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAMvD"}
@@ -0,0 +1,30 @@
1
+ /** Host-only, read-only project discovery and safe project normalization. */
2
+ import type { ProjectValidation } from './oauth-flow.ts';
3
+ import { type PrivateTransport, type PrivateTransportOptions } from './private-transport.ts';
4
+ export declare const PROJECT_DISCOVERY_PATH: "/v1internal:loadCodeAssist";
5
+ export declare const PROJECT_DISCOVERY_ENDPOINT: `${string}/v1internal:loadCodeAssist`;
6
+ export type ProjectDiscoveryErrorCode = 'authentication' | 'forbidden' | 'rate-limited' | 'offline' | 'malformed' | 'protocol-drift' | 'cancelled';
7
+ export declare class ProjectDiscoveryError extends Error {
8
+ readonly code: ProjectDiscoveryErrorCode;
9
+ constructor(code: ProjectDiscoveryErrorCode, message?: string);
10
+ }
11
+ export interface ProjectDiscoveryOptions {
12
+ /** Inject a complete deterministic transport for offline tests; identity is never injectable. */
13
+ readonly transport?: PrivateTransport;
14
+ readonly transportOptions?: PrivateTransportOptions;
15
+ readonly operationTimeoutMs?: number;
16
+ }
17
+ export interface ProjectDiscovery {
18
+ /** Discover only a project returned for the supplied access token. */
19
+ discover(accessToken: string, signal?: AbortSignal): Promise<ProjectValidation | undefined>;
20
+ }
21
+ /** Project Context is the parent-spec name for the discovery seam. */
22
+ export type ProjectContext = ProjectDiscovery;
23
+ export type { ProjectValidation };
24
+ /** Create the fixed, read-only loadCodeAssist project probe. */
25
+ export declare function createProjectDiscovery(options?: ProjectDiscoveryOptions): ProjectDiscovery;
26
+ /** Compatibility name used by the parent capability design. */
27
+ export declare const createProjectContext: typeof createProjectDiscovery;
28
+ /** Normalize the only project field that may cross into the credential store. */
29
+ export declare function normalizeProjectId(value: unknown): string | undefined;
30
+ //# sourceMappingURL=project-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-context.d.ts","sourceRoot":"","sources":["../../src/project-context.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAG7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAQL,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC7B,MAAM,wBAAwB,CAAA;AAI/B,eAAO,MAAM,sBAAsB,EAAG,4BAAqC,CAAA;AAC3E,eAAO,MAAM,0BAA0B,uCAAiE,CAAA;AAQxG,MAAM,MAAM,yBAAyB,GACjC,gBAAgB,GAChB,WAAW,GACX,cAAc,GACd,SAAS,GACT,WAAW,GACX,gBAAgB,GAChB,WAAW,CAAA;AAEf,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAA;gBAE5B,IAAI,EAAE,yBAAyB,EAAE,OAAO,SAAqC;CAK1F;AAED,MAAM,WAAW,uBAAuB;IACtC,iGAAiG;IACjG,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAA;IACrC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,uBAAuB,CAAA;IACnD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC/B,sEAAsE;IACtE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAA;CAC5F;AAED,sEAAsE;AACtE,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAA;AAC7C,YAAY,EAAE,iBAAiB,EAAE,CAAA;AAEjC,gEAAgE;AAChE,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,uBAA4B,GAAG,gBAAgB,CA4C9F;AAED,+DAA+D;AAC/D,eAAO,MAAM,oBAAoB,+BAAyB,CAAA;AAE1D,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAKrE"}
@@ -0,0 +1,43 @@
1
+ /** Single-account Antigravity quota normalization and bounded Host service. */
2
+ import type { CredentialCoordinator, HostCredential } from './credential-coordinator.ts';
3
+ import { type PrivateTransport, type PrivateTransportOptions } from './private-transport.ts';
4
+ export declare const ANTIGRAVITY_QUOTA_ENDPOINT: `${string}/v1internal:retrieveUserQuotaSummary`;
5
+ export declare const QUOTA_REFRESH_MIN_INTERVAL_MS = 30000;
6
+ export type QuotaState = 'available' | 'unauthenticated' | 'forbidden' | 'rate-limited' | 'offline' | 'timeout' | 'protocol-drift';
7
+ export type QuotaWindowKind = '5h' | 'weekly';
8
+ export interface QuotaWindowView {
9
+ readonly window: QuotaWindowKind;
10
+ readonly remainingFraction: number;
11
+ readonly resetTime: string;
12
+ }
13
+ export interface QuotaGroupView {
14
+ readonly group: 'gemini' | 'non-gemini';
15
+ readonly modelCount: number;
16
+ readonly windows: readonly QuotaWindowView[];
17
+ }
18
+ export interface QuotaStatusView {
19
+ readonly state: QuotaState;
20
+ readonly checkedAt?: string;
21
+ readonly groups?: readonly QuotaGroupView[];
22
+ }
23
+ export interface QuotaService {
24
+ refresh(signal?: AbortSignal, force?: boolean): Promise<QuotaStatusView>;
25
+ status(): QuotaStatusView;
26
+ dispose(): Promise<void>;
27
+ }
28
+ export interface QuotaServiceOptions {
29
+ readonly auth: Pick<CredentialCoordinator, 'credential'> | {
30
+ credential(signal?: AbortSignal): Promise<HostCredential | undefined>;
31
+ };
32
+ readonly transport?: PrivateTransport;
33
+ readonly transportOptions?: PrivateTransportOptions;
34
+ readonly now?: () => number;
35
+ readonly minIntervalMs?: number;
36
+ }
37
+ /** Normalize only validated, display-safe quota facts from a provider response. */
38
+ export declare function normalizeQuotaResponse(value: unknown, now?: number): QuotaStatusView;
39
+ export declare class QuotaNormalizationError extends Error {
40
+ constructor(message: string);
41
+ }
42
+ export declare function createQuotaService(options: QuotaServiceOptions): QuotaService;
43
+ //# sourceMappingURL=quota.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quota.d.ts","sourceRoot":"","sources":["../../src/quota.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAK/E,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACxF,OAAO,EAML,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC7B,MAAM,wBAAwB,CAAA;AAG/B,eAAO,MAAM,0BAA0B,iDAA4E,CAAA;AACnH,eAAO,MAAM,6BAA6B,QAAS,CAAA;AAEnD,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,iBAAiB,GAAG,WAAW,GAAG,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,gBAAgB,CAAA;AAClI,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,QAAQ,CAAA;AAE7C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,YAAY,CAAA;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAA;CAC7C;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,cAAc,EAAE,CAAA;CAC5C;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IACxE,MAAM,IAAI,eAAe,CAAA;IACzB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE,YAAY,CAAC,GAAG;QAAE,UAAU,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAA;KAAE,CAAA;IACpI,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAA;IACrC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,uBAAuB,CAAA;IACnD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC;AAED,mFAAmF;AACnF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,SAAa,GAAG,eAAe,CA2DxF;AAED,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY,CAwC7E"}
@@ -0,0 +1,11 @@
1
+ /** Literal HTTP/1.1 dispatcher for the fixed Antigravity wire profile. */
2
+ export interface RawPrivateRequest {
3
+ readonly url: string;
4
+ readonly accessToken: string;
5
+ readonly body: string | Uint8Array;
6
+ readonly signal?: AbortSignal;
7
+ readonly responseHeaderTimeoutMs: number;
8
+ }
9
+ /** Dispatch one request using the immutable plugin-owned Wire Identity. */
10
+ export declare function createRawPrivateDispatcher(): (input: RawPrivateRequest) => Promise<Response>;
11
+ //# sourceMappingURL=raw-http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raw-http.d.ts","sourceRoot":"","sources":["../../src/raw-http.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAe1E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;IAC7B,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAA;CACzC;AAWD,2EAA2E;AAC3E,wBAAgB,0BAA0B,IAAI,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,QAAQ,CAAC,CAiC5F"}
@@ -0,0 +1,30 @@
1
+ /** Bounded, block-aligned replay metadata for Antigravity model turns. */
2
+ import type { ReplayEnvelope, ToolSchema } from '@deepseek-ai/dsh-llm';
3
+ import type { Message } from '@deepseek-ai/dsh-llm';
4
+ export declare const ANTIGRAVITY_REPLAY_VERSION: 1;
5
+ export type ReplayBlockKind = 'text' | 'reasoning' | 'tool-call';
6
+ export interface AntigravityReplayBlock {
7
+ readonly kind: ReplayBlockKind;
8
+ readonly signature?: string;
9
+ }
10
+ export interface AntigravityReplayResponse {
11
+ readonly version: typeof ANTIGRAVITY_REPLAY_VERSION;
12
+ readonly provider: 'google-antigravity';
13
+ readonly model: string;
14
+ readonly family: 'gemini' | 'claude' | 'gpt-oss' | 'unknown';
15
+ readonly finish?: string;
16
+ }
17
+ export interface AntigravityReplayState extends ReplayEnvelope {
18
+ readonly response: AntigravityReplayResponse;
19
+ readonly blocks: readonly AntigravityReplayBlock[];
20
+ }
21
+ /** Keep only provider-issued signatures and bounded response facts. */
22
+ export declare function createReplayState(model: string, family: AntigravityReplayResponse['family'], finish: string | undefined, blocks: readonly AntigravityReplayBlock[]): AntigravityReplayState;
23
+ /** Validate replay metadata before it can affect a later private request. */
24
+ export declare function compatibleReplayState(message: Message, provider: string, model: string, _blockKinds?: readonly ReplayBlockKind[]): AntigravityReplayState | undefined;
25
+ /** Return the block family without allowing a model alias to cross families. */
26
+ export declare function antigravityModelFamily(model: string): AntigravityReplayResponse['family'];
27
+ /** Convert DSH schemas to the small function-declaration subset accepted privately. */
28
+ export declare function sanitizeToolSchemas(tools: readonly ToolSchema[] | undefined): readonly Record<string, unknown>[];
29
+ export declare function buildFunctionDeclarations(tools: readonly ToolSchema[] | undefined): readonly Record<string, unknown>[];
30
+ //# sourceMappingURL=replay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../src/replay.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAE1E,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAEnD,eAAO,MAAM,0BAA0B,EAAG,CAAU,CAAA;AAIpD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,CAAA;AAEhE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,EAAE,OAAO,0BAA0B,CAAA;IACnD,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAA;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAA;IAC5D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAA;IAC5C,QAAQ,CAAC,MAAM,EAAE,SAAS,sBAAsB,EAAE,CAAA;CACnD;AAED,uEAAuE;AACvE,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,yBAAyB,CAAC,QAAQ,CAAC,EAC3C,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,EAAE,SAAS,sBAAsB,EAAE,GACxC,sBAAsB,CAgBxB;AAED,6EAA6E;AAC7E,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,SAAS,eAAe,EAAE,GACvC,sBAAsB,GAAG,SAAS,CAmCpC;AAED,gFAAgF;AAChF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAMzF;AAED,uFAAuF;AACvF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAOhH;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAMtH"}
@@ -0,0 +1,33 @@
1
+ /** Browser-safe, value-free RPC contract for the Antigravity login flow. */
2
+ import type { RpcResult } from '@deepseek-ai/dsh-host-apiproxy/api';
3
+ import type { AntigravityStatusView, LoginActionResult, LoginStartResult, RiskAcknowledgementResult } from './status.ts';
4
+ import type { RevokeActionResult } from './credential-coordinator.ts';
5
+ import type { QuotaStatusView } from './quota.ts';
6
+ import { type AntigravityModelCatalogView } from './model-catalog.ts';
7
+ export declare const ANTIGRAVITY_AUTH_RPC_CHANNEL: "/antigravity-auth";
8
+ export interface AntigravityAuthRpcClient {
9
+ status(signal?: AbortSignal): Promise<RpcResult<{
10
+ status: AntigravityStatusView;
11
+ }>>;
12
+ acknowledgeRisk(signal?: AbortSignal): Promise<RpcResult<RiskAcknowledgementResult>>;
13
+ login(signal?: AbortSignal): Promise<RpcResult<LoginStartResult>>;
14
+ cancelLogin(signal?: AbortSignal): Promise<RpcResult<LoginActionResult>>;
15
+ logout(signal?: AbortSignal): Promise<RpcResult<{
16
+ state: 'logged-out';
17
+ }>>;
18
+ revoke(signal?: AbortSignal): Promise<RpcResult<RevokeActionResult>>;
19
+ models(signal?: AbortSignal, force?: boolean): Promise<RpcResult<AntigravityModelCatalogView>>;
20
+ usage?(signal?: AbortSignal, force?: boolean): Promise<RpcResult<QuotaStatusView>>;
21
+ }
22
+ export interface AntigravityAuthConnectionRpc {
23
+ call(channel: string, endpoint: string, payload: unknown, signal?: AbortSignal): Promise<RpcResult<unknown>>;
24
+ }
25
+ /** Build the browser face over the plugin-owned loopback channel. */
26
+ export declare function createAntigravityAuthRpcClient(rpc: AntigravityAuthConnectionRpc): AntigravityAuthRpcClient;
27
+ /** Parse a closed, value-safe advisory model catalog received by the browser. */
28
+ export declare function parseModelCatalogResult(value: unknown): AntigravityModelCatalogView | undefined;
29
+ /** Parse a value-safe, normalized quota envelope received by the browser. */
30
+ export declare function parseUsageResult(value: unknown): QuotaStatusView | undefined;
31
+ /** Parse the closed status envelope received by the browser. */
32
+ export declare function parseStatusResult(value: unknown): AntigravityStatusView | undefined;
33
+ //# sourceMappingURL=rpc-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc-contract.d.ts","sourceRoot":"","sources":["../../src/rpc-contract.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAE5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAA;AAEnE,OAAO,KAAK,EACV,qBAAqB,EAIrB,iBAAiB,EAEjB,gBAAgB,EAEhB,yBAAyB,EAC1B,MAAM,aAAa,CAAA;AAEpB,OAAO,KAAK,EAA8D,kBAAkB,EAAkD,MAAM,6BAA6B,CAAA;AACjL,OAAO,KAAK,EAA8B,eAAe,EAAmB,MAAM,YAAY,CAAA;AAC9F,OAAO,EAGL,KAAK,2BAA2B,EACjC,MAAM,oBAAoB,CAAA;AAI3B,eAAO,MAAM,4BAA4B,EAAG,mBAA4B,CAAA;AAExE,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;QAAE,MAAM,EAAE,qBAAqB,CAAA;KAAE,CAAC,CAAC,CAAA;IACnF,eAAe,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC,CAAA;IACpF,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAA;IACjE,WAAW,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAA;IACxE,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;QAAE,KAAK,EAAE,YAAY,CAAA;KAAE,CAAC,CAAC,CAAA;IACzE,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAA;IACpE,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC,CAAA;IAC9F,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAA;CACnF;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,CACF,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;CAC/B;AAED,qEAAqE;AACrE,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,4BAA4B,GAAG,wBAAwB,CAc1G;AA4CD,iFAAiF;AACjF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,2BAA2B,GAAG,SAAS,CA0B/F;AAED,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,GAAG,SAAS,CA2B5E;AAED,gEAAgE;AAChE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,qBAAqB,GAAG,SAAS,CAGnF"}
@@ -0,0 +1,7 @@
1
+ /** Closed, browser-safe RPC error vocabulary shared by Host and client. */
2
+ import { type LoginErrorCode } from './login-types.ts';
3
+ export declare const SAFE_RPC_ERROR_CODES: readonly ["bad-request", "invalid-method", "invalid-path", "invalid-host", "duplicate-parameter", "invalid-parameters", "missing-state", "state-mismatch", "missing-code", "oauth-error", "no-pending-flow", "expired", "cancelled", "port-conflict", "token-exchange-failed", "project-unavailable", "project-authentication-failed", "project-forbidden", "project-rate-limited", "project-offline", "project-malformed", "project-protocol-drift", "project-validation-failed", "persistence-failed", "credential-conflict", "invalid-callback-url", "risk-acknowledgement-required", "internal", "invalid-grant", "network", "timeout", "rate-limited", "server-error", "http-error", "invalid-response", "conflict", "storage"];
4
+ export type SafeRpcErrorCode = (typeof SAFE_RPC_ERROR_CODES)[number];
5
+ export declare function isSafeRpcErrorCode(value: unknown): value is SafeRpcErrorCode;
6
+ export declare function safeRpcErrorMessage(code: SafeRpcErrorCode | LoginErrorCode): string;
7
+ //# sourceMappingURL=rpc-vocabulary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc-vocabulary.d.ts","sourceRoot":"","sources":["../../src/rpc-vocabulary.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAczE,eAAO,MAAM,oBAAoB,ssBAIvB,CAAA;AAEV,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAA;AAyCpE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAE5E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,cAAc,GAAG,MAAM,CAEnF"}
@@ -0,0 +1,11 @@
1
+ /** Host dispatcher for the Antigravity OAuth loopback RPC channel. */
2
+ import type { RpcResult } from '@deepseek-ai/dsh-host-apiproxy/api';
3
+ import type { BootstrapStatusService } from './status.ts';
4
+ import type { QuotaStatusView } from './quota.ts';
5
+ import type { AntigravityModelCatalogService } from './model-catalog.ts';
6
+ export { ANTIGRAVITY_AUTH_RPC_CHANNEL } from './rpc-contract.ts';
7
+ /** Dispatch closed, value-safe requests; callback URLs are never echoed. */
8
+ export declare function handleAntigravityAuthRpc(service: Pick<BootstrapStatusService, 'status' | 'acknowledgeRisk' | 'startLogin' | 'cancelLogin' | 'logout' | 'revoke'> & {
9
+ usage?: (signal?: AbortSignal, force?: boolean) => Promise<QuotaStatusView>;
10
+ }, endpoint: string, payload: unknown, signal?: AbortSignal, modelCatalog?: AntigravityModelCatalogService): Promise<RpcResult<unknown>>;
11
+ //# sourceMappingURL=rpc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/rpc.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAA;AAGnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAA;AAExE,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAA;AAEhE,4EAA4E;AAC5E,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,IAAI,CAAC,sBAAsB,EAAE,QAAQ,GAAG,iBAAiB,GAAG,YAAY,GAAG,aAAa,GAAG,QAAQ,GAAG,QAAQ,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;CAAE,EAC1M,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,WAAW,EACpB,YAAY,CAAC,EAAE,8BAA8B,GAC5C,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CA+C7B"}
@@ -0,0 +1,3 @@
1
+ /** Shared bounded text predicate for Host trust-boundary values. */
2
+ export declare function isBoundedSafeText(value: unknown, maxLength: number, minLength?: number): value is string;
3
+ //# sourceMappingURL=safe-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-text.d.ts","sourceRoot":"","sources":["../../src/safe-text.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAEpE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,SAAI,GAAG,KAAK,IAAI,MAAM,CAanG"}
@@ -0,0 +1,42 @@
1
+ /** Dedicated grounded Web Search provider and independently mounted Search row. */
2
+ import type { Context } from '@deepseek-ai/cordis';
3
+ import z from '@deepseek-ai/schemastery';
4
+ import type { WebSearchProvider, WebSearchRequest, WebSearchResult } from '@deepseek-ai/dsh-web';
5
+ import type { CredentialCoordinator, HostCredential } from './credential-coordinator.ts';
6
+ import { type PrivateTransport } from './private-transport.ts';
7
+ export declare const name = "antigravity-search";
8
+ export declare const inject: string[];
9
+ export declare const ANTIGRAVITY_SEARCH_PROVIDER_ID = "antigravity";
10
+ export declare const ANTIGRAVITY_SEARCH_ENDPOINT: `${string}/v1internal:generateContent`;
11
+ export declare const ANTIGRAVITY_SEARCH_MODEL = "antigravity-gemini-3.7-flash";
12
+ export declare const ANTIGRAVITY_SEARCH_SETTINGS_NAMESPACE: import("@deepseek-ai/dsh-settings").SettingsNamespace;
13
+ export interface AntigravitySearchSettings {
14
+ enabled: boolean;
15
+ model: string;
16
+ maxResults: number;
17
+ }
18
+ export interface Config extends AntigravitySearchSettings {
19
+ }
20
+ export declare const Config: z<Config>;
21
+ export interface AntigravitySearchProviderOptions {
22
+ readonly auth: Pick<CredentialCoordinator, 'credential'> | {
23
+ credential(signal?: AbortSignal): Promise<HostCredential | undefined>;
24
+ };
25
+ readonly enabled?: () => boolean;
26
+ readonly settings?: () => AntigravitySearchSettings;
27
+ readonly transport?: PrivateTransport;
28
+ readonly maxResponseBytes?: number;
29
+ }
30
+ export declare class AntigravitySearchProvider implements WebSearchProvider {
31
+ private readonly options;
32
+ readonly id = "antigravity";
33
+ private readonly enabled;
34
+ private readonly transport;
35
+ constructor(options: AntigravitySearchProviderOptions);
36
+ available(): boolean;
37
+ search(request: WebSearchRequest, signal?: AbortSignal): Promise<WebSearchResult>;
38
+ }
39
+ export declare function buildGroundedSearchPayload(query: string, credential: Pick<HostCredential, 'projectId'>, model?: string): Record<string, unknown>;
40
+ /** Mount only the public Web Search seam; no fetch provider is registered. */
41
+ export declare function apply(ctx?: Context, config?: Config): void;
42
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/search.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAEnF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,CAAC,MAAM,0BAA0B,CAAA;AAGxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAmB,MAAM,sBAAsB,CAAA;AAGjH,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACxF,OAAO,EASL,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAA;AAK/B,eAAO,MAAM,IAAI,uBAAuB,CAAA;AACxC,eAAO,MAAM,MAAM,UAA6B,CAAA;AAChD,eAAO,MAAM,8BAA8B,gBAAgB,CAAA;AAC3D,eAAO,MAAM,2BAA2B,wCAAmE,CAAA;AAC3G,eAAO,MAAM,wBAAwB,iCAAiC,CAAA;AACtE,eAAO,MAAM,qCAAqC,uDAA0C,CAAA;AAE5F,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,MAAO,SAAQ,yBAAyB;CAAG;AAE5D,eAAO,MAAM,MAAM,EAAE,CAAC,CAAC,MAAM,CAI3B,CAAA;AAEF,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE,YAAY,CAAC,GAAG;QAAE,UAAU,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAA;KAAE,CAAA;IACpI,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,OAAO,CAAA;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,yBAAyB,CAAA;IACnD,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAA;IACrC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CACnC;AAED,qBAAa,yBAA0B,YAAW,iBAAiB;IAKrD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC,QAAQ,CAAC,EAAE,iBAAiC;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;gBAEf,OAAO,EAAE,gCAAgC;IAKtE,SAAS,IAAI,OAAO;IAId,MAAM,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;CAiDxF;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,EAAE,KAAK,SAA2B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAUlK;AAED,8EAA8E;AAC9E,wBAAgB,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,GAAE,MAA2E,GAAG,IAAI,CAqB9H"}
@@ -0,0 +1,62 @@
1
+ /** Value-free login and capability status shared by Host and browser code. */
2
+ import type { LoginActionResult, LoginCompletionResult, LoginErrorCode, LoginPhase, LoginStartResult, LoginStatusView } from './login-types.ts';
3
+ import type { CredentialStatusView, LogoutResult, RevokeActionResult, RevokeStatusView } from './credential-coordinator.ts';
4
+ import type { QuotaStatusView } from './quota.ts';
5
+ export declare const ANTIGRAVITY_PLUGIN_ID: "dsh-antigravity-auth";
6
+ export declare const CAPABILITY_ROW_IDS: readonly ["auth-llm", "search", "image", "video"];
7
+ export declare const LLM_FAMILY_IDS: readonly ["gemini", "claude", "gpt-oss"];
8
+ export type CapabilityRowId = (typeof CAPABILITY_ROW_IDS)[number];
9
+ export type LlmFamilyId = (typeof LLM_FAMILY_IDS)[number];
10
+ export type CapabilityGateState = 'available' | 'disabled' | 'poc-pending' | 'protocol-drift';
11
+ export type CapabilityGateReasonCode = 'gate-not-run' | 'project-unavailable' | 'capability-ready' | 'unauthenticated' | 'rate-limited' | 'cancelled' | 'gate-0-failed' | 'gate-failed' | 'unsupported-video' | 'protocol-drift';
12
+ export declare const CAPABILITY_GATE_OUTCOMES: readonly ["passed", "unauthenticated", "rate-limited", "cancelled", "attribution-rejected", "protocol-drift", "unsupported-video", "failed"];
13
+ export type CapabilityGateOutcome = (typeof CAPABILITY_GATE_OUTCOMES)[number];
14
+ export interface CapabilityGateResult {
15
+ readonly outcome: CapabilityGateOutcome;
16
+ readonly checkedAt: string;
17
+ }
18
+ export interface CapabilityGateEvidence {
19
+ /** Credential-lineage fence; evidence from another account is ignored. */
20
+ readonly subject?: string;
21
+ readonly gate0?: CapabilityGateResult;
22
+ readonly llmFamilies?: Readonly<Partial<Record<LlmFamilyId, CapabilityGateResult>>>;
23
+ readonly capabilities?: Readonly<Partial<Record<CapabilityRowId, CapabilityGateResult>>>;
24
+ }
25
+ export type { LoginActionResult, LoginErrorCode, LoginPhase, LoginStartResult, LoginStatusView };
26
+ export interface CapabilityGateStatus {
27
+ readonly id: CapabilityRowId;
28
+ readonly state: CapabilityGateState;
29
+ readonly reasonCode: CapabilityGateReasonCode;
30
+ }
31
+ export interface AntigravityStatusView {
32
+ readonly pluginId: typeof ANTIGRAVITY_PLUGIN_ID;
33
+ readonly phase: 'bootstrap';
34
+ readonly privateSelfUse: true;
35
+ readonly singleAccount: true;
36
+ readonly riskAcknowledgementRequired: true;
37
+ readonly riskAcknowledged: boolean;
38
+ readonly login: LoginStatusView;
39
+ /** Credential state is value-safe; tokens and grant errors never cross this boundary. */
40
+ readonly credential?: CredentialStatusView;
41
+ readonly revoke?: RevokeStatusView;
42
+ readonly capabilities: readonly CapabilityGateStatus[];
43
+ }
44
+ export interface RiskAcknowledgementResult {
45
+ readonly acknowledged: true;
46
+ }
47
+ export interface BootstrapStatusService {
48
+ status(): Promise<AntigravityStatusView>;
49
+ acknowledgeRisk(): Promise<RiskAcknowledgementResult>;
50
+ startLogin(): Promise<LoginStartResult>;
51
+ completeCallback(callbackUrl: string): Promise<LoginCompletionResult>;
52
+ cancelLogin(): Promise<{
53
+ readonly phase: LoginPhase;
54
+ readonly errorCode?: LoginErrorCode;
55
+ }>;
56
+ logout(): Promise<LogoutResult>;
57
+ revoke(confirmed: boolean, signal?: AbortSignal): Promise<RevokeActionResult>;
58
+ usage?(signal?: AbortSignal, force?: boolean): Promise<QuotaStatusView>;
59
+ dispose(): Promise<void>;
60
+ }
61
+ export declare function createStatusView(riskAcknowledged: boolean, login: LoginStatusView, credential?: CredentialStatusView, revoke?: RevokeStatusView, gates?: CapabilityGateEvidence): AntigravityStatusView;
62
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/status.ts"],"names":[],"mappings":"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"}