@builder.io/ai-utils 0.41.0 → 0.41.1

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.41.0",
3
+ "version": "0.41.1",
4
4
  "description": "Builder.io AI utils",
5
5
  "files": [
6
6
  "src"
package/src/codegen.d.ts CHANGED
@@ -49,7 +49,7 @@ export interface CustomAgentDefinition {
49
49
  model?: string;
50
50
  roundRobinModels?: string[];
51
51
  mode?: CodeGenMode;
52
- position?: string;
52
+ position?: CodeGenPosition;
53
53
  needDevServer?: boolean;
54
54
  needValidation?: boolean;
55
55
  includeMemories?: boolean;
@@ -730,7 +730,7 @@ export type AllCodeGenTools = CodeGenTools | "web_search";
730
730
  export type SessionMode = "planning" | "normal" | "auto-planning" | "deep-research";
731
731
  export type CodeGenMode = "quality" | "quality-v3" | "quality-v4" | "quality-v4-agent";
732
732
  export type QueueMode = "next-turn" | "until-idle";
733
- export type BaseCodeGenPosition = "fusion" | "editor-ai" | "repo-indexing" | "cli" | "create-app-firebase" | "create-app-lovable" | "builder-code-panel" | "dsi-mcp";
733
+ export type BaseCodeGenPosition = "fusion" | "editor-ai" | "repo-indexing" | "cli" | "create-app-firebase" | "create-app-lovable" | "builder-code-panel" | "setup-project" | "code-review-orchestrator" | "project-configuration" | "org-agent" | "browser-testing" | "projects-scheduler-memory-extraction" | "unknown" | "dsi-mcp";
734
734
  export type CodeGenPosition = BaseCodeGenPosition | `${BaseCodeGenPosition}-agent`;
735
735
  export interface RepoIndexingConfig {
736
736
  designSystems: string[];
@@ -743,7 +743,7 @@ export interface LocalMCPTools {
743
743
  }
744
744
  export type CodeGenCategory = `repair-${string}` | `user-normal` | `user-figma` | `user-pdf` | `user-image` | `setup-agent` | `background-${string}` | `indexing-${string}`;
745
745
  export interface CodeGenInputOptions {
746
- position: string;
746
+ position: CodeGenPosition;
747
747
  eventName?: string;
748
748
  sessionId: string;
749
749
  codeGenMode?: CodeGenMode;
@@ -787,6 +787,11 @@ export interface CodeGenInputOptions {
787
787
  enabledTools?: CodeGenTools[];
788
788
  enabledMCPs?: string[];
789
789
  skipFileDiff?: boolean;
790
+ /**
791
+ * When true, the agent should interrupt its current task to handle this
792
+ * message immediately, rather than finishing the current task first.
793
+ */
794
+ interruptActiveTask?: boolean;
790
795
  /**
791
796
  * Local MCP tool definitions from stdio servers (CLI-side only)
792
797
  * These tools will be executed on the client side and passed through from the server
@@ -828,6 +833,7 @@ export interface CodeGenInputOptions {
828
833
  projectId?: string;
829
834
  branchName?: string;
830
835
  repoHash?: string;
836
+ repoBranch?: string;
831
837
  /**
832
838
  * Server-side branch.agentType cached from middleware Firestore lookup.
833
839
  * Used to avoid redundant getBranch calls for billing exemption checks.
@@ -914,6 +920,7 @@ export interface RankedResult {
914
920
  }
915
921
  export interface GenerateCompletionStepThinking {
916
922
  type: "thinking";
923
+ content: string;
917
924
  }
918
925
  export interface FileInfo {
919
926
  filePath: string;
@@ -925,10 +932,6 @@ export interface GenerateCompletionStepUserInput {
925
932
  prompt: string;
926
933
  files: FileInfo[];
927
934
  }
928
- export interface GenerateCompletionStepPlanning {
929
- type: "planning";
930
- content: string;
931
- }
932
935
  export interface GenerateCompletionStepUser {
933
936
  type: "user";
934
937
  displayPrompt: string | undefined;
@@ -1294,7 +1297,7 @@ export interface GenerateCompletionStepUpdateSetupValue {
1294
1297
  };
1295
1298
  reason: string;
1296
1299
  }
1297
- export type GenerateCompletionStep = GenerateCompletionStepPlanning | GenerateCompletionStepStart | GenerateCompletionStepDelta | GenerateCompletionStepUser | GenerateCompletionStepFile | GenerateCompletionStepDiff | GenerateCompletionStepTool | GenerateCompletionStepError | GenerateCompletionStepContinue | GenerateCompletionStepWaitForInput | GenerateCompletionStepAbort | GenerateCompletionStepDone | GenerateCompletionStepUserInput | GenerateCompletionStepText | GenerateCompletionStepRestore | GenerateCompletionStepState | GenerateCompletionStepStdio | GenerateCompletionStepSession | GenerateCompletionStepServerToolResult | GenerateCompletionStepGit | GenerateCompletionStepBuilderAction | GenerateCompletionStepToolResult | GenerateCompletionStepFusionConfigPatch | GenerateCompletionStepToolCallRequest | GenerateCodeEventMCPStatus | GenerateCodeEventMCPAuthRequired | GenerateCompletionStepDevServerState | GenerateCompletionStepAgent | GenerateCompletionStepBatch | GenerateCompletionStepTerminals | GenerateCompletionStepMetadata | GenerateCompletionStepMessageQueue | GenerateCompletionStepProposeConfig | GenerateCompletionStepUpdateSetupValue | GenerateCompletionStepIde;
1300
+ export type GenerateCompletionStep = GenerateCompletionStepThinking | GenerateCompletionStepStart | GenerateCompletionStepDelta | GenerateCompletionStepUser | GenerateCompletionStepFile | GenerateCompletionStepDiff | GenerateCompletionStepTool | GenerateCompletionStepError | GenerateCompletionStepContinue | GenerateCompletionStepWaitForInput | GenerateCompletionStepAbort | GenerateCompletionStepDone | GenerateCompletionStepUserInput | GenerateCompletionStepText | GenerateCompletionStepRestore | GenerateCompletionStepState | GenerateCompletionStepStdio | GenerateCompletionStepSession | GenerateCompletionStepServerToolResult | GenerateCompletionStepGit | GenerateCompletionStepBuilderAction | GenerateCompletionStepToolResult | GenerateCompletionStepFusionConfigPatch | GenerateCompletionStepToolCallRequest | GenerateCodeEventMCPStatus | GenerateCodeEventMCPAuthRequired | GenerateCompletionStepDevServerState | GenerateCompletionStepAgent | GenerateCompletionStepBatch | GenerateCompletionStepTerminals | GenerateCompletionStepMetadata | GenerateCompletionStepMessageQueue | GenerateCompletionStepProposeConfig | GenerateCompletionStepUpdateSetupValue | GenerateCompletionStepIde;
1298
1301
  export interface ApplyActionsResult {
1299
1302
  filePath: string;
1300
1303
  addedLines: number;
@@ -2369,3 +2372,28 @@ export interface TodoItem {
2369
2372
  status: "pending" | "in_progress" | "completed";
2370
2373
  id: string;
2371
2374
  }
2375
+ export interface SessionData {
2376
+ lastCompletionId: string | undefined;
2377
+ ownerId: string;
2378
+ initialUrl?: string;
2379
+ contentOrProjectId?: string;
2380
+ createdAt: number;
2381
+ createdBy?: string;
2382
+ updatedAt: number;
2383
+ lastUpdatedBy?: string;
2384
+ beforeCommit?: GitSnapshot;
2385
+ title?: string;
2386
+ id: string;
2387
+ sessionMode: SessionMode;
2388
+ projectId: string | undefined;
2389
+ branchName: string | undefined;
2390
+ repoHash: string | undefined;
2391
+ repoBranch: string | undefined;
2392
+ description?: string;
2393
+ hasPlanToApply?: boolean;
2394
+ cost: number;
2395
+ totalCompletions: number;
2396
+ numUserMessages: number;
2397
+ numNormalUserMessages: number;
2398
+ metadata?: Record<string, any>;
2399
+ }
package/src/events.d.ts CHANGED
@@ -1,7 +1,7 @@
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, UserSource } from "./codegen.js";
4
+ import type { ExitState, UserSource, CodeGenPosition } from "./codegen.js";
5
5
  import type { FileUpload } from "./messages.js";
6
6
  export type BuilderAssistantEventHandler = (ev: BuilderAssistantEvent) => void;
7
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;
@@ -505,6 +505,44 @@ export declare const GitPrMergedV1: {
505
505
  eventName: "git.pr.merged";
506
506
  version: "1";
507
507
  };
508
+ export type ReviewSubmittedV1 = FusionEventVariant<"review.submitted", {
509
+ projectId: string;
510
+ branchName: string;
511
+ repoFullName: string;
512
+ prNumber: number;
513
+ commitSha: string;
514
+ /** Firestore doc ID (deterministic — config.id or generated upfront) */
515
+ reviewDocId: string;
516
+ /** GitHub review ID (empty string for clean reviews) */
517
+ reviewId: string;
518
+ /** Session ID for cost tracking (empty if unavailable) */
519
+ sessionId: string;
520
+ summary: string;
521
+ /** Whether this review includes a visual recording */
522
+ hasRecording?: boolean;
523
+ /** Recording URL if hasRecording is true */
524
+ recordingUrl?: string;
525
+ /** Posted comments from GitHub API */
526
+ postedComments: Array<{
527
+ id: number;
528
+ node_id: string;
529
+ thread_node_id: string;
530
+ path: string;
531
+ line: number | null;
532
+ start_line?: number | null;
533
+ body: string;
534
+ }>;
535
+ riskLevel: "high" | "medium" | "low";
536
+ totalIssuesSubmitted: number;
537
+ issuesPosted: number;
538
+ issuesHigh: number;
539
+ issuesMedium: number;
540
+ issuesDropped: number;
541
+ }, {}, 1>;
542
+ export declare const ReviewSubmittedV1: {
543
+ eventName: "review.submitted";
544
+ version: "1";
545
+ };
508
546
  export type BotMentionExternalPrV1 = FusionEventVariant<"bot.mention.external-pr", {
509
547
  projectId: string;
510
548
  repoFullName: string;
@@ -639,6 +677,7 @@ export declare const CodegenCompletionV1: {
639
677
  version: "1";
640
678
  };
641
679
  export type CodegenUserPromptV1 = FusionEventVariant<"codegen.user.prompt", {
680
+ position: CodeGenPosition;
642
681
  completionId: string;
643
682
  role?: string;
644
683
  projectId?: string;
@@ -756,7 +795,7 @@ export interface SendMessageToOrgAgentInput {
756
795
  */
757
796
  autoCreateProject?: boolean;
758
797
  }
759
- export type FusionEvent = AiTaskCompletedEvent | AiTaskFailedEvent | ClientDevtoolsSessionStartedEvent | ClientDevtoolsSessionIdleEventV1 | FusionProjectCreatedV1 | SetupAgentCompletedV1 | GitPrMergedV1 | GitPrCreatedV1 | GitPrClosedV1 | ForceSetupAgentV1 | ClawMessageSentV1 | CodegenCompletionV1 | CodegenUserPromptV1 | GitWebhooksRegisterV1 | FusionProjectSettingsUpdatedV1 | VideoRecordingCompletedV1 | FusionBranchCreatedV1 | FusionBranchContainerStartedV1 | FusionBranchMessageSentV1 | FusionBranchFailedV1 | BotMentionExternalPrV1;
798
+ export type FusionEvent = AiTaskCompletedEvent | AiTaskFailedEvent | ClientDevtoolsSessionStartedEvent | ClientDevtoolsSessionIdleEventV1 | FusionProjectCreatedV1 | SetupAgentCompletedV1 | GitPrMergedV1 | GitPrCreatedV1 | GitPrClosedV1 | ForceSetupAgentV1 | ClawMessageSentV1 | CodegenCompletionV1 | CodegenUserPromptV1 | GitWebhooksRegisterV1 | FusionProjectSettingsUpdatedV1 | VideoRecordingCompletedV1 | FusionBranchCreatedV1 | FusionBranchContainerStartedV1 | FusionBranchMessageSentV1 | FusionBranchFailedV1 | BotMentionExternalPrV1 | ReviewSubmittedV1;
760
799
  export interface ModelPermissionRequiredEvent {
761
800
  type: "assistant.model.permission.required";
762
801
  data: {
package/src/events.js CHANGED
@@ -18,6 +18,10 @@ export const GitPrMergedV1 = {
18
18
  eventName: "git.pr.merged",
19
19
  version: "1",
20
20
  };
21
+ export const ReviewSubmittedV1 = {
22
+ eventName: "review.submitted",
23
+ version: "1",
24
+ };
21
25
  export const BotMentionExternalPrV1 = {
22
26
  eventName: "bot.mention.external-pr",
23
27
  version: "1",
@@ -54,8 +54,14 @@ export interface FallbackTokensPrivate {
54
54
  token: string;
55
55
  };
56
56
  }
57
- export type BackgroundAgentsWebhookEvent = "started" | "completed" | "error";
58
- export type BackgroundAgentsWebhookEvents = ["all"] | BackgroundAgentsWebhookEvent[];
57
+ export type FusionWebhookEvent = "background.agent.started" | "background.agent.completed" | "background.agent.error";
58
+ export type FusionWebhookEvents = ["all"] | FusionWebhookEvent[];
59
+ export interface FusionWebhook {
60
+ id: string;
61
+ disabled?: boolean;
62
+ url: string;
63
+ events: FusionWebhookEvents;
64
+ }
59
65
  interface OrganizationSettings {
60
66
  attribution?: string[];
61
67
  visualEditorAiStyleInspirationURL?: string;
@@ -94,10 +100,7 @@ interface OrganizationSettings {
94
100
  ticketAssessmentPrompt?: string;
95
101
  ticketAssessmentModel?: string;
96
102
  ticketAssessmentDailyLimit?: number;
97
- backgroundAgentsWebhook?: {
98
- url?: string;
99
- events?: BackgroundAgentsWebhookEvents;
100
- };
103
+ fusionWebhooks?: FusionWebhook[];
101
104
  }
102
105
  interface RoleOptions {
103
106
  read?: boolean;
package/src/projects.d.ts CHANGED
@@ -754,7 +754,7 @@ export interface OrganizationPrivate {
754
754
  createdAt: number;
755
755
  updatedAt: number;
756
756
  fallbackTokens?: FallbackTokensPrivate;
757
- backgroundAgentsWebhookSecret?: string;
757
+ fusionWebhookSecrets?: Record<string, string>;
758
758
  }
759
759
  export interface CreateProjectOptions {
760
760
  name?: string;