deepspace 0.9.2 → 0.10.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/index.d.ts CHANGED
@@ -199,6 +199,9 @@ interface ConvReadCursorData {
199
199
  LastReadAt: string;
200
200
  }
201
201
 
202
+ /** Standard system-managed user columns shared by browser and Worker schemas. */
203
+ declare const USERS_COLUMNS: readonly ColumnDefinition[];
204
+
202
205
  /**
203
206
  * Environment detection and URL configuration
204
207
  *
@@ -265,6 +268,181 @@ declare const ROLE_CONFIG: Record<Role, {
265
268
  description: string;
266
269
  }>;
267
270
 
271
+ /**
272
+ * Canonical DeepSpace model catalog and agent policy.
273
+ *
274
+ * Provider catalogs are discovery inputs, not a safe runtime allowlist: a
275
+ * model is promoted here only after its tool loop, transport, pricing, and
276
+ * streaming contract have been verified end to end through the DeepSpace
277
+ * proxy. Every client picker and server agent profile consumes this module.
278
+ */
279
+ type DeepSpaceAIProvider = 'anthropic' | 'openai' | 'cerebras';
280
+ type DeepSpaceAgentProfileId = 'application' | 'documentation';
281
+ type DeepSpaceAgentSupport = 'multi-step' | 'single-step' | 'none';
282
+ interface DeepSpaceAIModel {
283
+ id: string;
284
+ label: string;
285
+ provider: DeepSpaceAIProvider;
286
+ providerLabel: string;
287
+ family: string;
288
+ /** Whether the model is eligible for DeepSpace's server-owned agent loop. */
289
+ agentSupport: DeepSpaceAgentSupport;
290
+ /** Profiles in which the model has passed the complete runtime contract. */
291
+ agentProfiles: readonly DeepSpaceAgentProfileId[];
292
+ /** Provider transport currently used by the DeepSpace proxy adapter. */
293
+ transport: 'messages' | 'chat-completions';
294
+ recommendation: 'frontier' | 'balanced' | 'fast' | 'available' | 'limited';
295
+ note?: string;
296
+ }
297
+ interface DeepSpaceAgentProfile {
298
+ id: DeepSpaceAgentProfileId;
299
+ defaultModel: string;
300
+ maxSteps: number;
301
+ maxToolCalls?: number;
302
+ allowedTools: 'application-defined' | readonly string[];
303
+ }
304
+ /**
305
+ * Versioned provenance for the provider catalogs used during the latest
306
+ * promotion review. Keeping this in the shipped artifact makes selection
307
+ * policy auditable without allowing a mutable upstream list to change a
308
+ * deployed app underneath a commit.
309
+ */
310
+ declare const DEEPSPACE_MODEL_CATALOG_PROVENANCE: {
311
+ readonly version: "2026-08-03";
312
+ readonly verifiedAt: "2026-08-03";
313
+ readonly sources: {
314
+ readonly anthropic: "https://platform.claude.com/docs/en/api/beta/models/list";
315
+ readonly openai: "https://developers.openai.com/api/docs/models/all";
316
+ readonly cerebras: "https://inference-docs.cerebras.ai/models/overview";
317
+ };
318
+ };
319
+ declare const DEEPSPACE_AI_MODELS: readonly [{
320
+ readonly id: "claude-fable-5";
321
+ readonly label: "Claude Fable 5";
322
+ readonly family: "Claude 5";
323
+ readonly recommendation: "frontier";
324
+ } & {
325
+ readonly provider: "anthropic";
326
+ readonly providerLabel: "Anthropic";
327
+ readonly transport: "messages";
328
+ } & {
329
+ agentSupport: "multi-step";
330
+ agentProfiles: readonly ["application", "documentation"];
331
+ }, {
332
+ readonly id: "claude-opus-5";
333
+ readonly label: "Claude Opus 5";
334
+ readonly family: "Claude 5";
335
+ readonly recommendation: "frontier";
336
+ } & {
337
+ readonly provider: "anthropic";
338
+ readonly providerLabel: "Anthropic";
339
+ readonly transport: "messages";
340
+ } & {
341
+ agentSupport: "multi-step";
342
+ agentProfiles: readonly ["application", "documentation"];
343
+ }, {
344
+ readonly id: "claude-sonnet-5";
345
+ readonly label: "Claude Sonnet 5";
346
+ readonly family: "Claude 5";
347
+ readonly recommendation: "balanced";
348
+ } & {
349
+ readonly provider: "anthropic";
350
+ readonly providerLabel: "Anthropic";
351
+ readonly transport: "messages";
352
+ } & {
353
+ agentSupport: "multi-step";
354
+ agentProfiles: readonly ["application", "documentation"];
355
+ }, {
356
+ readonly id: "claude-haiku-4-5";
357
+ readonly label: "Claude Haiku 4.5";
358
+ readonly family: "Claude 4.5";
359
+ readonly recommendation: "fast";
360
+ } & {
361
+ readonly provider: "anthropic";
362
+ readonly providerLabel: "Anthropic";
363
+ readonly transport: "messages";
364
+ } & {
365
+ agentSupport: "multi-step";
366
+ agentProfiles: readonly ["application", "documentation"];
367
+ }, {
368
+ readonly id: "gpt-5.6-sol";
369
+ readonly label: "GPT-5.6 Sol";
370
+ readonly family: "GPT-5.6";
371
+ readonly recommendation: "frontier";
372
+ } & {
373
+ readonly provider: "openai";
374
+ readonly providerLabel: "OpenAI";
375
+ readonly transport: "chat-completions";
376
+ } & {
377
+ agentSupport: "multi-step";
378
+ agentProfiles: readonly ["application", "documentation"];
379
+ }, {
380
+ readonly id: "gpt-5.6-terra";
381
+ readonly label: "GPT-5.6 Terra";
382
+ readonly family: "GPT-5.6";
383
+ readonly recommendation: "balanced";
384
+ } & {
385
+ readonly provider: "openai";
386
+ readonly providerLabel: "OpenAI";
387
+ readonly transport: "chat-completions";
388
+ } & {
389
+ agentSupport: "multi-step";
390
+ agentProfiles: readonly ["application", "documentation"];
391
+ }, {
392
+ readonly id: "gpt-5.6-luna";
393
+ readonly label: "GPT-5.6 Luna";
394
+ readonly family: "GPT-5.6";
395
+ readonly recommendation: "fast";
396
+ } & {
397
+ readonly provider: "openai";
398
+ readonly providerLabel: "OpenAI";
399
+ readonly transport: "chat-completions";
400
+ } & {
401
+ agentSupport: "multi-step";
402
+ agentProfiles: readonly ["application", "documentation"];
403
+ }, {
404
+ readonly id: "gpt-oss-120b";
405
+ readonly label: "GPT-OSS 120B";
406
+ readonly provider: "cerebras";
407
+ readonly providerLabel: "Cerebras";
408
+ readonly family: "GPT-OSS";
409
+ readonly agentSupport: "single-step";
410
+ readonly agentProfiles: readonly [];
411
+ readonly transport: "chat-completions";
412
+ readonly recommendation: "limited";
413
+ readonly note: "Available for direct generation; the current proxy adapter has not passed multi-step tool-result continuation.";
414
+ }];
415
+ declare const DEEPSPACE_AI_DEFAULTS: {
416
+ readonly agent: "claude-sonnet-5";
417
+ readonly directGeneration: "claude-sonnet-5";
418
+ readonly summarization: "claude-haiku-4-5";
419
+ };
420
+ declare const DEEPSPACE_AGENT_PROFILES: {
421
+ readonly application: {
422
+ readonly id: "application";
423
+ readonly defaultModel: "claude-sonnet-5";
424
+ readonly maxSteps: 5;
425
+ readonly allowedTools: "application-defined";
426
+ };
427
+ readonly documentation: {
428
+ readonly id: "documentation";
429
+ readonly defaultModel: "claude-sonnet-5";
430
+ readonly maxSteps: 21;
431
+ readonly maxToolCalls: 20;
432
+ readonly allowedTools: readonly ["docs_search", "docs_read"];
433
+ };
434
+ };
435
+ type DeepSpaceAIModelId = (typeof DEEPSPACE_AI_MODELS)[number]['id'];
436
+ declare function getDeepSpaceAIModel(modelId: unknown): DeepSpaceAIModel | null;
437
+ declare function listDeepSpaceAgentModels(profileId?: DeepSpaceAgentProfileId): readonly DeepSpaceAIModel[];
438
+ interface ResolvedDeepSpaceAgentModel {
439
+ modelId: string;
440
+ provider: DeepSpaceAIProvider;
441
+ model: DeepSpaceAIModel;
442
+ profile: DeepSpaceAgentProfile;
443
+ }
444
+ declare function resolveDeepSpaceAgentModel(modelId: unknown, profileId?: DeepSpaceAgentProfileId): ResolvedDeepSpaceAgentModel | null;
445
+
268
446
  /**
269
447
  * Yjs Sync Protocol Implementation
270
448
  *
@@ -4766,4 +4944,4 @@ interface AppLogsResponse {
4766
4944
  declare const APP_LOG_EVENT_KEYS: readonly ["id", "timestamp", "level", "eventType", "message", "source", "outcome", "request", "exception"];
4767
4945
  type AppLogEventKey = (typeof APP_LOG_EVENT_KEYS)[number];
4768
4946
 
4769
- export { APP_LOG_EVENT_KEYS, ASYNC_RESOURCE_DEFAULTS, type AdHocChargeOpts, type AiStreamAction, type AiStreamChunk, type AppLogEvent, type AppLogEventKey, type AppLogsResponse, type AppMigrationIdsValidation, type AsyncResourceDefaults, type AsyncResourceState, type AsyncResourceStatus, AuthGate, type AuthGateProps, AuthOverlay, Awareness, type AwarenessState, type AwarenessStates, type BaseMessage, CANONICAL_APP_IDENTITY_MIGRATION_ID, type CanvasShapeClient, type Channel, type ChannelInvitation, type ChannelMember, type ChargeOnceOpts, type ChargeOnceResult, type ClientErrorKind, type ClientErrorReport, type ClientErrorReporterOptions, type ClientMessage, type CollectionSchema, type ConnectionAttachment, type ConnectionStatus, type ContentSegment, type ConversationObject, type CronHistoryEntry, type CronTaskState, DEEPSPACE_THEME_PROPERTIES, DEFAULT_USER_COLORS, DeepSpaceAuthProvider, type DeepSpaceThemeConfig, DeepSpaceThemeProvider, type DeepSpaceThemeProviderProps, type DeriveLoadStateInput, ENV, type Environment, type FileAttachment, type GamePlayer, type GroupedReaction, GuestBanner, type HandlerContext, type InboxEntry, type IntegrationResponse, type JobStatusView, type JobView, LOG_LEVELS, type LinkPreviewData, type LoadState, type LoadStateAuthInput, type LoadStateStatusInput, type LogLevel, MSG, MSG_AWARENESS, MSG_SYNC, MSG_SYNC_STEP1, MSG_SYNC_STEP2, MSG_SYNC_UPDATE, MSG_YJS_AWARENESS, MSG_YJS_SYNC, type MemberRecord, type Message, type MessageHandlers, type MessageRecord, type MsgType, type PagedResourceFetchArgs, type PagedResourcePage, type PagedResourceState, type PagedResourceStatus, type PlanInfo, PlatformContext, type PlatformContextValue, PlatformProvider, type PlatformWSOptions, type PlatformWSResult, type PresencePeerClient, PricingTable, type PricingTablePlan, type PricingTablePrice, type ProductChargeOpts, type ProtocolMessage, type Purchase, type Query, type R2FileInfo, type R2Scope, type R2UploadResult, ROLES, ROLE_ADMIN, ROLE_ANONYMOUS, ROLE_CONFIG, ROLE_DEFAULT, type Reaction, type ReactionRecord, type ReadCursorRecord, type ReadReceipt, type RecordData, RecordProvider, type RecordProviderProps, RecordScope, type RequestOptions, type Role, type RoomUser, type ScopeEntry, ScopeRegistryProvider, type ServerMessage, SignedIn, SignedOut, type SubscribeOpts, type SubscribeResult, type SubscriptionState, type SubscriptionStatus, type SyncResult, type UseAsyncResourceOptions, type UseAuthProfileReadyOptions, type UseAuthStatusOptions, type UseCanvasResult, type UseCheckoutOpts, type UseCronMonitorResult, type UseGameRoomResult, type UseJobsResult, type UsePagedResourceOptions, type UsePresenceRoomResult, type UseR2FilesReturn, type UseVoiceAgentOptions, type UseVoiceAgentResult, type UseYjsFieldResult, type UseYjsRoomResult, type UseYjsTextResult, type User, type UserCredits, type UserInfo, type UserKarma, type UserProfile, type ViewportClient, type VoiceStatus, type VoiceTranscriptEntry, type WriteError, applyDeepSpaceTheme, applyUIThemeTokens, authClient, canAutoLoadPagedResource, clampPagedResourceItems, clearAuthToken, clearDeepSpaceTheme, clientBuild, createDecoder, createEncoder, decodeAiStreamChunk, deriveLoadState, detectEnvironment, dispatch, encode, encodeAwarenessMessage, encodeSyncStep1, encodeSyncStep2, encodeUpdate, formatFileSize, formatFullTimestamp, formatMessageTime, getApiUrl, getAuthToken, getAuthUrl, getConversationDisplayName, getConversationParticipantIds, getEnvironmentConfig, getMessageType, getPagedResourceCooldownMs, getPlatformWorkerUrl, getThreadCounts, getUserColor, groupReactionsForMessage, handleAwarenessMessage, handleSyncMessage, hasContent, installClientErrorReporter, integration, isAsyncResourceSlow, isDMConversation, isDarkColor, isImageFile, isLocalDev, isProduction, parseMessageMetadata, parseSseLine, readThemeFromDOM, readVarUint, readVarUint8Array, reportClientError, resetEnvironmentCache, serverBuild, shouldGroupMessages, signIn, signOut, toConnectionStatus, toUint8Array, useAsyncResource, useAuth, useAuthProfileReady, useAuthStatus, useAuthUser, useCanvas, useChannelMembers, useChannels, useCheckout, useCommunities, useConversation, useConversations, useCronMonitor, useDisplayName, useGameRoom, useInbox, useIsDarkTheme, useJobs, useMessages, useMutations, usePagedResource, usePlatform, usePlatformWS, usePosts, usePresence, usePresenceRoom, useQuery, useR2Files, useReactions, useReadReceipts, useRecordContext, useSession, useSubscription, useUser, useUserLookup, useUsers, useVoiceAgent, useYjsField, useYjsRoom, useYjsText, validateAppMigrationIds, writeVarUint, writeVarUint8Array };
4947
+ export { APP_LOG_EVENT_KEYS, ASYNC_RESOURCE_DEFAULTS, type AdHocChargeOpts, type AiStreamAction, type AiStreamChunk, type AppLogEvent, type AppLogEventKey, type AppLogsResponse, type AppMigrationIdsValidation, type AsyncResourceDefaults, type AsyncResourceState, type AsyncResourceStatus, AuthGate, type AuthGateProps, AuthOverlay, Awareness, type AwarenessState, type AwarenessStates, type BaseMessage, CANONICAL_APP_IDENTITY_MIGRATION_ID, type CanvasShapeClient, type Channel, type ChannelInvitation, type ChannelMember, type ChargeOnceOpts, type ChargeOnceResult, type ClientErrorKind, type ClientErrorReport, type ClientErrorReporterOptions, type ClientMessage, type CollectionSchema, type ConnectionAttachment, type ConnectionStatus, type ContentSegment, type ConversationObject, type CronHistoryEntry, type CronTaskState, DEEPSPACE_AGENT_PROFILES, DEEPSPACE_AI_DEFAULTS, DEEPSPACE_AI_MODELS, DEEPSPACE_MODEL_CATALOG_PROVENANCE, DEEPSPACE_THEME_PROPERTIES, DEFAULT_USER_COLORS, type DeepSpaceAIModel, type DeepSpaceAIModelId, type DeepSpaceAIProvider, type DeepSpaceAgentProfile, type DeepSpaceAgentProfileId, type DeepSpaceAgentSupport, DeepSpaceAuthProvider, type DeepSpaceThemeConfig, DeepSpaceThemeProvider, type DeepSpaceThemeProviderProps, type DeriveLoadStateInput, ENV, type Environment, type FileAttachment, type GamePlayer, type GroupedReaction, GuestBanner, type HandlerContext, type InboxEntry, type IntegrationResponse, type JobStatusView, type JobView, LOG_LEVELS, type LinkPreviewData, type LoadState, type LoadStateAuthInput, type LoadStateStatusInput, type LogLevel, MSG, MSG_AWARENESS, MSG_SYNC, MSG_SYNC_STEP1, MSG_SYNC_STEP2, MSG_SYNC_UPDATE, MSG_YJS_AWARENESS, MSG_YJS_SYNC, type MemberRecord, type Message, type MessageHandlers, type MessageRecord, type MsgType, type PagedResourceFetchArgs, type PagedResourcePage, type PagedResourceState, type PagedResourceStatus, type PlanInfo, PlatformContext, type PlatformContextValue, PlatformProvider, type PlatformWSOptions, type PlatformWSResult, type PresencePeerClient, PricingTable, type PricingTablePlan, type PricingTablePrice, type ProductChargeOpts, type ProtocolMessage, type Purchase, type Query, type R2FileInfo, type R2Scope, type R2UploadResult, ROLES, ROLE_ADMIN, ROLE_ANONYMOUS, ROLE_CONFIG, ROLE_DEFAULT, type Reaction, type ReactionRecord, type ReadCursorRecord, type ReadReceipt, type RecordData, RecordProvider, type RecordProviderProps, RecordScope, type RequestOptions, type ResolvedDeepSpaceAgentModel, type Role, type RoomUser, type ScopeEntry, ScopeRegistryProvider, type ServerMessage, SignedIn, SignedOut, type SubscribeOpts, type SubscribeResult, type SubscriptionState, type SubscriptionStatus, type SyncResult, USERS_COLUMNS, type UseAsyncResourceOptions, type UseAuthProfileReadyOptions, type UseAuthStatusOptions, type UseCanvasResult, type UseCheckoutOpts, type UseCronMonitorResult, type UseGameRoomResult, type UseJobsResult, type UsePagedResourceOptions, type UsePresenceRoomResult, type UseR2FilesReturn, type UseVoiceAgentOptions, type UseVoiceAgentResult, type UseYjsFieldResult, type UseYjsRoomResult, type UseYjsTextResult, type User, type UserCredits, type UserInfo, type UserKarma, type UserProfile, type ViewportClient, type VoiceStatus, type VoiceTranscriptEntry, type WriteError, applyDeepSpaceTheme, applyUIThemeTokens, authClient, canAutoLoadPagedResource, clampPagedResourceItems, clearAuthToken, clearDeepSpaceTheme, clientBuild, createDecoder, createEncoder, decodeAiStreamChunk, deriveLoadState, detectEnvironment, dispatch, encode, encodeAwarenessMessage, encodeSyncStep1, encodeSyncStep2, encodeUpdate, formatFileSize, formatFullTimestamp, formatMessageTime, getApiUrl, getAuthToken, getAuthUrl, getConversationDisplayName, getConversationParticipantIds, getDeepSpaceAIModel, getEnvironmentConfig, getMessageType, getPagedResourceCooldownMs, getPlatformWorkerUrl, getThreadCounts, getUserColor, groupReactionsForMessage, handleAwarenessMessage, handleSyncMessage, hasContent, installClientErrorReporter, integration, isAsyncResourceSlow, isDMConversation, isDarkColor, isImageFile, isLocalDev, isProduction, listDeepSpaceAgentModels, parseMessageMetadata, parseSseLine, readThemeFromDOM, readVarUint, readVarUint8Array, reportClientError, resetEnvironmentCache, resolveDeepSpaceAgentModel, serverBuild, shouldGroupMessages, signIn, signOut, toConnectionStatus, toUint8Array, useAsyncResource, useAuth, useAuthProfileReady, useAuthStatus, useAuthUser, useCanvas, useChannelMembers, useChannels, useCheckout, useCommunities, useConversation, useConversations, useCronMonitor, useDisplayName, useGameRoom, useInbox, useIsDarkTheme, useJobs, useMessages, useMutations, usePagedResource, usePlatform, usePlatformWS, usePosts, usePresence, usePresenceRoom, useQuery, useR2Files, useReactions, useReadReceipts, useRecordContext, useSession, useSubscription, useUser, useUserLookup, useUsers, useVoiceAgent, useYjsField, useYjsRoom, useYjsText, validateAppMigrationIds, writeVarUint, writeVarUint8Array };
package/dist/index.js CHANGED
@@ -1,3 +1,13 @@
1
+ // src/shared/users-schema.ts
2
+ var USERS_COLUMNS = [
3
+ { name: "email", storage: "text", interpretation: "plain" },
4
+ { name: "name", storage: "text", interpretation: "plain" },
5
+ { name: "imageUrl", storage: "text", interpretation: "plain" },
6
+ { name: "role", storage: "text", interpretation: "plain" },
7
+ { name: "createdAt", storage: "text", interpretation: { kind: "datetime" } },
8
+ { name: "lastSeenAt", storage: "text", interpretation: { kind: "datetime" } }
9
+ ];
10
+
1
11
  // src/shared/env/index.ts
2
12
  var DEV_CONFIG = {
3
13
  name: "dev",
@@ -145,6 +155,131 @@ var ROLE_CONFIG = {
145
155
  admin: { title: "Admin", badgeVariant: "warning", description: "Full access to all features" }
146
156
  };
147
157
 
158
+ // src/shared/ai-models.ts
159
+ var DEEPSPACE_MODEL_CATALOG_PROVENANCE = {
160
+ version: "2026-08-03",
161
+ verifiedAt: "2026-08-03",
162
+ sources: {
163
+ anthropic: "https://platform.claude.com/docs/en/api/beta/models/list",
164
+ openai: "https://developers.openai.com/api/docs/models/all",
165
+ cerebras: "https://inference-docs.cerebras.ai/models/overview"
166
+ }
167
+ };
168
+ var MULTI_STEP_AGENT_PROFILES = ["application", "documentation"];
169
+ function createMultiStepModelFactory(provider) {
170
+ return (model) => ({
171
+ ...model,
172
+ ...provider,
173
+ agentSupport: "multi-step",
174
+ agentProfiles: MULTI_STEP_AGENT_PROFILES
175
+ });
176
+ }
177
+ var anthropicModel = createMultiStepModelFactory({
178
+ provider: "anthropic",
179
+ providerLabel: "Anthropic",
180
+ transport: "messages"
181
+ });
182
+ var openAIModel = createMultiStepModelFactory({
183
+ provider: "openai",
184
+ providerLabel: "OpenAI",
185
+ transport: "chat-completions"
186
+ });
187
+ var DEEPSPACE_AI_MODELS = [
188
+ anthropicModel({
189
+ id: "claude-fable-5",
190
+ label: "Claude Fable 5",
191
+ family: "Claude 5",
192
+ recommendation: "frontier"
193
+ }),
194
+ anthropicModel({
195
+ id: "claude-opus-5",
196
+ label: "Claude Opus 5",
197
+ family: "Claude 5",
198
+ recommendation: "frontier"
199
+ }),
200
+ anthropicModel({
201
+ id: "claude-sonnet-5",
202
+ label: "Claude Sonnet 5",
203
+ family: "Claude 5",
204
+ recommendation: "balanced"
205
+ }),
206
+ anthropicModel({
207
+ id: "claude-haiku-4-5",
208
+ label: "Claude Haiku 4.5",
209
+ family: "Claude 4.5",
210
+ recommendation: "fast"
211
+ }),
212
+ openAIModel({
213
+ id: "gpt-5.6-sol",
214
+ label: "GPT-5.6 Sol",
215
+ family: "GPT-5.6",
216
+ recommendation: "frontier"
217
+ }),
218
+ openAIModel({
219
+ id: "gpt-5.6-terra",
220
+ label: "GPT-5.6 Terra",
221
+ family: "GPT-5.6",
222
+ recommendation: "balanced"
223
+ }),
224
+ openAIModel({
225
+ id: "gpt-5.6-luna",
226
+ label: "GPT-5.6 Luna",
227
+ family: "GPT-5.6",
228
+ recommendation: "fast"
229
+ }),
230
+ {
231
+ id: "gpt-oss-120b",
232
+ label: "GPT-OSS 120B",
233
+ provider: "cerebras",
234
+ providerLabel: "Cerebras",
235
+ family: "GPT-OSS",
236
+ agentSupport: "single-step",
237
+ agentProfiles: [],
238
+ transport: "chat-completions",
239
+ recommendation: "limited",
240
+ note: "Available for direct generation; the current proxy adapter has not passed multi-step tool-result continuation."
241
+ }
242
+ ];
243
+ var DEEPSPACE_AI_DEFAULTS = {
244
+ agent: "claude-sonnet-5",
245
+ directGeneration: "claude-sonnet-5",
246
+ summarization: "claude-haiku-4-5"
247
+ };
248
+ var DEEPSPACE_AGENT_PROFILES = {
249
+ application: {
250
+ id: "application",
251
+ defaultModel: DEEPSPACE_AI_DEFAULTS.agent,
252
+ maxSteps: 5,
253
+ allowedTools: "application-defined"
254
+ },
255
+ documentation: {
256
+ id: "documentation",
257
+ defaultModel: DEEPSPACE_AI_DEFAULTS.agent,
258
+ // Permit up to twenty completed read-only tools plus one final synthesis
259
+ // step. The runner disables tools once the tool-call budget is exhausted.
260
+ maxSteps: 21,
261
+ maxToolCalls: 20,
262
+ allowedTools: ["docs_search", "docs_read"]
263
+ }
264
+ };
265
+ function getDeepSpaceAIModel(modelId) {
266
+ if (typeof modelId !== "string") return null;
267
+ return DEEPSPACE_AI_MODELS.find((model) => model.id === modelId) ?? null;
268
+ }
269
+ function listDeepSpaceAgentModels(profileId = "application") {
270
+ const defaultModel = DEEPSPACE_AGENT_PROFILES[profileId].defaultModel;
271
+ return DEEPSPACE_AI_MODELS.filter(
272
+ (model) => model.agentProfiles.includes(profileId)
273
+ ).sort((left, right) => Number(right.id === defaultModel) - Number(left.id === defaultModel));
274
+ }
275
+ function resolveDeepSpaceAgentModel(modelId, profileId = "application") {
276
+ const profile = DEEPSPACE_AGENT_PROFILES[profileId];
277
+ const resolvedId = modelId === void 0 ? profile.defaultModel : modelId;
278
+ const model = getDeepSpaceAIModel(resolvedId);
279
+ if (!model || !model.agentProfiles.includes(profileId)) return null;
280
+ return { modelId: model.id, provider: model.provider, model, profile };
281
+ }
282
+
148
283
  // src/shared/protocol/yjs.ts
149
284
  import * as Y from "yjs";
150
285
  var MSG_SYNC = 0;
@@ -6043,6 +6178,10 @@ export {
6043
6178
  AuthOverlay,
6044
6179
  Awareness,
6045
6180
  CANONICAL_APP_IDENTITY_MIGRATION_ID,
6181
+ DEEPSPACE_AGENT_PROFILES,
6182
+ DEEPSPACE_AI_DEFAULTS,
6183
+ DEEPSPACE_AI_MODELS,
6184
+ DEEPSPACE_MODEL_CATALOG_PROVENANCE,
6046
6185
  DEEPSPACE_THEME_PROPERTIES,
6047
6186
  DEFAULT_USER_COLORS,
6048
6187
  DeepSpaceAuthProvider,
@@ -6071,6 +6210,7 @@ export {
6071
6210
  ScopeRegistryProvider,
6072
6211
  SignedIn,
6073
6212
  SignedOut,
6213
+ USERS_COLUMNS,
6074
6214
  applyDeepSpaceTheme,
6075
6215
  applyUIThemeTokens,
6076
6216
  authClient,
@@ -6098,6 +6238,7 @@ export {
6098
6238
  getAuthUrl,
6099
6239
  getConversationDisplayName,
6100
6240
  getConversationParticipantIds,
6241
+ getDeepSpaceAIModel,
6101
6242
  getEnvironmentConfig,
6102
6243
  getMessageType,
6103
6244
  getPagedResourceCooldownMs,
@@ -6116,6 +6257,7 @@ export {
6116
6257
  isImageFile,
6117
6258
  isLocalDev,
6118
6259
  isProduction,
6260
+ listDeepSpaceAgentModels,
6119
6261
  parseMessageMetadata,
6120
6262
  parseSseLine,
6121
6263
  readThemeFromDOM,
@@ -6123,6 +6265,7 @@ export {
6123
6265
  readVarUint8Array,
6124
6266
  reportClientError,
6125
6267
  resetEnvironmentCache,
6268
+ resolveDeepSpaceAgentModel,
6126
6269
  serverBuild,
6127
6270
  shouldGroupMessages,
6128
6271
  signIn,