@neta-art/cohub 8.22.0 → 8.23.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.
@@ -2,9 +2,8 @@ import { BoardTaskArtifact, BoardTaskSnapshot } from "../protocol/dist/board-doc
2
2
  import { TaskRunRecord } from "../types.js";
3
3
  //#region src/board/task.d.ts
4
4
  /**
5
- * Group provider blocks into user-facing works. A cover/poster sharing a stable
6
- * provider id with playable media belongs to that work instead of becoming a
7
- * competing image result.
5
+ * Group provider blocks into user-facing works. A cover belongs to the media
6
+ * it depicts (see `generationCovers`) instead of becoming a competing image.
8
7
  */
9
8
  declare function taskArtifacts(blocks: Record<string, unknown>[]): BoardTaskArtifact[];
10
9
  /** Highest-value artifact first, with provider order as the stable final tie. */
@@ -1,80 +1,6 @@
1
- import { normalizeBoardRemoteUrl } from "../protocol/dist/board-url.js";
2
1
  import "../protocol/dist/board-document.js";
2
+ import { blockDurationMs, blockIdentity, blockMimeType, blockNaturalSize, blockPreviewUrl, blockText, blockTitle, blockUrl, cleanExcerpt, generationCovers, generationOutput, generationPrompt, taskData } from "../generation-blocks.js";
3
3
  //#region src/board/task.ts
4
- const EXCERPT_LIMIT = 240;
5
- function record(value) {
6
- return value && typeof value === "object" && !Array.isArray(value) ? value : null;
7
- }
8
- function cleanExcerpt(value, limit = EXCERPT_LIMIT) {
9
- if (typeof value !== "string") return void 0;
10
- const clean = value.replace(/\s+/g, " ").trim();
11
- if (!clean) return void 0;
12
- return clean.length > limit ? `${clean.slice(0, limit - 3).trimEnd()}...` : clean;
13
- }
14
- function blockText(block) {
15
- return cleanExcerpt(block.text ?? block.content ?? block.value);
16
- }
17
- function blockUrl(block) {
18
- const source = record(block.source);
19
- return normalizeBoardRemoteUrl(source?.url ?? source?.src ?? block.url ?? block.src);
20
- }
21
- function blockMimeType(block) {
22
- const source = record(block.source);
23
- const value = source?.mediaType ?? source?.media_type ?? source?.mimeType ?? block.mediaType ?? block.media_type ?? block.mimeType;
24
- return typeof value === "string" ? value : void 0;
25
- }
26
- function positiveNumber(value) {
27
- return typeof value === "number" && Number.isFinite(value) && value > 0 ? value : void 0;
28
- }
29
- function blockNaturalSize(block) {
30
- const source = record(block.source);
31
- const naturalWidth = positiveNumber(source?.width ?? source?.naturalWidth ?? block.width ?? block.naturalWidth);
32
- const naturalHeight = positiveNumber(source?.height ?? source?.naturalHeight ?? block.height ?? block.naturalHeight);
33
- return {
34
- ...naturalWidth ? { naturalWidth } : {},
35
- ...naturalHeight ? { naturalHeight } : {}
36
- };
37
- }
38
- function contentBlocks(value) {
39
- return Array.isArray(value) ? value.filter((item) => record(item)) : [];
40
- }
41
- function taskData(run) {
42
- const payload = record(run.payload);
43
- return record(payload?.data) ?? payload;
44
- }
45
- function generationOutput(run) {
46
- return contentBlocks(record(run.result)?.output);
47
- }
48
- function generationPrompt(run) {
49
- for (const block of contentBlocks(taskData(run)?.content)) {
50
- const text = blockText(block);
51
- if (text) return text;
52
- }
53
- }
54
- function blockMeta(block) {
55
- return record(block.meta);
56
- }
57
- function blockIdentity(block) {
58
- const meta = blockMeta(block);
59
- const value = meta?.id ?? meta?.clip_id ?? meta?.clipId ?? block.id ?? block.clip_id ?? block.clipId;
60
- if (typeof value !== "string" && typeof value !== "number") return void 0;
61
- return cleanExcerpt(String(value), 220);
62
- }
63
- function blockTitle(block) {
64
- return cleanExcerpt(blockMeta(block)?.title ?? block.title ?? block.name, 240);
65
- }
66
- function blockDurationMs(block) {
67
- const source = record(block.source);
68
- const meta = blockMeta(block);
69
- const milliseconds = positiveNumber(source?.durationMs ?? meta?.durationMs ?? block.durationMs);
70
- if (milliseconds) return Math.round(milliseconds);
71
- const seconds = positiveNumber(source?.duration ?? meta?.duration ?? block.duration);
72
- return seconds ? Math.round(seconds * 1e3) : void 0;
73
- }
74
- function blockPreviewUrl(block) {
75
- const source = record(block.source);
76
- return normalizeBoardRemoteUrl(source?.poster ?? source?.thumbnail ?? source?.previewUrl ?? block.poster ?? block.thumbnail ?? block.previewUrl);
77
- }
78
4
  function artifactId(base, used, suffix) {
79
5
  const stem = cleanExcerpt(base, 220) ?? "output";
80
6
  let candidate = suffix ? `${stem}-${suffix}` : stem;
@@ -87,36 +13,41 @@ function artifactId(base, used, suffix) {
87
13
  return candidate;
88
14
  }
89
15
  /**
90
- * Group provider blocks into user-facing works. A cover/poster sharing a stable
91
- * provider id with playable media belongs to that work instead of becoming a
92
- * competing image result.
16
+ * Group provider blocks into user-facing works. A cover belongs to the media
17
+ * it depicts (see `generationCovers`) instead of becoming a competing image.
93
18
  */
94
19
  function taskArtifacts(blocks) {
20
+ const covers = new Map([...generationCovers(blocks)].filter(([media]) => Boolean(blockUrl(blocks[media] ?? {}))));
21
+ const coverIndexes = new Set(covers.values());
22
+ const coverUrl = (index) => {
23
+ const cover = covers.get(index);
24
+ return cover === void 0 ? void 0 : blockUrl(blocks[cover] ?? {});
25
+ };
95
26
  const groups = /* @__PURE__ */ new Map();
96
27
  blocks.forEach((block, index) => {
28
+ if (coverIndexes.has(index)) return;
97
29
  const key = blockIdentity(block) ?? `output-${index + 1}`;
30
+ const entry = {
31
+ block,
32
+ index,
33
+ url: blockUrl(block)
34
+ };
98
35
  const group = groups.get(key);
99
- if (group) group.push(block);
100
- else groups.set(key, [block]);
36
+ if (group) group.push(entry);
37
+ else groups.set(key, [entry]);
101
38
  });
39
+ const withUrl = (entry) => Boolean(entry.url);
102
40
  const artifacts = [];
103
41
  const usedIds = /* @__PURE__ */ new Set();
104
42
  for (const [groupId, blocksInGroup] of groups) {
105
- const images = blocksInGroup.filter((block) => block.type === "image").map((block) => ({
106
- block,
107
- url: blockUrl(block)
108
- })).filter((entry) => Boolean(entry.url));
109
- const media = blocksInGroup.filter((block) => block.type === "video" || block.type === "audio").map((block) => ({
110
- block,
111
- url: blockUrl(block)
112
- })).filter((entry) => Boolean(entry.url));
113
- const pairedPreview = images[0];
114
- media.forEach(({ block, url }, mediaIndex) => {
43
+ const images = blocksInGroup.filter(({ block }) => block.type === "image").filter(withUrl);
44
+ const media = blocksInGroup.filter(({ block }) => block.type === "video" || block.type === "audio").filter(withUrl);
45
+ media.forEach(({ block, index, url }, mediaIndex) => {
115
46
  const type = block.type;
116
47
  const mimeType = blockMimeType(block);
117
48
  const title = blockTitle(block);
118
49
  const durationMs = blockDurationMs(block);
119
- const previewUrl = blockPreviewUrl(block) ?? pairedPreview?.url;
50
+ const previewUrl = blockPreviewUrl(block) ?? coverUrl(index);
120
51
  const id = artifactId(groupId, usedIds, media.length > 1 ? `${type}-${mediaIndex + 1}` : void 0);
121
52
  if (type === "video") {
122
53
  artifacts.push({
@@ -141,12 +72,11 @@ function taskArtifacts(blocks) {
141
72
  ...durationMs ? { durationMs } : {}
142
73
  });
143
74
  });
144
- const firstUnpairedImage = media.length > 0 ? 1 : 0;
145
- images.slice(firstUnpairedImage).forEach(({ block, url }, imageIndex) => {
75
+ images.forEach(({ block, url }, imageIndex) => {
146
76
  const mimeType = blockMimeType(block);
147
77
  const title = blockTitle(block);
148
78
  artifacts.push({
149
- id: artifactId(groupId, usedIds, images.length - firstUnpairedImage > 1 ? `image-${imageIndex + 1}` : void 0),
79
+ id: artifactId(groupId, usedIds, images.length > 1 ? `image-${imageIndex + 1}` : void 0),
150
80
  type: "image",
151
81
  url,
152
82
  ...title ? { title } : {},
@@ -154,7 +84,7 @@ function taskArtifacts(blocks) {
154
84
  ...blockNaturalSize(block)
155
85
  });
156
86
  });
157
- blocksInGroup.filter((block) => block.type === "text").forEach((block, textIndex, texts) => {
87
+ blocksInGroup.filter(({ block }) => block.type === "text").forEach(({ block }, textIndex, texts) => {
158
88
  const textExcerpt = blockText(block);
159
89
  if (!textExcerpt) return;
160
90
  const title = blockTitle(block);
@@ -6853,6 +6853,23 @@ type MessageRecord = {
6853
6853
  durationMs: number | null;
6854
6854
  createdAt: string;
6855
6855
  };
6856
+ type SessionFileChangeKind = "write" | "edit";
6857
+ /** A Space file changed by a session's agent tools. */
6858
+ type SessionFileRecord = {
6859
+ /** Space workspace path, relative and without a leading slash. */
6860
+ path: string;
6861
+ lastKind: SessionFileChangeKind;
6862
+ kinds: SessionFileChangeKind[];
6863
+ changeCount: number;
6864
+ firstChangedAt: string;
6865
+ lastChangedAt: string;
6866
+ lastTurnId: string;
6867
+ lastTurnSequence: number;
6868
+ };
6869
+ type SessionFilesResponse = {
6870
+ sessionId: string;
6871
+ files: SessionFileRecord[];
6872
+ };
6856
6873
  //#endregion
6857
6874
  //#region ../protocol/dist/gateway/types.d.ts
6858
6875
  type ChannelModelConfig = {
@@ -8533,4 +8550,4 @@ declare const resolveVoiceInputWebsocketUrl: (options?: {
8533
8550
  env?: CohubEnvironment;
8534
8551
  }) => string;
8535
8552
  //#endregion
8536
- export { CheckpointDiffDelivery as $, AppArtifactManifest as $a, runtimeCommandSchema as $i, SpaceCommerceProductBenefitBinding as $n, BoardPlaybackSnapshot as $o, SpaceUsageHourlyStat as $r, CompletionMessage as $s, PromptTemplateCatalogResponse as $t, BillingCreditExpiryGroup as A, getAllowedGenerationModelIds as Aa, StoredIntermediateMessage as Ai, SessionTurnStreamSnapshotResponse as An, BoardAwarenessGesture as Ao, SpaceFsUploadResponse as Ar, BoardProceduralClip as As, JsonValue as At, BillingProductBillingInterval as B, ChannelEnvelope as Ba, RuntimeContext as Bi, SpaceActivityResponse as Bn, BoardDealParams as Bo, SpacePendingDiffSummary as Br, AppAuthorizationGrant as Bs, LabelSource as Bt, BillingBalanceActivityStatus as C, GenerationPolicy as Ca, resolveRequestSourceChannel as Cc, MessageRecord as Ci, SessionMessageResponse as Cn, isDesktopCallMethod as Co, SpaceFsTreeResponse as Cr, BOARD_ANIMATION_CHANNEL_CAPABILITIES as Cs, GlobalSearchResponse as Ct, BillingCheckoutConfirmation as D, encodeGenerationPolicy as Da, SessionTurnIndexItem as Di, SessionTurnIndexResponse as Dn, NavigationCall as Do, SpaceFsUploadPlanEntry as Dr, BoardCompositionPlayback as Ds, InvitationDetail as Dt, BillingCheckoutActionState as E, decodeGenerationPolicy as Ea, MessageToolCallsFile as Ei, SessionRecord as En, resolveOpenSurface as Eo, SpaceFsUploadError as Er, BoardCompositionInputSchema as Es, GlobalSearchViewerRelation as Et, BillingDiscountOfferRef as F, GenerationResult as Fa, RUNTIME_MAX_FRAME_BYTES as Fi, SkillCatalogSource as Fn, BOARD_GEO_KINDS as Fo, SpaceListItem as Fr, parseBoardCompositionInput as Fs, LabelItemsSessionFork as Ft, BillingProductPromotion as G, RealtimeRoom as Ga, RuntimeSessionRecoveryStatus as Gi, SpaceChannelBindingInput as Gn, BoardCapabilities as Go, SpaceRole as Gr, HarnessArchiveIndex as Gs, PaletteOverviewSession as Gt, BillingProductDisplay as H, RealtimeAppRecord as Ha, RuntimeExecutionEvent as Hi, SpaceBootstrapSource as Hn, BoardCameraFocus as Ho, SpacePresenceUser as Hr, AppAuthorizationResult as Hs, ModelCatalogEntry as Ht, BillingDiscountPricing as I, AppVersionPublishedEvent as Ia, RUNTIME_PROTOCOL_VERSION as Ii, SpaceAccess as In, BoardColorId as Io, SpaceMember as Ir, BoardCapability as Is, LabelListItem as It, BillingResponsePayload as J, RealtimeRoomMember as Ja, RuntimeTraceContext as Ji, SpaceCommerceBuyerProfile as Jn, BoardManifest as Jo, SpaceSandboxProvider as Jr, RuntimeArchiveSegment as Js, PatchResourceLabelsInput as Jt, BillingPromotionCodePreview as K, RealtimeRoomDescriptor as Ka, RuntimeStatus as Ki, SpaceCheckpointDetailResponse as Kn, BoardCreateInput as Ko, SpaceSandboxAutoDestroyPolicy as Kr, RUNTIME_ARCHIVE_SEGMENT_BYTES as Ks, PaletteOverviewSpace as Kt, BillingHistoryPagination as L, BoardAwarenessUpdatedEvent as La, RUNTIME_RECOVERY_BATCH_SIZE as Li, SpaceAccessPolicy as Ln, BoardGeoKind as Lo, SpaceMeta as Lr, BoardCoordinateSpace as Ls, LabelRecord as Lt, BillingCreditStatus as M, parseGenerationPolicyFromEnv as Ma, TurnIntermediateMessagesFile as Mi, SessionTurnsPaginatedResponse as Mn, BoardAwarenessStateUpdate as Mo, SpaceInvitation as Mr, BoardTimelineMarker as Ms, LabelAssignmentPageInfo as Mt, BillingCreditUnit as N, GenerationContentBlock as Na, HarnessKind as Ni, SkillCatalogEntry as Nn, BoardAwarenessUpdate as No, SpaceInvitationListResponse as Nr, BoardTrack as Ns, LabelAssignmentRecord as Nt, BillingCheckoutResult as O, filterGenerationDeclarationsByPolicy as Oa, SessionTurnRecord as Oi, SessionTurnResponse as On, NavigationLaunch as Oo, SpaceFsUploadPlanEntryInput as Or, BoardCompositionSchema as Os, JsonObject as Ot, BillingDiscountOffer as P, GenerationModelDeclaration as Pa, LocalHarness as Pi, SkillCatalogResponse as Pn, BOARD_COLOR_IDS as Po, SpaceInvitationLocation as Pr, BoardTrackInterpolation as Ps, LabelItemsResponse as Pt, Channel as Q, AppArtifactDownloadDescriptor as Qa, resolveHarness as Qi, SpaceCommerceProduct as Qn, BoardPlaybackPolicySchema as Qo, SpaceTurnsResponse as Qr, CompletionAssistantMessage as Qs, PromptTemplateCatalogEntry as Qt, BillingPaymentStatus as R, BoardChangedEvent as Ra, RuntimeCapabilities as Ri, SpaceActivityAppRanking as Rn, BoardAnimationSpec as Ro, SpaceModListItem as Rr, BoardRenderCost as Rs, LabelResourceType as Rt, BillingBalanceActivityList as S, GenerationParameterConstraint as Sa, requestSourceToHeaders as Sc, FeishuChannelConfig as Si, SessionBindingRecord as Sn, DesktopTarget as So, SpaceFsReadFilesResponse as Sr, parseBoardEffectInput as Ss, GenerationUsageSummary as St, BillingCatalogProduct as T, assertGenerationRequestAllowedByPolicy as Ta, SessionTurnSegmentRecord as Ti, SessionMessagesResponse as Tn, parseDesktopCommand as To, SpaceFsUploadEntry as Tr, BoardComposition as Ts, GlobalSearchType as Tt, BillingProductKind as U, RealtimeAppVersionRecord as Ua, RuntimeMessage as Ui, SpaceBootstrapStage as Un, BoardCameraFocusParams as Uo, SpacePublicProfile as Ur, AppAuthorizationTarget as Us, PERMISSIONS as Ut, BillingProductCreditBenefit as V, LabelAssignmentsUpdatedEvent as Va, RuntimeContextMessage as Vi, SpaceBootstrapMeta as Vn, BoardDealParamsSchema as Vo, SpacePresenceSnapshot as Vr, AppAuthorizationRequest as Vs, MeResponse as Vt, BillingProductPricing as W, RealtimePatchOperation as Wa, RuntimePendingExecution as Wi, SpaceBootstrapStatus as Wn, BoardCameraState as Wo, SpaceRecord as Wr, HarnessArchive as Ws, PaletteOverviewResponse as Wt, BillingSubscriptionHistoryStatus as X, SessionTurnPatchEvent as Xa, RuntimeTurnUserMessage as Xi, SpaceCommerceFeatureBenefit as Xn, BoardPlaybackCommand as Xo, SpaceTurnAuthorFilter as Xr, harnessArchiveIndexSchema as Xs, Permission as Xt, BillingSubscriptionHistoryList as Y, RealtimeServerEvent as Ya, RuntimeTurnInput as Yi, SpaceCommerceCreditsBenefit as Yn, BoardMutationReceipt as Yo, SpaceSessionsResponse as Yr, RuntimeArchiveUpload as Ys, PatchResourceLabelsResponse as Yt, BillingSubscriptionSummary as Z, AppArtifactDescriptor as Za, isLocalHarness as Zi, SpaceCommerceOrder as Zn, BoardPlaybackPolicy as Zo, SpaceTurnListItem as Zr, validateArchiveBoundary as Zs, PromptAccessMode as Zt, AcceptInvitationResponse as _, nativeRuntimeEventSchema as _a, isRequestSourceUuid as _c, ChannelConfig as _i, ReferralReward as _n, DesktopCommandRecord as _o, SpaceFsFileResponse as _r, BoardAssetRef as _s, CronJobRecord as _t, CohubRuntimeKind as a, NATIVE_SYNC_SOURCE as aa, SpaceCompletionResult as ac, UserActivityQuery as ai, PublicUserWorkItem as an, DESKTOP_COMMAND_DEFAULT_TIMEOUT_MS as ao, SpaceCreateResponse as ar, BoardTransactionsReadInput as as, CheckpointDiffStatus as at, BillingBalanceActivity as b, runtimeNativeStopSchema as ba, parseRequestSourceFromHeaders as bc, ChannelRuntimeState as bi, SandboxSpecId as bn, DesktopOpenCommand as bo, SpaceFsReadFilesError as br, BoardEffectInputSchema as bs, GenerationUsageBlock as bt, normalizeVoiceInputWebsocketUrl as c, NativeIngestTurn as ca, ContentBlock as cc, UserActivityResponse as ci, ReferenceAggregateResponse as cn, DESKTOP_COMMAND_PENDING_TTL_SECONDS as co, SpaceFsCompleteUploadInput as cr, BoardAuthoringItem as cs, ClaimReferralResponse as ct, resolveCohubEnvironment as d, NativeTurnComplete as da, REQUEST_SOURCE_VIA_MAX_LENGTH as dc, UserSessionListItem as di, ReferenceQueryResponse as dn, DESKTOP_COMMAND_VERSION as do, SpaceFsCreateUploadInput as dr, BoardAuthoringSnapshot as ds, CreateSpaceInput as dt, runtimeEventSchema as ea, CompletionMessageRole as ec, SpaceUsageResponse as ei, PublicReferral as en, AppArtifactManifestFile as eo, SpaceCommerceProductCreditBenefit as er, BoardRecord as es, CheckpointDiffFile as et, resolveExecutionAppId as f, NativeTurnMessage as fa, RequestSource as fc, UserSessionSourceKey as fi, ReferenceQueryableType as fn, DesktopAppTarget as fo, SpaceFsCreateUploadResponse as fr, BoardItemPatch as fs, CreateSpaceModInput as ft, resolveWebsocketUrl as g, isNativeClientTurn as ga, isRequestSourceEmpty as gc, scopeListHasPermission as gi, ReferralListItem as gn, DesktopCommandError as go, SpaceFsFileKind as gr, BoardSemanticMutation as gs, CronJobPayload as gt, resolveWebBaseUrl as h, SETTLED_TURN_STATUSES as ha, isRequestSourceClientId as hc, isUserLevelPermission as hi, ReferralDashboard as hn, DesktopCommandDispatchedPayload as ho, SpaceFsEntry as hr, BoardSemanticCommandSchema as hs, CreateSpaceSessionInput as ht, CohubExecutionContext as i, NATIVE_INGEST_MAX_TURNS as ia, ModelThinkingLevel as ic, USER_LEVEL_PERMISSIONS as ii, PublicUserSpaceItem as in, AppVersionSource as io, SpaceConfigUpdateResponse as ir, BoardTransactionsPage as is, CheckpointDiffStats as it, BillingCreditGrantStatus as j, normalizeGenerationPolicy as ja, StoredToolCall as ji, SessionTurnWindowResponse as jn, BoardAwarenessNodePreview as jo, SpaceFsWriteFileInput as jr, BoardTimeline as js, LabelAssignmentListItem as jt, BillingConversionIntent as k, findGenerationModelPolicy as ka, SpaceTurnsResponse$1 as ki, SessionTurnSignedUrlsResponse as kn, SpacePublicEndpoints as ko, SpaceFsUploadProgress as kr, BoardEasing as ks, JsonPrimitive as kt, normalizeWebsocketUrl as l, NativeKnownResult as la, COHUB_SOURCE_HEADER as lc, UserProfile as li, ReferenceDirection as ln, DESKTOP_COMMAND_SETTLEMENT_GRACE_SECONDS as lo, SpaceFsCompleteUploadResponse as lr, BoardAuthoringItemSchema as ls, CreateInvitationInput as lt, resolveVoiceInputWebsocketUrl as m, RuntimeNativeStop as ma, hasRequestSourceIdentity as mc, UserSessionsResponse as mi, ReferenceResourceType as mn, DesktopCommand as mo, SpaceFsEncoding as mr, BoardSemanticCommand as ms, CreateSpacePromptResponse as mt, CohubContext as n, contextToPiMessages as na, CompletionUsage as nc, TaskRunDetailResponse as ni, PublicUserPageResponse as nn, AppBoardAsset as no, SpaceConfigInput as nr, BoardTransactionOperation as ns, CheckpointDiffPatchKind as nt, getCohubContext as o, NativeIngest as oa, SpaceCompletionStreamEvent as oc, UserActivityRange as oi, ReferenceAggregateGroup as on, DESKTOP_COMMAND_MAX_TIMEOUT_MS as oo, SpaceDefaultResponse as or, BoardValidationResult as os, CheckpointDiffSummary as ot, resolveExecutionToken as p, NativeTurnProgress as pa, RequestSourceVia as pc, UserSessionSpaceSummary as pi, ReferenceRecord as pn, DesktopCall as po, SpaceFsDeleteNodeInput as pr, BoardItemPatchSchema as ps, CreateSpacePromptInput as pt, BillingRedemptionResult as q, RealtimeRoomEvent as qa, RuntimeStopConfirmation as qi, SpaceCommerceBenefit as qn, BoardDiagnostic as qo, SpaceSandboxConfig as qr, RuntimeArchivePage as qs, PaletteOverviewSpaceRelation as qt, CohubEnvironment as r, selectRuntimeContextMessages as ra, CreateSpaceCompletionInput as rc, TaskRunRecord as ri, PublicUserProfile as rn, AppContentKind as ro, SpaceConfigResponse as rr, BoardTransactionRecord as rs, CheckpointDiffPatchLine as rt, normalizeBaseUrl as s, NativeIngestResult as sa, Usage as sc, UserActivityRankings as si, ReferenceAggregateGroupBy as sn, DESKTOP_COMMAND_PAYLOAD_MAX_BYTES as so, SpaceEnvInput as sr, parseBoardPlaybackPolicy as ss, CheckpointRecord as st, COHUB_ENVIRONMENTS as t, runtimeReadySchema as ta, CompletionThinkingLevel as tc, SpaceUsageSummary as ti, PublicUserAppItem as tn, AppBoardArtifactManifest as to, SpaceConfig as tr, BoardSummary as ts, CheckpointDiffFileResponse as tt, resolveApiBaseUrl as u, NativeRuntimeEvent as ua, COHUB_SOURCE_HEADER_NAMES as uc, UserRulesResponse as ui, ReferenceKind as un, DESKTOP_COMMAND_TERMINAL_TTL_SECONDS as uo, SpaceFsCreateDirectoryInput as ur, BoardAuthoringReadInput as us, CreateInvitationResponse as ut, ApiError as v, nativeTurnCompleteSchema as va, mergeRequestSourceIntoMeta as vc, ChannelHealth as vi, ReferralStatus as vn, DesktopCommandStatus as vo, SpaceFsMoveInput as vr, BoardEffect as vs, CronJobUpdatePatch as vt, BillingCatalog as w, GenerationPolicyError as wa, SessionForkRecord as wi, SessionMessagesPaginatedResponse as wn, isTerminalDesktopCommandStatus as wo, SpaceFsUploadDestination as wr, BoardAnimationTarget as ws, GlobalSearchResult as wt, BillingBalanceActivityKind as x, GenerationModelPolicy as xa, readRequestSourceFromEnv as xc, DiscordChannelConfig as xi, SendMessageCronJobPayload as xn, DesktopSurface as xo, SpaceFsReadFilesInput as xr, BoardEffectSchema as xs, GenerationUsageHourlyStat as xt, BatchUserProfilesResponse as y, nativeTurnProgressSchema as ya, normalizeRequestSource as yc, ChannelHealthReasonCode as yi, ResourceLabelsResponse as yn, DesktopFileTarget as yo, SpaceFsPreparingFile as yr, BoardEffectInput as ys, CursorPageInfo as yt, BillingPluginStatus as z, BoardPlaybackChangedEvent as za, RuntimeCommand as zi, SpaceActivityContributor as zn, BoardAnimationSpecSchema as zo, SpacePendingDiffFileResponse as zr, BillingPayload as zs, LabelScopeType as zt };
8553
+ export { CheckpointDiffDelivery as $, RealtimeServerEvent as $a, RuntimeTurnUserMessage as $i, SpaceCommerceProductBenefitBinding as $n, BoardMutationReceipt as $o, SpaceUsageHourlyStat as $r, RuntimeArchiveUpload as $s, PromptTemplateCatalogResponse as $t, BillingCreditExpiryGroup as A, decodeGenerationPolicy as Aa, SessionTurnIndexItem as Ai, SessionTurnStreamSnapshotResponse as An, resolveOpenSurface as Ao, SpaceFsUploadResponse as Ar, BoardCompositionInputSchema as As, JsonValue as At, BillingProductBillingInterval as B, AppVersionPublishedEvent as Ba, RUNTIME_RECOVERY_BATCH_SIZE as Bi, SpaceActivityResponse as Bn, BoardColorId as Bo, SpacePendingDiffSummary as Br, BoardCapability as Bs, LabelSource as Bt, BillingBalanceActivityStatus as C, nativeTurnProgressSchema as Ca, normalizeRequestSource as Cc, MessageRecord as Ci, SessionMessageResponse as Cn, DesktopFileTarget as Co, SpaceFsTreeResponse as Cr, BoardEffectInput as Cs, GlobalSearchResponse as Ct, BillingCheckoutConfirmation as D, GenerationPolicy as Da, resolveRequestSourceChannel as Dc, SessionForkRecord as Di, SessionTurnIndexResponse as Dn, isDesktopCallMethod as Do, SpaceFsUploadPlanEntry as Dr, BOARD_ANIMATION_CHANNEL_CAPABILITIES as Ds, InvitationDetail as Dt, BillingCheckoutActionState as E, GenerationParameterConstraint as Ea, requestSourceToHeaders as Ec, SessionFilesResponse as Ei, SessionRecord as En, DesktopTarget as Eo, SpaceFsUploadError as Er, parseBoardEffectInput as Es, GlobalSearchViewerRelation as Et, BillingDiscountOfferRef as F, normalizeGenerationPolicy as Fa, TurnIntermediateMessagesFile as Fi, SkillCatalogSource as Fn, BoardAwarenessNodePreview as Fo, SpaceListItem as Fr, BoardTimeline as Fs, LabelItemsSessionFork as Ft, BillingProductPromotion as G, LabelAssignmentsUpdatedEvent as Ga, RuntimeExecutionEvent as Gi, SpaceChannelBindingInput as Gn, BoardDealParamsSchema as Go, SpaceRole as Gr, AppAuthorizationRequest as Gs, PaletteOverviewSession as Gt, BillingProductDisplay as H, BoardChangedEvent as Ha, RuntimeCommand as Hi, SpaceBootstrapSource as Hn, BoardAnimationSpec as Ho, SpacePresenceUser as Hr, BoardRenderCost as Hs, ModelCatalogEntry as Ht, BillingDiscountPricing as I, parseGenerationPolicyFromEnv as Ia, HarnessKind as Ii, SpaceAccess as In, BoardAwarenessStateUpdate as Io, SpaceMember as Ir, BoardTimelineMarker as Is, LabelListItem as It, BillingResponsePayload as J, RealtimePatchOperation as Ja, RuntimeSessionRecoveryStatus as Ji, SpaceCommerceBuyerProfile as Jn, BoardCameraState as Jo, SpaceSandboxProvider as Jr, HarnessArchive as Js, PatchResourceLabelsInput as Jt, BillingPromotionCodePreview as K, RealtimeAppRecord as Ka, RuntimeMessage as Ki, SpaceCheckpointDetailResponse as Kn, BoardCameraFocus as Ko, SpaceSandboxAutoDestroyPolicy as Kr, AppAuthorizationResult as Ks, PaletteOverviewSpace as Kt, BillingHistoryPagination as L, GenerationContentBlock as La, LocalHarness as Li, SpaceAccessPolicy as Ln, BoardAwarenessUpdate as Lo, SpaceMeta as Lr, BoardTrack as Ls, LabelRecord as Lt, BillingCreditStatus as M, filterGenerationDeclarationsByPolicy as Ma, SpaceTurnsResponse$1 as Mi, SessionTurnsPaginatedResponse as Mn, NavigationLaunch as Mo, SpaceInvitation as Mr, BoardCompositionSchema as Ms, LabelAssignmentPageInfo as Mt, BillingCreditUnit as N, findGenerationModelPolicy as Na, StoredIntermediateMessage as Ni, SkillCatalogEntry as Nn, SpacePublicEndpoints as No, SpaceInvitationListResponse as Nr, BoardEasing as Ns, LabelAssignmentRecord as Nt, BillingCheckoutResult as O, GenerationPolicyError as Oa, SessionTurnSegmentRecord as Oi, SessionTurnResponse as On, isTerminalDesktopCommandStatus as Oo, SpaceFsUploadPlanEntryInput as Or, BoardAnimationTarget as Os, JsonObject as Ot, BillingDiscountOffer as P, getAllowedGenerationModelIds as Pa, StoredToolCall as Pi, SkillCatalogResponse as Pn, BoardAwarenessGesture as Po, SpaceInvitationLocation as Pr, BoardProceduralClip as Ps, LabelItemsResponse as Pt, Channel as Q, RealtimeRoomMember as Qa, RuntimeTurnInput as Qi, SpaceCommerceProduct as Qn, BoardManifest as Qo, SpaceTurnsResponse as Qr, RuntimeArchiveSegment as Qs, PromptTemplateCatalogEntry as Qt, BillingPaymentStatus as R, GenerationModelDeclaration as Ra, RUNTIME_MAX_FRAME_BYTES as Ri, SpaceActivityAppRanking as Rn, BOARD_COLOR_IDS as Ro, SpaceModListItem as Rr, BoardTrackInterpolation as Rs, LabelResourceType as Rt, BillingBalanceActivityList as S, nativeTurnCompleteSchema as Sa, mergeRequestSourceIntoMeta as Sc, FeishuChannelConfig as Si, SessionBindingRecord as Sn, DesktopCommandStatus as So, SpaceFsReadFilesResponse as Sr, BoardEffect as Ss, GenerationUsageSummary as St, BillingCatalogProduct as T, GenerationModelPolicy as Ta, readRequestSourceFromEnv as Tc, SessionFileRecord as Ti, SessionMessagesResponse as Tn, DesktopSurface as To, SpaceFsUploadEntry as Tr, BoardEffectSchema as Ts, GlobalSearchType as Tt, BillingProductKind as U, BoardPlaybackChangedEvent as Ua, RuntimeContext as Ui, SpaceBootstrapStage as Un, BoardAnimationSpecSchema as Uo, SpacePublicProfile as Ur, BillingPayload as Us, PERMISSIONS as Ut, BillingProductCreditBenefit as V, BoardAwarenessUpdatedEvent as Va, RuntimeCapabilities as Vi, SpaceBootstrapMeta as Vn, BoardGeoKind as Vo, SpacePresenceSnapshot as Vr, BoardCoordinateSpace as Vs, MeResponse as Vt, BillingProductPricing as W, ChannelEnvelope as Wa, RuntimeContextMessage as Wi, SpaceBootstrapStatus as Wn, BoardDealParams as Wo, SpaceRecord as Wr, AppAuthorizationGrant as Ws, PaletteOverviewResponse as Wt, BillingSubscriptionHistoryStatus as X, RealtimeRoomDescriptor as Xa, RuntimeStopConfirmation as Xi, SpaceCommerceFeatureBenefit as Xn, BoardCreateInput as Xo, SpaceTurnAuthorFilter as Xr, RUNTIME_ARCHIVE_SEGMENT_BYTES as Xs, Permission as Xt, BillingSubscriptionHistoryList as Y, RealtimeRoom as Ya, RuntimeStatus as Yi, SpaceCommerceCreditsBenefit as Yn, BoardCapabilities as Yo, SpaceSessionsResponse as Yr, HarnessArchiveIndex as Ys, PatchResourceLabelsResponse as Yt, BillingSubscriptionSummary as Z, RealtimeRoomEvent as Za, RuntimeTraceContext as Zi, SpaceCommerceOrder as Zn, BoardDiagnostic as Zo, SpaceTurnListItem as Zr, RuntimeArchivePage as Zs, PromptAccessMode as Zt, AcceptInvitationResponse as _, RuntimeNativeStop as _a, RequestSourceVia as _c, ChannelConfig as _i, ReferralReward as _n, DesktopCall as _o, SpaceFsFileResponse as _r, BoardItemPatchSchema as _s, CronJobRecord as _t, CohubRuntimeKind as a, contextToPiMessages as aa, CompletionThinkingLevel as ac, UserActivityQuery as ai, PublicUserWorkItem as an, AppBoardArtifactManifest as ao, SpaceCreateResponse as ar, BoardSummary as as, CheckpointDiffStatus as at, BillingBalanceActivity as b, nativeIngestTurnSchema as ba, isRequestSourceEmpty as bc, ChannelRuntimeState as bi, SandboxSpecId as bn, DesktopCommandError as bo, SpaceFsReadFilesError as br, BoardSemanticMutation as bs, GenerationUsageBlock as bt, normalizeVoiceInputWebsocketUrl as c, NATIVE_SYNC_SOURCE as ca, ModelThinkingLevel as cc, UserActivityResponse as ci, ReferenceAggregateResponse as cn, AppVersionSource as co, SpaceFsCompleteUploadInput as cr, BoardTransactionsPage as cs, ClaimReferralResponse as ct, resolveCohubEnvironment as d, NativeIngestTurn as da, Usage as dc, UserSessionListItem as di, ReferenceQueryResponse as dn, DESKTOP_COMMAND_PAYLOAD_MAX_BYTES as do, SpaceFsCreateUploadInput as dr, parseBoardPlaybackPolicy as ds, CreateSpaceInput as dt, isLocalHarness as ea, harnessArchiveIndexSchema as ec, SpaceUsageResponse as ei, PublicReferral as en, SessionTurnPatchEvent as eo, SpaceCommerceProductCreditBenefit as er, BoardPlaybackCommand as es, CheckpointDiffFile as et, resolveExecutionAppId as f, NativeKnownResult as fa, ContentBlock as fc, UserSessionSourceKey as fi, ReferenceQueryableType as fn, DESKTOP_COMMAND_PENDING_TTL_SECONDS as fo, SpaceFsCreateUploadResponse as fr, BoardAuthoringItem as fs, CreateSpaceModInput as ft, resolveWebsocketUrl as g, NativeTurnProgress as ga, RequestSource as gc, scopeListHasPermission as gi, ReferralListItem as gn, DesktopAppTarget as go, SpaceFsFileKind as gr, BoardItemPatch as gs, CronJobPayload as gt, resolveWebBaseUrl as h, NativeTurnMessage as ha, REQUEST_SOURCE_VIA_MAX_LENGTH as hc, isUserLevelPermission as hi, ReferralDashboard as hn, DESKTOP_COMMAND_VERSION as ho, SpaceFsEntry as hr, BoardAuthoringSnapshot as hs, CreateSpaceSessionInput as ht, CohubExecutionContext as i, runtimeReadySchema as ia, CompletionMessageRole as ic, USER_LEVEL_PERMISSIONS as ii, PublicUserSpaceItem as in, AppArtifactManifestFile as io, SpaceConfigUpdateResponse as ir, BoardRecord as is, CheckpointDiffStats as it, BillingCreditGrantStatus as j, encodeGenerationPolicy as ja, SessionTurnRecord as ji, SessionTurnWindowResponse as jn, NavigationCall as jo, SpaceFsWriteFileInput as jr, BoardCompositionPlayback as js, LabelAssignmentListItem as jt, BillingConversionIntent as k, assertGenerationRequestAllowedByPolicy as ka, MessageToolCallsFile as ki, SessionTurnSignedUrlsResponse as kn, parseDesktopCommand as ko, SpaceFsUploadProgress as kr, BoardComposition as ks, JsonPrimitive as kt, normalizeWebsocketUrl as l, NativeIngest as la, SpaceCompletionResult as lc, UserProfile as li, ReferenceDirection as ln, DESKTOP_COMMAND_DEFAULT_TIMEOUT_MS as lo, SpaceFsCompleteUploadResponse as lr, BoardTransactionsReadInput as ls, CreateInvitationInput as lt, resolveVoiceInputWebsocketUrl as m, NativeTurnComplete as ma, COHUB_SOURCE_HEADER_NAMES as mc, UserSessionsResponse as mi, ReferenceResourceType as mn, DESKTOP_COMMAND_TERMINAL_TTL_SECONDS as mo, SpaceFsEncoding as mr, BoardAuthoringReadInput as ms, CreateSpacePromptResponse as mt, CohubContext as n, runtimeCommandSchema as na, CompletionAssistantMessage as nc, TaskRunDetailResponse as ni, PublicUserPageResponse as nn, AppArtifactDownloadDescriptor as no, SpaceConfigInput as nr, BoardPlaybackPolicySchema as ns, CheckpointDiffPatchKind as nt, getCohubContext as o, selectRuntimeContextMessages as oa, CompletionUsage as oc, UserActivityRange as oi, ReferenceAggregateGroup as on, AppBoardAsset as oo, SpaceDefaultResponse as or, BoardTransactionOperation as os, CheckpointDiffSummary as ot, resolveExecutionToken as p, NativeRuntimeEvent as pa, COHUB_SOURCE_HEADER as pc, UserSessionSpaceSummary as pi, ReferenceRecord as pn, DESKTOP_COMMAND_SETTLEMENT_GRACE_SECONDS as po, SpaceFsDeleteNodeInput as pr, BoardAuthoringItemSchema as ps, CreateSpacePromptInput as pt, BillingRedemptionResult as q, RealtimeAppVersionRecord as qa, RuntimePendingExecution as qi, SpaceCommerceBenefit as qn, BoardCameraFocusParams as qo, SpaceSandboxConfig as qr, AppAuthorizationTarget as qs, PaletteOverviewSpaceRelation as qt, CohubEnvironment as r, runtimeEventSchema as ra, CompletionMessage as rc, TaskRunRecord as ri, PublicUserProfile as rn, AppArtifactManifest as ro, SpaceConfigResponse as rr, BoardPlaybackSnapshot as rs, CheckpointDiffPatchLine as rt, normalizeBaseUrl as s, NATIVE_INGEST_MAX_TURNS as sa, CreateSpaceCompletionInput as sc, UserActivityRankings as si, ReferenceAggregateGroupBy as sn, AppContentKind as so, SpaceEnvInput as sr, BoardTransactionRecord as ss, CheckpointRecord as st, COHUB_ENVIRONMENTS as t, resolveHarness as ta, validateArchiveBoundary as tc, SpaceUsageSummary as ti, PublicUserAppItem as tn, AppArtifactDescriptor as to, SpaceConfig as tr, BoardPlaybackPolicy as ts, CheckpointDiffFileResponse as tt, resolveApiBaseUrl as u, NativeIngestResult as ua, SpaceCompletionStreamEvent as uc, UserRulesResponse as ui, ReferenceKind as un, DESKTOP_COMMAND_MAX_TIMEOUT_MS as uo, SpaceFsCreateDirectoryInput as ur, BoardValidationResult as us, CreateInvitationResponse as ut, ApiError as v, SETTLED_TURN_STATUSES as va, hasRequestSourceIdentity as vc, ChannelHealth as vi, ReferralStatus as vn, DesktopCommand as vo, SpaceFsMoveInput as vr, BoardSemanticCommand as vs, CronJobUpdatePatch as vt, BillingCatalog as w, runtimeNativeStopSchema as wa, parseRequestSourceFromHeaders as wc, SessionFileChangeKind as wi, SessionMessagesPaginatedResponse as wn, DesktopOpenCommand as wo, SpaceFsUploadDestination as wr, BoardEffectInputSchema as ws, GlobalSearchResult as wt, BillingBalanceActivityKind as x, nativeRuntimeEventSchema as xa, isRequestSourceUuid as xc, DiscordChannelConfig as xi, SendMessageCronJobPayload as xn, DesktopCommandRecord as xo, SpaceFsReadFilesInput as xr, BoardAssetRef as xs, GenerationUsageHourlyStat as xt, BatchUserProfilesResponse as y, isNativeClientTurn as ya, isRequestSourceClientId as yc, ChannelHealthReasonCode as yi, ResourceLabelsResponse as yn, DesktopCommandDispatchedPayload as yo, SpaceFsPreparingFile as yr, BoardSemanticCommandSchema as ys, CursorPageInfo as yt, BillingPluginStatus as z, GenerationResult as za, RUNTIME_PROTOCOL_VERSION as zi, SpaceActivityContributor as zn, BOARD_GEO_KINDS as zo, SpacePendingDiffFileResponse as zr, parseBoardCompositionInput as zs, LabelScopeType as zt };
@@ -1,4 +1,4 @@
1
- import { $n as SpaceCommerceProductBenefitBinding, $o as BoardPlaybackSnapshot, $t as PromptTemplateCatalogResponse, Ai as StoredIntermediateMessage, An as SessionTurnStreamSnapshotResponse, Ar as SpaceFsUploadResponse, Bn as SpaceActivityResponse, Br as SpacePendingDiffSummary, Ci as MessageRecord, Cn as SessionMessageResponse, Cr as SpaceFsTreeResponse, Ct as GlobalSearchResponse, Dn as SessionTurnIndexResponse, Do as NavigationCall, Dt as InvitationDetail, Ei as MessageToolCallsFile, En as SessionRecord, Gi as RuntimeSessionRecoveryStatus, Go as BoardCapabilities, Gr as SpaceRole, Gs as HarnessArchiveIndex, Hs as AppAuthorizationResult, Ht as ModelCatalogEntry, Ir as SpaceMember, It as LabelListItem, Jn as SpaceCommerceBuyerProfile, Jt as PatchResourceLabelsInput, Ki as RuntimeStatus, Kn as SpaceCheckpointDetailResponse, Ko as BoardCreateInput, La as BoardAwarenessUpdatedEvent$1, Ln as SpaceAccessPolicy, Mi as TurnIntermediateMessagesFile, Mn as SessionTurnsPaginatedResponse, Na as GenerationContentBlock, No as BoardAwarenessUpdate, Nr as SpaceInvitationListResponse, Nt as LabelAssignmentRecord, Oi as SessionTurnRecord, On as SessionTurnResponse, Oo as NavigationLaunch, Pa as GenerationModelDeclaration, Pn as SkillCatalogResponse, Pt as LabelItemsResponse, Q as Channel, Qn as SpaceCommerceProduct, Ra as BoardChangedEvent$1, Rr as SpaceModListItem, Rt as LabelResourceType, Sr as SpaceFsReadFilesResponse, Tn as SessionMessagesResponse, Tt as GlobalSearchType, Ur as SpacePublicProfile, Vr as SpacePresenceSnapshot, Vs as AppAuthorizationRequest$1, Vt as MeResponse, Wa as RealtimePatchOperation, Wr as SpaceRecord, Wt as PaletteOverviewResponse, Xa as SessionTurnPatchEvent, Xo as BoardPlaybackCommand, Xr as SpaceTurnAuthorFilter, Xt as Permission, Yo as BoardMutationReceipt, Yr as SpaceSessionsResponse, Ys as RuntimeArchiveUpload, Yt as PatchResourceLabelsResponse, Za as AppArtifactDescriptor, Zn as SpaceCommerceOrder, _ as AcceptInvitationResponse, _i as ChannelConfig, _o as DesktopCommandRecord, _r as SpaceFsFileResponse, _t as CronJobRecord, ac as SpaceCompletionResult, ai as UserActivityQuery, ar as SpaceCreateResponse, as as BoardTransactionsReadInput, cc as ContentBlock, ci as UserActivityResponse, cn as ReferenceAggregateResponse, cr as SpaceFsCompleteUploadInput, ct as ClaimReferralResponse, dn as ReferenceQueryResponse, dr as SpaceFsCreateUploadInput, ds as BoardAuthoringSnapshot, dt as CreateSpaceInput, ei as SpaceUsageResponse, en as PublicReferral, fc as RequestSource, fi as UserSessionSourceKey, fn as ReferenceQueryableType, fr as SpaceFsCreateUploadResponse, go as DesktopCommandError, gs as BoardSemanticMutation, hn as ReferralDashboard, ht as CreateSpaceSessionInput, io as AppVersionSource, ir as SpaceConfigUpdateResponse, is as BoardTransactionsPage, jn as SessionTurnWindowResponse, jr as SpaceFsWriteFileInput, ki as SpaceTurnsResponse, kn as SessionTurnSignedUrlsResponse, ko as SpacePublicEndpoints, li as UserProfile, ln as ReferenceDirection, lr as SpaceFsCompleteUploadResponse, lt as CreateInvitationInput, mi as UserSessionsResponse, mo as DesktopCommand, mt as CreateSpacePromptResponse, ni as TaskRunDetailResponse, nn as PublicUserPageResponse, nr as SpaceConfigInput, oc as SpaceCompletionStreamEvent, or as SpaceDefaultResponse, ot as CheckpointDiffSummary, pt as CreateSpacePromptInput, qi as RuntimeStopConfirmation, qn as SpaceCommerceBenefit, qs as RuntimeArchivePage, r as CohubEnvironment, rc as CreateSpaceCompletionInput, ri as TaskRunRecord, rn as PublicUserProfile, ro as AppContentKind, rr as SpaceConfigResponse, sc as Usage, sn as ReferenceAggregateGroupBy, sr as SpaceEnvInput, st as CheckpointRecord, ts as BoardSummary, tt as CheckpointDiffFileResponse, ui as UserRulesResponse, un as ReferenceKind, us as BoardAuthoringReadInput, ut as CreateInvitationResponse, vi as ChannelHealth, vo as DesktopCommandStatus, vr as SpaceFsMoveInput, vt as CronJobUpdatePatch, wi as SessionForkRecord, wn as SessionMessagesPaginatedResponse, y as BatchUserProfilesResponse, yr as SpaceFsPreparingFile, yt as CursorPageInfo, za as BoardPlaybackChangedEvent$1, zr as SpacePendingDiffFileResponse, zs as BillingPayload } from "./environment.js";
1
+ import { $n as SpaceCommerceProductBenefitBinding, $o as BoardMutationReceipt, $s as RuntimeArchiveUpload, $t as PromptTemplateCatalogResponse, An as SessionTurnStreamSnapshotResponse, Ar as SpaceFsUploadResponse, Bn as SpaceActivityResponse, Br as SpacePendingDiffSummary, Ci as MessageRecord, Cn as SessionMessageResponse, Cr as SpaceFsTreeResponse, Ct as GlobalSearchResponse, Di as SessionForkRecord, Dn as SessionTurnIndexResponse, Dt as InvitationDetail, Ei as SessionFilesResponse, En as SessionRecord, Fi as TurnIntermediateMessagesFile, Gr as SpaceRole, Gs as AppAuthorizationRequest$1, Ha as BoardChangedEvent$1, Ht as ModelCatalogEntry, Ir as SpaceMember, It as LabelListItem, Ja as RealtimePatchOperation, Ji as RuntimeSessionRecoveryStatus, Jn as SpaceCommerceBuyerProfile, Jt as PatchResourceLabelsInput, Kn as SpaceCheckpointDetailResponse, Ks as AppAuthorizationResult, La as GenerationContentBlock, Ln as SpaceAccessPolicy, Lo as BoardAwarenessUpdate, Mi as SpaceTurnsResponse, Mn as SessionTurnsPaginatedResponse, Mo as NavigationLaunch, Ni as StoredIntermediateMessage, No as SpacePublicEndpoints, Nr as SpaceInvitationListResponse, Nt as LabelAssignmentRecord, On as SessionTurnResponse, Pn as SkillCatalogResponse, Pt as LabelItemsResponse, Q as Channel, Qn as SpaceCommerceProduct, Ra as GenerationModelDeclaration, Rr as SpaceModListItem, Rt as LabelResourceType, So as DesktopCommandStatus, Sr as SpaceFsReadFilesResponse, Tn as SessionMessagesResponse, Tt as GlobalSearchType, Ua as BoardPlaybackChangedEvent$1, Ur as SpacePublicProfile, Us as BillingPayload, Va as BoardAwarenessUpdatedEvent$1, Vr as SpacePresenceSnapshot, Vt as MeResponse, Wr as SpaceRecord, Wt as PaletteOverviewResponse, Xi as RuntimeStopConfirmation, Xo as BoardCreateInput, Xr as SpaceTurnAuthorFilter, Xt as Permission, Yi as RuntimeStatus, Yo as BoardCapabilities, Yr as SpaceSessionsResponse, Ys as HarnessArchiveIndex, Yt as PatchResourceLabelsResponse, Zn as SpaceCommerceOrder, Zs as RuntimeArchivePage, _ as AcceptInvitationResponse, _i as ChannelConfig, _r as SpaceFsFileResponse, _t as CronJobRecord, ai as UserActivityQuery, ar as SpaceCreateResponse, as as BoardSummary, bo as DesktopCommandError, bs as BoardSemanticMutation, ci as UserActivityResponse, cn as ReferenceAggregateResponse, co as AppVersionSource, cr as SpaceFsCompleteUploadInput, cs as BoardTransactionsPage, ct as ClaimReferralResponse, dc as Usage, dn as ReferenceQueryResponse, dr as SpaceFsCreateUploadInput, dt as CreateSpaceInput, ei as SpaceUsageResponse, en as PublicReferral, eo as SessionTurnPatchEvent, es as BoardPlaybackCommand, fc as ContentBlock, fi as UserSessionSourceKey, fn as ReferenceQueryableType, fr as SpaceFsCreateUploadResponse, gc as RequestSource, hn as ReferralDashboard, hs as BoardAuthoringSnapshot, ht as CreateSpaceSessionInput, ir as SpaceConfigUpdateResponse, ji as SessionTurnRecord, jn as SessionTurnWindowResponse, jo as NavigationCall, jr as SpaceFsWriteFileInput, ki as MessageToolCallsFile, kn as SessionTurnSignedUrlsResponse, lc as SpaceCompletionResult, li as UserProfile, ln as ReferenceDirection, lr as SpaceFsCompleteUploadResponse, ls as BoardTransactionsReadInput, lt as CreateInvitationInput, mi as UserSessionsResponse, ms as BoardAuthoringReadInput, mt as CreateSpacePromptResponse, ni as TaskRunDetailResponse, nn as PublicUserPageResponse, nr as SpaceConfigInput, or as SpaceDefaultResponse, ot as CheckpointDiffSummary, pt as CreateSpacePromptInput, qn as SpaceCommerceBenefit, r as CohubEnvironment, ri as TaskRunRecord, rn as PublicUserProfile, rr as SpaceConfigResponse, rs as BoardPlaybackSnapshot, sc as CreateSpaceCompletionInput, sn as ReferenceAggregateGroupBy, so as AppContentKind, sr as SpaceEnvInput, st as CheckpointRecord, to as AppArtifactDescriptor, tt as CheckpointDiffFileResponse, uc as SpaceCompletionStreamEvent, ui as UserRulesResponse, un as ReferenceKind, ut as CreateInvitationResponse, vi as ChannelHealth, vo as DesktopCommand, vr as SpaceFsMoveInput, vt as CronJobUpdatePatch, wn as SessionMessagesPaginatedResponse, xo as DesktopCommandRecord, y as BatchUserProfilesResponse, yr as SpaceFsPreparingFile, yt as CursorPageInfo, zr as SpacePendingDiffFileResponse } from "./environment.js";
2
2
  import { a as WebsocketClientOptions, r as WebsocketClient, s as WebsocketEventPayload } from "./websocket.js";
3
3
  import { a as VoiceInputCreateOptions } from "./voice-input.js";
4
4
  //#region ../protocol/dist/model/status.d.ts
@@ -254,6 +254,43 @@ type AppRuntimeConfigureRequest = RuntimeEnvelope & {
254
254
  };
255
255
  inputRegion?: "all" | "none" | AppRuntimeRect[];
256
256
  };
257
+ type AppWindowStatus = "idle" | "saving" | "error";
258
+ /** Tab title and status; `dirty` makes the host flush before closing. */
259
+ type AppWindowState = {
260
+ title: string | null;
261
+ status: AppWindowStatus;
262
+ dirty: boolean;
263
+ };
264
+ /** Resource kinds the Cohub host can drop into an App. */
265
+ declare const APP_DROP_RESOURCE_TYPES: readonly ["file", "task", "app", "session", "checkpoint"];
266
+ type AppDropResourceType = (typeof APP_DROP_RESOURCE_TYPES)[number];
267
+ /** A dropped Cohub resource; `ref` identifies it (the path, for files). */
268
+ type AppDropResource = {
269
+ type: AppDropResourceType;
270
+ ref: string;
271
+ title?: string;
272
+ path?: string;
273
+ mimeType?: string;
274
+ size?: number;
275
+ mtimeMs?: number;
276
+ appId?: string;
277
+ href?: string;
278
+ taskRunId?: string;
279
+ /** Resource-specific snapshot, e.g. a Task Run summary. */
280
+ snapshot?: Record<string, unknown>;
281
+ };
282
+ /** Public design tokens, sent as resolved CSS values. */
283
+ declare const APP_APPEARANCE_TOKENS: readonly ["bg-primary", "bg-content", "bg-surface", "bg-elevated", "bg-input", "bg-hover", "bg-active", "text-primary", "text-secondary", "text-tertiary", "text-placeholder", "text-disabled", "border-primary", "border-subtle", "brand", "brand-hover", "brand-soft", "brand-muted", "brand-border", "brand-ring", "brand-contrast-fg", "error-fg", "selection-bg", "overlay-scrim", "shadow-subtle", "shadow-medium", "shadow-strong", "font-sans", "font-mono"];
284
+ type AppAppearanceToken = (typeof APP_APPEARANCE_TOKENS)[number];
285
+ type AppAppearance = {
286
+ colorScheme: "light" | "dark";
287
+ /** The host theme id, as a hint; not a stable enumeration. */
288
+ theme: string;
289
+ tokens: Partial<Record<AppAppearanceToken, string>>;
290
+ reducedMotion: boolean;
291
+ };
292
+ /** CSS custom property an App reads a shared token from, e.g. `--cohub-bg-primary`. */
293
+ declare const appAppearanceVar: (token: AppAppearanceToken) => string;
257
294
  //#endregion
258
295
  //#region ../protocol/dist/app-navigation.d.ts
259
296
  declare const APP_NAVIGATION_PROTOCOL = "cohub.app.navigation";
@@ -345,6 +382,12 @@ type AppRuntimeInvocationContext = {
345
382
  appId: string;
346
383
  slug: string;
347
384
  };
385
+ /** The file this open hands to the App, when the App opens files. */
386
+ file?: {
387
+ path: string;
388
+ };
389
+ /** Unique per open: a new id means the host opened the App again. */
390
+ id?: string;
348
391
  };
349
392
  /** Current navigation context supplied by the embedding Cohub shell. */
350
393
  type AppRuntimeShellContext = {
@@ -392,6 +435,14 @@ type AppRuntimeContext = {
392
435
  } | null;
393
436
  invocation?: AppRuntimeInvocationContext;
394
437
  shell?: AppRuntimeShellContext;
438
+ /** BCP 47 locale the viewer reads the host in, e.g. `zh-CN`. */
439
+ locale?: string;
440
+ /** Theme and design tokens the viewer currently sees. */
441
+ appearance?: AppAppearance;
442
+ /** Whether the host is showing this App's surface right now. */
443
+ window?: {
444
+ visible: boolean;
445
+ };
395
446
  permissions?: {
396
447
  scopes: Permission[];
397
448
  appScopes: Permission[];
@@ -441,6 +492,10 @@ interface AppRuntimeTransport {
441
492
  supportsNavigation?: boolean;
442
493
  /** Posts a one-way message to the host; no reply is expected. */
443
494
  notify?: (message: Record<string, unknown>) => void;
495
+ /** Subscribes to unsolicited runtime messages from the host (drags, close requests). */
496
+ subscribeHostMessages?: (listener: (data: unknown) => void) => () => void;
497
+ /** Whether a Cohub host has answered this runtime, proving it speaks the protocol. */
498
+ isHostConnected?: () => boolean;
444
499
  }
445
500
  /**
446
501
  * Bridge-mode transport: posts messages to `window.parent` (the Cohub host
@@ -455,6 +510,12 @@ declare class ParentBridgeTransport implements AppRuntimeTransport {
455
510
  private contextListener;
456
511
  private diagnosticListeners;
457
512
  private diagnosticListener;
513
+ private hostListeners;
514
+ private hostListener;
515
+ private announceListener;
516
+ isHostConnected(): boolean;
517
+ private isFromParent;
518
+ subscribeHostMessages(listener: (data: unknown) => void): () => void;
458
519
  /**
459
520
  * Tells the host the runtime is ready once, before any subscription. Hosts
460
521
  * gate unsolicited messages (context pushes, diagnostics) on this handshake,
@@ -462,6 +523,8 @@ declare class ParentBridgeTransport implements AppRuntimeTransport {
462
523
  * subscribes to context still needs diagnostics to arrive.
463
524
  */
464
525
  private announceReady;
526
+ /** Says ready again when a reloaded host asks. */
527
+ private answerAnnounceRequests;
465
528
  subscribeDiagnostics(listener: AppDiagnosticListener): () => void;
466
529
  subscribeContextChanged(listener: AppContextChangedListener): () => void;
467
530
  notify(message: Record<string, unknown>): void;
@@ -938,7 +1001,7 @@ declare class SkillsApi {
938
1001
  }
939
1002
  //#endregion
940
1003
  //#region src/apis/public-assets.d.ts
941
- type PublicAssetPurpose = "user_avatar" | "space_avatar" | "chat_attachment" | "app_source";
1004
+ type PublicAssetPurpose = "user_avatar" | "space_avatar" | "chat_attachment" | "app_source" | "generation_input";
942
1005
  type PublicAssetUploadProtocol = "presigned_put_v1";
943
1006
  /** Preprocessed chat images. General chat files and avatars may use any mime string. */
944
1007
  type PublicAssetMimeType = "image/webp" | "image/jpeg";
@@ -992,6 +1055,8 @@ type UploadChatAttachmentInput = {
992
1055
  onProgress?: (progress: PublicAssetUploadProgress) => void;
993
1056
  signal?: AbortSignal;
994
1057
  };
1058
+ /** A local generation input (image, video, or audio); same shape as a chat attachment. */
1059
+ type UploadGenerationInputInput = UploadChatAttachmentInput;
995
1060
  /** @deprecated Prefer UploadChatAttachmentInput — images are a special case of chat attachments. */
996
1061
  type UploadChatImageAttachmentInput = UploadChatAttachmentInput & {
997
1062
  mimeType: PublicAssetMimeType;
@@ -1006,6 +1071,8 @@ declare class PublicAssetsApi {
1006
1071
  /** Durable public upload for any chat attachment (image or file). No space required. */
1007
1072
  uploadAppSource(input: UploadAppSourceInput): Promise<PublicAssetUploadBase>;
1008
1073
  uploadChatAttachment(input: UploadChatAttachmentInput): Promise<PublicAssetUploadBase>;
1074
+ /** Durable, unlisted URL for a local generation input (image, video, or audio). */
1075
+ uploadGenerationInput(input: UploadGenerationInputInput): Promise<PublicAssetUploadBase>;
1009
1076
  /** Preprocessed chat image (webp/jpeg). Same durable path as uploadChatAttachment. */
1010
1077
  uploadChatImageAttachment(input: UploadChatImageAttachmentInput): Promise<PublicAssetUploadBase>;
1011
1078
  }
@@ -1497,6 +1564,11 @@ declare class SessionClient {
1497
1564
  space: SpaceRecord;
1498
1565
  session: SessionRecord;
1499
1566
  }>;
1567
+ /** Space files changed by this session's agent write/edit tool calls. */
1568
+ files(options?: {
1569
+ limit?: number;
1570
+ signal?: AbortSignal;
1571
+ }): Promise<SessionFilesResponse>;
1500
1572
  rename(title: string | null, customFetch?: Fetch): Promise<{
1501
1573
  session: SessionRecord;
1502
1574
  }>;
@@ -2206,6 +2278,7 @@ type AppExtractedPageMeta = {
2206
2278
  lang?: string | null;
2207
2279
  themeColor?: string | null;
2208
2280
  surface?: "window" | "overlay" | null;
2281
+ fileHandlers?: string[];
2209
2282
  sourcePath?: string | null;
2210
2283
  extractedAt?: string | null;
2211
2284
  };
@@ -2226,6 +2299,8 @@ type AppMeta = Record<string, unknown> & {
2226
2299
  /** CSS color from meta theme-color. */
2227
2300
  themeColor?: string;
2228
2301
  presentation?: AppPresentationMeta;
2302
+ /** File extensions the App opens (`[".board"]`), from `<meta name="cohub:file-handlers">`. */
2303
+ fileHandlers?: string[];
2229
2304
  extracted?: AppExtractedPageMeta;
2230
2305
  source?: RequestSource;
2231
2306
  };
@@ -2763,4 +2838,4 @@ declare class CohubHttpClient {
2763
2838
  }
2764
2839
  declare const createHttpClient: (options?: CohubClientOptions) => CohubHttpClient;
2765
2840
  //#endregion
2766
- export { AppTargetType as $, HttpTransport as $n, PublicGenerationDeclaration as $r, SpaceWebhooksApi as $t, WaitForUiCommandOptions as A, ReferencesApi as An, AppNavigationCall as Ar, WorkUpdateInput as At, AppPresentationMeta as B, UploadChatAttachmentInput as Bn, PublicFileListEntry as Br, BoardAwarenessUpdatedEvent as Bt, DesktopCommandsApi as C, SessionPatchApplyResult as Cn, OriginBrokerTransport as Cr, WorkPublicOwnerRecord as Ct, UiCommandStatus as D, createSessionPatchReducer as Dn, createOriginAppResolver as Dr, WorkSessionResponse as Dt, UiCommandRecord as E, SessionPatchStatus as En, createAppRuntime as Er, WorkResolveResponse as Et, AppCreateInput as F, PublicAssetPurpose as Fn, AppRuntimeAnchor as Fr, ReferralsApi as Ft, AppPromotionRecord as G, ModelsApi as Gn, SpaceWebhookListItem as Gr, BoardSubscriptionHandlers as Gt, AppPromotionEventResponse as H, UploadPublicAssetInput as Hn, PublicFileUploadEntryInput as Hr, BoardClient as Ht, AppDetailResponse as I, PublicAssetUploadProgress as In, AppRuntimeConfigureRequest as Ir, UsersApi as It, AppPublicSpaceRecord as J, ChannelsApi as Jn, CreateGenerationTaskRequest as Jr, SpaceChannelBindingRecord as Jt, AppPromotionStatsResponse as K, GenerationsApi as Kn, SpaceWebhookTriggerResponse as Kr, SessionEventName as Kt, AppExtractedPageMeta as L, PublicAssetUploadProtocol as Ln, AppRuntimeRect as Lr, UserApi as Lt, AppAuthorizeResponse as M, CreatePublicAssetUploadInput as Mn, AppNavigationOpenMessage as Mr, WorkViewSource as Mt, AppContent as N, CreatePublicAssetUploadResponse as Nn, AppNavigationOpenResponse as Nr, WorkViewStatsResponse as Nt, UiCommandsApi as O, SessionAccessApi as On, createSlugAppIdResolver as Or, WorkStatus as Ot, AppContentDownload as P, PublicAssetMimeType as Pn, AppNavigationTarget as Pr, WorkVisibility as Pt, AppStatus as Q, HttpTraceContext as Qn, ListGenerationModelsResponse as Qr, SpaceTurnListOptions as Qt, AppGetResponse as R, PublicAssetsApi as Rn, PublicFileCreateUploadInput as Rr, TaskWaitOptions as Rt, CreateUiCommandInput as S, SessionPatchApplyInput as Sn, AppRuntimeTransport as Sr, WorkPromotionStatsResponse as St, UiCommandError as T, SessionPatchState as Tn, PopupBrokerTransport as Tr, WorkRecord as Tt, AppPromotionProvider as U, SkillsApi as Un, PublicFileUploadPlanEntry as Ur, BoardEventName as Ut, AppPromotionCreateInput as V, UploadChatImageAttachmentInput as Vn, PublicFileListResponse as Vr, BoardChangedEvent as Vt, AppPromotionProviderStatus as W, PromptsApi as Wn, PublicFileUrlResponse as Wr, BoardPlaybackChangedEvent as Wt, AppResolveResponse as X, Fetch as Xn, GenerationTaskResult as Xr, SpaceEventName as Xt, AppRecord as Y, CohubClientOptions as Yn, CreateGenerationTaskResponse as Yr, SpaceClient as Yt, AppSessionResponse as Z, HttpError as Zn, GenerationUsageBilling as Zr, SpacePublicFilesApi as Zt, WorkCommerceEntitlementsResponse as _, GenerationStreamSubscriptionHandlers as _n, AppRuntimeInvocationContext as _r, WorkPromotionCreateInput as _t, AppCommerceCreditConsumeResponse as a, buildSpaceInvitePath as an, AppAuthorizationRequest as ar, AppVisibility as at, WorkCommercePurchaseResponse as b, createSessionGenerationStreamClient as bn, AppRuntimeResolvedApp as br, WorkPromotionProviderStatus as bt, AppCommerceEntitlementsResponse as c, GenerationStreamCommitEvent as cn, AppDiagnosticListener as cr, WorkAuthorizeResponse as ct, AppCommercePurchaseResponse as d, GenerationStreamFinalizedEvent as dn, AppRuntimeAppResolver as dr, WorkCreateInput as dt, ModelStatusEntry as ei, SpacesApi as en, RawHttpResponse as er, AppUpdateInput as et, WorkCommerceApi as f, GenerationStreamIntermediateMessage as fn, AppRuntimeAuthorizationResult as fr, WorkDetailResponse as ft, WorkCommerceEntitlement as g, GenerationStreamSubscribeOptions as gn, AppRuntimeError as gr, WorkPresentationMeta as gt, WorkCommerceCreditConsumeStatus as h, GenerationStreamStateEvent as hn, AppRuntimeContext as hr, WorkMeta as ht, AppCommerceCheckoutStatus as i, PublicInviteApi as in, sanitizeAccessToken as ir, AppViewerGrantRecord as it, AppActionRunResponse as j, SearchApi as jn, AppNavigationLaunch as jr, WorkVersionRecord as jt, WaitForDesktopCommandOptions as k, ReferenceResourceSelector as kn, resolveAppTransport as kr, WorkTargetType as kt, AppCommerceOrder as l, GenerationStreamErrorEvent as ln, AppIdResolver as lr, WorkContent as lt, WorkCommerceCreditConsumeResponse as m, GenerationStreamOutOfSyncEvent as mn, AppRuntimeCheckoutStatus as mr, WorkGetResponse as mt, createHttpClient as n, BuildSpaceInvitePathInput as nn, joinApiUrl as nr, AppViewSource as nt, AppCommerceCreditConsumeStatus as o, buildSpacePath as on, AppContextChangedListener as or, AppsApi as ot, WorkCommerceCheckoutStatus as p, GenerationStreamLifecycleEvent as pn, AppRuntimeCheckoutState as pr, WorkExtractedPageMeta as pt, AppPublicOwnerRecord as q, CronJobsApi as qn, SpaceStartupResponse as qr, SessionSubscriptionHandlers as qt, AppCommerceApi as r, BuildSpacePathInput as rn, matchesUnauthorizedErrorToken as rr, AppViewStatsResponse as rt, AppCommerceEntitlement as s, AssistantMessageCommit as sn, AppDiagnostic as sr, PublicAppVersionSummary as st, CohubHttpClient as t, ModelStatusResponse as ti, WebSocketConnectionState as tn, UnauthorizedContext as tr, AppVersionRecord as tt, AppCommerceProductResolveResponse as u, GenerationStreamEvent as un, AppRuntimeApi as ur, WorkContentDownload as ut, WorkCommerceOrder as v, GenerationStreamTurnUpdatedEvent as vn, AppRuntimeModeConfig as vr, WorkPromotionEventResponse as vt, UiCommand as w, SessionPatchReducer as wn, ParentBridgeTransport as wr, WorkPublicSpaceRecord as wt, CreateDesktopCommandInput as x, parseAssistantMessageCommit as xn, AppRuntimeShellContext as xr, WorkPromotionRecord as xt, WorkCommerceProductResolveResponse as y, SessionGenerationStreamClient as yn, AppRuntimeRequestOptions as yr, WorkPromotionProvider as yt, AppMeta as z, UploadAppSourceInput as zn, PublicFileCreateUploadResponse as zr, TasksApi as zt };
2841
+ export { AppTargetType as $, HttpTraceContext as $n, PublicFileUrlResponse as $r, SpaceWebhooksApi as $t, WaitForUiCommandOptions as A, ReferencesApi as An, resolveAppTransport as Ar, WorkUpdateInput as At, AppPresentationMeta as B, UploadChatAttachmentInput as Bn, AppDropResourceType as Br, BoardAwarenessUpdatedEvent as Bt, DesktopCommandsApi as C, SessionPatchApplyResult as Cn, AppRuntimeTransport as Cr, WorkPublicOwnerRecord as Ct, UiCommandStatus as D, createSessionPatchReducer as Dn, createAppRuntime as Dr, WorkSessionResponse as Dt, UiCommandRecord as E, SessionPatchStatus as En, PopupBrokerTransport as Er, WorkResolveResponse as Et, AppCreateInput as F, PublicAssetPurpose as Fn, AppNavigationTarget as Fr, ReferralsApi as Ft, AppPromotionRecord as G, PromptsApi as Gn, AppWindowStatus as Gr, BoardSubscriptionHandlers as Gt, AppPromotionEventResponse as H, UploadGenerationInputInput as Hn, AppRuntimeConfigureRequest as Hr, BoardClient as Ht, AppDetailResponse as I, PublicAssetUploadProgress as In, APP_APPEARANCE_TOKENS as Ir, UsersApi as It, AppPublicSpaceRecord as J, CronJobsApi as Jn, PublicFileCreateUploadResponse as Jr, SpaceChannelBindingRecord as Jt, AppPromotionStatsResponse as K, ModelsApi as Kn, appAppearanceVar as Kr, SessionEventName as Kt, AppExtractedPageMeta as L, PublicAssetUploadProtocol as Ln, AppAppearance as Lr, UserApi as Lt, AppAuthorizeResponse as M, CreatePublicAssetUploadInput as Mn, AppNavigationLaunch as Mr, WorkViewSource as Mt, AppContent as N, CreatePublicAssetUploadResponse as Nn, AppNavigationOpenMessage as Nr, WorkViewStatsResponse as Nt, UiCommandsApi as O, SessionAccessApi as On, createOriginAppResolver as Or, WorkStatus as Ot, AppContentDownload as P, PublicAssetMimeType as Pn, AppNavigationOpenResponse as Pr, WorkVisibility as Pt, AppStatus as Q, HttpError as Qn, PublicFileUploadPlanEntry as Qr, SpaceTurnListOptions as Qt, AppGetResponse as R, PublicAssetsApi as Rn, AppAppearanceToken as Rr, TaskWaitOptions as Rt, CreateUiCommandInput as S, SessionPatchApplyInput as Sn, AppRuntimeShellContext as Sr, WorkPromotionStatsResponse as St, UiCommandError as T, SessionPatchState as Tn, ParentBridgeTransport as Tr, WorkRecord as Tt, AppPromotionProvider as U, UploadPublicAssetInput as Un, AppRuntimeRect as Ur, BoardEventName as Ut, AppPromotionCreateInput as V, UploadChatImageAttachmentInput as Vn, AppRuntimeAnchor as Vr, BoardChangedEvent as Vt, AppPromotionProviderStatus as W, SkillsApi as Wn, AppWindowState as Wr, BoardPlaybackChangedEvent as Wt, AppResolveResponse as X, CohubClientOptions as Xn, PublicFileListResponse as Xr, SpaceEventName as Xt, AppRecord as Y, ChannelsApi as Yn, PublicFileListEntry as Yr, SpaceClient as Yt, AppSessionResponse as Z, Fetch as Zn, PublicFileUploadEntryInput as Zr, SpacePublicFilesApi as Zt, WorkCommerceEntitlementsResponse as _, GenerationStreamSubscriptionHandlers as _n, AppRuntimeError as _r, WorkPromotionCreateInput as _t, AppCommerceCreditConsumeResponse as a, GenerationTaskResult as ai, buildSpaceInvitePath as an, sanitizeAccessToken as ar, AppVisibility as at, WorkCommercePurchaseResponse as b, createSessionGenerationStreamClient as bn, AppRuntimeRequestOptions as br, WorkPromotionProviderStatus as bt, AppCommerceEntitlementsResponse as c, PublicGenerationDeclaration as ci, GenerationStreamCommitEvent as cn, AppDiagnostic as cr, WorkAuthorizeResponse as ct, AppCommercePurchaseResponse as d, GenerationStreamFinalizedEvent as dn, AppRuntimeApi as dr, WorkCreateInput as dt, SpaceWebhookListItem as ei, SpacesApi as en, HttpTransport as er, AppUpdateInput as et, WorkCommerceApi as f, GenerationStreamIntermediateMessage as fn, AppRuntimeAppResolver as fr, WorkDetailResponse as ft, WorkCommerceEntitlement as g, GenerationStreamSubscribeOptions as gn, AppRuntimeContext as gr, WorkPresentationMeta as gt, WorkCommerceCreditConsumeStatus as h, GenerationStreamStateEvent as hn, AppRuntimeCheckoutStatus as hr, WorkMeta as ht, AppCommerceCheckoutStatus as i, CreateGenerationTaskResponse as ii, PublicInviteApi as in, matchesUnauthorizedErrorToken as ir, AppViewerGrantRecord as it, AppActionRunResponse as j, SearchApi as jn, AppNavigationCall as jr, WorkVersionRecord as jt, WaitForDesktopCommandOptions as k, ReferenceResourceSelector as kn, createSlugAppIdResolver as kr, WorkTargetType as kt, AppCommerceOrder as l, ModelStatusEntry as li, GenerationStreamErrorEvent as ln, AppDiagnosticListener as lr, WorkContent as lt, WorkCommerceCreditConsumeResponse as m, GenerationStreamOutOfSyncEvent as mn, AppRuntimeCheckoutState as mr, WorkGetResponse as mt, createHttpClient as n, SpaceStartupResponse as ni, BuildSpaceInvitePathInput as nn, UnauthorizedContext as nr, AppViewSource as nt, AppCommerceCreditConsumeStatus as o, GenerationUsageBilling as oi, buildSpacePath as on, AppAuthorizationRequest as or, AppsApi as ot, WorkCommerceCheckoutStatus as p, GenerationStreamLifecycleEvent as pn, AppRuntimeAuthorizationResult as pr, WorkExtractedPageMeta as pt, AppPublicOwnerRecord as q, GenerationsApi as qn, PublicFileCreateUploadInput as qr, SessionSubscriptionHandlers as qt, AppCommerceApi as r, CreateGenerationTaskRequest as ri, BuildSpacePathInput as rn, joinApiUrl as rr, AppViewStatsResponse as rt, AppCommerceEntitlement as s, ListGenerationModelsResponse as si, AssistantMessageCommit as sn, AppContextChangedListener as sr, PublicAppVersionSummary as st, CohubHttpClient as t, SpaceWebhookTriggerResponse as ti, WebSocketConnectionState as tn, RawHttpResponse as tr, AppVersionRecord as tt, AppCommerceProductResolveResponse as u, ModelStatusResponse as ui, GenerationStreamEvent as un, AppIdResolver as ur, WorkContentDownload as ut, WorkCommerceOrder as v, GenerationStreamTurnUpdatedEvent as vn, AppRuntimeInvocationContext as vr, WorkPromotionEventResponse as vt, UiCommand as w, SessionPatchReducer as wn, OriginBrokerTransport as wr, WorkPublicSpaceRecord as wt, CreateDesktopCommandInput as x, parseAssistantMessageCommit as xn, AppRuntimeResolvedApp as xr, WorkPromotionRecord as xt, WorkCommerceProductResolveResponse as y, SessionGenerationStreamClient as yn, AppRuntimeModeConfig as yr, WorkPromotionProvider as yt, AppMeta as z, UploadAppSourceInput as zn, AppDropResource as zr, TasksApi as zt };
@@ -1443,6 +1443,13 @@ var PublicAssetsApi = class {
1443
1443
  signal: input.signal
1444
1444
  });
1445
1445
  }
1446
+ /** Durable, unlisted URL for a local generation input (image, video, or audio). */
1447
+ uploadGenerationInput(input) {
1448
+ return this.upload({
1449
+ ...input,
1450
+ purpose: "generation_input"
1451
+ });
1452
+ }
1446
1453
  /** Preprocessed chat image (webp/jpeg). Same durable path as uploadChatAttachment. */
1447
1454
  uploadChatImageAttachment(input) {
1448
1455
  return this.uploadChatAttachment(input);
@@ -3104,6 +3111,11 @@ var SessionClient = class {
3104
3111
  get(customFetch) {
3105
3112
  return this.transport.request(`/api/sessions/${this.id}`, { fetch: customFetch });
3106
3113
  }
3114
+ /** Space files changed by this session's agent write/edit tool calls. */
3115
+ files(options = {}) {
3116
+ const query = options.limit ? `?limit=${options.limit}` : "";
3117
+ return this.transport.request(`/api/sessions/${this.id}/files${query}`, { signal: options.signal });
3118
+ }
3107
3119
  rename(title, customFetch) {
3108
3120
  return this.transport.request(`/api/sessions/${this.id}`, {
3109
3121
  method: "PATCH",
@@ -1,4 +1,4 @@
1
- import { Ba as ChannelEnvelope, Ga as RealtimeRoom, J as BillingResponsePayload, No as BoardAwarenessUpdate, cc as ContentBlock, ic as ModelThinkingLevel, r as CohubEnvironment } from "./environment.js";
1
+ import { J as BillingResponsePayload, Lo as BoardAwarenessUpdate, Wa as ChannelEnvelope, Ya as RealtimeRoom, cc as ModelThinkingLevel, fc as ContentBlock, r as CohubEnvironment } from "./environment.js";
2
2
  import { z } from "zod";
3
3
  //#region src/websocket.d.ts
4
4
  type WebsocketEventPayload = ChannelEnvelope;
@@ -0,0 +1,125 @@
1
+ import { normalizeBoardRemoteUrl } from "./protocol/dist/board-url.js";
2
+ //#region src/generation-blocks.ts
3
+ /** Tolerant readers for generation payloads, shared by every task projection. */
4
+ const EXCERPT_LIMIT = 240;
5
+ function record(value) {
6
+ return value && typeof value === "object" && !Array.isArray(value) ? value : null;
7
+ }
8
+ function cleanExcerpt(value, limit = EXCERPT_LIMIT) {
9
+ if (typeof value !== "string") return void 0;
10
+ const clean = value.replace(/\s+/g, " ").trim();
11
+ if (!clean) return void 0;
12
+ return clean.length > limit ? `${clean.slice(0, limit - 3).trimEnd()}...` : clean;
13
+ }
14
+ function blockText(block) {
15
+ return cleanExcerpt(block.text ?? block.content ?? block.value);
16
+ }
17
+ function blockUrl(block) {
18
+ const source = record(block.source);
19
+ return normalizeBoardRemoteUrl(source?.url ?? source?.src ?? block.url ?? block.src);
20
+ }
21
+ function blockMimeType(block) {
22
+ const source = record(block.source);
23
+ const value = source?.mediaType ?? source?.media_type ?? source?.mimeType ?? block.mediaType ?? block.media_type ?? block.mimeType;
24
+ return typeof value === "string" ? value : void 0;
25
+ }
26
+ function positiveNumber(value) {
27
+ return typeof value === "number" && Number.isFinite(value) && value > 0 ? value : void 0;
28
+ }
29
+ function blockNaturalSize(block) {
30
+ const source = record(block.source);
31
+ const naturalWidth = positiveNumber(source?.width ?? source?.naturalWidth ?? block.width ?? block.naturalWidth);
32
+ const naturalHeight = positiveNumber(source?.height ?? source?.naturalHeight ?? block.height ?? block.naturalHeight);
33
+ return {
34
+ ...naturalWidth ? { naturalWidth } : {},
35
+ ...naturalHeight ? { naturalHeight } : {}
36
+ };
37
+ }
38
+ function contentBlocks(value) {
39
+ return Array.isArray(value) ? value.filter((item) => record(item)) : [];
40
+ }
41
+ function taskData(run) {
42
+ const payload = record(run.payload);
43
+ return record(payload?.data) ?? payload;
44
+ }
45
+ function generationOutput(run) {
46
+ return contentBlocks(record(run.result)?.output);
47
+ }
48
+ function generationPrompt(run) {
49
+ for (const block of contentBlocks(taskData(run)?.content)) {
50
+ const text = blockText(block);
51
+ if (text) return text;
52
+ }
53
+ }
54
+ function blockMeta(block) {
55
+ return record(block.meta);
56
+ }
57
+ function blockIdentity(block) {
58
+ const meta = blockMeta(block);
59
+ const value = meta?.id ?? meta?.clip_id ?? meta?.clipId ?? block.id ?? block.clip_id ?? block.clipId;
60
+ if (typeof value !== "string" && typeof value !== "number") return void 0;
61
+ return cleanExcerpt(String(value), 220);
62
+ }
63
+ function blockTitle(block) {
64
+ return cleanExcerpt(blockMeta(block)?.title ?? block.title ?? block.name, 240);
65
+ }
66
+ function blockDurationMs(block) {
67
+ const source = record(block.source);
68
+ const meta = blockMeta(block);
69
+ const milliseconds = positiveNumber(source?.durationMs ?? meta?.durationMs ?? block.durationMs);
70
+ if (milliseconds) return Math.round(milliseconds);
71
+ const seconds = positiveNumber(source?.duration ?? meta?.duration ?? block.duration);
72
+ return seconds ? Math.round(seconds * 1e3) : void 0;
73
+ }
74
+ function blockPreviewUrl(block) {
75
+ const source = record(block.source);
76
+ return normalizeBoardRemoteUrl(source?.poster ?? source?.thumbnail ?? source?.previewUrl ?? block.poster ?? block.thumbnail ?? block.previewUrl);
77
+ }
78
+ /**
79
+ * Image roles that depict playable media, by the media types they may cover;
80
+ * `last_frame` stays a result of its own.
81
+ */
82
+ const COVER_ROLES = /* @__PURE__ */ new Map([
83
+ ["first_frame", /* @__PURE__ */ new Set(["video"])],
84
+ ["cover", /* @__PURE__ */ new Set(["video", "audio"])],
85
+ ["poster", /* @__PURE__ */ new Set(["video", "audio"])],
86
+ ["thumbnail", /* @__PURE__ */ new Set(["video", "audio"])]
87
+ ]);
88
+ function isPlayable(block) {
89
+ return block.type === "video" || block.type === "audio";
90
+ }
91
+ /**
92
+ * Pair playable media with its cover image, returning media index → cover
93
+ * index. An image sharing the provider id wins (music tracks and their art,
94
+ * shared by every media of that id); otherwise cover-role images pair in
95
+ * order with remaining media their role fits (a video and its `first_frame`).
96
+ * Covers need a remote URL, so an inline image is never folded away.
97
+ */
98
+ function generationCovers(blocks) {
99
+ const covers = /* @__PURE__ */ new Map();
100
+ const isCover = (block) => block.type === "image" && blockUrl(block) !== void 0 && blockMeta(block)?.role !== "last_frame";
101
+ blocks.forEach((block, index) => {
102
+ const id = blockIdentity(block);
103
+ if (!isPlayable(block) || id === void 0) return;
104
+ const cover = blocks.findIndex((candidate) => isCover(candidate) && blockIdentity(candidate) === id);
105
+ if (cover >= 0) covers.set(index, cover);
106
+ });
107
+ const paired = new Set(covers.values());
108
+ const roleCovers = blocks.flatMap((block, index) => {
109
+ const role = blockMeta(block)?.role;
110
+ const types = typeof role === "string" ? COVER_ROLES.get(role) : void 0;
111
+ return isCover(block) && !paired.has(index) && types ? [{
112
+ index,
113
+ types
114
+ }] : [];
115
+ });
116
+ blocks.forEach((block, index) => {
117
+ if (!isPlayable(block) || covers.has(index)) return;
118
+ const at = roleCovers.findIndex(({ types }) => types.has(String(block.type)));
119
+ const [cover] = at < 0 ? [] : roleCovers.splice(at, 1);
120
+ if (cover) covers.set(index, cover.index);
121
+ });
122
+ return covers;
123
+ }
124
+ //#endregion
125
+ export { blockDurationMs, blockIdentity, blockMeta, blockMimeType, blockNaturalSize, blockPreviewUrl, blockText, blockTitle, blockUrl, cleanExcerpt, contentBlocks, generationCovers, generationOutput, generationPrompt, positiveNumber, record, taskData };