@builder.io/ai-utils 0.27.1 → 0.27.2
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 +1 -1
- package/src/claw.d.ts +56 -0
- package/src/claw.js +16 -0
- package/src/codegen.d.ts +44 -4
- package/src/events.d.ts +15 -1
- package/src/events.js +4 -0
- package/src/index.d.ts +1 -0
- package/src/index.js +1 -0
- package/src/projects.d.ts +56 -3
package/package.json
CHANGED
package/src/claw.d.ts
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export interface OrgTreeMemorySummary {
|
|
2
|
+
id: string;
|
|
3
|
+
category: string;
|
|
4
|
+
memory: string;
|
|
5
|
+
when: string;
|
|
6
|
+
glob: string | null;
|
|
7
|
+
updatedAt: number;
|
|
8
|
+
}
|
|
9
|
+
export interface OrgBranchCreator {
|
|
10
|
+
userId: string;
|
|
11
|
+
userName?: string;
|
|
12
|
+
userEmail?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface OrgBranch {
|
|
15
|
+
name: string;
|
|
16
|
+
friendlyName?: string;
|
|
17
|
+
projectId: string;
|
|
18
|
+
lastUpdatedAt: number;
|
|
19
|
+
state: string;
|
|
20
|
+
createdBy?: OrgBranchCreator;
|
|
21
|
+
}
|
|
22
|
+
export interface OrgProject {
|
|
23
|
+
id: string;
|
|
24
|
+
name: string;
|
|
25
|
+
repoFullName?: string;
|
|
26
|
+
repoUrl?: string;
|
|
27
|
+
pinned?: boolean;
|
|
28
|
+
archived?: boolean;
|
|
29
|
+
branchCount: number;
|
|
30
|
+
memories?: OrgTreeMemorySummary[];
|
|
31
|
+
}
|
|
32
|
+
export interface OrgTreeResult {
|
|
33
|
+
branches: OrgBranch[];
|
|
34
|
+
projects: OrgProject[];
|
|
35
|
+
}
|
|
36
|
+
export interface ClawMessageContext {
|
|
37
|
+
channelId: string;
|
|
38
|
+
sender: {
|
|
39
|
+
userId?: string;
|
|
40
|
+
displayName?: string;
|
|
41
|
+
};
|
|
42
|
+
timestamp: number;
|
|
43
|
+
}
|
|
44
|
+
export interface ParsedChannelId {
|
|
45
|
+
platform: string;
|
|
46
|
+
type: string;
|
|
47
|
+
ids: string[];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Parses a URI-style channelId into its components.
|
|
51
|
+
*
|
|
52
|
+
* Examples:
|
|
53
|
+
* "slack/thread/T01234/C56789/1234567890.123456" → { platform: "slack", type: "thread", ids: ["T01234", "C56789", "1234567890.123456"] }
|
|
54
|
+
* "jira/comment/cloud-id/PROJ-123" → { platform: "jira", type: "comment", ids: ["cloud-id", "PROJ-123"] }
|
|
55
|
+
*/
|
|
56
|
+
export declare function parseChannelId(channelId: string): ParsedChannelId;
|
package/src/claw.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// ── Org Tree types (shared between service endpoint and CLI) ──
|
|
2
|
+
/**
|
|
3
|
+
* Parses a URI-style channelId into its components.
|
|
4
|
+
*
|
|
5
|
+
* Examples:
|
|
6
|
+
* "slack/thread/T01234/C56789/1234567890.123456" → { platform: "slack", type: "thread", ids: ["T01234", "C56789", "1234567890.123456"] }
|
|
7
|
+
* "jira/comment/cloud-id/PROJ-123" → { platform: "jira", type: "comment", ids: ["cloud-id", "PROJ-123"] }
|
|
8
|
+
*/
|
|
9
|
+
export function parseChannelId(channelId) {
|
|
10
|
+
const parts = channelId.split("/");
|
|
11
|
+
if (parts.length < 2) {
|
|
12
|
+
throw new Error(`Invalid channelId format: ${channelId}`);
|
|
13
|
+
}
|
|
14
|
+
const [platform, type, ...ids] = parts;
|
|
15
|
+
return { platform, type, ids };
|
|
16
|
+
}
|
package/src/codegen.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import type { Options as PrettierOptions } from "prettier";
|
|
|
4
4
|
import type { UserContext } from "./mapping";
|
|
5
5
|
import type { ForcedBackup, SetupDependency, GitDiagnostics } from "./projects";
|
|
6
6
|
import type { Feature } from "./features";
|
|
7
|
-
import type { CpuKind } from "./projects";
|
|
7
|
+
import type { CpuKind, BranchType } from "./projects";
|
|
8
8
|
export type GitSnapshot = unknown;
|
|
9
9
|
export type ImportType = "named" | "default";
|
|
10
10
|
export interface ESMImport {
|
|
@@ -31,6 +31,7 @@ export interface CustomInstruction {
|
|
|
31
31
|
description?: string;
|
|
32
32
|
allowedTools?: string[];
|
|
33
33
|
hideUI?: boolean;
|
|
34
|
+
isSkill?: boolean;
|
|
34
35
|
}
|
|
35
36
|
export interface CustomAgentInfo {
|
|
36
37
|
name: string;
|
|
@@ -42,11 +43,16 @@ export interface CustomAgentDefinition {
|
|
|
42
43
|
systemPrompt?: string;
|
|
43
44
|
tools?: string[];
|
|
44
45
|
model?: string;
|
|
46
|
+
mode?: CodeGenMode;
|
|
45
47
|
position?: string;
|
|
46
48
|
needDevServer?: boolean;
|
|
47
49
|
needValidation?: boolean;
|
|
48
50
|
includeMemories?: boolean;
|
|
49
51
|
resetAfterRun?: boolean;
|
|
52
|
+
mcpServers?: boolean;
|
|
53
|
+
asyncSubAgents?: boolean;
|
|
54
|
+
queueMode?: QueueMode;
|
|
55
|
+
filePath?: string;
|
|
50
56
|
}
|
|
51
57
|
export type CodeGenFramework = "react" | "html" | "mitosis" | "react-native" | "angular" | "vue" | "svelte" | "qwik" | "solid" | "marko" | "swiftui" | "jetpack-compose" | "flutter";
|
|
52
58
|
export type CodeGenStyleLibrary = "tailwind" | "tailwind-precise" | "emotion" | "styled-components" | "styled-jsx" | "react-native" | undefined;
|
|
@@ -200,6 +206,9 @@ export interface GetScreenshotToolInput {
|
|
|
200
206
|
width?: number;
|
|
201
207
|
height?: number;
|
|
202
208
|
}
|
|
209
|
+
export interface NavigatePreviewToolInput {
|
|
210
|
+
href: string;
|
|
211
|
+
}
|
|
203
212
|
export interface WebFetchToolInput {
|
|
204
213
|
url: string;
|
|
205
214
|
prompt?: string;
|
|
@@ -301,11 +310,14 @@ export interface ExitToolInput {
|
|
|
301
310
|
question: string;
|
|
302
311
|
context: string;
|
|
303
312
|
header?: string;
|
|
313
|
+
/** Question type: "select" for single-choice, "multi-select" for multiple choices, "text" for free-form input. Defaults to "select" if options are present, "text" if not. */
|
|
314
|
+
type?: "select" | "multi-select" | "text";
|
|
315
|
+
/** Placeholder text for text-type questions (e.g., "Enter your API key", "https://localhost:3000") */
|
|
316
|
+
placeholder?: string;
|
|
304
317
|
options?: Array<{
|
|
305
318
|
label: string;
|
|
306
319
|
description: string;
|
|
307
320
|
}>;
|
|
308
|
-
multiSelect?: boolean;
|
|
309
321
|
}>;
|
|
310
322
|
isMonorepo?: boolean;
|
|
311
323
|
isMicrofrontend?: boolean;
|
|
@@ -329,11 +341,14 @@ export interface ProposedConfig {
|
|
|
329
341
|
context: string;
|
|
330
342
|
whatYouTried?: string;
|
|
331
343
|
header?: string;
|
|
344
|
+
/** Question type: "select" for single-choice, "multi-select" for multiple choices, "text" for free-form input */
|
|
345
|
+
type?: "select" | "multi-select" | "text";
|
|
346
|
+
/** Placeholder text for text-type questions */
|
|
347
|
+
placeholder?: string;
|
|
332
348
|
options?: Array<{
|
|
333
349
|
label: string;
|
|
334
350
|
description: string;
|
|
335
351
|
}>;
|
|
336
|
-
multiSelect?: boolean;
|
|
337
352
|
}>;
|
|
338
353
|
configuration: {
|
|
339
354
|
setupCommand: {
|
|
@@ -461,6 +476,24 @@ export interface SetEnvVariableToolInput {
|
|
|
461
476
|
placeholder?: boolean;
|
|
462
477
|
explanation?: string;
|
|
463
478
|
}
|
|
479
|
+
export interface SendMessageToolInput {
|
|
480
|
+
channelId: string;
|
|
481
|
+
markdown: string;
|
|
482
|
+
status: "starting" | "question" | "done:success" | "done:error";
|
|
483
|
+
}
|
|
484
|
+
export interface ReadChannelToolInput {
|
|
485
|
+
channelId: string;
|
|
486
|
+
limit?: number;
|
|
487
|
+
}
|
|
488
|
+
export interface SpawnBranchToolInput {
|
|
489
|
+
projectId: string;
|
|
490
|
+
message: string;
|
|
491
|
+
}
|
|
492
|
+
export interface SendMessageToBranchToolInput {
|
|
493
|
+
projectId: string;
|
|
494
|
+
branchName: string;
|
|
495
|
+
message: string;
|
|
496
|
+
}
|
|
464
497
|
/** Comment for PR review - used by both SubmitPRReview and SubmitRecording */
|
|
465
498
|
export interface PRReviewComment {
|
|
466
499
|
file_path: string;
|
|
@@ -521,6 +554,7 @@ export interface CodeGenToolMap {
|
|
|
521
554
|
ReadRule: GetRuleToolInput;
|
|
522
555
|
GetStyleInspiration: GetStyleInspirationToolInput;
|
|
523
556
|
GetScreenshot: GetScreenshotToolInput;
|
|
557
|
+
NavigatePreview: NavigatePreviewToolInput;
|
|
524
558
|
MultiEdit: MultiSearchReplaceInput;
|
|
525
559
|
FindMedia: FindMediaToolInput;
|
|
526
560
|
Media: MediaToolInput;
|
|
@@ -561,11 +595,16 @@ export interface CodeGenToolMap {
|
|
|
561
595
|
VerifyValidateCommand: VerifyValidateCommandToolInput;
|
|
562
596
|
VerifyRuntimeDependency: VerifyRuntimeDependencyToolInput;
|
|
563
597
|
SetEnvVariable: SetEnvVariableToolInput;
|
|
598
|
+
SendMessage: SendMessageToolInput;
|
|
599
|
+
ReadChannel: ReadChannelToolInput;
|
|
600
|
+
SpawnBranch: SpawnBranchToolInput;
|
|
601
|
+
SendMessageToBranch: SendMessageToBranchToolInput;
|
|
564
602
|
}
|
|
565
603
|
export type CodeGenTools = keyof CodeGenToolMap;
|
|
566
604
|
export type AllCodeGenTools = CodeGenTools | "web_search";
|
|
567
605
|
export type SessionMode = "planning" | "normal" | "auto-planning" | "deep-research";
|
|
568
606
|
export type CodeGenMode = "quality" | "quality-v3" | "quality-v4" | "quality-v4-agent";
|
|
607
|
+
export type QueueMode = "next-turn" | "until-idle";
|
|
569
608
|
export type BaseCodeGenPosition = "fusion" | "editor-ai" | "repo-indexing" | "cli" | "create-app-firebase" | "create-app-lovable" | "builder-code-panel" | "dsi-mcp";
|
|
570
609
|
export type CodeGenPosition = BaseCodeGenPosition | `${BaseCodeGenPosition}-agent`;
|
|
571
610
|
export interface RepoIndexingConfig {
|
|
@@ -1017,6 +1056,7 @@ export interface CustomInstructionDefinition {
|
|
|
1017
1056
|
description: string;
|
|
1018
1057
|
type: "agent-mode" | "always";
|
|
1019
1058
|
glob?: string;
|
|
1059
|
+
isSkill?: boolean;
|
|
1020
1060
|
}
|
|
1021
1061
|
export interface GenerateCompletionStepSession {
|
|
1022
1062
|
type: "session";
|
|
@@ -1557,7 +1597,7 @@ export interface FusionConfig {
|
|
|
1557
1597
|
sessionId?: string;
|
|
1558
1598
|
browserAutomationInstructions?: string;
|
|
1559
1599
|
/** Whether this branch is for a code review - affects enabled agents and tools */
|
|
1560
|
-
branchType?:
|
|
1600
|
+
branchType?: BranchType;
|
|
1561
1601
|
featureBranch?: string;
|
|
1562
1602
|
aiBranch?: string;
|
|
1563
1603
|
/** Whether this is a fork PR - affects git operations (read-only, can't push) */
|
package/src/events.d.ts
CHANGED
|
@@ -519,7 +519,21 @@ export declare const ForceSetupAgentV1: {
|
|
|
519
519
|
eventName: "fusion.setup.force";
|
|
520
520
|
version: "1";
|
|
521
521
|
};
|
|
522
|
-
export type
|
|
522
|
+
export type ClawMessageSentV1 = FusionEventVariant<"claw.message.sent", {
|
|
523
|
+
branchName: string;
|
|
524
|
+
messageType: "text" | "task-result" | "cron-trigger";
|
|
525
|
+
content: string;
|
|
526
|
+
senderType: "user" | "sub-agent" | "system";
|
|
527
|
+
senderId?: string;
|
|
528
|
+
correlationId?: string;
|
|
529
|
+
channelId?: string;
|
|
530
|
+
senderDisplayName?: string;
|
|
531
|
+
}, {}, 1>;
|
|
532
|
+
export declare const ClawMessageSentV1: {
|
|
533
|
+
eventName: "claw.message.sent";
|
|
534
|
+
version: "1";
|
|
535
|
+
};
|
|
536
|
+
export type FusionEvent = AiTaskCompletedEvent | AiTaskFailedEvent | GitPrCreatedEvent | ClientDevtoolsSessionStartedEvent | FusionProjectCreatedV1 | SetupAgentCompletedV1 | ForceSetupAgentV1 | ClawMessageSentV1;
|
|
523
537
|
export interface ModelPermissionRequiredEvent {
|
|
524
538
|
type: "assistant.model.permission.required";
|
|
525
539
|
data: {
|
package/src/events.js
CHANGED
package/src/index.d.ts
CHANGED
|
@@ -9,5 +9,6 @@ export * from "./repo-indexing.js";
|
|
|
9
9
|
export * from "./organization.js";
|
|
10
10
|
export * from "./features.js";
|
|
11
11
|
export * from "./vscode-tunnel.js";
|
|
12
|
+
export * from "./claw.js";
|
|
12
13
|
export * from "./connectivity/types.js";
|
|
13
14
|
export { connectivityErrorCodeToLikelyCause, mapConnectivityErrorMessage, } from "./connectivity/error-codes.js";
|
package/src/index.js
CHANGED
|
@@ -9,5 +9,6 @@ export * from "./repo-indexing.js";
|
|
|
9
9
|
export * from "./organization.js";
|
|
10
10
|
export * from "./features.js";
|
|
11
11
|
export * from "./vscode-tunnel.js";
|
|
12
|
+
export * from "./claw.js";
|
|
12
13
|
export * from "./connectivity/types.js";
|
|
13
14
|
export { connectivityErrorCodeToLikelyCause, mapConnectivityErrorMessage, } from "./connectivity/error-codes.js";
|
package/src/projects.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ConnectivityErrorCode, CheckType, LikelyCause } from "./connectivity/types.js";
|
|
2
|
-
import type { FileOverride, EnvironmentVariable, LaunchServerState, LaunchServerStatus, BranchBackup, CommitMode, CustomInstruction, CustomAgentDefinition, GitSnapshot, AutoPushMode } from "./codegen";
|
|
2
|
+
import type { FileOverride, EnvironmentVariable, LaunchServerState, LaunchServerStatus, BranchBackup, CommitMode, CustomInstruction, CustomAgentDefinition, GitSnapshot, AutoPushMode, GenerateUserMessage, CodeGenToolMap } from "./codegen";
|
|
3
3
|
import type { FallbackTokensPrivate } from "./organization";
|
|
4
4
|
/**
|
|
5
5
|
* Temporary type for date fields during migration.
|
|
@@ -275,6 +275,8 @@ export interface RecordScreenshotOptions {
|
|
|
275
275
|
}
|
|
276
276
|
export type GitBackupRecordBody = GitBackupRecordOptions | {
|
|
277
277
|
backups: GitBackupRecordOptions[];
|
|
278
|
+
elapsedTime: number;
|
|
279
|
+
error?: string;
|
|
278
280
|
};
|
|
279
281
|
export interface GitBackupRecordResult {
|
|
280
282
|
success: boolean;
|
|
@@ -335,7 +337,7 @@ export interface SetupScriptDependency {
|
|
|
335
337
|
script: string;
|
|
336
338
|
}
|
|
337
339
|
export type FusionExecutionEnvironment = "containerized" | "container-less" | "cloud" | "cloud-v2";
|
|
338
|
-
export type AgentType = "setup-project" | "project-configuration";
|
|
340
|
+
export type AgentType = "setup-project" | "project-configuration" | "org-agent";
|
|
339
341
|
export interface PartialBranchData {
|
|
340
342
|
name?: string;
|
|
341
343
|
createdBy: string;
|
|
@@ -395,6 +397,8 @@ export interface BranchMetadata {
|
|
|
395
397
|
slackThreadTs?: string;
|
|
396
398
|
/** User-provided description of what reviewers should focus on */
|
|
397
399
|
description?: string;
|
|
400
|
+
/** Whether the branch is a cloned branch */
|
|
401
|
+
isClonedBranch?: boolean;
|
|
398
402
|
[key: string]: unknown;
|
|
399
403
|
}
|
|
400
404
|
export type PRStatus = "open" | "closed" | "merged" | "draft" | "approved";
|
|
@@ -405,7 +409,13 @@ export interface BranchReview {
|
|
|
405
409
|
createdAt: number;
|
|
406
410
|
updatedAt: number;
|
|
407
411
|
}
|
|
408
|
-
export
|
|
412
|
+
export interface OrgAgentConfig {
|
|
413
|
+
maxSubAgents: number;
|
|
414
|
+
syncIntervalMinutes: number;
|
|
415
|
+
enabledTools: string[];
|
|
416
|
+
longLived: boolean;
|
|
417
|
+
}
|
|
418
|
+
export type BranchType = "code-review" | "setup-project" | "org-agent" | "org-worker";
|
|
409
419
|
export interface BranchSharedData {
|
|
410
420
|
appName?: string | null;
|
|
411
421
|
prNumber?: number | null;
|
|
@@ -672,6 +682,12 @@ export interface Project {
|
|
|
672
682
|
useBranchesCollection?: boolean;
|
|
673
683
|
/** When true, the project is in code-only mode */
|
|
674
684
|
codeOnlyMode?: boolean;
|
|
685
|
+
/** When true, this project is an org-level Claw agent */
|
|
686
|
+
isOrgAgent?: boolean;
|
|
687
|
+
/** Configuration for the org agent */
|
|
688
|
+
orgAgentConfig?: OrgAgentConfig;
|
|
689
|
+
/** When true, the project is hidden from normal project listings */
|
|
690
|
+
hidden?: boolean;
|
|
675
691
|
}
|
|
676
692
|
/**
|
|
677
693
|
* Get the state of a branch, checking `state` first and falling back to `deleted` for backwards compatibility.
|
|
@@ -735,4 +751,41 @@ export interface BuilderMyContext {
|
|
|
735
751
|
};
|
|
736
752
|
error?: string;
|
|
737
753
|
}
|
|
754
|
+
export interface WebhookConfig {
|
|
755
|
+
url: string;
|
|
756
|
+
secret?: string;
|
|
757
|
+
timeout?: number;
|
|
758
|
+
}
|
|
759
|
+
export interface CreateBranchOptions {
|
|
760
|
+
projectId: string;
|
|
761
|
+
userMessage: GenerateUserMessage;
|
|
762
|
+
devToolsVersion?: string;
|
|
763
|
+
webhook?: WebhookConfig;
|
|
764
|
+
branchFriendlyName?: string;
|
|
765
|
+
agentType?: AgentType;
|
|
766
|
+
actor: string;
|
|
767
|
+
hidden?: boolean;
|
|
768
|
+
featureFlags?: Record<string, boolean>;
|
|
769
|
+
checkoutBranch?: string | null;
|
|
770
|
+
canHandleTools?: (keyof CodeGenToolMap)[];
|
|
771
|
+
useKube?: boolean;
|
|
772
|
+
fireAndForget?: boolean;
|
|
773
|
+
/** PR number for QA bot branches */
|
|
774
|
+
prNumber?: number;
|
|
775
|
+
/** Whether this branch is for a fork PR - affects git operations */
|
|
776
|
+
isFork?: boolean;
|
|
777
|
+
type?: BranchType;
|
|
778
|
+
/** Optional suffix to append to generated branch names (e.g., model short name for parallel branches) */
|
|
779
|
+
branchNameSuffix?: string;
|
|
780
|
+
}
|
|
781
|
+
export interface SendMessageOptions {
|
|
782
|
+
projectId: string;
|
|
783
|
+
branchName: string;
|
|
784
|
+
userMessage: GenerateUserMessage;
|
|
785
|
+
devToolsVersion?: string;
|
|
786
|
+
featureFlags?: Record<string, boolean>;
|
|
787
|
+
webhook?: WebhookConfig;
|
|
788
|
+
fireAndForget?: boolean;
|
|
789
|
+
canHandleTools?: (keyof CodeGenToolMap)[];
|
|
790
|
+
}
|
|
738
791
|
export {};
|