rivet-design 0.6.2 → 0.6.4
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/bin/rivet.js +20 -0
- package/dist/cli/resolveDefaultNodeEnv.d.ts +7 -0
- package/dist/cli/resolveDefaultNodeEnv.d.ts.map +1 -0
- package/dist/cli/resolveDefaultNodeEnv.js +18 -0
- package/dist/cli/resolveDefaultNodeEnv.js.map +1 -0
- package/dist/config/telemetry.d.ts +19 -0
- package/dist/config/telemetry.d.ts.map +1 -0
- package/dist/config/telemetry.js +27 -0
- package/dist/config/telemetry.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +127 -4
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +1 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/proxy-middleware/proxy-config.d.ts.map +1 -1
- package/dist/proxy-middleware/proxy-config.js +2 -0
- package/dist/proxy-middleware/proxy-config.js.map +1 -1
- package/dist/services/AuthService.d.ts +3 -13
- package/dist/services/AuthService.d.ts.map +1 -1
- package/dist/services/CommitMessageGenerator.d.ts +2 -1
- package/dist/services/CommitMessageGenerator.d.ts.map +1 -1
- package/dist/services/ConfigManager.d.ts +3 -2
- package/dist/services/ConfigManager.d.ts.map +1 -1
- package/dist/services/ConfigManager.js +1 -2
- package/dist/services/ConfigManager.js.map +1 -1
- package/dist/services/GatewayClient.d.ts +2 -1
- package/dist/services/GatewayClient.d.ts.map +1 -1
- package/dist/services/PRTitleGenerator.d.ts +3 -2
- package/dist/services/PRTitleGenerator.d.ts.map +1 -1
- package/dist/services/SessionBridgeService.d.ts +2 -1
- package/dist/services/SessionBridgeService.d.ts.map +1 -1
- package/dist/services/TelemetryService.d.ts +3 -1
- package/dist/services/TelemetryService.d.ts.map +1 -1
- package/dist/services/TelemetryService.js +14 -1
- package/dist/services/TelemetryService.js.map +1 -1
- package/dist/services/agent/AgentCore.d.ts.map +1 -1
- package/dist/services/agent/AgentCore.js +3 -0
- package/dist/services/agent/AgentCore.js.map +1 -1
- package/dist/services/agent/index.d.ts +0 -5
- package/dist/services/agent/index.d.ts.map +1 -1
- package/dist/services/agent/index.js +1 -5
- package/dist/services/agent/index.js.map +1 -1
- package/dist/types/style-manipulation-types.d.ts +0 -46
- package/dist/types/style-manipulation-types.d.ts.map +1 -1
- package/dist/types/style-manipulation-types.js +1 -29
- package/dist/types/style-manipulation-types.js.map +1 -1
- package/dist/types/token-types.d.ts +0 -4
- package/dist/types/token-types.d.ts.map +1 -1
- package/dist/types/token-types.js +0 -48
- package/dist/types/token-types.js.map +1 -1
- package/dist/utils/branchNames.d.ts +0 -4
- package/dist/utils/branchNames.d.ts.map +1 -1
- package/dist/utils/branchNames.js +5 -6
- package/dist/utils/branchNames.js.map +1 -1
- package/dist/utils/skillWriter.d.ts +2 -5
- package/dist/utils/skillWriter.d.ts.map +1 -1
- package/dist/utils/skillWriter.js +9 -11
- package/dist/utils/skillWriter.js.map +1 -1
- package/dist/utils/skills/claude-skill.d.ts +0 -1
- package/dist/utils/skills/claude-skill.d.ts.map +1 -1
- package/dist/utils/skills/claude-skill.js +3 -3
- package/dist/utils/skills/claude-skill.js.map +1 -1
- package/dist/utils/skills/cursor-rules.d.ts +0 -1
- package/dist/utils/skills/cursor-rules.d.ts.map +1 -1
- package/dist/utils/skills/cursor-rules.js +3 -3
- package/dist/utils/skills/cursor-rules.js.map +1 -1
- package/package.json +2 -2
- package/src/ui/dist/assets/main-B9CAJjZU.css +1 -0
- package/src/ui/dist/assets/{main-C-jd0Vb5.js → main-C4jGCSjQ.js} +136 -117
- package/src/ui/dist/index.html +2 -2
- package/dist/prompts/onboardingPrompts.d.ts +0 -3
- package/dist/prompts/onboardingPrompts.d.ts.map +0 -1
- package/dist/prompts/onboardingPrompts.js +0 -86
- package/dist/prompts/onboardingPrompts.js.map +0 -1
- package/dist/services/ProjectConfigService.d.ts +0 -44
- package/dist/services/ProjectConfigService.d.ts.map +0 -1
- package/dist/services/ProjectConfigService.js +0 -121
- package/dist/services/ProjectConfigService.js.map +0 -1
- package/dist/services/agent/OnboardingAgent.d.ts +0 -40
- package/dist/services/agent/OnboardingAgent.d.ts.map +0 -1
- package/dist/services/agent/OnboardingAgent.js +0 -138
- package/dist/services/agent/OnboardingAgent.js.map +0 -1
- package/dist/types/design-intent-types.d.ts +0 -44
- package/dist/types/design-intent-types.d.ts.map +0 -1
- package/dist/types/design-intent-types.js +0 -4
- package/dist/types/design-intent-types.js.map +0 -1
- package/dist/utils/diff.d.ts +0 -5
- package/dist/utils/diff.d.ts.map +0 -1
- package/dist/utils/diff.js +0 -28
- package/dist/utils/diff.js.map +0 -1
- package/src/ui/dist/assets/main-C4K5xMSh.css +0 -1
package/src/ui/dist/index.html
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
<link rel="icon" type="image/x-icon" href="/rivet/favicon.ico" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>Rivet - The visual editor for design</title>
|
|
8
|
-
<script type="module" crossorigin src="/rivet/assets/main-
|
|
9
|
-
<link rel="stylesheet" crossorigin href="/rivet/assets/main-
|
|
8
|
+
<script type="module" crossorigin src="/rivet/assets/main-C4jGCSjQ.js"></script>
|
|
9
|
+
<link rel="stylesheet" crossorigin href="/rivet/assets/main-B9CAJjZU.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
|
12
12
|
<div id="root"></div>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"onboardingPrompts.d.ts","sourceRoot":"","sources":["../../src/prompts/onboardingPrompts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,QAClC,MAqEkE,CAAC;AAEzE,eAAO,MAAM,yBAAyB,GAAI,aAAa,MAAM,KAAG,MAUtB,CAAC"}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.buildOnboardingUserPrompt = exports.buildOnboardingSystemPrompt = void 0;
|
|
4
|
-
const buildOnboardingSystemPrompt = () => `You are a development environment setup assistant. Your task is to analyze a project and start its frontend development server.
|
|
5
|
-
|
|
6
|
-
AVAILABLE TOOLS:
|
|
7
|
-
- Read: Read file contents
|
|
8
|
-
- Glob: Find files by pattern
|
|
9
|
-
- Bash: Run shell commands
|
|
10
|
-
|
|
11
|
-
WORKFLOW:
|
|
12
|
-
|
|
13
|
-
1. ANALYZE PROJECT
|
|
14
|
-
- Read package.json to understand the project type and scripts
|
|
15
|
-
- Check for lockfiles (package-lock.json, yarn.lock, pnpm-lock.yaml) to determine package manager
|
|
16
|
-
- Look for framework config files (vite.config.ts, next.config.js, etc.)
|
|
17
|
-
- Optionally read README.md for special setup instructions
|
|
18
|
-
|
|
19
|
-
2. CHECK PREREQUISITES
|
|
20
|
-
- Verify Node.js is installed: \`node --version\`
|
|
21
|
-
- If Node.js is not installed, STOP and report this clearly - do not proceed
|
|
22
|
-
- Verify the correct package manager is available based on lockfile
|
|
23
|
-
- Check if node_modules directory exists
|
|
24
|
-
|
|
25
|
-
3. INSTALL DEPENDENCIES (if node_modules doesn't exist or is incomplete)
|
|
26
|
-
- Run the appropriate install command:
|
|
27
|
-
- If yarn.lock exists: \`yarn install\`
|
|
28
|
-
- If pnpm-lock.yaml exists: \`pnpm install\`
|
|
29
|
-
- Otherwise: \`npm install\`
|
|
30
|
-
- Wait for completion and check for errors
|
|
31
|
-
- If install fails, report the error clearly
|
|
32
|
-
|
|
33
|
-
4. START DEV SERVER
|
|
34
|
-
- Identify the correct start script from package.json scripts:
|
|
35
|
-
- Usually "dev" for Vite/Next.js projects
|
|
36
|
-
- Sometimes "start" for CRA projects
|
|
37
|
-
- Run the command in the background so it doesn't block: \`nohup npm run dev > /dev/null 2>&1 &\`
|
|
38
|
-
- Wait a few seconds for the server to start
|
|
39
|
-
|
|
40
|
-
5. VERIFY SERVER IS RUNNING
|
|
41
|
-
- Use curl to check if server responds on common ports:
|
|
42
|
-
- \`curl -s -o /dev/null -w "%{http_code}" http://localhost:3000\`
|
|
43
|
-
- Try ports: 3000, 3001, 5173, 5174, 8080, 4200
|
|
44
|
-
- Report which port the server is running on
|
|
45
|
-
|
|
46
|
-
OUTPUT FORMAT:
|
|
47
|
-
When complete, you MUST output a JSON block on its own line with your findings:
|
|
48
|
-
\`\`\`json
|
|
49
|
-
{
|
|
50
|
-
"success": true,
|
|
51
|
-
"startCommand": "npm run dev",
|
|
52
|
-
"installCommand": "npm install",
|
|
53
|
-
"detectedPort": 3000,
|
|
54
|
-
"framework": "vite"
|
|
55
|
-
}
|
|
56
|
-
\`\`\`
|
|
57
|
-
|
|
58
|
-
If something goes wrong:
|
|
59
|
-
\`\`\`json
|
|
60
|
-
{
|
|
61
|
-
"success": false,
|
|
62
|
-
"error": "Node.js is not installed",
|
|
63
|
-
"startCommand": "",
|
|
64
|
-
"detectedPort": 0
|
|
65
|
-
}
|
|
66
|
-
\`\`\`
|
|
67
|
-
|
|
68
|
-
IMPORTANT RULES:
|
|
69
|
-
- If Node.js is not installed, stop immediately and report this
|
|
70
|
-
- If you encounter errors during install, explain what went wrong
|
|
71
|
-
- Always verify the server is actually running before reporting success
|
|
72
|
-
- The dev server command MUST be backgrounded so it doesn't block
|
|
73
|
-
- Be explicit about which package manager and start script you're using`;
|
|
74
|
-
exports.buildOnboardingSystemPrompt = buildOnboardingSystemPrompt;
|
|
75
|
-
const buildOnboardingUserPrompt = (projectPath) => `Please analyze the project at ${projectPath} and start its frontend development server.
|
|
76
|
-
|
|
77
|
-
Follow the workflow in your instructions:
|
|
78
|
-
1. Read package.json and identify the framework/package manager
|
|
79
|
-
2. Check if Node.js and the package manager are available
|
|
80
|
-
3. Install dependencies if needed
|
|
81
|
-
4. Start the dev server in the background
|
|
82
|
-
5. Verify it's running and report the port
|
|
83
|
-
|
|
84
|
-
Output your final result as a JSON block.`;
|
|
85
|
-
exports.buildOnboardingUserPrompt = buildOnboardingUserPrompt;
|
|
86
|
-
//# sourceMappingURL=onboardingPrompts.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"onboardingPrompts.js","sourceRoot":"","sources":["../../src/prompts/onboardingPrompts.ts"],"names":[],"mappings":";;;AAAO,MAAM,2BAA2B,GACtC,GAAW,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wEAqEwD,CAAC;AAtE5D,QAAA,2BAA2B,+BAsEiC;AAElE,MAAM,yBAAyB,GAAG,CAAC,WAAmB,EAAU,EAAE,CACvE,iCAAiC,WAAW;;;;;;;;;0CASJ,CAAC;AAV9B,QAAA,yBAAyB,6BAUK"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
export type ProjectConfig = {
|
|
2
|
-
startCommand: string;
|
|
3
|
-
installCommand?: string;
|
|
4
|
-
devServerPort: number;
|
|
5
|
-
framework: string;
|
|
6
|
-
lastUsed: string;
|
|
7
|
-
};
|
|
8
|
-
/**
|
|
9
|
-
* Persists project-specific configurations to ~/.rivet/projects.json.
|
|
10
|
-
* Used to cache dev server start commands so we don't need to re-detect on subsequent runs.
|
|
11
|
-
*/
|
|
12
|
-
export declare class ProjectConfigService {
|
|
13
|
-
private configDir;
|
|
14
|
-
private configPath;
|
|
15
|
-
constructor();
|
|
16
|
-
/**
|
|
17
|
-
* Get cached config for a project path
|
|
18
|
-
*/
|
|
19
|
-
getProjectConfig(projectPath: string): Promise<ProjectConfig | null>;
|
|
20
|
-
/**
|
|
21
|
-
* Save config for a project path
|
|
22
|
-
*/
|
|
23
|
-
saveProjectConfig(projectPath: string, config: ProjectConfig): Promise<void>;
|
|
24
|
-
/**
|
|
25
|
-
* Clear cached config for a project path
|
|
26
|
-
*/
|
|
27
|
-
clearProjectConfig(projectPath: string): Promise<void>;
|
|
28
|
-
/**
|
|
29
|
-
* List all cached project configs
|
|
30
|
-
*/
|
|
31
|
-
listProjects(): Promise<Array<{
|
|
32
|
-
path: string;
|
|
33
|
-
config: ProjectConfig;
|
|
34
|
-
}>>;
|
|
35
|
-
/**
|
|
36
|
-
* Read configs from disk
|
|
37
|
-
*/
|
|
38
|
-
private readConfigs;
|
|
39
|
-
/**
|
|
40
|
-
* Write configs to disk
|
|
41
|
-
*/
|
|
42
|
-
private writeConfigs;
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=ProjectConfigService.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectConfigService.d.ts","sourceRoot":"","sources":["../../src/services/ProjectConfigService.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,aAAa,GAAG;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAMF;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;;IAO3B;;OAEG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAW1E;;OAEG;IACG,iBAAiB,CACrB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC;IAkBhB;;OAEG;IACG,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB5D;;OAEG;IACG,YAAY,IAAI,OAAO,CAC3B,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,aAAa,CAAA;KAAE,CAAC,CAC/C;IAaD;;OAEG;YACW,WAAW;IAczB;;OAEG;YACW,YAAY;CAW3B"}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ProjectConfigService = void 0;
|
|
7
|
-
const fs_1 = __importDefault(require("fs"));
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
|
-
const os_1 = __importDefault(require("os"));
|
|
10
|
-
const logger_1 = require("../utils/logger");
|
|
11
|
-
const log = (0, logger_1.createLogger)('ProjectConfigService');
|
|
12
|
-
/**
|
|
13
|
-
* Persists project-specific configurations to ~/.rivet/projects.json.
|
|
14
|
-
* Used to cache dev server start commands so we don't need to re-detect on subsequent runs.
|
|
15
|
-
*/
|
|
16
|
-
class ProjectConfigService {
|
|
17
|
-
configDir;
|
|
18
|
-
configPath;
|
|
19
|
-
constructor() {
|
|
20
|
-
this.configDir = path_1.default.join(os_1.default.homedir(), '.rivet');
|
|
21
|
-
this.configPath = path_1.default.join(this.configDir, 'projects.json');
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Get cached config for a project path
|
|
25
|
-
*/
|
|
26
|
-
async getProjectConfig(projectPath) {
|
|
27
|
-
try {
|
|
28
|
-
const configs = await this.readConfigs();
|
|
29
|
-
const normalizedPath = path_1.default.resolve(projectPath);
|
|
30
|
-
return configs[normalizedPath] || null;
|
|
31
|
-
}
|
|
32
|
-
catch (error) {
|
|
33
|
-
log.warn('Failed to read project config:', error);
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Save config for a project path
|
|
39
|
-
*/
|
|
40
|
-
async saveProjectConfig(projectPath, config) {
|
|
41
|
-
try {
|
|
42
|
-
const configs = await this.readConfigs();
|
|
43
|
-
const normalizedPath = path_1.default.resolve(projectPath);
|
|
44
|
-
configs[normalizedPath] = {
|
|
45
|
-
...config,
|
|
46
|
-
lastUsed: new Date().toISOString(),
|
|
47
|
-
};
|
|
48
|
-
await this.writeConfigs(configs);
|
|
49
|
-
log.info(`Saved project config for: ${normalizedPath}`);
|
|
50
|
-
}
|
|
51
|
-
catch (error) {
|
|
52
|
-
log.error('Failed to save project config:', error);
|
|
53
|
-
throw error;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Clear cached config for a project path
|
|
58
|
-
*/
|
|
59
|
-
async clearProjectConfig(projectPath) {
|
|
60
|
-
try {
|
|
61
|
-
const configs = await this.readConfigs();
|
|
62
|
-
const normalizedPath = path_1.default.resolve(projectPath);
|
|
63
|
-
if (configs[normalizedPath]) {
|
|
64
|
-
delete configs[normalizedPath];
|
|
65
|
-
await this.writeConfigs(configs);
|
|
66
|
-
log.info(`Cleared project config for: ${normalizedPath}`);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
catch (error) {
|
|
70
|
-
log.error('Failed to clear project config:', error);
|
|
71
|
-
throw error;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* List all cached project configs
|
|
76
|
-
*/
|
|
77
|
-
async listProjects() {
|
|
78
|
-
try {
|
|
79
|
-
const configs = await this.readConfigs();
|
|
80
|
-
return Object.entries(configs).map(([projectPath, config]) => ({
|
|
81
|
-
path: projectPath,
|
|
82
|
-
config,
|
|
83
|
-
}));
|
|
84
|
-
}
|
|
85
|
-
catch (error) {
|
|
86
|
-
log.warn('Failed to list projects:', error);
|
|
87
|
-
return [];
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Read configs from disk
|
|
92
|
-
*/
|
|
93
|
-
async readConfigs() {
|
|
94
|
-
try {
|
|
95
|
-
if (!fs_1.default.existsSync(this.configPath)) {
|
|
96
|
-
return {};
|
|
97
|
-
}
|
|
98
|
-
const content = fs_1.default.readFileSync(this.configPath, 'utf-8');
|
|
99
|
-
return JSON.parse(content);
|
|
100
|
-
}
|
|
101
|
-
catch (error) {
|
|
102
|
-
log.warn('Failed to parse projects.json, returning empty config:', error);
|
|
103
|
-
return {};
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Write configs to disk
|
|
108
|
-
*/
|
|
109
|
-
async writeConfigs(configs) {
|
|
110
|
-
// Ensure config directory exists
|
|
111
|
-
if (!fs_1.default.existsSync(this.configDir)) {
|
|
112
|
-
fs_1.default.mkdirSync(this.configDir, { recursive: true, mode: 0o700 });
|
|
113
|
-
}
|
|
114
|
-
// Write with restrictive permissions
|
|
115
|
-
fs_1.default.writeFileSync(this.configPath, JSON.stringify(configs, null, 2), {
|
|
116
|
-
mode: 0o600,
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
exports.ProjectConfigService = ProjectConfigService;
|
|
121
|
-
//# sourceMappingURL=ProjectConfigService.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectConfigService.js","sourceRoot":"","sources":["../../src/services/ProjectConfigService.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AACpB,4CAA+C;AAE/C,MAAM,GAAG,GAAG,IAAA,qBAAY,EAAC,sBAAsB,CAAC,CAAC;AAcjD;;;GAGG;AACH,MAAa,oBAAoB;IACvB,SAAS,CAAS;IAClB,UAAU,CAAS;IAE3B;QACE,IAAI,CAAC,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,WAAmB;QACxC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,cAAc,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACjD,OAAO,OAAO,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CACrB,WAAmB,EACnB,MAAqB;QAErB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,cAAc,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAEjD,OAAO,CAAC,cAAc,CAAC,GAAG;gBACxB,GAAG,MAAM;gBACT,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACnC,CAAC;YAEF,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACjC,GAAG,CAAC,IAAI,CAAC,6BAA6B,cAAc,EAAE,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YACnD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,WAAmB;QAC1C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,cAAc,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAEjD,IAAI,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC5B,OAAO,OAAO,CAAC,cAAc,CAAC,CAAC;gBAC/B,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBACjC,GAAG,CAAC,IAAI,CAAC,+BAA+B,cAAc,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YACpD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QAGhB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YACzC,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7D,IAAI,EAAE,WAAW;gBACjB,MAAM;aACP,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YAC5C,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW;QACvB,IAAI,CAAC;YACH,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpC,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAmB,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,wDAAwD,EAAE,KAAK,CAAC,CAAC;YAC1E,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CAAC,OAAuB;QAChD,iCAAiC;QACjC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,YAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,qCAAqC;QACrC,YAAE,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;YAClE,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;CACF;AAnHD,oDAmHC"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { AgentProgressEvent } from './AgentCore';
|
|
2
|
-
export type OnboardingResult = {
|
|
3
|
-
success: boolean;
|
|
4
|
-
devServerPort: number;
|
|
5
|
-
startCommand: string;
|
|
6
|
-
installCommand?: string;
|
|
7
|
-
framework?: string;
|
|
8
|
-
error?: string;
|
|
9
|
-
};
|
|
10
|
-
/**
|
|
11
|
-
* Agent that analyzes a project and starts its dev server.
|
|
12
|
-
* Uses AgentCore for shared infrastructure.
|
|
13
|
-
*/
|
|
14
|
-
export declare class OnboardingAgent {
|
|
15
|
-
private core;
|
|
16
|
-
private projectPath;
|
|
17
|
-
private configService;
|
|
18
|
-
private abortController;
|
|
19
|
-
constructor(projectPath: string);
|
|
20
|
-
/**
|
|
21
|
-
* Cancel the running agent execution
|
|
22
|
-
*/
|
|
23
|
-
cancel(): void;
|
|
24
|
-
/**
|
|
25
|
-
* Execute the onboarding agent with streaming output.
|
|
26
|
-
* Analyzes the project, installs deps if needed, starts dev server.
|
|
27
|
-
*
|
|
28
|
-
* @effect Streams progress events via onProgress callback
|
|
29
|
-
* @effect May install dependencies and start dev server
|
|
30
|
-
* @effect Saves config to ~/.rivet/projects.json on success
|
|
31
|
-
*/
|
|
32
|
-
execute(onProgress: (event: AgentProgressEvent) => void): Promise<OnboardingResult>;
|
|
33
|
-
private buildSystemPrompt;
|
|
34
|
-
private buildUserPrompt;
|
|
35
|
-
/**
|
|
36
|
-
* Parse the JSON result block from agent reasoning
|
|
37
|
-
*/
|
|
38
|
-
private parseAgentResult;
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=OnboardingAgent.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OnboardingAgent.d.ts","sourceRoot":"","sources":["../../../src/services/agent/OnboardingAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAU5D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,IAAI,CAAY;IACxB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,eAAe,CAAgC;gBAE3C,WAAW,EAAE,MAAM;IAM/B;;OAEG;IACH,MAAM,IAAI,IAAI;IAQd;;;;;;;OAOG;IACG,OAAO,CACX,UAAU,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,GAC9C,OAAO,CAAC,gBAAgB,CAAC;IAkE5B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAgCzB"}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OnboardingAgent = void 0;
|
|
4
|
-
const AgentCore_1 = require("./AgentCore");
|
|
5
|
-
const ProjectConfigService_1 = require("../ProjectConfigService");
|
|
6
|
-
const logger_1 = require("../../utils/logger");
|
|
7
|
-
const onboardingPrompts_1 = require("../../prompts/onboardingPrompts");
|
|
8
|
-
const log = (0, logger_1.createLogger)('OnboardingAgent');
|
|
9
|
-
/**
|
|
10
|
-
* Agent that analyzes a project and starts its dev server.
|
|
11
|
-
* Uses AgentCore for shared infrastructure.
|
|
12
|
-
*/
|
|
13
|
-
class OnboardingAgent {
|
|
14
|
-
core;
|
|
15
|
-
projectPath;
|
|
16
|
-
configService;
|
|
17
|
-
abortController = null;
|
|
18
|
-
constructor(projectPath) {
|
|
19
|
-
this.core = new AgentCore_1.AgentCore();
|
|
20
|
-
this.projectPath = projectPath;
|
|
21
|
-
this.configService = new ProjectConfigService_1.ProjectConfigService();
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Cancel the running agent execution
|
|
25
|
-
*/
|
|
26
|
-
cancel() {
|
|
27
|
-
if (this.abortController) {
|
|
28
|
-
log.info('Cancelling onboarding agent');
|
|
29
|
-
this.abortController.abort();
|
|
30
|
-
this.abortController = null;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Execute the onboarding agent with streaming output.
|
|
35
|
-
* Analyzes the project, installs deps if needed, starts dev server.
|
|
36
|
-
*
|
|
37
|
-
* @effect Streams progress events via onProgress callback
|
|
38
|
-
* @effect May install dependencies and start dev server
|
|
39
|
-
* @effect Saves config to ~/.rivet/projects.json on success
|
|
40
|
-
*/
|
|
41
|
-
async execute(onProgress) {
|
|
42
|
-
log.info(`Starting onboarding for project: ${this.projectPath}`);
|
|
43
|
-
// Create abort controller for this execution
|
|
44
|
-
this.abortController = new AbortController();
|
|
45
|
-
try {
|
|
46
|
-
const result = await this.core.execute({
|
|
47
|
-
systemPrompt: this.buildSystemPrompt(),
|
|
48
|
-
userPrompt: this.buildUserPrompt(),
|
|
49
|
-
allowedTools: ['Read', 'Glob', 'Bash'],
|
|
50
|
-
permissionMode: 'bypassPermissions', // Need to run install/start commands
|
|
51
|
-
cwd: this.projectPath,
|
|
52
|
-
onProgress,
|
|
53
|
-
abortController: this.abortController,
|
|
54
|
-
});
|
|
55
|
-
// Parse the structured result from agent reasoning
|
|
56
|
-
const onboardingResult = this.parseAgentResult(result.reasoning);
|
|
57
|
-
// Cache the config on success
|
|
58
|
-
if (onboardingResult.success) {
|
|
59
|
-
await this.configService.saveProjectConfig(this.projectPath, {
|
|
60
|
-
startCommand: onboardingResult.startCommand,
|
|
61
|
-
installCommand: onboardingResult.installCommand,
|
|
62
|
-
devServerPort: onboardingResult.devServerPort,
|
|
63
|
-
framework: onboardingResult.framework || 'unknown',
|
|
64
|
-
lastUsed: new Date().toISOString(),
|
|
65
|
-
});
|
|
66
|
-
log.info(`Onboarding complete. Server running on port ${onboardingResult.devServerPort}`);
|
|
67
|
-
}
|
|
68
|
-
onProgress({ type: 'complete' });
|
|
69
|
-
return onboardingResult;
|
|
70
|
-
}
|
|
71
|
-
catch (error) {
|
|
72
|
-
const errorMsg = error instanceof Error ? error.message : 'Unknown error';
|
|
73
|
-
log.error('Onboarding failed:', errorMsg);
|
|
74
|
-
// Detect auth-related errors and provide better guidance
|
|
75
|
-
let userFacingError = errorMsg;
|
|
76
|
-
if (errorMsg.includes('403') || errorMsg.includes('Forbidden')) {
|
|
77
|
-
userFacingError =
|
|
78
|
-
'Authentication failed (403). Please sign out and sign back in, then try again.';
|
|
79
|
-
}
|
|
80
|
-
else if (errorMsg.includes('401') ||
|
|
81
|
-
errorMsg.includes('Unauthorized')) {
|
|
82
|
-
userFacingError =
|
|
83
|
-
'Authentication expired. Please sign out and sign back in, then try again.';
|
|
84
|
-
}
|
|
85
|
-
else if (errorMsg.includes('Not authenticated')) {
|
|
86
|
-
userFacingError = 'Not authenticated. Please sign in to continue.';
|
|
87
|
-
}
|
|
88
|
-
onProgress({ type: 'error', error: userFacingError });
|
|
89
|
-
return {
|
|
90
|
-
success: false,
|
|
91
|
-
devServerPort: 0,
|
|
92
|
-
startCommand: '',
|
|
93
|
-
error: userFacingError,
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
buildSystemPrompt() {
|
|
98
|
-
return (0, onboardingPrompts_1.buildOnboardingSystemPrompt)();
|
|
99
|
-
}
|
|
100
|
-
buildUserPrompt() {
|
|
101
|
-
return (0, onboardingPrompts_1.buildOnboardingUserPrompt)(this.projectPath);
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Parse the JSON result block from agent reasoning
|
|
105
|
-
*/
|
|
106
|
-
parseAgentResult(reasoning) {
|
|
107
|
-
const fullText = reasoning.join('\n');
|
|
108
|
-
// Look for JSON block in the output
|
|
109
|
-
const jsonMatch = fullText.match(/```json\s*([\s\S]*?)\s*```/);
|
|
110
|
-
if (jsonMatch) {
|
|
111
|
-
try {
|
|
112
|
-
const parsed = JSON.parse(jsonMatch[1]);
|
|
113
|
-
return {
|
|
114
|
-
success: parsed.success ?? false,
|
|
115
|
-
devServerPort: parsed.detectedPort ?? 0,
|
|
116
|
-
startCommand: parsed.startCommand ?? '',
|
|
117
|
-
installCommand: parsed.installCommand,
|
|
118
|
-
framework: parsed.framework,
|
|
119
|
-
error: parsed.error,
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
catch (e) {
|
|
123
|
-
log.warn('Failed to parse JSON result:', e);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
// Fallback: try to extract info from plain text
|
|
127
|
-
const portMatch = fullText.match(/port[:\s]+(\d{2,5})/i);
|
|
128
|
-
const commandMatch = fullText.match(/(?:npm|yarn|pnpm)\s+run\s+\w+/i);
|
|
129
|
-
return {
|
|
130
|
-
success: portMatch !== null,
|
|
131
|
-
devServerPort: portMatch ? parseInt(portMatch[1], 10) : 0,
|
|
132
|
-
startCommand: commandMatch ? commandMatch[0] : '',
|
|
133
|
-
error: portMatch ? undefined : 'Could not determine server status',
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
exports.OnboardingAgent = OnboardingAgent;
|
|
138
|
-
//# sourceMappingURL=OnboardingAgent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OnboardingAgent.js","sourceRoot":"","sources":["../../../src/services/agent/OnboardingAgent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import type { FileMatch } from './change-types';
|
|
2
|
-
/**
|
|
3
|
-
* Serializable style change for MCP payload
|
|
4
|
-
* Captures a single CSS property change on an element
|
|
5
|
-
*/
|
|
6
|
-
export interface SerializedStyleChange {
|
|
7
|
-
element: ElementSummary;
|
|
8
|
-
property: string;
|
|
9
|
-
oldValue: string;
|
|
10
|
-
newValue: string;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Serializable text change for MCP payload
|
|
14
|
-
* Captures a text content change on an element
|
|
15
|
-
*/
|
|
16
|
-
export interface SerializedTextChange {
|
|
17
|
-
element: ElementSummary;
|
|
18
|
-
oldText: string;
|
|
19
|
-
newText: string;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Minimal element context for Claude Code to locate and modify source files
|
|
23
|
-
* Strips DOM-specific fields (boundingRect, innerHTML) that aren't useful for code translation
|
|
24
|
-
*/
|
|
25
|
-
export interface ElementSummary {
|
|
26
|
-
xpath: string;
|
|
27
|
-
tagName: string;
|
|
28
|
-
className: string;
|
|
29
|
-
id: string;
|
|
30
|
-
textContent: string;
|
|
31
|
-
filePaths?: FileMatch[];
|
|
32
|
-
computedStyles?: Record<string, string>;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Structured design intent payload sent from Rivet UI to Claude Code via MCP
|
|
36
|
-
* Contains all data needed to translate visual changes into source code edits
|
|
37
|
-
*/
|
|
38
|
-
export interface DesignIntent {
|
|
39
|
-
styleChanges: SerializedStyleChange[];
|
|
40
|
-
textChanges: SerializedTextChange[];
|
|
41
|
-
sourceFiles: string[];
|
|
42
|
-
instruction: string;
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=design-intent-types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"design-intent-types.d.ts","sourceRoot":"","sources":["../../src/types/design-intent-types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,cAAc,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,qBAAqB,EAAE,CAAC;IACtC,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"design-intent-types.js","sourceRoot":"","sources":["../../src/types/design-intent-types.ts"],"names":[],"mappings":";AAAA,yEAAyE"}
|
package/dist/utils/diff.d.ts
DELETED
package/dist/utils/diff.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/utils/diff.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,UAAU,MAAM,EAChB,UAAU,MAAM,KACf,MAqBF,CAAC"}
|
package/dist/utils/diff.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateSimpleDiff = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Simple line-by-line diff generator for tracking file changes
|
|
6
|
-
*/
|
|
7
|
-
const generateSimpleDiff = (original, modified) => {
|
|
8
|
-
if (original === modified)
|
|
9
|
-
return 'No changes';
|
|
10
|
-
const originalLines = original.split('\n');
|
|
11
|
-
const modifiedLines = modified.split('\n');
|
|
12
|
-
// Simple line-by-line diff (could be enhanced with proper diff library later)
|
|
13
|
-
const maxLines = Math.max(originalLines.length, modifiedLines.length);
|
|
14
|
-
const diffLines = [];
|
|
15
|
-
for (let i = 0; i < maxLines; i++) {
|
|
16
|
-
const origLine = originalLines[i] || '';
|
|
17
|
-
const modLine = modifiedLines[i] || '';
|
|
18
|
-
if (origLine !== modLine) {
|
|
19
|
-
if (origLine)
|
|
20
|
-
diffLines.push(`- ${origLine}`);
|
|
21
|
-
if (modLine)
|
|
22
|
-
diffLines.push(`+ ${modLine}`);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return diffLines.length > 0 ? diffLines.join('\n') : 'Content modified';
|
|
26
|
-
};
|
|
27
|
-
exports.generateSimpleDiff = generateSimpleDiff;
|
|
28
|
-
//# sourceMappingURL=diff.js.map
|
package/dist/utils/diff.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/utils/diff.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACI,MAAM,kBAAkB,GAAG,CAChC,QAAgB,EAChB,QAAgB,EACR,EAAE;IACV,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC;IAE/C,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE3C,8EAA8E;IAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,EAAE,CAAC;IAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAEvC,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,IAAI,QAAQ;gBAAE,SAAS,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;YAC9C,IAAI,OAAO;gBAAE,SAAS,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;AAC1E,CAAC,CAAC;AAxBW,QAAA,kBAAkB,sBAwB7B"}
|