@opengeni/sdk 0.33.1 → 0.34.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/client.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { type SessionEventStreamTransport, type StreamSessionEventsOptions } from "./stream";
2
2
  import { type WorkspaceControlStreamTransport } from "./workspace-control-stream";
3
- import type { AccessContext, AddWorkspaceMemberRequest, ApiKey, BillingEntitlementsResponse, CodexAccount, CodexAccountsResponse, CodexRotationSettings, CodexOverviewResponse, CodexAllocatorUpdate, CodexConnectionStatus, CodexConnectPoll, CodexConnectStart, CodexUsage, CodexUsageMap, BillingSummary, BillingUsageResponse, InsightsRange, WorkspaceInsightsResponse, CapabilityCatalogItem, CapabilityCatalogResponse, CapabilityInstallation, AddDocumentRequest, CreateKnowledgeDropRequest, MoveDocumentRequest, ClientConfig, WorkspaceModelCatalogResponse, ClientSessionEventInput, CompactSessionContextResult, ConnectionMetadata, CreateApiKeyRequest, CreateApiKeyResponse, CreateCapabilityCatalogItemRequest, CreateCheckoutRequest, CreateCheckoutResponse, OpenGeniSlackBotInstallRequest, OpenGeniSlackBotInstallStart, CreateConnectionRequest, CreateDocumentBaseRequest, CreateFileUploadRequest, CreateFileUploadResponse, CreateGitHubAppManifestRequest, CreateGitHubAppManifestResponse, CreateKnowledgeMemoryRequest, CreateScheduledTaskRequest, CreateSessionRequest, CreateSessionResponse, CreateVariableSetRequest, CreateRigRequest, CreateWorkspaceRequest, DeviceEnrollmentApproveResponse, DeviceEnrollmentDenyResponse, DeviceEnrollmentLookupResponse, MintEnrollTokenResponse, DiscoverMcpCapabilitiesResponse, Document, DocumentBase, DocumentSearchRequest, DocumentSearchResponse, EnableCapabilityRequest, EnablePackRequest, FileAsset, FileDownloadUrlResponse, GetPackResponse, GitHubAppInfo, GitHubRepositoriesResponse, KnowledgeMemory, KnowledgeMemorySearchRequest, ListPacksResponse, MachinesResponse, MetricSample, SwapActiveSandboxRequest, SwapActiveSandboxResponse, PackInstallation, LatencyMode, ReasoningEffort, RetainedArtifactContent, RetainedArtifactContentOptions, RetainedArtifactMetadata, RegisterCapabilityPackRequest, ResourceRef, ScheduledTask, ScheduledTaskRun, Session, SessionListResponse, UpdateSessionPinRequest, SessionEvent, SessionEventCompactResult, SessionEventCompactResultOptions, SessionEventListOptions, SessionEventPage, SessionGoal, SessionHumanInputRequest, SessionLineageResponse, SessionMcpCredentialUpdateInput, UpdateSessionMcpApprovalPolicyRequest, UpdateSessionMcpApprovalPolicyResponse, SessionQueueSnapshot, SessionQueueMutationResponse, ComposerDraft, DeleteSessionQueueItemRequest, EditSessionQueueItemRequest, MoveSessionQueueItemRequest, NewSessionDraft, SaveComposerDraftRequest, SaveNewSessionDraftRequest, SteerSessionQueueItemRequest, SessionControlResponse, WorkspaceInferenceControlResponse, WorkspaceControlEvent, SessionTurn, SubmitHumanInputResponseRequest, SessionCapabilities, AttachViewerRequest, AttachViewerResponse, AcknowledgeStreamRequest, AcknowledgeStreamResponse, ViewerHeartbeatRequest, ViewerHeartbeatResponse, FsListRequest, FsListResponse, FsReadRequest, FsReadResponse, FsWriteRequest, FsWriteResponse, FsDeleteRequest, FsDeleteResponse, FsMoveRequest, FsMoveResponse, FsMkdirRequest, FsMkdirResponse, GitStatusRequest, GitStatusResponse, GitDiffRequest, GitDiffResponse, GitLogRequest, GitLogResponse, GitShowRequest, GitShowResponse, GetWorkspaceCaptureResponse, GetWorkspaceCaptureFileResponse, TerminalExecRequest, TerminalExecResponse, PtyOpenRequest, PtyOpenResponse, PtyWriteRequest, PtyResizeRequest, PtyCloseRequest, ToolRef, TranscribeAudioResponse, UpdateConnectionRequest, UpdateKnowledgeMemoryRequest, UpdateScheduledTaskRequest, UpdateSessionGoalRequest, UpdateSessionRequest, UpdateSessionToolPolicyRequest, UpdateVariableSetRequest, UpdateRigRequest, UpdateWorkspaceMemberRequest, UpdateWorkspaceRequest, UpdateWorkspaceSettingsRequest, SetWorkspaceDefaultRigRequest, UploadFileInput, VariableSet, VariableSetVariableMetadata, Rig, RigVersion, RigChange, ProposeRigChangeRequest, WorkspaceMember, WorkspaceMemorySearchRequest, WorkspaceMemorySearchResponse, WorkspaceRegisteredPack, Workspace, OAuthStartRequest, OAuthStartResponse } from "./types";
3
+ import type { AccessContext, AddWorkspaceMemberRequest, ApiKey, BillingEntitlementsResponse, CodexAccount, CodexAccountsResponse, CodexRotationSettings, CodexOverviewResponse, CodexAllocatorUpdate, CodexConnectionStatus, CodexConnectPoll, CodexConnectStart, CodexUsage, CodexUsageMap, BillingSummary, BillingUsageResponse, InsightsRange, WorkspaceInsightsResponse, CapabilityCatalogItem, CapabilityCatalogResponse, CapabilityInstallation, AddDocumentRequest, CreateKnowledgeDropRequest, MoveDocumentRequest, ClientConfig, WorkspaceModelCatalogResponse, ClientSessionEventInput, CompactSessionContextResult, ConnectionMetadata, CreateApiKeyRequest, CreateApiKeyResponse, CreateCapabilityCatalogItemRequest, CreateCheckoutRequest, CreateCheckoutResponse, OpenGeniSlackBotInstallRequest, OpenGeniSlackBotInstallStart, CreateConnectionRequest, CreateDocumentBaseRequest, CreateFileUploadRequest, CreateFileUploadResponse, CreateGitHubAppManifestRequest, CreateGitHubAppManifestResponse, CreateKnowledgeMemoryRequest, CreateScheduledTaskRequest, CreateSessionRequest, CreateSessionResponse, CreateVariableSetRequest, CreateRigRequest, CreateWorkspaceRequest, DeviceEnrollmentApproveResponse, DeviceEnrollmentDenyResponse, DeviceEnrollmentLookupResponse, MintEnrollTokenResponse, DiscoverMcpCapabilitiesResponse, Document, DocumentBase, DocumentSearchRequest, DocumentSearchResponse, EnableCapabilityRequest, EnablePackRequest, FileAsset, FileDownloadUrlResponse, GetPackResponse, GitHubAppInfo, GitHubRepositoriesResponse, KnowledgeMemory, KnowledgeMemorySearchRequest, ListPacksResponse, MachinesResponse, MetricSample, SwapActiveSandboxRequest, SwapActiveSandboxResponse, PackInstallation, LatencyMode, ReasoningEffort, RetainedArtifactContent, RetainedArtifactContentOptions, RetainedArtifactMetadata, RegisterCapabilityPackRequest, ResourceRef, ScheduledTask, ScheduledTaskRun, Session, SessionListResponse, UpdateSessionPinRequest, SessionEvent, SessionEventCompactResult, SessionEventCompactResultOptions, SessionEventListOptions, SessionEventPage, SessionGoal, SessionHumanInputRequest, SessionLineageResponse, SessionMcpCredentialUpdateInput, UpdateSessionMcpApprovalPolicyRequest, UpdateSessionMcpApprovalPolicyResponse, SessionQueueSnapshot, SessionQueueMutationResponse, ComposerDraft, DeleteSessionQueueItemRequest, EditSessionQueueItemRequest, MoveSessionQueueItemRequest, NewSessionDraft, SaveComposerDraftRequest, SaveNewSessionDraftRequest, SteerSessionQueueItemRequest, SessionControlResponse, WorkspaceInferenceControlResponse, WorkspaceControlEvent, SessionTurn, SubmitHumanInputResponseRequest, SessionCapabilities, AttachViewerRequest, AttachViewerResponse, AcknowledgeStreamRequest, AcknowledgeStreamResponse, ViewerHeartbeatRequest, ViewerHeartbeatResponse, FsListRequest, FsListResponse, FsReadRequest, FsReadResponse, FsWriteRequest, FsWriteResponse, FsDeleteRequest, FsDeleteResponse, FsMoveRequest, FsMoveResponse, FsMkdirRequest, FsMkdirResponse, GitStatusRequest, GitStatusResponse, GitDiffRequest, GitDiffResponse, GitLogRequest, GitLogResponse, GitShowRequest, GitShowResponse, GetWorkspaceCaptureResponse, GetWorkspaceCaptureFileResponse, TerminalExecRequest, TerminalExecResponse, PtyOpenRequest, PtyOpenResponse, PtyWriteRequest, PtyResizeRequest, PtyCloseRequest, ToolRef, TranscribeAudioResponse, UpdateConnectionRequest, UpdateKnowledgeMemoryRequest, UpdateScheduledTaskRequest, UpdateSessionGoalRequest, UpdateSessionRequest, UpdateSessionToolPolicyRequest, UpdateVariableSetRequest, UpdateRigRequest, UpdateWorkspaceMemberRequest, UpdateWorkspaceRequest, UpdateWorkspaceSettingsRequest, SetWorkspaceDefaultRigRequest, UploadFileInput, VariableSet, VariableSetVariableMetadata, Rig, RigVersion, RigChange, ProposeRigChangeRequest, WorkspaceMember, WorkspaceMemorySearchRequest, WorkspaceMemorySearchResponse, WorkspaceRegisteredPack, Workspace, OAuthStartRequest, OAuthStartResponse, SocialConnection, SocialOAuthStartRequest } from "./types";
4
4
  import type { ActivateWorkspaceInstructionPolicyRequest, CreateWorkspaceInstructionPolicyDraftRequest, ImportLegacyWorkspaceInstructionPolicyDraftRequest, RollbackWorkspaceInstructionPolicyRequest, WorkspaceInstructionPolicyActivationResponse, WorkspaceInstructionPolicyDiffRequest, WorkspaceInstructionPolicyDiffResponse, WorkspaceInstructionPolicyListOptions, WorkspaceInstructionPolicyListResponse, WorkspaceInstructionPolicyRevision } from "./workspace-instruction-policies";
5
5
  import type { WorkspaceStateResponse } from "./workspace-state";
6
6
  import type { ActivatePreferenceRegistryRevisionRequest, ChangePreferenceRegistryScopeRequest, CorrectPreferenceRegistryRequest, CreatePreferenceRegistryProposalRequest, DeactivatePreferenceRegistryRequest, PreferenceRegistryDetailResponse, PreferenceRegistryFullContent, PreferenceRegistryListOptions, PreferenceRegistryListResponse, PreferenceRegistryMutationResponse, PreferenceRegistryRecord, PreferenceRegistrySnapshot, RejectPreferenceRegistryProposalRequest, SupersedePreferenceRegistryRequest } from "./preference-registry";
@@ -552,6 +552,16 @@ export declare class OpenGeniClient {
552
552
  deleteConnection(workspaceId: string, connectionId: string): Promise<ConnectionMetadata>;
553
553
  /** Start an OAuth connection flow; redirect the user to the returned `authorizationUrl`. */
554
554
  startConnectionOAuth(workspaceId: string, request: OAuthStartRequest, options?: OpenGeniRequestOptions): Promise<OAuthStartResponse>;
555
+ /**
556
+ * Start a first-party social OAuth flow (X / Reddit); redirect the user to
557
+ * the returned `authorizationUrl`. The completed connection lands in
558
+ * `listSocialConnections`.
559
+ */
560
+ startSocialOAuth(workspaceId: string, request: SocialOAuthStartRequest): Promise<OAuthStartResponse>;
561
+ /** Connected social accounts (X / Reddit / pushed custom providers). */
562
+ listSocialConnections(workspaceId: string): Promise<SocialConnection[]>;
563
+ /** Drop the stored social OAuth credential and disable the connection. */
564
+ disconnectSocialConnection(workspaceId: string, connectionId: string): Promise<SocialConnection>;
555
565
  /** Public, immutably-cached URL for a catalog item's logo, or null when the item has none. */
556
566
  catalogAssetUrl(logoAssetPath: string | null): string | null;
557
567
  /** GitHub App server configuration plus truthful workspace binding status. */
package/dist/core.js CHANGED
@@ -8,7 +8,7 @@ import {
8
8
  OpenGeniStreamError,
9
9
  isRetryableStreamError,
10
10
  resolveWorkspaceVoiceInputEnabled
11
- } from "./chunk-YROWFD7R.js";
11
+ } from "./chunk-54EKPXXP.js";
12
12
  export {
13
13
  OPENGENI_API_CONTRACT_HEADER,
14
14
  OPENGENI_API_CONTRACT_REVISION,
package/dist/index.js CHANGED
@@ -21,7 +21,7 @@ import {
21
21
  resolveWorkspaceVoiceInputEnabled,
22
22
  streamSessionEvents,
23
23
  streamWorkspaceControlEvents
24
- } from "./chunk-YROWFD7R.js";
24
+ } from "./chunk-54EKPXXP.js";
25
25
 
26
26
  // src/artifact-client.ts
27
27
  var OpenGeniClient2 = class extends OpenGeniClient {
package/dist/types.d.ts CHANGED
@@ -387,6 +387,29 @@ export type OAuthStartResponse = {
387
387
  authorizationUrl: string | null;
388
388
  expiresAt: string;
389
389
  };
390
+ export type SocialProvider = "x" | "reddit" | "linkedin" | "instagram" | "facebook" | "tiktok" | "youtube" | "custom";
391
+ export type SocialConnectionStatus = "connected" | "needs_reauth" | "disabled";
392
+ export type SocialConnection = {
393
+ id: string;
394
+ accountId: string;
395
+ workspaceId: string;
396
+ provider: SocialProvider;
397
+ accountHandle: string;
398
+ accountName: string | null;
399
+ externalAccountId: string | null;
400
+ status: SocialConnectionStatus;
401
+ scopes: string[];
402
+ credentialRef: string | null;
403
+ tokenMetadata: Record<string, unknown>;
404
+ metadata: Record<string, unknown>;
405
+ createdAt: string;
406
+ updatedAt: string;
407
+ };
408
+ export type SocialOAuthStartRequest = {
409
+ provider: "x" | "reddit";
410
+ scopes?: string[] | undefined;
411
+ returnPath?: string | undefined;
412
+ };
390
413
  /** The immutable principal whose authority accepted a session or turn. */
391
414
  export type TurnInitiator = {
392
415
  kind: "subject" | "service";
@@ -1319,7 +1342,7 @@ export type KnownPermission = (typeof KNOWN_PERMISSIONS)[number];
1319
1342
  * can introduce permissions without breaking older SDK consumers.
1320
1343
  */
1321
1344
  export type Permission = KnownPermission | (string & {});
1322
- export type FirstPartyMcpToolName = "set_session_title" | "goal_set" | "goal_update" | "goal_complete" | "goal_pause" | "memory_search" | "memory_save" | "memory_correct" | "preference_registry_summary" | "preference_registry_get" | "sandboxes_list" | "sandbox_attach" | "sandbox_swap" | "run_on" | "sandbox_provision" | "rig_list" | "rig_get" | "rig_propose_change" | "rig_verify" | "rig_promote" | "sessions_list" | "session_get" | "session_events" | "session_create" | "session_send_message" | "session_pause" | "session_resume" | "session_steer" | "set_other_session_title" | "variable_set_list" | "environment_list" | "variable_set_set_variable" | "environment_set_variable" | "github_connect_link" | "github_token" | "github_repositories_list" | "social_connections_list" | "social_posts_recent" | "social_daily_analysis_context" | "scheduled_tasks_list" | "scheduled_tasks_get" | "scheduled_tasks_create" | "scheduled_tasks_update" | "scheduled_tasks_pause" | "scheduled_tasks_resume" | "scheduled_tasks_trigger" | "scheduled_tasks_delete" | "scheduled_task_runs_list" | "slack_bot_list_channels" | "slack_bot_channel_history" | "slack_bot_thread_replies" | "slack_bot_list_users" | "slack_bot_list_files" | "slack_bot_file_info" | "slack_bot_file_content" | "slack_bot_post_message" | "slack_bot_delete_message" | "artifacts_list" | "artifacts_get_source" | "artifacts_create" | "artifacts_publish" | "artifacts_rollback";
1345
+ export type FirstPartyMcpToolName = "set_session_title" | "goal_set" | "goal_update" | "goal_complete" | "goal_pause" | "memory_search" | "memory_save" | "memory_correct" | "preference_registry_summary" | "preference_registry_get" | "sandboxes_list" | "sandbox_attach" | "sandbox_swap" | "run_on" | "sandbox_provision" | "rig_list" | "rig_get" | "rig_propose_change" | "rig_verify" | "rig_promote" | "sessions_list" | "session_get" | "session_events" | "session_create" | "session_send_message" | "session_pause" | "session_resume" | "session_steer" | "set_other_session_title" | "variable_set_list" | "environment_list" | "variable_set_set_variable" | "environment_set_variable" | "github_connect_link" | "github_token" | "github_repositories_list" | "social_connections_list" | "social_posts_recent" | "social_daily_analysis_context" | "social_search_live" | "social_mentions_live" | "social_thread_fetch" | "social_posts_sync" | "social_post_reply" | "scheduled_tasks_list" | "scheduled_tasks_get" | "scheduled_tasks_create" | "scheduled_tasks_update" | "scheduled_tasks_pause" | "scheduled_tasks_resume" | "scheduled_tasks_trigger" | "scheduled_tasks_delete" | "scheduled_task_runs_list" | "slack_bot_list_channels" | "slack_bot_channel_history" | "slack_bot_thread_replies" | "slack_bot_list_users" | "slack_bot_list_files" | "slack_bot_file_info" | "slack_bot_file_content" | "slack_bot_post_message" | "slack_bot_delete_message" | "artifacts_list" | "artifacts_get_source" | "artifacts_create" | "artifacts_publish" | "artifacts_rollback";
1323
1346
  export type ProductAccessMode = "local" | "configured" | "managed";
1324
1347
  export type ModelCapabilitySupportV1 = "supported" | "unsupported" | "unknown";
1325
1348
  export type ModelCapabilityStateV1 = {
@@ -1676,6 +1699,21 @@ export type ClientConfig = {
1676
1699
  voiceInput?: ClientVoiceInputConfig | undefined;
1677
1700
  productAccessMode: ProductAccessMode;
1678
1701
  auth: ClientAuthConfig;
1702
+ analytics: {
1703
+ consentRequired: boolean;
1704
+ providers: {
1705
+ reo?: {
1706
+ clientId: string;
1707
+ } | undefined;
1708
+ posthog?: {
1709
+ projectKey: string;
1710
+ host: string;
1711
+ } | undefined;
1712
+ ga4?: {
1713
+ measurementId: string;
1714
+ } | undefined;
1715
+ };
1716
+ };
1679
1717
  structuredServices: {
1680
1718
  fileSystem: boolean;
1681
1719
  git: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeni/sdk",
3
- "version": "0.33.1",
3
+ "version": "0.34.1",
4
4
  "description": "Framework-agnostic TypeScript SDK for the OpenGeni API: typed client, session lifecycle, SSE event streaming with reconnect + replay-by-sequence, and proxy re-streaming helpers.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
package/src/client.ts CHANGED
@@ -201,6 +201,8 @@ import type {
201
201
  ConnectionResponse,
202
202
  OAuthStartRequest,
203
203
  OAuthStartResponse,
204
+ SocialConnection,
205
+ SocialOAuthStartRequest,
204
206
  } from "./types";
205
207
  import type {
206
208
  ActivateWorkspaceInstructionPolicyRequest,
@@ -2364,6 +2366,11 @@ export class OpenGeniClient {
2364
2366
  });
2365
2367
  const putResponse = await this.fetchImpl(upload.putUrl, {
2366
2368
  method: "PUT",
2369
+ // Signed object-storage URLs carry their own short-lived authority.
2370
+ // Browser cookies and HTTP auth must never accompany this cross-origin
2371
+ // request: credentialed fetches are incompatible with wildcard CORS and
2372
+ // can leak ambient credentials to a caller-selected storage endpoint.
2373
+ credentials: "omit",
2367
2374
  // The backend's requiredHeaders already carry the canonical lowercase
2368
2375
  // `content-type` for every storage backend (Azure/S3/GCS). Do NOT also set
2369
2376
  // a `Content-Type` key here: WHATWG Headers treats the two casings as the
@@ -2862,6 +2869,41 @@ export class OpenGeniClient {
2862
2869
  );
2863
2870
  }
2864
2871
 
2872
+ /**
2873
+ * Start a first-party social OAuth flow (X / Reddit); redirect the user to
2874
+ * the returned `authorizationUrl`. The completed connection lands in
2875
+ * `listSocialConnections`.
2876
+ */
2877
+ async startSocialOAuth(
2878
+ workspaceId: string,
2879
+ request: SocialOAuthStartRequest,
2880
+ ): Promise<OAuthStartResponse> {
2881
+ return await this.requestJson<OAuthStartResponse>(
2882
+ "POST",
2883
+ `/v1/workspaces/${workspaceId}/social/oauth/start`,
2884
+ request,
2885
+ );
2886
+ }
2887
+
2888
+ /** Connected social accounts (X / Reddit / pushed custom providers). */
2889
+ async listSocialConnections(workspaceId: string): Promise<SocialConnection[]> {
2890
+ return await this.requestJson<SocialConnection[]>(
2891
+ "GET",
2892
+ `/v1/workspaces/${workspaceId}/social/connections`,
2893
+ );
2894
+ }
2895
+
2896
+ /** Drop the stored social OAuth credential and disable the connection. */
2897
+ async disconnectSocialConnection(
2898
+ workspaceId: string,
2899
+ connectionId: string,
2900
+ ): Promise<SocialConnection> {
2901
+ return await this.requestJson<SocialConnection>(
2902
+ "DELETE",
2903
+ `/v1/workspaces/${workspaceId}/social/connections/${connectionId}`,
2904
+ );
2905
+ }
2906
+
2865
2907
  /** Public, immutably-cached URL for a catalog item's logo, or null when the item has none. */
2866
2908
  catalogAssetUrl(logoAssetPath: string | null): string | null {
2867
2909
  return logoAssetPath ? `${this.baseUrl}/v1/${logoAssetPath}` : null;
package/src/types.ts CHANGED
@@ -525,6 +525,41 @@ export type OAuthStartResponse = {
525
525
  expiresAt: string;
526
526
  };
527
527
 
528
+ export type SocialProvider =
529
+ | "x"
530
+ | "reddit"
531
+ | "linkedin"
532
+ | "instagram"
533
+ | "facebook"
534
+ | "tiktok"
535
+ | "youtube"
536
+ | "custom";
537
+
538
+ export type SocialConnectionStatus = "connected" | "needs_reauth" | "disabled";
539
+
540
+ export type SocialConnection = {
541
+ id: string;
542
+ accountId: string;
543
+ workspaceId: string;
544
+ provider: SocialProvider;
545
+ accountHandle: string;
546
+ accountName: string | null;
547
+ externalAccountId: string | null;
548
+ status: SocialConnectionStatus;
549
+ scopes: string[];
550
+ credentialRef: string | null;
551
+ tokenMetadata: Record<string, unknown>;
552
+ metadata: Record<string, unknown>;
553
+ createdAt: string;
554
+ updatedAt: string;
555
+ };
556
+
557
+ export type SocialOAuthStartRequest = {
558
+ provider: "x" | "reddit";
559
+ scopes?: string[] | undefined;
560
+ returnPath?: string | undefined;
561
+ };
562
+
528
563
  /** The immutable principal whose authority accepted a session or turn. */
529
564
  export type TurnInitiator = {
530
565
  kind: "subject" | "service";
@@ -1780,6 +1815,11 @@ export type FirstPartyMcpToolName =
1780
1815
  | "social_connections_list"
1781
1816
  | "social_posts_recent"
1782
1817
  | "social_daily_analysis_context"
1818
+ | "social_search_live"
1819
+ | "social_mentions_live"
1820
+ | "social_thread_fetch"
1821
+ | "social_posts_sync"
1822
+ | "social_post_reply"
1783
1823
  | "scheduled_tasks_list"
1784
1824
  | "scheduled_tasks_get"
1785
1825
  | "scheduled_tasks_create"
@@ -2194,6 +2234,14 @@ export type ClientConfig = {
2194
2234
  voiceInput?: ClientVoiceInputConfig | undefined;
2195
2235
  productAccessMode: ProductAccessMode;
2196
2236
  auth: ClientAuthConfig;
2237
+ analytics: {
2238
+ consentRequired: boolean;
2239
+ providers: {
2240
+ reo?: { clientId: string } | undefined;
2241
+ posthog?: { projectKey: string; host: string } | undefined;
2242
+ ga4?: { measurementId: string } | undefined;
2243
+ };
2244
+ };
2197
2245
  // Server-wide hint: does this deployment support Channel-A structured services
2198
2246
  // at all (P4.4). Per-session availability is negotiated on /stream-capabilities;
2199
2247
  // this is the coarse on/off the client uses to decide whether to even attempt