@neta-art/cohub 1.16.0 → 1.17.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.
@@ -241,43 +241,41 @@ type FeishuChannelConfig = {
241
241
  };
242
242
  type ChannelConfig = DiscordChannelConfig | FeishuChannelConfig | Record<string, unknown>;
243
243
  //#endregion
244
- //#region ../protocol/src/generation/index.d.ts
244
+ //#region ../../node_modules/.pnpm/@neta-art+generation@0.1.2/node_modules/@neta-art/generation/dist/builtins-BE6FhnwP.d.ts
245
+ //#region src/types.d.ts
246
+ declare const MODEL_SCHEMA: "neta.generation.model.v1";
245
247
  type GenerationSource = {
246
248
  type: "url";
247
249
  url: string;
248
250
  } | {
249
251
  type: "base64";
250
- media_type: string;
252
+ mediaType: string;
251
253
  data: string;
252
- } | {
253
- type: "space_file";
254
- space_id: string;
255
- path: string;
256
254
  };
257
255
  type GenerationContentBlockMeta = Record<string, unknown>;
258
256
  type GenerationContentBlock = {
259
257
  type: "text";
260
258
  text: string;
261
- _meta?: GenerationContentBlockMeta;
259
+ meta?: GenerationContentBlockMeta;
262
260
  } | {
263
261
  type: "image";
264
262
  source: GenerationSource;
265
- _meta?: GenerationContentBlockMeta;
263
+ meta?: GenerationContentBlockMeta;
266
264
  } | {
267
265
  type: "video";
268
266
  source: GenerationSource;
269
- _meta?: GenerationContentBlockMeta;
267
+ meta?: GenerationContentBlockMeta;
270
268
  } | {
271
269
  type: "audio";
272
270
  source: GenerationSource;
273
- _meta?: GenerationContentBlockMeta;
271
+ meta?: GenerationContentBlockMeta;
274
272
  };
275
273
  type GenerationContentSpec = {
276
274
  type: "text" | "image" | "video" | "audio";
277
275
  required?: boolean;
278
276
  min?: number;
279
277
  max?: number;
280
- sources?: Array<"url" | "base64" | "space_file">;
278
+ sources?: Array<GenerationSource["type"]>;
281
279
  merge?: "newline" | "space" | "concat";
282
280
  meta?: Record<string, unknown>;
283
281
  description?: string;
@@ -312,6 +310,33 @@ type GenerationParameterSpec = {
312
310
  description?: string;
313
311
  examples?: boolean[];
314
312
  };
313
+ type GenerationModelDeclaration = {
314
+ schema: typeof MODEL_SCHEMA;
315
+ model: string;
316
+ title?: string;
317
+ description?: string;
318
+ adapter: {
319
+ type: string;
320
+ };
321
+ content: {
322
+ input: GenerationContentSpec[];
323
+ };
324
+ parameters?: Record<string, GenerationParameterSpec>;
325
+ examples?: Array<{
326
+ title?: string;
327
+ request: GenerateRequest;
328
+ }>;
329
+ };
330
+ type GenerateRequest = {
331
+ model: string;
332
+ content: GenerationContentBlock[];
333
+ parameters?: Record<string, unknown>;
334
+ apiKey?: string;
335
+ baseUrl?: string;
336
+ metadata?: Record<string, unknown>;
337
+ };
338
+ //#endregion
339
+ //#region ../protocol/src/generation/index.d.ts
315
340
  declare const GENERATION_TASK_TYPE: "generation";
316
341
  type CreateGenerationTaskRequest = {
317
342
  spaceId: string;
@@ -330,27 +355,7 @@ type GenerationTaskResult = {
330
355
  output: GenerationContentBlock[];
331
356
  metadata?: Record<string, unknown>;
332
357
  };
333
- type GenerationExampleRequest = Omit<CreateGenerationTaskRequest, "spaceId">;
334
- type GenerationDeclaration = {
335
- schema: "cohub.generation.v1";
336
- model: string;
337
- title?: string;
338
- description?: string;
339
- adapter: {
340
- type: string;
341
- base_url: string;
342
- api_key: string;
343
- };
344
- content: {
345
- input: GenerationContentSpec[];
346
- };
347
- parameters?: Record<string, GenerationParameterSpec>;
348
- examples?: Array<{
349
- title?: string;
350
- request: GenerationExampleRequest;
351
- }>;
352
- };
353
- type PublicGenerationDeclaration = Omit<GenerationDeclaration, "adapter">;
358
+ type PublicGenerationDeclaration = Omit<GenerationModelDeclaration, "adapter">;
354
359
  type ListGenerationModelsResponse = {
355
360
  models: PublicGenerationDeclaration[];
356
361
  };
@@ -1295,7 +1300,7 @@ type GenerationStreamIntermediateMessage = {
1295
1300
  };
1296
1301
  type GenerationStreamStateEvent = {
1297
1302
  type: "state";
1298
- source: "snapshot" | "patch" | "progress";
1303
+ source: "patch";
1299
1304
  state: SessionPatchState;
1300
1305
  messageId: string | null;
1301
1306
  messageOrdinal: number | null;
@@ -1324,7 +1329,7 @@ type GenerationStreamErrorEvent = {
1324
1329
  };
1325
1330
  type GenerationStreamOutOfSyncEvent = {
1326
1331
  type: "out_of_sync";
1327
- source: "snapshot" | "patch";
1332
+ source: "patch";
1328
1333
  reason: "duplicate" | "version_mismatch" | "invalid";
1329
1334
  state: SessionPatchState;
1330
1335
  rawEvent: WebsocketEventPayload;
@@ -1348,7 +1353,7 @@ declare class SessionGenerationStreamClient {
1348
1353
  private messageId;
1349
1354
  private messageOrdinal;
1350
1355
  private intermediateMessages;
1351
- private progressState;
1356
+ private patchState;
1352
1357
  constructor(websocketClient: WebsocketClient | null, spaceId: string, sessionId: string);
1353
1358
  subscribe(handlers: GenerationStreamSubscriptionHandlers): () => void;
1354
1359
  private emit;
@@ -1357,9 +1362,7 @@ declare class SessionGenerationStreamClient {
1357
1362
  private addIntermediateMessage;
1358
1363
  private handleAppliedState;
1359
1364
  private prepareMessageBoundary;
1360
- private handleSnapshot;
1361
1365
  private handlePatch;
1362
- private handleProgress;
1363
1366
  private handlePersisted;
1364
1367
  private handleFinalized;
1365
1368
  private handleEvent;
@@ -1392,23 +1395,16 @@ declare class PublicInviteApi {
1392
1395
  //#endregion
1393
1396
  //#region src/apis/spaces.d.ts
1394
1397
  type SessionSubscriptionHandlers = {
1395
- patch?: (event: WebsocketEventPayload) => void;
1396
- /**
1397
- * @deprecated Use `session.subscribeGeneration({ state })` for normalized
1398
- * snapshot/patch/progress generation state.
1399
- */
1400
- patchState?: (result: SessionPatchApplyResult) => void; /** @deprecated Use `session.subscribeGeneration({ state })`. */
1401
- snapshot?: (event: WebsocketEventPayload) => void; /** @deprecated Legacy progress events are normalized by `subscribeGeneration`. */
1402
- progress?: (event: WebsocketEventPayload) => void; /** @deprecated Use `session.subscribeGeneration({ commit, finalized })`. */
1403
- final?: (event: WebsocketEventPayload) => void;
1398
+ patch?: (event: WebsocketEventPayload) => void; /** @deprecated Use `session.subscribeGeneration({ state })`. */
1399
+ patchState?: (result: SessionPatchApplyResult) => void;
1404
1400
  turnUpdated?: (event: WebsocketEventPayload) => void;
1405
1401
  turnFinalized?: (event: WebsocketEventPayload) => void;
1406
1402
  error?: (event: WebsocketEventPayload) => void;
1407
1403
  persisted?: (event: WebsocketEventPayload) => void;
1408
1404
  event?: (event: WebsocketEventPayload) => void;
1409
1405
  };
1410
- type SessionEventName = "turn.patch" | "turn.snapshot" | "turn.progress" | "turn.final" | "turn.updated" | "turn.error" | "message.persisted";
1411
- type SpaceEventName = SessionEventName | "ports.changed" | "event";
1406
+ type SessionEventName = "created" | "updated" | "turn.created" | "turn.patch" | "turn.updated" | "turn.finalized" | "turn.error" | "message.persisted";
1407
+ type SpaceEventName = SessionEventName | "ports.changed" | "task.created" | "task.updated" | "event";
1412
1408
  type SessionSendMessageInput = {
1413
1409
  content: ContentBlock[];
1414
1410
  model?: string;
@@ -1856,4 +1852,4 @@ declare class CohubHttpClient {
1856
1852
  }
1857
1853
  declare const createHttpClient: (options?: CohubClientOptions) => CohubHttpClient;
1858
1854
  //#endregion
1859
- export { CreateInvitationInput as $, SpaceFsReadFilesInput as $t, SessionPatchStatus as A, TaskRunRecord as An, SessionTurnWindowResponse as At, GenerationsApi as B, ChannelConfig as Bn, SpaceCreateResponse as Bt, SessionGenerationStreamClient as C, SpaceSandboxAutoDestroyPolicy as Cn, SessionMessagesPaginatedResponse as Ct, SessionPatchApplyResult as D, SpaceUsageResponse as Dn, SessionTurnResponse as Dt, SessionPatchApplyInput as E, SpaceUsageHourlyStat as En, SessionTurnIndexResponse as Et, CreatePublicAssetUploadResponse as F, CreateGenerationTaskResponse as Fn, SpaceChannelBindingInput as Ft, BillingCreditExpiryGroup as G, SessionTurnIndexItem as Gn, SpaceFsCreateUploadResponse as Gt, ChannelsApi as H, MessageRecord as Hn, SpaceFsCompleteUploadInput as Ht, PublicAssetPurpose as I, GenerationContentBlock as In, SpaceCheckpointDetailResponse as It, BillingCreditUnit as J, Fetch as Jn, SpaceFsFileKind as Jt, BillingCreditGrantStatus as K, SessionTurnRecord as Kn, SpaceFsEncoding as Kt, PublicAssetsApi as L, GenerationTaskResult as Ln, SpaceConfig as Lt, SessionAccessApi as M, UserRulesResponse as Mn, SpaceAccess as Mt, SearchApi as N, UserSshKey as Nn, SpaceAccessPolicy as Nt, SessionPatchReducer as O, SpaceUsageSummary as On, SessionTurnSignedUrlsResponse as Ot, CreatePublicAssetUploadInput as P, CreateGenerationTaskRequest as Pn, SpaceBootstrapSource as Pt, CheckpointRecord as Q, SpaceFsReadFilesError as Qt, PromptsApi as R, ListGenerationModelsResponse as Rn, SpaceConfigInput as Rt, GenerationStreamTurnUpdatedEvent as S, SpaceRole as Sn, SessionMessageResponse as St, parseAssistantMessageCommit as T, SpaceSessionsResponse as Tn, SessionRecord as Tt, AcceptInvitationResponse as U, SessionForkRecord as Un, SpaceFsCompleteUploadResponse as Ut, CronJobsApi as V, DiscordChannelConfig as Vn, SpaceEnvInput as Vt, ApiError as W, SessionTurnSegmentRecord as Wn, SpaceFsCreateUploadInput as Wt, BillingPluginStatus as X, HttpTransport as Xn, SpaceFsMoveInput as Xt, BillingOpenOverageStatus as Y, HttpError as Yn, SpaceFsFileResponse as Yt, Channel as Z, RawHttpResponse as Zn, SpaceFsPreparingFile as Zt, GenerationStreamFinalizedEvent as _, SpaceMember as _n, ModelCatalogEntry as _t, SessionEventName as a, SpaceFsUploadPlanEntry as an, CronJobRecord as at, GenerationStreamStateEvent as b, SpacePublicProfile as bn, PromptTemplateCatalogResponse as bt, SpaceClient as c, SpaceFsUploadResponse as cn, ExploreSpacesResponse as ct, WebSocketConnectionState as d, SpaceInvitation as dn, GlobalSearchType as dt, SpaceFsReadFilesResponse as en, CreateInvitationResponse as et, PublicInviteApi as f, SpaceListItem as fn, InvitationDetail as ft, GenerationStreamEvent as g, SpaceMarkResourceType as gn, MeResponse as gt, GenerationStreamErrorEvent as h, SpaceMarkRecord as hn, JsonValue as ht, TasksApi as i, SpaceFsUploadError as in, CreateSpacePromptResponse as it, createSessionPatchReducer as j, UserProfile as jn, SessionTurnsPaginatedResponse as jt, SessionPatchState as k, TaskRunDetailResponse as kn, SessionTurnStreamSnapshotResponse as kt, SpaceEventName as l, SpaceFsWriteFileInput as ln, GlobalSearchResponse as lt, GenerationStreamCommitEvent as m, SpaceMarkListItem as mn, JsonPrimitive as mt, createHttpClient as n, SpaceFsUploadDestination as nn, CreateSpaceModInput as nt, SessionSubscriptionHandlers as o, SpaceFsUploadPlanEntryInput as on, ExploreSection as ot, AssistantMessageCommit as p, SpaceMarkKind as pn, JsonObject as pt, BillingCreditStatus as q, CohubClientOptions as qn, SpaceFsEntry as qt, UserApi as r, SpaceFsUploadEntry as rn, CreateSpacePromptInput as rt, SpaceChannelBindingRecord as s, SpaceFsUploadProgress as sn, ExploreSpaceItem as st, CohubHttpClient as t, SpaceFsTreeResponse as tn, CreateSpaceInput as tt, SpacesApi as u, SpaceGitInfo as un, GlobalSearchResult as ut, GenerationStreamIntermediateMessage as v, SpaceMeta as vn, Permission as vt, createSessionGenerationStreamClient as w, SpaceSandboxConfig as wn, SessionMessagesResponse as wt, GenerationStreamSubscriptionHandlers as x, SpaceRecord as xn, SessionBindingRecord as xt, GenerationStreamOutOfSyncEvent as y, SpaceModListItem as yn, PromptTemplateCatalogEntry as yt, ModelsApi as z, PublicGenerationDeclaration as zn, SpaceConfigResponse as zt };
1855
+ export { CreateInvitationInput as $, SpaceFsReadFilesInput as $t, SessionPatchStatus as A, TaskRunRecord as An, SessionTurnWindowResponse as At, GenerationsApi as B, ChannelConfig as Bn, SpaceCreateResponse as Bt, SessionGenerationStreamClient as C, SpaceSandboxAutoDestroyPolicy as Cn, SessionMessagesPaginatedResponse as Ct, SessionPatchApplyResult as D, SpaceUsageResponse as Dn, SessionTurnResponse as Dt, SessionPatchApplyInput as E, SpaceUsageHourlyStat as En, SessionTurnIndexResponse as Et, CreatePublicAssetUploadResponse as F, CreateGenerationTaskResponse as Fn, SpaceChannelBindingInput as Ft, BillingCreditExpiryGroup as G, SessionTurnIndexItem as Gn, SpaceFsCreateUploadResponse as Gt, ChannelsApi as H, MessageRecord as Hn, SpaceFsCompleteUploadInput as Ht, PublicAssetPurpose as I, GenerationTaskResult as In, SpaceCheckpointDetailResponse as It, BillingCreditUnit as J, Fetch as Jn, SpaceFsFileKind as Jt, BillingCreditGrantStatus as K, SessionTurnRecord as Kn, SpaceFsEncoding as Kt, PublicAssetsApi as L, ListGenerationModelsResponse as Ln, SpaceConfig as Lt, SessionAccessApi as M, UserRulesResponse as Mn, SpaceAccess as Mt, SearchApi as N, UserSshKey as Nn, SpaceAccessPolicy as Nt, SessionPatchReducer as O, SpaceUsageSummary as On, SessionTurnSignedUrlsResponse as Ot, CreatePublicAssetUploadInput as P, CreateGenerationTaskRequest as Pn, SpaceBootstrapSource as Pt, CheckpointRecord as Q, SpaceFsReadFilesError as Qt, PromptsApi as R, PublicGenerationDeclaration as Rn, SpaceConfigInput as Rt, GenerationStreamTurnUpdatedEvent as S, SpaceRole as Sn, SessionMessageResponse as St, parseAssistantMessageCommit as T, SpaceSessionsResponse as Tn, SessionRecord as Tt, AcceptInvitationResponse as U, SessionForkRecord as Un, SpaceFsCompleteUploadResponse as Ut, CronJobsApi as V, DiscordChannelConfig as Vn, SpaceEnvInput as Vt, ApiError as W, SessionTurnSegmentRecord as Wn, SpaceFsCreateUploadInput as Wt, BillingPluginStatus as X, HttpTransport as Xn, SpaceFsMoveInput as Xt, BillingOpenOverageStatus as Y, HttpError as Yn, SpaceFsFileResponse as Yt, Channel as Z, RawHttpResponse as Zn, SpaceFsPreparingFile as Zt, GenerationStreamFinalizedEvent as _, SpaceMember as _n, ModelCatalogEntry as _t, SessionEventName as a, SpaceFsUploadPlanEntry as an, CronJobRecord as at, GenerationStreamStateEvent as b, SpacePublicProfile as bn, PromptTemplateCatalogResponse as bt, SpaceClient as c, SpaceFsUploadResponse as cn, ExploreSpacesResponse as ct, WebSocketConnectionState as d, SpaceInvitation as dn, GlobalSearchType as dt, SpaceFsReadFilesResponse as en, CreateInvitationResponse as et, PublicInviteApi as f, SpaceListItem as fn, InvitationDetail as ft, GenerationStreamEvent as g, SpaceMarkResourceType as gn, MeResponse as gt, GenerationStreamErrorEvent as h, SpaceMarkRecord as hn, JsonValue as ht, TasksApi as i, SpaceFsUploadError as in, CreateSpacePromptResponse as it, createSessionPatchReducer as j, UserProfile as jn, SessionTurnsPaginatedResponse as jt, SessionPatchState as k, TaskRunDetailResponse as kn, SessionTurnStreamSnapshotResponse as kt, SpaceEventName as l, SpaceFsWriteFileInput as ln, GlobalSearchResponse as lt, GenerationStreamCommitEvent as m, SpaceMarkListItem as mn, JsonPrimitive as mt, createHttpClient as n, SpaceFsUploadDestination as nn, CreateSpaceModInput as nt, SessionSubscriptionHandlers as o, SpaceFsUploadPlanEntryInput as on, ExploreSection as ot, AssistantMessageCommit as p, SpaceMarkKind as pn, JsonObject as pt, BillingCreditStatus as q, CohubClientOptions as qn, SpaceFsEntry as qt, UserApi as r, SpaceFsUploadEntry as rn, CreateSpacePromptInput as rt, SpaceChannelBindingRecord as s, SpaceFsUploadProgress as sn, ExploreSpaceItem as st, CohubHttpClient as t, SpaceFsTreeResponse as tn, CreateSpaceInput as tt, SpacesApi as u, SpaceGitInfo as un, GlobalSearchResult as ut, GenerationStreamIntermediateMessage as v, SpaceMeta as vn, Permission as vt, createSessionGenerationStreamClient as w, SpaceSandboxConfig as wn, SessionMessagesResponse as wt, GenerationStreamSubscriptionHandlers as x, SpaceRecord as xn, SessionBindingRecord as xt, GenerationStreamOutOfSyncEvent as y, SpaceModListItem as yn, PromptTemplateCatalogEntry as yt, ModelsApi as z, GenerationContentBlock as zn, SpaceConfigResponse as zt };
@@ -95,7 +95,10 @@ var GenerationsApi = class {
95
95
  if (!isGenerationTaskResult(detail.run.result)) throw new Error("Generation task completed without a valid result");
96
96
  return detail.run.result;
97
97
  }
98
- if (detail.run.status === "failed") throw new Error(detail.run.errorMessage || "Generation task failed");
98
+ if (detail.run.status === "failed") {
99
+ const message = detail.run.errorMessage || "Generation task failed";
100
+ throw new Error(`${message}\ntask ID: ${taskRunId}`);
101
+ }
99
102
  const remainingMs = timeoutMs - (Date.now() - startedAt);
100
103
  if (remainingMs <= 0) throw new Error(`Generation task timed out after ${timeoutMs}ms`);
101
104
  await sleep(Math.min(intervalMs, remainingMs), options.signal);
@@ -317,7 +320,7 @@ const createIdleState = (input) => ({
317
320
  function cloneBlock(block) {
318
321
  return structuredClone(block);
319
322
  }
320
- function getStreamIndex$1(block) {
323
+ function getStreamIndex(block) {
321
324
  const value = block._meta?.streamIndex;
322
325
  return typeof value === "number" && Number.isFinite(value) ? value : null;
323
326
  }
@@ -328,19 +331,19 @@ function blockIdentityCompatible(prev, next) {
328
331
  return true;
329
332
  }
330
333
  function findBlockByStreamIndex(blocks, streamIndex) {
331
- return blocks.findIndex((block) => getStreamIndex$1(block) === streamIndex);
334
+ return blocks.findIndex((block) => getStreamIndex(block) === streamIndex);
332
335
  }
333
336
  function findBlockForReplacement(blocks, streamIndex, nextBlock) {
334
- const compatibleIndex = blocks.findIndex((block) => getStreamIndex$1(block) === streamIndex && blockIdentityCompatible(block, nextBlock));
337
+ const compatibleIndex = blocks.findIndex((block) => getStreamIndex(block) === streamIndex && blockIdentityCompatible(block, nextBlock));
335
338
  if (compatibleIndex >= 0) return compatibleIndex;
336
- const sameStreamIndex = blocks.findIndex((block) => getStreamIndex$1(block) === streamIndex);
339
+ const sameStreamIndex = blocks.findIndex((block) => getStreamIndex(block) === streamIndex);
337
340
  if (sameStreamIndex >= 0 && nextBlock.type !== "tool_use" && nextBlock.type !== "tool_result") return sameStreamIndex;
338
341
  return -1;
339
342
  }
340
343
  function sortBlocksByStreamIndex(blocks) {
341
344
  return [...blocks].sort((a, b) => {
342
- const aIndex = getStreamIndex$1(a);
343
- const bIndex = getStreamIndex$1(b);
345
+ const aIndex = getStreamIndex(a);
346
+ const bIndex = getStreamIndex(b);
344
347
  if (aIndex == null && bIndex == null) return 0;
345
348
  if (aIndex == null) return 1;
346
349
  if (bIndex == null) return -1;
@@ -694,14 +697,6 @@ const createSessionPatchReducer = () => new SessionPatchReducer();
694
697
  //#region src/session-generation-stream.ts
695
698
  const isRecord = (value) => Boolean(value && typeof value === "object" && !Array.isArray(value));
696
699
  const isContentBlockArray = (value) => Array.isArray(value) && value.every((item) => isRecord(item) && typeof item.type === "string");
697
- const stringField = (record, key) => {
698
- const value = record[key];
699
- return typeof value === "string" ? value : null;
700
- };
701
- const numberField = (record, key) => {
702
- const value = record[key];
703
- return typeof value === "number" && Number.isFinite(value) ? value : null;
704
- };
705
700
  const getMessageKind = (message) => {
706
701
  const kind = message.meta?.messageKind;
707
702
  return typeof kind === "string" ? kind : null;
@@ -734,68 +729,6 @@ function parseAssistantMessageCommit(message) {
734
729
  isFinal: false
735
730
  };
736
731
  }
737
- function cloneContentBlock(block) {
738
- return structuredClone(block);
739
- }
740
- function getStreamIndex(block) {
741
- const value = block._meta?.streamIndex;
742
- return typeof value === "number" && Number.isFinite(value) ? value : null;
743
- }
744
- function findMergeTargetIndex(result, block) {
745
- const streamIndex = getStreamIndex(block);
746
- if (streamIndex != null) return result.findIndex((existing) => existing.type === block.type && getStreamIndex(existing) === streamIndex);
747
- if (block.type === "tool_use") return result.findIndex((existing) => existing.type === "tool_use" && existing.id === block.id);
748
- if (block.type === "tool_result") return result.findIndex((existing) => existing.type === "tool_result" && existing.tool_use_id === block.tool_use_id);
749
- return -1;
750
- }
751
- function mergeStreamingDeltaBlocks(existing, delta) {
752
- if (delta.length === 0) return existing;
753
- const result = existing.map(cloneContentBlock);
754
- for (const block of delta) {
755
- const targetIndex = findMergeTargetIndex(result, block);
756
- if (targetIndex === -1) {
757
- result.push(cloneContentBlock(block));
758
- continue;
759
- }
760
- const target = result[targetIndex];
761
- if (block.type === "text" && target?.type === "text") {
762
- target.text += block.text;
763
- continue;
764
- }
765
- if (block.type === "thinking" && target?.type === "thinking") {
766
- target.thinking += block.thinking;
767
- if (block.signature) target.signature = block.signature;
768
- if (block._meta) target._meta = {
769
- ...target._meta ?? {},
770
- ...block._meta
771
- };
772
- continue;
773
- }
774
- result[targetIndex] = Object.assign(target ?? {}, cloneContentBlock(block));
775
- }
776
- return result;
777
- }
778
- function parseSnapshotMessage(value) {
779
- if (!isRecord(value) || !isContentBlockArray(value.content)) return null;
780
- return {
781
- messageId: stringField(value, "messageId"),
782
- messageOrdinal: numberField(value, "messageOrdinal"),
783
- content: value.content,
784
- ...typeof value.id === "string" ? { id: value.id } : {},
785
- ...typeof value.sessionId === "string" ? { sessionId: value.sessionId } : {},
786
- ...value.role === "user" || value.role === "assistant" || value.role === "system" ? { role: value.role } : {},
787
- ...typeof value.text === "string" ? { text: value.text } : {},
788
- ...typeof value.provider === "string" ? { provider: value.provider } : {},
789
- ...typeof value.model === "string" ? { model: value.model } : {},
790
- ...typeof value.stopReason === "string" ? { stopReason: value.stopReason } : {},
791
- ...typeof value.errorMessage === "string" ? { errorMessage: value.errorMessage } : {},
792
- ...isRecord(value.usage) ? { usage: value.usage } : {},
793
- ...typeof value.durationMs === "number" ? { durationMs: value.durationMs } : {},
794
- ...typeof value.toolCallsObjectKey === "string" ? { toolCallsObjectKey: value.toolCallsObjectKey } : {},
795
- ...isRecord(value.meta) ? { meta: value.meta } : {},
796
- ...typeof value.createdAt === "string" ? { createdAt: value.createdAt } : {}
797
- };
798
- }
799
732
  function messageRecordToIntermediate(message) {
800
733
  if (!isContentBlockArray(message.content) || message.content.length === 0) return null;
801
734
  const meta = isRecord(message.meta) ? message.meta : {};
@@ -835,7 +768,7 @@ var SessionGenerationStreamClient = class SessionGenerationStreamClient {
835
768
  messageId = null;
836
769
  messageOrdinal = null;
837
770
  intermediateMessages = [];
838
- progressState = null;
771
+ patchState = null;
839
772
  constructor(websocketClient, spaceId, sessionId) {
840
773
  this.websocketClient = websocketClient;
841
774
  this.spaceId = spaceId;
@@ -863,7 +796,7 @@ var SessionGenerationStreamClient = class SessionGenerationStreamClient {
863
796
  resetCurrentMessage() {
864
797
  this.messageId = null;
865
798
  this.messageOrdinal = null;
866
- this.progressState = null;
799
+ this.patchState = null;
867
800
  }
868
801
  appendCurrentMessage(state) {
869
802
  if (state.contentBlocks.length === 0) return;
@@ -891,14 +824,14 @@ var SessionGenerationStreamClient = class SessionGenerationStreamClient {
891
824
  if (!result.applied) {
892
825
  this.emit(handlers, {
893
826
  type: "out_of_sync",
894
- source: source === "progress" ? "patch" : source,
827
+ source,
895
828
  reason: result.reason,
896
829
  state: result.state,
897
830
  rawEvent
898
831
  });
899
832
  return;
900
833
  }
901
- this.progressState = result.state;
834
+ this.patchState = result.state;
902
835
  this.messageId = messageId;
903
836
  this.messageOrdinal = messageOrdinal;
904
837
  this.emit(handlers, {
@@ -912,7 +845,7 @@ var SessionGenerationStreamClient = class SessionGenerationStreamClient {
912
845
  });
913
846
  }
914
847
  prepareMessageBoundary(input) {
915
- const current = this.progressState ?? this.reducer.get({
848
+ const current = this.patchState ?? this.reducer.get({
916
849
  spaceId: this.spaceId,
917
850
  sessionId: this.sessionId
918
851
  });
@@ -944,45 +877,6 @@ var SessionGenerationStreamClient = class SessionGenerationStreamClient {
944
877
  }
945
878
  return nextMessageId;
946
879
  }
947
- handleSnapshot(event, handlers) {
948
- const payload = event.payload;
949
- const current = isRecord(payload.current) ? payload.current : null;
950
- const content = current ? current.content : null;
951
- const seq = typeof payload.seq === "number" ? payload.seq : null;
952
- if (!current || !isContentBlockArray(content) || seq === null) {
953
- this.emit(handlers, {
954
- type: "out_of_sync",
955
- source: "snapshot",
956
- reason: "invalid",
957
- state: this.reducer.get({
958
- spaceId: this.spaceId,
959
- sessionId: this.sessionId
960
- }),
961
- rawEvent: event
962
- });
963
- return;
964
- }
965
- const turnId = typeof payload.turnId === "string" ? payload.turnId : null;
966
- const anchorUserMessageId = typeof payload.anchorUserMessageId === "string" ? payload.anchorUserMessageId : null;
967
- const messageOrdinal = numberField(current, "messageOrdinal");
968
- const messageId = this.prepareMessageBoundary({
969
- turnId,
970
- messageId: stringField(current, "messageId"),
971
- messageOrdinal,
972
- anchorUserMessageId
973
- });
974
- this.intermediateMessages = Array.isArray(payload.intermediateMessages) ? payload.intermediateMessages.map(parseSnapshotMessage).filter((message) => message !== null) : [];
975
- const result = this.reducer.applySnapshot({
976
- spaceId: this.spaceId,
977
- sessionId: this.sessionId,
978
- turnId,
979
- seq,
980
- contentBlocks: content,
981
- anchorUserMessageId,
982
- appendPath: stringField(current, "appendPath")
983
- });
984
- this.handleAppliedState(handlers, "snapshot", result, event, messageId, messageOrdinal);
985
- }
986
880
  handlePatch(event, handlers) {
987
881
  const payload = event.payload;
988
882
  const seq = typeof payload.seq === "number" ? payload.seq : null;
@@ -1021,45 +915,6 @@ var SessionGenerationStreamClient = class SessionGenerationStreamClient {
1021
915
  const result = this.reducer.applyPatch(input);
1022
916
  this.handleAppliedState(handlers, "patch", result, event, messageId, messageOrdinal);
1023
917
  }
1024
- handleProgress(event, handlers) {
1025
- const payload = event.payload;
1026
- if (!isContentBlockArray(payload.content)) return;
1027
- const current = this.progressState ?? this.reducer.get({
1028
- spaceId: this.spaceId,
1029
- sessionId: this.sessionId
1030
- });
1031
- const turnId = typeof payload.turnId === "string" ? payload.turnId : current.turnId;
1032
- const anchorUserMessageId = typeof payload.anchorUserMessageId === "string" ? payload.anchorUserMessageId : current.anchorUserMessageId;
1033
- const messageOrdinal = typeof payload.messageOrdinal === "number" ? payload.messageOrdinal : this.messageOrdinal;
1034
- const messageId = this.prepareMessageBoundary({
1035
- turnId,
1036
- messageId: typeof payload.messageId === "string" ? payload.messageId : this.messageId,
1037
- messageOrdinal,
1038
- anchorUserMessageId
1039
- });
1040
- const base = this.progressState?.turnId === turnId ? this.progressState : current;
1041
- const state = {
1042
- ...base,
1043
- spaceId: this.spaceId,
1044
- sessionId: this.sessionId,
1045
- status: "streaming",
1046
- contentBlocks: mergeStreamingDeltaBlocks(base.contentBlocks, payload.content),
1047
- anchorUserMessageId,
1048
- turnId
1049
- };
1050
- this.progressState = state;
1051
- this.messageId = messageId;
1052
- this.messageOrdinal = messageOrdinal;
1053
- this.emit(handlers, {
1054
- type: "state",
1055
- source: "progress",
1056
- state,
1057
- messageId,
1058
- messageOrdinal,
1059
- intermediateMessages: [...this.intermediateMessages],
1060
- rawEvent: event
1061
- });
1062
- }
1063
918
  handlePersisted(event, handlers) {
1064
919
  const message = event.payload.message;
1065
920
  if (!isRecord(message)) return;
@@ -1118,15 +973,9 @@ var SessionGenerationStreamClient = class SessionGenerationStreamClient {
1118
973
  }
1119
974
  handleEvent(event, handlers) {
1120
975
  switch (event.type) {
1121
- case "session.turn.snapshot":
1122
- this.handleSnapshot(event, handlers);
1123
- return;
1124
976
  case "session.turn.patch":
1125
977
  this.handlePatch(event, handlers);
1126
978
  return;
1127
- case "session.turn.progress":
1128
- this.handleProgress(event, handlers);
1129
- return;
1130
979
  case "session.message.persisted":
1131
980
  this.handlePersisted(event, handlers);
1132
981
  return;
@@ -1214,12 +1063,13 @@ const getFilenameFromContentDisposition = (value) => {
1214
1063
  };
1215
1064
  const toSessionEventName = (type) => {
1216
1065
  switch (type) {
1066
+ case "session.created": return "created";
1067
+ case "session.updated": return "updated";
1068
+ case "session.turn.created": return "turn.created";
1217
1069
  case "session.turn.patch": return "turn.patch";
1218
- case "session.turn.snapshot": return "turn.snapshot";
1219
- case "session.turn.progress": return "turn.progress";
1220
1070
  case "session.turn.error": return "turn.error";
1221
1071
  case "session.turn.updated": return "turn.updated";
1222
- case "session.turn.finalized": return "turn.final";
1072
+ case "session.turn.finalized": return "turn.finalized";
1223
1073
  case "session.message.persisted": return "message.persisted";
1224
1074
  default: return null;
1225
1075
  }
@@ -1497,8 +1347,6 @@ var SessionRealtimeClient = class {
1497
1347
  }));
1498
1348
  }
1499
1349
  }
1500
- if (eventName === "turn.snapshot") handlers.snapshot?.(event);
1501
- if (eventName === "turn.progress") handlers.progress?.(event);
1502
1350
  if (eventName === "turn.error") {
1503
1351
  this.patchReducer.fail({
1504
1352
  spaceId: this.spaceId,
@@ -1514,32 +1362,24 @@ var SessionRealtimeClient = class {
1514
1362
  });
1515
1363
  }
1516
1364
  if (eventName === "turn.updated") handlers.turnUpdated?.(event);
1517
- if (eventName === "turn.final") {
1365
+ if (eventName === "turn.finalized") {
1518
1366
  this.patchReducer.complete({
1519
1367
  spaceId: this.spaceId,
1520
1368
  sessionId: this.sessionId,
1521
1369
  turnId: typeof event.payload.turn === "object" && event.payload.turn && "id" in event.payload.turn ? String(event.payload.turn.id) : null
1522
1370
  });
1523
1371
  handlers.turnFinalized?.(event);
1524
- handlers.final?.(event);
1525
- }
1526
- if (isAssistantFinalPersistedEvent(event)) {
1527
- this.patchReducer.complete({
1528
- spaceId: this.spaceId,
1529
- sessionId: this.sessionId,
1530
- turnId: getPersistedMessageTurnId(event)
1531
- });
1532
- handlers.final?.(event);
1533
1372
  }
1373
+ if (isAssistantFinalPersistedEvent(event)) this.patchReducer.complete({
1374
+ spaceId: this.spaceId,
1375
+ sessionId: this.sessionId,
1376
+ turnId: getPersistedMessageTurnId(event)
1377
+ });
1534
1378
  });
1535
1379
  return () => unsubscribe();
1536
1380
  }
1537
1381
  on(type, handler) {
1538
1382
  return this.subscribe({ event: (event) => {
1539
- if (type === "turn.final" && isAssistantFinalPersistedEvent(event)) {
1540
- handler(event);
1541
- return;
1542
- }
1543
1383
  if (toSessionEventName(event.type) === type) handler(event);
1544
1384
  } });
1545
1385
  }
@@ -1653,7 +1493,11 @@ var SpaceEventsApi = class {
1653
1493
  handler(event);
1654
1494
  return;
1655
1495
  }
1656
- if (type === "turn.final" && isAssistantFinalPersistedEvent(event)) {
1496
+ if (type === "task.created" && event.type === "task.created") {
1497
+ handler(event);
1498
+ return;
1499
+ }
1500
+ if (type === "task.updated" && event.type === "task.updated") {
1657
1501
  handler(event);
1658
1502
  return;
1659
1503
  }
package/dist/http.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import { l as ContentBlock } from "./chunks/websocket.js";
2
- import { $ as CreateInvitationInput, $t as SpaceFsReadFilesInput, An as TaskRunRecord, At as SessionTurnWindowResponse, Bn as ChannelConfig, Bt as SpaceCreateResponse, Cn as SpaceSandboxAutoDestroyPolicy, Ct as SessionMessagesPaginatedResponse, Dn as SpaceUsageResponse, Dt as SessionTurnResponse, En as SpaceUsageHourlyStat, Et as SessionTurnIndexResponse, Fn as CreateGenerationTaskResponse, Ft as SpaceChannelBindingInput, G as BillingCreditExpiryGroup, Gn as SessionTurnIndexItem, Gt as SpaceFsCreateUploadResponse, Hn as MessageRecord, Ht as SpaceFsCompleteUploadInput, In as GenerationContentBlock, It as SpaceCheckpointDetailResponse, J as BillingCreditUnit, Jn as Fetch, Jt as SpaceFsFileKind, K as BillingCreditGrantStatus, Kn as SessionTurnRecord, Kt as SpaceFsEncoding, Ln as GenerationTaskResult, Lt as SpaceConfig, Mn as UserRulesResponse, Mt as SpaceAccess, Nn as UserSshKey, Nt as SpaceAccessPolicy, On as SpaceUsageSummary, Ot as SessionTurnSignedUrlsResponse, Pn as CreateGenerationTaskRequest, Pt as SpaceBootstrapSource, Q as CheckpointRecord, Qt as SpaceFsReadFilesError, Rn as ListGenerationModelsResponse, Rt as SpaceConfigInput, Sn as SpaceRole, St as SessionMessageResponse, Tn as SpaceSessionsResponse, Tt as SessionRecord, U as AcceptInvitationResponse, Un as SessionForkRecord, Ut as SpaceFsCompleteUploadResponse, Vn as DiscordChannelConfig, Vt as SpaceEnvInput, W as ApiError, Wn as SessionTurnSegmentRecord, Wt as SpaceFsCreateUploadInput, X as BillingPluginStatus, Xn as HttpTransport, Xt as SpaceFsMoveInput, Y as BillingOpenOverageStatus, Yn as HttpError, Yt as SpaceFsFileResponse, Z as Channel, Zt as SpaceFsPreparingFile, _n as SpaceMember, _t as ModelCatalogEntry, an as SpaceFsUploadPlanEntry, at as CronJobRecord, bn as SpacePublicProfile, bt as PromptTemplateCatalogResponse, cn as SpaceFsUploadResponse, ct as ExploreSpacesResponse, dn as SpaceInvitation, dt as GlobalSearchType, en as SpaceFsReadFilesResponse, et as CreateInvitationResponse, fn as SpaceListItem, ft as InvitationDetail, gn as SpaceMarkResourceType, gt as MeResponse, hn as SpaceMarkRecord, ht as JsonValue, in as SpaceFsUploadError, it as CreateSpacePromptResponse, jn as UserProfile, jt as SessionTurnsPaginatedResponse, kn as TaskRunDetailResponse, kt as SessionTurnStreamSnapshotResponse, ln as SpaceFsWriteFileInput, lt as GlobalSearchResponse, mn as SpaceMarkListItem, mt as JsonPrimitive, n as createHttpClient, nn as SpaceFsUploadDestination, nt as CreateSpaceModInput, on as SpaceFsUploadPlanEntryInput, ot as ExploreSection, pn as SpaceMarkKind, pt as JsonObject, q as BillingCreditStatus, qn as CohubClientOptions, qt as SpaceFsEntry, rn as SpaceFsUploadEntry, rt as CreateSpacePromptInput, sn as SpaceFsUploadProgress, st as ExploreSpaceItem, t as CohubHttpClient, tn as SpaceFsTreeResponse, tt as CreateSpaceInput, un as SpaceGitInfo, ut as GlobalSearchResult, vn as SpaceMeta, vt as Permission, wn as SpaceSandboxConfig, wt as SessionMessagesResponse, xn as SpaceRecord, xt as SessionBindingRecord, yn as SpaceModListItem, yt as PromptTemplateCatalogEntry, zn as PublicGenerationDeclaration, zt as SpaceConfigResponse } from "./chunks/http.js";
2
+ import { $ as CreateInvitationInput, $t as SpaceFsReadFilesInput, An as TaskRunRecord, At as SessionTurnWindowResponse, Bn as ChannelConfig, Bt as SpaceCreateResponse, Cn as SpaceSandboxAutoDestroyPolicy, Ct as SessionMessagesPaginatedResponse, Dn as SpaceUsageResponse, Dt as SessionTurnResponse, En as SpaceUsageHourlyStat, Et as SessionTurnIndexResponse, Fn as CreateGenerationTaskResponse, Ft as SpaceChannelBindingInput, G as BillingCreditExpiryGroup, Gn as SessionTurnIndexItem, Gt as SpaceFsCreateUploadResponse, Hn as MessageRecord, Ht as SpaceFsCompleteUploadInput, In as GenerationTaskResult, It as SpaceCheckpointDetailResponse, J as BillingCreditUnit, Jn as Fetch, Jt as SpaceFsFileKind, K as BillingCreditGrantStatus, Kn as SessionTurnRecord, Kt as SpaceFsEncoding, Ln as ListGenerationModelsResponse, Lt as SpaceConfig, Mn as UserRulesResponse, Mt as SpaceAccess, Nn as UserSshKey, Nt as SpaceAccessPolicy, On as SpaceUsageSummary, Ot as SessionTurnSignedUrlsResponse, Pn as CreateGenerationTaskRequest, Pt as SpaceBootstrapSource, Q as CheckpointRecord, Qt as SpaceFsReadFilesError, Rn as PublicGenerationDeclaration, Rt as SpaceConfigInput, Sn as SpaceRole, St as SessionMessageResponse, Tn as SpaceSessionsResponse, Tt as SessionRecord, U as AcceptInvitationResponse, Un as SessionForkRecord, Ut as SpaceFsCompleteUploadResponse, Vn as DiscordChannelConfig, Vt as SpaceEnvInput, W as ApiError, Wn as SessionTurnSegmentRecord, Wt as SpaceFsCreateUploadInput, X as BillingPluginStatus, Xn as HttpTransport, Xt as SpaceFsMoveInput, Y as BillingOpenOverageStatus, Yn as HttpError, Yt as SpaceFsFileResponse, Z as Channel, Zt as SpaceFsPreparingFile, _n as SpaceMember, _t as ModelCatalogEntry, an as SpaceFsUploadPlanEntry, at as CronJobRecord, bn as SpacePublicProfile, bt as PromptTemplateCatalogResponse, cn as SpaceFsUploadResponse, ct as ExploreSpacesResponse, dn as SpaceInvitation, dt as GlobalSearchType, en as SpaceFsReadFilesResponse, et as CreateInvitationResponse, fn as SpaceListItem, ft as InvitationDetail, gn as SpaceMarkResourceType, gt as MeResponse, hn as SpaceMarkRecord, ht as JsonValue, in as SpaceFsUploadError, it as CreateSpacePromptResponse, jn as UserProfile, jt as SessionTurnsPaginatedResponse, kn as TaskRunDetailResponse, kt as SessionTurnStreamSnapshotResponse, ln as SpaceFsWriteFileInput, lt as GlobalSearchResponse, mn as SpaceMarkListItem, mt as JsonPrimitive, n as createHttpClient, nn as SpaceFsUploadDestination, nt as CreateSpaceModInput, on as SpaceFsUploadPlanEntryInput, ot as ExploreSection, pn as SpaceMarkKind, pt as JsonObject, q as BillingCreditStatus, qn as CohubClientOptions, qt as SpaceFsEntry, rn as SpaceFsUploadEntry, rt as CreateSpacePromptInput, sn as SpaceFsUploadProgress, st as ExploreSpaceItem, t as CohubHttpClient, tn as SpaceFsTreeResponse, tt as CreateSpaceInput, un as SpaceGitInfo, ut as GlobalSearchResult, vn as SpaceMeta, vt as Permission, wn as SpaceSandboxConfig, wt as SessionMessagesResponse, xn as SpaceRecord, xt as SessionBindingRecord, yn as SpaceModListItem, yt as PromptTemplateCatalogEntry, zn as GenerationContentBlock, zt as SpaceConfigResponse } from "./chunks/http.js";
3
3
  export { AcceptInvitationResponse, ApiError, BillingCreditExpiryGroup, BillingCreditGrantStatus, BillingCreditStatus, BillingCreditUnit, BillingOpenOverageStatus, BillingPluginStatus, Channel, ChannelConfig, CheckpointRecord, CohubClientOptions, CohubHttpClient, ContentBlock, CreateGenerationTaskRequest, CreateGenerationTaskResponse, CreateInvitationInput, CreateInvitationResponse, CreateSpaceInput, CreateSpaceModInput, CreateSpacePromptInput, CreateSpacePromptResponse, CronJobRecord, DiscordChannelConfig, ExploreSection, ExploreSpaceItem, ExploreSpacesResponse, Fetch, GenerationContentBlock, GenerationTaskResult, GlobalSearchResponse, GlobalSearchResult, GlobalSearchType, HttpError, HttpTransport, InvitationDetail, JsonObject, JsonPrimitive, JsonValue, ListGenerationModelsResponse, MeResponse, MessageRecord, ModelCatalogEntry, Permission, PromptTemplateCatalogEntry, PromptTemplateCatalogResponse, PublicGenerationDeclaration, SessionBindingRecord, SessionForkRecord, SessionMessageResponse, SessionMessagesPaginatedResponse, SessionMessagesResponse, SessionRecord, SessionTurnIndexItem, SessionTurnIndexResponse, SessionTurnRecord, SessionTurnResponse, SessionTurnSegmentRecord, SessionTurnSignedUrlsResponse, SessionTurnStreamSnapshotResponse, SessionTurnWindowResponse, SessionTurnsPaginatedResponse, SpaceAccess, SpaceAccessPolicy, SpaceBootstrapSource, SpaceChannelBindingInput, SpaceCheckpointDetailResponse, SpaceConfig, SpaceConfigInput, SpaceConfigResponse, SpaceCreateResponse, SpaceEnvInput, SpaceFsCompleteUploadInput, SpaceFsCompleteUploadResponse, SpaceFsCreateUploadInput, SpaceFsCreateUploadResponse, SpaceFsEncoding, SpaceFsEntry, SpaceFsFileKind, SpaceFsFileResponse, SpaceFsMoveInput, SpaceFsPreparingFile, SpaceFsReadFilesError, SpaceFsReadFilesInput, SpaceFsReadFilesResponse, SpaceFsTreeResponse, SpaceFsUploadDestination, SpaceFsUploadEntry, SpaceFsUploadError, SpaceFsUploadPlanEntry, SpaceFsUploadPlanEntryInput, SpaceFsUploadProgress, SpaceFsUploadResponse, SpaceFsWriteFileInput, SpaceGitInfo, SpaceInvitation, SpaceListItem, SpaceMarkKind, SpaceMarkListItem, SpaceMarkRecord, SpaceMarkResourceType, SpaceMember, SpaceMeta, SpaceModListItem, SpacePublicProfile, SpaceRecord, SpaceRole, SpaceSandboxAutoDestroyPolicy, SpaceSandboxConfig, SpaceSessionsResponse, SpaceUsageHourlyStat, SpaceUsageResponse, SpaceUsageSummary, TaskRunDetailResponse, TaskRunRecord, UserProfile, UserRulesResponse, UserSshKey, createHttpClient };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { _ as resolveCohubEnvironment, c as createWebsocketClient, f as COHUB_ENVIRONMENTS, g as resolveApiBaseUrl, h as normalizeWebsocketUrl, l as ContentBlock, m as normalizeBaseUrl, p as CohubEnvironment, r as WebsocketClient, v as resolveWebsocketUrl } from "./chunks/websocket.js";
2
- import { $ as CreateInvitationInput, $t as SpaceFsReadFilesInput, A as SessionPatchStatus, An as TaskRunRecord, At as SessionTurnWindowResponse, B as GenerationsApi, Bn as ChannelConfig, Bt as SpaceCreateResponse, C as SessionGenerationStreamClient, Cn as SpaceSandboxAutoDestroyPolicy, Ct as SessionMessagesPaginatedResponse, D as SessionPatchApplyResult, Dn as SpaceUsageResponse, Dt as SessionTurnResponse, E as SessionPatchApplyInput, En as SpaceUsageHourlyStat, Et as SessionTurnIndexResponse, F as CreatePublicAssetUploadResponse, Fn as CreateGenerationTaskResponse, Ft as SpaceChannelBindingInput, G as BillingCreditExpiryGroup, Gn as SessionTurnIndexItem, Gt as SpaceFsCreateUploadResponse, H as ChannelsApi, Hn as MessageRecord, Ht as SpaceFsCompleteUploadInput, I as PublicAssetPurpose, In as GenerationContentBlock, It as SpaceCheckpointDetailResponse, J as BillingCreditUnit, Jn as Fetch, Jt as SpaceFsFileKind, K as BillingCreditGrantStatus, Kn as SessionTurnRecord, Kt as SpaceFsEncoding, L as PublicAssetsApi, Ln as GenerationTaskResult, Lt as SpaceConfig, M as SessionAccessApi, Mn as UserRulesResponse, Mt as SpaceAccess, N as SearchApi, Nn as UserSshKey, Nt as SpaceAccessPolicy, O as SessionPatchReducer, On as SpaceUsageSummary, Ot as SessionTurnSignedUrlsResponse, P as CreatePublicAssetUploadInput, Pn as CreateGenerationTaskRequest, Pt as SpaceBootstrapSource, Q as CheckpointRecord, Qt as SpaceFsReadFilesError, R as PromptsApi, Rn as ListGenerationModelsResponse, Rt as SpaceConfigInput, S as GenerationStreamTurnUpdatedEvent, Sn as SpaceRole, St as SessionMessageResponse, T as parseAssistantMessageCommit, Tn as SpaceSessionsResponse, Tt as SessionRecord, U as AcceptInvitationResponse, Un as SessionForkRecord, Ut as SpaceFsCompleteUploadResponse, V as CronJobsApi, Vn as DiscordChannelConfig, Vt as SpaceEnvInput, W as ApiError, Wn as SessionTurnSegmentRecord, Wt as SpaceFsCreateUploadInput, X as BillingPluginStatus, Xn as HttpTransport, Xt as SpaceFsMoveInput, Y as BillingOpenOverageStatus, Yn as HttpError, Yt as SpaceFsFileResponse, Z as Channel, Zn as RawHttpResponse, Zt as SpaceFsPreparingFile, _ as GenerationStreamFinalizedEvent, _n as SpaceMember, _t as ModelCatalogEntry, a as SessionEventName, an as SpaceFsUploadPlanEntry, at as CronJobRecord, b as GenerationStreamStateEvent, bn as SpacePublicProfile, bt as PromptTemplateCatalogResponse, c as SpaceClient, cn as SpaceFsUploadResponse, ct as ExploreSpacesResponse, d as WebSocketConnectionState, dn as SpaceInvitation, dt as GlobalSearchType, en as SpaceFsReadFilesResponse, et as CreateInvitationResponse, f as PublicInviteApi, fn as SpaceListItem, ft as InvitationDetail, g as GenerationStreamEvent, gn as SpaceMarkResourceType, gt as MeResponse, h as GenerationStreamErrorEvent, hn as SpaceMarkRecord, ht as JsonValue, i as TasksApi, in as SpaceFsUploadError, it as CreateSpacePromptResponse, j as createSessionPatchReducer, jn as UserProfile, jt as SessionTurnsPaginatedResponse, k as SessionPatchState, kn as TaskRunDetailResponse, kt as SessionTurnStreamSnapshotResponse, l as SpaceEventName, ln as SpaceFsWriteFileInput, lt as GlobalSearchResponse, m as GenerationStreamCommitEvent, mn as SpaceMarkListItem, mt as JsonPrimitive, n as createHttpClient, nn as SpaceFsUploadDestination, nt as CreateSpaceModInput, o as SessionSubscriptionHandlers, on as SpaceFsUploadPlanEntryInput, ot as ExploreSection, p as AssistantMessageCommit, pn as SpaceMarkKind, pt as JsonObject, q as BillingCreditStatus, qn as CohubClientOptions, qt as SpaceFsEntry, r as UserApi, rn as SpaceFsUploadEntry, rt as CreateSpacePromptInput, s as SpaceChannelBindingRecord, sn as SpaceFsUploadProgress, st as ExploreSpaceItem, t as CohubHttpClient, tn as SpaceFsTreeResponse, tt as CreateSpaceInput, u as SpacesApi, un as SpaceGitInfo, ut as GlobalSearchResult, v as GenerationStreamIntermediateMessage, vn as SpaceMeta, vt as Permission, w as createSessionGenerationStreamClient, wn as SpaceSandboxConfig, wt as SessionMessagesResponse, x as GenerationStreamSubscriptionHandlers, xn as SpaceRecord, xt as SessionBindingRecord, y as GenerationStreamOutOfSyncEvent, yn as SpaceModListItem, yt as PromptTemplateCatalogEntry, z as ModelsApi, zn as PublicGenerationDeclaration, zt as SpaceConfigResponse } from "./chunks/http.js";
2
+ import { $ as CreateInvitationInput, $t as SpaceFsReadFilesInput, A as SessionPatchStatus, An as TaskRunRecord, At as SessionTurnWindowResponse, B as GenerationsApi, Bn as ChannelConfig, Bt as SpaceCreateResponse, C as SessionGenerationStreamClient, Cn as SpaceSandboxAutoDestroyPolicy, Ct as SessionMessagesPaginatedResponse, D as SessionPatchApplyResult, Dn as SpaceUsageResponse, Dt as SessionTurnResponse, E as SessionPatchApplyInput, En as SpaceUsageHourlyStat, Et as SessionTurnIndexResponse, F as CreatePublicAssetUploadResponse, Fn as CreateGenerationTaskResponse, Ft as SpaceChannelBindingInput, G as BillingCreditExpiryGroup, Gn as SessionTurnIndexItem, Gt as SpaceFsCreateUploadResponse, H as ChannelsApi, Hn as MessageRecord, Ht as SpaceFsCompleteUploadInput, I as PublicAssetPurpose, In as GenerationTaskResult, It as SpaceCheckpointDetailResponse, J as BillingCreditUnit, Jn as Fetch, Jt as SpaceFsFileKind, K as BillingCreditGrantStatus, Kn as SessionTurnRecord, Kt as SpaceFsEncoding, L as PublicAssetsApi, Ln as ListGenerationModelsResponse, Lt as SpaceConfig, M as SessionAccessApi, Mn as UserRulesResponse, Mt as SpaceAccess, N as SearchApi, Nn as UserSshKey, Nt as SpaceAccessPolicy, O as SessionPatchReducer, On as SpaceUsageSummary, Ot as SessionTurnSignedUrlsResponse, P as CreatePublicAssetUploadInput, Pn as CreateGenerationTaskRequest, Pt as SpaceBootstrapSource, Q as CheckpointRecord, Qt as SpaceFsReadFilesError, R as PromptsApi, Rn as PublicGenerationDeclaration, Rt as SpaceConfigInput, S as GenerationStreamTurnUpdatedEvent, Sn as SpaceRole, St as SessionMessageResponse, T as parseAssistantMessageCommit, Tn as SpaceSessionsResponse, Tt as SessionRecord, U as AcceptInvitationResponse, Un as SessionForkRecord, Ut as SpaceFsCompleteUploadResponse, V as CronJobsApi, Vn as DiscordChannelConfig, Vt as SpaceEnvInput, W as ApiError, Wn as SessionTurnSegmentRecord, Wt as SpaceFsCreateUploadInput, X as BillingPluginStatus, Xn as HttpTransport, Xt as SpaceFsMoveInput, Y as BillingOpenOverageStatus, Yn as HttpError, Yt as SpaceFsFileResponse, Z as Channel, Zn as RawHttpResponse, Zt as SpaceFsPreparingFile, _ as GenerationStreamFinalizedEvent, _n as SpaceMember, _t as ModelCatalogEntry, a as SessionEventName, an as SpaceFsUploadPlanEntry, at as CronJobRecord, b as GenerationStreamStateEvent, bn as SpacePublicProfile, bt as PromptTemplateCatalogResponse, c as SpaceClient, cn as SpaceFsUploadResponse, ct as ExploreSpacesResponse, d as WebSocketConnectionState, dn as SpaceInvitation, dt as GlobalSearchType, en as SpaceFsReadFilesResponse, et as CreateInvitationResponse, f as PublicInviteApi, fn as SpaceListItem, ft as InvitationDetail, g as GenerationStreamEvent, gn as SpaceMarkResourceType, gt as MeResponse, h as GenerationStreamErrorEvent, hn as SpaceMarkRecord, ht as JsonValue, i as TasksApi, in as SpaceFsUploadError, it as CreateSpacePromptResponse, j as createSessionPatchReducer, jn as UserProfile, jt as SessionTurnsPaginatedResponse, k as SessionPatchState, kn as TaskRunDetailResponse, kt as SessionTurnStreamSnapshotResponse, l as SpaceEventName, ln as SpaceFsWriteFileInput, lt as GlobalSearchResponse, m as GenerationStreamCommitEvent, mn as SpaceMarkListItem, mt as JsonPrimitive, n as createHttpClient, nn as SpaceFsUploadDestination, nt as CreateSpaceModInput, o as SessionSubscriptionHandlers, on as SpaceFsUploadPlanEntryInput, ot as ExploreSection, p as AssistantMessageCommit, pn as SpaceMarkKind, pt as JsonObject, q as BillingCreditStatus, qn as CohubClientOptions, qt as SpaceFsEntry, r as UserApi, rn as SpaceFsUploadEntry, rt as CreateSpacePromptInput, s as SpaceChannelBindingRecord, sn as SpaceFsUploadProgress, st as ExploreSpaceItem, t as CohubHttpClient, tn as SpaceFsTreeResponse, tt as CreateSpaceInput, u as SpacesApi, un as SpaceGitInfo, ut as GlobalSearchResult, v as GenerationStreamIntermediateMessage, vn as SpaceMeta, vt as Permission, w as createSessionGenerationStreamClient, wn as SpaceSandboxConfig, wt as SessionMessagesResponse, x as GenerationStreamSubscriptionHandlers, xn as SpaceRecord, xt as SessionBindingRecord, y as GenerationStreamOutOfSyncEvent, yn as SpaceModListItem, yt as PromptTemplateCatalogEntry, z as ModelsApi, zn as GenerationContentBlock, zt as SpaceConfigResponse } from "./chunks/http.js";
3
3
 
4
4
  //#region src/apis/billing.d.ts
5
5
  declare class BillingApi {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neta-art/cohub",
3
- "version": "1.16.0",
3
+ "version": "1.17.0",
4
4
  "description": "Cohub SDK for spaces, sessions, checkpoints, and realtime agent collaboration.",
5
5
  "license": "UNLICENSED",
6
6
  "private": false,