@locusai/sdk 0.8.1 → 0.9.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/dist/agent/__tests__/orchestrator.cleanup.test.d.ts +2 -0
- package/dist/agent/__tests__/orchestrator.cleanup.test.d.ts.map +1 -0
- package/dist/agent/__tests__/worker.no-changes.test.d.ts +2 -0
- package/dist/agent/__tests__/worker.no-changes.test.d.ts.map +1 -0
- package/dist/agent/document-fetcher.d.ts.map +1 -1
- package/dist/agent/index.d.ts +1 -0
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/review-service.d.ts.map +1 -1
- package/dist/agent/reviewer-worker.d.ts +42 -0
- package/dist/agent/reviewer-worker.d.ts.map +1 -0
- package/dist/agent/task-executor.d.ts +1 -1
- package/dist/agent/task-executor.d.ts.map +1 -1
- package/dist/agent/worker.d.ts +47 -4
- package/dist/agent/worker.d.ts.map +1 -1
- package/dist/agent/worker.js +1102 -506
- package/dist/ai/claude-runner.d.ts +5 -0
- package/dist/ai/claude-runner.d.ts.map +1 -1
- package/dist/ai/codex-runner.d.ts +5 -0
- package/dist/ai/codex-runner.d.ts.map +1 -1
- package/dist/ai/runner.d.ts +5 -0
- package/dist/ai/runner.d.ts.map +1 -1
- package/dist/core/config.d.ts +10 -2
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/prompt-builder.d.ts +3 -6
- package/dist/core/prompt-builder.d.ts.map +1 -1
- package/dist/git/git-utils.d.ts +31 -0
- package/dist/git/git-utils.d.ts.map +1 -0
- package/dist/git/index.d.ts +3 -0
- package/dist/git/index.d.ts.map +1 -0
- package/dist/git/pr-service.d.ts +66 -0
- package/dist/git/pr-service.d.ts.map +1 -0
- package/dist/index-node.d.ts +5 -1
- package/dist/index-node.d.ts.map +1 -1
- package/dist/index-node.js +2560 -729
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -49
- package/dist/modules/auth.d.ts +3 -0
- package/dist/modules/auth.d.ts.map +1 -1
- package/dist/modules/tasks.d.ts +0 -5
- package/dist/modules/tasks.d.ts.map +1 -1
- package/dist/modules/workspaces.d.ts +10 -10
- package/dist/modules/workspaces.d.ts.map +1 -1
- package/dist/orchestrator.d.ts +38 -5
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/planning/agents/architect.d.ts +15 -0
- package/dist/planning/agents/architect.d.ts.map +1 -0
- package/dist/planning/agents/sprint-organizer.d.ts +14 -0
- package/dist/planning/agents/sprint-organizer.d.ts.map +1 -0
- package/dist/planning/agents/tech-lead.d.ts +15 -0
- package/dist/planning/agents/tech-lead.d.ts.map +1 -0
- package/dist/planning/index.d.ts +4 -0
- package/dist/planning/index.d.ts.map +1 -0
- package/dist/planning/plan-manager.d.ts +52 -0
- package/dist/planning/plan-manager.d.ts.map +1 -0
- package/dist/planning/planning-meeting.d.ts +36 -0
- package/dist/planning/planning-meeting.d.ts.map +1 -0
- package/dist/planning/sprint-plan.d.ts +47 -0
- package/dist/planning/sprint-plan.d.ts.map +1 -0
- package/dist/project/knowledge-base.d.ts +25 -0
- package/dist/project/knowledge-base.d.ts.map +1 -0
- package/dist/worktree/index.d.ts +3 -0
- package/dist/worktree/index.d.ts.map +1 -0
- package/dist/worktree/worktree-config.d.ts +58 -0
- package/dist/worktree/worktree-config.d.ts.map +1 -0
- package/dist/worktree/worktree-manager.d.ts +96 -0
- package/dist/worktree/worktree-manager.d.ts.map +1 -0
- package/package.json +2 -2
- package/dist/modules/ai.d.ts +0 -55
- package/dist/modules/ai.d.ts.map +0 -1
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Worktree configuration types and constants.
|
|
3
|
+
* Defines the directory layout, branch naming, and cleanup policies
|
|
4
|
+
* for agent worktrees used in parallel task execution.
|
|
5
|
+
*/
|
|
6
|
+
/** Root directory for all agent worktrees, relative to project root */
|
|
7
|
+
export declare const WORKTREE_ROOT_DIR = ".locus-worktrees";
|
|
8
|
+
/** Branch prefix for agent worktrees */
|
|
9
|
+
export declare const WORKTREE_BRANCH_PREFIX = "agent";
|
|
10
|
+
/** Cleanup policy for completed worktrees */
|
|
11
|
+
export type WorktreeCleanupPolicy = "auto" | "retain-on-failure" | "manual";
|
|
12
|
+
/** Configuration for worktree management */
|
|
13
|
+
export interface WorktreeConfig {
|
|
14
|
+
/** Root directory for worktrees (default: `.locus-worktrees/`) */
|
|
15
|
+
rootDir: string;
|
|
16
|
+
/** Branch naming prefix (default: `agent`) */
|
|
17
|
+
branchPrefix: string;
|
|
18
|
+
/** Cleanup policy (default: `retain-on-failure`) */
|
|
19
|
+
cleanupPolicy: WorktreeCleanupPolicy;
|
|
20
|
+
/** Base branch to create worktrees from (default: current HEAD) */
|
|
21
|
+
baseBranch?: string;
|
|
22
|
+
}
|
|
23
|
+
/** Metadata for a single worktree */
|
|
24
|
+
export interface WorktreeInfo {
|
|
25
|
+
/** Absolute path to the worktree directory */
|
|
26
|
+
path: string;
|
|
27
|
+
/** Branch name checked out in this worktree */
|
|
28
|
+
branch: string;
|
|
29
|
+
/** HEAD commit hash */
|
|
30
|
+
head: string;
|
|
31
|
+
/** Whether this is the main worktree */
|
|
32
|
+
isMain: boolean;
|
|
33
|
+
/** Whether the worktree directory is missing (prunable) */
|
|
34
|
+
isPrunable: boolean;
|
|
35
|
+
}
|
|
36
|
+
/** Options for creating a worktree */
|
|
37
|
+
export interface CreateWorktreeOptions {
|
|
38
|
+
/** Task ID associated with this worktree */
|
|
39
|
+
taskId: string;
|
|
40
|
+
/** Task slug for branch naming */
|
|
41
|
+
taskSlug: string;
|
|
42
|
+
/** Agent ID that will use this worktree */
|
|
43
|
+
agentId: string;
|
|
44
|
+
/** Base branch to create from (defaults to config.baseBranch or current HEAD) */
|
|
45
|
+
baseBranch?: string;
|
|
46
|
+
}
|
|
47
|
+
/** Result of creating a worktree */
|
|
48
|
+
export interface CreateWorktreeResult {
|
|
49
|
+
/** Absolute path to the created worktree */
|
|
50
|
+
worktreePath: string;
|
|
51
|
+
/** Branch name created */
|
|
52
|
+
branch: string;
|
|
53
|
+
/** Base branch used to create the task branch */
|
|
54
|
+
baseBranch: string;
|
|
55
|
+
}
|
|
56
|
+
/** Default worktree configuration */
|
|
57
|
+
export declare const DEFAULT_WORKTREE_CONFIG: WorktreeConfig;
|
|
58
|
+
//# sourceMappingURL=worktree-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktree-config.d.ts","sourceRoot":"","sources":["../../src/worktree/worktree-config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,uEAAuE;AACvE,eAAO,MAAM,iBAAiB,qBAAqB,CAAC;AAEpD,wCAAwC;AACxC,eAAO,MAAM,sBAAsB,UAAU,CAAC;AAE9C,6CAA6C;AAC7C,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,mBAAmB,GAAG,QAAQ,CAAC;AAE5E,4CAA4C;AAC5C,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,aAAa,EAAE,qBAAqB,CAAC;IACrC,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qCAAqC;AACrC,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,MAAM,EAAE,OAAO,CAAC;IAChB,2DAA2D;IAC3D,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,sCAAsC;AACtC,MAAM,WAAW,qBAAqB;IACpC,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,oCAAoC;AACpC,MAAM,WAAW,oBAAoB;IACnC,4CAA4C;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qCAAqC;AACrC,eAAO,MAAM,uBAAuB,EAAE,cAIrC,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import type { LogFn } from "../ai/factory.js";
|
|
2
|
+
import { type CreateWorktreeOptions, type CreateWorktreeResult, type WorktreeConfig, type WorktreeInfo } from "./worktree-config.js";
|
|
3
|
+
/**
|
|
4
|
+
* Manages git worktrees for parallel agent execution.
|
|
5
|
+
* Each agent gets an isolated worktree with a dedicated branch,
|
|
6
|
+
* allowing multiple agents to work on different tasks without conflicts.
|
|
7
|
+
*/
|
|
8
|
+
export declare class WorktreeManager {
|
|
9
|
+
private config;
|
|
10
|
+
private projectPath;
|
|
11
|
+
private log;
|
|
12
|
+
constructor(projectPath: string, config?: Partial<WorktreeConfig>, log?: LogFn);
|
|
13
|
+
/**
|
|
14
|
+
* Get the absolute path to the worktree root directory.
|
|
15
|
+
*/
|
|
16
|
+
private get rootPath();
|
|
17
|
+
/**
|
|
18
|
+
* Build the branch name for a task.
|
|
19
|
+
* Format: `agent/<taskId>-<slug>`
|
|
20
|
+
*/
|
|
21
|
+
buildBranchName(taskId: string, taskSlug: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Create a new worktree for an agent task.
|
|
24
|
+
* Creates the branch and worktree directory.
|
|
25
|
+
*/
|
|
26
|
+
create(options: CreateWorktreeOptions): CreateWorktreeResult;
|
|
27
|
+
/**
|
|
28
|
+
* List all worktrees with metadata.
|
|
29
|
+
* Returns both the main worktree and agent worktrees.
|
|
30
|
+
*/
|
|
31
|
+
list(): WorktreeInfo[];
|
|
32
|
+
/**
|
|
33
|
+
* List only agent worktrees (excludes the main worktree).
|
|
34
|
+
*/
|
|
35
|
+
listAgentWorktrees(): WorktreeInfo[];
|
|
36
|
+
/**
|
|
37
|
+
* Remove a specific worktree by path and optionally delete its branch.
|
|
38
|
+
*/
|
|
39
|
+
remove(worktreePath: string, deleteBranch?: boolean): void;
|
|
40
|
+
/**
|
|
41
|
+
* Prune stale worktree references (directories that no longer exist).
|
|
42
|
+
*/
|
|
43
|
+
prune(): number;
|
|
44
|
+
/**
|
|
45
|
+
* Remove all agent worktrees and their branches.
|
|
46
|
+
* Does not touch the main worktree.
|
|
47
|
+
*/
|
|
48
|
+
removeAll(): number;
|
|
49
|
+
/**
|
|
50
|
+
* Check if a worktree has uncommitted changes.
|
|
51
|
+
*/
|
|
52
|
+
hasChanges(worktreePath: string): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Stage all changes and commit in a worktree.
|
|
55
|
+
* Returns the commit hash, or null if there were no changes to commit.
|
|
56
|
+
*/
|
|
57
|
+
commitChanges(worktreePath: string, message: string): string | null;
|
|
58
|
+
/**
|
|
59
|
+
* Push a worktree's branch to a remote.
|
|
60
|
+
* Returns the branch name on success, or throws on failure.
|
|
61
|
+
*/
|
|
62
|
+
pushBranch(worktreePath: string, remote?: string): string;
|
|
63
|
+
/**
|
|
64
|
+
* Get the current branch checked out in a worktree.
|
|
65
|
+
*/
|
|
66
|
+
getBranch(worktreePath: string): string;
|
|
67
|
+
/**
|
|
68
|
+
* Check if a worktree exists for a given task ID.
|
|
69
|
+
*/
|
|
70
|
+
hasWorktreeForTask(taskId: string): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Check if a branch exists locally.
|
|
73
|
+
*/
|
|
74
|
+
private branchExists;
|
|
75
|
+
/**
|
|
76
|
+
* Get the current branch of the main repository.
|
|
77
|
+
*/
|
|
78
|
+
private getCurrentBranch;
|
|
79
|
+
/**
|
|
80
|
+
* Check if a worktree path is managed by Locus.
|
|
81
|
+
*/
|
|
82
|
+
private isManagedWorktreePath;
|
|
83
|
+
private ensureDirectory;
|
|
84
|
+
private isMissingDirectoryError;
|
|
85
|
+
private cleanupFailedWorktree;
|
|
86
|
+
private isNonFastForwardPushError;
|
|
87
|
+
/**
|
|
88
|
+
* Execute a git command (string form) and return stdout.
|
|
89
|
+
*/
|
|
90
|
+
private git;
|
|
91
|
+
/**
|
|
92
|
+
* Execute a git command with array args (safe from shell injection).
|
|
93
|
+
*/
|
|
94
|
+
private gitExec;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=worktree-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktree-manager.d.ts","sourceRoot":"","sources":["../../src/worktree/worktree-manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EAEzB,KAAK,cAAc,EACnB,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAE9B;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,GAAG,CAAQ;gBAGjB,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,EAChC,GAAG,CAAC,EAAE,KAAK;IAOb;;OAEG;IACH,OAAO,KAAK,QAAQ,GAEnB;IAED;;;OAGG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAUzD;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,oBAAoB;IAmF5D;;;OAGG;IACH,IAAI,IAAI,YAAY,EAAE;IA+CtB;;OAEG;IACH,kBAAkB,IAAI,YAAY,EAAE;IAIpC;;OAEG;IACH,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,UAAO,GAAG,IAAI;IAsCvD;;OAEG;IACH,KAAK,IAAI,MAAM;IAmBf;;;OAGG;IACH,SAAS,IAAI,MAAM;IAyBnB;;OAEG;IACH,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAKzC;;;OAGG;IACH,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAcnE;;;OAGG;IACH,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,SAAW,GAAG,MAAM;IAqC3D;;OAEG;IACH,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAIvC;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAM3C;;OAEG;IACH,OAAO,CAAC,YAAY;IAYpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,qBAAqB;IA0B7B,OAAO,CAAC,yBAAyB;IASjC;;OAEG;IACH,OAAO,CAAC,GAAG;IAQX;;OAEG;IACH,OAAO,CAAC,OAAO;CAOhB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@locusai/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./src/index.ts",
|
|
6
6
|
"types": "./src/index.ts",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"clean": "rm -rf node_modules"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@locusai/shared": "^0.
|
|
33
|
+
"@locusai/shared": "^0.9.0",
|
|
34
34
|
"axios": "^1.13.2",
|
|
35
35
|
"events": "^3.3.0",
|
|
36
36
|
"globby": "^14.0.2"
|
package/dist/modules/ai.d.ts
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { ChatRequest, ChatResponse, ShareChatRequest } from "@locusai/shared";
|
|
2
|
-
import { BaseModule } from "./base.js";
|
|
3
|
-
export declare class AIModule extends BaseModule {
|
|
4
|
-
/**
|
|
5
|
-
* Send a message to the Locus AI Agent and get a response.
|
|
6
|
-
*/
|
|
7
|
-
chat(workspaceId: string, body: ChatRequest): Promise<ChatResponse>;
|
|
8
|
-
/**
|
|
9
|
-
* Detect intent of the message.
|
|
10
|
-
*/
|
|
11
|
-
detectIntent(workspaceId: string, body: ChatRequest): Promise<{
|
|
12
|
-
intent: string;
|
|
13
|
-
executionId: string;
|
|
14
|
-
sessionId: string;
|
|
15
|
-
}>;
|
|
16
|
-
/**
|
|
17
|
-
* Execute a pending intent.
|
|
18
|
-
*/
|
|
19
|
-
executeIntent(workspaceId: string, body: {
|
|
20
|
-
sessionId: string;
|
|
21
|
-
executionId: string;
|
|
22
|
-
}): Promise<ChatResponse>;
|
|
23
|
-
/**
|
|
24
|
-
* List all chat sessions for the current user in a workspace.
|
|
25
|
-
*/
|
|
26
|
-
listSessions(workspaceId: string): Promise<{
|
|
27
|
-
sessions: {
|
|
28
|
-
id: string;
|
|
29
|
-
title: string;
|
|
30
|
-
updatedAt: string;
|
|
31
|
-
}[];
|
|
32
|
-
}>;
|
|
33
|
-
/**
|
|
34
|
-
* Get an existing chat session with its history.
|
|
35
|
-
*/
|
|
36
|
-
getSession(workspaceId: string, sessionId: string): Promise<ChatResponse>;
|
|
37
|
-
/**
|
|
38
|
-
* Get a streaming chat response.
|
|
39
|
-
* Note: This is a placeholder for actual SSE implementation in the SDK.
|
|
40
|
-
*/
|
|
41
|
-
getChatStreamUrl(workspaceId: string, sessionId: string): string;
|
|
42
|
-
/**
|
|
43
|
-
* Delete a chat session.
|
|
44
|
-
*/
|
|
45
|
-
deleteSession(workspaceId: string, sessionId: string): Promise<void>;
|
|
46
|
-
/**
|
|
47
|
-
* Toggle chat session sharing.
|
|
48
|
-
*/
|
|
49
|
-
shareSession(workspaceId: string, sessionId: string, body: ShareChatRequest): Promise<void>;
|
|
50
|
-
/**
|
|
51
|
-
* Get a shared chat session (public).
|
|
52
|
-
*/
|
|
53
|
-
getSharedSession(sessionId: string): Promise<ChatResponse>;
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=ai.d.ts.map
|
package/dist/modules/ai.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../src/modules/ai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,qBAAa,QAAS,SAAQ,UAAU;IACtC;;OAEG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IASzE;;OAEG;IACG,YAAY,CAChB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAStE;;OAEG;IACG,aAAa,CACjB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAC/C,OAAO,CAAC,YAAY,CAAC;IASxB;;OAEG;IACG,YAAY,CAChB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QAAE,QAAQ,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,CAAC;IAO5E;;OAEG;IACG,UAAU,CACd,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,CAAC;IAOxB;;;OAGG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAGhE;;OAEG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1E;;OAEG;IACG,YAAY,CAChB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,IAAI,CAAC;IAIhB;;OAEG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAMjE"}
|