@neta-art/cohub 1.27.1 → 1.28.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1200,7 +1200,7 @@ type ExploreSpacesResponse = {
1200
1200
  sections: ExploreSection[];
1201
1201
  spaces: ExploreSpaceItem[];
1202
1202
  };
1203
- type Permission = "space.view" | "space.edit" | "space.label.view" | "space.label.manage" | "space.label.assign" | "session.view" | "session.edit" | "session.prompt.readonly" | "session.prompt.fullaccess" | "file.view" | "file.view.filtered" | "file.edit" | "checkpoint.view" | "checkpoint.edit" | "member.view" | "member.manage" | "channel.view" | "channel.manage" | "cronjob.view" | "cronjob.manage" | "taskrun.view" | "sandbox.view" | "sandbox.manage" | "mod.view" | "mod.manage";
1203
+ type Permission = "space.view" | "space.edit" | "space.label.view" | "space.label.manage" | "space.label.assign" | "session.view" | "session.edit" | "session.prompt.readonly" | "session.prompt.fullaccess" | "generation.create" | "file.view" | "file.view.filtered" | "file.edit" | "checkpoint.view" | "checkpoint.edit" | "member.view" | "member.manage" | "channel.view" | "channel.manage" | "cronjob.view" | "cronjob.manage" | "taskrun.view" | "sandbox.view" | "sandbox.manage" | "mod.view" | "mod.manage";
1204
1204
  type SpaceAccess = {
1205
1205
  role: SpaceRole | null;
1206
1206
  permissions: Permission[];
@@ -2006,6 +2006,18 @@ declare class SpaceCheckpointApi {
2006
2006
  constructor(transport: HttpTransport, spaceId: string, id: string);
2007
2007
  get(customFetch?: Fetch): Promise<SpaceCheckpointDetailResponse>;
2008
2008
  }
2009
+ type CheckpointListPageInfo = {
2010
+ hasMore: boolean;
2011
+ nextCursor: string | null;
2012
+ };
2013
+ type CheckpointListOptions = {
2014
+ limit?: number;
2015
+ cursor?: string | null;
2016
+ };
2017
+ type CheckpointListResponse = {
2018
+ checkpoints: CheckpointRecord[];
2019
+ pageInfo?: CheckpointListPageInfo;
2020
+ };
2009
2021
  type SpaceCheckpointsApi = ((checkpointId: string) => SpaceCheckpointApi) & {
2010
2022
  checkpoint: (checkpointId: string) => SpaceCheckpointApi;
2011
2023
  latest: () => SpaceCheckpointApi;
@@ -2014,9 +2026,7 @@ type SpaceCheckpointsApi = ((checkpointId: string) => SpaceCheckpointApi) & {
2014
2026
  taskRunId: string;
2015
2027
  existing?: boolean;
2016
2028
  }>;
2017
- list: () => Promise<{
2018
- checkpoints: CheckpointRecord[];
2019
- }>;
2029
+ list: (options?: CheckpointListOptions) => Promise<CheckpointListResponse>;
2020
2030
  get: (checkpointId: string, customFetch?: Fetch) => Promise<SpaceCheckpointDetailResponse>;
2021
2031
  };
2022
2032
  declare class SpaceClient {
@@ -1856,7 +1856,13 @@ function createSpaceCheckpointsApi(transport, spaceId) {
1856
1856
  headers: { "Content-Type": "application/json" },
1857
1857
  body: JSON.stringify({ description: description ?? null })
1858
1858
  }),
1859
- list: () => transport.request(`/api/spaces/${spaceId}/checkpoints`),
1859
+ list: (options) => {
1860
+ const params = new URLSearchParams();
1861
+ if (options?.limit !== void 0) params.set("limit", String(options.limit));
1862
+ if (options?.cursor) params.set("cursor", options.cursor);
1863
+ const query = params.toString();
1864
+ return transport.request(`/api/spaces/${spaceId}/checkpoints${query ? `?${query}` : ""}`);
1865
+ },
1860
1866
  get: (checkpointId, customFetch) => checkpoint(checkpointId).get(customFetch)
1861
1867
  });
1862
1868
  }
package/dist/index.d.ts CHANGED
@@ -100,7 +100,7 @@ declare class UsersApi {
100
100
  //#endregion
101
101
  //#region src/apis/works.d.ts
102
102
  type WorkTargetType = "file" | "directory" | "port";
103
- type WorkStatus = "draft" | "published";
103
+ type WorkStatus = "draft" | "published" | "disabled";
104
104
  type WorkRecord = {
105
105
  id: string;
106
106
  spaceId: string;
@@ -128,6 +128,15 @@ type WorkCreateInput = {
128
128
  allowedViewerScopes?: Permission[];
129
129
  meta?: Record<string, unknown> | null;
130
130
  };
131
+ type WorkUpdateInput = Partial<{
132
+ slug: string;
133
+ status: WorkStatus;
134
+ targetType: WorkTargetType;
135
+ targetRef: string;
136
+ workScopes: Permission[];
137
+ allowedViewerScopes: Permission[];
138
+ meta: Record<string, unknown> | null;
139
+ }>;
131
140
  type WorkContent = {
132
141
  url: string;
133
142
  targetType: "port";
@@ -157,6 +166,9 @@ declare class WorksApi {
157
166
  listBySpace(spaceId: string): Promise<{
158
167
  works: WorkRecord[];
159
168
  }>;
169
+ get(id: string): Promise<{
170
+ work: WorkRecord;
171
+ }>;
160
172
  getBySlug(username: string, spaceSlug: string, workSlug: string): Promise<{
161
173
  work: WorkRecord;
162
174
  space: {
@@ -177,6 +189,12 @@ declare class WorksApi {
177
189
  create(input: WorkCreateInput): Promise<{
178
190
  work: WorkRecord;
179
191
  }>;
192
+ update(id: string, input: WorkUpdateInput): Promise<{
193
+ work: WorkRecord;
194
+ }>;
195
+ delete(id: string): Promise<{
196
+ ok: true;
197
+ }>;
180
198
  createSession(workId: string): Promise<WorkSessionResponse>;
181
199
  authorize(workId: string, input: {
182
200
  scopes: Permission[];
@@ -219,4 +237,4 @@ declare class CohubClient {
219
237
  }
220
238
  declare const createCohubClient: (options?: CohubClientOptions) => CohubClient;
221
239
  //#endregion
222
- export { AcceptInvitationResponse, ApiError, type AssistantMessageCommit, BatchUserProfilesResponse, BillingAccessWarning, BillingApi, BillingBalanceActivity, BillingBalanceActivityKind, BillingBalanceActivityList, BillingBalanceActivityStatus, BillingCatalog, BillingCatalogProduct, BillingCheckoutActionState, BillingCheckoutResult, BillingConversionIntent, BillingCreditExpiryGroup, BillingCreditGrantStatus, BillingCreditStatus, BillingCreditUnit, BillingHistoryPagination, BillingPaymentStatus, BillingPluginStatus, BillingProductBillingInterval, BillingProductCreditBenefit, BillingProductDisplay, BillingProductKind, BillingProductPricing, BillingRedemptionResult, BillingSubscriptionHistoryList, BillingSubscriptionHistoryStatus, BillingSubscriptionSummary, COHUB_ENVIRONMENTS, CanvasBootstrapResponse, CanvasCreateInput, CanvasDocumentRecord, CanvasNodeInput, CanvasNodeRecord, CanvasSemanticOp, CanvasTransactionInput, Channel, type ChannelConfig, type ChannelEnvelope, CheckpointRecord, CohubClient, type CohubClientOptions, type CohubEnvironment, CohubHttpClient, type ContentBlock, type CreateGenerationTaskRequest, type CreateGenerationTaskResponse, CreateInvitationInput, CreateInvitationResponse, type CreatePublicAssetUploadInput, type CreatePublicAssetUploadResponse, CreateSpaceInput, CreateSpaceModInput, CreateSpacePromptInput, CreateSpacePromptResponse, CreateSpaceSessionInput, CronJobPayload, CronJobRecord, CronJobUpdatePatch, CursorPageInfo, type DiscordChannelConfig, ExploreSection, ExploreSpaceItem, ExploreSpacesResponse, type Fetch, type GenerationContentBlock, type GenerationModelPolicy, type GenerationParameterConstraint, type GenerationPolicy, GenerationPolicyError, type GenerationStreamCommitEvent, type GenerationStreamErrorEvent, type GenerationStreamEvent, type GenerationStreamFinalizedEvent, type GenerationStreamIntermediateMessage, type GenerationStreamLifecycleEvent, type GenerationStreamOutOfSyncEvent, type GenerationStreamStateEvent, type GenerationStreamSubscriptionHandlers, type GenerationStreamTurnUpdatedEvent, type GenerationTaskResult, GlobalSearchResponse, GlobalSearchResult, GlobalSearchType, HttpError, InvitationDetail, JsonObject, JsonPrimitive, JsonValue, LabelAssignmentListItem, LabelAssignmentPageInfo, LabelAssignmentRecord, type LabelAssignmentsUpdatedEvent, LabelListItem, LabelRecord, LabelResourceType, LabelScopeType, LabelSource, type ListGenerationModelsResponse, MeResponse, type MessageRecord, ModelCatalogEntry, Permission, PromptAccessMode, PromptTemplateCatalogEntry, PromptTemplateCatalogResponse, type PublicAssetPurpose, type PublicGenerationDeclaration, PublicUserProfile, type RawHttpResponse, type RealtimeServerEvent, ResourceLabelsResponse, SendMessageCronJobPayload, SessionBindingRecord, type SessionEventName, type SessionForkRecord, SessionGenerationStreamClient, SessionMessageResponse, SessionMessagesPaginatedResponse, SessionMessagesResponse, type SessionPatchApplyInput, type SessionPatchApplyResult, SessionPatchReducer, type SessionPatchState, type SessionPatchStatus, SessionRecord, type SessionSubscriptionHandlers, type SessionTurnIndexItem, SessionTurnIndexResponse, type SessionTurnRecord, SessionTurnResponse, type SessionTurnSegmentRecord, SessionTurnSignedUrlsResponse, SessionTurnStreamSnapshotResponse, SessionTurnWindowResponse, SessionTurnsPaginatedResponse, SpaceAccess, SpaceAccessPolicy, SpaceBootstrapSource, SpaceChannelBindingInput, type SpaceChannelBindingRecord, SpaceCheckpointDetailResponse, SpaceConfig, SpaceConfigInput, SpaceConfigResponse, SpaceCreateResponse, SpaceEnvInput, type SpaceEventName, SpaceFsCompleteUploadInput, SpaceFsCompleteUploadResponse, SpaceFsCreateUploadInput, SpaceFsCreateUploadResponse, SpaceFsEncoding, SpaceFsEntry, SpaceFsFileKind, SpaceFsFileResponse, SpaceFsMoveInput, SpaceFsPreparingFile, SpaceFsReadFilesError, SpaceFsReadFilesInput, SpaceFsReadFilesResponse, SpaceFsTreeResponse, SpaceFsUploadDestination, SpaceFsUploadEntry, SpaceFsUploadError, SpaceFsUploadPlanEntry, SpaceFsUploadPlanEntryInput, SpaceFsUploadProgress, SpaceFsUploadResponse, SpaceFsWriteFileInput, SpaceInvitation, SpaceListItem, SpaceMember, SpaceMeta, SpaceModListItem, SpacePublicProfile, SpaceRecord, SpaceRole, SpaceSandboxAutoDestroyPolicy, SpaceSandboxConfig, SpaceSessionsResponse, SpaceUsageHourlyStat, SpaceUsageResponse, SpaceUsageSummary, TaskRunDetailResponse, TaskRunRecord, UserProfile, UserRulesResponse, UsersApi, VoiceApi, type VoiceInputCallbacks, VoiceInputClient, type VoiceInputClientOptions, type VoiceInputCreateOptions, type VoiceInputEvent, type WebSocketConnectionState, WebsocketClient, type WorkAuthorizeResponse, type WorkCreateInput, type WorkRecord, WorkRuntimeApi, type WorkRuntimeContext, type WorkSessionResponse, type WorkStatus, type WorkTargetType, WorksApi, assertGenerationRequestAllowedByPolicy, createCohubClient, createHttpClient, createSessionGenerationStreamClient, createSessionPatchReducer, createVoiceInputClient, createWebsocketClient, createWorkRuntime, decodeGenerationPolicy, encodeGenerationPolicy, filterGenerationDeclarationsByPolicy, findGenerationModelPolicy, getAllowedGenerationModelIds, normalizeBaseUrl, normalizeGenerationPolicy, normalizeVoiceInputWebsocketUrl, normalizeWebsocketUrl, parseAssistantMessageCommit, parseGenerationPolicyFromEnv, resolveApiBaseUrl, resolveCohubEnvironment, resolveVoiceInputWebsocketUrl, resolveWebsocketUrl };
240
+ export { AcceptInvitationResponse, ApiError, type AssistantMessageCommit, BatchUserProfilesResponse, BillingAccessWarning, BillingApi, BillingBalanceActivity, BillingBalanceActivityKind, BillingBalanceActivityList, BillingBalanceActivityStatus, BillingCatalog, BillingCatalogProduct, BillingCheckoutActionState, BillingCheckoutResult, BillingConversionIntent, BillingCreditExpiryGroup, BillingCreditGrantStatus, BillingCreditStatus, BillingCreditUnit, BillingHistoryPagination, BillingPaymentStatus, BillingPluginStatus, BillingProductBillingInterval, BillingProductCreditBenefit, BillingProductDisplay, BillingProductKind, BillingProductPricing, BillingRedemptionResult, BillingSubscriptionHistoryList, BillingSubscriptionHistoryStatus, BillingSubscriptionSummary, COHUB_ENVIRONMENTS, CanvasBootstrapResponse, CanvasCreateInput, CanvasDocumentRecord, CanvasNodeInput, CanvasNodeRecord, CanvasSemanticOp, CanvasTransactionInput, Channel, type ChannelConfig, type ChannelEnvelope, CheckpointRecord, CohubClient, type CohubClientOptions, type CohubEnvironment, CohubHttpClient, type ContentBlock, type CreateGenerationTaskRequest, type CreateGenerationTaskResponse, CreateInvitationInput, CreateInvitationResponse, type CreatePublicAssetUploadInput, type CreatePublicAssetUploadResponse, CreateSpaceInput, CreateSpaceModInput, CreateSpacePromptInput, CreateSpacePromptResponse, CreateSpaceSessionInput, CronJobPayload, CronJobRecord, CronJobUpdatePatch, CursorPageInfo, type DiscordChannelConfig, ExploreSection, ExploreSpaceItem, ExploreSpacesResponse, type Fetch, type GenerationContentBlock, type GenerationModelPolicy, type GenerationParameterConstraint, type GenerationPolicy, GenerationPolicyError, type GenerationStreamCommitEvent, type GenerationStreamErrorEvent, type GenerationStreamEvent, type GenerationStreamFinalizedEvent, type GenerationStreamIntermediateMessage, type GenerationStreamLifecycleEvent, type GenerationStreamOutOfSyncEvent, type GenerationStreamStateEvent, type GenerationStreamSubscriptionHandlers, type GenerationStreamTurnUpdatedEvent, type GenerationTaskResult, GlobalSearchResponse, GlobalSearchResult, GlobalSearchType, HttpError, InvitationDetail, JsonObject, JsonPrimitive, JsonValue, LabelAssignmentListItem, LabelAssignmentPageInfo, LabelAssignmentRecord, type LabelAssignmentsUpdatedEvent, LabelListItem, LabelRecord, LabelResourceType, LabelScopeType, LabelSource, type ListGenerationModelsResponse, MeResponse, type MessageRecord, ModelCatalogEntry, Permission, PromptAccessMode, PromptTemplateCatalogEntry, PromptTemplateCatalogResponse, type PublicAssetPurpose, type PublicGenerationDeclaration, PublicUserProfile, type RawHttpResponse, type RealtimeServerEvent, ResourceLabelsResponse, SendMessageCronJobPayload, SessionBindingRecord, type SessionEventName, type SessionForkRecord, SessionGenerationStreamClient, SessionMessageResponse, SessionMessagesPaginatedResponse, SessionMessagesResponse, type SessionPatchApplyInput, type SessionPatchApplyResult, SessionPatchReducer, type SessionPatchState, type SessionPatchStatus, SessionRecord, type SessionSubscriptionHandlers, type SessionTurnIndexItem, SessionTurnIndexResponse, type SessionTurnRecord, SessionTurnResponse, type SessionTurnSegmentRecord, SessionTurnSignedUrlsResponse, SessionTurnStreamSnapshotResponse, SessionTurnWindowResponse, SessionTurnsPaginatedResponse, SpaceAccess, SpaceAccessPolicy, SpaceBootstrapSource, SpaceChannelBindingInput, type SpaceChannelBindingRecord, SpaceCheckpointDetailResponse, SpaceConfig, SpaceConfigInput, SpaceConfigResponse, SpaceCreateResponse, SpaceEnvInput, type SpaceEventName, SpaceFsCompleteUploadInput, SpaceFsCompleteUploadResponse, SpaceFsCreateUploadInput, SpaceFsCreateUploadResponse, SpaceFsEncoding, SpaceFsEntry, SpaceFsFileKind, SpaceFsFileResponse, SpaceFsMoveInput, SpaceFsPreparingFile, SpaceFsReadFilesError, SpaceFsReadFilesInput, SpaceFsReadFilesResponse, SpaceFsTreeResponse, SpaceFsUploadDestination, SpaceFsUploadEntry, SpaceFsUploadError, SpaceFsUploadPlanEntry, SpaceFsUploadPlanEntryInput, SpaceFsUploadProgress, SpaceFsUploadResponse, SpaceFsWriteFileInput, SpaceInvitation, SpaceListItem, SpaceMember, SpaceMeta, SpaceModListItem, SpacePublicProfile, SpaceRecord, SpaceRole, SpaceSandboxAutoDestroyPolicy, SpaceSandboxConfig, SpaceSessionsResponse, SpaceUsageHourlyStat, SpaceUsageResponse, SpaceUsageSummary, TaskRunDetailResponse, TaskRunRecord, UserProfile, UserRulesResponse, UsersApi, VoiceApi, type VoiceInputCallbacks, VoiceInputClient, type VoiceInputClientOptions, type VoiceInputCreateOptions, type VoiceInputEvent, type WebSocketConnectionState, WebsocketClient, type WorkAuthorizeResponse, type WorkCreateInput, type WorkRecord, WorkRuntimeApi, type WorkRuntimeContext, type WorkSessionResponse, type WorkStatus, type WorkTargetType, type WorkUpdateInput, WorksApi, assertGenerationRequestAllowedByPolicy, createCohubClient, createHttpClient, createSessionGenerationStreamClient, createSessionPatchReducer, createVoiceInputClient, createWebsocketClient, createWorkRuntime, decodeGenerationPolicy, encodeGenerationPolicy, filterGenerationDeclarationsByPolicy, findGenerationModelPolicy, getAllowedGenerationModelIds, normalizeBaseUrl, normalizeGenerationPolicy, normalizeVoiceInputWebsocketUrl, normalizeWebsocketUrl, parseAssistantMessageCommit, parseGenerationPolicyFromEnv, resolveApiBaseUrl, resolveCohubEnvironment, resolveVoiceInputWebsocketUrl, resolveWebsocketUrl };
package/dist/index.js CHANGED
@@ -102,6 +102,9 @@ var WorksApi = class {
102
102
  listBySpace(spaceId) {
103
103
  return this.transport.request(`/api/works/space/${spaceId}`);
104
104
  }
105
+ get(id) {
106
+ return this.transport.request(`/api/works/${id}`);
107
+ }
105
108
  getBySlug(username, spaceSlug, workSlug) {
106
109
  return this.transport.request(`/api/works/by-slug/${encodeURIComponent(username)}/${encodeURIComponent(spaceSlug)}/${encodeURIComponent(workSlug)}`);
107
110
  }
@@ -112,6 +115,16 @@ var WorksApi = class {
112
115
  body: JSON.stringify(input)
113
116
  });
114
117
  }
118
+ update(id, input) {
119
+ return this.transport.request(`/api/works/${id}`, {
120
+ method: "PATCH",
121
+ headers: { "Content-Type": "application/json" },
122
+ body: JSON.stringify(input)
123
+ });
124
+ }
125
+ delete(id) {
126
+ return this.transport.request(`/api/works/${id}`, { method: "DELETE" });
127
+ }
115
128
  createSession(workId) {
116
129
  return this.transport.request(`/api/works/${workId}/session`, { method: "POST" });
117
130
  }
@@ -130,7 +143,7 @@ const hasParent = () => isBrowser() && window.parent !== window;
130
143
  const getParentOrigin = () => {
131
144
  if (!isBrowser()) return null;
132
145
  const ancestorOrigin = window.location.ancestorOrigins?.[0];
133
- if (ancestorOrigin) return ancestorOrigin;
146
+ if (typeof ancestorOrigin === "string" && ancestorOrigin) return ancestorOrigin;
134
147
  try {
135
148
  return document.referrer ? new URL(document.referrer).origin : null;
136
149
  } catch {
@@ -138,22 +151,37 @@ const getParentOrigin = () => {
138
151
  }
139
152
  };
140
153
  let trustedParentOrigin = null;
141
- const request = (message, timeoutMs = 1200) => {
154
+ const request = (message, timeoutMs = 1200, retryIntervalMs) => {
142
155
  if (!hasParent()) return Promise.resolve(null);
143
156
  const requestId = globalThis.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random()}`;
144
157
  return new Promise((resolve, reject) => {
145
- const timer = setTimeout(() => {
158
+ let retryTimer = null;
159
+ const parentOrigin = trustedParentOrigin ?? getParentOrigin();
160
+ const postRequest = () => {
161
+ try {
162
+ window.parent.postMessage({
163
+ ...message,
164
+ requestId
165
+ }, parentOrigin ?? "*");
166
+ } catch {
167
+ return;
168
+ }
169
+ };
170
+ const cleanup = () => {
171
+ clearTimeout(timer);
172
+ if (retryTimer) clearInterval(retryTimer);
146
173
  window.removeEventListener("message", onMessage);
174
+ };
175
+ const timer = setTimeout(() => {
176
+ cleanup();
147
177
  resolve(null);
148
178
  }, timeoutMs);
149
- const parentOrigin = trustedParentOrigin ?? getParentOrigin();
150
179
  const onMessage = (event) => {
151
180
  if (event.source !== window.parent) return;
152
181
  if (parentOrigin && event.origin !== parentOrigin) return;
153
182
  const data = event.data;
154
183
  if (!data || data.requestId !== requestId) return;
155
- clearTimeout(timer);
156
- window.removeEventListener("message", onMessage);
184
+ cleanup();
157
185
  trustedParentOrigin = event.origin;
158
186
  if (data.type === "cohub.work.error") {
159
187
  reject(new Error(data.message));
@@ -162,16 +190,14 @@ const request = (message, timeoutMs = 1200) => {
162
190
  resolve(data);
163
191
  };
164
192
  window.addEventListener("message", onMessage);
165
- window.parent.postMessage({
166
- ...message,
167
- requestId
168
- }, parentOrigin ?? "*");
193
+ postRequest();
194
+ if (retryIntervalMs) retryTimer = setInterval(postRequest, retryIntervalMs);
169
195
  });
170
196
  };
171
197
  var WorkRuntimeApi = class {
172
198
  token = null;
173
199
  async context() {
174
- return (await request({ type: "cohub.work.context" }, 8e3))?.context ?? null;
200
+ return (await request({ type: "cohub.work.context" }, 8e3, 250))?.context ?? null;
175
201
  }
176
202
  async getAccessToken(options) {
177
203
  if (this.token && !options?.forceRefresh) return this.token;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neta-art/cohub",
3
- "version": "1.27.1",
3
+ "version": "1.28.1",
4
4
  "description": "Cohub SDK for spaces, sessions, checkpoints, and realtime agent collaboration.",
5
5
  "license": "UNLICENSED",
6
6
  "private": false,