@opengeni/sdk 1.0.2 → 1.2.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 (54) hide show
  1. package/dist/adapters/next.js +2 -2
  2. package/dist/artifact-catalog.d.ts +7 -0
  3. package/dist/artifacts.js +5 -4
  4. package/dist/browser.js +3 -2
  5. package/dist/chat/index.js +9 -7
  6. package/dist/chat/index.js.map +1 -1
  7. package/dist/{chunk-AH5D5Q5V.js → chunk-2NIR4WBR.js} +2 -2
  8. package/dist/{chunk-DUVIYER4.js → chunk-2ULNDOLD.js} +2 -2
  9. package/dist/{chunk-HMGADJGZ.js → chunk-2VPO6IQC.js} +2 -2
  10. package/dist/{chunk-FG3OO5LM.js → chunk-5AN2FLNC.js} +45 -2
  11. package/dist/chunk-5AN2FLNC.js.map +1 -0
  12. package/dist/{chunk-RWKB6YZG.js → chunk-66AKEWV6.js} +2 -2
  13. package/dist/{chunk-ZKPY6YAJ.js → chunk-6Z5QRYHG.js} +12 -1
  14. package/dist/chunk-6Z5QRYHG.js.map +1 -0
  15. package/dist/{chunk-MOTJYIYL.js → chunk-TZFJUYCT.js} +2 -2
  16. package/dist/chunk-VPVMLM7Q.js +15 -0
  17. package/dist/chunk-VPVMLM7Q.js.map +1 -0
  18. package/dist/{chunk-YIKA2QT4.js → chunk-WIYAB33K.js} +1 -1
  19. package/dist/chunk-WIYAB33K.js.map +1 -0
  20. package/dist/client.d.ts +17 -1
  21. package/dist/core.js +4 -3
  22. package/dist/document-authority.js +4 -3
  23. package/dist/editable-artifacts.js +1 -1
  24. package/dist/index.d.ts +2 -2
  25. package/dist/index.js +9 -8
  26. package/dist/index.js.map +1 -1
  27. package/dist/insights-usage.d.ts +33 -0
  28. package/dist/insights-usage.js +7 -0
  29. package/dist/insights-usage.js.map +1 -0
  30. package/dist/model-display.d.ts +1 -1
  31. package/dist/model-display.js +3 -1
  32. package/dist/session-proxy.js +2 -2
  33. package/dist/site-browser-runtime.gen.d.ts +1 -1
  34. package/dist/site-document.js +1 -1
  35. package/dist/site-document.js.map +1 -1
  36. package/dist/site.js +4 -3
  37. package/dist/types.d.ts +17 -1
  38. package/package.json +9 -4
  39. package/src/artifact-catalog.ts +8 -0
  40. package/src/chat/opengeni.ts +3 -2
  41. package/src/client.ts +92 -1
  42. package/src/index.ts +3 -0
  43. package/src/insights-usage.ts +61 -0
  44. package/src/model-display.ts +1 -0
  45. package/src/site-browser-runtime.gen.ts +1 -1
  46. package/src/types.ts +40 -0
  47. package/dist/chunk-FG3OO5LM.js.map +0 -1
  48. package/dist/chunk-YIKA2QT4.js.map +0 -1
  49. package/dist/chunk-ZKPY6YAJ.js.map +0 -1
  50. /package/dist/{chunk-AH5D5Q5V.js.map → chunk-2NIR4WBR.js.map} +0 -0
  51. /package/dist/{chunk-DUVIYER4.js.map → chunk-2ULNDOLD.js.map} +0 -0
  52. /package/dist/{chunk-HMGADJGZ.js.map → chunk-2VPO6IQC.js.map} +0 -0
  53. /package/dist/{chunk-RWKB6YZG.js.map → chunk-66AKEWV6.js.map} +0 -0
  54. /package/dist/{chunk-MOTJYIYL.js.map → chunk-TZFJUYCT.js.map} +0 -0
package/dist/client.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type { ClaudeSubscriptionAccountsResponse, ClaudeSubscriptionAccount, ClaudeSubscriptionOAuthStartRequest, ClaudeSubscriptionSetupTokenRequest, SubscriptionPoolSettings } from "@opengeni/contracts";
2
- import type { ArtifactCatalogListOptions, ArtifactCatalogListResponse } from "./artifact-catalog.js";
2
+ import { type WorkspaceInsightsUsageOptions, type OrganizationInsightsUsageOptions, type WorkspaceInsightsCallsOptions, type OrganizationInsightsCallsOptions, type InsightsCallsScope, type InsightsUsageResponse, type InsightsCallsResponse } from "./insights-usage.js";
3
+ import type { ArtifactCatalogKind, ArtifactCatalogListOptions, ArtifactCatalogListResponse, ArtifactPinResponse } from "./artifact-catalog.js";
3
4
  import type { SessionMessageSearchRequest, SessionMessageSearchResponse, SessionMessagePreview, SessionMessagePreviewReference } from "./session-message-search.js";
4
5
  import type { KnowledgeOriginalFileDownload, AgentLearningContext, AgentLearningSettingsRecord, AgentLearningOverrideRecord, SaveAgentLearningSettingsRequest, KnowledgeEntryListRequest, KnowledgeEntryListResponse, KnowledgeReviewBatchListRequest, KnowledgeReviewBatchListResponse, KnowledgeEntryRecord, KnowledgeEntrySaveRequest, KnowledgeEntryWriteReceipt, KnowledgeEntryReviewRequest, KnowledgeEntryBatchReviewRequest, KnowledgeEntryRestoreRequest, AgentInstructionReviewRequest, AgentInstructionReceipt, AgentInstructionReviewListResponse } from "./knowledge.js";
5
6
  import type { RollbackWorkspaceArtifactRequest, SetWorkspaceArtifactStatusRequest, WorkspaceArtifactDetailResponse, WorkspaceArtifactListOptions, WorkspaceArtifactListResponse, WorkspaceArtifactMutationResponse } from "./workspace-artifacts.js";
@@ -1225,6 +1226,10 @@ export declare class OpenGeniClient {
1225
1226
  listArtifactCatalog(workspaceId: string, options?: ArtifactCatalogListOptions & {
1226
1227
  signal?: AbortSignal;
1227
1228
  }): Promise<ArtifactCatalogListResponse>;
1229
+ /** Idempotently set a workspace-shared pin; refresh the catalog after completion. */
1230
+ updateArtifactPin(workspaceId: string, kind: ArtifactCatalogKind, artifactId: string, pinned: boolean, options?: {
1231
+ signal?: AbortSignal;
1232
+ }): Promise<ArtifactPinResponse>;
1228
1233
  listWorkspaceArtifacts(workspaceId: string, options?: WorkspaceArtifactListOptions & {
1229
1234
  signal?: AbortSignal;
1230
1235
  }): Promise<WorkspaceArtifactListResponse>;
@@ -1471,6 +1476,17 @@ export declare class OpenGeniClient {
1471
1476
  sessionId?: string;
1472
1477
  signal?: AbortSignal;
1473
1478
  }): Promise<WorkspaceInsightsResponse>;
1479
+ /** Shared usage under the existing workspace access gate. */
1480
+ getWorkspaceInsightsUsage(workspaceId: string, options?: WorkspaceInsightsUsageOptions, requestOptions?: OpenGeniRequestOptions): Promise<InsightsUsageResponse>;
1481
+ /** Shared usage under the existing organization access gate. */
1482
+ getOrganizationInsightsUsage(accountId: string, options?: OrganizationInsightsUsageOptions, requestOptions?: OpenGeniRequestOptions): Promise<InsightsUsageResponse>;
1483
+ /** Visible calls only; a filter never grants access to hidden call facts. */
1484
+ listInsightsCalls(scope: Extract<InsightsCallsScope, {
1485
+ kind: "workspace";
1486
+ }>, options?: WorkspaceInsightsCallsOptions, requestOptions?: OpenGeniRequestOptions): Promise<InsightsCallsResponse>;
1487
+ listInsightsCalls(scope: Extract<InsightsCallsScope, {
1488
+ kind: "organization";
1489
+ }>, options?: OrganizationInsightsCallsOptions, requestOptions?: OpenGeniRequestOptions): Promise<InsightsCallsResponse>;
1474
1490
  getBillingEntitlements(options?: {
1475
1491
  accountId?: string;
1476
1492
  }): Promise<BillingEntitlementsResponse>;
package/dist/core.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-VYCTL62C.js";
4
4
  import {
5
5
  OpenGeniDocumentAuthorityClient
6
- } from "./chunk-HMGADJGZ.js";
6
+ } from "./chunk-2VPO6IQC.js";
7
7
  import {
8
8
  OpenGeniToolCallError,
9
9
  OpenGeniToolReapprovalRequiredError,
@@ -11,12 +11,13 @@ import {
11
11
  } from "./chunk-4SMEOV3P.js";
12
12
  import {
13
13
  parseDeprecationNotice
14
- } from "./chunk-FG3OO5LM.js";
14
+ } from "./chunk-5AN2FLNC.js";
15
+ import "./chunk-VPVMLM7Q.js";
15
16
  import "./chunk-APXVSSSY.js";
16
17
  import {
17
18
  OPENGENI_API_CONTRACT_HEADER,
18
19
  OPENGENI_API_CONTRACT_REVISION
19
- } from "./chunk-YIKA2QT4.js";
20
+ } from "./chunk-WIYAB33K.js";
20
21
  import "./chunk-NC57YMUO.js";
21
22
  import {
22
23
  OpenGeniApiContractMismatchError,
@@ -1,9 +1,10 @@
1
1
  import {
2
2
  OpenGeniDocumentAuthorityClient
3
- } from "./chunk-HMGADJGZ.js";
4
- import "./chunk-FG3OO5LM.js";
3
+ } from "./chunk-2VPO6IQC.js";
4
+ import "./chunk-5AN2FLNC.js";
5
+ import "./chunk-VPVMLM7Q.js";
5
6
  import "./chunk-APXVSSSY.js";
6
- import "./chunk-YIKA2QT4.js";
7
+ import "./chunk-WIYAB33K.js";
7
8
  import "./chunk-NC57YMUO.js";
8
9
  import "./chunk-V6GIY62B.js";
9
10
  export {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  OPENGENI_API_CONTRACT_HEADER,
3
3
  OPENGENI_API_CONTRACT_REVISION
4
- } from "./chunk-YIKA2QT4.js";
4
+ } from "./chunk-WIYAB33K.js";
5
5
  import {
6
6
  DEFAULT_ARTIFACT_WORKER_RPC_LIMITS,
7
7
  decodeArtifactWorkerRpcMessage,
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export type { SubscriptionAccountSummary, SubscriptionPoolSettings, ClaudeSubscriptionSetupTokenRequest, ClaudeSubscriptionAccount, ClaudeSubscriptionAccountsResponse, } from "@opengeni/contracts";
2
- export type { ArtifactCatalogKind, ArtifactCatalogItem, ArtifactCatalogListOptions, ArtifactCatalogListResponse, } from "./artifact-catalog.js";
2
+ export type { ArtifactPinResponse, ArtifactCatalogKind, ArtifactCatalogItem, ArtifactCatalogListOptions, ArtifactCatalogListResponse, } from "./artifact-catalog.js";
3
3
  export type { SessionMessageSearchRequest, SessionMessageSearchMatch, SessionMessageSearchResponse, SessionMessagePreview, SessionMessagePreviewReference, } from "./session-message-search.js";
4
4
  export { OpenGeniEmbeddingClient as OpenGeniClient } from "./embedding-client.js";
5
5
  export type { Chats } from "./chats.js";
@@ -83,7 +83,7 @@ export type { ActivatePreferenceRegistryRevisionRequest, ChangePreferenceRegistr
83
83
  export { DEFAULT_WORKSPACE_TRANSCRIPTION_POLICY, authorizeTranscriptionAdapter, createTranscriptionSessionRequest, resolveWorkspaceVoiceInputEnabled, resolveWorkspaceTranscriptionPolicy, } from "./transcription.js";
84
84
  export type { TranscriptionAdapter, TranscriptionAdapterDescriptor, TranscriptionAdapterStartContext, TranscriptionAuthorization, TranscriptionCredentialMode, TranscriptionDiagnostic, TranscriptionErrorCode, TranscriptionEvent, TranscriptionEventListener, TranscriptionLifecycleStatus, TranscriptionPolicyBlockReason, TranscriptionResultMetadata, TranscriptionSession, TranscriptionSessionRequest, TranscriptionSpeaker, TranscriptionTargetSelection, TranscriptionTimeSpan, TranscriptionWord, WorkspaceTranscriptionPolicy, WorkspaceTranscriptionTarget, } from "./transcription.js";
85
85
  export { DEFAULT_FILE_RESOURCE_MOUNT_ROOT, KNOWN_PERMISSIONS, KNOWN_USAGE_EVENT_TYPES, OPENGENI_API_CONTRACT_HEADER, OPENGENI_API_CONTRACT_REVISION, OPENGENI_CORRELATION_HEADER, PERSONAL_RESOURCE_SHARED_OUTPUT_WARNING, PERSONAL_RESOURCE_SHARED_OUTPUT_WARNING_VERSION, GENERATED_VIDEO_MAX_BYTES, RETAINED_OUTPUT_DEFAULT_PAGE_BYTES, RETAINED_OUTPUT_MAX_PAGE_BYTES, SANDBOX_FILE_ARTIFACT_MAX_BYTES, SESSION_EVENT_TYPES, } from "./types.js";
86
- export type { AccessContext, AccessCredential, ActivateCodexRealtimeConnectionRequest, AccessGrant, AccountGrant, AccountRole, AddWorkspaceMemberRequest, ApproveSlackUserLinkAccessRequest, BeginSessionRealtimeRequest, AgentMessageCompletedPayload, AgentTextDeltaPayload, AgentToolCallCreatedPayload, AgentToolCallOutputPayload, ApiKey, BillingBalance, BillingEntitlementsResponse, BillingMode, BillingSummary, BillingCheckoutStatus, ListManagedOrganizationMembershipsResponse, ManagedOrganizationMembership, OrganizationAdministrationMember, OrganizationAdministrationMemberWorkspaceAccess, OrganizationAdministrationOverview, OrganizationApiKeyAccess, OrganizationAccessPreset, OrganizationWorkspaceScope, OrganizationAccessPolicy, OrganizationActor, OrganizationInvitation, OrganizationMember, OrganizationMembershipRole, OrganizationSessionListResponse, OrganizationPrivateSessionSettings, OrganizationRecoveryApproval, OrganizationRecoveryCapabilities, OrganizationRecoveryCustodian, OrganizationRecoveryMemberSummary, OrganizationRecoveryMutationResponse, OrganizationRecoveryOperation, OrganizationRecoveryOperationCommandRequest, OrganizationRecoveryOperationState, OrganizationRecoveryOverview, OrganizationRecoveryPolicy, OrganizationRecoveryPolicyState, OrganizationRecoveryUnavailableReason, OrganizationSummary, OrganizationWorkspaceAccess, OrganizationWorkspaceAccessMember, OrganizationWorkspaceRoleDefinition, WorkspaceMemberRole, AssignableWorkspaceMemberRole, CreateOrganizationWorkspaceRequest, UpdateOrganizationWorkspaceRequest, PutOrganizationWorkspaceMemberRequest, RevokeOrganizationWorkspaceMemberRequest, RevokeOrganizationWorkspaceMemberResponse, UpdateOrganizationNameRequest, UpdateOrganizationPrivateSessionSettingsRequest, AcceptOrganizationRecoveryCustodyRequest, ConfigureOrganizationRecoveryPolicyRequest, DisableOrganizationRecoveryPolicyRequest, StartOrganizationRecoveryOperationRequest, BillingUsageResponse, InsightsRange, InsightsBillingPath, InsightsPricingSource, ModelContextContributionSource, InsightsPromptContributionRow, InsightsPromptContributions, InsightsModelUsageRow, InsightsModelCallRow, InsightsSeriesPoint, InsightsDepthBucket, InsightsModelFacet, InsightsSpendDriver, InsightsProjectRow, InsightsWarmGroupRow, InsightsLiveWarmLease, InsightsFloorSession, InsightsScheduleRow, InsightsScope, WorkspaceInsightsSnapshot, WorkspaceInsightsResponse, CapabilityCatalogItem, CapabilityAction, CapabilityCatalogResponse, CapabilityComponentOwner, CapabilityInstallation, CapabilityInstallationStatus, CapabilityKind, CapabilityLifecycle, CapabilityLifecycleStatus, SkillArtifactDefinition, SkillArtifactFile, CapabilityRuntime, CapabilityReadiness, CapabilitySource, CapabilityUnavailableReason, ClientConfig, ClientVoiceInputConfig, ClientModel, CodexRealtimeVoice, CodexRealtimeWebrtcRequest, CodexRealtimeWebrtcResponse, CodexRealtimeWebrtcVersion, GatewayRealtimeConnectRequest, GatewayRealtimeConnectResponse, GatewayRealtimeInitialItem, EndSessionRealtimeRequest, ModelAvailabilityV1, ModelBillingAttributionV1, ModelCostClassV1, ModelCapabilitiesV1, ModelCapabilityStateV1, ModelCapabilitySupportV1, ModelCredentialReadinessV1, ModelCredentialSourceV1, ModelPricingScheduleV1, ModelPricingV1, RenewSessionRealtimeRequest, SessionRealtimeEndReason, SessionRealtimeMode, SessionRealtimeModel, SessionRealtimeMutationResponse, SessionRealtimeState, WorkspaceModelCatalogModel, WorkspaceModelCatalogResponse, DefaultModelSelection, DefaultModelSelectionSource, WorkspaceGatewayCustomModel, WorkspaceGatewayCustomModelsResponse, CreateWorkspaceGatewayCustomModelRequest, DeleteWorkspaceGatewayCustomModelRequest, WorkspaceOpenRouterCustomModel, WorkspaceOpenRouterCustomModelsResponse, CreateWorkspaceOpenRouterCustomModelRequest, DeleteWorkspaceOpenRouterCustomModelRequest, OrganizationModelProviderKind, ClaudeSubscriptionUsage, ClaudeSubscriptionOAuthStartResponse, ClaudeSubscriptionOAuthCompleteRequest, ClaudeSubscriptionOAuthCompleteResponse, ClaudeUsageWindow, ClaudeUsageRequestStatus, OrganizationModelProviderConnection, UpsertOrganizationModelProviderConnectionRequest, RevokeOrganizationModelProviderConnectionRequest, OrganizationProviderCustomModel, OrganizationProviderCustomModelsResponse, CreateOrganizationProviderCustomModelRequest, DeleteOrganizationProviderCustomModelRequest, WorkspaceModelAccessPolicy, WorkspaceRealtimeModelCatalogItem, WorkspaceRealtimeModelCatalogResponse, CodexAccount, CodexPlanExcludedModel, CodexAccountOverview, CodexAccountsResponse, SessionCodexAccountsResponse, OrganizationCodexAccountsResponse, CodexAllocatorUpdate, CodexAccountSwitchedPayload, CodexConnectionStatus, CodexConnectStart, CodexConnectPoll, SuperGrokAccount, SuperGrokAccountsResponse, SuperGrokAccountScope, SuperGrokAllocatorUpdate, SuperGrokConnectionStatus, SuperGrokConnectPoll, SuperGrokConnectStart, SuperGrokRotationSettings, CodexFleetConfidence, CodexFleetCacheState, CodexFleetDecisionEventPayload, CodexFleetDecisionScore, CodexFleetShadowComparison, CodexOverviewResponse, CodexResetCredit, CodexResetRedemptionRecovery, CodexRotationSettings, CodexUsage, CodexUsageMap, WorkspaceCodexSubscriptionMode, WorkspaceCodexSubscriptionSource, CodexUsagePayload, CodexUsageWindow, CompactSessionContextResult, ClientSessionEventInput, CompleteFileUploadResponse, ConnectionKind, ConnectionMetadata, McpConnectionAccountSelection, ConnectionOwnership, ConnectionResponse, ConnectionStatus, PersonalGitHubConnectionMetadata, PersonalGitHubConnectionStatusResponse, PersonalGitHubDisconnectRequest, PersonalGitHubOAuthStartRequest, PersonalGitHubOAuthStartResponse, ListGitHubRepositoryBranchesOptions, ListPersonalGitHubRepositoriesOptions, ListPersonalGitHubRepositoriesResponse, PersonalGitHubRepository, PersonalGitHubRepositoryAccess, PersonalGitHubRepositoryCatalogItem, PersonalGitHubRepositoryPermissions, PersonalGitHubRepositorySelectionInput, PersonalGitHubRepositorySelectionState, PersonalGitHubSelectedRepository, ReplacePersonalGitHubRepositorySelectionsRequest, VerifyPersonalGitHubRepositorySelectionsRequest, ConnectorDocumentDestination, ConnectorDocumentDestinationAuthority, ConnectorDocumentDestinationSelection, SocialConnection, SocialConnectionStatus, SocialOAuthStartRequest, AddDocumentRequest, CreateApiKeyRequest, CreateApiKeyResponse, CreateOrganizationApiKeyRequest, UpdateOrganizationApiKeyRequest, OrganizationMcpConnection, OrganizationMcpConnectionList, UpdateOrganizationMcpConnectionRequest, OrganizationServiceAccount, OrganizationServiceAccountRole, ListOrganizationServiceAccountsResponse, CreateOrganizationServiceAccountRequest, UpdateOrganizationServiceAccountRequest, McpConnectionRequest, McpConnectionDecision, CreateCapabilityCatalogItemRequest, OpenGeniSlackBotInstallRequest, OpenGeniSlackBotInstallStart, SlackInstallationBinding, SlackInstallationBindingState, ListScheduledTaskAccessAttentionResponse, ListSlackInstallationBindingsResponse, SlackChannelRoute, SlackChannelRouteListResponse, UpdateSlackChannelRoutesRequest, SlackReactionChannel, SlackReactionChannelListResponse, ApiKeyConnectionCredential, ConnectionCredentialPlacement, CreateConnectionRequest, InlineOpenApiDocumentSource, IntegrationSourceInput, IntegrationSourceProjection, SessionApprovalRequest, CreateBillingPortalRequest, CreateBillingPortalResponse, CreateCheckoutRequest, CreateCheckoutResponse, CreateDocumentBaseRequest, CreateFileUploadRequest, CreateFileUploadResponse, CreateGitHubAppManifestRequest, CreateGitHubAppManifestResponse, CreateKnowledgeDropRequest, CreateKnowledgeMemoryRequest, CreateScheduledTaskRequest, CreateSessionScheduledTaskRequest, CreateSessionRequest, CreateVariableSetRequest, CreateWorkspaceEnvironmentRequest, CreateWorkspaceRequest, EnsureWorkspaceRequest, EnsureWorkspaceResponse, DiscoverMcpCapabilitiesResponse, InstallSkillRequest, InstallLibrarySkillRequest, InstalledSkill, InstalledSkillSummary, ListInstalledSkillsResponse, Document, DocumentAuthorityKind, DocumentBase, DocumentCuration, DocumentCurationStatus, DocumentSearchMode, DocumentSearchRequest, DocumentSearchResponse, DocumentSearchResult, DocumentStatus, DocumentVisibility, MoveDocumentRequest, EnableCapabilityRequest, Entitlements, EntitlementValue, EntitlementsMode, FileAsset, FileListRequest, FileListResponse, HumanInputAnswer, HumanInputOption, HumanInputQuestion, HumanInputQuestionKind, HumanInputResponse, FileDownloadUrlResponse, FileResourceRef, FileStatus, FileUploadData, FirstPartyMcpToolName, AtlassianBrowseItem, AtlassianBrowseResponse, AtlassianConnectionLifecycle, AtlassianConnectionMetadata, AtlassianDisconnectRequest, AtlassianLifecycleActionRequest, AtlassianOAuthStartResponse, AtlassianReadPolicy, AtlassianSelectedSource, AtlassianSourceKind, AtlassianSyncCadence, GitHubActionPoliciesResponse, GitHubActionPolicyActor, GitHubActionPolicyActorState, GitHubActionPolicyDecision, GitHubActionPolicyEffectiveDecision, GitHubActionPolicyGroup, GitHubAppInfo, GitHubAppSetupMode, GitHubBindingStatus, GitHubInstallationBinding, GitHubInstallationLifecycle, GitHubRepositoryBranch, GitHubRepositoryBranchesResponse, VerifyPublicGitHubRepositoryRefRequest, VerifyPublicGitHubRepositoryRefResponse, GitHubRepositoriesResponse, UpdateGitHubActionPolicyRequest, GoogleDriveBrowseItem, GoogleDriveBrowseResponse, GoogleDriveConnectionLifecycle, GoogleDriveConnectionLifecycleState, GoogleDriveConnectionMetadata, GoogleDriveDisconnectRequest, GoogleDriveLifecycleActionRequest, GoogleDriveKnowledgeSourceConfig, GoogleDriveKnowledgeSourceDestination, GoogleDriveKnowledgeSourceItem, GoogleDriveOAuthStartRequest, GoogleDriveOAuthStartResponse, GoogleDriveReadPolicy, GoogleDriveSelectedSource, GoogleDriveSyncCadence, GoogleDriveTargetScope, GitHubRepository, GitHubRepositoryScope, GoalSpec, SessionGoalReportRequirement, SessionGoalReportDelivery, IntegrationClientMetadata, KnownPermission, KnownSessionEventType, KnownUsageEventType, KnowledgeMemory, KnowledgeMemoryKind, KnowledgeMemorySearchRequest, KnowledgeMemoryStatus, KnowledgeSourceKind, KnowledgeSourceRef, GitCredentialProvider, GitCredentialBindingId, GitRepositoryAccess, PrReviewProvider, PrReviewCredentialKind, PrReviewWebhookAuthKind, PrReviewAppRegistration, PrReviewManagedGitHubInstallation, PrReviewManagedGitHubSetup, PrReviewRepositoryBinding, CreatePrReviewAppRegistrationRequest, UpdatePrReviewAppRegistrationRequest, CreatePrReviewRepositoryBindingRequest, UpdatePrReviewRepositoryBindingRequest, ListPrReviewConfigurationResponse, ListApiKeysResponse, ListOrganizationSessionsOptions, ListConnectionsResponse, ListSlackUserLinkAccessRequestsResponse, ListWorkspaceMemberCandidatesResponse, ListWorkspaceMembersResponse, McpServerConnectionRef, McpPersonalConnectionDelegation, McpPersonalConnectionSummary, OAuthStartRequest, OAuthStartResponse, Permission, PrepareSlackUserLinkAccessRequest, ProductAccessMode, LatencyMode, ReasoningEffort, GeneratedImageReceipt, GeneratedVideoFacts, GeneratedVideoReceipt, MediaGenerationResult, RetainedArtifactContent, RetainedArtifactContentOptions, RetainedArtifactDownload, RetainedArtifactDownloadOptions, RetainedArtifactMetadata, RetainedArtifactReference, RetainedArtifactUnavailable, RetainedOutputKind, RetainedOutputUnavailableReason, UpdateVideoGenerationPolicyRequest, VideoArtifactPlaybackSource, VideoGenerationAspectRatio, VideoGenerationCapabilities, VideoGenerationFundingOption, VideoGenerationFundingSource, VideoGenerationModelCapability, VideoGenerationOperationSummary, VideoGenerationPolicy, VideoGenerationPublicStatus, VideoGenerationResolution, VideoGenerationSourceMode, VideoGenerationTerminalFailureStatus, RecordingAvailablePayload, RecordingCodec, RecordingContentType, RecordingFailedPayload, RecordingFailedReason, RecordingMode, RecordingStartedPayload, RepositoryResourceRef, ResourceRef, SaveGoogleDriveSourceRequest, SaveGoogleDriveIntegrationSourceRequest, SandboxBackend, SandboxCapabilityName, SandboxOs, ScheduledTask, ScheduledTaskAccessAttention, ScheduledTaskAccessConnector, ScheduledTaskAccessFailureReason, ScheduledTaskAgentConfig, ScheduledTaskAgentConfigInput, ScheduledTaskDayOfWeek, ScheduledTaskOverlapPolicy, ScheduledTaskPolicyDrift, RefreshScheduledTaskAccessRequest, ScheduledTaskRun, ScheduledTaskRunAccessFailure, ScheduledTaskRunMode, ScheduledTaskRunStatus, ScheduledTaskAction, KnowledgeSourceSyncLimits, KnowledgeSourceSyncRunSummary, ScopedKnowledgeScope, ScheduledTaskScheduleSpec, ScheduledTaskStatus, ScheduledTaskTriggerType, Session, SessionBackgroundCommand, SessionBackgroundCommandReconciliation, SessionBackgroundCommandActivity, SessionBackgroundCommandListResponse, CancelSessionBackgroundCommandResult, SessionVisibility, SessionTenancyCreateCapabilities, SessionTenancyPublicProjection, UpdateSessionVisibilityRequest, UpdateSessionVisibilityResponse, ForkSessionRequest, ForkSessionResponse, SessionCapabilities, AgentTopologyPageResponse, AgentTopologySession, SessionListResponse, SessionListTotals, SessionListEntry, SessionListEntryResponse, SessionLineageResponse, SessionEffectiveToolPolicy, SessionQueueMutationResponse, SessionQueueSnapshot, SessionControlResponse, SessionRetryRequest, SandboxRecoverySelection, SandboxRecoveryProjection, SandboxRecoveryRequest, SandboxRecoveryResponse, SessionRetryResponse, ComposerDraft, DeleteSessionQueueItemRequest, EditSessionQueueItemRequest, EffectiveControlBlocker, EffectiveControlResumeOption, EffectiveSessionControl, MoveSessionQueueItemRequest, NewSessionDraft, NewSessionDraftOptions, NewSessionSelectionHistory, SaveComposerDraftRequest, SubmitComposerDraftRequest, SubmitComposerDraftResponse, SaveNewSessionDraftRequest, SessionCommandReceipt, SessionPromptRouting, SteerSessionQueueItemRequest, WorkspaceInferenceControlResponse, WorkspacePauseTimer, WorkspacePauseTimerRequest, SessionPendingInputPreview, SessionSystemUpdate, SessionSystemUpdateKind, SessionSystemUpdateState, SessionSummary, LineageNode, SessionMcpCredentialUpdateInput, RotateSessionMcpCredentialsRequest, RotateSessionMcpCredentialsReceipt, SessionMcpApprovalPolicy, SessionMcpApprovalPolicyTarget, SessionMcpServerInput, SessionMcpServerMetadata, SessionToolPolicy, FileSystemCapability, TerminalCapability, GitCapability, DesktopStreamCapability, RecordingCapability, ComputerUseCapability, ClientAuthConfig, StreamUrlRotatedPayload, StreamOpenedPayload, StreamClosedPayload, StreamRevokedPayload, AttachViewerRequest, AttachViewerResponse, ViewerHolder, AcknowledgeStreamRequest, AcknowledgeStreamResponse, ViewerHeartbeatRequest, ViewerHeartbeatResponse, SessionEvent, SessionEventCompactResult, SessionEventCompactResultOptions, SessionEventListOptions, SessionEventLatestClass, SessionEventPage, SessionEventPayloadMode, SessionEventReadDirection, SessionEventReadMode, SessionEventResultMode, SessionEventSemanticClass, SessionEventType, SessionGoal, SessionGoalRevision, ListSessionGoalRevisionsOptions, ListSessionGoalRevisionsResponse, RejectSessionGoalRevisionRequest, RejectSessionGoalRevisionResponse, RollbackSessionGoalRevisionRequest, SessionGoalCreatedBy, SessionGoalStatus, SessionHumanInputRequest, SessionStatus, SessionStatusChangedPayload, SessionStructuredCapabilities, SessionTurn, DraftTimelineAnnotation, SubmittedTimelineAnnotation, TimelineAnnotation, TimelineAnnotationSource, TimelineAnnotationSourceEventType, TimelineAnnotationSourceKind, ServiceTurnInitiator, ServiceTurnInitiatorContext, TurnInitiatorContext, SessionTurnSource, SessionTurnStatus, SubmitHumanInputResponseRequest, TurnInitiator, ToolAuthNeededPayload, UpdateConnectionRequest, SandboxCommandOutputDeltaPayload, FsChangeKind, FsChangedPayload, GitChangedPayload, TerminalPtyStartedPayload, TerminalPtyOutputDeltaPayload, TerminalPtyExitedPayload, FsNodeType, FsTreeNode, FsEncoding, FileSystemRouteIdentity, FsListRequest, FsListResponse, FsListBatchRequest, FsListBatchResponse, FsReadRequest, FsReadResponse, PublishSandboxFileArtifactRequest, SandboxFileArtifactReceipt, FsWriteRequest, FsWriteResponse, FsDeleteRequest, FsDeleteResponse, FsMoveRequest, FsMoveResponse, FsMkdirRequest, FsMkdirResponse, GitFileStatusCode, GitFileStatus, GitStatusRequest, GitStatusResponse, GitDiffLineType, GitDiffLine, GitDiffHunk, GitFileDiff, GitDiffRequest, GitDiffResponse, GitReadBatchItemRequest, GitReadBatchRequest, GitReadBatchItemResponse, GitReadBatchResponse, GitLogRequest, GitCommit, GitLogResponse, GitShowRequest, GitShowResponse, SetWorkspaceEnvironmentVariableRequest, WorkspaceCaptureFile, WorkspaceCaptureRepo, WorkspaceCaptureDegradedReason, WorkspaceCaptureStats, WorkspaceCaptureManifest, WorkspaceRevisionCapturedPayload, WorkspaceRevisionDegradedPayload, WorkspaceCaptureSignedUrl, GetWorkspaceCaptureResponse, GetWorkspaceCaptureFileResponse, TerminalExecRequest, TerminalExecResponse, PtyOpenRequest, PtyOpenResponse, PtyWriteRequest, PtyResizeRequest, PtyCloseRequest, ToolRef, SlackUserLinkAccessMutationRequest, SlackUserLinkAccessRequest, SlackUserLinkAccessRequestStatus, UpdateKnowledgeMemoryRequest, UpdateScheduledTaskRequest, UpdateSessionGoalRequest, UpdateSessionMcpApprovalPolicyRequest, UpdateSessionMcpApprovalPolicyResponse, UpdateSessionAttentionRequest, UpdateSessionArchiveRequest, UpdateSessionPinRequest, UpdateSessionRequest, UpdateSessionVariableSetsRequest, UpdateSessionToolPolicyRequest, UpdateSessionAgentRequest, AgentCapabilityId, AgentSkillsCapability, AgentCapabilityToggles, AgentCapabilities, AgentRenderer, AgentConfigRequest, WorkspaceAgentDefaults, ResolvedAgentCapabilities, ResolvedAgentConfig, AgentEffectiveTools, ClientAgentConfig, AgentConfigErrorCode, UpdateVariableSetRequest, UpdateWorkspaceEnvironmentRequest, UpdateWorkspaceMemberRequest, UpdateWorkspaceRequest, UpdateWorkspaceModelAccessPolicyRequest, UpdateWorkspaceSettingsRequest, WorkspaceSlackReactionSummonSettings, TranscribeAudioResponse, UploadFileInput, UsageEvent, UsageEventType, UserApprovalDecisionEventInput, UserHumanInputResponseEventInput, UserMessageEventInput, PersonalResourceAttachmentIntent, PersonalResourceAttachmentSummary, UserResourceAuthoritySummary, UserResourceAuthorityGrant, UserResourceKind, ListUserResourceAuthoritiesOptions, ListUserResourceAuthoritiesResponse, Workspace, WorkspaceControlEvent, VariableSet, VariableSetAttachmentMetadata, ResolveVariableSetAttachmentsRequest, ResolveVariableSetAttachmentsResponse, VariableSetSecret, VariableSetVariableMetadata, Channel, CreateChannelRequest, ReorderChannelsRequest, UpdateChannelRequest, UpdateSessionChannelRequest, Rig, RigVersion, RigCheck, RigChange, RigChangeKind, RigChangeStatus, RigCheckResult, RigChangeVerification, CreateRigRequest, UpdateRigRequest, RigSetupAppendPayload, RigDefinitionEditPayload, ProposeRigChangeRequest, WorkspaceEnvironment, WorkspaceEnvironmentVariableMetadata, WorkspaceMember, WorkspaceMemberCandidate, PreviewSkillImportRequest, ApiIntegrationAuthPreview, ApiIntegrationInstallationSummary, IntegrationDefinitionSummary, ApiIntegrationPreview, ApiIntegrationOAuthStartRequest, ApiIntegrationProtocol, IntegrationSource, ApiIntegrationToolPreview, ApiIntegrationUninstallPreview, IntegrationFacetBindingSummary, IntegrationFacetDefinitionSummary, IntegrationFacetKind, IntegrationFacetMutationResult, IntegrationFacetRemovalResult, IntegrationFacetStatus, IntegrationInstanceFacetsResponse, InstallApiIntegrationRequest, InstalledApiIntegration, ListIntegrationDefinitionsResponse, ListApiIntegrationsResponse, PreviewApiIntegrationRequest, MutateIntegrationFacetRequest, UpsertIntegrationFacetRequest, SkillImportFileSummary, SkillImportPreview, SkillImportSource, SkillInstallationSource, SkillUninstallPreview, UninstallSkillRequest, UninstallSkillResult, UninstallApiIntegrationRequest, UninstallApiIntegrationResult, PluginManifest, PluginManifestComponent, PluginComponentBinding, PreviewPluginRequest, PluginComponentPreview, PluginUpdateDiff, PluginPreview, InstallPluginRequest, InstalledPlugin, PluginInstallationSummary, ListInstalledPluginsResponse, PluginUninstallComponentImpact, PluginUninstallPreview, UninstallPluginRequest, UninstallPluginResult, WorkspaceMemorySearchMode, WorkspaceMemorySearchRequest, WorkspaceMemorySearchResult, WorkspaceMemorySearchResponse, WorkspaceSessionDefaults, WorkspaceSettings, WorkspaceVideoGenerationSettings, WorkspaceVoiceInputSettings, VoiceInputProviderId, MetricSample, MachineState, MachineKind, MachineConnectionAuthority, MachineRuntimeCapabilities, MachineUpdateStatus, MachineUpdateState, MachineRuntime, UpdateMachineAgentResponse, MachineOperationPolicy, UpdateMachineOperationPolicyRequest, MachineView, MachinesResponse, MachineMetricsSeriesResponse, RemoveEnrollmentRequest, RemoveEnrollmentResponse, SwapActiveSandboxRequest, SwapActiveSandboxResponse, EnrollmentOs, ResourceAuthorityScope, DeviceEnrollmentLookupRequest, DeviceEnrollmentLookupResponse, DeviceEnrollmentLookupMachine, DeviceEnrollmentApproveRequest, DeviceEnrollmentApproveResponse, DeviceEnrollmentDenyRequest, DeviceEnrollmentDenyResponse, MintEnrollTokenRequest, MintEnrollTokenResponse, EnrollmentCredentials, EnrollTokenExchangeRequest, EnrollTokenExchangeResponse, } from "./types.js";
86
+ export type { AccessContext, AccessCredential, ActivateCodexRealtimeConnectionRequest, AccessGrant, AccountGrant, AccountRole, AddWorkspaceMemberRequest, ApproveSlackUserLinkAccessRequest, BeginSessionRealtimeRequest, AgentMessageCompletedPayload, AgentTextDeltaPayload, AgentToolCallCreatedPayload, AgentToolCallOutputPayload, ApiKey, BillingBalance, PromotionalCreditScope, PromotionalCreditBalance, BillingEntitlementsResponse, BillingMode, BillingSummary, BillingCheckoutStatus, ListManagedOrganizationMembershipsResponse, ManagedOrganizationMembership, OrganizationAdministrationMember, OrganizationAdministrationMemberWorkspaceAccess, OrganizationAdministrationOverview, OrganizationApiKeyAccess, OrganizationAccessPreset, OrganizationWorkspaceScope, OrganizationAccessPolicy, OrganizationActor, OrganizationInvitation, OrganizationMember, OrganizationMembershipRole, OrganizationSessionListResponse, OrganizationPrivateSessionSettings, OrganizationRecoveryApproval, OrganizationRecoveryCapabilities, OrganizationRecoveryCustodian, OrganizationRecoveryMemberSummary, OrganizationRecoveryMutationResponse, OrganizationRecoveryOperation, OrganizationRecoveryOperationCommandRequest, OrganizationRecoveryOperationState, OrganizationRecoveryOverview, OrganizationRecoveryPolicy, OrganizationRecoveryPolicyState, OrganizationRecoveryUnavailableReason, OrganizationSummary, OrganizationWorkspaceAccess, OrganizationWorkspaceAccessMember, OrganizationWorkspaceRoleDefinition, WorkspaceMemberRole, AssignableWorkspaceMemberRole, CreateOrganizationWorkspaceRequest, UpdateOrganizationWorkspaceRequest, PutOrganizationWorkspaceMemberRequest, RevokeOrganizationWorkspaceMemberRequest, RevokeOrganizationWorkspaceMemberResponse, UpdateOrganizationNameRequest, UpdateOrganizationPrivateSessionSettingsRequest, AcceptOrganizationRecoveryCustodyRequest, ConfigureOrganizationRecoveryPolicyRequest, DisableOrganizationRecoveryPolicyRequest, StartOrganizationRecoveryOperationRequest, BillingUsageResponse, InsightsRange, InsightsBillingPath, InsightsPricingSource, ModelContextContributionSource, InsightsPromptContributionRow, InsightsPromptContributions, InsightsModelUsageRow, InsightsModelCallRow, InsightsSeriesPoint, InsightsDepthBucket, InsightsModelFacet, InsightsSpendDriver, InsightsProjectRow, InsightsWarmGroupRow, InsightsLiveWarmLease, InsightsFloorSession, InsightsScheduleRow, InsightsScope, WorkspaceInsightsSnapshot, WorkspaceInsightsResponse, CapabilityCatalogItem, CapabilityAction, CapabilityCatalogResponse, CapabilityComponentOwner, CapabilityInstallation, CapabilityInstallationStatus, CapabilityKind, CapabilityLifecycle, CapabilityLifecycleStatus, SkillArtifactDefinition, SkillArtifactFile, CapabilityRuntime, CapabilityReadiness, CapabilitySource, CapabilityUnavailableReason, ClientConfig, ClientVoiceInputConfig, ClientModel, CodexRealtimeVoice, CodexRealtimeWebrtcRequest, CodexRealtimeWebrtcResponse, CodexRealtimeWebrtcVersion, GatewayRealtimeConnectRequest, GatewayRealtimeConnectResponse, GatewayRealtimeInitialItem, EndSessionRealtimeRequest, ModelAvailabilityV1, ModelBillingAttributionV1, ModelCostClassV1, ModelCapabilitiesV1, ModelCapabilityStateV1, ModelCapabilitySupportV1, ModelCredentialReadinessV1, ModelCredentialSourceV1, ModelPricingScheduleV1, ModelPricingV1, RenewSessionRealtimeRequest, SessionRealtimeEndReason, SessionRealtimeMode, SessionRealtimeModel, SessionRealtimeMutationResponse, SessionRealtimeState, WorkspaceModelCatalogModel, WorkspaceModelCatalogResponse, DefaultModelSelection, DefaultModelSelectionSource, WorkspaceGatewayCustomModel, WorkspaceGatewayCustomModelsResponse, CreateWorkspaceGatewayCustomModelRequest, DeleteWorkspaceGatewayCustomModelRequest, WorkspaceOpenRouterCustomModel, WorkspaceOpenRouterCustomModelsResponse, CreateWorkspaceOpenRouterCustomModelRequest, DeleteWorkspaceOpenRouterCustomModelRequest, OrganizationModelProviderKind, ClaudeSubscriptionUsage, ClaudeSubscriptionOAuthStartResponse, ClaudeSubscriptionOAuthCompleteRequest, ClaudeSubscriptionOAuthCompleteResponse, ClaudeUsageWindow, ClaudeUsageRequestStatus, OrganizationModelProviderConnection, UpsertOrganizationModelProviderConnectionRequest, RevokeOrganizationModelProviderConnectionRequest, OrganizationProviderCustomModel, OrganizationProviderCustomModelsResponse, CreateOrganizationProviderCustomModelRequest, DeleteOrganizationProviderCustomModelRequest, WorkspaceModelAccessPolicy, WorkspaceRealtimeModelCatalogItem, WorkspaceRealtimeModelCatalogResponse, CodexAccount, CodexPlanExcludedModel, CodexAccountOverview, CodexAccountsResponse, SessionCodexAccountsResponse, OrganizationCodexAccountsResponse, CodexAllocatorUpdate, CodexAccountSwitchedPayload, CodexConnectionStatus, CodexConnectStart, CodexConnectPoll, SuperGrokAccount, SuperGrokAccountsResponse, SuperGrokAccountScope, SuperGrokAllocatorUpdate, SuperGrokConnectionStatus, SuperGrokConnectPoll, SuperGrokConnectStart, SuperGrokRotationSettings, CodexFleetConfidence, CodexFleetCacheState, CodexFleetDecisionEventPayload, CodexFleetDecisionScore, CodexFleetShadowComparison, CodexOverviewResponse, CodexResetCredit, CodexResetRedemptionRecovery, CodexRotationSettings, CodexUsage, CodexUsageMap, WorkspaceCodexSubscriptionMode, WorkspaceCodexSubscriptionSource, CodexUsagePayload, CodexUsageWindow, CompactSessionContextResult, ClientSessionEventInput, CompleteFileUploadResponse, ConnectionKind, ConnectionMetadata, McpConnectionAccountSelection, ConnectionOwnership, ConnectionResponse, ConnectionStatus, PersonalGitHubConnectionMetadata, PersonalGitHubConnectionStatusResponse, PersonalGitHubDisconnectRequest, PersonalGitHubOAuthStartRequest, PersonalGitHubOAuthStartResponse, ListGitHubRepositoryBranchesOptions, ListPersonalGitHubRepositoriesOptions, ListPersonalGitHubRepositoriesResponse, PersonalGitHubRepository, PersonalGitHubRepositoryAccess, PersonalGitHubRepositoryCatalogItem, PersonalGitHubRepositoryPermissions, PersonalGitHubRepositorySelectionInput, PersonalGitHubRepositorySelectionState, PersonalGitHubSelectedRepository, ReplacePersonalGitHubRepositorySelectionsRequest, VerifyPersonalGitHubRepositorySelectionsRequest, ConnectorDocumentDestination, ConnectorDocumentDestinationAuthority, ConnectorDocumentDestinationSelection, SocialConnection, SocialConnectionStatus, SocialOAuthStartRequest, AddDocumentRequest, CreateApiKeyRequest, CreateApiKeyResponse, CreateOrganizationApiKeyRequest, UpdateOrganizationApiKeyRequest, OrganizationMcpConnection, OrganizationMcpConnectionList, UpdateOrganizationMcpConnectionRequest, OrganizationServiceAccount, OrganizationServiceAccountRole, ListOrganizationServiceAccountsResponse, CreateOrganizationServiceAccountRequest, UpdateOrganizationServiceAccountRequest, McpConnectionRequest, McpConnectionDecision, CreateCapabilityCatalogItemRequest, OpenGeniSlackBotInstallRequest, OpenGeniSlackBotInstallStart, SlackInstallationBinding, SlackInstallationBindingState, ListScheduledTaskAccessAttentionResponse, ListSlackInstallationBindingsResponse, SlackChannelRoute, SlackChannelRouteListResponse, UpdateSlackChannelRoutesRequest, SlackReactionChannel, SlackReactionChannelListResponse, ApiKeyConnectionCredential, ConnectionCredentialPlacement, CreateConnectionRequest, InlineOpenApiDocumentSource, IntegrationSourceInput, IntegrationSourceProjection, SessionApprovalRequest, CreateBillingPortalRequest, CreateBillingPortalResponse, CreateCheckoutRequest, CreateCheckoutResponse, CreateDocumentBaseRequest, CreateFileUploadRequest, CreateFileUploadResponse, CreateGitHubAppManifestRequest, CreateGitHubAppManifestResponse, CreateKnowledgeDropRequest, CreateKnowledgeMemoryRequest, CreateScheduledTaskRequest, CreateSessionScheduledTaskRequest, CreateSessionRequest, CreateVariableSetRequest, CreateWorkspaceEnvironmentRequest, CreateWorkspaceRequest, EnsureWorkspaceRequest, EnsureWorkspaceResponse, DiscoverMcpCapabilitiesResponse, InstallSkillRequest, InstallLibrarySkillRequest, InstalledSkill, InstalledSkillSummary, ListInstalledSkillsResponse, Document, DocumentAuthorityKind, DocumentBase, DocumentCuration, DocumentCurationStatus, DocumentSearchMode, DocumentSearchRequest, DocumentSearchResponse, DocumentSearchResult, DocumentStatus, DocumentVisibility, MoveDocumentRequest, EnableCapabilityRequest, Entitlements, EntitlementValue, EntitlementsMode, FileAsset, FileListRequest, FileListResponse, HumanInputAnswer, HumanInputOption, HumanInputQuestion, HumanInputQuestionKind, HumanInputResponse, FileDownloadUrlResponse, FileResourceRef, FileStatus, FileUploadData, FirstPartyMcpToolName, AtlassianBrowseItem, AtlassianBrowseResponse, AtlassianConnectionLifecycle, AtlassianConnectionMetadata, AtlassianDisconnectRequest, AtlassianLifecycleActionRequest, AtlassianOAuthStartResponse, AtlassianReadPolicy, AtlassianSelectedSource, AtlassianSourceKind, AtlassianSyncCadence, GitHubActionPoliciesResponse, GitHubActionPolicyActor, GitHubActionPolicyActorState, GitHubActionPolicyDecision, GitHubActionPolicyEffectiveDecision, GitHubActionPolicyGroup, GitHubAppInfo, GitHubAppSetupMode, GitHubBindingStatus, GitHubInstallationBinding, GitHubInstallationLifecycle, GitHubRepositoryBranch, GitHubRepositoryBranchesResponse, VerifyPublicGitHubRepositoryRefRequest, VerifyPublicGitHubRepositoryRefResponse, GitHubRepositoriesResponse, UpdateGitHubActionPolicyRequest, GoogleDriveBrowseItem, GoogleDriveBrowseResponse, GoogleDriveConnectionLifecycle, GoogleDriveConnectionLifecycleState, GoogleDriveConnectionMetadata, GoogleDriveDisconnectRequest, GoogleDriveLifecycleActionRequest, GoogleDriveKnowledgeSourceConfig, GoogleDriveKnowledgeSourceDestination, GoogleDriveKnowledgeSourceItem, GoogleDriveOAuthStartRequest, GoogleDriveOAuthStartResponse, GoogleDriveReadPolicy, GoogleDriveSelectedSource, GoogleDriveSyncCadence, GoogleDriveTargetScope, GitHubRepository, GitHubRepositoryScope, GoalSpec, SessionGoalReportRequirement, SessionGoalReportDelivery, IntegrationClientMetadata, KnownPermission, KnownSessionEventType, KnownUsageEventType, KnowledgeMemory, KnowledgeMemoryKind, KnowledgeMemorySearchRequest, KnowledgeMemoryStatus, KnowledgeSourceKind, KnowledgeSourceRef, GitCredentialProvider, GitCredentialBindingId, GitRepositoryAccess, PrReviewProvider, PrReviewCredentialKind, PrReviewWebhookAuthKind, PrReviewAppRegistration, PrReviewManagedGitHubInstallation, PrReviewManagedGitHubSetup, PrReviewRepositoryBinding, CreatePrReviewAppRegistrationRequest, UpdatePrReviewAppRegistrationRequest, CreatePrReviewRepositoryBindingRequest, UpdatePrReviewRepositoryBindingRequest, ListPrReviewConfigurationResponse, ListApiKeysResponse, ListOrganizationSessionsOptions, ListConnectionsResponse, ListSlackUserLinkAccessRequestsResponse, ListWorkspaceMemberCandidatesResponse, ListWorkspaceMembersResponse, McpServerConnectionRef, McpPersonalConnectionDelegation, McpPersonalConnectionSummary, OAuthStartRequest, OAuthStartResponse, Permission, PrepareSlackUserLinkAccessRequest, ProductAccessMode, LatencyMode, ReasoningEffort, GeneratedImageReceipt, GeneratedVideoFacts, GeneratedVideoReceipt, MediaGenerationResult, RetainedArtifactContent, RetainedArtifactContentOptions, RetainedArtifactDownload, RetainedArtifactDownloadOptions, RetainedArtifactMetadata, RetainedArtifactReference, RetainedArtifactUnavailable, RetainedOutputKind, RetainedOutputUnavailableReason, UpdateVideoGenerationPolicyRequest, VideoArtifactPlaybackSource, VideoGenerationAspectRatio, VideoGenerationCapabilities, VideoGenerationFundingOption, VideoGenerationFundingSource, VideoGenerationModelCapability, VideoGenerationOperationSummary, VideoGenerationPolicy, VideoGenerationPublicStatus, VideoGenerationResolution, VideoGenerationSourceMode, VideoGenerationTerminalFailureStatus, RecordingAvailablePayload, RecordingCodec, RecordingContentType, RecordingFailedPayload, RecordingFailedReason, RecordingMode, RecordingStartedPayload, RepositoryResourceRef, ResourceRef, SaveGoogleDriveSourceRequest, SaveGoogleDriveIntegrationSourceRequest, SandboxBackend, SandboxCapabilityName, SandboxOs, ScheduledTask, ScheduledTaskAccessAttention, ScheduledTaskAccessConnector, ScheduledTaskAccessFailureReason, ScheduledTaskAgentConfig, ScheduledTaskAgentConfigInput, ScheduledTaskDayOfWeek, ScheduledTaskOverlapPolicy, ScheduledTaskPolicyDrift, RefreshScheduledTaskAccessRequest, ScheduledTaskRun, ScheduledTaskRunAccessFailure, ScheduledTaskRunMode, ScheduledTaskRunStatus, ScheduledTaskAction, KnowledgeSourceSyncLimits, KnowledgeSourceSyncRunSummary, ScopedKnowledgeScope, ScheduledTaskScheduleSpec, ScheduledTaskStatus, ScheduledTaskTriggerType, Session, SessionBackgroundCommand, SessionBackgroundCommandReconciliation, SessionBackgroundCommandActivity, SessionBackgroundCommandListResponse, CancelSessionBackgroundCommandResult, SessionVisibility, SessionTenancyCreateCapabilities, SessionTenancyPublicProjection, UpdateSessionVisibilityRequest, UpdateSessionVisibilityResponse, ForkSessionRequest, ForkSessionResponse, SessionCapabilities, AgentTopologyPageResponse, AgentTopologySession, SessionListResponse, SessionListTotals, SessionListEntry, SessionListEntryResponse, SessionLineageResponse, SessionEffectiveToolPolicy, SessionQueueMutationResponse, SessionQueueSnapshot, SessionControlResponse, SessionRetryRequest, SandboxRecoverySelection, SandboxRecoveryProjection, SandboxRecoveryRequest, SandboxRecoveryResponse, SessionRetryResponse, ComposerDraft, DeleteSessionQueueItemRequest, EditSessionQueueItemRequest, EffectiveControlBlocker, EffectiveControlResumeOption, EffectiveSessionControl, MoveSessionQueueItemRequest, NewSessionDraft, NewSessionDraftOptions, NewSessionSelectionHistory, SaveComposerDraftRequest, SubmitComposerDraftRequest, SubmitComposerDraftResponse, SaveNewSessionDraftRequest, SessionCommandReceipt, SessionPromptRouting, SteerSessionQueueItemRequest, WorkspaceInferenceControlResponse, WorkspacePauseTimer, WorkspacePauseTimerRequest, SessionPendingInputPreview, SessionSystemUpdate, SessionSystemUpdateKind, SessionSystemUpdateState, SessionSummary, LineageNode, SessionMcpCredentialUpdateInput, RotateSessionMcpCredentialsRequest, RotateSessionMcpCredentialsReceipt, SessionMcpApprovalPolicy, SessionMcpApprovalPolicyTarget, SessionMcpServerInput, SessionMcpServerMetadata, SessionToolPolicy, FileSystemCapability, TerminalCapability, GitCapability, DesktopStreamCapability, RecordingCapability, ComputerUseCapability, ClientAuthConfig, StreamUrlRotatedPayload, StreamOpenedPayload, StreamClosedPayload, StreamRevokedPayload, AttachViewerRequest, AttachViewerResponse, ViewerHolder, AcknowledgeStreamRequest, AcknowledgeStreamResponse, ViewerHeartbeatRequest, ViewerHeartbeatResponse, SessionEvent, SessionEventCompactResult, SessionEventCompactResultOptions, SessionEventListOptions, SessionEventLatestClass, SessionEventPage, SessionEventPayloadMode, SessionEventReadDirection, SessionEventReadMode, SessionEventResultMode, SessionEventSemanticClass, SessionEventType, SessionGoal, SessionGoalRevision, ListSessionGoalRevisionsOptions, ListSessionGoalRevisionsResponse, RejectSessionGoalRevisionRequest, RejectSessionGoalRevisionResponse, RollbackSessionGoalRevisionRequest, SessionGoalCreatedBy, SessionGoalStatus, SessionHumanInputRequest, SessionStatus, SessionStatusChangedPayload, SessionStructuredCapabilities, SessionTurn, DraftTimelineAnnotation, SubmittedTimelineAnnotation, TimelineAnnotation, TimelineAnnotationSource, TimelineAnnotationSourceEventType, TimelineAnnotationSourceKind, ServiceTurnInitiator, ServiceTurnInitiatorContext, TurnInitiatorContext, SessionTurnSource, SessionTurnStatus, SubmitHumanInputResponseRequest, TurnInitiator, ToolAuthNeededPayload, UpdateConnectionRequest, SandboxCommandOutputDeltaPayload, FsChangeKind, FsChangedPayload, GitChangedPayload, TerminalPtyStartedPayload, TerminalPtyOutputDeltaPayload, TerminalPtyExitedPayload, FsNodeType, FsTreeNode, FsEncoding, FileSystemRouteIdentity, FsListRequest, FsListResponse, FsListBatchRequest, FsListBatchResponse, FsReadRequest, FsReadResponse, PublishSandboxFileArtifactRequest, SandboxFileArtifactReceipt, FsWriteRequest, FsWriteResponse, FsDeleteRequest, FsDeleteResponse, FsMoveRequest, FsMoveResponse, FsMkdirRequest, FsMkdirResponse, GitFileStatusCode, GitFileStatus, GitStatusRequest, GitStatusResponse, GitDiffLineType, GitDiffLine, GitDiffHunk, GitFileDiff, GitDiffRequest, GitDiffResponse, GitReadBatchItemRequest, GitReadBatchRequest, GitReadBatchItemResponse, GitReadBatchResponse, GitLogRequest, GitCommit, GitLogResponse, GitShowRequest, GitShowResponse, SetWorkspaceEnvironmentVariableRequest, WorkspaceCaptureFile, WorkspaceCaptureRepo, WorkspaceCaptureDegradedReason, WorkspaceCaptureStats, WorkspaceCaptureManifest, WorkspaceRevisionCapturedPayload, WorkspaceRevisionDegradedPayload, WorkspaceCaptureSignedUrl, GetWorkspaceCaptureResponse, GetWorkspaceCaptureFileResponse, TerminalExecRequest, TerminalExecResponse, PtyOpenRequest, PtyOpenResponse, PtyWriteRequest, PtyResizeRequest, PtyCloseRequest, ToolRef, SlackUserLinkAccessMutationRequest, SlackUserLinkAccessRequest, SlackUserLinkAccessRequestStatus, UpdateKnowledgeMemoryRequest, UpdateScheduledTaskRequest, UpdateSessionGoalRequest, UpdateSessionMcpApprovalPolicyRequest, UpdateSessionMcpApprovalPolicyResponse, UpdateSessionAttentionRequest, UpdateSessionArchiveRequest, UpdateSessionPinRequest, UpdateSessionRequest, UpdateSessionVariableSetsRequest, UpdateSessionToolPolicyRequest, UpdateSessionAgentRequest, AgentCapabilityId, AgentSkillsCapability, AgentCapabilityToggles, AgentCapabilities, AgentRenderer, AgentConfigRequest, WorkspaceAgentDefaults, ResolvedAgentCapabilities, ResolvedAgentConfig, AgentEffectiveTools, ClientAgentConfig, AgentConfigErrorCode, UpdateVariableSetRequest, UpdateWorkspaceEnvironmentRequest, UpdateWorkspaceMemberRequest, UpdateWorkspaceRequest, UpdateWorkspaceModelAccessPolicyRequest, UpdateWorkspaceSettingsRequest, WorkspaceSlackReactionSummonSettings, TranscribeAudioResponse, UploadFileInput, UsageEvent, UsageEventType, UserApprovalDecisionEventInput, UserHumanInputResponseEventInput, UserMessageEventInput, PersonalResourceAttachmentIntent, PersonalResourceAttachmentSummary, UserResourceAuthoritySummary, UserResourceAuthorityGrant, UserResourceKind, ListUserResourceAuthoritiesOptions, ListUserResourceAuthoritiesResponse, Workspace, WorkspaceControlEvent, VariableSet, VariableSetAttachmentMetadata, ResolveVariableSetAttachmentsRequest, ResolveVariableSetAttachmentsResponse, VariableSetSecret, VariableSetVariableMetadata, Channel, CreateChannelRequest, ReorderChannelsRequest, UpdateChannelRequest, UpdateSessionChannelRequest, Rig, RigVersion, RigCheck, RigChange, RigChangeKind, RigChangeStatus, RigCheckResult, RigChangeVerification, CreateRigRequest, UpdateRigRequest, RigSetupAppendPayload, RigDefinitionEditPayload, ProposeRigChangeRequest, WorkspaceEnvironment, WorkspaceEnvironmentVariableMetadata, WorkspaceMember, WorkspaceMemberCandidate, PreviewSkillImportRequest, ApiIntegrationAuthPreview, ApiIntegrationInstallationSummary, IntegrationDefinitionSummary, ApiIntegrationPreview, ApiIntegrationOAuthStartRequest, ApiIntegrationProtocol, IntegrationSource, ApiIntegrationToolPreview, ApiIntegrationUninstallPreview, IntegrationFacetBindingSummary, IntegrationFacetDefinitionSummary, IntegrationFacetKind, IntegrationFacetMutationResult, IntegrationFacetRemovalResult, IntegrationFacetStatus, IntegrationInstanceFacetsResponse, InstallApiIntegrationRequest, InstalledApiIntegration, ListIntegrationDefinitionsResponse, ListApiIntegrationsResponse, PreviewApiIntegrationRequest, MutateIntegrationFacetRequest, UpsertIntegrationFacetRequest, SkillImportFileSummary, SkillImportPreview, SkillImportSource, SkillInstallationSource, SkillUninstallPreview, UninstallSkillRequest, UninstallSkillResult, UninstallApiIntegrationRequest, UninstallApiIntegrationResult, PluginManifest, PluginManifestComponent, PluginComponentBinding, PreviewPluginRequest, PluginComponentPreview, PluginUpdateDiff, PluginPreview, InstallPluginRequest, InstalledPlugin, PluginInstallationSummary, ListInstalledPluginsResponse, PluginUninstallComponentImpact, PluginUninstallPreview, UninstallPluginRequest, UninstallPluginResult, WorkspaceMemorySearchMode, WorkspaceMemorySearchRequest, WorkspaceMemorySearchResult, WorkspaceMemorySearchResponse, WorkspaceSessionDefaults, WorkspaceSettings, WorkspaceVideoGenerationSettings, WorkspaceVoiceInputSettings, VoiceInputProviderId, MetricSample, MachineState, MachineKind, MachineConnectionAuthority, MachineRuntimeCapabilities, MachineUpdateStatus, MachineUpdateState, MachineRuntime, UpdateMachineAgentResponse, MachineOperationPolicy, UpdateMachineOperationPolicyRequest, MachineView, MachinesResponse, MachineMetricsSeriesResponse, RemoveEnrollmentRequest, RemoveEnrollmentResponse, SwapActiveSandboxRequest, SwapActiveSandboxResponse, EnrollmentOs, ResourceAuthorityScope, DeviceEnrollmentLookupRequest, DeviceEnrollmentLookupResponse, DeviceEnrollmentLookupMachine, DeviceEnrollmentApproveRequest, DeviceEnrollmentApproveResponse, DeviceEnrollmentDenyRequest, DeviceEnrollmentDenyResponse, MintEnrollTokenRequest, MintEnrollTokenResponse, EnrollmentCredentials, EnrollTokenExchangeRequest, EnrollTokenExchangeResponse, } from "./types.js";
87
87
  export type { FeedbackSentiment, CreateFeedbackRequest, Feedback, FeedbackSubmissionResponse, } from "./feedback.js";
88
88
  export type * from "./knowledge.js";
89
89
  export type { ConnectorToolPermission, ConnectorToolPermissionEntry, ConnectorToolPermissionsResponse, UpdateConnectorToolPermissionsRequest, } from "./types.js";
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  EMPTY_FINAL_REPLY_NOTICE,
3
3
  OpenGeniEmbeddingClient,
4
4
  turnCompletedWithEmptyFinalReply
5
- } from "./chunk-MOTJYIYL.js";
5
+ } from "./chunk-TZFJUYCT.js";
6
6
  import {
7
7
  DEFAULT_WORKSPACE_TRANSCRIPTION_POLICY,
8
8
  authorizeTranscriptionAdapter,
@@ -35,15 +35,15 @@ import {
35
35
  projectSessionRealtimeLifecycle,
36
36
  startCodexRealtimeWebrtc
37
37
  } from "./chunk-2UXZUCEZ.js";
38
- import "./chunk-AH5D5Q5V.js";
39
- import "./chunk-HMGADJGZ.js";
38
+ import "./chunk-2NIR4WBR.js";
39
+ import "./chunk-2VPO6IQC.js";
40
40
  import {
41
41
  humanizeModelSlug,
42
42
  isRawModelLabel,
43
43
  modelDisplayName,
44
44
  modelSlug,
45
45
  modelVendor
46
- } from "./chunk-ZKPY6YAJ.js";
46
+ } from "./chunk-6Z5QRYHG.js";
47
47
  import {
48
48
  AUTOMATIC_SESSION_TITLE_FALLBACK,
49
49
  deriveAutomaticSessionTitlePreview,
@@ -66,7 +66,7 @@ import {
66
66
  resumeSequenceFromRequest,
67
67
  sessionEventsToSseResponse,
68
68
  sessionEventsToSseStream
69
- } from "./chunk-RWKB6YZG.js";
69
+ } from "./chunk-66AKEWV6.js";
70
70
  import "./chunk-UM4ZXXJR.js";
71
71
  import {
72
72
  ToolRequestError,
@@ -91,7 +91,7 @@ import {
91
91
  isOpenGeniSiteBridgeRequestMessage,
92
92
  isSiteCatalogStaleError,
93
93
  sanitizeOpenGeniSiteToolCallRequest
94
- } from "./chunk-DUVIYER4.js";
94
+ } from "./chunk-2ULNDOLD.js";
95
95
  import {
96
96
  OpenGeniToolCallError,
97
97
  OpenGeniToolReapprovalRequiredError,
@@ -111,7 +111,8 @@ import {
111
111
  streamWorkspaceControlEvents,
112
112
  streamWorkspaceInteractionRevisions,
113
113
  streamWorkspaceLiveEvents
114
- } from "./chunk-FG3OO5LM.js";
114
+ } from "./chunk-5AN2FLNC.js";
115
+ import "./chunk-VPVMLM7Q.js";
115
116
  import {
116
117
  parseSseStream,
117
118
  sessionEventStreamCoveredThrough,
@@ -131,7 +132,7 @@ import {
131
132
  RETAINED_OUTPUT_MAX_PAGE_BYTES,
132
133
  SANDBOX_FILE_ARTIFACT_MAX_BYTES,
133
134
  SESSION_EVENT_TYPES
134
- } from "./chunk-YIKA2QT4.js";
135
+ } from "./chunk-WIYAB33K.js";
135
136
  import {
136
137
  AttachedBrowserDeviceCollection,
137
138
  AttachedBrowserDeviceResource,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../contracts/src/mcp-endpoint.ts","../src/tool-display-metadata.ts","../src/mcp-output.ts","../src/desktop.ts","../src/terminal.ts","../src/workspace-instruction-policies.ts","../src/company-profile.ts","../src/company-brain.ts","../src/preference-registry.ts"],"sourcesContent":["/** Exact endpoint identity: normalize URL syntax, preserve paths and query parameters. */\nexport function mcpEndpointIdentity(value: string | null | undefined): string | null {\n if (!value) return null;\n try {\n const url = new URL(value);\n if (![\"https:\", \"http:\"].includes(url.protocol) || url.username || url.password) return null;\n url.hash = \"\";\n return url.href;\n } catch {\n return null;\n }\n}\n\nexport function pluginMcpUnavailableReason(server: {\n endpoint: string | null;\n transport?: string;\n requiresConfiguration?: boolean;\n}): string | null {\n if (server.transport === \"stdio\" || !server.endpoint) return \"Requires a local runtime\";\n if (\n server.transport &&\n ![\"http\", \"streamable-http\", \"streamable_http\"].includes(server.transport)\n )\n return \"Unsupported transport: \" + server.transport;\n if (server.requiresConfiguration || server.endpoint.includes(\"{\"))\n return \"Requires custom connection configuration\";\n const endpoint = mcpEndpointIdentity(server.endpoint);\n if (!endpoint?.startsWith(\"https://\")) return \"Requires a valid HTTPS endpoint\";\n return null;\n}\n","import type { ToolDisplayMetadata } from \"@opengeni/contracts\";\n\n/** Browser/native-safe event projection; do not import server schema runtimes. */\nexport function parseToolDisplayMetadata(value: unknown): ToolDisplayMetadata | undefined {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return undefined;\n const item = value as Record<string, unknown>;\n if (Object.keys(item).some((key) => ![\"toolName\", \"title\", \"accountLabel\"].includes(key)))\n return undefined;\n const text = (v: unknown, max: number): v is string =>\n typeof v === \"string\" && v.length > 0 && v.length <= max;\n if (!text(item.toolName, 512) || /[\\u0000-\\u001f\\u007f]/u.test(item.toolName)) return undefined;\n if (item.title !== undefined && !text(item.title, 512)) return undefined;\n if (item.accountLabel !== undefined && !text(item.accountLabel, 1024)) return undefined;\n return {\n toolName: item.toolName,\n ...(item.title !== undefined ? { title: item.title as string } : {}),\n ...(item.accountLabel !== undefined ? { accountLabel: item.accountLabel as string } : {}),\n };\n}\n","/**\n * A transport-tolerant MCP tool result.\n *\n * `value` is the canonical machine-readable payload after recognized MCP/JSON\n * envelopes are removed. `text` is the best presentation string without\n * discarding structured data. `raw` always retains the original evidence.\n */\nexport type NormalizedMcpOutput = Readonly<{\n raw: unknown;\n value: unknown;\n text: string;\n isError: boolean;\n}>;\n\nconst MAX_MCP_OUTPUT_DEPTH = 8;\nconst RESULT_ENVELOPE_KEYS = new Set([\"result\", \"isError\", \"jsonrpc\", \"id\", \"_meta\"]);\n\n/** Normalize common direct, JSON, and standard MCP result envelopes without throwing. */\nexport function normalizeMcpOutput(output: unknown): NormalizedMcpOutput {\n const normalized = normalizeValue(output, 0, new Set<object>());\n return {\n raw: output,\n value: normalized.value,\n text: normalized.text,\n isError: normalized.isError,\n };\n}\n\ntype NormalizedValue = Omit<NormalizedMcpOutput, \"raw\">;\n\nfunction normalizeValue(value: unknown, depth: number, ancestors: Set<object>): NormalizedValue {\n if (value === null || value === undefined) {\n return { value, text: \"\", isError: false };\n }\n if (typeof value === \"string\") {\n return normalizeText(value, depth, ancestors);\n }\n if (typeof value !== \"object\") {\n return { value, text: String(value), isError: false };\n }\n if (depth >= MAX_MCP_OUTPUT_DEPTH || ancestors.has(value)) {\n return { value, text: safeStringify(value), isError: false };\n }\n\n ancestors.add(value);\n try {\n if (Array.isArray(value)) {\n return { value, text: safeStringify(value), isError: false };\n }\n\n const record = value as Record<string, unknown>;\n const envelopeError = record.isError === true;\n\n if (record.type === \"text\" && typeof record.text === \"string\") {\n const normalized = normalizeText(record.text, depth + 1, ancestors);\n return {\n value: normalized.value,\n text: record.text,\n isError: envelopeError || normalized.isError,\n };\n }\n\n if (\"structuredContent\" in record) {\n const normalized = normalizeValue(record.structuredContent, depth + 1, ancestors);\n return {\n value: normalized.value,\n text: firstMcpText(record.content) ?? normalized.text,\n isError: envelopeError || normalized.isError,\n };\n }\n\n if (isMcpContent(record.content)) {\n const text = firstMcpText(record.content);\n if (text !== null) {\n const normalized = normalizeText(text, depth + 1, ancestors);\n return {\n value: normalized.value,\n text,\n isError: envelopeError || normalized.isError,\n };\n }\n return {\n value,\n text: safeStringify(value),\n isError: envelopeError,\n };\n }\n\n if (isResultEnvelope(record)) {\n const normalized = normalizeValue(record.result, depth + 1, ancestors);\n return {\n value: normalized.value,\n text: normalized.text,\n isError: envelopeError || normalized.isError,\n };\n }\n\n return {\n value,\n text: safeStringify(value),\n isError: envelopeError,\n };\n } finally {\n ancestors.delete(value);\n }\n}\n\nfunction normalizeText(text: string, depth: number, ancestors: Set<object>): NormalizedValue {\n try {\n const parsed: unknown = JSON.parse(text);\n const normalized = normalizeValue(parsed, depth + 1, ancestors);\n return {\n value: normalized.value,\n text,\n isError: normalized.isError,\n };\n } catch {\n return { value: text, text, isError: false };\n }\n}\n\nfunction isMcpContent(value: unknown): value is readonly Record<string, unknown>[] {\n return (\n Array.isArray(value) &&\n value.some(\n (part) =>\n part !== null &&\n typeof part === \"object\" &&\n typeof (part as { type?: unknown }).type === \"string\",\n )\n );\n}\n\nfunction firstMcpText(value: unknown): string | null {\n if (!Array.isArray(value)) {\n return null;\n }\n for (const part of value) {\n if (\n part !== null &&\n typeof part === \"object\" &&\n (part as { type?: unknown }).type === \"text\" &&\n typeof (part as { text?: unknown }).text === \"string\"\n ) {\n return (part as { text: string }).text;\n }\n }\n return null;\n}\n\nfunction isResultEnvelope(record: Record<string, unknown>): boolean {\n return \"result\" in record && Object.keys(record).every((key) => RESULT_ENVELOPE_KEYS.has(key));\n}\n\nfunction safeStringify(value: unknown): string {\n try {\n return JSON.stringify(value) ?? \"\";\n } catch {\n return String(value);\n }\n}\n","// Zero-dependency desktop (noVNC) transport contract.\n//\n// The actual `@novnc/novnc` RFB import is a browser-only DOM dependency and\n// lives in `@opengeni/react` (lazily imported, SSR-safe). The framework-agnostic\n// SDK ships only the transport CONTRACT: a URL assembler, the minimal RFB\n// surface the component drives, the connection state machine, and the\n// rotation/fence reducers — all pure and unit-testable, with no DOM and no deps.\n//\n// Channel A (terminal-as-events, files, git) needs NO new transport here: those\n// are event projections + the synchronous fs/git/terminal point queries on\n// `OpenGeniClient`. Only the desktop pixel plane (Channel B, direct-to-provider)\n// needs this.\n\nimport type { DesktopStreamCapability, StreamUrlRotatedPayload } from \"./types\";\n\n/**\n * Translate the negotiated desktop capability into the WebSocket URL the noVNC\n * RFB client connects to. The scoped provider token is ALREADY embedded in the\n * minted `url` (Modal tunnel host, Blaxel `bl_preview_token`, Daytona signed\n * preview) by `session.resolveExposedPort(6080)` — we do NOT append `cap.token`\n * as a query param (that double-auth was an adversarial-review bug: the box runs\n * `-nopw` in v1, so the RFB password is meaningless and the real auth is the\n * tunnel token in the host). We only normalize the scheme to `ws`/`wss` and, when\n * the minted URL points at a `vnc.html` viewer page, rewrite it to the\n * websockify socket path noVNC actually dials.\n */\nexport function desktopSocketUrl(cap: Pick<DesktopStreamCapability, \"url\">): string {\n if (!cap.url) {\n throw new Error(\"desktop capability has no url (transport is null)\");\n }\n const u = new URL(cap.url);\n // https → wss, http → ws (noVNC dials a WebSocket, not the HTTP viewer page).\n if (u.protocol === \"https:\") {\n u.protocol = \"wss:\";\n } else if (u.protocol === \"http:\") {\n u.protocol = \"ws:\";\n }\n // A minted `…/vnc.html` (or `…/vnc_lite.html`) viewer page → the websockify\n // socket the page itself would open (`…/websockify`). A bare host/path with no\n // viewer page is already the socket path; leave it untouched.\n if (/\\/vnc(_lite)?\\.html$/.test(u.pathname)) {\n u.pathname = u.pathname.replace(/\\/vnc(_lite)?\\.html$/, \"/websockify\");\n u.search = \"\";\n u.hash = \"\";\n }\n return u.toString();\n}\n\n/**\n * The minimal RFB surface the React component drives. Lets tests (and 3rd\n * parties swapping noVNC for a WebRTC client in v3) provide a fake without the\n * DOM. Matches `@novnc/novnc`'s RFB constructor + lifecycle.\n */\nexport interface DesktopRfbLike {\n viewOnly: boolean;\n scaleViewport: boolean;\n /**\n * 1:1 viewport clipping. We always drive this FALSE: with clipping on, noVNC\n * paints the framebuffer pixel-for-pixel and scrolls/crops to the container\n * (the \"zoomed in\" look). FALSE lets `scaleViewport` shrink the 1280x800 frame\n * to fit the panel (aspect-preserved). Declared so the hook can pin it instead\n * of relying on noVNC's default — `scaleViewport=true` forces clip off\n * internally, but a stale/partial state on reconnect could leave it on.\n */\n clipViewport: boolean;\n addEventListener(\n type: \"connect\" | \"disconnect\" | \"securityfailure\",\n cb: (e?: unknown) => void,\n ): void;\n removeEventListener?: (\n type: \"connect\" | \"disconnect\" | \"securityfailure\",\n cb: (e?: unknown) => void,\n ) => void;\n /** Send clipboard text over the already-open RFB connection. */\n clipboardPasteFrom?(text: string): void;\n /** Send one RFB key event. A missing `down` emits a complete key press. */\n sendKey?(keysym: number, code: string, down?: boolean): void;\n /** Focus or release the RFB keyboard sink without reconnecting. */\n focus?(options?: FocusOptions): void;\n blur?(): void;\n disconnect(): void;\n}\n\nexport type DesktopRfbFactory = (\n target: HTMLElement,\n url: string,\n opts: {\n credentials?: { password?: string | undefined } | undefined;\n wsProtocols?: string[] | undefined;\n },\n) => DesktopRfbLike;\n\nexport type DesktopConnectionState =\n | \"idle\"\n | \"negotiating\"\n | \"connecting\"\n | \"connected\"\n | \"rotating\"\n | \"reconnecting\"\n | \"error\"\n | \"ended\";\n\nexport type DesktopStreamEvent =\n | { type: \"negotiated\" }\n | { type: \"connected\" }\n | { type: \"disconnected\" }\n | { type: \"rotate\" }\n | { type: \"fail\" }\n | { type: \"abort\" };\n\n/**\n * Pure reducer for the desktop connection lifecycle. The component owns the RFB\n * object + DOM; this owns the transitions so they are unit-testable. Mirrors the\n * Channel-A stream reducer discipline.\n */\nexport function nextDesktopState(\n current: DesktopConnectionState,\n ev: DesktopStreamEvent,\n): DesktopConnectionState {\n switch (ev.type) {\n case \"negotiated\":\n return \"connecting\";\n case \"connected\":\n return \"connected\";\n case \"rotate\":\n return current === \"connected\" ? \"rotating\" : current;\n case \"disconnected\":\n // A deliberate teardown (ended) stays ended; everything else reconnects.\n return current === \"ended\" ? \"ended\" : \"reconnecting\";\n case \"fail\":\n return \"error\";\n case \"abort\":\n return \"ended\";\n default:\n return current;\n }\n}\n\n// `DesktopStreamCapability` is the desktop cell of `SessionCapabilities`; alias\n// it for the rotation reducer below without depending on the whole doc.\nexport type DesktopStreamCapabilityLike = {\n url: string | null;\n token: string | null;\n expiresAt: string | null;\n};\n\n/**\n * Apply a `stream.url.rotated` event onto a desktop capability, fencing on\n * leaseEpoch (split-brain). A rotation minted under an epoch the client has\n * already advanced PAST is from a superseded owner and is dropped (returns\n * null); otherwise the fresh url/token/expiresAt are folded in.\n */\nexport function applyUrlRotation<T extends DesktopStreamCapabilityLike>(\n cap: T,\n payload: StreamUrlRotatedPayload,\n knownEpoch: number,\n): T | null {\n if (payload.leaseEpoch < knownEpoch) {\n return null;\n }\n return { ...cap, url: payload.url, token: payload.token, expiresAt: payload.expiresAt };\n}\n","// Zero-dependency interactive-terminal (ttyd PTY-over-websocket) transport\n// contract. Symmetric with `desktop.ts`: the SDK ships only the pure transport\n// CONTRACT (a URL assembler + the ttyd wire-protocol frame codec), with no DOM\n// and no deps. The actual WebSocket open + xterm attach lives in `@opengeni/react`\n// (`use-terminal-stream.ts`).\n//\n// The interactive terminal is a REAL PTY streamed over the SAME Modal raw-TLS\n// tunnel as the desktop noVNC, with the SAME scoped stream-token mechanism. The\n// box bakes `ttyd` on `TERMINAL_STREAM_PORT` (7681); `session.resolveExposedPort`\n// mints the tunnel URL. The Terminal capability cell carries transport \"pty-ws\" +\n// that url + the scoped token when the box is warm and a viewer is attached.\n\nimport type { TerminalCapability } from \"./types\";\n\n/**\n * Translate the negotiated `pty-ws` Terminal capability into the WebSocket URL\n * the ttyd client dials. The scoped provider token is ALREADY embedded in the\n * minted `url` (the Modal tunnel host) by `session.resolveExposedPort(7681)` —\n * we do NOT append `cap.token` (identical posture to the desktop: the gate is the\n * unguessable short-TTL tunnel URL + the server-recorded scoped stream token; ttyd\n * runs `--writable` with no `-c` credential in v1). We only normalize the scheme\n * to `ws`/`wss`; a bare host is already the ttyd websocket endpoint.\n */\nexport function terminalSocketUrl(cap: Pick<TerminalCapability, \"url\">): string {\n if (!cap.url) {\n throw new Error(\"terminal capability has no url (transport is not pty-ws)\");\n }\n const u = new URL(cap.url);\n // https → wss, http → ws (ttyd is dialed as a WebSocket, not an HTTP page).\n if (u.protocol === \"https:\") {\n u.protocol = \"wss:\";\n } else if (u.protocol === \"http:\") {\n u.protocol = \"ws:\";\n }\n return u.toString();\n}\n\n// ── ttyd wire protocol ───────────────────────────────────────────────────────\n// ttyd frames are a single ASCII command char + payload. These mirror ttyd's\n// `protocol.h` Command enum. Client→server and server→client share the byte 0/1/2\n// values but mean different things per direction (see below).\n\n/** ttyd subprotocol — REQUIRED on the WebSocket handshake or ttyd refuses it. */\nexport const TTYD_SUBPROTOCOL = \"tty\";\n\n/** Client→server command bytes (the first char of each outbound text frame). */\nexport const TtydClientCommand = {\n /** stdin: \"0\" + raw input bytes. */\n INPUT: \"0\",\n /** window resize: \"1\" + JSON.stringify({ columns, rows }). */\n RESIZE: \"1\",\n /** flow-control pause (back-pressure): \"2\". */\n PAUSE: \"2\",\n /** flow-control resume: \"3\". */\n RESUME: \"3\",\n} as const;\n\n/** Server→client command bytes (the first char of each inbound frame). */\nexport const TtydServerCommand = {\n /** stdout/stderr: \"0\" + raw output bytes (write the rest into xterm). */\n OUTPUT: \"0\",\n /** set the window title: \"1\" + title string. */\n SET_WINDOW_TITLE: \"1\",\n /** ttyd client preferences JSON: \"2\" + json (ignored by us). */\n SET_PREFERENCES: \"2\",\n} as const;\n\n/**\n * The ttyd handshake's first frame: an auth message. ttyd expects\n * `JSON.stringify({ AuthToken })` as the FIRST text frame on the socket. We send\n * an empty token — our gate is the tunnel URL + scoped stream token, NOT a ttyd\n * `-c` basic-auth credential (which the box does not set in v1). Optional ttyd\n * `columns`/`rows` can ride this frame to seed the PTY size before the first\n * resize. Pure (string-building only) so it stays unit-testable in the SDK.\n */\nexport function ttydAuthFrame(opts?: { columns?: number; rows?: number }): string {\n const frame: { AuthToken: string; columns?: number; rows?: number } = { AuthToken: \"\" };\n if (opts?.columns && opts.columns > 0) frame.columns = opts.columns;\n if (opts?.rows && opts.rows > 0) frame.rows = opts.rows;\n return JSON.stringify(frame);\n}\n\n/** Build a client→server INPUT (stdin) frame: \"0\" + data. */\nexport function ttydInputFrame(data: string): string {\n return TtydClientCommand.INPUT + data;\n}\n\n/** Build a client→server RESIZE frame: \"1\" + JSON.stringify({ columns, rows }). */\nexport function ttydResizeFrame(columns: number, rows: number): string {\n return TtydClientCommand.RESIZE + JSON.stringify({ columns, rows });\n}\n","export const WORKSPACE_INSTRUCTION_POLICY_CONTENT_MAX_CHARS = 262_144;\n\nexport type WorkspaceInstructionPolicyKind = \"charter\" | \"policy\";\nexport type WorkspaceInstructionPolicyScope = \"global\" | \"role\";\nexport type WorkspaceInstructionPolicyProvenanceSource =\n | \"human\"\n | \"onboarding\"\n | \"agent_learning\"\n | \"knowledge_proposal\"\n | \"legacy_import\";\nexport type WorkspaceInstructionPolicyDraftProvenanceSource = Exclude<\n WorkspaceInstructionPolicyProvenanceSource,\n \"legacy_import\" | \"agent_learning\"\n>;\nexport type WorkspaceInstructionPolicyActivationType = \"activate\" | \"rollback\";\n\nexport function normalizeWorkspaceInstructionPolicyRoleKey(value: string): string {\n return value.normalize(\"NFKC\").trim().toLowerCase().replace(/\\s+/gu, \"-\").replace(/-+/g, \"-\");\n}\n\nexport type WorkspaceInstructionPolicyTarget = {\n kind: WorkspaceInstructionPolicyKind;\n scope: WorkspaceInstructionPolicyScope;\n roleKey: string | null;\n};\n\nexport type WorkspaceInstructionPolicyRevisionIdentity = {\n id: string;\n revision: number;\n contentHash: string;\n};\n\nexport type WorkspaceInstructionPolicyRevision = WorkspaceInstructionPolicyRevisionIdentity &\n WorkspaceInstructionPolicyTarget & {\n operationId: string;\n accountId: string;\n workspaceId: string;\n content: string;\n provenance: {\n source: WorkspaceInstructionPolicyProvenanceSource;\n sourceId: string | null;\n };\n supersedesRevisionId: string | null;\n createdBySubjectId: string;\n createdAt: string;\n };\n\nexport type WorkspaceInstructionPolicyHead = WorkspaceInstructionPolicyTarget & {\n workspaceId: string;\n revisionId: string;\n revision: number;\n contentHash: string;\n activationVersion: number;\n activatedAt: string;\n};\n\nexport type WorkspaceInstructionPolicyInactiveHead = WorkspaceInstructionPolicyTarget & {\n workspaceId: string;\n activationVersion: number;\n deactivatedAt: string;\n};\n\nexport type WorkspaceInstructionPolicyActivationEvent = WorkspaceInstructionPolicyTarget & {\n id: string;\n operationId: string;\n accountId: string;\n workspaceId: string;\n type: WorkspaceInstructionPolicyActivationType;\n activationVersion: number;\n oldRevision: WorkspaceInstructionPolicyRevisionIdentity | null;\n newRevision: WorkspaceInstructionPolicyRevisionIdentity;\n actorSubjectId: string;\n reason: string;\n createdAt: string;\n};\n\nexport type WorkspaceInstructionPolicyDeactivationEvent = WorkspaceInstructionPolicyTarget & {\n id: string;\n operationId: string;\n accountId: string;\n workspaceId: string;\n type: \"automatic_deactivate\";\n activationVersion: number;\n oldRevision: WorkspaceInstructionPolicyRevisionIdentity;\n actorSubjectId: string;\n reason: string;\n createdAt: string;\n};\n\nexport type CreateWorkspaceInstructionPolicyDraftRequest = WorkspaceInstructionPolicyTarget & {\n operationId?: string;\n content: string;\n provenanceSource?: WorkspaceInstructionPolicyDraftProvenanceSource;\n provenanceSourceId?: string | null;\n supersedesRevisionId?: string | null;\n};\n\nexport type ImportLegacyWorkspaceInstructionPolicyDraftRequest = {\n operationId?: string;\n supersedesRevisionId?: string | null;\n};\n\nexport type WorkspaceInstructionPolicyListOptions = {\n kind?: WorkspaceInstructionPolicyKind;\n scope?: WorkspaceInstructionPolicyScope;\n roleKey?: string;\n afterRevision?: number;\n limit?: number;\n};\n\nexport type WorkspaceInstructionPolicyListResponse = {\n revisions: WorkspaceInstructionPolicyRevision[];\n activeHeads: WorkspaceInstructionPolicyHead[];\n /** Additive current inactive target boundaries; absent on pre-controller servers. */\n inactiveHeads?: WorkspaceInstructionPolicyInactiveHead[];\n inactiveHeadsTruncated?: boolean;\n activationEvents: WorkspaceInstructionPolicyActivationEvent[];\n /** Additive lifecycle history; absent on pre-controller servers. */\n deactivationEvents?: WorkspaceInstructionPolicyDeactivationEvent[];\n nextAfterRevision: number | null;\n};\n\nexport type WorkspaceInstructionPolicyDiffRequest = {\n fromRevisionId: string;\n toRevisionId: string;\n};\n\nexport type WorkspaceInstructionPolicyDiffResponse = {\n from: WorkspaceInstructionPolicyRevision;\n to: WorkspaceInstructionPolicyRevision;\n format: \"unified\";\n diff: string;\n};\n\nexport type ActivateWorkspaceInstructionPolicyRequest = {\n operationId?: string;\n expectedCurrentRevisionId: string | null;\n expectedActivationVersion?: number;\n reason: string;\n};\n\nexport type RollbackWorkspaceInstructionPolicyRequest = {\n operationId?: string;\n targetRevisionId: string;\n expectedCurrentRevisionId: string;\n expectedActivationVersion?: number;\n reason: string;\n};\n\nexport type WorkspaceInstructionPolicyActivationResponse = {\n head: WorkspaceInstructionPolicyHead;\n event: WorkspaceInstructionPolicyActivationEvent;\n};\n\nexport type WorkspaceInstructionPolicyConflictResponse = {\n code: \"WORKSPACE_INSTRUCTION_POLICY_CONFLICT\";\n message: string;\n currentHead: WorkspaceInstructionPolicyHead | null;\n};\n\nexport type WorkspaceInstructionPolicyOperationReuseResponse = {\n code: \"WORKSPACE_INSTRUCTION_POLICY_OPERATION_REUSED\";\n message: string;\n};\n\nexport type WorkspaceInstructionPolicyOnboardingProposalSource = {\n id: string;\n version: string;\n confidenceBps: number;\n};\n\nexport type CreateWorkspaceInstructionPolicyOnboardingProposalRequest =\n WorkspaceInstructionPolicyTarget & {\n operationId?: string;\n content: string;\n sourceId: string;\n sourceVersion: string;\n confidenceBps: number;\n expectedCurrentRevisionId: string | null;\n expectedActivationVersion: number;\n };\n\nexport type WorkspaceInstructionPolicyOnboardingProposal = WorkspaceInstructionPolicyTarget & {\n id: string;\n operationId: string;\n accountId: string;\n workspaceId: string;\n source: WorkspaceInstructionPolicyOnboardingProposalSource;\n baseline: WorkspaceInstructionPolicyHead | null;\n draft: WorkspaceInstructionPolicyRevision;\n status: \"proposed\";\n createdBySubjectId: string;\n createdAt: string;\n};\n\nexport type WorkspaceInstructionPolicyOnboardingProposalListOptions = {\n limit?: number;\n};\n\nexport type WorkspaceInstructionPolicyOnboardingProposalListResponse = {\n proposals: WorkspaceInstructionPolicyOnboardingProposal[];\n truncated: boolean;\n};\n\nexport type WorkspaceInstructionPolicyOnboardingProposalContentErrorResponse = {\n code:\n | \"WORKSPACE_INSTRUCTION_POLICY_ONBOARDING_PROPOSAL_EMPTY\"\n | \"WORKSPACE_INSTRUCTION_POLICY_ONBOARDING_PROPOSAL_OVERSIZED\";\n message: string;\n maxChars: number;\n};\n\nexport type WorkspaceInstructionPolicyOnboardingProposalStaleResponse = {\n code: \"WORKSPACE_INSTRUCTION_POLICY_ONBOARDING_PROPOSAL_STALE\";\n message: string;\n currentHead: WorkspaceInstructionPolicyHead | null;\n};\n\nexport type WorkspaceInstructionPolicyOnboardingProposalConflictResponse = {\n code: \"WORKSPACE_INSTRUCTION_POLICY_ONBOARDING_PROPOSAL_CONFLICT\";\n message: string;\n existingProposalId: string;\n existingDraftRevisionId: string;\n};\n","export const COMPANY_PROFILE_SCALAR_MAX_CHARS = 2_048;\nexport const COMPANY_PROFILE_ENTRY_MAX_CHARS = 1_024;\nexport const COMPANY_PROFILE_ENTRY_MAX_COUNT = 16;\n\nexport type CompanyProfileEntry = { key: string; content: string };\nexport type CompanyProfileContent = {\n identity: string | null;\n mission: string | null;\n products: CompanyProfileEntry[];\n customers: CompanyProfileEntry[];\n goals: CompanyProfileEntry[];\n constraints: CompanyProfileEntry[];\n};\nexport type CompanyProfileRevisionIdentity = {\n id: string;\n revision: number;\n contentHash: string;\n};\nexport type CompanyProfileRevision = CompanyProfileRevisionIdentity & {\n operationId: string;\n accountId: string;\n intent: \"active\" | \"proposal\";\n profile: CompanyProfileContent;\n provenance: {\n source: \"human\" | \"agent_admin\" | \"durable_learning\" | \"migration\";\n sourceId: string | null;\n };\n supersedesRevisionId: string | null;\n createdBySubjectId: string;\n createdAt: string;\n};\nexport type CompanyProfileHead = {\n accountId: string;\n revisionId: string;\n revision: number;\n contentHash: string;\n activationVersion: number;\n activatedAt: string;\n};\nexport type CompanyProfileActivationEvent = {\n id: string;\n operationId: string;\n accountId: string;\n type: \"activate\" | \"rollback\";\n activationVersion: number;\n oldRevision: CompanyProfileRevisionIdentity | null;\n newRevision: CompanyProfileRevisionIdentity | null;\n actorSubjectId: string;\n reason: string;\n createdAt: string;\n};\nexport type CompanyProfileListOptions = { afterRevision?: number; limit?: number };\nexport type CompanyProfileListResponse = {\n current: CompanyProfileHead | null;\n activeRevision: CompanyProfileRevision | null;\n revisions: CompanyProfileRevision[];\n activationEvents: CompanyProfileActivationEvent[];\n nextAfterRevision: number | null;\n};\nexport type UpdateCompanyProfileRequest = {\n operationId?: string;\n profile: CompanyProfileContent;\n expectedCurrentRevisionId: string | null;\n expectedActivationVersion: number;\n reason: string;\n};\nexport type ActivateCompanyProfileRevisionRequest = {\n operationId?: string;\n expectedCurrentRevisionId: string | null;\n expectedActivationVersion: number;\n reason: string;\n};\nexport type RollbackCompanyProfileRequest = {\n operationId?: string;\n targetRevisionId: string;\n expectedCurrentRevisionId: string;\n expectedActivationVersion: number;\n reason: string;\n};\nexport type CompanyProfileMutationResponse = {\n revision: CompanyProfileRevision | null;\n head: CompanyProfileHead | null;\n event: CompanyProfileActivationEvent | null;\n};\nexport type CompanyProfileAgentPolicyMode = \"off\" | \"suggest\" | \"automatic\";\nexport type CompanyProfileAgentPolicy = {\n organizationId: string;\n mode: CompanyProfileAgentPolicyMode;\n version: number;\n updatedAt: string;\n changed?: boolean;\n};\nexport type UpdateCompanyProfileAgentPolicyRequest = {\n mode: CompanyProfileAgentPolicyMode;\n expectedVersion: number;\n operationId: string;\n};\nexport type CompanyProfileDiffRequest = { fromRevisionId: string; toRevisionId: string };\nexport type CompanyProfileDiffResponse = {\n from: CompanyProfileRevision;\n to: CompanyProfileRevision;\n format: \"unified_json\";\n diff: string;\n};\n\nexport function normalizeCompanyProfileStableKey(value: string): string {\n return value.normalize(\"NFKC\").trim().toLowerCase().replace(/\\s+/gu, \"-\").replace(/-+/g, \"-\");\n}\n","import type {\n CompanyBrainContextReceiptPage as ContractCompanyBrainContextReceiptPage,\n CompanyBrainKnowledgeProposalPage as ContractCompanyBrainKnowledgeProposalPage,\n CompanyBrainOkfPackage as ContractCompanyBrainOkfPackage,\n} from \"@opengeni/contracts\";\n\nexport type CompanyBrainOkfPackage = ContractCompanyBrainOkfPackage;\nexport type CompanyBrainContextReceiptPage = ContractCompanyBrainContextReceiptPage;\nexport type CompanyBrainKnowledgeProposalPage = ContractCompanyBrainKnowledgeProposalPage;\n\nexport type CompanyBrainContextReceiptListOptions = {\n attemptId?: string;\n cursor?: string;\n limit?: number;\n};\n\nexport type CompanyBrainKnowledgeProposalListOptions = {\n limit?: number;\n};\n\nexport type CompanyBrainInspectorTransport = {\n requestJson<T>(method: string, path: string, body?: unknown): Promise<T>;\n};\n\nfunction inspectorPath(workspaceId: string, suffix: string): string {\n return `/v1/workspaces/${workspaceId}/company-brain/${suffix}`;\n}\n\nexport function listCompanyBrainContextReceipts(\n client: CompanyBrainInspectorTransport,\n workspaceId: string,\n options: CompanyBrainContextReceiptListOptions = {},\n): Promise<CompanyBrainContextReceiptPage> {\n const params = new URLSearchParams();\n if (options.attemptId) params.set(\"attemptId\", options.attemptId);\n if (options.cursor) params.set(\"cursor\", options.cursor);\n if (options.limit !== undefined) params.set(\"limit\", String(options.limit));\n const query = params.toString();\n return client.requestJson(\n \"GET\",\n `${inspectorPath(workspaceId, \"context-receipts\")}${query ? `?${query}` : \"\"}`,\n );\n}\n\nexport function listCompanyBrainKnowledgeProposals(\n client: CompanyBrainInspectorTransport,\n workspaceId: string,\n options: CompanyBrainKnowledgeProposalListOptions = {},\n): Promise<CompanyBrainKnowledgeProposalPage> {\n const query =\n options.limit === undefined ? \"\" : `?limit=${encodeURIComponent(String(options.limit))}`;\n return client.requestJson(\"GET\", `${inspectorPath(workspaceId, \"knowledge-proposals\")}${query}`);\n}\n\nexport type CompanyBrainOkfDownload = {\n content: string;\n contentType: string;\n filename: string;\n};\n","export type PreferenceRegistryScope = \"organization\" | \"workspace\" | \"user\";\nexport type PreferenceRegistryStatus =\n | \"proposed\"\n | \"active\"\n | \"inactive\"\n | \"rejected\"\n | \"superseded\"\n | \"expired\";\nexport type PreferenceRegistryProvenanceSource =\n | \"human\"\n | \"onboarding\"\n | \"knowledge_proposal\"\n | \"agent\"\n | \"portable_skill\"\n | \"imported_document\"\n | \"slack\"\n | \"meeting_transcript\"\n | \"call_transcript\";\nexport type PreferenceRegistryTrust =\n | \"untrusted_proposal\"\n | \"personal\"\n | \"workspace_managed\"\n | \"organization_managed\";\nexport type PreferenceRegistryConflictStrategy = \"override\" | \"merge\" | \"reject\" | \"inform\";\n\nexport function normalizePreferenceRegistryStableKey(value: string): string {\n return value.normalize(\"NFKC\").trim().toLowerCase().replace(/\\s+/gu, \"-\").replace(/-+/g, \"-\");\n}\n\nexport type PreferenceRegistryScopeTarget = {\n scope: PreferenceRegistryScope;\n workspaceId: string | null;\n subjectId: string | null;\n};\n\nexport type PreferenceRegistryPrecedence = {\n tier: PreferenceRegistryScope;\n rank: number;\n conflictStrategy: PreferenceRegistryConflictStrategy;\n conflictsWith: string[];\n};\n\nexport type PreferenceRegistryRevisionSummary = {\n id: string;\n preferenceId: string;\n revision: number;\n contentHash: string;\n title: string;\n description: string;\n precedence: PreferenceRegistryPrecedence;\n provenance: {\n source: PreferenceRegistryProvenanceSource;\n sourceId: string | null;\n trust: PreferenceRegistryTrust;\n };\n expiresAt: string | null;\n correctsRevisionId: string | null;\n createdBySubjectId: string;\n createdAt: string;\n};\n\nexport type PreferenceRegistryDescriptorProvenance = {\n source: PreferenceRegistryProvenanceSource;\n sourceIdHash: string | null;\n trust: PreferenceRegistryTrust;\n};\n\nexport type PreferenceRegistryRecord = {\n id: string;\n accountId: string;\n stableKey: string;\n target: PreferenceRegistryScopeTarget;\n status: PreferenceRegistryStatus;\n scopeVersion: number;\n activationVersion: number;\n activeRevision: PreferenceRegistryRevisionSummary | null;\n supersededByPreferenceId: string | null;\n createdBySubjectId: string;\n createdAt: string;\n updatedAt: string;\n};\n\nexport type PreferenceRegistryEvent = {\n id: string;\n accountId: string;\n preferenceId: string;\n type:\n | \"proposal_created\"\n | \"activated\"\n | \"corrected\"\n | \"rejected\"\n | \"deactivated\"\n | \"superseded\"\n | \"scope_changed\";\n version: number;\n oldRevisionId: string | null;\n newRevisionId: string | null;\n oldTarget: PreferenceRegistryScopeTarget | null;\n newTarget: PreferenceRegistryScopeTarget | null;\n relatedPreferenceId: string | null;\n actorSubjectId: string;\n reason: string;\n createdAt: string;\n};\n\nexport type PreferenceRegistryActivationAuthority = \"human_confirmed\" | \"automatic\";\n\nexport type PreferenceRegistryDescriptor = {\n id: string;\n stableKey: string;\n title: string;\n description: string;\n scope: PreferenceRegistryScope;\n activeVersion: number;\n revisionId: string;\n contentHash: string;\n precedence: PreferenceRegistryPrecedence;\n provenance: PreferenceRegistryDescriptorProvenance;\n /**\n * How the active revision became active. `provenance.trust` stays the frozen\n * creation-time fact; this is the separate activation question. Null when the\n * revision became active outside governed learning, or when the descriptor\n * predates this field.\n */\n activationAuthority: PreferenceRegistryActivationAuthority | null;\n expiresAt: string | null;\n retrievalHandle: string;\n};\n\nexport type PreferenceRegistrySnapshot = {\n id: string;\n workspaceId: string;\n sessionId: string;\n turnId: string;\n attemptId: string;\n executionGeneration: number;\n initiatingHumanSubjectId: string;\n descriptorHash: string;\n descriptors: PreferenceRegistryDescriptor[];\n truncated: boolean;\n createdAt: string;\n};\n\nexport type PreferenceRegistryFullContent = {\n descriptor: PreferenceRegistryDescriptor;\n content: string;\n};\n\nexport type CreatePreferenceRegistryProposalRequest = {\n stableKey: string;\n scope: PreferenceRegistryScope;\n title: string;\n description: string;\n content: string;\n precedenceRank?: number;\n conflictStrategy?: PreferenceRegistryConflictStrategy;\n conflictsWith?: string[];\n expiresAt?: string | null;\n provenanceSource?: PreferenceRegistryProvenanceSource;\n provenanceSourceId?: string | null;\n};\n\nexport type ActivatePreferenceRegistryRevisionRequest = {\n revisionId: string;\n expectedCurrentRevisionId: string | null;\n expectedScopeVersion: number;\n reason: string;\n};\n\nexport type CorrectPreferenceRegistryRequest = {\n expectedCurrentRevisionId: string;\n expectedScopeVersion: number;\n title: string;\n description: string;\n content: string;\n precedenceRank?: number;\n conflictStrategy?: PreferenceRegistryConflictStrategy;\n conflictsWith?: string[];\n expiresAt?: string | null;\n reason: string;\n};\n\nexport type DeactivatePreferenceRegistryRequest = {\n expectedCurrentRevisionId: string;\n expectedScopeVersion: number;\n reason: string;\n};\n\nexport type ChangePreferenceRegistryScopeRequest = {\n scope: PreferenceRegistryScope;\n expectedScopeVersion: number;\n reason: string;\n};\n\nexport type SupersedePreferenceRegistryRequest = {\n replacementPreferenceId: string;\n expectedCurrentRevisionId: string;\n expectedScopeVersion: number;\n reason: string;\n};\n\nexport type RejectPreferenceRegistryProposalRequest = {\n revisionId: string;\n expectedScopeVersion: number;\n reason: string;\n};\nexport type PreferenceRegistryListOptions = {\n scope?: PreferenceRegistryScope;\n status?: PreferenceRegistryStatus;\n limit?: number;\n};\nexport type PreferenceRegistryListResponse = { preferences: PreferenceRegistryRecord[] };\nexport type PreferenceRegistryDetailResponse = {\n preference: PreferenceRegistryRecord;\n revisions: PreferenceRegistryRevisionSummary[];\n events: PreferenceRegistryEvent[];\n};\nexport type PreferenceRegistryMutationResponse = {\n preference: PreferenceRegistryRecord;\n event: PreferenceRegistryEvent;\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../contracts/src/mcp-endpoint.ts","../src/tool-display-metadata.ts","../src/mcp-output.ts","../src/desktop.ts","../src/terminal.ts","../src/workspace-instruction-policies.ts","../src/company-profile.ts","../src/company-brain.ts","../src/preference-registry.ts"],"sourcesContent":["/** Exact endpoint identity: normalize URL syntax, preserve paths and query parameters. */\nexport function mcpEndpointIdentity(value: string | null | undefined): string | null {\n if (!value) return null;\n try {\n const url = new URL(value);\n if (![\"https:\", \"http:\"].includes(url.protocol) || url.username || url.password) return null;\n url.hash = \"\";\n return url.href;\n } catch {\n return null;\n }\n}\n\nexport function pluginMcpUnavailableReason(server: {\n endpoint: string | null;\n transport?: string;\n requiresConfiguration?: boolean;\n}): string | null {\n if (server.transport === \"stdio\" || !server.endpoint) return \"Requires a local runtime\";\n if (\n server.transport &&\n ![\"http\", \"streamable-http\", \"streamable_http\"].includes(server.transport)\n )\n return \"Unsupported transport: \" + server.transport;\n if (server.requiresConfiguration || server.endpoint.includes(\"{\"))\n return \"Requires custom connection configuration\";\n const endpoint = mcpEndpointIdentity(server.endpoint);\n if (!endpoint?.startsWith(\"https://\")) return \"Requires a valid HTTPS endpoint\";\n return null;\n}\n","import type { ToolDisplayMetadata } from \"@opengeni/contracts\";\n\n/** Browser/native-safe event projection; do not import server schema runtimes. */\nexport function parseToolDisplayMetadata(value: unknown): ToolDisplayMetadata | undefined {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return undefined;\n const item = value as Record<string, unknown>;\n if (Object.keys(item).some((key) => ![\"toolName\", \"title\", \"accountLabel\"].includes(key)))\n return undefined;\n const text = (v: unknown, max: number): v is string =>\n typeof v === \"string\" && v.length > 0 && v.length <= max;\n if (!text(item.toolName, 512) || /[\\u0000-\\u001f\\u007f]/u.test(item.toolName)) return undefined;\n if (item.title !== undefined && !text(item.title, 512)) return undefined;\n if (item.accountLabel !== undefined && !text(item.accountLabel, 1024)) return undefined;\n return {\n toolName: item.toolName,\n ...(item.title !== undefined ? { title: item.title as string } : {}),\n ...(item.accountLabel !== undefined ? { accountLabel: item.accountLabel as string } : {}),\n };\n}\n","/**\n * A transport-tolerant MCP tool result.\n *\n * `value` is the canonical machine-readable payload after recognized MCP/JSON\n * envelopes are removed. `text` is the best presentation string without\n * discarding structured data. `raw` always retains the original evidence.\n */\nexport type NormalizedMcpOutput = Readonly<{\n raw: unknown;\n value: unknown;\n text: string;\n isError: boolean;\n}>;\n\nconst MAX_MCP_OUTPUT_DEPTH = 8;\nconst RESULT_ENVELOPE_KEYS = new Set([\"result\", \"isError\", \"jsonrpc\", \"id\", \"_meta\"]);\n\n/** Normalize common direct, JSON, and standard MCP result envelopes without throwing. */\nexport function normalizeMcpOutput(output: unknown): NormalizedMcpOutput {\n const normalized = normalizeValue(output, 0, new Set<object>());\n return {\n raw: output,\n value: normalized.value,\n text: normalized.text,\n isError: normalized.isError,\n };\n}\n\ntype NormalizedValue = Omit<NormalizedMcpOutput, \"raw\">;\n\nfunction normalizeValue(value: unknown, depth: number, ancestors: Set<object>): NormalizedValue {\n if (value === null || value === undefined) {\n return { value, text: \"\", isError: false };\n }\n if (typeof value === \"string\") {\n return normalizeText(value, depth, ancestors);\n }\n if (typeof value !== \"object\") {\n return { value, text: String(value), isError: false };\n }\n if (depth >= MAX_MCP_OUTPUT_DEPTH || ancestors.has(value)) {\n return { value, text: safeStringify(value), isError: false };\n }\n\n ancestors.add(value);\n try {\n if (Array.isArray(value)) {\n return { value, text: safeStringify(value), isError: false };\n }\n\n const record = value as Record<string, unknown>;\n const envelopeError = record.isError === true;\n\n if (record.type === \"text\" && typeof record.text === \"string\") {\n const normalized = normalizeText(record.text, depth + 1, ancestors);\n return {\n value: normalized.value,\n text: record.text,\n isError: envelopeError || normalized.isError,\n };\n }\n\n if (\"structuredContent\" in record) {\n const normalized = normalizeValue(record.structuredContent, depth + 1, ancestors);\n return {\n value: normalized.value,\n text: firstMcpText(record.content) ?? normalized.text,\n isError: envelopeError || normalized.isError,\n };\n }\n\n if (isMcpContent(record.content)) {\n const text = firstMcpText(record.content);\n if (text !== null) {\n const normalized = normalizeText(text, depth + 1, ancestors);\n return {\n value: normalized.value,\n text,\n isError: envelopeError || normalized.isError,\n };\n }\n return {\n value,\n text: safeStringify(value),\n isError: envelopeError,\n };\n }\n\n if (isResultEnvelope(record)) {\n const normalized = normalizeValue(record.result, depth + 1, ancestors);\n return {\n value: normalized.value,\n text: normalized.text,\n isError: envelopeError || normalized.isError,\n };\n }\n\n return {\n value,\n text: safeStringify(value),\n isError: envelopeError,\n };\n } finally {\n ancestors.delete(value);\n }\n}\n\nfunction normalizeText(text: string, depth: number, ancestors: Set<object>): NormalizedValue {\n try {\n const parsed: unknown = JSON.parse(text);\n const normalized = normalizeValue(parsed, depth + 1, ancestors);\n return {\n value: normalized.value,\n text,\n isError: normalized.isError,\n };\n } catch {\n return { value: text, text, isError: false };\n }\n}\n\nfunction isMcpContent(value: unknown): value is readonly Record<string, unknown>[] {\n return (\n Array.isArray(value) &&\n value.some(\n (part) =>\n part !== null &&\n typeof part === \"object\" &&\n typeof (part as { type?: unknown }).type === \"string\",\n )\n );\n}\n\nfunction firstMcpText(value: unknown): string | null {\n if (!Array.isArray(value)) {\n return null;\n }\n for (const part of value) {\n if (\n part !== null &&\n typeof part === \"object\" &&\n (part as { type?: unknown }).type === \"text\" &&\n typeof (part as { text?: unknown }).text === \"string\"\n ) {\n return (part as { text: string }).text;\n }\n }\n return null;\n}\n\nfunction isResultEnvelope(record: Record<string, unknown>): boolean {\n return \"result\" in record && Object.keys(record).every((key) => RESULT_ENVELOPE_KEYS.has(key));\n}\n\nfunction safeStringify(value: unknown): string {\n try {\n return JSON.stringify(value) ?? \"\";\n } catch {\n return String(value);\n }\n}\n","// Zero-dependency desktop (noVNC) transport contract.\n//\n// The actual `@novnc/novnc` RFB import is a browser-only DOM dependency and\n// lives in `@opengeni/react` (lazily imported, SSR-safe). The framework-agnostic\n// SDK ships only the transport CONTRACT: a URL assembler, the minimal RFB\n// surface the component drives, the connection state machine, and the\n// rotation/fence reducers — all pure and unit-testable, with no DOM and no deps.\n//\n// Channel A (terminal-as-events, files, git) needs NO new transport here: those\n// are event projections + the synchronous fs/git/terminal point queries on\n// `OpenGeniClient`. Only the desktop pixel plane (Channel B, direct-to-provider)\n// needs this.\n\nimport type { DesktopStreamCapability, StreamUrlRotatedPayload } from \"./types\";\n\n/**\n * Translate the negotiated desktop capability into the WebSocket URL the noVNC\n * RFB client connects to. The scoped provider token is ALREADY embedded in the\n * minted `url` (Modal tunnel host, Blaxel `bl_preview_token`, Daytona signed\n * preview) by `session.resolveExposedPort(6080)` — we do NOT append `cap.token`\n * as a query param (that double-auth was an adversarial-review bug: the box runs\n * `-nopw` in v1, so the RFB password is meaningless and the real auth is the\n * tunnel token in the host). We only normalize the scheme to `ws`/`wss` and, when\n * the minted URL points at a `vnc.html` viewer page, rewrite it to the\n * websockify socket path noVNC actually dials.\n */\nexport function desktopSocketUrl(cap: Pick<DesktopStreamCapability, \"url\">): string {\n if (!cap.url) {\n throw new Error(\"desktop capability has no url (transport is null)\");\n }\n const u = new URL(cap.url);\n // https → wss, http → ws (noVNC dials a WebSocket, not the HTTP viewer page).\n if (u.protocol === \"https:\") {\n u.protocol = \"wss:\";\n } else if (u.protocol === \"http:\") {\n u.protocol = \"ws:\";\n }\n // A minted `…/vnc.html` (or `…/vnc_lite.html`) viewer page → the websockify\n // socket the page itself would open (`…/websockify`). A bare host/path with no\n // viewer page is already the socket path; leave it untouched.\n if (/\\/vnc(_lite)?\\.html$/.test(u.pathname)) {\n u.pathname = u.pathname.replace(/\\/vnc(_lite)?\\.html$/, \"/websockify\");\n u.search = \"\";\n u.hash = \"\";\n }\n return u.toString();\n}\n\n/**\n * The minimal RFB surface the React component drives. Lets tests (and 3rd\n * parties swapping noVNC for a WebRTC client in v3) provide a fake without the\n * DOM. Matches `@novnc/novnc`'s RFB constructor + lifecycle.\n */\nexport interface DesktopRfbLike {\n viewOnly: boolean;\n scaleViewport: boolean;\n /**\n * 1:1 viewport clipping. We always drive this FALSE: with clipping on, noVNC\n * paints the framebuffer pixel-for-pixel and scrolls/crops to the container\n * (the \"zoomed in\" look). FALSE lets `scaleViewport` shrink the 1280x800 frame\n * to fit the panel (aspect-preserved). Declared so the hook can pin it instead\n * of relying on noVNC's default — `scaleViewport=true` forces clip off\n * internally, but a stale/partial state on reconnect could leave it on.\n */\n clipViewport: boolean;\n addEventListener(\n type: \"connect\" | \"disconnect\" | \"securityfailure\",\n cb: (e?: unknown) => void,\n ): void;\n removeEventListener?: (\n type: \"connect\" | \"disconnect\" | \"securityfailure\",\n cb: (e?: unknown) => void,\n ) => void;\n /** Send clipboard text over the already-open RFB connection. */\n clipboardPasteFrom?(text: string): void;\n /** Send one RFB key event. A missing `down` emits a complete key press. */\n sendKey?(keysym: number, code: string, down?: boolean): void;\n /** Focus or release the RFB keyboard sink without reconnecting. */\n focus?(options?: FocusOptions): void;\n blur?(): void;\n disconnect(): void;\n}\n\nexport type DesktopRfbFactory = (\n target: HTMLElement,\n url: string,\n opts: {\n credentials?: { password?: string | undefined } | undefined;\n wsProtocols?: string[] | undefined;\n },\n) => DesktopRfbLike;\n\nexport type DesktopConnectionState =\n | \"idle\"\n | \"negotiating\"\n | \"connecting\"\n | \"connected\"\n | \"rotating\"\n | \"reconnecting\"\n | \"error\"\n | \"ended\";\n\nexport type DesktopStreamEvent =\n | { type: \"negotiated\" }\n | { type: \"connected\" }\n | { type: \"disconnected\" }\n | { type: \"rotate\" }\n | { type: \"fail\" }\n | { type: \"abort\" };\n\n/**\n * Pure reducer for the desktop connection lifecycle. The component owns the RFB\n * object + DOM; this owns the transitions so they are unit-testable. Mirrors the\n * Channel-A stream reducer discipline.\n */\nexport function nextDesktopState(\n current: DesktopConnectionState,\n ev: DesktopStreamEvent,\n): DesktopConnectionState {\n switch (ev.type) {\n case \"negotiated\":\n return \"connecting\";\n case \"connected\":\n return \"connected\";\n case \"rotate\":\n return current === \"connected\" ? \"rotating\" : current;\n case \"disconnected\":\n // A deliberate teardown (ended) stays ended; everything else reconnects.\n return current === \"ended\" ? \"ended\" : \"reconnecting\";\n case \"fail\":\n return \"error\";\n case \"abort\":\n return \"ended\";\n default:\n return current;\n }\n}\n\n// `DesktopStreamCapability` is the desktop cell of `SessionCapabilities`; alias\n// it for the rotation reducer below without depending on the whole doc.\nexport type DesktopStreamCapabilityLike = {\n url: string | null;\n token: string | null;\n expiresAt: string | null;\n};\n\n/**\n * Apply a `stream.url.rotated` event onto a desktop capability, fencing on\n * leaseEpoch (split-brain). A rotation minted under an epoch the client has\n * already advanced PAST is from a superseded owner and is dropped (returns\n * null); otherwise the fresh url/token/expiresAt are folded in.\n */\nexport function applyUrlRotation<T extends DesktopStreamCapabilityLike>(\n cap: T,\n payload: StreamUrlRotatedPayload,\n knownEpoch: number,\n): T | null {\n if (payload.leaseEpoch < knownEpoch) {\n return null;\n }\n return { ...cap, url: payload.url, token: payload.token, expiresAt: payload.expiresAt };\n}\n","// Zero-dependency interactive-terminal (ttyd PTY-over-websocket) transport\n// contract. Symmetric with `desktop.ts`: the SDK ships only the pure transport\n// CONTRACT (a URL assembler + the ttyd wire-protocol frame codec), with no DOM\n// and no deps. The actual WebSocket open + xterm attach lives in `@opengeni/react`\n// (`use-terminal-stream.ts`).\n//\n// The interactive terminal is a REAL PTY streamed over the SAME Modal raw-TLS\n// tunnel as the desktop noVNC, with the SAME scoped stream-token mechanism. The\n// box bakes `ttyd` on `TERMINAL_STREAM_PORT` (7681); `session.resolveExposedPort`\n// mints the tunnel URL. The Terminal capability cell carries transport \"pty-ws\" +\n// that url + the scoped token when the box is warm and a viewer is attached.\n\nimport type { TerminalCapability } from \"./types\";\n\n/**\n * Translate the negotiated `pty-ws` Terminal capability into the WebSocket URL\n * the ttyd client dials. The scoped provider token is ALREADY embedded in the\n * minted `url` (the Modal tunnel host) by `session.resolveExposedPort(7681)` —\n * we do NOT append `cap.token` (identical posture to the desktop: the gate is the\n * unguessable short-TTL tunnel URL + the server-recorded scoped stream token; ttyd\n * runs `--writable` with no `-c` credential in v1). We only normalize the scheme\n * to `ws`/`wss`; a bare host is already the ttyd websocket endpoint.\n */\nexport function terminalSocketUrl(cap: Pick<TerminalCapability, \"url\">): string {\n if (!cap.url) {\n throw new Error(\"terminal capability has no url (transport is not pty-ws)\");\n }\n const u = new URL(cap.url);\n // https → wss, http → ws (ttyd is dialed as a WebSocket, not an HTTP page).\n if (u.protocol === \"https:\") {\n u.protocol = \"wss:\";\n } else if (u.protocol === \"http:\") {\n u.protocol = \"ws:\";\n }\n return u.toString();\n}\n\n// ── ttyd wire protocol ───────────────────────────────────────────────────────\n// ttyd frames are a single ASCII command char + payload. These mirror ttyd's\n// `protocol.h` Command enum. Client→server and server→client share the byte 0/1/2\n// values but mean different things per direction (see below).\n\n/** ttyd subprotocol — REQUIRED on the WebSocket handshake or ttyd refuses it. */\nexport const TTYD_SUBPROTOCOL = \"tty\";\n\n/** Client→server command bytes (the first char of each outbound text frame). */\nexport const TtydClientCommand = {\n /** stdin: \"0\" + raw input bytes. */\n INPUT: \"0\",\n /** window resize: \"1\" + JSON.stringify({ columns, rows }). */\n RESIZE: \"1\",\n /** flow-control pause (back-pressure): \"2\". */\n PAUSE: \"2\",\n /** flow-control resume: \"3\". */\n RESUME: \"3\",\n} as const;\n\n/** Server→client command bytes (the first char of each inbound frame). */\nexport const TtydServerCommand = {\n /** stdout/stderr: \"0\" + raw output bytes (write the rest into xterm). */\n OUTPUT: \"0\",\n /** set the window title: \"1\" + title string. */\n SET_WINDOW_TITLE: \"1\",\n /** ttyd client preferences JSON: \"2\" + json (ignored by us). */\n SET_PREFERENCES: \"2\",\n} as const;\n\n/**\n * The ttyd handshake's first frame: an auth message. ttyd expects\n * `JSON.stringify({ AuthToken })` as the FIRST text frame on the socket. We send\n * an empty token — our gate is the tunnel URL + scoped stream token, NOT a ttyd\n * `-c` basic-auth credential (which the box does not set in v1). Optional ttyd\n * `columns`/`rows` can ride this frame to seed the PTY size before the first\n * resize. Pure (string-building only) so it stays unit-testable in the SDK.\n */\nexport function ttydAuthFrame(opts?: { columns?: number; rows?: number }): string {\n const frame: { AuthToken: string; columns?: number; rows?: number } = { AuthToken: \"\" };\n if (opts?.columns && opts.columns > 0) frame.columns = opts.columns;\n if (opts?.rows && opts.rows > 0) frame.rows = opts.rows;\n return JSON.stringify(frame);\n}\n\n/** Build a client→server INPUT (stdin) frame: \"0\" + data. */\nexport function ttydInputFrame(data: string): string {\n return TtydClientCommand.INPUT + data;\n}\n\n/** Build a client→server RESIZE frame: \"1\" + JSON.stringify({ columns, rows }). */\nexport function ttydResizeFrame(columns: number, rows: number): string {\n return TtydClientCommand.RESIZE + JSON.stringify({ columns, rows });\n}\n","export const WORKSPACE_INSTRUCTION_POLICY_CONTENT_MAX_CHARS = 262_144;\n\nexport type WorkspaceInstructionPolicyKind = \"charter\" | \"policy\";\nexport type WorkspaceInstructionPolicyScope = \"global\" | \"role\";\nexport type WorkspaceInstructionPolicyProvenanceSource =\n | \"human\"\n | \"onboarding\"\n | \"agent_learning\"\n | \"knowledge_proposal\"\n | \"legacy_import\";\nexport type WorkspaceInstructionPolicyDraftProvenanceSource = Exclude<\n WorkspaceInstructionPolicyProvenanceSource,\n \"legacy_import\" | \"agent_learning\"\n>;\nexport type WorkspaceInstructionPolicyActivationType = \"activate\" | \"rollback\";\n\nexport function normalizeWorkspaceInstructionPolicyRoleKey(value: string): string {\n return value.normalize(\"NFKC\").trim().toLowerCase().replace(/\\s+/gu, \"-\").replace(/-+/g, \"-\");\n}\n\nexport type WorkspaceInstructionPolicyTarget = {\n kind: WorkspaceInstructionPolicyKind;\n scope: WorkspaceInstructionPolicyScope;\n roleKey: string | null;\n};\n\nexport type WorkspaceInstructionPolicyRevisionIdentity = {\n id: string;\n revision: number;\n contentHash: string;\n};\n\nexport type WorkspaceInstructionPolicyRevision = WorkspaceInstructionPolicyRevisionIdentity &\n WorkspaceInstructionPolicyTarget & {\n operationId: string;\n accountId: string;\n workspaceId: string;\n content: string;\n provenance: {\n source: WorkspaceInstructionPolicyProvenanceSource;\n sourceId: string | null;\n };\n supersedesRevisionId: string | null;\n createdBySubjectId: string;\n createdAt: string;\n };\n\nexport type WorkspaceInstructionPolicyHead = WorkspaceInstructionPolicyTarget & {\n workspaceId: string;\n revisionId: string;\n revision: number;\n contentHash: string;\n activationVersion: number;\n activatedAt: string;\n};\n\nexport type WorkspaceInstructionPolicyInactiveHead = WorkspaceInstructionPolicyTarget & {\n workspaceId: string;\n activationVersion: number;\n deactivatedAt: string;\n};\n\nexport type WorkspaceInstructionPolicyActivationEvent = WorkspaceInstructionPolicyTarget & {\n id: string;\n operationId: string;\n accountId: string;\n workspaceId: string;\n type: WorkspaceInstructionPolicyActivationType;\n activationVersion: number;\n oldRevision: WorkspaceInstructionPolicyRevisionIdentity | null;\n newRevision: WorkspaceInstructionPolicyRevisionIdentity;\n actorSubjectId: string;\n reason: string;\n createdAt: string;\n};\n\nexport type WorkspaceInstructionPolicyDeactivationEvent = WorkspaceInstructionPolicyTarget & {\n id: string;\n operationId: string;\n accountId: string;\n workspaceId: string;\n type: \"automatic_deactivate\";\n activationVersion: number;\n oldRevision: WorkspaceInstructionPolicyRevisionIdentity;\n actorSubjectId: string;\n reason: string;\n createdAt: string;\n};\n\nexport type CreateWorkspaceInstructionPolicyDraftRequest = WorkspaceInstructionPolicyTarget & {\n operationId?: string;\n content: string;\n provenanceSource?: WorkspaceInstructionPolicyDraftProvenanceSource;\n provenanceSourceId?: string | null;\n supersedesRevisionId?: string | null;\n};\n\nexport type ImportLegacyWorkspaceInstructionPolicyDraftRequest = {\n operationId?: string;\n supersedesRevisionId?: string | null;\n};\n\nexport type WorkspaceInstructionPolicyListOptions = {\n kind?: WorkspaceInstructionPolicyKind;\n scope?: WorkspaceInstructionPolicyScope;\n roleKey?: string;\n afterRevision?: number;\n limit?: number;\n};\n\nexport type WorkspaceInstructionPolicyListResponse = {\n revisions: WorkspaceInstructionPolicyRevision[];\n activeHeads: WorkspaceInstructionPolicyHead[];\n /** Additive current inactive target boundaries; absent on pre-controller servers. */\n inactiveHeads?: WorkspaceInstructionPolicyInactiveHead[];\n inactiveHeadsTruncated?: boolean;\n activationEvents: WorkspaceInstructionPolicyActivationEvent[];\n /** Additive lifecycle history; absent on pre-controller servers. */\n deactivationEvents?: WorkspaceInstructionPolicyDeactivationEvent[];\n nextAfterRevision: number | null;\n};\n\nexport type WorkspaceInstructionPolicyDiffRequest = {\n fromRevisionId: string;\n toRevisionId: string;\n};\n\nexport type WorkspaceInstructionPolicyDiffResponse = {\n from: WorkspaceInstructionPolicyRevision;\n to: WorkspaceInstructionPolicyRevision;\n format: \"unified\";\n diff: string;\n};\n\nexport type ActivateWorkspaceInstructionPolicyRequest = {\n operationId?: string;\n expectedCurrentRevisionId: string | null;\n expectedActivationVersion?: number;\n reason: string;\n};\n\nexport type RollbackWorkspaceInstructionPolicyRequest = {\n operationId?: string;\n targetRevisionId: string;\n expectedCurrentRevisionId: string;\n expectedActivationVersion?: number;\n reason: string;\n};\n\nexport type WorkspaceInstructionPolicyActivationResponse = {\n head: WorkspaceInstructionPolicyHead;\n event: WorkspaceInstructionPolicyActivationEvent;\n};\n\nexport type WorkspaceInstructionPolicyConflictResponse = {\n code: \"WORKSPACE_INSTRUCTION_POLICY_CONFLICT\";\n message: string;\n currentHead: WorkspaceInstructionPolicyHead | null;\n};\n\nexport type WorkspaceInstructionPolicyOperationReuseResponse = {\n code: \"WORKSPACE_INSTRUCTION_POLICY_OPERATION_REUSED\";\n message: string;\n};\n\nexport type WorkspaceInstructionPolicyOnboardingProposalSource = {\n id: string;\n version: string;\n confidenceBps: number;\n};\n\nexport type CreateWorkspaceInstructionPolicyOnboardingProposalRequest =\n WorkspaceInstructionPolicyTarget & {\n operationId?: string;\n content: string;\n sourceId: string;\n sourceVersion: string;\n confidenceBps: number;\n expectedCurrentRevisionId: string | null;\n expectedActivationVersion: number;\n };\n\nexport type WorkspaceInstructionPolicyOnboardingProposal = WorkspaceInstructionPolicyTarget & {\n id: string;\n operationId: string;\n accountId: string;\n workspaceId: string;\n source: WorkspaceInstructionPolicyOnboardingProposalSource;\n baseline: WorkspaceInstructionPolicyHead | null;\n draft: WorkspaceInstructionPolicyRevision;\n status: \"proposed\";\n createdBySubjectId: string;\n createdAt: string;\n};\n\nexport type WorkspaceInstructionPolicyOnboardingProposalListOptions = {\n limit?: number;\n};\n\nexport type WorkspaceInstructionPolicyOnboardingProposalListResponse = {\n proposals: WorkspaceInstructionPolicyOnboardingProposal[];\n truncated: boolean;\n};\n\nexport type WorkspaceInstructionPolicyOnboardingProposalContentErrorResponse = {\n code:\n | \"WORKSPACE_INSTRUCTION_POLICY_ONBOARDING_PROPOSAL_EMPTY\"\n | \"WORKSPACE_INSTRUCTION_POLICY_ONBOARDING_PROPOSAL_OVERSIZED\";\n message: string;\n maxChars: number;\n};\n\nexport type WorkspaceInstructionPolicyOnboardingProposalStaleResponse = {\n code: \"WORKSPACE_INSTRUCTION_POLICY_ONBOARDING_PROPOSAL_STALE\";\n message: string;\n currentHead: WorkspaceInstructionPolicyHead | null;\n};\n\nexport type WorkspaceInstructionPolicyOnboardingProposalConflictResponse = {\n code: \"WORKSPACE_INSTRUCTION_POLICY_ONBOARDING_PROPOSAL_CONFLICT\";\n message: string;\n existingProposalId: string;\n existingDraftRevisionId: string;\n};\n","export const COMPANY_PROFILE_SCALAR_MAX_CHARS = 2_048;\nexport const COMPANY_PROFILE_ENTRY_MAX_CHARS = 1_024;\nexport const COMPANY_PROFILE_ENTRY_MAX_COUNT = 16;\n\nexport type CompanyProfileEntry = { key: string; content: string };\nexport type CompanyProfileContent = {\n identity: string | null;\n mission: string | null;\n products: CompanyProfileEntry[];\n customers: CompanyProfileEntry[];\n goals: CompanyProfileEntry[];\n constraints: CompanyProfileEntry[];\n};\nexport type CompanyProfileRevisionIdentity = {\n id: string;\n revision: number;\n contentHash: string;\n};\nexport type CompanyProfileRevision = CompanyProfileRevisionIdentity & {\n operationId: string;\n accountId: string;\n intent: \"active\" | \"proposal\";\n profile: CompanyProfileContent;\n provenance: {\n source: \"human\" | \"agent_admin\" | \"durable_learning\" | \"migration\";\n sourceId: string | null;\n };\n supersedesRevisionId: string | null;\n createdBySubjectId: string;\n createdAt: string;\n};\nexport type CompanyProfileHead = {\n accountId: string;\n revisionId: string;\n revision: number;\n contentHash: string;\n activationVersion: number;\n activatedAt: string;\n};\nexport type CompanyProfileActivationEvent = {\n id: string;\n operationId: string;\n accountId: string;\n type: \"activate\" | \"rollback\";\n activationVersion: number;\n oldRevision: CompanyProfileRevisionIdentity | null;\n newRevision: CompanyProfileRevisionIdentity | null;\n actorSubjectId: string;\n reason: string;\n createdAt: string;\n};\nexport type CompanyProfileListOptions = { afterRevision?: number; limit?: number };\nexport type CompanyProfileListResponse = {\n current: CompanyProfileHead | null;\n activeRevision: CompanyProfileRevision | null;\n revisions: CompanyProfileRevision[];\n activationEvents: CompanyProfileActivationEvent[];\n nextAfterRevision: number | null;\n};\nexport type UpdateCompanyProfileRequest = {\n operationId?: string;\n profile: CompanyProfileContent;\n expectedCurrentRevisionId: string | null;\n expectedActivationVersion: number;\n reason: string;\n};\nexport type ActivateCompanyProfileRevisionRequest = {\n operationId?: string;\n expectedCurrentRevisionId: string | null;\n expectedActivationVersion: number;\n reason: string;\n};\nexport type RollbackCompanyProfileRequest = {\n operationId?: string;\n targetRevisionId: string;\n expectedCurrentRevisionId: string;\n expectedActivationVersion: number;\n reason: string;\n};\nexport type CompanyProfileMutationResponse = {\n revision: CompanyProfileRevision | null;\n head: CompanyProfileHead | null;\n event: CompanyProfileActivationEvent | null;\n};\nexport type CompanyProfileAgentPolicyMode = \"off\" | \"suggest\" | \"automatic\";\nexport type CompanyProfileAgentPolicy = {\n organizationId: string;\n mode: CompanyProfileAgentPolicyMode;\n version: number;\n updatedAt: string;\n changed?: boolean;\n};\nexport type UpdateCompanyProfileAgentPolicyRequest = {\n mode: CompanyProfileAgentPolicyMode;\n expectedVersion: number;\n operationId: string;\n};\nexport type CompanyProfileDiffRequest = { fromRevisionId: string; toRevisionId: string };\nexport type CompanyProfileDiffResponse = {\n from: CompanyProfileRevision;\n to: CompanyProfileRevision;\n format: \"unified_json\";\n diff: string;\n};\n\nexport function normalizeCompanyProfileStableKey(value: string): string {\n return value.normalize(\"NFKC\").trim().toLowerCase().replace(/\\s+/gu, \"-\").replace(/-+/g, \"-\");\n}\n","import type {\n CompanyBrainContextReceiptPage as ContractCompanyBrainContextReceiptPage,\n CompanyBrainKnowledgeProposalPage as ContractCompanyBrainKnowledgeProposalPage,\n CompanyBrainOkfPackage as ContractCompanyBrainOkfPackage,\n} from \"@opengeni/contracts\";\n\nexport type CompanyBrainOkfPackage = ContractCompanyBrainOkfPackage;\nexport type CompanyBrainContextReceiptPage = ContractCompanyBrainContextReceiptPage;\nexport type CompanyBrainKnowledgeProposalPage = ContractCompanyBrainKnowledgeProposalPage;\n\nexport type CompanyBrainContextReceiptListOptions = {\n attemptId?: string;\n cursor?: string;\n limit?: number;\n};\n\nexport type CompanyBrainKnowledgeProposalListOptions = {\n limit?: number;\n};\n\nexport type CompanyBrainInspectorTransport = {\n requestJson<T>(method: string, path: string, body?: unknown): Promise<T>;\n};\n\nfunction inspectorPath(workspaceId: string, suffix: string): string {\n return `/v1/workspaces/${workspaceId}/company-brain/${suffix}`;\n}\n\nexport function listCompanyBrainContextReceipts(\n client: CompanyBrainInspectorTransport,\n workspaceId: string,\n options: CompanyBrainContextReceiptListOptions = {},\n): Promise<CompanyBrainContextReceiptPage> {\n const params = new URLSearchParams();\n if (options.attemptId) params.set(\"attemptId\", options.attemptId);\n if (options.cursor) params.set(\"cursor\", options.cursor);\n if (options.limit !== undefined) params.set(\"limit\", String(options.limit));\n const query = params.toString();\n return client.requestJson(\n \"GET\",\n `${inspectorPath(workspaceId, \"context-receipts\")}${query ? `?${query}` : \"\"}`,\n );\n}\n\nexport function listCompanyBrainKnowledgeProposals(\n client: CompanyBrainInspectorTransport,\n workspaceId: string,\n options: CompanyBrainKnowledgeProposalListOptions = {},\n): Promise<CompanyBrainKnowledgeProposalPage> {\n const query =\n options.limit === undefined ? \"\" : `?limit=${encodeURIComponent(String(options.limit))}`;\n return client.requestJson(\"GET\", `${inspectorPath(workspaceId, \"knowledge-proposals\")}${query}`);\n}\n\nexport type CompanyBrainOkfDownload = {\n content: string;\n contentType: string;\n filename: string;\n};\n","export type PreferenceRegistryScope = \"organization\" | \"workspace\" | \"user\";\nexport type PreferenceRegistryStatus =\n | \"proposed\"\n | \"active\"\n | \"inactive\"\n | \"rejected\"\n | \"superseded\"\n | \"expired\";\nexport type PreferenceRegistryProvenanceSource =\n | \"human\"\n | \"onboarding\"\n | \"knowledge_proposal\"\n | \"agent\"\n | \"portable_skill\"\n | \"imported_document\"\n | \"slack\"\n | \"meeting_transcript\"\n | \"call_transcript\";\nexport type PreferenceRegistryTrust =\n | \"untrusted_proposal\"\n | \"personal\"\n | \"workspace_managed\"\n | \"organization_managed\";\nexport type PreferenceRegistryConflictStrategy = \"override\" | \"merge\" | \"reject\" | \"inform\";\n\nexport function normalizePreferenceRegistryStableKey(value: string): string {\n return value.normalize(\"NFKC\").trim().toLowerCase().replace(/\\s+/gu, \"-\").replace(/-+/g, \"-\");\n}\n\nexport type PreferenceRegistryScopeTarget = {\n scope: PreferenceRegistryScope;\n workspaceId: string | null;\n subjectId: string | null;\n};\n\nexport type PreferenceRegistryPrecedence = {\n tier: PreferenceRegistryScope;\n rank: number;\n conflictStrategy: PreferenceRegistryConflictStrategy;\n conflictsWith: string[];\n};\n\nexport type PreferenceRegistryRevisionSummary = {\n id: string;\n preferenceId: string;\n revision: number;\n contentHash: string;\n title: string;\n description: string;\n precedence: PreferenceRegistryPrecedence;\n provenance: {\n source: PreferenceRegistryProvenanceSource;\n sourceId: string | null;\n trust: PreferenceRegistryTrust;\n };\n expiresAt: string | null;\n correctsRevisionId: string | null;\n createdBySubjectId: string;\n createdAt: string;\n};\n\nexport type PreferenceRegistryDescriptorProvenance = {\n source: PreferenceRegistryProvenanceSource;\n sourceIdHash: string | null;\n trust: PreferenceRegistryTrust;\n};\n\nexport type PreferenceRegistryRecord = {\n id: string;\n accountId: string;\n stableKey: string;\n target: PreferenceRegistryScopeTarget;\n status: PreferenceRegistryStatus;\n scopeVersion: number;\n activationVersion: number;\n activeRevision: PreferenceRegistryRevisionSummary | null;\n supersededByPreferenceId: string | null;\n createdBySubjectId: string;\n createdAt: string;\n updatedAt: string;\n};\n\nexport type PreferenceRegistryEvent = {\n id: string;\n accountId: string;\n preferenceId: string;\n type:\n | \"proposal_created\"\n | \"activated\"\n | \"corrected\"\n | \"rejected\"\n | \"deactivated\"\n | \"superseded\"\n | \"scope_changed\";\n version: number;\n oldRevisionId: string | null;\n newRevisionId: string | null;\n oldTarget: PreferenceRegistryScopeTarget | null;\n newTarget: PreferenceRegistryScopeTarget | null;\n relatedPreferenceId: string | null;\n actorSubjectId: string;\n reason: string;\n createdAt: string;\n};\n\nexport type PreferenceRegistryActivationAuthority = \"human_confirmed\" | \"automatic\";\n\nexport type PreferenceRegistryDescriptor = {\n id: string;\n stableKey: string;\n title: string;\n description: string;\n scope: PreferenceRegistryScope;\n activeVersion: number;\n revisionId: string;\n contentHash: string;\n precedence: PreferenceRegistryPrecedence;\n provenance: PreferenceRegistryDescriptorProvenance;\n /**\n * How the active revision became active. `provenance.trust` stays the frozen\n * creation-time fact; this is the separate activation question. Null when the\n * revision became active outside governed learning, or when the descriptor\n * predates this field.\n */\n activationAuthority: PreferenceRegistryActivationAuthority | null;\n expiresAt: string | null;\n retrievalHandle: string;\n};\n\nexport type PreferenceRegistrySnapshot = {\n id: string;\n workspaceId: string;\n sessionId: string;\n turnId: string;\n attemptId: string;\n executionGeneration: number;\n initiatingHumanSubjectId: string;\n descriptorHash: string;\n descriptors: PreferenceRegistryDescriptor[];\n truncated: boolean;\n createdAt: string;\n};\n\nexport type PreferenceRegistryFullContent = {\n descriptor: PreferenceRegistryDescriptor;\n content: string;\n};\n\nexport type CreatePreferenceRegistryProposalRequest = {\n stableKey: string;\n scope: PreferenceRegistryScope;\n title: string;\n description: string;\n content: string;\n precedenceRank?: number;\n conflictStrategy?: PreferenceRegistryConflictStrategy;\n conflictsWith?: string[];\n expiresAt?: string | null;\n provenanceSource?: PreferenceRegistryProvenanceSource;\n provenanceSourceId?: string | null;\n};\n\nexport type ActivatePreferenceRegistryRevisionRequest = {\n revisionId: string;\n expectedCurrentRevisionId: string | null;\n expectedScopeVersion: number;\n reason: string;\n};\n\nexport type CorrectPreferenceRegistryRequest = {\n expectedCurrentRevisionId: string;\n expectedScopeVersion: number;\n title: string;\n description: string;\n content: string;\n precedenceRank?: number;\n conflictStrategy?: PreferenceRegistryConflictStrategy;\n conflictsWith?: string[];\n expiresAt?: string | null;\n reason: string;\n};\n\nexport type DeactivatePreferenceRegistryRequest = {\n expectedCurrentRevisionId: string;\n expectedScopeVersion: number;\n reason: string;\n};\n\nexport type ChangePreferenceRegistryScopeRequest = {\n scope: PreferenceRegistryScope;\n expectedScopeVersion: number;\n reason: string;\n};\n\nexport type SupersedePreferenceRegistryRequest = {\n replacementPreferenceId: string;\n expectedCurrentRevisionId: string;\n expectedScopeVersion: number;\n reason: string;\n};\n\nexport type RejectPreferenceRegistryProposalRequest = {\n revisionId: string;\n expectedScopeVersion: number;\n reason: string;\n};\nexport type PreferenceRegistryListOptions = {\n scope?: PreferenceRegistryScope;\n status?: PreferenceRegistryStatus;\n limit?: number;\n};\nexport type PreferenceRegistryListResponse = { preferences: PreferenceRegistryRecord[] };\nexport type PreferenceRegistryDetailResponse = {\n preference: PreferenceRegistryRecord;\n revisions: PreferenceRegistryRevisionSummary[];\n events: PreferenceRegistryEvent[];\n};\nexport type PreferenceRegistryMutationResponse = {\n preference: PreferenceRegistryRecord;\n event: PreferenceRegistryEvent;\n};\n"],"mappings":"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","names":[]}
@@ -0,0 +1,33 @@
1
+ import type { OrganizationInsightsUsageQueryInput, OrganizationInsightsCallsQueryInput, InsightsUsageRange, InsightsUsagePayer, InsightsUsageSource } from "@opengeni/contracts/insights-usage";
2
+ export type { InsightsUsageRange, InsightsUsageGroupBy, InsightsUsagePayer, InsightsUsageSource, InsightsUsageTokens, InsightsUsageClassMicros, InsightsUsageMeasures, InsightsUsageScope, InsightsUsageGroup, InsightsUsageSeriesPoint, InsightsUsageFacets, InsightsUsageResponse, InsightsCall, InsightsCallsResponse, } from "@opengeni/contracts/insights-usage";
3
+ /** Custom selections require both inclusive UTC calendar days. */
4
+ export type InsightsUsageWindowOptions = {
5
+ range?: Exclude<InsightsUsageRange, "custom">;
6
+ from?: never;
7
+ to?: never;
8
+ } | {
9
+ range: "custom";
10
+ from: string;
11
+ to: string;
12
+ };
13
+ type FilterOptions<T> = Omit<T, "range" | "from" | "to" | "limit" | "payer" | "source"> & InsightsUsageWindowOptions & {
14
+ limit?: number;
15
+ payer?: InsightsUsagePayer | InsightsUsagePayer[];
16
+ source?: InsightsUsageSource | InsightsUsageSource[];
17
+ };
18
+ export type OrganizationInsightsUsageOptions = FilterOptions<Omit<OrganizationInsightsUsageQueryInput, "seriesGroups">> & {
19
+ seriesGroups?: boolean;
20
+ };
21
+ /** workspaceId is intersected with the path workspace by the existing server gate. */
22
+ export type WorkspaceInsightsUsageOptions = OrganizationInsightsUsageOptions;
23
+ export type OrganizationInsightsCallsOptions = FilterOptions<OrganizationInsightsCallsQueryInput>;
24
+ export type WorkspaceInsightsCallsOptions = OrganizationInsightsCallsOptions;
25
+ export type InsightsCallsScope = {
26
+ kind: "workspace";
27
+ workspaceId: string;
28
+ } | {
29
+ kind: "organization";
30
+ accountId: string;
31
+ };
32
+ /** Arrays repeat; comma strings, false and opaque values round-trip unchanged. */
33
+ export declare function insightsUsageQueryString(options: OrganizationInsightsUsageOptions | OrganizationInsightsCallsOptions): string;
@@ -0,0 +1,7 @@
1
+ import {
2
+ insightsUsageQueryString
3
+ } from "./chunk-VPVMLM7Q.js";
4
+ export {
5
+ insightsUsageQueryString
6
+ };
7
+ //# sourceMappingURL=insights-usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,2 +1,2 @@
1
1
  /** One clean model name and maker for every surface outside model settings. */
2
- export { humanizeModelSlug, isRawModelLabel, modelDisplayName, modelSlug, modelVendor, type ModelDisplayInput, type ModelVendor, } from "@opengeni/contracts/model-display";
2
+ export { humanizeModelSlug, isRawModelLabel, modelDisplayName, modelLogoUrl, modelSlug, modelVendor, type ModelDisplayInput, type ModelVendor, } from "@opengeni/contracts/model-display";
@@ -2,13 +2,15 @@ import {
2
2
  humanizeModelSlug,
3
3
  isRawModelLabel,
4
4
  modelDisplayName,
5
+ modelLogoUrl,
5
6
  modelSlug,
6
7
  modelVendor
7
- } from "./chunk-ZKPY6YAJ.js";
8
+ } from "./chunk-6Z5QRYHG.js";
8
9
  export {
9
10
  humanizeModelSlug,
10
11
  isRawModelLabel,
11
12
  modelDisplayName,
13
+ modelLogoUrl,
12
14
  modelSlug,
13
15
  modelVendor
14
16
  };
@@ -6,11 +6,11 @@ import {
6
6
  downloadSessionProxySiteHtml,
7
7
  getSessionProxyArtifactAssociation,
8
8
  getSessionProxyWorkspaceGrant
9
- } from "./chunk-RWKB6YZG.js";
9
+ } from "./chunk-66AKEWV6.js";
10
10
  import "./chunk-UM4ZXXJR.js";
11
11
  import "./chunk-U6CV2SXO.js";
12
12
  import "./chunk-APXVSSSY.js";
13
- import "./chunk-YIKA2QT4.js";
13
+ import "./chunk-WIYAB33K.js";
14
14
  import "./chunk-V6GIY62B.js";
15
15
  export {
16
16
  SESSION_PROXY_SITE_HTML_MAX_BYTES,