@opengeni/sdk 0.48.0 → 0.57.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 (122) hide show
  1. package/README.md +147 -1
  2. package/dist/artifact-client.d.ts +20 -2
  3. package/dist/artifacts.d.ts +4 -0
  4. package/dist/artifacts.js +11 -0
  5. package/dist/artifacts.js.map +1 -0
  6. package/dist/{chunk-V5F253OG.js → chunk-GU6JF75T.js} +6 -3
  7. package/dist/chunk-GU6JF75T.js.map +1 -0
  8. package/dist/chunk-HJ3HHUT5.js +222 -0
  9. package/dist/chunk-HJ3HHUT5.js.map +1 -0
  10. package/dist/{chunk-KIHGPM7H.js → chunk-JDLDDRNE.js} +20 -14
  11. package/dist/chunk-JDLDDRNE.js.map +1 -0
  12. package/dist/chunk-JRPFWI6T.js +128 -0
  13. package/dist/chunk-JRPFWI6T.js.map +1 -0
  14. package/dist/{chunk-MBGBLVUV.js → chunk-PKQ377ED.js} +1725 -555
  15. package/dist/chunk-PKQ377ED.js.map +1 -0
  16. package/dist/chunk-ST5DDKJP.js +987 -0
  17. package/dist/chunk-ST5DDKJP.js.map +1 -0
  18. package/dist/chunk-VWE2QIVO.js +1162 -0
  19. package/dist/chunk-VWE2QIVO.js.map +1 -0
  20. package/dist/chunk-VYCTL62C.js +230 -0
  21. package/dist/chunk-VYCTL62C.js.map +1 -0
  22. package/dist/{chunk-DXDL7EEW.js → chunk-YKZME56C.js} +197 -113
  23. package/dist/chunk-YKZME56C.js.map +1 -0
  24. package/dist/client.d.ts +240 -16
  25. package/dist/codex-realtime-controller.d.ts +9 -6
  26. package/dist/codex-realtime-controller.js +2 -2
  27. package/dist/codex-realtime-lifecycle.d.ts +1 -1
  28. package/dist/codex-realtime-v3.d.ts +3 -3
  29. package/dist/codex-realtime.d.ts +1 -1
  30. package/dist/company-profile.d.ts +100 -0
  31. package/dist/core.d.ts +5 -5
  32. package/dist/core.js +10 -5
  33. package/dist/desktop.d.ts +9 -1
  34. package/dist/editable-artifact-resources.d.ts +96 -0
  35. package/dist/editable-artifacts/browser-session.d.ts +35 -0
  36. package/dist/editable-artifacts/controller.d.ts +60 -0
  37. package/dist/editable-artifacts/errors.d.ts +23 -0
  38. package/dist/editable-artifacts/http-live-transport.d.ts +46 -0
  39. package/dist/editable-artifacts/index.d.ts +19 -0
  40. package/dist/editable-artifacts/pool.d.ts +15 -0
  41. package/dist/editable-artifacts/session.d.ts +96 -0
  42. package/dist/editable-artifacts/storage.d.ts +72 -0
  43. package/dist/editable-artifacts/types.d.ts +416 -0
  44. package/dist/editable-artifacts/worker/browser-client.d.ts +80 -0
  45. package/dist/editable-artifacts/worker/browser-entry.d.ts +6 -0
  46. package/dist/editable-artifacts/worker/kernel-adapter.d.ts +45 -0
  47. package/dist/editable-artifacts/worker/rpc-protocol.d.ts +92 -0
  48. package/dist/editable-artifacts/worker/runtime.d.ts +66 -0
  49. package/dist/editable-artifacts/worker/wire-codec.d.ts +52 -0
  50. package/dist/editable-artifacts-worker.d.ts +8 -0
  51. package/dist/editable-artifacts-worker.js +1708 -0
  52. package/dist/editable-artifacts-worker.js.map +1 -0
  53. package/dist/editable-artifacts.d.ts +6 -0
  54. package/dist/editable-artifacts.js +5954 -0
  55. package/dist/editable-artifacts.js.map +1 -0
  56. package/dist/gateway-realtime-transport.d.ts +2 -1
  57. package/dist/gateway-realtime-transport.js +5 -3
  58. package/dist/index.d.ts +45 -35
  59. package/dist/index.js +134 -64
  60. package/dist/index.js.map +1 -1
  61. package/dist/interaction-revision-stream.d.ts +11 -0
  62. package/dist/interaction.d.ts +1484 -0
  63. package/dist/interaction.js +81 -0
  64. package/dist/interaction.js.map +1 -0
  65. package/dist/memory-slack-client.d.ts +13 -0
  66. package/dist/memory-slack-delivery.d.ts +99 -0
  67. package/dist/memory-slack.d.ts +4 -0
  68. package/dist/memory-slack.js +44 -0
  69. package/dist/memory-slack.js.map +1 -0
  70. package/dist/proxy.d.ts +3 -3
  71. package/dist/realtime.d.ts +14 -14
  72. package/dist/realtime.js +11 -7
  73. package/dist/realtime.js.map +1 -1
  74. package/dist/retained-artifacts.d.ts +12 -0
  75. package/dist/stream.d.ts +1 -1
  76. package/dist/terminal.d.ts +1 -1
  77. package/dist/types.d.ts +1347 -34
  78. package/dist/workspace-control-stream.d.ts +2 -2
  79. package/dist/workspace-live-stream.d.ts +14 -0
  80. package/dist/workspace-state.d.ts +1 -1
  81. package/package.json +29 -3
  82. package/src/artifact-client.ts +129 -0
  83. package/src/artifacts.ts +17 -0
  84. package/src/client.ts +3022 -910
  85. package/src/codex-realtime-controller.ts +25 -7
  86. package/src/codex-realtime-lifecycle.ts +1 -0
  87. package/src/company-profile.ts +92 -0
  88. package/src/desktop.ts +11 -1
  89. package/src/editable-artifact-resources.ts +119 -0
  90. package/src/editable-artifacts/browser-session.ts +176 -0
  91. package/src/editable-artifacts/controller.ts +2632 -0
  92. package/src/editable-artifacts/errors.ts +52 -0
  93. package/src/editable-artifacts/http-live-transport.ts +1449 -0
  94. package/src/editable-artifacts/index.ts +175 -0
  95. package/src/editable-artifacts/pool.ts +81 -0
  96. package/src/editable-artifacts/session.ts +778 -0
  97. package/src/editable-artifacts/storage.ts +1718 -0
  98. package/src/editable-artifacts/types.ts +499 -0
  99. package/src/editable-artifacts/worker/browser-client.ts +1167 -0
  100. package/src/editable-artifacts/worker/browser-entry.ts +57 -0
  101. package/src/editable-artifacts/worker/kernel-adapter.ts +1039 -0
  102. package/src/editable-artifacts/worker/rpc-protocol.ts +622 -0
  103. package/src/editable-artifacts/worker/runtime.ts +1204 -0
  104. package/src/editable-artifacts/worker/wire-codec.ts +852 -0
  105. package/src/editable-artifacts-worker.ts +8 -0
  106. package/src/editable-artifacts.ts +6 -0
  107. package/src/errors.ts +16 -2
  108. package/src/gateway-realtime-transport.ts +252 -109
  109. package/src/index.ts +215 -1
  110. package/src/interaction-revision-stream.ts +117 -0
  111. package/src/interaction.ts +2874 -0
  112. package/src/memory-slack-client.ts +71 -0
  113. package/src/memory-slack-delivery.ts +128 -0
  114. package/src/memory-slack.ts +19 -0
  115. package/src/realtime.ts +14 -4
  116. package/src/retained-artifacts.ts +326 -0
  117. package/src/types.ts +1636 -52
  118. package/src/workspace-live-stream.ts +137 -0
  119. package/dist/chunk-DXDL7EEW.js.map +0 -1
  120. package/dist/chunk-KIHGPM7H.js.map +0 -1
  121. package/dist/chunk-MBGBLVUV.js.map +0 -1
  122. package/dist/chunk-V5F253OG.js.map +0 -1
package/dist/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { WorkspaceTranscriptionPolicy } from "./transcription";
1
+ import type { WorkspaceTranscriptionPolicy } from "./transcription.js";
2
2
  export type CodexRealtimeWebrtcVersion = "v3";
3
3
  export type CodexRealtimeVoice = "juniper" | "maple" | "spruce" | "ember" | "vale" | "breeze" | "arbor" | "sol" | "cove";
4
4
  export type CodexRealtimeWebrtcRequest = {
@@ -112,11 +112,11 @@ export type SyncSessionRealtimeLedgerResponse = {
112
112
  }>;
113
113
  outbound: SessionRealtimeLedgerEntry[];
114
114
  };
115
- export type SessionRealtimeModel = "gpt-live-1-boulder-alpha" | "opengeni-gateway/openai/gpt-realtime-2.1" | "opengeni-gateway/openai/gpt-realtime-mini" | "opengeni-gateway/xai/grok-voice-think-fast-2.0" | "workspace-gateway/openai/gpt-realtime-2.1" | "workspace-gateway/openai/gpt-realtime-mini" | "workspace-gateway/xai/grok-voice-think-fast-2.0";
115
+ export type SessionRealtimeModel = "gpt-live-1-boulder-alpha" | "supergrok/grok-voice-think-fast-2.0" | "opengeni-gateway/openai/gpt-realtime-2.1" | "opengeni-gateway/openai/gpt-realtime-mini" | "opengeni-gateway/xai/grok-voice-think-fast-2.0" | "workspace-gateway/openai/gpt-realtime-2.1" | "workspace-gateway/openai/gpt-realtime-mini" | "workspace-gateway/xai/grok-voice-think-fast-2.0";
116
116
  export type WorkspaceRealtimeModelCatalogItem = {
117
117
  id: SessionRealtimeModel;
118
118
  label: string;
119
- provider: "OpenGeni" | "Connected Codex" | "Your Gateway";
119
+ provider: "OpenGeni" | "Connected Codex" | "Connected SuperGrok" | "Your Gateway";
120
120
  description: string;
121
121
  available: boolean;
122
122
  unavailableReason: string | null;
@@ -184,11 +184,12 @@ export type SessionCapabilities = {
184
184
  reason: CapabilityUnavailableReason | null;
185
185
  };
186
186
  Terminal: {
187
- transport: "sse-events" | "pty-ws" | null;
187
+ transport: "sse-events" | "pty-ws" | "relay-pty" | null;
188
188
  ptyCapable: boolean;
189
189
  shell: string;
190
190
  url: string | null;
191
191
  token: string | null;
192
+ expiresAt: string | null;
192
193
  reason: CapabilityUnavailableReason | null;
193
194
  };
194
195
  Git: {
@@ -255,6 +256,8 @@ export type StreamRevokedPayload = {
255
256
  export type AttachViewerRequest = {
256
257
  viewerId?: string | undefined;
257
258
  desktop?: boolean | undefined;
259
+ terminal?: boolean | undefined;
260
+ files?: boolean | undefined;
258
261
  };
259
262
  export type ViewerHolder = {
260
263
  viewerId: string;
@@ -271,11 +274,12 @@ export type AttachViewerResponse = ViewerHolder & {
271
274
  streamToken: string | null;
272
275
  streamExpiresAt: string | null;
273
276
  resolution: [number, number] | null;
274
- transport: "vnc-ws" | null;
275
- client: "novnc" | null;
277
+ transport: "vnc-ws" | "relay-frames" | null;
278
+ client: "novnc" | "frames" | null;
276
279
  terminalUrl: string | null;
277
280
  terminalToken: string | null;
278
- terminalTransport: "pty-ws" | null;
281
+ terminalExpiresAt: string | null;
282
+ terminalTransport: "pty-ws" | "relay-pty" | null;
279
283
  };
280
284
  export type AcknowledgeStreamRequest = {
281
285
  acknowledgeUnredacted?: boolean | undefined;
@@ -318,7 +322,7 @@ export type RepositoryResourceRef = {
318
322
  githubInstallationId?: number | undefined;
319
323
  githubRepositoryId?: number | undefined;
320
324
  };
321
- /** Value mirror of `@opengeni/contracts`; parity-tested without adding an SDK runtime dependency. */
325
+ /** Value mirror of `@opengeni/contracts`; parity-tested without importing it from ordinary SDK entries. */
322
326
  export declare const DEFAULT_FILE_RESOURCE_MOUNT_ROOT: ".opengeni/files";
323
327
  export type FileResourceRef = {
324
328
  kind: "file";
@@ -371,6 +375,7 @@ export type GoalSpec = {
371
375
  text: string;
372
376
  successCriteria?: string | undefined;
373
377
  maxAutoContinuations?: number | undefined;
378
+ mutationPolicy?: SessionGoalMutationPolicy | undefined;
374
379
  };
375
380
  export type SessionMcpServerInput = {
376
381
  id: string;
@@ -465,10 +470,48 @@ export type OpenGeniSlackBotInstallRequest = {
465
470
  /** Existing OpenGeni Slack bot connection to reinstall in place. */
466
471
  connectionId?: string | undefined;
467
472
  };
473
+ export type FikenInstallRequest = {
474
+ apiToken: string;
475
+ defaultCompanySlug?: string | undefined;
476
+ /** Existing Fiken connection to rewrite in place (reconnect). */
477
+ connectionId?: string | undefined;
478
+ };
479
+ export type FikenOAuthStartRequest = {
480
+ /** Existing Fiken connection to re-authorize in place (reconnect). */
481
+ connectionId?: string | undefined;
482
+ };
483
+ export type FikenOAuthStartResponse = {
484
+ authorizationUrl: string;
485
+ expiresAt: string;
486
+ };
468
487
  export type OpenGeniSlackBotInstallStart = {
469
488
  authorizationUrl: string;
470
489
  expiresAt: string;
471
490
  };
491
+ export type SlackInstallationBindingState = "active" | "quarantined";
492
+ export type SlackInstallationBinding = {
493
+ id: string;
494
+ accountId: string;
495
+ accountName: string;
496
+ workspaceId: string;
497
+ workspaceName: string;
498
+ connectionId: string;
499
+ connectionStatus: ConnectionStatus;
500
+ connectionVersion: number;
501
+ slackTeamId: string;
502
+ slackTeamName: string;
503
+ botId: string;
504
+ botUserId: string;
505
+ botDisplayName: "OpenGeni";
506
+ state: SlackInstallationBindingState;
507
+ quarantineReason: string | null;
508
+ version: number;
509
+ createdAt: string;
510
+ updatedAt: string;
511
+ };
512
+ export type ListSlackInstallationBindingsResponse = {
513
+ bindings: SlackInstallationBinding[];
514
+ };
472
515
  export type GoogleDriveTargetScope = "user" | "workspace" | "organization";
473
516
  export type ConnectorDocumentDestinationAuthority = "organization" | "workspace" | "personal";
474
517
  export type ConnectorDocumentDestinationSelection = {
@@ -501,12 +544,14 @@ export type GoogleDriveSelectedSource = {
501
544
  /** @deprecated Missing destinations resolve to the current workspace boundary. */
502
545
  targetScope?: GoogleDriveTargetScope | undefined;
503
546
  syncCadence: GoogleDriveSyncCadence;
547
+ syncEnabled: boolean;
548
+ configGeneration: number;
504
549
  readPolicy: GoogleDriveReadPolicy;
505
550
  selectedAt: string;
506
551
  };
507
552
  export type GoogleDriveConnectionMetadata = {
508
553
  credentialRole: "google_drive_metadata";
509
- credentialLabel: "Google Drive metadata browser";
554
+ credentialLabel: "Google Drive read-only source sync" | "Google Drive metadata browser";
510
555
  googlePermissionId: string;
511
556
  googleEmail: string;
512
557
  googleDisplayName: string | null;
@@ -552,14 +597,111 @@ export type GoogleDriveBrowseResponse = {
552
597
  nextPageToken: string | null;
553
598
  incompleteSearch: boolean;
554
599
  };
600
+ export type AtlassianSourceKind = "jira_project" | "confluence_space";
601
+ export type AtlassianSyncCadence = "manual" | "hourly" | "daily";
602
+ export type AtlassianReadPolicy = "allow" | "ask" | "block";
603
+ export type AtlassianConnectionLifecycle = {
604
+ state: "active" | "paused" | "token_revoked" | "app_removed" | "disconnected" | "reconnect_required" | "reconsent_required";
605
+ recoverable: boolean;
606
+ observedAt: string;
607
+ };
608
+ export type AtlassianSelectedSource = {
609
+ id: string;
610
+ cloudId: string;
611
+ siteName: string;
612
+ siteUrl: string;
613
+ resourceId: string;
614
+ key: string;
615
+ name: string;
616
+ kind: AtlassianSourceKind;
617
+ destination?: ConnectorDocumentDestination | undefined;
618
+ syncCadence: AtlassianSyncCadence;
619
+ syncEnabled: boolean;
620
+ configGeneration: number;
621
+ readPolicy: AtlassianReadPolicy;
622
+ selectedAt: string;
623
+ };
624
+ export type AtlassianConnectionMetadata = {
625
+ credentialRole: "atlassian_knowledge";
626
+ credentialLabel: "Atlassian read-only knowledge sync";
627
+ atlassianAccountId: string;
628
+ displayName: string;
629
+ email?: string | null | undefined;
630
+ sites: Array<{
631
+ cloudId: string;
632
+ name: string;
633
+ url: string;
634
+ products: Array<"jira" | "confluence">;
635
+ }>;
636
+ verifiedAt: string;
637
+ accessMode: "readonly";
638
+ lifecycle?: AtlassianConnectionLifecycle | undefined;
639
+ documentDestination?: ConnectorDocumentDestination | undefined;
640
+ selectedSources: AtlassianSelectedSource[];
641
+ [key: string]: unknown;
642
+ };
643
+ export type AtlassianOAuthStartResponse = {
644
+ authorizationUrl: string;
645
+ expiresAt: string;
646
+ };
647
+ export type AtlassianLifecycleActionRequest = {
648
+ action: "pause" | "resume";
649
+ expectedVersion: number;
650
+ };
651
+ export type AtlassianDisconnectRequest = {
652
+ expectedVersion: number;
653
+ idempotencyKey: string;
654
+ };
655
+ export type AtlassianBrowseItem = {
656
+ id: string;
657
+ cloudId: string;
658
+ siteName: string;
659
+ siteUrl: string;
660
+ resourceId: string;
661
+ key: string;
662
+ name: string;
663
+ kind: AtlassianSourceKind;
664
+ description: string | null;
665
+ webUrl: string;
666
+ };
667
+ export type AtlassianBrowseResponse = {
668
+ connection: ConnectionMetadata;
669
+ items: AtlassianBrowseItem[];
670
+ };
555
671
  export type SaveGoogleDriveSourceRequest = {
556
672
  sources: Array<Pick<GoogleDriveBrowseItem, "id" | "name" | "mimeType" | "driveId">>;
557
673
  destination?: ConnectorDocumentDestinationSelection | undefined;
558
674
  /** @deprecated Legacy requests resolve to workspace authority. */
559
675
  targetScope?: GoogleDriveTargetScope | undefined;
560
676
  syncCadence: GoogleDriveSyncCadence;
677
+ syncEnabled: boolean;
561
678
  readPolicy: GoogleDriveReadPolicy;
562
679
  };
680
+ export type GoogleDriveKnowledgeSourceItem = {
681
+ id: string;
682
+ name: string;
683
+ mimeType: string;
684
+ driveId?: string | undefined;
685
+ sourceKind: "my_drive" | "shared_drive" | "folder";
686
+ includeDescendants: boolean;
687
+ };
688
+ export type GoogleDriveKnowledgeSourceDestination = {
689
+ authorityKind: ConnectorDocumentDestinationAuthority;
690
+ authorityAccountId: string;
691
+ authorityWorkspaceId?: string | undefined;
692
+ authoritySubjectId?: string | undefined;
693
+ collectionId?: string | undefined;
694
+ };
695
+ export type GoogleDriveKnowledgeSourceConfig = {
696
+ sources: GoogleDriveKnowledgeSourceItem[];
697
+ destination: GoogleDriveKnowledgeSourceDestination;
698
+ syncCadence: GoogleDriveSyncCadence;
699
+ readPolicy: GoogleDriveReadPolicy;
700
+ };
701
+ export type SaveGoogleDriveIntegrationSourceRequest = SaveGoogleDriveSourceRequest & {
702
+ expectedVersion?: number | undefined;
703
+ idempotencyKey: string;
704
+ };
563
705
  export type UpdateConnectionRequest = {
564
706
  providerDomain?: string | undefined;
565
707
  subjectId?: string | null | undefined;
@@ -677,6 +819,8 @@ export type Session = {
677
819
  environmentId: string | null;
678
820
  rigId: string | null;
679
821
  rigVersionId: string | null;
822
+ /** Workspace channel the session is filed under; null = unfiled (inbox). */
823
+ channelId: string | null;
680
824
  firstPartyMcpPermissions: string[] | null;
681
825
  firstPartyMcpTools: FirstPartyMcpToolName[];
682
826
  mcpServers: SessionMcpServerMetadata[];
@@ -739,6 +883,49 @@ export type SessionListResponse = {
739
883
  sessions: Session[];
740
884
  nextCursor: string | null;
741
885
  };
886
+ /** Compact, bounded session projection for workspace agent-topology browsers. */
887
+ export type AgentTopologySession = {
888
+ id: string;
889
+ title: string | null;
890
+ titleTruncated: boolean;
891
+ parentSessionId: string | null;
892
+ rootSessionId: string;
893
+ nestedAgentDepth: number;
894
+ ancestorPath: Array<{
895
+ id: string;
896
+ title: string | null;
897
+ titleTruncated: boolean;
898
+ }>;
899
+ status: SessionStatus;
900
+ pause: {
901
+ state: "active" | "paused";
902
+ additionalBlockerCount: number;
903
+ source: {
904
+ kind: "session" | "workspace";
905
+ sessionId?: string | undefined;
906
+ displayName: string;
907
+ displayNameTruncated: boolean;
908
+ } | null;
909
+ };
910
+ children: {
911
+ directChildren: number;
912
+ totalDescendants: number;
913
+ runningDescendants: number;
914
+ queuedDescendants: number;
915
+ attentionDescendants: number;
916
+ pausedDescendants: number;
917
+ failedDescendants: number;
918
+ truncated: boolean;
919
+ };
920
+ createdAt: string;
921
+ updatedAt: string;
922
+ };
923
+ export type AgentTopologyPageResponse = {
924
+ sessions: AgentTopologySession[];
925
+ total: number;
926
+ hasMore: boolean;
927
+ nextCursor: string | null;
928
+ };
742
929
  export type UpdateSessionPinRequest = {
743
930
  pinned: boolean;
744
931
  expectedVersion?: number;
@@ -754,6 +941,30 @@ export type SessionLineageResponse = {
754
941
  };
755
942
  export type SessionTurnStatus = "queued" | "running" | "requires_action" | "recovering" | "waiting_capacity" | "completed" | "failed" | "cancelled" | "superseded" | "withdrawn_for_edit";
756
943
  export type SessionTurnSource = "user" | "scheduled_task" | "api" | "goal" | "system" | "compaction";
944
+ export type TimelineAnnotationSourceKind = "user_message" | "assistant_message" | "tool_output";
945
+ export type TimelineAnnotationSourceEventType = "user.message" | "agent.message.completed" | "agent.toolCall.output";
946
+ export type TimelineAnnotationSource = {
947
+ kind: TimelineAnnotationSourceKind;
948
+ eventId: string;
949
+ eventType: TimelineAnnotationSourceEventType;
950
+ sequence: number;
951
+ turnId: string | null;
952
+ startOffset: number;
953
+ endOffset: number;
954
+ contextBefore: string;
955
+ contextAfter: string;
956
+ label?: string | undefined;
957
+ };
958
+ export type DraftTimelineAnnotation = {
959
+ id: string;
960
+ source: TimelineAnnotationSource;
961
+ quote: string;
962
+ note: string;
963
+ };
964
+ export type SubmittedTimelineAnnotation = DraftTimelineAnnotation;
965
+ export type TimelineAnnotation = DraftTimelineAnnotation & {
966
+ ordinal: number;
967
+ };
757
968
  export type SessionTurn = {
758
969
  id: string;
759
970
  workspaceId: string;
@@ -764,6 +975,7 @@ export type SessionTurn = {
764
975
  source: SessionTurnSource;
765
976
  position: number;
766
977
  prompt: string;
978
+ annotations?: TimelineAnnotation[] | undefined;
767
979
  resources: ResourceRef[];
768
980
  tools: ToolRef[];
769
981
  toolsProvided?: boolean | undefined;
@@ -842,7 +1054,7 @@ export type SessionHumanInputRequest = {
842
1054
  createdAt: string;
843
1055
  updatedAt: string;
844
1056
  };
845
- export declare const SESSION_EVENT_TYPES: readonly ["session.created", "session.event.envelope_omitted", "session.status.changed", "session.realtime.started", "session.realtime.ended", "session.requiresAction", "session.humanInput.requested", "session.context.compaction.requested", "session.context.compaction.started", "session.context.compacted", "session.context.compaction.skipped", "session.context.cleared", "user.message", "user.pause", "user.approvalDecision", "user.humanInputResponse", "turn.queued", "turn.started", "turn.completed", "turn.failed", "turn.cancelled", "turn.superseded", "turn.recovery.requested", "turn.capacity_waiting", "agent.message.delta", "agent.message.completed", "agent.reasoning.delta", "agent.toolCall.created", "agent.toolCall.output", "agent.model.request", "agent.model.usage", "tool.auth_needed", "credential.auth_needed", "agent.updated", "rig.setup.started", "rig.setup.completed", "rig.setup.skipped", "rig.setup.failed", "sandbox.operation.started", "sandbox.operation.completed", "sandbox.operation.failed", "sandbox.command.output.delta", "artifact.created", "goal.set", "goal.updated", "goal.completed", "goal.paused", "goal.resumed", "goal.cleared", "goal.continuation", "system.update.pending", "system.update.delivered", "system.update.superseded", "system.update.cancelled", "system.update.settled", "session.control.paused", "session.control.resumed", "session.control.steer_requested", "workspace.inference.paused", "workspace.inference.resumed", "session.queue.changed", "session.queue.prompt.cancelled", "session.queue.history", "turn.event.rejected_late", "memory.saved", "memory.corrected", "stream.url.rotated", "stream.opened", "stream.closed", "stream.revoked", "recording.started", "recording.available", "recording.failed", "fs.changed", "git.changed", "terminal.pty.started", "terminal.pty.output.delta", "terminal.pty.exited", "session.title_set", "session.mcp.approval_policy.updated", "session.tool_policy.updated", "codex.account.switched", "codex.credential.selected", "codex.fleet.decision", "codex.capacity.waiting", "codex.capacity.resumed", "codex.capacity.superseded", "sandbox.box.created", "sandbox.box.lost", "sandbox.box.terminated", "sandbox.box.snapshot", "sandbox.env.drift", "session.route.reconciled", "workspace.revision.captured", "workspace.revision.degraded", "machine.op.failed", "machine.op.recovered", "machine.link.lost", "machine.link.restored", "machine.runner.restarted"];
1057
+ export declare const SESSION_EVENT_TYPES: readonly ["session.created", "session.event.envelope_omitted", "session.status.changed", "session.realtime.started", "session.realtime.ended", "session.requiresAction", "session.humanInput.requested", "session.context.compaction.requested", "session.context.compaction.started", "session.context.compacted", "session.context.compaction.skipped", "session.context.cleared", "user.message", "user.pause", "user.approvalDecision", "user.humanInputResponse", "turn.queued", "turn.started", "turn.completed", "turn.failed", "turn.cancelled", "turn.superseded", "turn.recovery.requested", "turn.capacity_waiting", "agent.message.delta", "agent.message.completed", "agent.reasoning.delta", "agent.toolCall.created", "agent.toolCall.output", "agent.model.request", "agent.model.usage", "tool.auth_needed", "credential.auth_needed", "agent.updated", "rig.setup.started", "rig.setup.completed", "rig.setup.skipped", "rig.setup.failed", "sandbox.operation.started", "sandbox.operation.completed", "sandbox.operation.failed", "sandbox.command.output.delta", "artifact.created", "goal.set", "goal.updated", "goal.progress", "goal.rewrite.proposed", "goal.rewrite.rejected", "goal.completed", "goal.paused", "goal.resumed", "goal.cleared", "goal.continuation", "system.update.pending", "system.update.delivered", "system.update.superseded", "system.update.cancelled", "system.update.settled", "session.control.paused", "session.control.resumed", "session.control.steer_requested", "workspace.inference.paused", "workspace.inference.resumed", "session.queue.changed", "session.queue.prompt.cancelled", "session.queue.history", "turn.event.rejected_late", "memory.saved", "memory.corrected", "stream.url.rotated", "stream.opened", "stream.closed", "stream.revoked", "recording.started", "recording.available", "recording.failed", "fs.changed", "git.changed", "terminal.pty.started", "terminal.pty.output.delta", "terminal.pty.exited", "session.title_set", "session.visibility.changed", "session.mcp.approval_policy.updated", "session.tool_policy.updated", "codex.account.switched", "codex.credential.selected", "codex.fleet.decision", "codex.capacity.waiting", "codex.capacity.resumed", "codex.capacity.superseded", "sandbox.box.created", "sandbox.box.lost", "sandbox.box.terminated", "sandbox.box.snapshot", "sandbox.env.drift", "session.route.reconciled", "workspace.revision.captured", "workspace.revision.degraded", "machine.op.failed", "machine.op.recovered", "machine.link.lost", "machine.link.restored", "machine.runner.restarted"];
846
1058
  export type KnownSessionEventType = (typeof SESSION_EVENT_TYPES)[number];
847
1059
  /**
848
1060
  * Event types the SDK knows about today, kept open so a newer OpenGeni server
@@ -979,6 +1191,15 @@ export type ToolAuthNeededPayload = {
979
1191
  }> | undefined;
980
1192
  authorizationUrl?: string | undefined;
981
1193
  subjectId?: string | null | undefined;
1194
+ capability?: {
1195
+ id: string;
1196
+ name: string;
1197
+ kind: CapabilityKind;
1198
+ source: CapabilitySource;
1199
+ action: "connect" | "add_credentials" | "enable";
1200
+ rationale: string;
1201
+ requiredVariables: string[];
1202
+ } | undefined;
982
1203
  };
983
1204
  export type AgentTextDeltaPayload = {
984
1205
  text: string;
@@ -1227,6 +1448,9 @@ export type GitStatusRequest = {
1227
1448
  export type GitStatusResponse = {
1228
1449
  isRepo: boolean;
1229
1450
  head: string | null;
1451
+ /** Exact commit object identity. null for unborn/non-repositories; absent on
1452
+ * legacy adapters. */
1453
+ headOid?: string | null | undefined;
1230
1454
  detached: boolean;
1231
1455
  upstream: string | null;
1232
1456
  ahead: number;
@@ -1349,6 +1573,9 @@ export type WorkspaceCaptureFile = {
1349
1573
  export type WorkspaceCaptureRepo = {
1350
1574
  root: string;
1351
1575
  head: string | null;
1576
+ /** Exact HEAD commit object identity. null for unborn repositories; absent
1577
+ * on legacy captures. */
1578
+ headOid?: string | null | undefined;
1352
1579
  detached: boolean;
1353
1580
  upstream: string | null;
1354
1581
  ahead: number;
@@ -1493,6 +1720,8 @@ export type ScheduledTaskRunMode = "new_session_per_run" | "reusable_session" |
1493
1720
  export type ScheduledTaskOverlapPolicy = "allow_concurrent" | "skip" | "buffer_one";
1494
1721
  export type ScheduledTaskDayOfWeek = "SUNDAY" | "MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY";
1495
1722
  export type ScheduledTaskScheduleSpec = {
1723
+ type: "manual";
1724
+ } | {
1496
1725
  type: "once";
1497
1726
  runAt: string;
1498
1727
  timeZone: string;
@@ -1520,6 +1749,50 @@ export type ScheduledTaskAgentConfig = {
1520
1749
  goal?: GoalSpec | undefined;
1521
1750
  maxNestedAgentDepth?: number | undefined;
1522
1751
  };
1752
+ export type ScopedKnowledgeScope = {
1753
+ kind: "organization";
1754
+ workspaceId: null;
1755
+ subjectId: null;
1756
+ } | {
1757
+ kind: "workspace";
1758
+ workspaceId: string;
1759
+ subjectId: null;
1760
+ } | {
1761
+ kind: "personal";
1762
+ workspaceId: string | null;
1763
+ subjectId: string;
1764
+ };
1765
+ export type KnowledgeSourceSyncLimits = {
1766
+ maxItems: number;
1767
+ maxBytes: number;
1768
+ maxFileBytes: number;
1769
+ maxProviderRequests: number;
1770
+ maxElapsedSeconds: number;
1771
+ maxConcurrency: number;
1772
+ maxFailureDetails: number;
1773
+ };
1774
+ export type ScheduledTaskAction = {
1775
+ kind: "agent_turn";
1776
+ } | {
1777
+ kind: "knowledge_source_sync";
1778
+ sourceId: string;
1779
+ sourceGeneration: number;
1780
+ sourceLifecycleGeneration: number;
1781
+ sourceConfigGeneration: number;
1782
+ controlWorkspaceId: string;
1783
+ providerCoordinationKey: string;
1784
+ connection: {
1785
+ connectionId: string;
1786
+ connectionVersion: number;
1787
+ providerDomain: string;
1788
+ kind: ConnectionKind;
1789
+ ownerSubjectId: string;
1790
+ };
1791
+ destination: ScopedKnowledgeScope;
1792
+ initiatingSubjectId: string;
1793
+ allDescendants: boolean;
1794
+ limits: KnowledgeSourceSyncLimits;
1795
+ };
1523
1796
  export type ScheduledTask = {
1524
1797
  id: string;
1525
1798
  accountId: string;
@@ -1530,6 +1803,7 @@ export type ScheduledTask = {
1530
1803
  temporalScheduleId: string;
1531
1804
  runMode: ScheduledTaskRunMode;
1532
1805
  overlapPolicy: ScheduledTaskOverlapPolicy;
1806
+ action: ScheduledTaskAction;
1533
1807
  agentConfig: ScheduledTaskAgentConfig;
1534
1808
  createdBy?: TurnInitiator | undefined;
1535
1809
  createdByContext?: TurnInitiatorContext | undefined;
@@ -1581,14 +1855,14 @@ export type CreateSessionRequest = {
1581
1855
  groupId: string;
1582
1856
  } | undefined;
1583
1857
  };
1584
- export declare const KNOWN_PERMISSIONS: readonly ["account:read", "account:admin", "members:manage", "workspace:create", "billing:read", "billing:manage", "workspace:read", "workspace:admin", "sessions:create", "sessions:read", "sessions:control", "stream:view", "stream:control", "stream:acknowledge", "files:upload", "files:read", "files:write", "terminal:attach", "documents:manage", "documents:search", "scheduled_tasks:manage", "scheduled_tasks:run", "github:manage", "github:use", "api_keys:manage", "connections:read", "connections:write", "environments:manage", "environments:use", "variable-sets:list", "variable-sets:read", "variable-sets:write", "variable-sets:manage", "variable-sets:use", "secrets:list", "secrets:read", "secrets:write", "mcp_servers:attach", "toolspace:call", "goals:manage", "enrollments:read", "enrollments:manage", "rigs:use", "rigs:manage", "artifacts:read", "artifacts:publish"];
1858
+ export declare const KNOWN_PERMISSIONS: readonly ["account:read", "account:admin", "members:manage", "workspace:create", "billing:read", "billing:manage", "workspace:read", "workspace:admin", "sessions:create", "sessions:read", "sessions:control", "stream:view", "stream:control", "stream:acknowledge", "files:upload", "files:read", "files:write", "terminal:attach", "documents:manage", "documents:search", "scheduled_tasks:manage", "scheduled_tasks:run", "github:manage", "github:use", "api_keys:manage", "connections:read", "connections:write", "environments:manage", "environments:use", "variable-sets:list", "variable-sets:read", "variable-sets:write", "variable-sets:manage", "variable-sets:use", "secrets:list", "secrets:read", "secrets:write", "mcp_servers:attach", "codemode:call", "goals:manage", "enrollments:read", "enrollments:manage", "rigs:use", "rigs:manage", "artifacts:read", "artifacts:publish"];
1585
1859
  export type KnownPermission = (typeof KNOWN_PERMISSIONS)[number];
1586
1860
  /**
1587
1861
  * Permissions the SDK knows about today, kept open so a newer OpenGeni server
1588
1862
  * can introduce permissions without breaking older SDK consumers.
1589
1863
  */
1590
1864
  export type Permission = KnownPermission | (string & {});
1591
- export type FirstPartyMcpToolName = "set_session_title" | "goal_set" | "goal_update" | "goal_complete" | "goal_pause" | "memory_search" | "memory_save" | "memory_correct" | "preference_registry_summary" | "preference_registry_get" | "sandboxes_list" | "sandbox_attach" | "sandbox_swap" | "run_on" | "sandbox_provision" | "connected_machine_remove" | "connected_machine_remove" | "rig_list" | "rig_get" | "rig_propose_change" | "rig_verify" | "rig_promote" | "sessions_list" | "session_get" | "session_events" | "session_create" | "session_send_message" | "session_pause" | "session_resume" | "session_steer" | "set_other_session_title" | "variable_set_list" | "environment_list" | "variable_set_get_variable" | "variable_set_set_variable" | "environment_set_variable" | "github_connect_link" | "github_repositories_list" | "social_connections_list" | "social_posts_recent" | "social_daily_analysis_context" | "social_search_live" | "social_mentions_live" | "social_thread_fetch" | "social_posts_sync" | "social_post_reply" | "scheduled_tasks_list" | "scheduled_tasks_get" | "scheduled_tasks_create" | "scheduled_tasks_update" | "scheduled_tasks_pause" | "scheduled_tasks_resume" | "scheduled_tasks_trigger" | "scheduled_tasks_delete" | "scheduled_task_runs_list" | "slack_bot_list_channels" | "slack_bot_channel_history" | "slack_bot_thread_replies" | "slack_bot_list_users" | "slack_bot_list_files" | "slack_bot_file_info" | "slack_bot_file_content" | "slack_bot_post_message" | "slack_bot_delete_message" | "artifacts_list" | "artifacts_get_source" | "artifacts_create" | "artifacts_publish" | "artifacts_rollback";
1865
+ export type FirstPartyMcpToolName = "set_session_title" | "goal_set" | "goal_update" | "goal_progress" | "goal_complete" | "goal_pause" | "memory_search" | "memory_save" | "memory_correct" | "preference_registry_summary" | "preference_registry_get" | "task_notes_list" | "task_note_save" | "task_note_archive" | "sandboxes_list" | "sandbox_attach" | "sandbox_swap" | "run_on" | "sandbox_provision" | "connected_machine_remove" | "rig_list" | "rig_get" | "rig_propose_change" | "rig_verify" | "rig_promote" | "sessions_list" | "session_get" | "session_events" | "session_create" | "session_send_message" | "session_pause" | "session_resume" | "session_steer" | "set_other_session_title" | "interaction_discover" | "browser_open" | "browser_tabs" | "browser_observe" | "browser_act" | "browser_clipboard" | "browser_debug" | "browser_auth" | "interaction_request_human" | "browser_identity" | "browser_publish" | "browser_lifecycle" | "computer_open" | "computer_targets" | "computer_observe" | "computer_clipboard" | "computer_act" | "computer_lifecycle" | "variable_set_list" | "environment_list" | "variable_set_get_variable" | "variable_set_set_variable" | "environment_set_variable" | "capability_catalog_search" | "capability_authorization_request" | "github_connect_link" | "github_repositories_list" | "social_connections_list" | "social_posts_recent" | "social_daily_analysis_context" | "social_search_live" | "social_mentions_live" | "social_thread_fetch" | "social_posts_sync" | "social_post_reply" | "x_accounts_list" | "x_search_live" | "x_mentions_live" | "x_thread_fetch" | "x_posts_sync" | "x_post_reply" | "reddit_accounts_list" | "reddit_search_live" | "reddit_mentions_live" | "reddit_thread_fetch" | "reddit_posts_sync" | "reddit_post_reply" | "scheduled_tasks_list" | "scheduled_tasks_get" | "scheduled_tasks_create" | "scheduled_tasks_update" | "scheduled_tasks_pause" | "scheduled_tasks_resume" | "scheduled_tasks_trigger" | "scheduled_tasks_delete" | "scheduled_task_runs_list" | "slack_bot_list_channels" | "slack_bot_channel_history" | "slack_bot_thread_replies" | "slack_bot_list_users" | "slack_bot_list_files" | "slack_bot_file_info" | "slack_bot_file_content" | "slack_bot_post_message" | "slack_bot_delete_message" | "fiken_companies_list" | "fiken_contacts_list" | "fiken_contact_create" | "fiken_products_list" | "fiken_invoices_list" | "fiken_invoice_get" | "fiken_invoice_draft_create" | "fiken_bank_accounts_list" | "fiken_purchases_list" | "fiken_sales_list" | "atlassian_sources_list" | "atlassian_search" | "atlassian_get" | "artifacts_list" | "artifacts_get_source" | "artifacts_create" | "artifacts_publish" | "artifacts_rollback" | "editable_artifact_list" | "editable_artifact_create" | "editable_artifact_import" | "editable_artifact_get" | "editable_artifact_inspect" | "editable_artifact_apply" | "editable_artifact_export" | "editable_artifact_export_status";
1592
1866
  export type ProductAccessMode = "local" | "configured" | "managed";
1593
1867
  export type ModelCapabilitySupportV1 = "supported" | "unsupported" | "unknown";
1594
1868
  export type ModelCapabilityStateV1 = {
@@ -1631,7 +1905,7 @@ export type ModelCredentialSourceV1 = {
1631
1905
  mechanism: "api_key" | "azure_ad_bearer";
1632
1906
  } | {
1633
1907
  kind: "connected_subscription";
1634
- provider: "codex";
1908
+ provider: "codex" | "xai";
1635
1909
  } | {
1636
1910
  kind: "workspace_connection";
1637
1911
  mechanism: "api_key";
@@ -1668,7 +1942,7 @@ export type ClientModel = {
1668
1942
  provider: string;
1669
1943
  providerLabel: string;
1670
1944
  api: "responses" | "chat";
1671
- source?: "opengeni" | "codex" | "workspace_gateway" | undefined;
1945
+ source?: "opengeni" | "codex" | "supergrok" | "workspace_gateway" | undefined;
1672
1946
  contextWindowTokens?: number | undefined;
1673
1947
  schemaVersion?: 1 | undefined;
1674
1948
  aliases?: string[] | undefined;
@@ -1912,6 +2186,83 @@ export type CodexConnectPoll = {
1912
2186
  accountId?: string;
1913
2187
  isActive?: boolean;
1914
2188
  };
2189
+ /** Explicit authority of one connected SuperGrok/xAI subscription account. */
2190
+ export type SuperGrokAccountScope = "workspace" | "user";
2191
+ /** Metadata-only connected SuperGrok account. Secret OAuth material never crosses the API. */
2192
+ export type SuperGrokAccount = {
2193
+ id: string;
2194
+ scope: SuperGrokAccountScope;
2195
+ subject: string;
2196
+ email?: string | null;
2197
+ label?: string | null;
2198
+ status: "active" | "needs_relogin" | "error";
2199
+ active: boolean;
2200
+ expiresAt?: string | null;
2201
+ lastRefreshAt?: string | null;
2202
+ lastError?: string | null;
2203
+ allocatorEnabled: boolean;
2204
+ allocatorVersion: number;
2205
+ allocatorUpdatedAt?: string | null;
2206
+ exhaustedUntil?: string | null;
2207
+ quota?: {
2208
+ usedPercent: number | null;
2209
+ periodStart: string | null;
2210
+ periodEnd: string | null;
2211
+ subscriptionTier: string | null;
2212
+ checkedAt: string | null;
2213
+ } | null;
2214
+ };
2215
+ export type SuperGrokRotationSettings = {
2216
+ rotationEnabled: boolean;
2217
+ rotationStrategy: "sharded";
2218
+ activeCredentialId: string | null;
2219
+ };
2220
+ /** GET /supergrok/accounts — visible accounts plus the workspace active pointer. */
2221
+ export type SuperGrokAccountsResponse = {
2222
+ accounts: SuperGrokAccount[];
2223
+ activeAccountId: string | null;
2224
+ settings: SuperGrokRotationSettings;
2225
+ };
2226
+ export type SuperGrokConnectionStatus = {
2227
+ connected: boolean;
2228
+ valid?: boolean;
2229
+ accountCount?: number;
2230
+ models?: ClientModel[];
2231
+ activeAccount?: {
2232
+ id: string;
2233
+ label?: string | null;
2234
+ subject?: string | null;
2235
+ scope: SuperGrokAccountScope;
2236
+ } | null;
2237
+ };
2238
+ /** Workspace is the deliberately simple/default connection authority. */
2239
+ export type SuperGrokConnectStart = {
2240
+ userCode: string;
2241
+ verificationUri: string;
2242
+ verificationUriComplete?: string | null;
2243
+ intervalSeconds: number;
2244
+ expiresInSeconds: number;
2245
+ scope: SuperGrokAccountScope;
2246
+ state: string;
2247
+ };
2248
+ export type SuperGrokConnectPoll = {
2249
+ status: "pending" | "slow_down";
2250
+ intervalSeconds?: number;
2251
+ } | {
2252
+ status: "expired" | "denied";
2253
+ } | {
2254
+ status: "connected";
2255
+ accountId: string;
2256
+ scope: SuperGrokAccountScope;
2257
+ isActive: boolean;
2258
+ email?: string | null;
2259
+ };
2260
+ export type SuperGrokAllocatorUpdate = {
2261
+ allocatorEnabled: boolean;
2262
+ allocatorVersion: number;
2263
+ allocatorUpdatedAt: string | null;
2264
+ changed: boolean;
2265
+ };
1915
2266
  /** Remaining usage/limits for one account. `usage` is the normalized P2 payload. */
1916
2267
  export type CodexUsage = {
1917
2268
  status: "ok" | "limit_reached" | "error" | "no-data";
@@ -1937,7 +2288,7 @@ export type ClientAuthConfig = {
1937
2288
  mode: "managedSession";
1938
2289
  session: "cookie";
1939
2290
  };
1940
- export declare const OPENGENI_API_CONTRACT_REVISION: "2026-07-workspace-artifacts-v1";
2291
+ export declare const OPENGENI_API_CONTRACT_REVISION: "2026-08-social-provider-tools-v1";
1941
2292
  export declare const OPENGENI_API_CONTRACT_HEADER: "x-opengeni-api-contract";
1942
2293
  /** Bounded request/response identifier shared by browser, ingress, and API diagnostics. */
1943
2294
  export declare const OPENGENI_CORRELATION_HEADER: "x-opengeni-correlation-id";
@@ -1961,6 +2312,11 @@ export type ClientConfig = {
1961
2312
  id: string;
1962
2313
  name: string;
1963
2314
  }[];
2315
+ /** Deployment defaults and hard maximum for built-in OpenGeni session tools. */
2316
+ firstPartyMcpTools?: {
2317
+ default: FirstPartyMcpToolName[];
2318
+ allowed: FirstPartyMcpToolName[];
2319
+ } | undefined;
1964
2320
  fileUploads: {
1965
2321
  enabled: boolean;
1966
2322
  maxSizeBytes: number;
@@ -2091,6 +2447,15 @@ export type AccessContext = {
2091
2447
  defaultAccountId: string | null;
2092
2448
  defaultWorkspaceId: string | null;
2093
2449
  };
2450
+ export type ManagedOrganizationMembership = {
2451
+ id: string;
2452
+ organizationId: string;
2453
+ status: "active";
2454
+ personalWorkspaceId: string;
2455
+ };
2456
+ export type ListManagedOrganizationMembershipsResponse = {
2457
+ memberships: ManagedOrganizationMembership[];
2458
+ };
2094
2459
  export type Workspace = {
2095
2460
  id: string;
2096
2461
  accountId: string;
@@ -2113,6 +2478,8 @@ export type Workspace = {
2113
2478
  };
2114
2479
  export type WorkspaceSettings = {
2115
2480
  memoryEnabled?: boolean | undefined;
2481
+ /** Reversible Memory V1 prompt composition rollout. */
2482
+ memoryPromptMode?: "legacy_standing" | "retrieval_only" | undefined;
2116
2483
  voiceInput?: WorkspaceVoiceInputSettings | undefined;
2117
2484
  transcription?: WorkspaceTranscriptionPolicy | undefined;
2118
2485
  maxNestedAgentDepth?: number | null | undefined;
@@ -2125,7 +2492,7 @@ export type WorkspaceSettings = {
2125
2492
  };
2126
2493
  export type WorkspaceSlackReactionSummonSettings = {
2127
2494
  enabled: boolean;
2128
- emoji: string;
2495
+ emoji: "genie";
2129
2496
  channelPolicy: {
2130
2497
  mode: "bot_member";
2131
2498
  } | {
@@ -2147,6 +2514,7 @@ export type WorkspaceVoiceInputSettings = {
2147
2514
  };
2148
2515
  export type UpdateWorkspaceSettingsRequest = {
2149
2516
  memoryEnabled?: boolean | undefined;
2517
+ memoryPromptMode?: "legacy_standing" | "retrieval_only" | undefined;
2150
2518
  voiceInput?: WorkspaceVoiceInputSettings | undefined;
2151
2519
  transcription?: WorkspaceTranscriptionPolicy | undefined;
2152
2520
  maxNestedAgentDepth?: number | null | undefined;
@@ -2216,8 +2584,64 @@ export type UpdateWorkspaceMemberRequest = {
2216
2584
  role?: string | undefined;
2217
2585
  permissions: Permission[];
2218
2586
  };
2587
+ export type SlackUserLinkAccessRequestStatus = "prepared" | "pending" | "completed" | "denied" | "cancelled" | "expired";
2588
+ /** Token-free durable projection of one signed Slack identity-link intent. */
2589
+ export type SlackUserLinkAccessRequest = {
2590
+ id: string;
2591
+ workspaceId: string;
2592
+ workspaceDisplayName: string | null;
2593
+ subjectLabel: string | null;
2594
+ status: SlackUserLinkAccessRequestStatus;
2595
+ version: number;
2596
+ expiresAt: string;
2597
+ requestedAt: string | null;
2598
+ decidedAt: string | null;
2599
+ completedAt: string | null;
2600
+ createdAt: string;
2601
+ updatedAt: string;
2602
+ };
2603
+ export type PrepareSlackUserLinkAccessRequest = {
2604
+ linkToken: string;
2605
+ };
2606
+ export type SlackUserLinkAccessMutationRequest = {
2607
+ expectedVersion: number;
2608
+ idempotencyKey: string;
2609
+ };
2610
+ export type ApproveSlackUserLinkAccessRequest = SlackUserLinkAccessMutationRequest & {
2611
+ role?: string | undefined;
2612
+ permissions: Permission[];
2613
+ };
2614
+ export type ListSlackUserLinkAccessRequestsResponse = {
2615
+ requests: SlackUserLinkAccessRequest[];
2616
+ };
2219
2617
  export type SessionGoalStatus = "active" | "paused" | "completed";
2220
2618
  export type SessionGoalCreatedBy = "api" | "agent" | "scheduled_task";
2619
+ export type SessionGoalMutationPolicy = "review_changes" | "preserve_intent" | "autonomous_adaptation";
2620
+ export type SessionGoalChangeKind = "refinement" | "adaptation" | "replacement";
2621
+ export type SessionGoalRevision = {
2622
+ id: string;
2623
+ accountId: string;
2624
+ workspaceId: string;
2625
+ sessionId: string;
2626
+ goalId: string;
2627
+ disposition: "applied" | "proposed" | "rejected";
2628
+ changeKind: SessionGoalChangeKind;
2629
+ baseObjectiveRevision: number;
2630
+ resultObjectiveRevision: number | null;
2631
+ text: string;
2632
+ successCriteria: string | null;
2633
+ mutationPolicy: SessionGoalMutationPolicy;
2634
+ rationale: string;
2635
+ actor: "agent" | "api" | "scheduled_task";
2636
+ actorTurnId: string | null;
2637
+ actorAttemptId: string | null;
2638
+ proposalId: string | null;
2639
+ createdAt: string;
2640
+ };
2641
+ export type ApplySessionGoalRevisionRequest = {
2642
+ expectedObjectiveRevision: number;
2643
+ rationale?: string | undefined;
2644
+ };
2221
2645
  export type SessionGoalContinuationState = "inactive" | "scheduled" | "running" | "blocked" | "invariant_broken";
2222
2646
  export type SessionGoalContinuationReason = "goal_inactive" | "wake_pending" | "continuation_pending" | "human_work_pending" | "goal_turn_running" | "human_turn_running" | "workstream_paused" | "approval_required" | "provider_backpressure" | "session_cancelled" | "system_work_pending" | "missing_obligation";
2223
2647
  export type SessionGoalContinuation = {
@@ -2241,6 +2665,8 @@ export type SessionGoal = {
2241
2665
  pausedReason: string | null;
2242
2666
  createdBy: SessionGoalCreatedBy;
2243
2667
  version: number;
2668
+ objectiveRevision: number;
2669
+ mutationPolicy: SessionGoalMutationPolicy;
2244
2670
  autoContinuations: number;
2245
2671
  noProgressStreak: number;
2246
2672
  maxAutoContinuations: number | null;
@@ -2253,6 +2679,12 @@ export type SessionGoal = {
2253
2679
  export type UpdateSessionGoalRequest = {
2254
2680
  status: "paused" | "active";
2255
2681
  rationale?: string | undefined;
2682
+ } | {
2683
+ text: string;
2684
+ successCriteria?: string | null | undefined;
2685
+ mutationPolicy?: SessionGoalMutationPolicy | undefined;
2686
+ rationale: string;
2687
+ expectedObjectiveRevision: number;
2256
2688
  };
2257
2689
  export type UpdateSessionRequest = {
2258
2690
  title: string;
@@ -2314,6 +2746,7 @@ export type SessionCommandReceipt = {
2314
2746
  export type ComposerDraft = {
2315
2747
  revision: number;
2316
2748
  text: string;
2749
+ annotations?: DraftTimelineAnnotation[] | undefined;
2317
2750
  resources: ResourceRef[];
2318
2751
  model: string;
2319
2752
  reasoningEffort: ReasoningEffort;
@@ -2363,7 +2796,7 @@ export type SessionQueueSnapshot = {
2363
2796
  };
2364
2797
  export type SessionPendingInputPreview = Pick<SessionSystemUpdate, "id" | "sessionId" | "kind" | "classification" | "sourceId" | "summary" | "createdAt">;
2365
2798
  export type SystemUpdateClassification = "success" | "failure" | "action_required" | "info";
2366
- export type SessionSystemUpdateKind = "scheduled_occurrence" | "goal_continuation" | "agent_message" | "agent_steer_instruction" | "child_terminal_result";
2799
+ export type SessionSystemUpdateKind = "scheduled_occurrence" | "goal_continuation" | "agent_message" | "agent_steer_instruction" | "child_terminal_result" | "media_generation_result";
2367
2800
  export type SessionSystemUpdateState = "pending" | "delivered" | "cancelled" | "superseded" | "failed";
2368
2801
  export type SessionSystemUpdate = {
2369
2802
  id: string;
@@ -2471,9 +2904,12 @@ export type ScheduledTaskAgentConfigInput = {
2471
2904
  goal?: GoalSpec | undefined;
2472
2905
  maxNestedAgentDepth?: number | undefined;
2473
2906
  };
2474
- export type CreateScheduledTaskRequest = {
2907
+ export type CreateAgentScheduledTaskRequest = {
2475
2908
  name: string;
2476
2909
  schedule: ScheduledTaskScheduleSpec;
2910
+ action?: {
2911
+ kind: "agent_turn";
2912
+ } | undefined;
2477
2913
  runMode?: ScheduledTaskRunMode | undefined;
2478
2914
  targetSessionId?: string | null | undefined;
2479
2915
  overlapPolicy?: ScheduledTaskOverlapPolicy | undefined;
@@ -2485,12 +2921,24 @@ export type CreateScheduledTaskRequest = {
2485
2921
  rigId?: string | null | undefined;
2486
2922
  metadata?: Record<string, unknown> | undefined;
2487
2923
  };
2924
+ export type CreateKnowledgeSourceSyncScheduledTaskRequest = {
2925
+ name: string;
2926
+ schedule: ScheduledTaskScheduleSpec;
2927
+ action: Extract<ScheduledTaskAction, {
2928
+ kind: "knowledge_source_sync";
2929
+ }>;
2930
+ overlapPolicy?: "skip" | "buffer_one" | undefined;
2931
+ status?: ScheduledTaskStatus | undefined;
2932
+ metadata?: Record<string, unknown> | undefined;
2933
+ };
2934
+ export type CreateScheduledTaskRequest = CreateAgentScheduledTaskRequest | CreateKnowledgeSourceSyncScheduledTaskRequest;
2488
2935
  export type UpdateScheduledTaskRequest = {
2489
2936
  name?: string | undefined;
2490
2937
  schedule?: ScheduledTaskScheduleSpec | undefined;
2491
2938
  runMode?: ScheduledTaskRunMode | undefined;
2492
2939
  targetSessionId?: string | null | undefined;
2493
2940
  overlapPolicy?: ScheduledTaskOverlapPolicy | undefined;
2941
+ action?: ScheduledTaskAction | undefined;
2494
2942
  agentConfig?: ScheduledTaskAgentConfigInput | undefined;
2495
2943
  status?: ScheduledTaskStatus | undefined;
2496
2944
  variableSetId?: string | null | undefined;
@@ -2499,8 +2947,31 @@ export type UpdateScheduledTaskRequest = {
2499
2947
  rigId?: string | null | undefined;
2500
2948
  metadata?: Record<string, unknown> | undefined;
2501
2949
  };
2502
- export type ScheduledTaskRunStatus = "queued" | "dispatched" | "failed";
2503
- export type ScheduledTaskTriggerType = "scheduled" | "manual";
2950
+ export type ScheduledTaskRunStatus = "queued" | "dispatched" | "succeeded" | "skipped" | "failed";
2951
+ export type KnowledgeSourceSyncRunSummary = {
2952
+ phase: "queued" | "inventory" | "transfer" | "index" | "checkpoint" | "completed" | "failed";
2953
+ scanned: number;
2954
+ imported: number;
2955
+ unchanged: number;
2956
+ skipped: number;
2957
+ failed: number;
2958
+ bytes: number;
2959
+ providerRequests: number;
2960
+ elapsedMs: number;
2961
+ indexed: number;
2962
+ aclPending: number;
2963
+ retryable: boolean;
2964
+ limitReached: "items" | "bytes" | "file_bytes" | "provider_requests" | "elapsed_time" | null;
2965
+ checkpointed: boolean;
2966
+ reconnectRequired: boolean;
2967
+ failures: Array<{
2968
+ externalObjectId: string;
2969
+ code: "authority_changed" | "connection_reconnect_required" | "provider_unavailable" | "provider_rejected" | "provider_payload_invalid" | "content_unsupported" | "content_too_large" | "resource_limit" | "item_processing_failed" | "indexing_failed" | "internal_failure";
2970
+ retryable: boolean;
2971
+ message: string;
2972
+ }>;
2973
+ };
2974
+ export type ScheduledTaskTriggerType = "scheduled" | "manual" | "initial" | "provider_event" | "retry" | "repair";
2504
2975
  export type ScheduledTaskRun = {
2505
2976
  id: string;
2506
2977
  accountId: string;
@@ -2512,6 +2983,10 @@ export type ScheduledTaskRun = {
2512
2983
  firedAt: string;
2513
2984
  sessionId: string | null;
2514
2985
  triggerEventId: string | null;
2986
+ actionKind: "agent_turn" | "knowledge_source_sync";
2987
+ knowledgeSyncRunId: string | null;
2988
+ knowledgeSummary: KnowledgeSourceSyncRunSummary | null;
2989
+ completedAt: string | null;
2515
2990
  error: string | null;
2516
2991
  createdAt: string;
2517
2992
  updatedAt: string;
@@ -2570,6 +3045,36 @@ export type RigCheck = {
2570
3045
  name: string;
2571
3046
  command: string;
2572
3047
  };
3048
+ export type RigProviderImageBuildStatus = "building" | "ready" | "failed" | "unsupported";
3049
+ export type RigProviderImage = {
3050
+ backend: SandboxBackend;
3051
+ provider: string;
3052
+ status: RigProviderImageBuildStatus;
3053
+ contentHash: string;
3054
+ setupHash: string;
3055
+ sourceImage: string | null;
3056
+ buildRequestId: string;
3057
+ imageId: string | null;
3058
+ imageDigest: string | null;
3059
+ artifactId: string | null;
3060
+ providerBindingKeyHash: string | null;
3061
+ coldBootValidation?: {
3062
+ version: 1;
3063
+ checkedAt: string;
3064
+ } | undefined;
3065
+ provenance: {
3066
+ kind: "rig_verification";
3067
+ targetKind: "change" | "version";
3068
+ targetId: string;
3069
+ };
3070
+ startedAt: string;
3071
+ finishedAt: string | null;
3072
+ error: {
3073
+ code: string;
3074
+ message: string;
3075
+ retryable: boolean;
3076
+ } | null;
3077
+ };
2573
3078
  export type RigVersion = {
2574
3079
  id: string;
2575
3080
  rigId: string;
@@ -2580,6 +3085,7 @@ export type RigVersion = {
2580
3085
  credentialHooks: string[];
2581
3086
  defaultVariableSetIds: string[];
2582
3087
  changelog: string | null;
3088
+ providerImages: Partial<Record<SandboxBackend, RigProviderImage>>;
2583
3089
  createdBy: string | null;
2584
3090
  active: boolean;
2585
3091
  createdAt: string;
@@ -2588,6 +3094,32 @@ export type RigVerificationHealth = {
2588
3094
  checkHealth: "passing" | "failing" | "unknown";
2589
3095
  lastVerifiedAt: string | null;
2590
3096
  };
3097
+ /**
3098
+ * Workspace-shared channel organizing root sessions ("workstreams") by work
3099
+ * type in the rail. Pure organizational metadata.
3100
+ */
3101
+ export type Channel = {
3102
+ id: string;
3103
+ accountId: string;
3104
+ workspaceId: string;
3105
+ name: string;
3106
+ description: string | null;
3107
+ createdBy: string | null;
3108
+ createdAt: string;
3109
+ updatedAt: string;
3110
+ };
3111
+ export type CreateChannelRequest = {
3112
+ name: string;
3113
+ description?: string;
3114
+ };
3115
+ export type UpdateChannelRequest = {
3116
+ name?: string;
3117
+ description?: string | null;
3118
+ };
3119
+ /** Re-files one session; null moves it back to the unfiled inbox. */
3120
+ export type UpdateSessionChannelRequest = {
3121
+ channelId: string | null;
3122
+ };
2591
3123
  export type Rig = {
2592
3124
  id: string;
2593
3125
  accountId: string;
@@ -2680,7 +3212,9 @@ export type FileAsset = {
2680
3212
  export declare const RETAINED_OUTPUT_DEFAULT_PAGE_BYTES: number;
2681
3213
  export declare const RETAINED_OUTPUT_MAX_PAGE_BYTES: number;
2682
3214
  export declare const COMPUTER_SCREENSHOT_MAX_BYTES: number;
2683
- export type RetainedOutputKind = "tool_result" | "assistant_completion" | "internal_update" | "event_media" | "computer_screenshot" | "file";
3215
+ export declare const GENERATED_IMAGE_MAX_BYTES: number;
3216
+ export declare const GENERATED_VIDEO_MAX_BYTES: number;
3217
+ export type RetainedOutputKind = "tool_result" | "assistant_completion" | "internal_update" | "event_media" | "computer_screenshot" | "generated_image" | "generated_video" | "file";
2684
3218
  export type RetainedOutputUnavailableReason = "not_retained" | "pending" | "failed" | "expired" | "deleted" | "missing_storage" | "storage_write_failed" | "quota_exceeded" | "invalid_content" | "oversized" | "unsupported";
2685
3219
  export type RetainedArtifactReference = {
2686
3220
  available: true;
@@ -2714,6 +3248,114 @@ export type RetainedArtifactUnavailable = {
2714
3248
  reason: RetainedOutputUnavailableReason;
2715
3249
  };
2716
3250
  export type RetainedArtifactMetadata = RetainedArtifactReference | RetainedArtifactUnavailable;
3251
+ export type GeneratedImageReceipt = {
3252
+ type: "generated_image";
3253
+ artifact: RetainedArtifactReference;
3254
+ sandboxPath: string;
3255
+ };
3256
+ export type VideoGenerationSourceMode = "text" | "first_frame" | "first_and_last_frames" | "image_reference" | "video_reference";
3257
+ export type VideoGenerationResolution = "480p" | "720p";
3258
+ export type VideoGenerationAspectRatio = "16:9" | "4:3" | "1:1" | "3:4" | "9:16" | "21:9" | "adaptive";
3259
+ export type VideoGenerationModelCapability = {
3260
+ modelId: string;
3261
+ label: string;
3262
+ providerLabel: string;
3263
+ sourceModes: VideoGenerationSourceMode[];
3264
+ resolutions: VideoGenerationResolution[];
3265
+ aspectRatios: VideoGenerationAspectRatio[];
3266
+ duration: {
3267
+ minSeconds: number;
3268
+ maxSeconds: number;
3269
+ stepSeconds: number;
3270
+ };
3271
+ supportsAudio: boolean;
3272
+ };
3273
+ export type VideoGenerationCapabilities = {
3274
+ schemaVersion: 1;
3275
+ capabilityRevision: string;
3276
+ defaultModelId: string;
3277
+ models: VideoGenerationModelCapability[];
3278
+ };
3279
+ export type VideoGenerationPolicy = {
3280
+ schemaVersion: 1;
3281
+ revision: number;
3282
+ fundingSource: VideoGenerationFundingSource;
3283
+ enabledModelIds: string[];
3284
+ defaultModelId: string | null;
3285
+ };
3286
+ export type UpdateVideoGenerationPolicyRequest = {
3287
+ expectedRevision: number;
3288
+ fundingSource: VideoGenerationFundingSource;
3289
+ enabledModelIds: string[];
3290
+ defaultModelId: string | null;
3291
+ };
3292
+ export type VideoGenerationFundingSource = "opengeni_credits" | "workspace_gateway" | "supergrok_subscription";
3293
+ export type VideoGenerationFundingOption = {
3294
+ source: VideoGenerationFundingSource;
3295
+ label: string;
3296
+ description: string;
3297
+ available: boolean;
3298
+ unavailableReason: string | null;
3299
+ };
3300
+ export type WorkspaceVideoGenerationSettings = {
3301
+ schemaVersion: 1;
3302
+ policy: VideoGenerationPolicy;
3303
+ fundingOptions: VideoGenerationFundingOption[];
3304
+ availableModels: VideoGenerationModelCapability[];
3305
+ capabilities: VideoGenerationCapabilities | null;
3306
+ };
3307
+ export type GeneratedVideoFacts = {
3308
+ durationSeconds: number;
3309
+ width: number;
3310
+ height: number;
3311
+ fps: number;
3312
+ hasAudio: boolean;
3313
+ videoCodec: "h264";
3314
+ audioCodec: "aac" | null;
3315
+ };
3316
+ export type GeneratedVideoReceipt = {
3317
+ type: "generated_video";
3318
+ schemaVersion: 1;
3319
+ operationId: string;
3320
+ artifact: RetainedArtifactReference;
3321
+ video: GeneratedVideoFacts;
3322
+ sandboxPath: string;
3323
+ };
3324
+ export type VideoGenerationTerminalFailureStatus = "provider_failed" | "retention_failed" | "cancelled_before_submit" | "outcome_unknown";
3325
+ export type MediaGenerationResult = {
3326
+ type: "media_generation_result";
3327
+ schemaVersion: 1;
3328
+ status: "ready";
3329
+ operationId: string;
3330
+ receipt: GeneratedVideoReceipt;
3331
+ } | {
3332
+ type: "media_generation_result";
3333
+ schemaVersion: 1;
3334
+ status: VideoGenerationTerminalFailureStatus;
3335
+ operationId: string;
3336
+ boundedPublicReason: string;
3337
+ };
3338
+ export type VideoGenerationPublicStatus = "preparing" | "prepared" | "accepted" | "provider_started" | "retaining" | "completed" | VideoGenerationTerminalFailureStatus;
3339
+ export type VideoGenerationOperationSummary = {
3340
+ schemaVersion: 1;
3341
+ operationId: string;
3342
+ modelId: string;
3343
+ status: VideoGenerationPublicStatus;
3344
+ createdAt: string;
3345
+ updatedAt: string;
3346
+ terminal: MediaGenerationResult | null;
3347
+ };
3348
+ /** Ephemeral source minted for native browser playback; never persist the URL. */
3349
+ export type VideoArtifactPlaybackSource = {
3350
+ schemaVersion: 1;
3351
+ artifactId: string;
3352
+ url: string;
3353
+ expiresAt: string;
3354
+ contentType: "video/mp4";
3355
+ sizeBytes: number;
3356
+ sha256: string;
3357
+ acceptRanges: "bytes";
3358
+ };
2717
3359
  export type RetainedArtifactContentOptions = {
2718
3360
  /** One RFC-style bytes range, for example `bytes=1048576-2097151`. */
2719
3361
  range?: string | undefined;
@@ -2727,16 +3369,21 @@ export type RetainedArtifactContent = {
2727
3369
  contentRange: string | null;
2728
3370
  acceptRanges: "bytes";
2729
3371
  };
2730
- export type RetainedScreenshotDownloadOptions = {
3372
+ export type RetainedArtifactDownloadOptions = {
2731
3373
  signal?: AbortSignal | undefined;
2732
3374
  /** Retry transient range failures; bounded to 0..3, default 2. */
2733
3375
  maxRetries?: number | undefined;
2734
3376
  };
3377
+ export type RetainedScreenshotDownloadOptions = RetainedArtifactDownloadOptions;
2735
3378
  export type RetainedScreenshotDownload = {
2736
3379
  metadata: RetainedArtifactMetadata;
2737
3380
  /** Null when metadata truth says the screenshot is unavailable. */
2738
3381
  bytes: Uint8Array | null;
2739
3382
  };
3383
+ export type RetainedArtifactDownload = {
3384
+ artifact: RetainedArtifactReference;
3385
+ bytes: Uint8Array;
3386
+ };
2740
3387
  export type CreateFileUploadRequest = {
2741
3388
  filename: string;
2742
3389
  contentType: string;
@@ -3015,6 +3662,43 @@ export type CapabilityPackVariableSetSpec = {
3015
3662
  requiredVariables: string[];
3016
3663
  required: boolean;
3017
3664
  };
3665
+ export type CapabilityPackComponentReference = {
3666
+ key: string;
3667
+ kind: "plugin";
3668
+ pluginKey: string;
3669
+ version: string;
3670
+ manifestDigest: string;
3671
+ required: boolean;
3672
+ } | {
3673
+ key: string;
3674
+ kind: "skill";
3675
+ capabilityId: string;
3676
+ contentSha256: string;
3677
+ required: boolean;
3678
+ } | {
3679
+ key: string;
3680
+ kind: "integration";
3681
+ capabilityId: string;
3682
+ instanceKey: string;
3683
+ revisionId: string;
3684
+ contentSha256: string;
3685
+ required: boolean;
3686
+ } | {
3687
+ key: string;
3688
+ kind: "facet";
3689
+ capabilityId: string;
3690
+ instanceKey: string;
3691
+ facetKey: string;
3692
+ bindingKey: string;
3693
+ configDigest: string;
3694
+ required: boolean;
3695
+ };
3696
+ export type CapabilityPackRigRequirement = {
3697
+ description?: string | undefined;
3698
+ required: boolean;
3699
+ rigId?: string | undefined;
3700
+ requireVerified: boolean;
3701
+ };
3018
3702
  export type CapabilityPack = {
3019
3703
  id: string;
3020
3704
  name: string;
@@ -3029,6 +3713,8 @@ export type CapabilityPack = {
3029
3713
  } | undefined;
3030
3714
  } | undefined;
3031
3715
  skills: CapabilityPackSkill[];
3716
+ components: CapabilityPackComponentReference[];
3717
+ rig?: CapabilityPackRigRequirement | undefined;
3032
3718
  tools: ToolRef[];
3033
3719
  connectors: CapabilityPackConnector[];
3034
3720
  knowledge: CapabilityPackKnowledge[];
@@ -3055,6 +3741,43 @@ export type RegisterCapabilityPackRequest = {
3055
3741
  description?: string | undefined;
3056
3742
  files: CapabilityPackSkillFile[];
3057
3743
  }[] | undefined;
3744
+ components?: ({
3745
+ key: string;
3746
+ kind: "plugin";
3747
+ pluginKey: string;
3748
+ version: string;
3749
+ manifestDigest: string;
3750
+ required?: boolean | undefined;
3751
+ } | {
3752
+ key: string;
3753
+ kind: "skill";
3754
+ capabilityId: string;
3755
+ contentSha256: string;
3756
+ required?: boolean | undefined;
3757
+ } | {
3758
+ key: string;
3759
+ kind: "integration";
3760
+ capabilityId: string;
3761
+ instanceKey: string;
3762
+ revisionId: string;
3763
+ contentSha256: string;
3764
+ required?: boolean | undefined;
3765
+ } | {
3766
+ key: string;
3767
+ kind: "facet";
3768
+ capabilityId: string;
3769
+ instanceKey: string;
3770
+ facetKey: string;
3771
+ bindingKey: string;
3772
+ configDigest: string;
3773
+ required?: boolean | undefined;
3774
+ })[] | undefined;
3775
+ rig?: {
3776
+ description?: string | undefined;
3777
+ required?: boolean | undefined;
3778
+ rigId?: string | undefined;
3779
+ requireVerified?: boolean | undefined;
3780
+ } | undefined;
3058
3781
  tools?: ToolRef[] | undefined;
3059
3782
  connectors?: {
3060
3783
  id: string;
@@ -3096,13 +3819,18 @@ export type WorkspaceRegisteredPack = {
3096
3819
  createdAt: string;
3097
3820
  updatedAt: string;
3098
3821
  };
3099
- export type PackInstallationStatus = "active" | "disabled";
3822
+ export type PackInstallationStatus = "installing" | "active" | "needs_attention" | "disabled";
3100
3823
  export type PackInstallation = {
3101
3824
  id: string;
3102
3825
  accountId: string;
3103
3826
  workspaceId: string;
3104
3827
  packId: string;
3105
3828
  status: PackInstallationStatus;
3829
+ version: number;
3830
+ manifestSnapshot: CapabilityPack | null;
3831
+ manifestDigest: string | null;
3832
+ selectedRigId: string | null;
3833
+ installedBySubjectId: string | null;
3106
3834
  metadata: Record<string, unknown>;
3107
3835
  enabledAt: string;
3108
3836
  updatedAt: string;
@@ -3113,6 +3841,73 @@ export type EnablePackRequest = {
3113
3841
  environmentId?: string | undefined;
3114
3842
  metadata?: Record<string, unknown> | undefined;
3115
3843
  };
3844
+ export type PackComponentResolutionStatus = "ready" | "missing" | "mismatch";
3845
+ export type PackComponentResolution = {
3846
+ key: string;
3847
+ kind: "plugin" | "skill" | "integration" | "facet" | "inline_skill";
3848
+ capabilityId: string;
3849
+ required: boolean;
3850
+ status: PackComponentResolutionStatus;
3851
+ expectedDigest: string;
3852
+ actualDigest: string | null;
3853
+ resolvedId: string | null;
3854
+ label: string;
3855
+ };
3856
+ export type PackRigResolution = {
3857
+ required: boolean;
3858
+ status: "not_required" | "ready" | "missing" | "mismatch" | "unverified";
3859
+ requestedRigId: string | null;
3860
+ rigId: string | null;
3861
+ rigVersionId: string | null;
3862
+ name: string | null;
3863
+ image: string | null;
3864
+ };
3865
+ export type PreviewPackInstallationRequest = {
3866
+ rigId?: string | undefined;
3867
+ variableSetId?: string | undefined;
3868
+ };
3869
+ export type PackInstallationPreview = {
3870
+ packId: string;
3871
+ packVersion: string;
3872
+ manifestDigest: string;
3873
+ installationVersion: number | null;
3874
+ action: "install" | "update" | "repair";
3875
+ ready: boolean;
3876
+ blockers: string[];
3877
+ components: PackComponentResolution[];
3878
+ rig: PackRigResolution;
3879
+ variableSetId: string | null;
3880
+ legacyInlineSkillCount: number;
3881
+ legacySandboxImage: string | null;
3882
+ };
3883
+ export type InstallPackRequest = {
3884
+ expectedManifestDigest: string;
3885
+ expectedInstallationVersion?: number | undefined;
3886
+ rigId?: string | undefined;
3887
+ variableSetId?: string | undefined;
3888
+ idempotencyKey: string;
3889
+ metadata?: Record<string, unknown> | undefined;
3890
+ };
3891
+ export type PackUninstallPreview = {
3892
+ packId: string;
3893
+ installed: boolean;
3894
+ installationVersion: number | null;
3895
+ components: Array<{
3896
+ key: string;
3897
+ kind: "plugin" | "skill" | "integration" | "facet" | "inline_skill";
3898
+ capabilityId: string;
3899
+ retainedByOtherOwners: boolean;
3900
+ }>;
3901
+ };
3902
+ export type UninstallPackRequest = {
3903
+ expectedInstallationVersion: number;
3904
+ idempotencyKey: string;
3905
+ };
3906
+ export type UninstallPackResult = {
3907
+ packId: string;
3908
+ status: "not_installed" | "uninstalled";
3909
+ retainedComponents: string[];
3910
+ };
3116
3911
  export type ListPacksResponse = {
3117
3912
  packs: CapabilityPack[];
3118
3913
  installations: PackInstallation[];
@@ -3126,6 +3921,15 @@ export type CapabilitySource = "built_in" | "library" | "configured" | "public_r
3126
3921
  export type CapabilityInstallationStatus = "active" | "disabled";
3127
3922
  export type CapabilityCatalogAuthKind = "oauth2" | "api_key" | "none" | "unknown";
3128
3923
  export type CapabilityCatalogTier = "verified" | "community";
3924
+ export type CapabilityLifecycleStatus = "available" | "installed" | "connected" | "ready" | "needs_attention" | "unavailable" | "managed";
3925
+ export type CapabilityReadiness = "ready" | "setup_required" | "attention" | "unavailable";
3926
+ export type CapabilityAction = "install" | "connect" | "configure" | "update" | "repair" | "disconnect" | "uninstall" | "inspect";
3927
+ export type CapabilityLifecycle = {
3928
+ status: CapabilityLifecycleStatus;
3929
+ readiness: CapabilityReadiness;
3930
+ detail: string | null;
3931
+ managedBy: "deployment" | "platform" | "workspace" | null;
3932
+ };
3129
3933
  export type CapabilityRuntime = {
3130
3934
  available: boolean;
3131
3935
  mcpServerId?: string | undefined;
@@ -3165,7 +3969,11 @@ export type CapabilityCatalogItem = {
3165
3969
  staleAt: string | null;
3166
3970
  tools: ToolRef[];
3167
3971
  runtime: CapabilityRuntime;
3972
+ lifecycle: CapabilityLifecycle;
3973
+ actions: CapabilityAction[];
3974
+ /** @deprecated Use lifecycle and actions. */
3168
3975
  enabled: boolean;
3976
+ /** @deprecated Use lifecycle.detail. */
3169
3977
  enabledReason: string | null;
3170
3978
  /** The connection backing this enabled installation, or null when none is involved. */
3171
3979
  connectionRef: {
@@ -3196,7 +4004,7 @@ export type CapabilityCatalogResponse = {
3196
4004
  };
3197
4005
  export type CreateCapabilityCatalogItemRequest = {
3198
4006
  id?: string | undefined;
3199
- kind: Exclude<CapabilityKind, "pack">;
4007
+ kind: "mcp";
3200
4008
  source?: CapabilitySource | undefined;
3201
4009
  name: string;
3202
4010
  description?: string | undefined;
@@ -3218,20 +4026,468 @@ export type EnableCapabilityRequest = {
3218
4026
  * API (responses expose header names only).
3219
4027
  */
3220
4028
  headers?: Record<string, string> | undefined;
3221
- /**
3222
- * Initial variableSet attachment for kind=pack capabilities — mirrors the
3223
- * dedicated POST /packs/:id/enable body. Required to enable an
3224
- * variableSet.required pack through this unified path; ignored otherwise.
3225
- */
3226
- variableSetId?: string | undefined;
3227
- /** @deprecated use variableSetId */
3228
- environmentId?: string | undefined;
3229
4029
  };
3230
4030
  export type DiscoverMcpCapabilitiesResponse = {
3231
4031
  items: CapabilityCatalogItem[];
3232
4032
  source: "official_mcp_registry";
3233
4033
  sourceUrl: string;
3234
4034
  };
4035
+ export type SkillImportSource = "github" | "skills_sh";
4036
+ export type SkillInstallationSource = "library" | "github" | "skills_sh" | "pack";
4037
+ export type PreviewSkillImportRequest = {
4038
+ url: string;
4039
+ };
4040
+ export type SkillImportFileSummary = {
4041
+ path: string;
4042
+ byteSize: number;
4043
+ contentSha256: string;
4044
+ };
4045
+ export type SkillImportPreview = {
4046
+ source: SkillImportSource;
4047
+ sourceUrl: string;
4048
+ repositoryUrl: string;
4049
+ owner: string;
4050
+ repository: string;
4051
+ sourcePath: string;
4052
+ sourceCommit: string;
4053
+ name: string;
4054
+ description: string;
4055
+ contentSha256: string;
4056
+ totalBytes: number;
4057
+ files: SkillImportFileSummary[];
4058
+ warnings: string[];
4059
+ installed: boolean;
4060
+ installationVersion: number | null;
4061
+ };
4062
+ export type InstallSkillRequest = {
4063
+ url: string;
4064
+ expectedSourceCommit: string;
4065
+ expectedContentSha256: string;
4066
+ expectedInstallationVersion?: number | undefined;
4067
+ };
4068
+ export type InstallLibrarySkillRequest = {
4069
+ expectedVersion: string;
4070
+ expectedContentSha256: string;
4071
+ expectedInstallationVersion?: number | undefined;
4072
+ };
4073
+ export type InstalledSkill = {
4074
+ capabilityId: string;
4075
+ pluginId: string;
4076
+ pluginVersionId: string;
4077
+ facetId: string;
4078
+ pluginInstallationId: string;
4079
+ facetInstallationId: string;
4080
+ installationVersion: number;
4081
+ source: SkillInstallationSource;
4082
+ version: string;
4083
+ sourceUrl: string;
4084
+ sourceCommit: string;
4085
+ contentSha256: string;
4086
+ name: string;
4087
+ status: "installed";
4088
+ };
4089
+ export type CapabilityComponentOwner = {
4090
+ kind: "direct" | "plugin" | "pack" | "migration";
4091
+ id: string;
4092
+ removable: boolean;
4093
+ };
4094
+ export type InstalledSkillSummary = {
4095
+ capabilityId: string;
4096
+ pluginKey: string;
4097
+ installationVersion: number;
4098
+ name: string;
4099
+ description: string;
4100
+ category: string;
4101
+ tags: string[];
4102
+ provenance: string;
4103
+ source: SkillInstallationSource;
4104
+ version: string;
4105
+ sourceUrl: string;
4106
+ repositoryUrl: string;
4107
+ sourceCommit: string;
4108
+ sourcePath: string;
4109
+ contentSha256: string;
4110
+ fileCount: number;
4111
+ totalBytes: number;
4112
+ license: string | null;
4113
+ installedAt: string;
4114
+ updatedAt: string;
4115
+ owners: CapabilityComponentOwner[];
4116
+ };
4117
+ export type ListInstalledSkillsResponse = {
4118
+ skills: InstalledSkillSummary[];
4119
+ };
4120
+ export type SkillUninstallPreview = {
4121
+ capabilityId: string;
4122
+ installed: boolean;
4123
+ installationVersion: number | null;
4124
+ directOwner: CapabilityComponentOwner | null;
4125
+ remainingOwners: CapabilityComponentOwner[];
4126
+ removesRuntimeSkill: boolean;
4127
+ };
4128
+ export type UninstallSkillRequest = {
4129
+ expectedInstallationVersion: number;
4130
+ };
4131
+ export type UninstallSkillResult = {
4132
+ capabilityId: string;
4133
+ status: "not_installed" | "uninstalled" | "retained_by_other_owners";
4134
+ remainingOwners: CapabilityComponentOwner[];
4135
+ };
4136
+ export type ApiIntegrationProtocol = "openapi" | "graphql";
4137
+ export type IntegrationDefinitionProvenance = "curated" | "workspace";
4138
+ export type IntegrationFacetKind = "tools" | "knowledge_source" | "inbound_trigger" | "delivery_destination" | "identity_link";
4139
+ export type IntegrationFacetStatus = "active" | "paused" | "needs_attention" | "disabled";
4140
+ export type IntegrationFacetDefinitionSummary = {
4141
+ facetKey: string;
4142
+ kind: Exclude<IntegrationFacetKind, "tools">;
4143
+ configSchema: Record<string, unknown>;
4144
+ capabilities: Record<string, unknown>;
4145
+ };
4146
+ export type IntegrationFacetBindingSummary = {
4147
+ id: string;
4148
+ facetKey: string;
4149
+ kind: Exclude<IntegrationFacetKind, "tools">;
4150
+ bindingKey: string;
4151
+ displayName: string;
4152
+ connectionId: string | null;
4153
+ status: IntegrationFacetStatus;
4154
+ config: Record<string, unknown>;
4155
+ version: number;
4156
+ hasCursor: boolean;
4157
+ lastSuccessAt: string | null;
4158
+ lastErrorCode: string | null;
4159
+ createdAt: string;
4160
+ updatedAt: string;
4161
+ };
4162
+ export type IntegrationInstanceFacetsResponse = {
4163
+ capabilityId: string;
4164
+ instanceKey: string;
4165
+ providerDomain: string;
4166
+ connectionId: string | null;
4167
+ facets: {
4168
+ definition: IntegrationFacetDefinitionSummary;
4169
+ binding: IntegrationFacetBindingSummary | null;
4170
+ }[];
4171
+ };
4172
+ export type UpsertIntegrationFacetRequest = {
4173
+ displayName: string;
4174
+ config?: Record<string, unknown> | undefined;
4175
+ expectedVersion?: number | undefined;
4176
+ idempotencyKey: string;
4177
+ };
4178
+ export type MutateIntegrationFacetRequest = {
4179
+ expectedVersion: number;
4180
+ idempotencyKey: string;
4181
+ };
4182
+ export type IntegrationFacetMutationResult = {
4183
+ capabilityId: string;
4184
+ instanceKey: string;
4185
+ facetKey: string;
4186
+ status: "configured" | "paused" | "active";
4187
+ binding: IntegrationFacetBindingSummary;
4188
+ };
4189
+ export type IntegrationFacetRemovalResult = {
4190
+ capabilityId: string;
4191
+ instanceKey: string;
4192
+ facetKey: string;
4193
+ status: "not_configured" | "removed" | "retained_by_other_owners";
4194
+ binding: IntegrationFacetBindingSummary | null;
4195
+ remainingOwners: CapabilityComponentOwner[];
4196
+ };
4197
+ export type IntegrationDefinitionSummary = {
4198
+ id: string;
4199
+ name: string;
4200
+ summary: string;
4201
+ protocol: "openapi";
4202
+ provider: {
4203
+ id: "google" | "microsoft";
4204
+ domain: string;
4205
+ };
4206
+ authentication: {
4207
+ kind: "oauth2";
4208
+ scopes: string[];
4209
+ };
4210
+ facets: IntegrationFacetDefinitionSummary[];
4211
+ };
4212
+ export type ListIntegrationDefinitionsResponse = {
4213
+ definitions: IntegrationDefinitionSummary[];
4214
+ };
4215
+ export type IntegrationSource = {
4216
+ kind: "definition";
4217
+ definitionId: string;
4218
+ } | {
4219
+ kind: "openapi";
4220
+ url: string;
4221
+ baseUrl?: string | undefined;
4222
+ } | {
4223
+ kind: "graphql";
4224
+ endpoint: string;
4225
+ name?: string | undefined;
4226
+ } | {
4227
+ kind: "auto";
4228
+ url: string;
4229
+ baseUrl?: string | undefined;
4230
+ };
4231
+ export type PreviewApiIntegrationRequest = {
4232
+ source: IntegrationSource;
4233
+ connectionId?: string | undefined;
4234
+ ownership?: ConnectionOwnership | undefined;
4235
+ };
4236
+ export type ApiIntegrationOAuthStartRequest = {
4237
+ definitionId: string;
4238
+ ownership?: ConnectionOwnership | undefined;
4239
+ connectionId?: string | undefined;
4240
+ returnPath?: string | undefined;
4241
+ };
4242
+ export type ApiIntegrationAuthPreview = {
4243
+ kind: "none";
4244
+ } | {
4245
+ kind: "oauth2";
4246
+ providerDomain: string;
4247
+ scopes: string[];
4248
+ } | {
4249
+ kind: "api_key";
4250
+ providerDomain: string;
4251
+ carrier: "header" | "query" | "cookie";
4252
+ name: string;
4253
+ } | {
4254
+ kind: "http";
4255
+ providerDomain: string;
4256
+ scheme: string;
4257
+ };
4258
+ export type ApiIntegrationToolPreview = {
4259
+ id: string;
4260
+ operationKey: string;
4261
+ name: string;
4262
+ description: string;
4263
+ safety: "read" | "write" | "destructive";
4264
+ approvalMode: "never" | "ask";
4265
+ deprecated: boolean;
4266
+ };
4267
+ export type ApiIntegrationPreview = {
4268
+ source: IntegrationSource;
4269
+ definitionId: string;
4270
+ definitionProvenance: IntegrationDefinitionProvenance;
4271
+ protocol: ApiIntegrationProtocol;
4272
+ capabilityId: string;
4273
+ pluginKey: string;
4274
+ serverId: string;
4275
+ name: string;
4276
+ description: string | null;
4277
+ provider: string | null;
4278
+ providerDomain: string;
4279
+ baseUrl: string;
4280
+ sourceUrl: string | null;
4281
+ revisionId: string;
4282
+ contentSha256: string;
4283
+ auth: ApiIntegrationAuthPreview;
4284
+ connectionId: string | null;
4285
+ connectionOwnership: ConnectionOwnership | null;
4286
+ tools: ApiIntegrationToolPreview[];
4287
+ warnings: string[];
4288
+ };
4289
+ export type InstallApiIntegrationRequest = {
4290
+ source: IntegrationSource;
4291
+ expectedRevisionId: string;
4292
+ expectedContentSha256: string;
4293
+ connectionId?: string | undefined;
4294
+ ownership?: ConnectionOwnership | undefined;
4295
+ instanceKey?: string | undefined;
4296
+ displayName?: string | undefined;
4297
+ expectedInstanceVersion?: number | undefined;
4298
+ allowedTools?: string[] | undefined;
4299
+ };
4300
+ export type InstalledApiIntegration = {
4301
+ capabilityId: string;
4302
+ pluginId: string;
4303
+ pluginVersionId: string;
4304
+ integrationFacetId: string;
4305
+ apiFacetId: string;
4306
+ pluginInstallationId: string;
4307
+ integrationFacetInstallationId: string;
4308
+ apiFacetInstallationId: string;
4309
+ installationVersion: number;
4310
+ instanceId: string;
4311
+ instanceKey: string;
4312
+ displayName: string;
4313
+ instanceVersion: number;
4314
+ revisionId: string;
4315
+ serverId: string;
4316
+ status: "installed";
4317
+ };
4318
+ export type ApiIntegrationInstallationSummary = {
4319
+ capabilityId: string;
4320
+ pluginKey: string;
4321
+ installationVersion: number;
4322
+ instanceId: string;
4323
+ instanceKey: string;
4324
+ displayName: string;
4325
+ instanceVersion: number;
4326
+ serverId: string;
4327
+ name: string;
4328
+ description: string | null;
4329
+ protocol: ApiIntegrationProtocol;
4330
+ definitionId: string;
4331
+ definitionProvenance: IntegrationDefinitionProvenance;
4332
+ providerDomain: string;
4333
+ baseUrl: string;
4334
+ sourceUrl: string | null;
4335
+ connected: boolean;
4336
+ requiresConnection: boolean;
4337
+ connectionId: string | null;
4338
+ ownership: "workspace" | "personal" | "none";
4339
+ allowedTools: string[];
4340
+ toolCount: number;
4341
+ approvalRequiredToolCount: number;
4342
+ revisionId: string;
4343
+ contentSha256: string;
4344
+ };
4345
+ export type ListApiIntegrationsResponse = {
4346
+ integrations: ApiIntegrationInstallationSummary[];
4347
+ };
4348
+ export type ApiIntegrationUninstallPreview = {
4349
+ capabilityId: string;
4350
+ instanceKey: string;
4351
+ displayName: string | null;
4352
+ installed: boolean;
4353
+ installationVersion: number | null;
4354
+ instanceVersion: number | null;
4355
+ directOwner: CapabilityComponentOwner | null;
4356
+ remainingOwners: CapabilityComponentOwner[];
4357
+ removesRuntimeIntegration: boolean;
4358
+ removesDefinition: boolean;
4359
+ };
4360
+ export type UninstallApiIntegrationRequest = {
4361
+ expectedInstallationVersion: number;
4362
+ expectedInstanceVersion: number;
4363
+ };
4364
+ export type UninstallApiIntegrationResult = {
4365
+ capabilityId: string;
4366
+ instanceKey: string;
4367
+ status: "not_installed" | "uninstalled" | "retained_by_other_owners";
4368
+ remainingOwners: CapabilityComponentOwner[];
4369
+ definitionStatus: "retained" | "disabled";
4370
+ };
4371
+ export type PluginManifestComponent = {
4372
+ key: string;
4373
+ kind: "skill";
4374
+ url: string;
4375
+ } | {
4376
+ key: string;
4377
+ kind: "integration";
4378
+ source: IntegrationSource;
4379
+ } | {
4380
+ key: string;
4381
+ kind: "mcp";
4382
+ serverId: string;
4383
+ };
4384
+ export type PluginManifest = {
4385
+ schemaVersion: 1;
4386
+ pluginKey: string;
4387
+ version: string;
4388
+ name: string;
4389
+ description: string;
4390
+ category: string;
4391
+ tags: string[];
4392
+ components: PluginManifestComponent[];
4393
+ };
4394
+ export type PluginComponentBinding = {
4395
+ connectionId?: string | undefined;
4396
+ instanceKey?: string | undefined;
4397
+ displayName?: string | undefined;
4398
+ };
4399
+ export type PreviewPluginRequest = {
4400
+ url: string;
4401
+ bindings?: Record<string, PluginComponentBinding> | undefined;
4402
+ };
4403
+ export type PluginComponentPreview = {
4404
+ key: string;
4405
+ kind: "skill" | "integration" | "mcp";
4406
+ name: string;
4407
+ capabilityId: string;
4408
+ digest: string;
4409
+ connectionRequired: boolean;
4410
+ connectionId: string | null;
4411
+ instanceKey: string | null;
4412
+ displayName: string | null;
4413
+ facts: Record<string, unknown>;
4414
+ };
4415
+ export type PluginUpdateDiff = {
4416
+ fromVersion: string | null;
4417
+ toVersion: string;
4418
+ added: string[];
4419
+ removed: string[];
4420
+ changed: string[];
4421
+ unchanged: string[];
4422
+ };
4423
+ export type PluginPreview = {
4424
+ sourceUrl: string;
4425
+ manifest: PluginManifest;
4426
+ manifestDigest: string;
4427
+ installed: boolean;
4428
+ installationVersion: number | null;
4429
+ components: PluginComponentPreview[];
4430
+ diff: PluginUpdateDiff;
4431
+ };
4432
+ export type InstallPluginRequest = {
4433
+ url: string;
4434
+ expectedManifestDigest: string;
4435
+ expectedComponents: Array<{
4436
+ key: string;
4437
+ digest: string;
4438
+ }>;
4439
+ bindings?: Record<string, PluginComponentBinding> | undefined;
4440
+ idempotencyKey: string;
4441
+ expectedInstallationVersion?: number | undefined;
4442
+ };
4443
+ export type InstalledPlugin = {
4444
+ pluginKey: string;
4445
+ version: string;
4446
+ pluginId: string;
4447
+ pluginVersionId: string;
4448
+ pluginInstallationId: string;
4449
+ installationVersion: number;
4450
+ componentCount: number;
4451
+ status: "installed";
4452
+ };
4453
+ export type PluginInstallationSummary = {
4454
+ pluginKey: string;
4455
+ version: string;
4456
+ name: string;
4457
+ description: string;
4458
+ category: string;
4459
+ tags: string[];
4460
+ sourceUrl: string | null;
4461
+ manifestDigest: string;
4462
+ installationVersion: number;
4463
+ componentCount: number;
4464
+ status: "active" | "needs_attention";
4465
+ installedAt: string;
4466
+ updatedAt: string;
4467
+ };
4468
+ export type ListInstalledPluginsResponse = {
4469
+ plugins: PluginInstallationSummary[];
4470
+ };
4471
+ export type PluginUninstallPreview = {
4472
+ pluginKey: string;
4473
+ installed: boolean;
4474
+ version: string | null;
4475
+ installationVersion: number | null;
4476
+ components: Array<{
4477
+ capabilityId: string;
4478
+ kind: "skill" | "integration" | "mcp";
4479
+ retainedByOtherOwners: boolean;
4480
+ }>;
4481
+ };
4482
+ export type UninstallPluginRequest = {
4483
+ expectedInstallationVersion: number;
4484
+ idempotencyKey: string;
4485
+ };
4486
+ export type UninstallPluginResult = {
4487
+ pluginKey: string;
4488
+ status: "not_installed" | "uninstalled";
4489
+ retainedComponents: string[];
4490
+ };
3235
4491
  export type GitHubRepository = {
3236
4492
  id: number;
3237
4493
  installationId: number;
@@ -3302,7 +4558,7 @@ export type BillingBalance = {
3302
4558
  currency: "usd";
3303
4559
  updatedAt: string;
3304
4560
  };
3305
- export declare const KNOWN_USAGE_EVENT_TYPES: readonly ["agent_run.created", "agent_run.completed", "model.tokens", "model.cost", "file.uploaded", "file.deleted", "document.indexed", "scheduled_task.fired", "api_key.request", "sandbox.warm_seconds", "sandbox.warm_cost"];
4561
+ export declare const KNOWN_USAGE_EVENT_TYPES: readonly ["agent_run.created", "agent_run.completed", "model.tokens", "model.cost", "file.uploaded", "file.deleted", "document.indexed", "scheduled_task.fired", "knowledge_source_sync.fired", "knowledge_source_sync.completed", "knowledge_source_sync.items", "knowledge_source_sync.bytes", "api_key.request", "sandbox.warm_seconds", "sandbox.warm_cost"];
3306
4562
  export type KnownUsageEventType = (typeof KNOWN_USAGE_EVENT_TYPES)[number];
3307
4563
  export type UsageEventType = KnownUsageEventType | (string & {});
3308
4564
  export type UsageEvent = {
@@ -3333,6 +4589,7 @@ export type BillingUsageResponse = {
3333
4589
  };
3334
4590
  export type InsightsRange = "today" | "week" | "month" | "ytd";
3335
4591
  export type InsightsBillingPath = "opengeni_credits" | "external";
4592
+ export type InsightsPricingSource = "configured_list_price" | "gateway_reported";
3336
4593
  export type InsightsModelUsageRow = {
3337
4594
  id: string;
3338
4595
  model: string;
@@ -3342,16 +4599,31 @@ export type InsightsModelUsageRow = {
3342
4599
  inputTokens: number;
3343
4600
  outputTokens: number;
3344
4601
  cachedTokens: number;
4602
+ cacheInputTokens: number;
3345
4603
  cacheWriteTokens: number;
3346
4604
  reasoningTokens: number;
4605
+ totalTokens: number;
4606
+ tokenKnownCalls: number;
4607
+ cacheKnownCalls: number;
3347
4608
  creditUsd: number;
4609
+ estimatedProviderUsd: number;
4610
+ estimatedProviderCostKnownCalls: number;
3348
4611
  };
3349
4612
  export type InsightsSeriesPoint = {
3350
4613
  label: string;
3351
4614
  modelCostUsd: number;
4615
+ estimatedProviderUsd: number;
4616
+ estimatedProviderCostKnownCalls: number;
3352
4617
  warmSeconds: number;
3353
4618
  inputTokens: number;
4619
+ outputTokens: number;
3354
4620
  cachedTokens: number;
4621
+ cacheInputTokens: number;
4622
+ cacheWriteTokens: number;
4623
+ reasoningTokens: number;
4624
+ totalTokens: number;
4625
+ tokenKnownCalls: number;
4626
+ cacheKnownCalls: number;
3355
4627
  cacheHitPct: number;
3356
4628
  calls: number;
3357
4629
  };
@@ -3368,9 +4640,12 @@ export type InsightsSpendDriver = {
3368
4640
  groupBy: "root_session" | "schedule";
3369
4641
  label: string;
3370
4642
  creditUsd: number;
4643
+ estimatedProviderUsd: number;
4644
+ estimatedProviderCostKnownCalls: number;
3371
4645
  tokens: number;
3372
4646
  cacheHitPct: number;
3373
4647
  pctOfCreditUsd: number;
4648
+ pctOfTokens: number;
3374
4649
  deltaUsdVsPrior: number;
3375
4650
  };
3376
4651
  export type InsightsWarmGroupRow = {
@@ -3406,16 +4681,42 @@ export type InsightsScheduleRow = {
3406
4681
  name: string;
3407
4682
  fires: number;
3408
4683
  creditUsd: number | null;
4684
+ estimatedProviderUsd: number | null;
4685
+ estimatedProviderCostKnownCalls: number | null;
3409
4686
  tokens: number | null;
3410
4687
  cacheHitPct: number | null;
3411
4688
  billing: InsightsBillingPath | null;
3412
4689
  };
4690
+ export type InsightsModelCallRow = {
4691
+ id: string;
4692
+ occurredAt: string;
4693
+ recordedAt: string;
4694
+ sessionId: string;
4695
+ sessionTitle: string;
4696
+ turnId: string;
4697
+ provider: string;
4698
+ providerApi: string;
4699
+ model: string;
4700
+ billing: InsightsBillingPath;
4701
+ inputTokens: number | null;
4702
+ outputTokens: number | null;
4703
+ cachedTokens: number | null;
4704
+ cacheWriteTokens: number | null;
4705
+ reasoningTokens: number | null;
4706
+ totalTokens: number | null;
4707
+ creditUsd: number;
4708
+ estimatedProviderUsd: number | null;
4709
+ pricingSource: InsightsPricingSource | null;
4710
+ };
3413
4711
  export type WorkspaceInsightsSnapshot = {
3414
4712
  range: InsightsRange;
3415
4713
  rangeLabel: string;
3416
4714
  priorLabel: string;
3417
4715
  seriesLabel: string;
3418
4716
  cacheSeriesLabel: string;
4717
+ windowStart: string;
4718
+ windowEnd: string;
4719
+ generatedAt: string;
3419
4720
  timezone: "UTC";
3420
4721
  models: InsightsModelUsageRow[];
3421
4722
  facets: InsightsModelFacet[];
@@ -3423,6 +4724,7 @@ export type WorkspaceInsightsSnapshot = {
3423
4724
  depth: InsightsDepthBucket[];
3424
4725
  drivers: InsightsSpendDriver[];
3425
4726
  schedules: InsightsScheduleRow[];
4727
+ recentCalls: InsightsModelCallRow[];
3426
4728
  warmSeconds: number;
3427
4729
  priorWarmSeconds: number;
3428
4730
  warmGroups: InsightsWarmGroupRow[];
@@ -3434,7 +4736,13 @@ export type WorkspaceInsightsSnapshot = {
3434
4736
  priorWorkspaceCreditUsd: number;
3435
4737
  creditUsd: number;
3436
4738
  priorCreditUsd: number;
4739
+ estimatedProviderUsd: number;
4740
+ priorEstimatedProviderUsd: number;
4741
+ estimatedProviderCostKnownCalls: number;
4742
+ priorEstimatedProviderCostKnownCalls: number;
4743
+ modelCalls: number;
3437
4744
  priorInputTokens: number;
4745
+ priorTotalTokens: number;
3438
4746
  priorCacheHitPct: number;
3439
4747
  priorCalls: number;
3440
4748
  goalsActive: number;
@@ -3475,6 +4783,7 @@ export type UserMessageEventInput = {
3475
4783
  clientEventId?: string | undefined;
3476
4784
  payload: {
3477
4785
  text: string;
4786
+ annotations?: SubmittedTimelineAnnotation[] | undefined;
3478
4787
  turnInstructions?: string | undefined;
3479
4788
  resources?: ResourceRef[] | undefined;
3480
4789
  model?: string | undefined;
@@ -3574,9 +4883,13 @@ export type RemoveEnrollmentResponse = {
3574
4883
  machineName: string | null;
3575
4884
  lastSeenAt: string | null;
3576
4885
  revokedAt: string | null;
3577
- code: "active_route" | "active_commands" | "active_lease" | "recovery_pending" | "not_selfhosted" | null;
4886
+ code: "active_route" | "active_commands" | "machine_home" | "active_lease" | "recovery_pending" | "not_selfhosted" | null;
3578
4887
  message: string;
3579
4888
  action: string;
4889
+ dependentSessions: Array<{
4890
+ id: string;
4891
+ title: string | null;
4892
+ }>;
3580
4893
  };
3581
4894
  /** POST /v1/workspaces/:ws/sessions/:sessionId/active-sandbox — swap a session's
3582
4895
  * active sandbox. `target` is a `MachineView.sandboxId`, or "session"/"default"