@opengeni/sdk 3.3.2 → 3.7.0-canary.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 (76) hide show
  1. package/README.md +80 -6
  2. package/dist/artifact-client.d.ts +4 -2
  3. package/dist/artifacts.d.ts +1 -1
  4. package/dist/artifacts.js +6 -6
  5. package/dist/browser.d.ts +5 -2
  6. package/dist/browser.js +14 -4
  7. package/dist/{chunk-YXQX7RQT.js → chunk-2E2BFEEN.js} +2 -2
  8. package/dist/{chunk-JUS2UYRP.js → chunk-3QDQTYOE.js} +3 -1
  9. package/dist/chunk-3QDQTYOE.js.map +1 -0
  10. package/dist/{chunk-C2H7HBNP.js → chunk-7S2MZ65L.js} +6 -6
  11. package/dist/chunk-FMLDFJ2Q.js +246 -0
  12. package/dist/chunk-FMLDFJ2Q.js.map +1 -0
  13. package/dist/{chunk-TRNI7KEO.js → chunk-IQTEPOI3.js} +228 -26
  14. package/dist/chunk-IQTEPOI3.js.map +1 -0
  15. package/dist/chunk-IRAEPLXG.js +350 -0
  16. package/dist/chunk-IRAEPLXG.js.map +1 -0
  17. package/dist/{chunk-QT3KFVDP.js → chunk-MPGVC7EO.js} +10 -2
  18. package/dist/chunk-MPGVC7EO.js.map +1 -0
  19. package/dist/{chunk-C4DJPZRU.js → chunk-OO5LPTO7.js} +14 -1
  20. package/dist/chunk-OO5LPTO7.js.map +1 -0
  21. package/dist/{chunk-KKRO2VCP.js → chunk-QTBAMHEF.js} +2 -2
  22. package/dist/client.d.ts +51 -11
  23. package/dist/codex-realtime-controller.js +2 -2
  24. package/dist/core.d.ts +5 -2
  25. package/dist/core.js +17 -7
  26. package/dist/document-authority.js +5 -5
  27. package/dist/editable-artifacts.js +4 -4
  28. package/dist/errors.d.ts +12 -0
  29. package/dist/github-repositories.d.ts +10 -0
  30. package/dist/github-repositories.js +36 -0
  31. package/dist/github-repositories.js.map +1 -0
  32. package/dist/index.d.ts +13 -6
  33. package/dist/index.js +99 -52
  34. package/dist/index.js.map +1 -1
  35. package/dist/interaction.js +2 -2
  36. package/dist/model-context.d.ts +49 -0
  37. package/dist/model-picker-order.d.ts +1 -0
  38. package/dist/model-picker-order.js +10 -0
  39. package/dist/model-picker-order.js.map +1 -0
  40. package/dist/proxy.d.ts +7 -5
  41. package/dist/realtime.js +2 -2
  42. package/dist/session-titles.d.ts +2 -28
  43. package/dist/site.d.ts +93 -0
  44. package/dist/site.js +35 -0
  45. package/dist/site.js.map +1 -0
  46. package/dist/stream.d.ts +2 -0
  47. package/dist/tools-FSTY4FAY.js +12 -0
  48. package/dist/tools-FSTY4FAY.js.map +1 -0
  49. package/dist/tools.d.ts +61 -0
  50. package/dist/types.d.ts +231 -9
  51. package/dist/workspace-artifacts.d.ts +26 -1
  52. package/package.json +14 -2
  53. package/src/artifact-client.ts +16 -1
  54. package/src/artifacts.ts +1 -0
  55. package/src/browser.ts +16 -0
  56. package/src/client.ts +332 -22
  57. package/src/core.ts +16 -0
  58. package/src/errors.ts +23 -0
  59. package/src/github-repositories.ts +60 -0
  60. package/src/index.ts +94 -1
  61. package/src/model-context.ts +69 -0
  62. package/src/model-picker-order.ts +6 -0
  63. package/src/proxy.ts +17 -6
  64. package/src/session-titles.ts +8 -82
  65. package/src/site.ts +544 -0
  66. package/src/stream.ts +29 -8
  67. package/src/tools.ts +396 -0
  68. package/src/types.ts +287 -10
  69. package/src/workspace-artifacts.ts +33 -2
  70. package/dist/chunk-C4DJPZRU.js.map +0 -1
  71. package/dist/chunk-JUS2UYRP.js.map +0 -1
  72. package/dist/chunk-QT3KFVDP.js.map +0 -1
  73. package/dist/chunk-TRNI7KEO.js.map +0 -1
  74. /package/dist/{chunk-YXQX7RQT.js.map → chunk-2E2BFEEN.js.map} +0 -0
  75. /package/dist/{chunk-C2H7HBNP.js.map → chunk-7S2MZ65L.js.map} +0 -0
  76. /package/dist/{chunk-KKRO2VCP.js.map → chunk-QTBAMHEF.js.map} +0 -0
package/dist/types.d.ts CHANGED
@@ -51,6 +51,74 @@ export type GatewayRealtimeConnectResponse = {
51
51
  instructions: string;
52
52
  replay: false;
53
53
  };
54
+ export type ToolGatewayIdentity = {
55
+ serverId: string;
56
+ toolName: string;
57
+ };
58
+ export type ToolGatewayCatalogEntry = {
59
+ identity: ToolGatewayIdentity;
60
+ modelName: string;
61
+ codemodePath: string[];
62
+ title?: string | undefined;
63
+ description?: string | undefined;
64
+ inputSchema: Record<string, unknown>;
65
+ outputSchema?: Record<string, unknown> | undefined;
66
+ annotations?: Record<string, unknown> | undefined;
67
+ icons?: Array<Record<string, unknown>> | undefined;
68
+ source: "opengeni" | "files" | "docs" | "mcp" | "codex_apps" | "interaction";
69
+ approval: "none" | "human" | "policy";
70
+ };
71
+ export type ToolGatewayCatalog = {
72
+ version: 1;
73
+ accountId: string;
74
+ workspaceId: string;
75
+ generation: number;
76
+ digest: string;
77
+ createdAt: string;
78
+ entries: ToolGatewayCatalogEntry[];
79
+ };
80
+ export type ToolGatewayResult = {
81
+ content: Array<{
82
+ type: string;
83
+ [key: string]: unknown;
84
+ }>;
85
+ structuredContent?: Record<string, unknown> | undefined;
86
+ isError?: boolean | undefined;
87
+ _meta?: Record<string, unknown> | undefined;
88
+ [key: string]: unknown;
89
+ };
90
+ export type ToolGatewayCallRequest = {
91
+ operationId?: string | undefined;
92
+ catalogDigest: string;
93
+ identity: ToolGatewayIdentity;
94
+ arguments: Record<string, unknown>;
95
+ siteArtifactId?: string | undefined;
96
+ siteVersionId?: string | undefined;
97
+ approvalToken?: string | undefined;
98
+ };
99
+ export type ToolGatewayApprovalRequest = {
100
+ operationId: string;
101
+ catalogDigest: string;
102
+ identity: ToolGatewayIdentity;
103
+ arguments: Record<string, unknown>;
104
+ };
105
+ export type ToolGatewayApprovalResponse = {
106
+ operationId: string;
107
+ catalogDigest: string;
108
+ identity: ToolGatewayIdentity;
109
+ approvalToken: string;
110
+ expiresAt: string;
111
+ };
112
+ export type ToolGatewayCallResponse = {
113
+ operationId: string;
114
+ catalogDigest: string;
115
+ result: ToolGatewayResult;
116
+ };
117
+ export type ToolGatewayDeclarationsResponse = {
118
+ catalogDigest: string;
119
+ moduleSpecifier: string;
120
+ source: string;
121
+ };
54
122
  export type ActivateCodexRealtimeConnectionRequest = {
55
123
  operationId: string;
56
124
  browserInstanceId: string;
@@ -442,6 +510,7 @@ export type McpConnectionAuthoritySelection = {
442
510
  };
443
511
  export type McpServerConnectionRef = {
444
512
  connectionId?: string | undefined;
513
+ authoritySource?: "host" | undefined;
445
514
  provider?: string | undefined;
446
515
  providerDomain: string;
447
516
  kind?: ConnectionKind | undefined;
@@ -494,6 +563,7 @@ export type CreateConnectionRequest = {
494
563
  grantedScopes?: string[] | undefined;
495
564
  expiresAt?: string | null | undefined;
496
565
  metadata?: Record<string, unknown> | undefined;
566
+ operationId?: string | undefined;
497
567
  };
498
568
  export type PersonalGitHubConnectionMetadata = {
499
569
  credentialRole: "opengeni_github_personal";
@@ -841,6 +911,8 @@ export type UpdateConnectionRequest = {
841
911
  grantedScopes?: string[] | undefined;
842
912
  expiresAt?: string | null | undefined;
843
913
  metadata?: Record<string, unknown> | undefined;
914
+ expectedVersion?: number | undefined;
915
+ operationId?: string | undefined;
844
916
  };
845
917
  export type ConnectionResponse = {
846
918
  connection: ConnectionMetadata;
@@ -1358,7 +1430,7 @@ export type SessionHumanInputRequest = {
1358
1430
  createdAt: string;
1359
1431
  updatedAt: string;
1360
1432
  };
1361
- export declare const SESSION_EVENT_TYPES: readonly ["session.created", "session.variable_sets.updated", "session.runtime.configured", "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", "turn.startup.phase.started", "turn.startup.phase.completed", "turn.startup.phase.failed", "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", "session.command.backgrounded", "session.command.finished", "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.held", "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.personal_resources.attached", "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"];
1433
+ export declare const SESSION_EVENT_TYPES: readonly ["session.created", "session.variable_sets.updated", "session.runtime.configured", "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", "turn.startup.phase.started", "turn.startup.phase.completed", "turn.startup.phase.failed", "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", "session.command.backgrounded", "session.command.finished", "session.wait.started", "session.wait.finished", "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.held", "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.personal_resources.attached", "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"];
1362
1434
  export type KnownSessionEventType = (typeof SESSION_EVENT_TYPES)[number];
1363
1435
  /**
1364
1436
  * Event types the SDK knows about today, kept open so a newer OpenGeni server
@@ -1371,6 +1443,8 @@ export type SessionEvent = {
1371
1443
  sessionId: string;
1372
1444
  /** Per-session sequence number: positive, contiguous, strictly increasing. */
1373
1445
  sequence: number;
1446
+ /** Server-owned durable high-water mark for a synthetic compact event. */
1447
+ coveredThrough?: number | undefined;
1374
1448
  type: SessionEventType;
1375
1449
  payload: unknown;
1376
1450
  occurredAt: string;
@@ -1486,7 +1560,9 @@ export type ToolAuthNeededPayload = {
1486
1560
  providerDomain: string;
1487
1561
  provider?: string | undefined;
1488
1562
  connectionId?: string | null | undefined;
1563
+ authoritySource?: "host" | undefined;
1489
1564
  reason: "missing_connection" | "expired" | "insufficient_scope" | "refresh_failed" | "personal_authority_unavailable" | "unsupported_auth" | "resource_scope_unavailable";
1565
+ hostReason?: "missing_connection" | "expired" | "insufficient_scope" | "refresh_failed" | "personal_authority_unavailable" | "unsupported_auth" | "resource_scope_unavailable" | undefined;
1490
1566
  scopes?: string[] | undefined;
1491
1567
  resource?: string | undefined;
1492
1568
  selectedResources?: Array<{
@@ -1549,7 +1625,7 @@ export type CodexFleetDecisionEventPayload = {
1549
1625
  actual: {
1550
1626
  outcome: "selected" | "waiting" | "none";
1551
1627
  candidateKey: string | null;
1552
- reason: "lease_reused" | "pin" | "rotation" | "active" | "all_capped" | "none";
1628
+ reason: "lease_reused" | "pin" | "rotation" | "active" | "all_capped" | "allocator_disabled" | "none";
1553
1629
  };
1554
1630
  comparison: CodexFleetShadowComparison;
1555
1631
  replay: {
@@ -1669,11 +1745,16 @@ export type FsTreeNode = {
1669
1745
  truncated: boolean;
1670
1746
  };
1671
1747
  export type FsEncoding = "utf8" | "base64";
1748
+ export type FileSystemRouteIdentity = {
1749
+ epoch: number;
1750
+ root: string;
1751
+ };
1672
1752
  export type FsListRequest = {
1673
1753
  path?: string;
1674
1754
  depth?: number;
1675
1755
  maxEntries?: number;
1676
1756
  includeHidden?: boolean;
1757
+ route?: FileSystemRouteIdentity;
1677
1758
  };
1678
1759
  export type FsListResponse = {
1679
1760
  root: FsTreeNode;
@@ -1690,6 +1771,7 @@ export type FsReadRequest = {
1690
1771
  path: string;
1691
1772
  encoding?: FsEncoding;
1692
1773
  maxBytes?: number;
1774
+ route?: FileSystemRouteIdentity;
1693
1775
  };
1694
1776
  export type FsReadResponse = {
1695
1777
  path: string;
@@ -1716,6 +1798,7 @@ export type FsWriteRequest = {
1716
1798
  content: string;
1717
1799
  overwrite?: boolean;
1718
1800
  createParents?: boolean;
1801
+ route?: FileSystemRouteIdentity;
1719
1802
  };
1720
1803
  export type FsWriteResponse = {
1721
1804
  path: string;
@@ -1725,6 +1808,7 @@ export type FsWriteResponse = {
1725
1808
  export type FsDeleteRequest = {
1726
1809
  path: string;
1727
1810
  recursive?: boolean;
1811
+ route?: FileSystemRouteIdentity;
1728
1812
  };
1729
1813
  export type FsDeleteResponse = {
1730
1814
  revision: number;
@@ -1734,6 +1818,7 @@ export type FsMoveRequest = {
1734
1818
  newPath: string;
1735
1819
  overwrite?: boolean;
1736
1820
  createParents?: boolean;
1821
+ route?: FileSystemRouteIdentity;
1737
1822
  };
1738
1823
  export type FsMoveResponse = {
1739
1824
  path: string;
@@ -1743,6 +1828,7 @@ export type FsMoveResponse = {
1743
1828
  export type FsMkdirRequest = {
1744
1829
  path: string;
1745
1830
  recursive?: boolean;
1831
+ route?: FileSystemRouteIdentity;
1746
1832
  };
1747
1833
  export type FsMkdirResponse = {
1748
1834
  path: string;
@@ -2205,6 +2291,8 @@ export type CreateSessionRequest = {
2205
2291
  resources?: ResourceRef[] | undefined;
2206
2292
  /** Inline skills fixed onto this session; omitted children inherit them. */
2207
2293
  skills?: SessionSkill[] | undefined;
2294
+ /** Installed session-selected Skill identities to freeze onto this session at creation. */
2295
+ installedSkillIds?: string[] | undefined;
2208
2296
  tools?: ToolRef[] | undefined;
2209
2297
  metadata?: Record<string, unknown> | undefined;
2210
2298
  model?: string | undefined;
@@ -2240,7 +2328,7 @@ export type KnownPermission = (typeof KNOWN_PERMISSIONS)[number];
2240
2328
  * can introduce permissions without breaking older SDK consumers.
2241
2329
  */
2242
2330
  export type Permission = KnownPermission | (string & {});
2243
- export type FirstPartyMcpToolName = "set_session_title" | "goal_set" | "goal_update" | "goal_progress" | "goal_wait" | "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" | "task_note_replace" | "work_claim_upsert" | "work_claim_release" | "knowledge_propose" | "knowledge_correct" | "task_note_promote_knowledge" | "task_note_promote_instruction_policy" | "task_note_promote_preference" | "instruction_policy_propose" | "preference_propose" | "remember" | "remember_confirm" | "company_profile_propose" | "company_profile_confirm" | "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_wait" | "session_create" | "session_send_message" | "session_pause" | "session_resume" | "session_steer" | "session_human_input_respond" | "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_search" | "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" | "sandbox_file_publish" | "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";
2331
+ export type FirstPartyMcpToolName = "set_session_title" | "goal_set" | "goal_update" | "goal_progress" | "wait_for_input" | "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" | "task_note_replace" | "work_claim_upsert" | "work_claim_release" | "knowledge_propose" | "knowledge_correct" | "task_note_promote_knowledge" | "task_note_promote_instruction_policy" | "task_note_promote_preference" | "instruction_policy_propose" | "preference_propose" | "remember" | "remember_confirm" | "company_profile_propose" | "company_profile_confirm" | "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_wait" | "command_wait" | "session_create" | "session_send_message" | "session_pause" | "session_resume" | "session_steer" | "session_human_input_respond" | "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_search" | "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" | "sandbox_file_publish" | "artifacts_list" | "artifacts_get_source" | "artifacts_create" | "artifacts_publish" | "artifacts_rollback" | "artifacts_archive" | "artifacts_restore" | "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";
2244
2332
  export type ProductAccessMode = "local" | "configured" | "managed";
2245
2333
  export type ModelCapabilitySupportV1 = "supported" | "unsupported" | "unknown";
2246
2334
  export type ModelCapabilityStateV1 = {
@@ -2287,14 +2375,19 @@ export type ModelCredentialSourceV1 = {
2287
2375
  } | {
2288
2376
  kind: "workspace_connection";
2289
2377
  mechanism: "api_key";
2378
+ } | {
2379
+ kind: "organization_connection";
2380
+ mechanism: "api_key";
2290
2381
  };
2291
2382
  export type ModelBillingAttributionV1 = {
2292
- upstreamPayer: "deployment" | "workspace" | "connected_subscription";
2383
+ upstreamPayer: "deployment" | "workspace" | "organization" | "connected_subscription";
2293
2384
  metering: "opengeni_credits" | "external";
2294
2385
  };
2386
+ export type ModelCostClassV1 = "free" | "credits" | "subscription" | "workspace" | "organization";
2295
2387
  export type ModelPricingV1 = {
2296
2388
  inputMicrosPerMillionTokens: number;
2297
2389
  cachedInputMicrosPerMillionTokens?: number | undefined;
2390
+ cacheWriteMicrosPerMillionTokens?: number | undefined;
2298
2391
  outputMicrosPerMillionTokens: number;
2299
2392
  marginBps?: number | undefined;
2300
2393
  };
@@ -2320,7 +2413,7 @@ export type ClientModel = {
2320
2413
  provider: string;
2321
2414
  providerLabel: string;
2322
2415
  api: "responses" | "chat";
2323
- source?: "opengeni" | "codex" | "supergrok" | "workspace_gateway" | undefined;
2416
+ source?: "opengeni" | "codex" | "supergrok" | "workspace_gateway" | "openrouter" | undefined;
2324
2417
  contextWindowTokens?: number | undefined;
2325
2418
  schemaVersion?: 1 | undefined;
2326
2419
  aliases?: string[] | undefined;
@@ -2336,6 +2429,7 @@ export type ClientModel = {
2336
2429
  } | undefined;
2337
2430
  credentialSource?: ModelCredentialSourceV1 | undefined;
2338
2431
  billing?: ModelBillingAttributionV1 | undefined;
2432
+ cost?: ModelCostClassV1 | undefined;
2339
2433
  capabilities?: ModelCapabilitiesV1 | undefined;
2340
2434
  pricing?: ModelPricingScheduleV1 | undefined;
2341
2435
  definitionVersion?: string | undefined;
@@ -2361,6 +2455,55 @@ export type WorkspaceModelCatalogModel = ClientModel & {
2361
2455
  export type WorkspaceModelCatalogResponse = {
2362
2456
  models: WorkspaceModelCatalogModel[];
2363
2457
  };
2458
+ export type WorkspaceGatewayCustomModel = {
2459
+ id: string;
2460
+ upstreamModelId: string;
2461
+ label: string | null;
2462
+ version: number;
2463
+ createdAt: string;
2464
+ updatedAt: string;
2465
+ };
2466
+ export type WorkspaceGatewayCustomModelsResponse = {
2467
+ models: WorkspaceGatewayCustomModel[];
2468
+ };
2469
+ export type CreateWorkspaceGatewayCustomModelRequest = {
2470
+ operationId: string;
2471
+ upstreamModelId: string;
2472
+ label?: string | undefined;
2473
+ };
2474
+ export type DeleteWorkspaceGatewayCustomModelRequest = {
2475
+ expectedVersion: number;
2476
+ operationId: string;
2477
+ };
2478
+ export type WorkspaceOpenRouterCustomModel = WorkspaceGatewayCustomModel;
2479
+ export type WorkspaceOpenRouterCustomModelsResponse = {
2480
+ models: WorkspaceOpenRouterCustomModel[];
2481
+ };
2482
+ export type CreateWorkspaceOpenRouterCustomModelRequest = CreateWorkspaceGatewayCustomModelRequest;
2483
+ export type DeleteWorkspaceOpenRouterCustomModelRequest = DeleteWorkspaceGatewayCustomModelRequest;
2484
+ export type OrganizationModelProviderKind = "vercel_gateway" | "openrouter";
2485
+ export type OrganizationModelProviderConnection = {
2486
+ providerKind: OrganizationModelProviderKind;
2487
+ status: "active" | "revoked";
2488
+ version: number;
2489
+ createdAt: string;
2490
+ updatedAt: string;
2491
+ };
2492
+ export type UpsertOrganizationModelProviderConnectionRequest = {
2493
+ operationId: string;
2494
+ expectedVersion?: number | undefined;
2495
+ apiKey: string;
2496
+ };
2497
+ export type RevokeOrganizationModelProviderConnectionRequest = {
2498
+ operationId: string;
2499
+ expectedVersion: number;
2500
+ };
2501
+ export type OrganizationProviderCustomModel = WorkspaceGatewayCustomModel;
2502
+ export type OrganizationProviderCustomModelsResponse = {
2503
+ models: OrganizationProviderCustomModel[];
2504
+ };
2505
+ export type CreateOrganizationProviderCustomModelRequest = CreateWorkspaceGatewayCustomModelRequest;
2506
+ export type DeleteOrganizationProviderCustomModelRequest = DeleteWorkspaceGatewayCustomModelRequest;
2364
2507
  /**
2365
2508
  * The workspace's hard model/provider allowlist. `null` means unrestricted for
2366
2509
  * that dimension; an empty array is an explicit total block.
@@ -2393,6 +2536,12 @@ export type CodexConnectionStatus = {
2393
2536
  label?: string | null;
2394
2537
  chatgptAccountId?: string | null;
2395
2538
  } | null;
2539
+ /** Live model-catalog probe result for the active account only. */
2540
+ activeAccountValid?: boolean;
2541
+ /** Cached readiness of any account in the effective worker pool. */
2542
+ poolReady?: boolean;
2543
+ /** Cached unpinned worker routability; rotation-off remains active-pointer-only. */
2544
+ workerRoutable?: boolean;
2396
2545
  /** How many Codex accounts the workspace has connected. */
2397
2546
  accountCount?: number;
2398
2547
  source?: WorkspaceCodexSubscriptionSource;
@@ -3086,6 +3235,16 @@ export type CreateOrganizationResponse = {
3086
3235
  organization: OrganizationSummary;
3087
3236
  workspaceId: string;
3088
3237
  };
3238
+ export type CreateAdditionalOrganizationRequest = {
3239
+ name: string;
3240
+ workspaceName: string;
3241
+ operationId: string;
3242
+ };
3243
+ export type CreateAdditionalOrganizationResponse = {
3244
+ organization: OrganizationSummary;
3245
+ workspaceId: string;
3246
+ personalWorkspaceId: string;
3247
+ };
3089
3248
  export type UpdateOrganizationNameRequest = {
3090
3249
  name: string;
3091
3250
  expectedUpdatedAt: string;
@@ -3544,7 +3703,7 @@ export type SessionGoalContinuation = {
3544
3703
  observedRevision: number;
3545
3704
  nextAttemptAt: string | null;
3546
3705
  lastError: string | null;
3547
- /** Agent-stated reason for a `held_for_input` hold; null otherwise. */
3706
+ /** Agent-stated reason for a `wait_for_input` hold; null otherwise. */
3548
3707
  holdReason?: string | null | undefined;
3549
3708
  };
3550
3709
  export type SessionGoal = {
@@ -3718,8 +3877,28 @@ export type SessionQueueSnapshot = {
3718
3877
  };
3719
3878
  export type SessionPendingInputPreview = Pick<SessionSystemUpdate, "id" | "sessionId" | "kind" | "classification" | "sourceId" | "summary" | "createdAt">;
3720
3879
  export type SystemUpdateClassification = "success" | "failure" | "action_required" | "info";
3721
- export type SessionSystemUpdateKind = "scheduled_occurrence" | "goal_continuation" | "agent_message" | "agent_steer_instruction" | "child_terminal_result" | "media_generation_result" | "child_requires_action" | "child_requires_action_resolved" | "child_paused" | "child_waiting_capacity" | "child_progress";
3880
+ export type SessionSystemUpdateKind = "scheduled_occurrence" | "goal_continuation" | "agent_message" | "agent_steer_instruction" | "session_wait_timeout" | "background_command_result" | "child_terminal_result" | "media_generation_result" | "child_requires_action" | "child_requires_action_resolved" | "child_paused" | "child_waiting_capacity" | "child_progress";
3722
3881
  export type SessionSystemUpdateState = "pending" | "delivered" | "cancelled" | "superseded" | "failed";
3882
+ export type SessionSystemUpdatePayload = {
3883
+ type: "session_wait_timeout";
3884
+ waitTurnId: string;
3885
+ deadlineAt: string;
3886
+ reason: string;
3887
+ [key: string]: unknown;
3888
+ } | {
3889
+ type: "background_command_result";
3890
+ commandId: string;
3891
+ state: "exited" | "lost";
3892
+ exitCode: number | null;
3893
+ reason: string;
3894
+ outputLocator: {
3895
+ eventType: "sandbox.command.output.delta";
3896
+ commandId: string;
3897
+ };
3898
+ [key: string]: unknown;
3899
+ } | ({
3900
+ type: Exclude<SessionSystemUpdateKind, "session_wait_timeout" | "background_command_result">;
3901
+ } & Record<string, unknown>);
3723
3902
  export type SessionSystemUpdate = {
3724
3903
  id: string;
3725
3904
  sessionId: string;
@@ -3728,7 +3907,7 @@ export type SessionSystemUpdate = {
3728
3907
  sourceId: string;
3729
3908
  dedupeKey: string;
3730
3909
  summary: string;
3731
- payload: Record<string, unknown>;
3910
+ payload: SessionSystemUpdatePayload;
3732
3911
  lineage: Record<string, unknown>;
3733
3912
  state: SessionSystemUpdateState;
3734
3913
  deliveredTurnId: string | null;
@@ -4744,9 +4923,11 @@ export type CapabilityPackSkillFile = {
4744
4923
  export type CapabilityPackSkill = {
4745
4924
  name: string;
4746
4925
  description?: string | undefined;
4926
+ /** Omitted means workspace-wide; session_selected requires explicit session attachment. */
4927
+ activationMode?: "workspace_managed" | "session_selected" | undefined;
4747
4928
  files: CapabilityPackSkillFile[];
4748
4929
  };
4749
- export type SessionSkill = CapabilityPackSkill;
4930
+ export type SessionSkill = Omit<CapabilityPackSkill, "activationMode">;
4750
4931
  export type CapabilityPackVariableSetSpec = {
4751
4932
  description: string;
4752
4933
  requiredVariables: string[];
@@ -4830,6 +5011,7 @@ export type RegisterCapabilityPackRequest = {
4830
5011
  skills?: {
4831
5012
  name: string;
4832
5013
  description?: string | undefined;
5014
+ activationMode?: "workspace_managed" | "session_selected" | undefined;
4833
5015
  files: CapabilityPackSkillFile[];
4834
5016
  }[] | undefined;
4835
5017
  components?: ({
@@ -5194,6 +5376,7 @@ export type CapabilityCatalogItem = {
5194
5376
  /** The connection backing this enabled installation, or null when none is involved. */
5195
5377
  connectionRef: {
5196
5378
  connectionId?: string | undefined;
5379
+ authoritySource?: "host" | undefined;
5197
5380
  providerDomain: string;
5198
5381
  kind: string;
5199
5382
  subjectScope?: "subject" | "workspace" | undefined;
@@ -5776,6 +5959,32 @@ export type GitHubAppInfo = {
5776
5959
  export type GitHubRepositoriesResponse = {
5777
5960
  repositories: GitHubRepository[];
5778
5961
  };
5962
+ export type VerifyPublicGitHubRepositoryRefRequest = {
5963
+ url: string;
5964
+ ref: string;
5965
+ };
5966
+ export type VerifyPublicGitHubRepositoryRefResponse = {
5967
+ owner: string;
5968
+ name: string;
5969
+ fullName: string;
5970
+ canonicalUrl: string;
5971
+ cloneUrl: string;
5972
+ defaultBranch: string;
5973
+ ref: string;
5974
+ commitSha: string;
5975
+ };
5976
+ export type GitHubRepositoryBranch = {
5977
+ name: string;
5978
+ isDefault: boolean;
5979
+ };
5980
+ export type ListGitHubRepositoryBranchesOptions = {
5981
+ cursor?: number | undefined;
5982
+ limit?: number | undefined;
5983
+ };
5984
+ export type GitHubRepositoryBranchesResponse = {
5985
+ branches: GitHubRepositoryBranch[];
5986
+ nextCursor: number | null;
5987
+ };
5779
5988
  export type CreateGitHubAppManifestRequest = {
5780
5989
  appName?: string | undefined;
5781
5990
  organization?: string | undefined;
@@ -5846,12 +6055,16 @@ export type InsightsModelUsageRow = {
5846
6055
  creditUsd: number;
5847
6056
  estimatedProviderUsd: number;
5848
6057
  estimatedProviderCostKnownCalls: number;
6058
+ equivalentCreditUsd: number;
6059
+ equivalentCreditCostKnownCalls: number;
5849
6060
  };
5850
6061
  export type InsightsSeriesPoint = {
5851
6062
  label: string;
5852
6063
  modelCostUsd: number;
5853
6064
  estimatedProviderUsd: number;
5854
6065
  estimatedProviderCostKnownCalls: number;
6066
+ equivalentCreditUsd: number;
6067
+ equivalentCreditCostKnownCalls: number;
5855
6068
  warmSeconds: number;
5856
6069
  inputTokens: number;
5857
6070
  outputTokens: number;
@@ -5880,6 +6093,8 @@ export type InsightsSpendDriver = {
5880
6093
  creditUsd: number;
5881
6094
  estimatedProviderUsd: number;
5882
6095
  estimatedProviderCostKnownCalls: number;
6096
+ equivalentCreditUsd: number;
6097
+ equivalentCreditCostKnownCalls: number;
5883
6098
  tokens: number;
5884
6099
  cacheHitPct: number;
5885
6100
  pctOfCreditUsd: number;
@@ -5921,6 +6136,8 @@ export type InsightsScheduleRow = {
5921
6136
  creditUsd: number | null;
5922
6137
  estimatedProviderUsd: number | null;
5923
6138
  estimatedProviderCostKnownCalls: number | null;
6139
+ equivalentCreditUsd: number | null;
6140
+ equivalentCreditCostKnownCalls: number | null;
5924
6141
  tokens: number | null;
5925
6142
  cacheHitPct: number | null;
5926
6143
  billing: InsightsBillingPath | null;
@@ -5944,6 +6161,7 @@ export type InsightsModelCallRow = {
5944
6161
  totalTokens: number | null;
5945
6162
  creditUsd: number;
5946
6163
  estimatedProviderUsd: number | null;
6164
+ equivalentCreditUsd: number | null;
5947
6165
  pricingSource: InsightsPricingSource | null;
5948
6166
  };
5949
6167
  export type ModelContextContributionSource = "workspace_instruction_policy" | "legacy_workspace_instructions" | "preference_registry_descriptor" | "company_profile" | "legacy_memory_v1" | "runtime_skill_catalog";
@@ -5994,6 +6212,10 @@ export type WorkspaceInsightsSnapshot = {
5994
6212
  priorEstimatedProviderUsd: number;
5995
6213
  estimatedProviderCostKnownCalls: number;
5996
6214
  priorEstimatedProviderCostKnownCalls: number;
6215
+ equivalentCreditUsd: number;
6216
+ priorEquivalentCreditUsd: number;
6217
+ equivalentCreditCostKnownCalls: number;
6218
+ priorEquivalentCreditCostKnownCalls: number;
5997
6219
  modelCalls: number;
5998
6220
  priorInputTokens: number;
5999
6221
  priorTotalTokens: number;
@@ -1,3 +1,12 @@
1
+ import type { ToolGatewayIdentity } from "./types.js";
2
+ export type WorkspaceArtifactSourceFile = {
3
+ path: string;
4
+ content: string;
5
+ };
6
+ export type WorkspaceArtifactSourceBundle = {
7
+ entrypoint: string;
8
+ files: WorkspaceArtifactSourceFile[];
9
+ };
1
10
  export type WorkspaceArtifactVersion = {
2
11
  id: string;
3
12
  accountId: string;
@@ -7,6 +16,9 @@ export type WorkspaceArtifactVersion = {
7
16
  contentType: "text/html";
8
17
  contentSha256: string;
9
18
  sizeBytes: number;
19
+ sourceSha256: string | null;
20
+ sourceSizeBytes: number | null;
21
+ requestedTools: ToolGatewayIdentity[];
10
22
  sourceSessionId: string | null;
11
23
  sourceTurnId: string | null;
12
24
  sourceAttemptId: string | null;
@@ -32,7 +44,7 @@ export type WorkspaceArtifactEvent = {
32
44
  accountId: string;
33
45
  workspaceId: string;
34
46
  artifactId: string;
35
- type: "published" | "rolled_back";
47
+ type: "published" | "rolled_back" | "archived" | "restored";
36
48
  fromVersionId: string | null;
37
49
  toVersionId: string;
38
50
  sourceSessionId: string | null;
@@ -46,6 +58,7 @@ export type WorkspaceArtifactEvent = {
46
58
  export type WorkspaceArtifactListOptions = {
47
59
  limit?: number;
48
60
  cursor?: string;
61
+ status?: WorkspaceArtifact["status"];
49
62
  };
50
63
  export type WorkspaceArtifactListResponse = {
51
64
  artifacts: WorkspaceArtifact[];
@@ -65,6 +78,8 @@ export type WorkspaceArtifactContentResponse = {
65
78
  contentType: "text/html";
66
79
  contentSha256: string;
67
80
  html: string;
81
+ source: WorkspaceArtifactSourceBundle;
82
+ requestedTools: ToolGatewayIdentity[];
68
83
  };
69
84
  export type WorkspaceArtifactMutationResponse = {
70
85
  artifact: WorkspaceArtifact;
@@ -77,12 +92,16 @@ export type CreateWorkspaceArtifactRequest = {
77
92
  title: string;
78
93
  description?: string | null;
79
94
  html: string;
95
+ source?: WorkspaceArtifactSourceBundle;
96
+ requestedTools?: ToolGatewayIdentity[];
80
97
  idempotencyKey: string;
81
98
  };
82
99
  export type PublishWorkspaceArtifactVersionRequest = {
83
100
  title?: string;
84
101
  description?: string | null;
85
102
  html: string;
103
+ source?: WorkspaceArtifactSourceBundle;
104
+ requestedTools?: ToolGatewayIdentity[];
86
105
  expectedCurrentVersionId: string;
87
106
  idempotencyKey: string;
88
107
  };
@@ -92,3 +111,9 @@ export type RollbackWorkspaceArtifactRequest = {
92
111
  reason: string;
93
112
  idempotencyKey: string;
94
113
  };
114
+ export type SetWorkspaceArtifactStatusRequest = {
115
+ status: "active" | "archived";
116
+ expectedCurrentVersionId: string;
117
+ reason: string;
118
+ idempotencyKey: string;
119
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeni/sdk",
3
- "version": "3.3.2",
3
+ "version": "3.7.0-canary.0",
4
4
  "description": "Framework-agnostic TypeScript SDK for the OpenGeni API: typed client, session lifecycle, SSE event streaming with reconnect + replay-by-sequence, and proxy re-streaming helpers.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -34,6 +34,14 @@
34
34
  "types": "./dist/browser.d.ts",
35
35
  "import": "./dist/browser.js"
36
36
  },
37
+ "./site": {
38
+ "types": "./dist/site.d.ts",
39
+ "import": "./dist/site.js"
40
+ },
41
+ "./github-repositories": {
42
+ "types": "./dist/github-repositories.d.ts",
43
+ "import": "./dist/github-repositories.js"
44
+ },
37
45
  "./document-authority": {
38
46
  "types": "./dist/document-authority.d.ts",
39
47
  "import": "./dist/document-authority.js"
@@ -89,6 +97,10 @@
89
97
  "./gateway-realtime-transport": {
90
98
  "types": "./dist/gateway-realtime-transport.d.ts",
91
99
  "import": "./dist/gateway-realtime-transport.js"
100
+ },
101
+ "./model-picker-order": {
102
+ "types": "./dist/model-picker-order.d.ts",
103
+ "import": "./dist/model-picker-order.js"
92
104
  }
93
105
  },
94
106
  "publishConfig": {
@@ -101,7 +113,7 @@
101
113
  "prepublishOnly": "bash ../../scripts/prepublish-guard"
102
114
  },
103
115
  "dependencies": {
104
- "@opengeni/contracts": "^2.9.2"
116
+ "@opengeni/contracts": "^2.13.0-canary.0"
105
117
  },
106
118
  "engines": {
107
119
  "node": ">=18"