@neta-art/cohub 1.17.0 → 1.18.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.
- package/dist/chunks/http.d.ts +56 -2
- package/dist/chunks/http.js +6 -1
- package/dist/http.d.ts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +232 -1
- package/package.json +1 -1
package/dist/chunks/http.d.ts
CHANGED
|
@@ -336,10 +336,61 @@ type GenerateRequest = {
|
|
|
336
336
|
metadata?: Record<string, unknown>;
|
|
337
337
|
};
|
|
338
338
|
//#endregion
|
|
339
|
+
//#region ../protocol/src/generation/policy.d.ts
|
|
340
|
+
type GenerationPolicy = {
|
|
341
|
+
version: 1;
|
|
342
|
+
mode: "auto" | "limited";
|
|
343
|
+
models?: GenerationModelPolicy[];
|
|
344
|
+
};
|
|
345
|
+
type GenerationModelPolicy = {
|
|
346
|
+
model: string;
|
|
347
|
+
/**
|
|
348
|
+
* Generic constraints keyed by generation declaration parameter name.
|
|
349
|
+
* Missing parameters are not restricted by policy.
|
|
350
|
+
*/
|
|
351
|
+
parameters?: Record<string, GenerationParameterConstraint>;
|
|
352
|
+
};
|
|
353
|
+
type GenerationParameterConstraint = {
|
|
354
|
+
kind: "enum";
|
|
355
|
+
values: Array<string | number | boolean>;
|
|
356
|
+
} | {
|
|
357
|
+
kind: "number";
|
|
358
|
+
min?: number;
|
|
359
|
+
max?: number;
|
|
360
|
+
values?: number[];
|
|
361
|
+
} | {
|
|
362
|
+
kind: "integer";
|
|
363
|
+
min?: number;
|
|
364
|
+
max?: number;
|
|
365
|
+
values?: number[];
|
|
366
|
+
} | {
|
|
367
|
+
kind: "boolean";
|
|
368
|
+
value?: boolean;
|
|
369
|
+
};
|
|
370
|
+
declare class GenerationPolicyError extends Error {
|
|
371
|
+
constructor(message: string);
|
|
372
|
+
}
|
|
373
|
+
type EnvLike = Record<string, string | undefined>;
|
|
374
|
+
type PublicDeclaration = Omit<GenerationModelDeclaration, "adapter">;
|
|
375
|
+
declare function normalizeGenerationPolicy(value: unknown): GenerationPolicy | null;
|
|
376
|
+
declare function encodeGenerationPolicy(policy: GenerationPolicy): string;
|
|
377
|
+
declare function decodeGenerationPolicy(value: string): GenerationPolicy | null;
|
|
378
|
+
declare function parseGenerationPolicyFromEnv(env: EnvLike): GenerationPolicy | null;
|
|
379
|
+
declare function getAllowedGenerationModelIds(policy: GenerationPolicy | null): string[] | null;
|
|
380
|
+
declare function findGenerationModelPolicy(policy: GenerationPolicy | null, model: string): GenerationModelPolicy | null;
|
|
381
|
+
declare function assertGenerationRequestAllowedByPolicy(input: {
|
|
382
|
+
policy: GenerationPolicy | null;
|
|
383
|
+
model: string;
|
|
384
|
+
parameters?: Record<string, unknown>;
|
|
385
|
+
}): void;
|
|
386
|
+
declare function filterGenerationDeclarationsByPolicy<T extends PublicDeclaration>(declarations: T[], policy: GenerationPolicy | null): T[];
|
|
387
|
+
//#endregion
|
|
339
388
|
//#region ../protocol/src/generation/index.d.ts
|
|
340
389
|
declare const GENERATION_TASK_TYPE: "generation";
|
|
341
390
|
type CreateGenerationTaskRequest = {
|
|
342
391
|
spaceId: string;
|
|
392
|
+
sessionId?: string | null;
|
|
393
|
+
turnId?: string | null;
|
|
343
394
|
model: string;
|
|
344
395
|
content: GenerationContentBlock[];
|
|
345
396
|
parameters?: Record<string, unknown>;
|
|
@@ -838,6 +889,7 @@ type CreateSpacePromptInput = {
|
|
|
838
889
|
model?: string | null;
|
|
839
890
|
provider?: string | null;
|
|
840
891
|
clientMessageId?: string | null;
|
|
892
|
+
generationPolicy?: GenerationPolicy | null;
|
|
841
893
|
schedule?: {
|
|
842
894
|
mode?: "immediate";
|
|
843
895
|
} | {
|
|
@@ -904,6 +956,7 @@ type TaskRunRecord = {
|
|
|
904
956
|
attemptCount: number;
|
|
905
957
|
spaceId: string | null;
|
|
906
958
|
sessionId: string | null;
|
|
959
|
+
turnId: string | null;
|
|
907
960
|
userUuid: string | null;
|
|
908
961
|
scheduledAt: string | null;
|
|
909
962
|
startedAt: string | null;
|
|
@@ -1404,12 +1457,13 @@ type SessionSubscriptionHandlers = {
|
|
|
1404
1457
|
event?: (event: WebsocketEventPayload) => void;
|
|
1405
1458
|
};
|
|
1406
1459
|
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";
|
|
1460
|
+
type SpaceEventName = SessionEventName | "fs.changed" | "ports.changed" | "task.created" | "task.updated" | "event";
|
|
1408
1461
|
type SessionSendMessageInput = {
|
|
1409
1462
|
content: ContentBlock[];
|
|
1410
1463
|
model?: string;
|
|
1411
1464
|
provider?: string;
|
|
1412
1465
|
clientMessageId?: string;
|
|
1466
|
+
generationPolicy?: GenerationPolicy | null;
|
|
1413
1467
|
};
|
|
1414
1468
|
declare class SpacesApi {
|
|
1415
1469
|
private readonly transport;
|
|
@@ -1852,4 +1906,4 @@ declare class CohubHttpClient {
|
|
|
1852
1906
|
}
|
|
1853
1907
|
declare const createHttpClient: (options?: CohubClientOptions) => CohubHttpClient;
|
|
1854
1908
|
//#endregion
|
|
1855
|
-
export { CreateInvitationInput as $, SpaceFsReadFilesInput as $t, SessionPatchStatus as A, TaskRunRecord as An, SessionTurnWindowResponse as At, GenerationsApi as B,
|
|
1909
|
+
export { CreateInvitationInput as $, DiscordChannelConfig as $n, SpaceFsReadFilesInput as $t, SessionPatchStatus as A, TaskRunRecord as An, SessionTurnWindowResponse as At, GenerationsApi as B, GenerationParameterConstraint 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, encodeGenerationPolicy as Gn, SpaceFsCreateUploadResponse as Gt, ChannelsApi as H, GenerationPolicyError as Hn, SpaceFsCompleteUploadInput as Ht, PublicAssetPurpose as I, GenerationTaskResult as In, SpaceCheckpointDetailResponse as It, BillingCreditUnit as J, getAllowedGenerationModelIds as Jn, SpaceFsFileKind as Jt, BillingCreditGrantStatus as K, filterGenerationDeclarationsByPolicy 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, ChannelConfig as Qn, 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, assertGenerationRequestAllowedByPolicy as Un, SpaceFsCompleteUploadResponse as Ut, CronJobsApi as V, GenerationPolicy as Vn, SpaceEnvInput as Vt, ApiError as W, decodeGenerationPolicy as Wn, SpaceFsCreateUploadInput as Wt, BillingPluginStatus as X, parseGenerationPolicyFromEnv as Xn, SpaceFsMoveInput as Xt, BillingOpenOverageStatus as Y, normalizeGenerationPolicy as Yn, SpaceFsFileResponse as Yt, Channel as Z, GenerationContentBlock as Zn, SpaceFsPreparingFile as Zt, GenerationStreamFinalizedEvent as _, SpaceMember as _n, ModelCatalogEntry as _t, SessionEventName as a, SpaceFsUploadPlanEntry as an, CohubClientOptions as ar, CronJobRecord as at, GenerationStreamStateEvent as b, SpacePublicProfile as bn, PromptTemplateCatalogResponse as bt, SpaceClient as c, SpaceFsUploadResponse as cn, HttpTransport as cr, ExploreSpacesResponse as ct, WebSocketConnectionState as d, SpaceInvitation as dn, GlobalSearchType as dt, SpaceFsReadFilesResponse as en, MessageRecord as er, 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, SessionTurnRecord as ir, 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, RawHttpResponse as lr, GlobalSearchResponse as lt, GenerationStreamCommitEvent as m, SpaceMarkListItem as mn, JsonPrimitive as mt, createHttpClient as n, SpaceFsUploadDestination as nn, SessionTurnSegmentRecord as nr, CreateSpaceModInput as nt, SessionSubscriptionHandlers as o, SpaceFsUploadPlanEntryInput as on, Fetch as or, ExploreSection as ot, AssistantMessageCommit as p, SpaceMarkKind as pn, JsonObject as pt, BillingCreditStatus as q, findGenerationModelPolicy as qn, SpaceFsEntry as qt, UserApi as r, SpaceFsUploadEntry as rn, SessionTurnIndexItem as rr, CreateSpacePromptInput as rt, SpaceChannelBindingRecord as s, SpaceFsUploadProgress as sn, HttpError as sr, ExploreSpaceItem as st, CohubHttpClient as t, SpaceFsTreeResponse as tn, SessionForkRecord as tr, 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, GenerationModelPolicy as zn, SpaceConfigResponse as zt };
|
package/dist/chunks/http.js
CHANGED
|
@@ -1265,7 +1265,8 @@ var SessionMessagesClient = class {
|
|
|
1265
1265
|
content: input.content,
|
|
1266
1266
|
model: input.model,
|
|
1267
1267
|
provider: input.provider,
|
|
1268
|
-
clientMessageId: input.clientMessageId
|
|
1268
|
+
clientMessageId: input.clientMessageId,
|
|
1269
|
+
generationPolicy: input.generationPolicy
|
|
1269
1270
|
})
|
|
1270
1271
|
});
|
|
1271
1272
|
}
|
|
@@ -1489,6 +1490,10 @@ var SpaceEventsApi = class {
|
|
|
1489
1490
|
handler(event);
|
|
1490
1491
|
return;
|
|
1491
1492
|
}
|
|
1493
|
+
if (type === "fs.changed" && event.type === "space.fs.changed") {
|
|
1494
|
+
handler(event);
|
|
1495
|
+
return;
|
|
1496
|
+
}
|
|
1492
1497
|
if (type === "ports.changed" && event.type === "space.ports.changed") {
|
|
1493
1498
|
handler(event);
|
|
1494
1499
|
return;
|
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,
|
|
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 };
|
|
2
|
+
import { $ as CreateInvitationInput, $n as DiscordChannelConfig, $t as SpaceFsReadFilesInput, An as TaskRunRecord, At as SessionTurnWindowResponse, 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, Gt as SpaceFsCreateUploadResponse, Ht as SpaceFsCompleteUploadInput, In as GenerationTaskResult, It as SpaceCheckpointDetailResponse, J as BillingCreditUnit, Jt as SpaceFsFileKind, K as BillingCreditGrantStatus, 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, Qn as ChannelConfig, Qt as SpaceFsReadFilesError, Rn as PublicGenerationDeclaration, Rt as SpaceConfigInput, Sn as SpaceRole, St as SessionMessageResponse, Tn as SpaceSessionsResponse, Tt as SessionRecord, U as AcceptInvitationResponse, Ut as SpaceFsCompleteUploadResponse, Vn as GenerationPolicy, Vt as SpaceEnvInput, W as ApiError, Wt as SpaceFsCreateUploadInput, X as BillingPluginStatus, Xt as SpaceFsMoveInput, Y as BillingOpenOverageStatus, Yt as SpaceFsFileResponse, Z as Channel, Zn as GenerationContentBlock, Zt as SpaceFsPreparingFile, _n as SpaceMember, _t as ModelCatalogEntry, an as SpaceFsUploadPlanEntry, ar as CohubClientOptions, at as CronJobRecord, bn as SpacePublicProfile, bt as PromptTemplateCatalogResponse, cn as SpaceFsUploadResponse, cr as HttpTransport, ct as ExploreSpacesResponse, dn as SpaceInvitation, dt as GlobalSearchType, en as SpaceFsReadFilesResponse, er as MessageRecord, et as CreateInvitationResponse, fn as SpaceListItem, ft as InvitationDetail, gn as SpaceMarkResourceType, gt as MeResponse, hn as SpaceMarkRecord, ht as JsonValue, in as SpaceFsUploadError, ir as SessionTurnRecord, 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, nr as SessionTurnSegmentRecord, nt as CreateSpaceModInput, on as SpaceFsUploadPlanEntryInput, or as Fetch, ot as ExploreSection, pn as SpaceMarkKind, pt as JsonObject, q as BillingCreditStatus, qt as SpaceFsEntry, rn as SpaceFsUploadEntry, rr as SessionTurnIndexItem, rt as CreateSpacePromptInput, sn as SpaceFsUploadProgress, sr as HttpError, st as ExploreSpaceItem, t as CohubHttpClient, tn as SpaceFsTreeResponse, tr as SessionForkRecord, 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, zt as SpaceConfigResponse } from "./chunks/http.js";
|
|
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, GenerationPolicy, 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
|
|
2
|
+
import { $ as CreateInvitationInput, $n as DiscordChannelConfig, $t as SpaceFsReadFilesInput, A as SessionPatchStatus, An as TaskRunRecord, At as SessionTurnWindowResponse, B as GenerationsApi, Bn as GenerationParameterConstraint, 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 encodeGenerationPolicy, Gt as SpaceFsCreateUploadResponse, H as ChannelsApi, Hn as GenerationPolicyError, Ht as SpaceFsCompleteUploadInput, I as PublicAssetPurpose, In as GenerationTaskResult, It as SpaceCheckpointDetailResponse, J as BillingCreditUnit, Jn as getAllowedGenerationModelIds, Jt as SpaceFsFileKind, K as BillingCreditGrantStatus, Kn as filterGenerationDeclarationsByPolicy, 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, Qn as ChannelConfig, 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 assertGenerationRequestAllowedByPolicy, Ut as SpaceFsCompleteUploadResponse, V as CronJobsApi, Vn as GenerationPolicy, Vt as SpaceEnvInput, W as ApiError, Wn as decodeGenerationPolicy, Wt as SpaceFsCreateUploadInput, X as BillingPluginStatus, Xn as parseGenerationPolicyFromEnv, Xt as SpaceFsMoveInput, Y as BillingOpenOverageStatus, Yn as normalizeGenerationPolicy, Yt as SpaceFsFileResponse, Z as Channel, Zn as GenerationContentBlock, Zt as SpaceFsPreparingFile, _ as GenerationStreamFinalizedEvent, _n as SpaceMember, _t as ModelCatalogEntry, a as SessionEventName, an as SpaceFsUploadPlanEntry, ar as CohubClientOptions, at as CronJobRecord, b as GenerationStreamStateEvent, bn as SpacePublicProfile, bt as PromptTemplateCatalogResponse, c as SpaceClient, cn as SpaceFsUploadResponse, cr as HttpTransport, ct as ExploreSpacesResponse, d as WebSocketConnectionState, dn as SpaceInvitation, dt as GlobalSearchType, en as SpaceFsReadFilesResponse, er as MessageRecord, 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, ir as SessionTurnRecord, 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, lr as RawHttpResponse, lt as GlobalSearchResponse, m as GenerationStreamCommitEvent, mn as SpaceMarkListItem, mt as JsonPrimitive, n as createHttpClient, nn as SpaceFsUploadDestination, nr as SessionTurnSegmentRecord, nt as CreateSpaceModInput, o as SessionSubscriptionHandlers, on as SpaceFsUploadPlanEntryInput, or as Fetch, ot as ExploreSection, p as AssistantMessageCommit, pn as SpaceMarkKind, pt as JsonObject, q as BillingCreditStatus, qn as findGenerationModelPolicy, qt as SpaceFsEntry, r as UserApi, rn as SpaceFsUploadEntry, rr as SessionTurnIndexItem, rt as CreateSpacePromptInput, s as SpaceChannelBindingRecord, sn as SpaceFsUploadProgress, sr as HttpError, st as ExploreSpaceItem, t as CohubHttpClient, tn as SpaceFsTreeResponse, tr as SessionForkRecord, 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 GenerationModelPolicy, zt as SpaceConfigResponse } from "./chunks/http.js";
|
|
3
3
|
|
|
4
4
|
//#region src/apis/billing.d.ts
|
|
5
5
|
declare class BillingApi {
|
|
@@ -43,4 +43,4 @@ declare class CohubClient {
|
|
|
43
43
|
}
|
|
44
44
|
declare const createCohubClient: (options?: CohubClientOptions) => CohubClient;
|
|
45
45
|
//#endregion
|
|
46
|
-
export { AcceptInvitationResponse, ApiError, type AssistantMessageCommit, BillingApi, BillingCreditExpiryGroup, BillingCreditGrantStatus, BillingCreditStatus, BillingCreditUnit, BillingOpenOverageStatus, BillingPluginStatus, COHUB_ENVIRONMENTS, Channel, ChannelConfig, CheckpointRecord, CohubClient, type CohubClientOptions, type CohubEnvironment, CohubHttpClient, ContentBlock, CreateGenerationTaskRequest, CreateGenerationTaskResponse, CreateInvitationInput, CreateInvitationResponse, type CreatePublicAssetUploadInput, type CreatePublicAssetUploadResponse, CreateSpaceInput, CreateSpaceModInput, CreateSpacePromptInput, CreateSpacePromptResponse, CronJobRecord, DiscordChannelConfig, ExploreSection, ExploreSpaceItem, ExploreSpacesResponse, type Fetch, GenerationContentBlock, type GenerationStreamCommitEvent, type GenerationStreamErrorEvent, type GenerationStreamEvent, type GenerationStreamFinalizedEvent, type GenerationStreamIntermediateMessage, type GenerationStreamOutOfSyncEvent, type GenerationStreamStateEvent, type GenerationStreamSubscriptionHandlers, type GenerationStreamTurnUpdatedEvent, GenerationTaskResult, GlobalSearchResponse, GlobalSearchResult, GlobalSearchType, HttpError, InvitationDetail, JsonObject, JsonPrimitive, JsonValue, ListGenerationModelsResponse, MeResponse, MessageRecord, ModelCatalogEntry, Permission, PromptTemplateCatalogEntry, PromptTemplateCatalogResponse, type PublicAssetPurpose, PublicGenerationDeclaration, type RawHttpResponse, SessionBindingRecord, type SessionEventName, SessionForkRecord, SessionGenerationStreamClient, SessionMessageResponse, SessionMessagesPaginatedResponse, SessionMessagesResponse, type SessionPatchApplyInput, type SessionPatchApplyResult, SessionPatchReducer, type SessionPatchState, type SessionPatchStatus, SessionRecord, type SessionSubscriptionHandlers, SessionTurnIndexItem, SessionTurnIndexResponse, SessionTurnRecord, SessionTurnResponse, SessionTurnSegmentRecord, SessionTurnSignedUrlsResponse, SessionTurnStreamSnapshotResponse, SessionTurnWindowResponse, SessionTurnsPaginatedResponse, SpaceAccess, SpaceAccessPolicy, SpaceBootstrapSource, SpaceChannelBindingInput, type SpaceChannelBindingRecord, SpaceCheckpointDetailResponse, SpaceConfig, SpaceConfigInput, SpaceConfigResponse, SpaceCreateResponse, SpaceEnvInput, type SpaceEventName, SpaceFsCompleteUploadInput, SpaceFsCompleteUploadResponse, SpaceFsCreateUploadInput, SpaceFsCreateUploadResponse, SpaceFsEncoding, SpaceFsEntry, SpaceFsFileKind, SpaceFsFileResponse, SpaceFsMoveInput, SpaceFsPreparingFile, SpaceFsReadFilesError, SpaceFsReadFilesInput, SpaceFsReadFilesResponse, SpaceFsTreeResponse, SpaceFsUploadDestination, SpaceFsUploadEntry, SpaceFsUploadError, SpaceFsUploadPlanEntry, SpaceFsUploadPlanEntryInput, SpaceFsUploadProgress, SpaceFsUploadResponse, SpaceFsWriteFileInput, SpaceGitInfo, SpaceInvitation, SpaceListItem, SpaceMarkKind, SpaceMarkListItem, SpaceMarkRecord, SpaceMarkResourceType, SpaceMember, SpaceMeta, SpaceModListItem, SpacePublicProfile, SpaceRecord, SpaceRole, SpaceSandboxAutoDestroyPolicy, SpaceSandboxConfig, SpaceSessionsResponse, SpaceUsageHourlyStat, SpaceUsageResponse, SpaceUsageSummary, TaskRunDetailResponse, TaskRunRecord, UserProfile, UserRulesResponse, UserSshKey, type WebSocketConnectionState, WebsocketClient, createCohubClient, createHttpClient, createSessionGenerationStreamClient, createSessionPatchReducer, createWebsocketClient, normalizeBaseUrl, normalizeWebsocketUrl, parseAssistantMessageCommit, resolveApiBaseUrl, resolveCohubEnvironment, resolveWebsocketUrl };
|
|
46
|
+
export { AcceptInvitationResponse, ApiError, type AssistantMessageCommit, BillingApi, BillingCreditExpiryGroup, BillingCreditGrantStatus, BillingCreditStatus, BillingCreditUnit, BillingOpenOverageStatus, BillingPluginStatus, COHUB_ENVIRONMENTS, Channel, ChannelConfig, CheckpointRecord, CohubClient, type CohubClientOptions, type CohubEnvironment, CohubHttpClient, ContentBlock, CreateGenerationTaskRequest, CreateGenerationTaskResponse, CreateInvitationInput, CreateInvitationResponse, type CreatePublicAssetUploadInput, type CreatePublicAssetUploadResponse, CreateSpaceInput, CreateSpaceModInput, CreateSpacePromptInput, CreateSpacePromptResponse, CronJobRecord, DiscordChannelConfig, ExploreSection, ExploreSpaceItem, ExploreSpacesResponse, type Fetch, GenerationContentBlock, type GenerationModelPolicy, type GenerationParameterConstraint, type GenerationPolicy, GenerationPolicyError, type GenerationStreamCommitEvent, type GenerationStreamErrorEvent, type GenerationStreamEvent, type GenerationStreamFinalizedEvent, type GenerationStreamIntermediateMessage, type GenerationStreamOutOfSyncEvent, type GenerationStreamStateEvent, type GenerationStreamSubscriptionHandlers, type GenerationStreamTurnUpdatedEvent, GenerationTaskResult, GlobalSearchResponse, GlobalSearchResult, GlobalSearchType, HttpError, InvitationDetail, JsonObject, JsonPrimitive, JsonValue, ListGenerationModelsResponse, MeResponse, MessageRecord, ModelCatalogEntry, Permission, PromptTemplateCatalogEntry, PromptTemplateCatalogResponse, type PublicAssetPurpose, PublicGenerationDeclaration, type RawHttpResponse, SessionBindingRecord, type SessionEventName, SessionForkRecord, SessionGenerationStreamClient, SessionMessageResponse, SessionMessagesPaginatedResponse, SessionMessagesResponse, type SessionPatchApplyInput, type SessionPatchApplyResult, SessionPatchReducer, type SessionPatchState, type SessionPatchStatus, SessionRecord, type SessionSubscriptionHandlers, SessionTurnIndexItem, SessionTurnIndexResponse, SessionTurnRecord, SessionTurnResponse, SessionTurnSegmentRecord, SessionTurnSignedUrlsResponse, SessionTurnStreamSnapshotResponse, SessionTurnWindowResponse, SessionTurnsPaginatedResponse, SpaceAccess, SpaceAccessPolicy, SpaceBootstrapSource, SpaceChannelBindingInput, type SpaceChannelBindingRecord, SpaceCheckpointDetailResponse, SpaceConfig, SpaceConfigInput, SpaceConfigResponse, SpaceCreateResponse, SpaceEnvInput, type SpaceEventName, SpaceFsCompleteUploadInput, SpaceFsCompleteUploadResponse, SpaceFsCreateUploadInput, SpaceFsCreateUploadResponse, SpaceFsEncoding, SpaceFsEntry, SpaceFsFileKind, SpaceFsFileResponse, SpaceFsMoveInput, SpaceFsPreparingFile, SpaceFsReadFilesError, SpaceFsReadFilesInput, SpaceFsReadFilesResponse, SpaceFsTreeResponse, SpaceFsUploadDestination, SpaceFsUploadEntry, SpaceFsUploadError, SpaceFsUploadPlanEntry, SpaceFsUploadPlanEntryInput, SpaceFsUploadProgress, SpaceFsUploadResponse, SpaceFsWriteFileInput, SpaceGitInfo, SpaceInvitation, SpaceListItem, SpaceMarkKind, SpaceMarkListItem, SpaceMarkRecord, SpaceMarkResourceType, SpaceMember, SpaceMeta, SpaceModListItem, SpacePublicProfile, SpaceRecord, SpaceRole, SpaceSandboxAutoDestroyPolicy, SpaceSandboxConfig, SpaceSessionsResponse, SpaceUsageHourlyStat, SpaceUsageResponse, SpaceUsageSummary, TaskRunDetailResponse, TaskRunRecord, UserProfile, UserRulesResponse, UserSshKey, type WebSocketConnectionState, WebsocketClient, assertGenerationRequestAllowedByPolicy, createCohubClient, createHttpClient, createSessionGenerationStreamClient, createSessionPatchReducer, createWebsocketClient, decodeGenerationPolicy, encodeGenerationPolicy, filterGenerationDeclarationsByPolicy, findGenerationModelPolicy, getAllowedGenerationModelIds, normalizeBaseUrl, normalizeGenerationPolicy, normalizeWebsocketUrl, parseAssistantMessageCommit, parseGenerationPolicyFromEnv, resolveApiBaseUrl, resolveCohubEnvironment, resolveWebsocketUrl };
|
package/dist/index.js
CHANGED
|
@@ -118,4 +118,235 @@ var CohubClient = class {
|
|
|
118
118
|
};
|
|
119
119
|
const createCohubClient = (options) => new CohubClient(options);
|
|
120
120
|
//#endregion
|
|
121
|
-
|
|
121
|
+
//#region ../protocol/src/generation/policy.ts
|
|
122
|
+
const GENERATION_POLICY_ENV_KEY = "COHUB_GENERATION_POLICY_B64";
|
|
123
|
+
var GenerationPolicyError = class extends Error {
|
|
124
|
+
constructor(message) {
|
|
125
|
+
super(message);
|
|
126
|
+
this.name = "GenerationPolicyError";
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
function isRecord(value) {
|
|
130
|
+
return !!value && typeof value === "object" && !Array.isArray(value);
|
|
131
|
+
}
|
|
132
|
+
function isPrimitiveEnumValue(value) {
|
|
133
|
+
return typeof value === "string" || typeof value === "number" || typeof value === "boolean";
|
|
134
|
+
}
|
|
135
|
+
function normalizeConstraint(value) {
|
|
136
|
+
if (!isRecord(value) || typeof value.kind !== "string") return null;
|
|
137
|
+
if (value.kind === "enum") {
|
|
138
|
+
if (!Array.isArray(value.values) || value.values.length === 0 || !value.values.every(isPrimitiveEnumValue)) return null;
|
|
139
|
+
return {
|
|
140
|
+
kind: "enum",
|
|
141
|
+
values: value.values
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
if (value.kind === "number" || value.kind === "integer") {
|
|
145
|
+
const result = { kind: value.kind };
|
|
146
|
+
if (typeof value.min === "number" && Number.isFinite(value.min)) result.min = value.min;
|
|
147
|
+
if (typeof value.max === "number" && Number.isFinite(value.max)) result.max = value.max;
|
|
148
|
+
if (result.min !== void 0 && result.max !== void 0 && result.min > result.max) return null;
|
|
149
|
+
if (Array.isArray(value.values) && value.values.every((item) => typeof item === "number" && Number.isFinite(item))) {
|
|
150
|
+
if (value.kind === "integer" && !value.values.every(Number.isInteger)) return null;
|
|
151
|
+
const min = result.min;
|
|
152
|
+
const max = result.max;
|
|
153
|
+
if (min !== void 0 && value.values.some((item) => item < min)) return null;
|
|
154
|
+
if (max !== void 0 && value.values.some((item) => item > max)) return null;
|
|
155
|
+
result.values = value.values;
|
|
156
|
+
}
|
|
157
|
+
return result;
|
|
158
|
+
}
|
|
159
|
+
if (value.kind === "boolean") return typeof value.value === "boolean" ? {
|
|
160
|
+
kind: "boolean",
|
|
161
|
+
value: value.value
|
|
162
|
+
} : { kind: "boolean" };
|
|
163
|
+
return null;
|
|
164
|
+
}
|
|
165
|
+
function normalizeGenerationPolicy(value) {
|
|
166
|
+
if (!isRecord(value) || value.version !== 1) return null;
|
|
167
|
+
if (value.mode === "auto") return {
|
|
168
|
+
version: 1,
|
|
169
|
+
mode: "auto"
|
|
170
|
+
};
|
|
171
|
+
if (value.mode !== "limited" || !Array.isArray(value.models) || value.models.length === 0) return null;
|
|
172
|
+
const models = [];
|
|
173
|
+
for (const item of value.models) {
|
|
174
|
+
if (!isRecord(item) || typeof item.model !== "string" || !item.model.trim()) return null;
|
|
175
|
+
const modelPolicy = { model: item.model.trim() };
|
|
176
|
+
if (item.parameters !== void 0) {
|
|
177
|
+
if (!isRecord(item.parameters)) return null;
|
|
178
|
+
const parameters = {};
|
|
179
|
+
for (const [key, rawConstraint] of Object.entries(item.parameters)) {
|
|
180
|
+
if (!key.trim()) return null;
|
|
181
|
+
const constraint = normalizeConstraint(rawConstraint);
|
|
182
|
+
if (!constraint) return null;
|
|
183
|
+
parameters[key] = constraint;
|
|
184
|
+
}
|
|
185
|
+
if (Object.keys(parameters).length > 0) modelPolicy.parameters = parameters;
|
|
186
|
+
}
|
|
187
|
+
models.push(modelPolicy);
|
|
188
|
+
}
|
|
189
|
+
return {
|
|
190
|
+
version: 1,
|
|
191
|
+
mode: "limited",
|
|
192
|
+
models
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
function bytesToBase64(bytes) {
|
|
196
|
+
let binary = "";
|
|
197
|
+
for (const byte of bytes) binary += String.fromCharCode(byte);
|
|
198
|
+
return btoa(binary);
|
|
199
|
+
}
|
|
200
|
+
function base64ToBytes(value) {
|
|
201
|
+
const binary = atob(value);
|
|
202
|
+
const bytes = new Uint8Array(binary.length);
|
|
203
|
+
for (let i = 0; i < binary.length; i++) bytes[i] = binary.charCodeAt(i);
|
|
204
|
+
return bytes;
|
|
205
|
+
}
|
|
206
|
+
function toBase64Url(value) {
|
|
207
|
+
return bytesToBase64(new TextEncoder().encode(value)).replaceAll("+", "-").replaceAll("/", "_").replaceAll("=", "");
|
|
208
|
+
}
|
|
209
|
+
function fromBase64Url(value) {
|
|
210
|
+
const base64 = value.replaceAll("-", "+").replaceAll("_", "/");
|
|
211
|
+
const padded = base64.padEnd(base64.length + (4 - base64.length % 4) % 4, "=");
|
|
212
|
+
return new TextDecoder().decode(base64ToBytes(padded));
|
|
213
|
+
}
|
|
214
|
+
function encodeGenerationPolicy(policy) {
|
|
215
|
+
return toBase64Url(JSON.stringify(policy));
|
|
216
|
+
}
|
|
217
|
+
function decodeGenerationPolicy(value) {
|
|
218
|
+
try {
|
|
219
|
+
return normalizeGenerationPolicy(JSON.parse(fromBase64Url(value)));
|
|
220
|
+
} catch {
|
|
221
|
+
return null;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
function parseGenerationPolicyFromEnv(env) {
|
|
225
|
+
const value = env[GENERATION_POLICY_ENV_KEY]?.trim();
|
|
226
|
+
return value ? decodeGenerationPolicy(value) : null;
|
|
227
|
+
}
|
|
228
|
+
function getAllowedGenerationModelIds(policy) {
|
|
229
|
+
if (!policy || policy.mode === "auto") return null;
|
|
230
|
+
return [...new Set((policy.models ?? []).map((item) => item.model))];
|
|
231
|
+
}
|
|
232
|
+
function findGenerationModelPolicy(policy, model) {
|
|
233
|
+
if (!policy || policy.mode === "auto") return null;
|
|
234
|
+
return policy.models?.find((item) => item.model === model) ?? null;
|
|
235
|
+
}
|
|
236
|
+
function formatList(values) {
|
|
237
|
+
return values.map((value) => `- ${String(value)}`).join("\n");
|
|
238
|
+
}
|
|
239
|
+
function modelNotSupportedMessage(allowedModels) {
|
|
240
|
+
return [
|
|
241
|
+
"This turn supports the following generation models:",
|
|
242
|
+
"",
|
|
243
|
+
formatList(allowedModels),
|
|
244
|
+
"",
|
|
245
|
+
"Choose one of these models or update Generation settings in the Models panel."
|
|
246
|
+
].join("\n");
|
|
247
|
+
}
|
|
248
|
+
function valuesNotSupportedMessage(model, name, values, received) {
|
|
249
|
+
return [
|
|
250
|
+
`This turn supports selected values for ${model}.${name}:`,
|
|
251
|
+
"",
|
|
252
|
+
formatList(values),
|
|
253
|
+
"",
|
|
254
|
+
"Received:",
|
|
255
|
+
`- ${String(received)}`
|
|
256
|
+
].join("\n");
|
|
257
|
+
}
|
|
258
|
+
function rangeNotSupportedMessage(model, name, min, max, received) {
|
|
259
|
+
return [
|
|
260
|
+
`This turn supports ${model}.${name} in the range ${min !== void 0 && max !== void 0 ? `${min}–${max}` : min !== void 0 ? `at least ${min}` : `at most ${max}`}.`,
|
|
261
|
+
"",
|
|
262
|
+
"Received:",
|
|
263
|
+
`- ${String(received)}`
|
|
264
|
+
].join("\n");
|
|
265
|
+
}
|
|
266
|
+
function booleanNotSupportedMessage(model, name, expected, received) {
|
|
267
|
+
return [
|
|
268
|
+
`This turn supports ${model}.${name}=${String(expected)}.`,
|
|
269
|
+
"",
|
|
270
|
+
"Received:",
|
|
271
|
+
`- ${String(received)}`
|
|
272
|
+
].join("\n");
|
|
273
|
+
}
|
|
274
|
+
function sameEnumValue(a, b) {
|
|
275
|
+
return typeof a === typeof b && a === b;
|
|
276
|
+
}
|
|
277
|
+
function validateConstraint(input) {
|
|
278
|
+
const { model, name, value, constraint } = input;
|
|
279
|
+
if (constraint.kind === "enum") {
|
|
280
|
+
if (!constraint.values.some((item) => sameEnumValue(item, value))) throw new GenerationPolicyError(valuesNotSupportedMessage(model, name, constraint.values, value));
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
if (constraint.kind === "number" || constraint.kind === "integer") {
|
|
284
|
+
if (typeof value !== "number" || !Number.isFinite(value)) throw new GenerationPolicyError(rangeNotSupportedMessage(model, name, constraint.min, constraint.max, value));
|
|
285
|
+
if (constraint.kind === "integer" && !Number.isInteger(value)) throw new GenerationPolicyError(rangeNotSupportedMessage(model, name, constraint.min, constraint.max, value));
|
|
286
|
+
if (constraint.values?.length && !constraint.values.includes(value)) throw new GenerationPolicyError(valuesNotSupportedMessage(model, name, constraint.values, value));
|
|
287
|
+
if (constraint.min !== void 0 && value < constraint.min) throw new GenerationPolicyError(rangeNotSupportedMessage(model, name, constraint.min, constraint.max, value));
|
|
288
|
+
if (constraint.max !== void 0 && value > constraint.max) throw new GenerationPolicyError(rangeNotSupportedMessage(model, name, constraint.min, constraint.max, value));
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
if (constraint.kind === "boolean" && constraint.value !== void 0 && value !== constraint.value) throw new GenerationPolicyError(booleanNotSupportedMessage(model, name, constraint.value, value));
|
|
292
|
+
}
|
|
293
|
+
function assertGenerationRequestAllowedByPolicy(input) {
|
|
294
|
+
const allowedModels = getAllowedGenerationModelIds(input.policy);
|
|
295
|
+
if (!allowedModels) return;
|
|
296
|
+
const modelPolicy = findGenerationModelPolicy(input.policy, input.model);
|
|
297
|
+
if (!modelPolicy) throw new GenerationPolicyError(modelNotSupportedMessage(allowedModels));
|
|
298
|
+
const parameters = input.parameters ?? {};
|
|
299
|
+
for (const [name, value] of Object.entries(parameters)) {
|
|
300
|
+
const constraint = modelPolicy.parameters?.[name];
|
|
301
|
+
if (!constraint) continue;
|
|
302
|
+
validateConstraint({
|
|
303
|
+
model: input.model,
|
|
304
|
+
name,
|
|
305
|
+
value,
|
|
306
|
+
constraint
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
function cloneDeclaration(declaration) {
|
|
311
|
+
return {
|
|
312
|
+
...declaration,
|
|
313
|
+
content: {
|
|
314
|
+
...declaration.content,
|
|
315
|
+
input: [...declaration.content.input]
|
|
316
|
+
},
|
|
317
|
+
parameters: declaration.parameters ? Object.fromEntries(Object.entries(declaration.parameters).map(([key, value]) => [key, { ...value }])) : declaration.parameters,
|
|
318
|
+
examples: declaration.examples ? [...declaration.examples] : declaration.examples
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
function narrowParameterSpec(spec, constraint) {
|
|
322
|
+
const next = { ...spec };
|
|
323
|
+
if (constraint.kind === "enum") {
|
|
324
|
+
if ("enum" in next && Array.isArray(next.enum)) next.enum = next.enum.filter((value) => constraint.values.some((allowed) => sameEnumValue(allowed, value)));
|
|
325
|
+
return next;
|
|
326
|
+
}
|
|
327
|
+
if (constraint.kind === "number" || constraint.kind === "integer") {
|
|
328
|
+
if ("min" in next && typeof next.min === "number" && constraint.min !== void 0) next.min = Math.max(next.min, constraint.min);
|
|
329
|
+
else if ("min" in next && constraint.min !== void 0) next.min = constraint.min;
|
|
330
|
+
if ("max" in next && typeof next.max === "number" && constraint.max !== void 0) next.max = Math.min(next.max, constraint.max);
|
|
331
|
+
else if ("max" in next && constraint.max !== void 0) next.max = constraint.max;
|
|
332
|
+
if (constraint.values?.length && "enum" in next && Array.isArray(next.enum)) next.enum = next.enum.filter((value) => constraint.values?.some((allowed) => sameEnumValue(allowed, value)));
|
|
333
|
+
}
|
|
334
|
+
return next;
|
|
335
|
+
}
|
|
336
|
+
function filterGenerationDeclarationsByPolicy(declarations, policy) {
|
|
337
|
+
const allowedModels = getAllowedGenerationModelIds(policy);
|
|
338
|
+
if (!allowedModels) return declarations;
|
|
339
|
+
const allowedSet = new Set(allowedModels);
|
|
340
|
+
return declarations.filter((declaration) => allowedSet.has(declaration.model)).map((declaration) => {
|
|
341
|
+
const cloned = cloneDeclaration(declaration);
|
|
342
|
+
const modelPolicy = findGenerationModelPolicy(policy, declaration.model);
|
|
343
|
+
if (!modelPolicy?.parameters || !cloned.parameters) return cloned;
|
|
344
|
+
for (const [name, constraint] of Object.entries(modelPolicy.parameters)) {
|
|
345
|
+
const spec = cloned.parameters[name];
|
|
346
|
+
if (spec) cloned.parameters[name] = narrowParameterSpec(spec, constraint);
|
|
347
|
+
}
|
|
348
|
+
return cloned;
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
//#endregion
|
|
352
|
+
export { BillingApi, COHUB_ENVIRONMENTS, CohubClient, CohubHttpClient, GenerationPolicyError, HttpError, SessionGenerationStreamClient, SessionPatchReducer, WebsocketClient, assertGenerationRequestAllowedByPolicy, createCohubClient, createHttpClient, createSessionGenerationStreamClient, createSessionPatchReducer, createWebsocketClient, decodeGenerationPolicy, encodeGenerationPolicy, filterGenerationDeclarationsByPolicy, findGenerationModelPolicy, getAllowedGenerationModelIds, normalizeBaseUrl, normalizeGenerationPolicy, normalizeWebsocketUrl, parseAssistantMessageCommit, parseGenerationPolicyFromEnv, resolveApiBaseUrl, resolveCohubEnvironment, resolveWebsocketUrl };
|