@builder.io/ai-utils 0.27.4 → 0.29.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builder.io/ai-utils",
3
- "version": "0.27.4",
3
+ "version": "0.29.0",
4
4
  "description": "Builder.io AI utils",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
package/src/claw.d.ts CHANGED
@@ -40,5 +40,6 @@ export interface ParsedChannelId {
40
40
  * Examples:
41
41
  * "slack/thread/T01234/C56789/1234567890.123456" → { platform: "slack", type: "thread", ids: ["T01234", "C56789", "1234567890.123456"] }
42
42
  * "jira/comment/cloud-id/PROJ-123" → { platform: "jira", type: "comment", ids: ["cloud-id", "PROJ-123"] }
43
+ * "builder/branch/proj-id/my-branch" → { platform: "builder", type: "branch", ids: ["proj-id", "my-branch"] }
43
44
  */
44
45
  export declare function parseChannelId(channelId: string): ParsedChannelId;
package/src/claw.js CHANGED
@@ -5,6 +5,7 @@
5
5
  * Examples:
6
6
  * "slack/thread/T01234/C56789/1234567890.123456" → { platform: "slack", type: "thread", ids: ["T01234", "C56789", "1234567890.123456"] }
7
7
  * "jira/comment/cloud-id/PROJ-123" → { platform: "jira", type: "comment", ids: ["cloud-id", "PROJ-123"] }
8
+ * "builder/branch/proj-id/my-branch" → { platform: "builder", type: "branch", ids: ["proj-id", "my-branch"] }
8
9
  */
9
10
  export function parseChannelId(channelId) {
10
11
  const parts = channelId.split("/");
package/src/codegen.d.ts CHANGED
@@ -325,6 +325,8 @@ export interface ExitToolInput {
325
325
  isMicrofrontend?: boolean;
326
326
  setupNeedsCredentials?: boolean;
327
327
  devServerNeedsCredentials?: boolean;
328
+ /** A human-readable description of what the project is about (not tech specs), used by fusion to route requests to the right project */
329
+ projectDescription?: string;
328
330
  }
329
331
  /**
330
332
  * Configuration proposed by the configuration agent, stored in Firebase
@@ -412,6 +414,7 @@ export interface ProposedConfig {
412
414
  isMicrofrontend?: boolean;
413
415
  setupNeedsCredentials?: boolean;
414
416
  devServerNeedsCredentials?: boolean;
417
+ projectDescription?: string;
415
418
  cost?: number;
416
419
  durationMs?: number;
417
420
  }
@@ -444,6 +447,7 @@ export interface ProposeConfigParams {
444
447
  isMicrofrontend?: boolean;
445
448
  setupNeedsCredentials?: boolean;
446
449
  devServerNeedsCredentials?: boolean;
450
+ projectDescription?: string;
447
451
  }
448
452
  export interface VerifySetupCommandToolInput {
449
453
  command: string;
@@ -481,7 +485,7 @@ export interface SetEnvVariableToolInput {
481
485
  export interface SendMessageToolInput {
482
486
  channelId: string;
483
487
  markdown: string;
484
- status: "starting" | "question" | "done:success" | "done:error";
488
+ status: "starting" | "question" | "will-follow-up" | "done:success" | "done:error";
485
489
  }
486
490
  export interface SpawnBranchToolInput {
487
491
  projectId: string;
@@ -1150,7 +1154,7 @@ export interface UserSourceBase {
1150
1154
  }
1151
1155
  /** All integration sources: Slack, Teams, Jira, Linear, and git providers (GitHub, GitLab, Azure, Bitbucket). */
1152
1156
  export interface UserSourceOther extends UserSourceBase {
1153
- source: "slack" | "teams" | "jira" | "linear" | "github" | "gitlab" | "azure" | "bitbucket";
1157
+ source: "slack" | "telegram" | "teams" | "jira" | "linear" | "github" | "gitlab" | "azure" | "bitbucket";
1154
1158
  /** User ID from the external platform (Slack user ID, GitHub user id, etc.) */
1155
1159
  userId?: string;
1156
1160
  userName?: string;
@@ -1576,15 +1580,20 @@ export interface EnvironmentVariable {
1576
1580
  }
1577
1581
  export interface FileOverride {
1578
1582
  /**
1579
- * Absolute path where the file should be written in the container.
1580
- * Example: "/app/.env", "/etc/config/app.conf"
1583
+ * Path where the file should be written.
1584
+ * Supports absolute paths ("/app/.env"), tilde ("~/.npmrc"), and relative paths ("./config.json").
1581
1585
  */
1582
1586
  path: string;
1583
1587
  /**
1584
- * Content to write to the file.
1585
- * Can be plain text or binary content (base64 encoded if needed).
1588
+ * Plain text content to write to the file.
1589
+ * Mutually exclusive with `base64`.
1586
1590
  */
1587
- content: string;
1591
+ content?: string;
1592
+ /**
1593
+ * Base64-encoded binary content to write to the file.
1594
+ * Mutually exclusive with `content`.
1595
+ */
1596
+ base64?: string;
1588
1597
  }
1589
1598
  export interface MCPServerDefinition {
1590
1599
  command: string;
@@ -2066,6 +2075,7 @@ export interface ConfigureDevOrchestratorUpdates {
2066
2075
  validateCommand: boolean;
2067
2076
  hosts: boolean;
2068
2077
  env: boolean;
2078
+ fileOverrides: boolean;
2069
2079
  setupResult: SetupCommandResult | undefined;
2070
2080
  devResult: DevCommandResult | undefined;
2071
2081
  validateResult: ValidateCommandResult | undefined;
@@ -2083,6 +2093,7 @@ export interface ConfigureDevOrchestratorOpts {
2083
2093
  forceDevCommand?: boolean;
2084
2094
  autoDetectDevServer?: boolean;
2085
2095
  autoDetectDevServerPatterns?: string[];
2096
+ fileOverrides?: FileOverride[];
2086
2097
  }
2087
2098
  export interface LanguageInfo {
2088
2099
  color: string;
package/src/events.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import type { BuilderContent, BuilderElement } from "@builder.io/sdk";
2
2
  import type { AssistantMessage, AssistantMessageAction } from "./messages.js";
3
3
  import type { AssistantSettings } from "./settings.js";
4
- import type { ExitState } from "./codegen.js";
4
+ import type { ExitState, UserSource } from "./codegen.js";
5
+ import type { FileUpload } from "./messages.js";
5
6
  export type BuilderAssistantEventHandler = (ev: BuilderAssistantEvent) => void;
6
7
  export type BuilderAssistantEvent = AssistantCompletionResultEvent | AssistantErrorEvent | AssistantStreamErrorEvent | AppCloseEvent | AppMessagesClickEvent | AppMessagesGenerationEvent | AppMessageEditCustomInstructionsEvent | AppPromptAbortEvent | AppPromptFocusEvent | AppPromptSubmitEvent | AppReadyEvent | AppSettingsSetEvent | AppThreadNewEvent | AssistantStatsEvent | AssistantThemeEvent | BuilderEditorAuthEvent | BuilderEditorStateEvent | ContentUpdateEvent | ContentApplySnapshotEvent | ModelUndoEvent | ModelRedoEvent | ResultEvent | ThreadCreatedEvent | ThreadMessageCompletedEvent | ThreadMessageCreatedEvent | ThreadMessageDeltaEvent | ThreadMessageFeedbackEvent | ThreadRunStepCreatedEvent | ThreadRunStepDeltaEvent | AppAcceptChangeEvent | AppAcceptRejectEvent | AssistantTrackEvent | AssistantEditorAuthMessage | AppAttachmentTemplateEvent | AppPasteSmartExportEvent | ThreadMessageRetryEvent | AppFigmaImportEvent | AppWebImportEvent | AppMcpServersEvent | AssistantContentInitialEvent | ThreadMessageSummaryEvent | ThreadMessageSummaryCodegenDeltaEvent | ThreadMessageThinkingDeltaEvent | AssistantHeartbeatEvent | ShowUpgradeDialogEvent | AssistantFusionSuggestionEvent | AppNavigateToFusionEvent | ModelPermissionRequiredEvent | ModelPermissionResponseEvent;
7
8
  export interface AssistantCompletionResultEvent {
@@ -527,12 +528,24 @@ export type ClawMessageSentV1 = FusionEventVariant<"claw.message.sent", {
527
528
  senderId?: string;
528
529
  correlationId?: string;
529
530
  channelId?: string;
531
+ dmId?: string;
530
532
  senderDisplayName?: string;
533
+ userSource?: UserSource;
534
+ /** Optional context to include alongside the message (e.g. Slack thread history). */
535
+ messageContext?: string;
536
+ /** File attachments (images, PDFs, etc.) to include with the message. */
537
+ attachments?: FileUpload[];
531
538
  }, {}, 1>;
532
539
  export declare const ClawMessageSentV1: {
533
540
  eventName: "claw.message.sent";
534
541
  version: "1";
535
542
  };
543
+ export interface SendMessageToOrgAgentInput {
544
+ content: string;
545
+ channelId?: string;
546
+ senderDisplayName?: string;
547
+ messageContext?: string;
548
+ }
536
549
  export type FusionEvent = AiTaskCompletedEvent | AiTaskFailedEvent | GitPrCreatedEvent | ClientDevtoolsSessionStartedEvent | FusionProjectCreatedV1 | SetupAgentCompletedV1 | ForceSetupAgentV1 | ClawMessageSentV1;
537
550
  export interface ModelPermissionRequiredEvent {
538
551
  type: "assistant.model.permission.required";
package/src/messages.d.ts CHANGED
@@ -32,6 +32,15 @@ export interface ContentMessageItemVideo {
32
32
  cache?: boolean;
33
33
  ephemeral?: boolean;
34
34
  }
35
+ export interface ContentMessageItemResource {
36
+ type: "resource";
37
+ resource: {
38
+ uri: string;
39
+ mimeType?: string;
40
+ text?: string;
41
+ blob?: string;
42
+ };
43
+ }
35
44
  export interface DocumentBase64Source {
36
45
  type: "base64";
37
46
  media_type: "application/pdf";
@@ -53,7 +62,7 @@ export interface ContentMessageItemToolResult {
53
62
  tool_name?: string;
54
63
  tool_input?: string;
55
64
  title?: string;
56
- content: string | (ContentMessageItemText | ContentMessageItemImage)[];
65
+ content: string | (ContentMessageItemText | ContentMessageItemImage | ContentMessageItemResource)[];
57
66
  is_error?: boolean;
58
67
  cache?: boolean;
59
68
  ephemeral?: boolean;
@@ -195,7 +204,7 @@ export interface ContentMessageItemCodeExecutionToolResult {
195
204
  content: any;
196
205
  cache?: boolean;
197
206
  }
198
- export type ContentMessageItem = ContentMessageItemText | ContentMessageItemImage | ContentMessageItemDocument | ContentMessageItemVideo | ContentMessageItemThinking | ContentMessageItemRedactedThinking | ContentMessageItemToolUse | ContentMessageItemToolResult | ContentMessageItemWebSearchToolResult | ContentMessageItemServerToolUse | ContentMessageItemMCPToolUse | ContentMessageItemMCPToolResult | ContentMessageItemContainerUpload | ContentMessageItemCodeExecutionToolResult;
207
+ export type ContentMessageItem = ContentMessageItemText | ContentMessageItemImage | ContentMessageItemResource | ContentMessageItemDocument | ContentMessageItemVideo | ContentMessageItemThinking | ContentMessageItemRedactedThinking | ContentMessageItemToolUse | ContentMessageItemToolResult | ContentMessageItemWebSearchToolResult | ContentMessageItemServerToolUse | ContentMessageItemMCPToolUse | ContentMessageItemMCPToolResult | ContentMessageItemContainerUpload | ContentMessageItemCodeExecutionToolResult;
199
208
  export type ContentMessage = ContentMessageItem[];
200
209
  export interface SystemMessageParam {
201
210
  /**
package/src/projects.d.ts CHANGED
@@ -779,6 +779,8 @@ export interface CreateBranchOptions {
779
779
  type?: BranchType;
780
780
  /** Optional suffix to append to generated branch names (e.g., model short name for parallel branches) */
781
781
  branchNameSuffix?: string;
782
+ /** Additional metadata to store on the branch (e.g., Slack thread origin) */
783
+ metadata?: Record<string, unknown>;
782
784
  }
783
785
  interface BaseCreateBranchMessage {
784
786
  }