@blade-hq/agent-kit 1.0.27 → 1.0.28

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.
Files changed (48) hide show
  1. package/dist/{chunk-X2NJKKXR.js → chunk-BGNKHPCD.js} +213 -40
  2. package/dist/chunk-BGNKHPCD.js.map +1 -0
  3. package/dist/{chunk-M72OL7ZJ.js → chunk-HCQDDDOX.js} +2 -2
  4. package/dist/{chunk-TE6G6NVX.js → chunk-OGHUIKCY.js} +3 -3
  5. package/dist/{chunk-C2FKVGJU.js → chunk-PYYDXV2A.js} +2 -2
  6. package/dist/{chunk-JU5SL4HP.js → chunk-TVWC3PED.js} +2 -2
  7. package/dist/{chunk-SBASG3M2.js → chunk-UWNQ4PXK.js} +4 -1101
  8. package/dist/chunk-UWNQ4PXK.js.map +1 -0
  9. package/dist/{chunk-34GDDOWY.js → chunk-YJ6BX3FU.js} +1379 -31
  10. package/dist/chunk-YJ6BX3FU.js.map +1 -0
  11. package/dist/client/blade-client.d.ts +2 -0
  12. package/dist/client/index.d.ts +1 -0
  13. package/dist/client/index.js +3 -1
  14. package/dist/client/resources/app-dev-templates.d.ts +93 -0
  15. package/dist/client/resources/models.d.ts +3 -0
  16. package/dist/{react → client/shared}/projection/builder.d.ts +1 -1
  17. package/dist/{react → client/shared}/projection/helpers.d.ts +1 -1
  18. package/dist/client/shared/projection/history.d.ts +12 -0
  19. package/dist/{react → client/shared}/projection/index.d.ts +1 -0
  20. package/dist/{react → client/shared}/projection/state.d.ts +1 -1
  21. package/dist/client/types/index.d.ts +2 -2
  22. package/dist/client/types/rest.d.ts +1010 -29
  23. package/dist/client/types/socket-events.d.ts +18 -132
  24. package/dist/react/api/app-dev-templates.d.ts +5 -0
  25. package/dist/react/api/model-config.d.ts +68 -0
  26. package/dist/react/api/models.d.ts +2 -0
  27. package/dist/react/api/published-apps.js +3 -3
  28. package/dist/react/api/sessions.js +2 -2
  29. package/dist/react/components/chat/ChatView.d.ts +3 -1
  30. package/dist/react/components/chat/MessageList.d.ts +3 -1
  31. package/dist/react/components/chat/index.js +5 -5
  32. package/dist/react/components/chat/scroll-anchor.d.ts +8 -0
  33. package/dist/react/components/plan/index.js +4 -4
  34. package/dist/react/components/session/index.js +3 -3
  35. package/dist/react/components/workspace/index.js +3 -3
  36. package/dist/react/hooks/use-model-preferences.d.ts +1 -0
  37. package/dist/react/hooks/use-resolved-model.d.ts +1 -0
  38. package/dist/react/index.d.ts +3 -0
  39. package/dist/react/index.js +87 -7
  40. package/dist/react/index.js.map +1 -1
  41. package/package.json +1 -1
  42. package/dist/chunk-34GDDOWY.js.map +0 -1
  43. package/dist/chunk-SBASG3M2.js.map +0 -1
  44. package/dist/chunk-X2NJKKXR.js.map +0 -1
  45. /package/dist/{chunk-M72OL7ZJ.js.map → chunk-HCQDDDOX.js.map} +0 -0
  46. /package/dist/{chunk-TE6G6NVX.js.map → chunk-OGHUIKCY.js.map} +0 -0
  47. /package/dist/{chunk-C2FKVGJU.js.map → chunk-PYYDXV2A.js.map} +0 -0
  48. /package/dist/{chunk-JU5SL4HP.js.map → chunk-TVWC3PED.js.map} +0 -0
@@ -74,13 +74,15 @@ export type ChatCompactPayload = ChatCompactPayloadSchema.ChatCompactPayload;
74
74
  export declare namespace SessionSubscribePayloadSchema {
75
75
  type SessionId = string;
76
76
  type Mode = string;
77
- type EventFormat = ("raw" | "projection");
77
+ type EventFormat = "raw";
78
78
  type AfterSequence = number;
79
+ type Resume = boolean;
79
80
  interface SessionSubscribePayload {
80
81
  session_id: SessionId;
81
82
  mode?: Mode;
82
83
  event_format?: EventFormat;
83
84
  after_sequence?: AfterSequence;
85
+ resume?: Resume;
84
86
  [k: string]: unknown;
85
87
  }
86
88
  }
@@ -93,8 +95,9 @@ export declare namespace SessionSubscribeBatchPayloadSchema {
93
95
  type Sessions = [SessionSubscribe, ...(SessionSubscribe)[]];
94
96
  type SessionId = string;
95
97
  type Mode = string;
96
- type EventFormat = ("raw" | "projection");
98
+ type EventFormat = "raw";
97
99
  type AfterSequence = number;
100
+ type Resume = boolean;
98
101
  interface SessionSubscribeBatchPayload {
99
102
  sessions: Sessions;
100
103
  [k: string]: unknown;
@@ -104,6 +107,7 @@ export declare namespace SessionSubscribeBatchPayloadSchema {
104
107
  mode?: Mode;
105
108
  event_format?: EventFormat;
106
109
  after_sequence?: AfterSequence;
110
+ resume?: Resume;
107
111
  [k: string]: unknown;
108
112
  }
109
113
  }
@@ -217,143 +221,27 @@ export declare namespace SystemNotificationPayloadSchema {
217
221
  }
218
222
  }
219
223
  export type SystemNotificationPayload = SystemNotificationPayloadSchema.SystemNotificationPayload;
220
- export declare namespace TurnProjectionPayloadSchema {
221
- type Id = string;
222
- type Sequence = number;
223
- type TurnId = string;
224
- type LoopId = string;
225
- type TurnKind = ("message" | "compaction");
226
- type Role = ("user" | "assistant" | "system");
227
- type Status = ("streaming" | "completed" | "paused" | "failed" | "interrupted");
228
- type Type = ("text" | "thinking" | "tool_use" | "tool_result" | "tool_ui" | "tool_bridge" | "system_notification" | "mode_change" | "plan_status" | "ask_user_answer");
229
- type Content = string;
230
- type ToolCallId = (string | null);
231
- type ToolName = (string | null);
232
- type DisplayName = (string | null);
233
- type Blocks = ContentBlock[];
234
- type Id1 = string;
235
- type ToolName1 = string;
236
- type DisplayName1 = string;
237
- type Arguments = string;
238
- type Status1 = ("pending" | "done" | "error" | "cancelled" | "awaiting_answer");
239
- type DurationMs = (number | null);
240
- type ChildLoopName = string;
241
- type ChildToolCallId = string;
242
- type Description = (string | null);
243
- type ToolCalls = ToolCallProjection[];
244
- type Model = (string | null);
245
- type Usage = ({
246
- [k: string]: unknown;
247
- } | null);
248
- type DurationMs1 = number;
249
- type StartedAt = (string | null);
250
- type ContextWindow = number;
251
- type MemoryRefs = (MemoryRef[] | null);
252
- type Id2 = number;
253
- type ContentPreview = string;
254
- type SkillName = (string | null);
255
- type ParentForkToolCallId = (string | null);
256
- type CompactionId = (string | null);
257
- type SummaryPreview = (string | null);
258
- type SummaryFull = (string | null);
259
- type ArchivedCount = (number | null);
260
- type TokensBefore = (number | null);
261
- type TokensAfter = (number | null);
262
- type SavedRatio = (number | null);
263
- type Trigger = (("auto" | "manual" | "forced_retry") | null);
264
- type FailureReason = (string | null);
265
- type FallbackApplied = (boolean | null);
224
+ export declare namespace TurnEventsPayloadSchema {
266
225
  type SessionId = string;
267
- type SolutionId = (string | null);
268
- type TemplateId = (string | null);
269
- interface TurnProjectionPayload {
270
- id: Id;
271
- sequence: Sequence;
272
- turn_id: TurnId;
273
- loop_id: LoopId;
274
- kind?: TurnKind;
275
- role: Role;
276
- status: Status;
277
- blocks?: Blocks;
278
- tool_calls?: ToolCalls;
279
- model?: Model;
280
- usage?: Usage;
281
- duration_ms?: DurationMs1;
282
- started_at?: StartedAt;
283
- context_window?: ContextWindow;
284
- memory_refs?: MemoryRefs;
285
- parent_fork_tool_call_id?: ParentForkToolCallId;
286
- compaction_id?: CompactionId;
287
- summary_preview?: SummaryPreview;
288
- summary_full?: SummaryFull;
289
- archived_count?: ArchivedCount;
290
- tokens_before?: TokensBefore;
291
- tokens_after?: TokensAfter;
292
- saved_ratio?: SavedRatio;
293
- trigger?: Trigger;
294
- failure_reason?: FailureReason;
295
- fallback_applied?: FallbackApplied;
226
+ type Type = string;
227
+ type StreamSequence = (number | null);
228
+ type Events = RawWireEvent[];
229
+ interface TurnEventsPayload {
296
230
  session_id: SessionId;
297
- solution_id?: SolutionId;
298
- template_id?: TemplateId;
231
+ events: Events;
299
232
  [k: string]: unknown;
300
233
  }
301
- interface ContentBlock {
234
+ interface RawWireEvent {
302
235
  type: Type;
303
- content?: Content;
304
- tool_call_id?: ToolCallId;
305
- tool_name?: ToolName;
306
- display_name?: DisplayName;
307
- [k: string]: unknown;
308
- }
309
- interface ToolCallProjection {
310
- id: Id1;
311
- tool_name: ToolName1;
312
- display_name: DisplayName1;
313
- arguments?: Arguments;
314
- status?: Status1;
315
- result?: Result;
316
- duration_ms?: DurationMs;
317
- pending_question_ref?: (PendingQuestionRef | null);
318
- [k: string]: unknown;
319
- }
320
- interface Result {
321
- [k: string]: unknown;
322
- }
323
- interface PendingQuestionRef {
324
- child_loop_name: ChildLoopName;
325
- child_tool_call_id: ChildToolCallId;
326
- description?: Description;
327
- [k: string]: unknown;
328
- }
329
- interface MemoryRef {
330
- id: Id2;
331
- content_preview: ContentPreview;
332
- skill_name?: SkillName;
333
- [k: string]: unknown;
334
- }
335
- }
336
- export type TurnProjectionPayload = TurnProjectionPayloadSchema.TurnProjectionPayload;
337
- export declare namespace PatchEnvelopePayloadSchema {
338
- type Sequence = number;
339
- type TurnId = string;
340
- type LoopId = string;
341
- type PatchType = string;
342
- type SessionId = string;
343
- interface PatchEnvelopePayload {
344
- sequence: Sequence;
345
- turn_id: TurnId;
346
- loop_id: LoopId;
347
- patch_type: PatchType;
348
- data?: Data;
349
- session_id: SessionId;
236
+ payload: Payload;
237
+ stream_sequence?: StreamSequence;
350
238
  [k: string]: unknown;
351
239
  }
352
- interface Data {
240
+ interface Payload {
353
241
  [k: string]: unknown;
354
242
  }
355
243
  }
356
- export type PatchEnvelopePayload = PatchEnvelopePayloadSchema.PatchEnvelopePayload;
244
+ export type TurnEventsPayload = TurnEventsPayloadSchema.TurnEventsPayload;
357
245
  export declare namespace AsrReadyPayloadSchema {
358
246
  type RequestId = string;
359
247
  type Provider = string;
@@ -481,9 +369,7 @@ export interface ServerToClientEvents {
481
369
  "workspace:files_changed": (payload: WorkspaceFilesChangedPayload) => void;
482
370
  "system:error": (payload: SystemErrorPayload) => void;
483
371
  "system:notification": (payload: SystemNotificationPayload) => void;
484
- "turn:start": (payload: TurnProjectionPayload) => void;
485
- "turn:patch": (payload: PatchEnvelopePayload) => void;
486
- "turn:end": (payload: TurnProjectionPayload) => void;
372
+ "turn:events": (payload: TurnEventsPayload) => void;
487
373
  "task:updated": (payload: unknown) => void;
488
374
  "task:synced": (payload: unknown) => void;
489
375
  "artifact:created": (payload: unknown) => void;
@@ -0,0 +1,5 @@
1
+ import type { AppDevTemplatesResource } from "../../client/resources/app-dev-templates.js";
2
+ export type * from "../../client/resources/app-dev-templates.js";
3
+ export declare const list: (...args: Parameters<AppDevTemplatesResource["list"]>) => Promise<import("./app-dev-templates.js").AppDevTemplateListResponse>;
4
+ export declare const get: (...args: Parameters<AppDevTemplatesResource["get"]>) => Promise<import("./app-dev-templates.js").AppDevTemplateDetail>;
5
+ export declare const getMediaUrl: (...args: Parameters<AppDevTemplatesResource["getMediaUrl"]>) => string;
@@ -0,0 +1,68 @@
1
+ export type ThinkingRequestFormat = "auto" | "none" | "openai_reasoning_effort" | "openrouter_reasoning" | "deepseek_thinking" | "together_reasoning" | "zai_thinking" | "qwen_enable_thinking" | "sglang_chat_template";
2
+ export interface RuntimeProviderConfig {
3
+ name: string;
4
+ base_url: string;
5
+ api_key_configured: boolean;
6
+ thinking_request_format: ThinkingRequestFormat;
7
+ effective_thinking_request_format: Exclude<ThinkingRequestFormat, "auto">;
8
+ }
9
+ export interface RuntimeModelDetails {
10
+ id: string;
11
+ context_window: number;
12
+ supports_vision: boolean;
13
+ }
14
+ export interface RuntimeModelConfig {
15
+ id: string;
16
+ provider: RuntimeProviderConfig;
17
+ model: RuntimeModelDetails;
18
+ }
19
+ export interface RuntimeModelConfigCollection {
20
+ items: RuntimeModelConfig[];
21
+ default_config_id: string;
22
+ source: "saved" | "startup";
23
+ }
24
+ export interface UpdateProviderConfig {
25
+ base_url: string;
26
+ api_key?: string;
27
+ thinking_request_format: ThinkingRequestFormat;
28
+ }
29
+ export interface UpdateModelDetails {
30
+ id: string;
31
+ context_window: number;
32
+ supports_vision: boolean;
33
+ }
34
+ export interface UpdateRuntimeModelConfig {
35
+ provider: UpdateProviderConfig;
36
+ model: UpdateModelDetails;
37
+ }
38
+ export interface ModelConfigProbe {
39
+ provider: UpdateProviderConfig;
40
+ model_id: string;
41
+ config_id?: string;
42
+ }
43
+ export interface ModelCandidatesRequest {
44
+ provider: UpdateProviderConfig;
45
+ config_id?: string;
46
+ }
47
+ export interface ModelCandidatesResult {
48
+ provider_name: string;
49
+ models: string[];
50
+ }
51
+ export interface ContextWindowDetectionResult {
52
+ provider_name: string;
53
+ model_id: string;
54
+ context_window: number;
55
+ }
56
+ export interface ModelConfigTestResult {
57
+ ok: boolean;
58
+ provider_name: string;
59
+ model_id: string;
60
+ }
61
+ export declare function getRuntimeModelConfigs(): Promise<RuntimeModelConfigCollection>;
62
+ export declare function createRuntimeModelConfig(config: UpdateRuntimeModelConfig): Promise<RuntimeModelConfigCollection>;
63
+ export declare function updateRuntimeModelConfig(configId: string, config: UpdateRuntimeModelConfig): Promise<RuntimeModelConfigCollection>;
64
+ export declare function deleteRuntimeModelConfig(configId: string): Promise<RuntimeModelConfigCollection>;
65
+ export declare function setDefaultRuntimeModelConfig(configId: string): Promise<RuntimeModelConfigCollection>;
66
+ export declare function detectContextWindow(config: ModelConfigProbe): Promise<ContextWindowDetectionResult>;
67
+ export declare function listModelCandidates(config: ModelCandidatesRequest): Promise<ModelCandidatesResult>;
68
+ export declare function testRuntimeModelConfig(config: ModelConfigProbe): Promise<ModelConfigTestResult>;
@@ -2,10 +2,12 @@ import type { ModelsResource } from "../../client/resources/models.js";
2
2
  export * from "../../client/resources/models.js";
3
3
  export declare const getModelsConfig: (...args: Parameters<ModelsResource["getModelsConfig"]>) => Promise<{
4
4
  default: string;
5
+ thinkingAvailable?: boolean | undefined;
5
6
  models: {
6
7
  id: string;
7
8
  label: string;
8
9
  inputModalities?: string[] | undefined;
9
10
  supportsImage?: boolean | undefined;
11
+ thinkingAvailable?: boolean | undefined;
10
12
  }[];
11
13
  }>;
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  listPublishedApps,
3
3
  unpublishApp
4
- } from "../../chunk-M72OL7ZJ.js";
5
- import "../../chunk-SBASG3M2.js";
4
+ } from "../../chunk-HCQDDDOX.js";
5
+ import "../../chunk-UWNQ4PXK.js";
6
6
  import "../../chunk-J3XVFPOV.js";
7
- import "../../chunk-34GDDOWY.js";
7
+ import "../../chunk-YJ6BX3FU.js";
8
8
  import "../../chunk-JCJFFJ42.js";
9
9
  import "../../chunk-PZ5AY32C.js";
10
10
  export {
@@ -41,9 +41,9 @@ import {
41
41
  updateSharing,
42
42
  uploadFiles,
43
43
  writeFile
44
- } from "../../chunk-SBASG3M2.js";
44
+ } from "../../chunk-UWNQ4PXK.js";
45
45
  import "../../chunk-J3XVFPOV.js";
46
- import "../../chunk-34GDDOWY.js";
46
+ import "../../chunk-YJ6BX3FU.js";
47
47
  import "../../chunk-JCJFFJ42.js";
48
48
  import "../../chunk-PZ5AY32C.js";
49
49
  export {
@@ -12,5 +12,7 @@ export interface ChatViewProps extends ChatViewCustomization {
12
12
  inputLabel?: string;
13
13
  onDoubleEscape?: (anchorRect: DOMRect | null) => void;
14
14
  composerHint?: ReactNode;
15
+ scrollToStartKey?: string | null;
16
+ scrollToEntryKey?: string | null;
15
17
  }
16
- export declare function ChatView({ sessionId, renderAttachments, onBeforeSend, onCommand, canShareSession, onResyncSkills, isResyncingSkills, inputLabel, onDoubleEscape, composerHint, classNames, components, renderers, }: ChatViewProps): import("react/jsx-runtime").JSX.Element;
18
+ export declare function ChatView({ sessionId, renderAttachments, onBeforeSend, onCommand, canShareSession, onResyncSkills, isResyncingSkills, inputLabel, onDoubleEscape, composerHint, scrollToStartKey, scrollToEntryKey, classNames, components, renderers, }: ChatViewProps): import("react/jsx-runtime").JSX.Element;
@@ -8,6 +8,8 @@ interface Props {
8
8
  sessionStatus?: string;
9
9
  onConfirmPlan?: (action: "execute" | "revise", text?: string) => void;
10
10
  customization?: ChatViewCustomization;
11
+ scrollToStartKey?: string | null;
12
+ scrollToEntryKey?: string | null;
11
13
  }
12
- export declare function MessageList({ sessionId, messages: rawMessages, onAnswer, sessionStatus, onConfirmPlan, customization, }: Props): import("react/jsx-runtime").JSX.Element;
14
+ export declare function MessageList({ sessionId, messages: rawMessages, onAnswer, sessionStatus, onConfirmPlan, customization, scrollToStartKey, scrollToEntryKey, }: Props): import("react/jsx-runtime").JSX.Element;
13
15
  export {};
@@ -17,16 +17,16 @@ import {
17
17
  isErrorMessage,
18
18
  isUserMessage,
19
19
  useWhatIfQuoteContext
20
- } from "../../../chunk-X2NJKKXR.js";
20
+ } from "../../../chunk-BGNKHPCD.js";
21
21
  import "../../../chunk-H62LH2AG.js";
22
22
  import {
23
23
  AskUserQuestionBlock
24
- } from "../../../chunk-TE6G6NVX.js";
25
- import "../../../chunk-C2FKVGJU.js";
24
+ } from "../../../chunk-OGHUIKCY.js";
25
+ import "../../../chunk-PYYDXV2A.js";
26
26
  import "../../../chunk-2UP7MG3J.js";
27
- import "../../../chunk-SBASG3M2.js";
27
+ import "../../../chunk-UWNQ4PXK.js";
28
28
  import "../../../chunk-J3XVFPOV.js";
29
- import "../../../chunk-34GDDOWY.js";
29
+ import "../../../chunk-YJ6BX3FU.js";
30
30
  import "../../../chunk-7LEKQI47.js";
31
31
  import "../../../chunk-JCJFFJ42.js";
32
32
  import "../../../chunk-PZ5AY32C.js";
@@ -0,0 +1,8 @@
1
+ export declare const ENTRY_SCROLL_MARGIN_PX = 24;
2
+ export declare function normalizeScrollEntryKey(value: string | null | undefined): string | null;
3
+ export declare function calculateAnchoredScrollTop({ scrollTop, containerTop, targetTop, margin, }: {
4
+ scrollTop: number;
5
+ containerTop: number;
6
+ targetTop: number;
7
+ margin?: number;
8
+ }): number;
@@ -3,12 +3,12 @@ import {
3
3
  PlanSummaryCard,
4
4
  extractLatestPlanMessages,
5
5
  parsePlanMessages
6
- } from "../../../chunk-TE6G6NVX.js";
7
- import "../../../chunk-C2FKVGJU.js";
6
+ } from "../../../chunk-OGHUIKCY.js";
7
+ import "../../../chunk-PYYDXV2A.js";
8
8
  import "../../../chunk-2UP7MG3J.js";
9
- import "../../../chunk-SBASG3M2.js";
9
+ import "../../../chunk-UWNQ4PXK.js";
10
10
  import "../../../chunk-J3XVFPOV.js";
11
- import "../../../chunk-34GDDOWY.js";
11
+ import "../../../chunk-YJ6BX3FU.js";
12
12
  import {
13
13
  cn
14
14
  } from "../../../chunk-7LEKQI47.js";
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  useSession
3
- } from "../../../chunk-JU5SL4HP.js";
3
+ } from "../../../chunk-TVWC3PED.js";
4
4
  import {
5
5
  checkoutSession,
6
6
  getSessionCheckpoints,
7
7
  useChatStore,
8
8
  useSessionStore
9
- } from "../../../chunk-SBASG3M2.js";
9
+ } from "../../../chunk-UWNQ4PXK.js";
10
10
  import "../../../chunk-J3XVFPOV.js";
11
- import "../../../chunk-34GDDOWY.js";
11
+ import "../../../chunk-YJ6BX3FU.js";
12
12
  import {
13
13
  cn
14
14
  } from "../../../chunk-7LEKQI47.js";
@@ -5,7 +5,7 @@ import {
5
5
  } from "../../../chunk-H62LH2AG.js";
6
6
  import {
7
7
  resolveSessionFilePreviewTarget
8
- } from "../../../chunk-C2FKVGJU.js";
8
+ } from "../../../chunk-PYYDXV2A.js";
9
9
  import {
10
10
  apiFetchText,
11
11
  copyFile,
@@ -19,9 +19,9 @@ import {
19
19
  useChatStore,
20
20
  useSessionStore,
21
21
  useUiStore
22
- } from "../../../chunk-SBASG3M2.js";
22
+ } from "../../../chunk-UWNQ4PXK.js";
23
23
  import "../../../chunk-J3XVFPOV.js";
24
- import "../../../chunk-34GDDOWY.js";
24
+ import "../../../chunk-YJ6BX3FU.js";
25
25
  import {
26
26
  cn
27
27
  } from "../../../chunk-7LEKQI47.js";
@@ -2,6 +2,7 @@ import { type ModelOption } from "../api/models.js";
2
2
  export declare function useModelConfig(): {
3
3
  models: ModelOption[];
4
4
  defaultModel: string;
5
+ thinkingAvailable: boolean;
5
6
  isLoading: boolean;
6
7
  };
7
8
  export declare function usePreferredModel(): {
@@ -1,5 +1,6 @@
1
1
  export declare function useResolvedModel(activeSessionModel?: string | null): {
2
2
  resolvedModel: string;
3
3
  hasAvailableModel: boolean;
4
+ thinkingAvailable: boolean;
4
5
  isLoading: boolean;
5
6
  };
@@ -3,6 +3,7 @@ export { BladeContext } from "./context.js";
3
3
  export { BladeClientProvider, useBladeClient } from "./provider.js";
4
4
  export type { BladeClientProviderProps } from "./provider.js";
5
5
  export * as apiKeysApi from "./api/api-keys.js";
6
+ export * as appDevTemplatesApi from "./api/app-dev-templates.js";
6
7
  export type { ApiKeyCreateResponse, ApiKeyPublic } from "./api/api-keys.js";
7
8
  export * as authApi from "./api/auth.js";
8
9
  export * as envBucketsApi from "./api/env-buckets.js";
@@ -12,6 +13,8 @@ export type * from "./api/client.js";
12
13
  export * as memoriesApi from "./api/memories.js";
13
14
  export * as gisApi from "./api/gis-api.js";
14
15
  export * as modelsApi from "./api/models.js";
16
+ export * as modelConfigApi from "./api/model-config.js";
17
+ export type { ContextWindowDetectionResult, ModelCandidatesRequest, ModelCandidatesResult, ModelConfigProbe, ModelConfigTestResult, RuntimeModelConfig, RuntimeModelConfigCollection, RuntimeModelDetails, RuntimeProviderConfig, ThinkingRequestFormat, UpdateModelDetails, UpdateProviderConfig, UpdateRuntimeModelConfig, } from "./api/model-config.js";
15
18
  export type { Memory, MemoryCreateBody, MemoryListParams, MemoryListResponse, } from "./api/memories.js";
16
19
  export * as partnerSkillApi from "./api/partner-skill.js";
17
20
  export * as publishedAppsApi from "./api/published-apps.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  published_apps_exports
3
- } from "../chunk-M72OL7ZJ.js";
3
+ } from "../chunk-HCQDDDOX.js";
4
4
  import {
5
5
  useCardState
6
6
  } from "../chunk-DQCXSPHP.js";
@@ -35,7 +35,7 @@ import {
35
35
  useTiptapVoiceInput,
36
36
  useVoiceInput,
37
37
  user_preferences_exports
38
- } from "../chunk-X2NJKKXR.js";
38
+ } from "../chunk-BGNKHPCD.js";
39
39
  import "../chunk-H62LH2AG.js";
40
40
  import {
41
41
  CardCodeBlock,
@@ -45,21 +45,21 @@ import {
45
45
  normalizeCodeLanguage,
46
46
  useCardContext,
47
47
  useHighlightedCodeHtml
48
- } from "../chunk-TE6G6NVX.js";
48
+ } from "../chunk-OGHUIKCY.js";
49
49
  import {
50
50
  buildBinaryPreviewTarget,
51
51
  buildSessionBinaryPreviewTarget,
52
52
  isOfficePdfPreviewable,
53
53
  resolveSessionFilePreviewTarget,
54
54
  resolveTextPreviewType
55
- } from "../chunk-C2FKVGJU.js";
55
+ } from "../chunk-PYYDXV2A.js";
56
56
  import {
57
57
  CardJSON,
58
58
  cardRegistry
59
59
  } from "../chunk-2UP7MG3J.js";
60
60
  import {
61
61
  useSession
62
- } from "../chunk-JU5SL4HP.js";
62
+ } from "../chunk-TVWC3PED.js";
63
63
  import {
64
64
  PartnerSkillFile,
65
65
  PartnerSkillInstallPayload,
@@ -114,12 +114,12 @@ import {
114
114
  useTaskStore,
115
115
  useUiBridgeStore,
116
116
  useUiStore
117
- } from "../chunk-SBASG3M2.js";
117
+ } from "../chunk-UWNQ4PXK.js";
118
118
  import "../chunk-J3XVFPOV.js";
119
119
  import {
120
120
  REGISTRY_PREFIX,
121
121
  normalizeResource
122
- } from "../chunk-34GDDOWY.js";
122
+ } from "../chunk-YJ6BX3FU.js";
123
123
  import {
124
124
  cn,
125
125
  copyToClipboard
@@ -160,6 +160,18 @@ var createApiKey = (...args) => r().createApiKey(...args);
160
160
  var renameApiKey = (...args) => r().renameApiKey(...args);
161
161
  var deleteApiKey = (...args) => r().deleteApiKey(...args);
162
162
 
163
+ // src/react/api/app-dev-templates.ts
164
+ var app_dev_templates_exports = {};
165
+ __export(app_dev_templates_exports, {
166
+ get: () => get,
167
+ getMediaUrl: () => getMediaUrl,
168
+ list: () => list
169
+ });
170
+ var resource = () => getClient().appDevTemplates;
171
+ var list = (...args) => resource().list(...args);
172
+ var get = (...args) => resource().get(...args);
173
+ var getMediaUrl = (...args) => resource().getMediaUrl(...args);
174
+
163
175
  // src/react/api/env-buckets.ts
164
176
  var env_buckets_exports = {};
165
177
  __export(env_buckets_exports, {
@@ -212,6 +224,72 @@ var r4 = () => getClient().gis;
212
224
  var fetchGisState = (...args) => r4().fetchGisState(...args);
213
225
  var fetchRuntimeConfig = (...args) => r4().fetchRuntimeConfig(...args);
214
226
 
227
+ // src/react/api/model-config.ts
228
+ var model_config_exports = {};
229
+ __export(model_config_exports, {
230
+ createRuntimeModelConfig: () => createRuntimeModelConfig,
231
+ deleteRuntimeModelConfig: () => deleteRuntimeModelConfig,
232
+ detectContextWindow: () => detectContextWindow,
233
+ getRuntimeModelConfigs: () => getRuntimeModelConfigs,
234
+ listModelCandidates: () => listModelCandidates,
235
+ setDefaultRuntimeModelConfig: () => setDefaultRuntimeModelConfig,
236
+ testRuntimeModelConfig: () => testRuntimeModelConfig,
237
+ updateRuntimeModelConfig: () => updateRuntimeModelConfig
238
+ });
239
+ function getRuntimeModelConfigs() {
240
+ return apiFetch("/api/admin/model-config");
241
+ }
242
+ function createRuntimeModelConfig(config) {
243
+ return apiFetch("/api/admin/model-config", {
244
+ method: "POST",
245
+ headers: { "Content-Type": "application/json" },
246
+ body: JSON.stringify(config)
247
+ });
248
+ }
249
+ function updateRuntimeModelConfig(configId, config) {
250
+ return apiFetch(
251
+ `/api/admin/model-config/${encodeURIComponent(configId)}`,
252
+ {
253
+ method: "PUT",
254
+ headers: { "Content-Type": "application/json" },
255
+ body: JSON.stringify(config)
256
+ }
257
+ );
258
+ }
259
+ function deleteRuntimeModelConfig(configId) {
260
+ return apiFetch(
261
+ `/api/admin/model-config/${encodeURIComponent(configId)}`,
262
+ { method: "DELETE" }
263
+ );
264
+ }
265
+ function setDefaultRuntimeModelConfig(configId) {
266
+ return apiFetch(
267
+ `/api/admin/model-config/${encodeURIComponent(configId)}/default`,
268
+ { method: "PUT" }
269
+ );
270
+ }
271
+ function detectContextWindow(config) {
272
+ return apiFetch("/api/admin/model-config/detect-context-window", {
273
+ method: "POST",
274
+ headers: { "Content-Type": "application/json" },
275
+ body: JSON.stringify(config)
276
+ });
277
+ }
278
+ function listModelCandidates(config) {
279
+ return apiFetch("/api/admin/model-config/candidates", {
280
+ method: "POST",
281
+ headers: { "Content-Type": "application/json" },
282
+ body: JSON.stringify(config)
283
+ });
284
+ }
285
+ function testRuntimeModelConfig(config) {
286
+ return apiFetch("/api/admin/model-config/test", {
287
+ method: "POST",
288
+ headers: { "Content-Type": "application/json" },
289
+ body: JSON.stringify(config)
290
+ });
291
+ }
292
+
215
293
  // src/react/api/prod-solution.ts
216
294
  var prod_solution_exports = {};
217
295
  __export(prod_solution_exports, {
@@ -1840,6 +1918,7 @@ export {
1840
1918
  apiFetchResponse,
1841
1919
  apiFetchText,
1842
1920
  api_keys_exports as apiKeysApi,
1921
+ app_dev_templates_exports as appDevTemplatesApi,
1843
1922
  attachClientToStores,
1844
1923
  attachHostBridgeListener,
1845
1924
  auth_exports as authApi,
@@ -1876,6 +1955,7 @@ export {
1876
1955
  listSkillOrgs,
1877
1956
  locateHtmlElementSource,
1878
1957
  memories_exports as memoriesApi,
1958
+ model_config_exports as modelConfigApi,
1879
1959
  models_exports as modelsApi,
1880
1960
  normalizeCodeLanguage,
1881
1961
  normalizeResource,