@builder.io/ai-utils 0.99.0 → 0.100.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.99.0",
3
+ "version": "0.100.0",
4
4
  "description": "Builder.io AI utils",
5
5
  "files": [
6
6
  "src"
package/src/codegen.d.ts CHANGED
@@ -2168,6 +2168,18 @@ export declare const CodeGenPositionSchema: z.ZodUnion<readonly [z.ZodEnum<{
2168
2168
  unknown: "unknown";
2169
2169
  }>, z.ZodTemplateLiteral<"browser-testing-agent" | "builder-code-agent" | "builder-code-panel-agent" | "builder-publish-integration-agent" | "cli-agent" | "code-review-orchestrator-agent" | "create-app-firebase-agent" | "create-app-lovable-agent" | "design-system-indexer-agent" | "dsi-mcp-agent" | "editor-ai-agent" | "fusion-agent" | "org-agent-agent" | "org-worker-agent" | "project-configuration-agent" | "projects-scheduler-memory-extraction-agent" | "publish-agent-agent" | "repo-indexing-agent" | "setup-project-agent" | "unknown-agent">]>;
2170
2170
  export type CodeGenPosition = z.infer<typeof CodeGenPositionSchema>;
2171
+ export declare const SystemReminderObjSchema: z.ZodObject<{
2172
+ text: z.ZodString;
2173
+ tag: z.ZodOptional<z.ZodString>;
2174
+ ephemeral: z.ZodOptional<z.ZodBoolean>;
2175
+ }, z.core.$strip>;
2176
+ export type SystemReminderObj = z.infer<typeof SystemReminderObjSchema>;
2177
+ export declare const SystemReminderSchema: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
2178
+ text: z.ZodString;
2179
+ tag: z.ZodOptional<z.ZodString>;
2180
+ ephemeral: z.ZodOptional<z.ZodBoolean>;
2181
+ }, z.core.$strip>]>;
2182
+ export type SystemReminder = z.infer<typeof SystemReminderSchema>;
2171
2183
  export declare const PublishAgentMessageRequestSchema: z.ZodObject<{
2172
2184
  message: z.ZodOptional<z.ZodString>;
2173
2185
  sessionId: z.ZodOptional<z.ZodString>;
@@ -2182,6 +2194,38 @@ export declare const PublishAgentMessageRequestSchema: z.ZodObject<{
2182
2194
  none: "none";
2183
2195
  xhigh: "xhigh";
2184
2196
  }>>;
2197
+ attachments: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
2198
+ type: z.ZodLiteral<"upload">;
2199
+ contentType: z.ZodEnum<{
2200
+ "application/json": "application/json";
2201
+ "application/pdf": "application/pdf";
2202
+ "image/gif": "image/gif";
2203
+ "image/jpeg": "image/jpeg";
2204
+ "image/png": "image/png";
2205
+ "image/webp": "image/webp";
2206
+ "text/plain": "text/plain";
2207
+ }>;
2208
+ name: z.ZodString;
2209
+ dataUrl: z.ZodString;
2210
+ text: z.ZodOptional<z.ZodString>;
2211
+ size: z.ZodNumber;
2212
+ id: z.ZodString;
2213
+ originalUrl: z.ZodOptional<z.ZodString>;
2214
+ ephemeral: z.ZodOptional<z.ZodBoolean>;
2215
+ }, z.core.$strip>, z.ZodObject<{
2216
+ type: z.ZodLiteral<"template">;
2217
+ name: z.ZodString;
2218
+ id: z.ZodNumber;
2219
+ }, z.core.$strip>, z.ZodObject<{
2220
+ type: z.ZodLiteral<"url">;
2221
+ value: z.ZodString;
2222
+ }, z.core.$strip>, z.ZodObject<{
2223
+ type: z.ZodLiteral<"builder">;
2224
+ html: z.ZodString;
2225
+ }, z.core.$strip>, z.ZodObject<{
2226
+ type: z.ZodLiteral<"figma">;
2227
+ html: z.ZodString;
2228
+ }, z.core.$strip>], "type">>>;
2185
2229
  toolResults: z.ZodOptional<z.ZodArray<z.ZodObject<{
2186
2230
  type: z.ZodLiteral<"tool_result">;
2187
2231
  tool_use_id: z.ZodString;
@@ -2255,13 +2299,12 @@ export declare const PublishAgentMessageRequestSchema: z.ZodObject<{
2255
2299
  ephemeral: z.ZodOptional<z.ZodBoolean>;
2256
2300
  structured_result: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
2257
2301
  }, z.core.$strip>>>;
2258
- confirmation: z.ZodOptional<z.ZodObject<{
2259
- actionId: z.ZodString;
2260
- decision: z.ZodEnum<{
2261
- approve: "approve";
2262
- reject: "reject";
2263
- }>;
2264
- }, z.core.$strip>>;
2302
+ systemReminders: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
2303
+ text: z.ZodString;
2304
+ tag: z.ZodOptional<z.ZodString>;
2305
+ ephemeral: z.ZodOptional<z.ZodBoolean>;
2306
+ }, z.core.$strip>]>>>;
2307
+ skippedMCPs: z.ZodOptional<z.ZodArray<z.ZodString>>;
2265
2308
  }, z.core.$strip>;
2266
2309
  export type PublishAgentMessageRequest = z.infer<typeof PublishAgentMessageRequestSchema>;
2267
2310
  export declare const RepoIndexingConfigSchema: z.ZodObject<{
@@ -2504,18 +2547,6 @@ export declare const AclPolicySchema: z.ZodObject<{
2504
2547
  denyDescription: z.ZodOptional<z.ZodString>;
2505
2548
  }, z.core.$strip>;
2506
2549
  export type AclPolicy = z.infer<typeof AclPolicySchema>;
2507
- export declare const SystemReminderObjSchema: z.ZodObject<{
2508
- text: z.ZodString;
2509
- tag: z.ZodOptional<z.ZodString>;
2510
- ephemeral: z.ZodOptional<z.ZodBoolean>;
2511
- }, z.core.$strip>;
2512
- export type SystemReminderObj = z.infer<typeof SystemReminderObjSchema>;
2513
- export declare const SystemReminderSchema: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
2514
- text: z.ZodString;
2515
- tag: z.ZodOptional<z.ZodString>;
2516
- ephemeral: z.ZodOptional<z.ZodBoolean>;
2517
- }, z.core.$strip>]>;
2518
- export type SystemReminder = z.infer<typeof SystemReminderSchema>;
2519
2550
  export declare const CodeGenInputOptionsSchema: z.ZodObject<{
2520
2551
  position: z.ZodUnion<readonly [z.ZodEnum<{
2521
2552
  "browser-testing": "browser-testing";
@@ -2994,10 +3025,9 @@ export type CodeGenInputOptions = z.infer<typeof CodeGenInputOptionsSchema> & {
2994
3025
  /** @internal Derived from BuilderEditorState.components for editor AI. */
2995
3026
  _fieldShapeChecks?: FieldShapeCheck[];
2996
3027
  /**
2997
- * Optional factory function to wrap the MCP client with custom behavior
2998
- * Used by Editor AI to add permission checks for model operations
2999
3028
  * Optional factory function to wrap the MCP client with custom behavior.
3000
- * Used by Editor AI to add permission checks for model operations.
3029
+ * Used by Editor AI (model permission prompts) and the Publish Agent
3030
+ * (the confirmation gate); the caller closes over its own event stream.
3001
3031
  * @internal
3002
3032
  */
3003
3033
  _mcpClientWrapperFactory?: (realClient: any) => any;
@@ -5108,6 +5138,12 @@ export declare const CommitMessageResponseSchema: z.ZodObject<{
5108
5138
  body: z.ZodOptional<z.ZodString>;
5109
5139
  }, z.core.$strip>;
5110
5140
  export type CommitMessageResponse = z.infer<typeof CommitMessageResponseSchema>;
5141
+ /** Where a permission gate is installed. Selects the pub/sub channel an approval is published to. */
5142
+ export declare const PermissionAwarePositionSchema: z.ZodEnum<{
5143
+ "editor-ai": "editor-ai";
5144
+ "publish-agent": "publish-agent";
5145
+ }>;
5146
+ export type PermissionAwarePosition = z.infer<typeof PermissionAwarePositionSchema>;
5111
5147
  /**
5112
5148
  * Request body for `POST /codegen/model-permission-response`. Sent by the
5113
5149
  * frontend to approve or deny a model permission prompt.
@@ -5117,6 +5153,10 @@ export declare const ModelPermissionResponseRequestSchema: z.ZodObject<{
5117
5153
  toolId: z.ZodString;
5118
5154
  approved: z.ZodBoolean;
5119
5155
  reason: z.ZodOptional<z.ZodString>;
5156
+ position: z.ZodOptional<z.ZodEnum<{
5157
+ "editor-ai": "editor-ai";
5158
+ "publish-agent": "publish-agent";
5159
+ }>>;
5120
5160
  }, z.core.$strip>;
5121
5161
  export type ModelPermissionResponseRequest = z.infer<typeof ModelPermissionResponseRequestSchema>;
5122
5162
  export interface TodoItem {
package/src/codegen.js CHANGED
@@ -1780,19 +1780,28 @@ export const CodeGenPositionSchema = z
1780
1780
  z.templateLiteral([BaseCodeGenPositionSchema, "-agent"]),
1781
1781
  ])
1782
1782
  .meta({ title: "CodeGenPosition" });
1783
+ export const SystemReminderObjSchema = z
1784
+ .object({
1785
+ text: z.string(),
1786
+ tag: z.string().optional(),
1787
+ ephemeral: z.boolean().optional(),
1788
+ })
1789
+ .meta({ title: "SystemReminderObj" });
1790
+ export const SystemReminderSchema = z
1791
+ .union([z.string(), SystemReminderObjSchema])
1792
+ .meta({ title: "SystemReminder" });
1783
1793
  export const PublishAgentMessageRequestSchema = z
1784
1794
  .object({
1785
1795
  message: z.string().max(100000).optional(),
1786
1796
  sessionId: z.string().min(1).max(256).optional(),
1787
1797
  modelOverride: z.string().min(1).max(256).optional(),
1788
1798
  reasoning: ReasoningEffortSchema.optional(),
1799
+ attachments: z.array(AttachmentSchema).optional(),
1789
1800
  toolResults: z.array(ContentMessageItemToolResultSchema).optional(),
1790
- confirmation: z
1791
- .object({
1792
- actionId: z.string().min(1).max(256),
1793
- decision: z.enum(["approve", "reject"]),
1794
- })
1795
- .optional(),
1801
+ systemReminders: z.array(SystemReminderSchema).optional(),
1802
+ skippedMCPs: z.array(z.string()).optional().meta({
1803
+ description: "Per-message denylist of MCP server ids to skip, e.g. a 'disable for this session' UI toggle.",
1804
+ }),
1796
1805
  })
1797
1806
  .refine(({ message, toolResults }) => Boolean(message) || Boolean(toolResults === null || toolResults === void 0 ? void 0 : toolResults.length), {
1798
1807
  path: ["message"],
@@ -1943,16 +1952,6 @@ export const AclPolicySchema = z
1943
1952
  }),
1944
1953
  })
1945
1954
  .meta({ title: "AclPolicy" });
1946
- export const SystemReminderObjSchema = z
1947
- .object({
1948
- text: z.string(),
1949
- tag: z.string().optional(),
1950
- ephemeral: z.boolean().optional(),
1951
- })
1952
- .meta({ title: "SystemReminderObj" });
1953
- export const SystemReminderSchema = z
1954
- .union([z.string(), SystemReminderObjSchema])
1955
- .meta({ title: "SystemReminder" });
1956
1955
  // Schema for CodeGenInputOptions. This is `z.looseObject` so unknown / forward-compat
1957
1956
  // fields pass through. Fields marked `@internal` (function values, middleware-set
1958
1957
  // markers) are excluded from the schema and added back via TypeScript intersection
@@ -2277,6 +2276,11 @@ export const CommitMessageResponseSchema = z
2277
2276
  .meta({ description: "Optional extended description" }),
2278
2277
  })
2279
2278
  .meta({ title: "CommitMessageResponse" });
2279
+ /** Where a permission gate is installed. Selects the pub/sub channel an approval is published to. */
2280
+ export const PermissionAwarePositionSchema = z.enum([
2281
+ "editor-ai",
2282
+ "publish-agent",
2283
+ ]);
2280
2284
  /**
2281
2285
  * Request body for `POST /codegen/model-permission-response`. Sent by the
2282
2286
  * frontend to approve or deny a model permission prompt.
@@ -2287,5 +2291,8 @@ export const ModelPermissionResponseRequestSchema = z
2287
2291
  toolId: z.string(),
2288
2292
  approved: z.boolean(),
2289
2293
  reason: z.string().optional(),
2294
+ position: PermissionAwarePositionSchema.optional().meta({
2295
+ description: "Which gate is awaiting this response. Defaults to editor-ai.",
2296
+ }),
2290
2297
  })
2291
2298
  .meta({ title: "ModelPermissionResponseRequest" });
package/src/events.d.ts CHANGED
@@ -4,7 +4,7 @@ import type { AssistantSettings } from "./settings.js";
4
4
  import type { ExitState, UserSource, CodeGenPosition, ReviewSeverity, ReviewVerdict, AskUserQuestion } from "./codegen.js";
5
5
  import type { FileUpload } from "./messages.js";
6
6
  import type { BuilderConfigRealtime } from "./builder-config.js";
7
- import type { DeployFailureReport } from "./projects.js";
7
+ import type { DeployFailureReport, ShapeQuestionDecision } from "./projects.js";
8
8
  export type BuilderAssistantEventHandler = (ev: BuilderAssistantEvent) => void;
9
9
  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 | AssistantQuestionRequiredEvent;
10
10
  export interface AssistantCompletionResultEvent {
@@ -742,6 +742,31 @@ export declare const FusionProjectCreatedV1: {
742
742
  eventName: "fusion.project.created";
743
743
  version: "1";
744
744
  };
745
+ export type FusionShapeIssuedV1 = FusionEventVariant<"fusion.shape.issued", {
746
+ projectId: string;
747
+ questionnaireId: string;
748
+ initialPromptId: string;
749
+ catalogVersion: string;
750
+ issuedAt: string;
751
+ }, {}, 1>;
752
+ export declare const FusionShapeIssuedV1: {
753
+ eventName: "fusion.shape.issued";
754
+ version: "1";
755
+ };
756
+ export type FusionShapeAssembledV1 = FusionEventVariant<"fusion.shape.assembled", {
757
+ projectId: string;
758
+ questionnaireId: string;
759
+ catalogVersion: string;
760
+ durationMs: number;
761
+ selection: "llm" | "fallback";
762
+ selectedQuestionIds: string[];
763
+ decisions: ShapeQuestionDecision[];
764
+ assembledAt: string;
765
+ }, {}, 1>;
766
+ export declare const FusionShapeAssembledV1: {
767
+ eventName: "fusion.shape.assembled";
768
+ version: "1";
769
+ };
745
770
  export type SetupAgentCompletedV1 = FusionEventVariant<"fusion.setup.completed", {
746
771
  proposedConfigId: string;
747
772
  projectId: string;
@@ -1373,7 +1398,7 @@ export declare const HostingCustomDomainDelegationCheckV1: {
1373
1398
  eventName: "hosting.custom-domain.delegation-check";
1374
1399
  version: "1";
1375
1400
  };
1376
- export type FusionEvent = ClientDevtoolsSessionStartedEvent | ClientDevtoolsSessionIdleEventV1 | ClientDevtoolsToolCallRequestV1 | ClientDevtoolsToolCallV1 | ClientDevtoolsToolResultV1 | ClientDevtoolsBuildMigratedV1 | ClientDevtoolsBuildCompletedV1 | ClientDevtoolsBuildUploadedV1 | ClientDevtoolsBuildFailedV1 | FusionProjectCreatedV1 | SetupAgentCompletedV1 | GitPrMergedV1 | GitPrCreatedV1 | GitPrClosedV1 | ForceSetupAgentV1 | ClawMessageSentV1 | CodegenCompletionV1 | CodegenUserPromptV1 | GitWebhooksRegisterV1 | FusionProjectSettingsUpdatedV1 | VideoRecordingCompletedV1 | TimelineRecordingReadyV1 | FusionBranchCreatedV1 | FusionContainerStartedV1 | FusionContainerFailedV1 | FusionBranchFailedV1 | BotMentionGitHubExternalPrV1 | BotMentionGitHubInternalPrV1 | BotMentionGitLabPrV1 | BotMentionBitbucketPrV1 | BotMentionAzurePrV1 | ReviewSubmittedV1 | PrReviewRequestedV1 | FigmaDecodeJobV1 | ProjectSnapshotRefreshV1 | ProjectSnapshotCapturedV1 | ProjectSnapshotCreatedV1 | ProjectSnapshotFailedV1 | ProjectSnapshotReadyCheckV1 | ProjectSnapshotPodWatchV1 | McpPrototypePulledV1 | HostingCustomDomainCertCheckV1 | HostingCustomDomainServingCheckV1 | HostingCustomDomainDelegationCheckV1;
1401
+ export type FusionEvent = ClientDevtoolsSessionStartedEvent | ClientDevtoolsSessionIdleEventV1 | ClientDevtoolsToolCallRequestV1 | ClientDevtoolsToolCallV1 | ClientDevtoolsToolResultV1 | ClientDevtoolsBuildMigratedV1 | ClientDevtoolsBuildCompletedV1 | ClientDevtoolsBuildUploadedV1 | ClientDevtoolsBuildFailedV1 | FusionProjectCreatedV1 | FusionShapeIssuedV1 | FusionShapeAssembledV1 | SetupAgentCompletedV1 | GitPrMergedV1 | GitPrCreatedV1 | GitPrClosedV1 | ForceSetupAgentV1 | ClawMessageSentV1 | CodegenCompletionV1 | CodegenUserPromptV1 | GitWebhooksRegisterV1 | FusionProjectSettingsUpdatedV1 | VideoRecordingCompletedV1 | TimelineRecordingReadyV1 | FusionBranchCreatedV1 | FusionContainerStartedV1 | FusionContainerFailedV1 | FusionBranchFailedV1 | BotMentionGitHubExternalPrV1 | BotMentionGitHubInternalPrV1 | BotMentionGitLabPrV1 | BotMentionBitbucketPrV1 | BotMentionAzurePrV1 | ReviewSubmittedV1 | PrReviewRequestedV1 | FigmaDecodeJobV1 | ProjectSnapshotRefreshV1 | ProjectSnapshotCapturedV1 | ProjectSnapshotCreatedV1 | ProjectSnapshotFailedV1 | ProjectSnapshotReadyCheckV1 | ProjectSnapshotPodWatchV1 | McpPrototypePulledV1 | HostingCustomDomainCertCheckV1 | HostingCustomDomainServingCheckV1 | HostingCustomDomainDelegationCheckV1;
1377
1402
  export interface ModelPermissionRequiredEvent {
1378
1403
  type: "assistant.model.permission.required";
1379
1404
  data: {
package/src/events.js CHANGED
@@ -46,6 +46,14 @@ export const FusionProjectCreatedV1 = {
46
46
  eventName: "fusion.project.created",
47
47
  version: "1",
48
48
  };
49
+ export const FusionShapeIssuedV1 = {
50
+ eventName: "fusion.shape.issued",
51
+ version: "1",
52
+ };
53
+ export const FusionShapeAssembledV1 = {
54
+ eventName: "fusion.shape.assembled",
55
+ version: "1",
56
+ };
49
57
  export const SetupAgentCompletedV1 = {
50
58
  eventName: "fusion.setup.completed",
51
59
  version: "1",