rivet-design 0.9.2 → 0.9.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/dist/mcp/agent-variants/SessionStore.d.ts +78 -2
- package/dist/mcp/agent-variants/SessionStore.d.ts.map +1 -1
- package/dist/mcp/agent-variants/SessionStore.js +464 -62
- package/dist/mcp/agent-variants/SessionStore.js.map +1 -1
- package/dist/mcp/agent-variants/WorktreeOrchestrator.d.ts +331 -9
- package/dist/mcp/agent-variants/WorktreeOrchestrator.d.ts.map +1 -1
- package/dist/mcp/agent-variants/WorktreeOrchestrator.js +1985 -61
- package/dist/mcp/agent-variants/WorktreeOrchestrator.js.map +1 -1
- package/dist/mcp/agent-variants/WorktreeOrchestrator.testHelpers.d.ts +65 -0
- package/dist/mcp/agent-variants/WorktreeOrchestrator.testHelpers.d.ts.map +1 -0
- package/dist/mcp/agent-variants/WorktreeOrchestrator.testHelpers.js +162 -0
- package/dist/mcp/agent-variants/WorktreeOrchestrator.testHelpers.js.map +1 -0
- package/dist/mcp/agent-variants/contracts.d.ts +2508 -10
- package/dist/mcp/agent-variants/contracts.d.ts.map +1 -1
- package/dist/mcp/agent-variants/contracts.js +295 -5
- package/dist/mcp/agent-variants/contracts.js.map +1 -1
- package/dist/mcp/agent-variants/createProjectArtifacts.d.ts +78 -0
- package/dist/mcp/agent-variants/createProjectArtifacts.d.ts.map +1 -0
- package/dist/mcp/agent-variants/createProjectArtifacts.js +123 -0
- package/dist/mcp/agent-variants/createProjectArtifacts.js.map +1 -0
- package/dist/mcp/agent-variants/createZeroToOneTool.d.ts +241 -0
- package/dist/mcp/agent-variants/createZeroToOneTool.d.ts.map +1 -0
- package/dist/mcp/agent-variants/createZeroToOneTool.js +213 -0
- package/dist/mcp/agent-variants/createZeroToOneTool.js.map +1 -0
- package/dist/mcp/agent-variants/designContextStore.d.ts +160 -0
- package/dist/mcp/agent-variants/designContextStore.d.ts.map +1 -0
- package/dist/mcp/agent-variants/designContextStore.js +295 -0
- package/dist/mcp/agent-variants/designContextStore.js.map +1 -0
- package/dist/mcp/agent-variants/elementRefToTarget.d.ts +21 -0
- package/dist/mcp/agent-variants/elementRefToTarget.d.ts.map +1 -0
- package/dist/mcp/agent-variants/elementRefToTarget.js +47 -0
- package/dist/mcp/agent-variants/elementRefToTarget.js.map +1 -0
- package/dist/mcp/agent-variants/errors.d.ts +1 -1
- package/dist/mcp/agent-variants/errors.d.ts.map +1 -1
- package/dist/mcp/agent-variants/errors.js +7 -0
- package/dist/mcp/agent-variants/errors.js.map +1 -1
- package/dist/mcp/agent-variants/index.d.ts +4 -2
- package/dist/mcp/agent-variants/index.d.ts.map +1 -1
- package/dist/mcp/agent-variants/index.js +7 -1
- package/dist/mcp/agent-variants/index.js.map +1 -1
- package/dist/mcp/agent-variants/inspirationDesignContext.d.ts +440 -0
- package/dist/mcp/agent-variants/inspirationDesignContext.d.ts.map +1 -0
- package/dist/mcp/agent-variants/inspirationDesignContext.js +2467 -0
- package/dist/mcp/agent-variants/inspirationDesignContext.js.map +1 -0
- package/dist/mcp/agent-variants/pendingChangesAdapter.d.ts.map +1 -1
- package/dist/mcp/agent-variants/pendingChangesAdapter.js +21 -7
- package/dist/mcp/agent-variants/pendingChangesAdapter.js.map +1 -1
- package/dist/mcp/agent-variants/previewQa.d.ts +61 -0
- package/dist/mcp/agent-variants/previewQa.d.ts.map +1 -0
- package/dist/mcp/agent-variants/previewQa.js +374 -0
- package/dist/mcp/agent-variants/previewQa.js.map +1 -0
- package/dist/mcp/agent-variants/sourceContext.d.ts +8 -0
- package/dist/mcp/agent-variants/sourceContext.d.ts.map +1 -0
- package/dist/mcp/agent-variants/sourceContext.js +183 -0
- package/dist/mcp/agent-variants/sourceContext.js.map +1 -0
- package/dist/mcp/agent-variants/tools.d.ts +36 -0
- package/dist/mcp/agent-variants/tools.d.ts.map +1 -1
- package/dist/mcp/agent-variants/tools.js +451 -19
- package/dist/mcp/agent-variants/tools.js.map +1 -1
- package/dist/mcp/changeBatchClassification.d.ts +30 -0
- package/dist/mcp/changeBatchClassification.d.ts.map +1 -0
- package/dist/mcp/changeBatchClassification.js +65 -0
- package/dist/mcp/changeBatchClassification.js.map +1 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +258 -41
- package/dist/mcp/server.js.map +1 -1
- package/dist/prompts/agentModPrompts.js +4 -4
- package/dist/prompts/agentModPrompts.js.map +1 -1
- package/dist/proxy-middleware/proxy-config.d.ts.map +1 -1
- package/dist/proxy-middleware/proxy-config.js +1 -15
- package/dist/proxy-middleware/proxy-config.js.map +1 -1
- package/dist/routes/agentVariants.d.ts +3 -1
- package/dist/routes/agentVariants.d.ts.map +1 -1
- package/dist/routes/agentVariants.js +138 -13
- package/dist/routes/agentVariants.js.map +1 -1
- package/dist/routes/mcp.d.ts +7 -1
- package/dist/routes/mcp.d.ts.map +1 -1
- package/dist/routes/mcp.js +139 -16
- package/dist/routes/mcp.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +23 -5
- package/dist/server.js.map +1 -1
- package/dist/services/ProjectDetectionService.d.ts.map +1 -1
- package/dist/services/ProjectDetectionService.js +9 -0
- package/dist/services/ProjectDetectionService.js.map +1 -1
- package/dist/services/SessionBridgeService.d.ts +22 -0
- package/dist/services/SessionBridgeService.d.ts.map +1 -1
- package/dist/services/SessionBridgeService.js +61 -0
- package/dist/services/SessionBridgeService.js.map +1 -1
- package/dist/services/TelemetryService.d.ts +121 -0
- package/dist/services/TelemetryService.d.ts.map +1 -1
- package/dist/services/TelemetryService.js +155 -0
- package/dist/services/TelemetryService.js.map +1 -1
- package/dist/services/WorktreeManager.d.ts +116 -6
- package/dist/services/WorktreeManager.d.ts.map +1 -1
- package/dist/services/WorktreeManager.js +394 -19
- package/dist/services/WorktreeManager.js.map +1 -1
- package/dist/services/agent/AgentModService.js +6 -6
- package/dist/services/agent/AgentModService.js.map +1 -1
- package/dist/services/templates/designCatalog.d.ts +27 -0
- package/dist/services/templates/designCatalog.d.ts.map +1 -0
- package/dist/services/templates/designCatalog.js +141 -0
- package/dist/services/templates/designCatalog.js.map +1 -0
- package/dist/services/templates/designmd/airbnb.md +545 -0
- package/dist/services/templates/designmd/airtable.md +554 -0
- package/dist/services/templates/designmd/apple.md +562 -0
- package/dist/services/templates/designmd/binance.md +634 -0
- package/dist/services/templates/designmd/bmw-m.md +503 -0
- package/dist/services/templates/designmd/bmw.md +544 -0
- package/dist/services/templates/designmd/bugatti.md +454 -0
- package/dist/services/templates/designmd/cal.md +542 -0
- package/dist/services/templates/designmd/claude.md +589 -0
- package/dist/services/templates/designmd/clay.md +541 -0
- package/dist/services/templates/designmd/cohere.md +451 -0
- package/dist/services/templates/designmd/cursor.md +537 -0
- package/dist/services/templates/designmd/expo.md +526 -0
- package/dist/services/templates/designmd/figma.md +578 -0
- package/dist/services/templates/designmd/framer.md +544 -0
- package/dist/services/templates/designmd/hp.md +670 -0
- package/dist/services/templates/designmd/linear.app.md +548 -0
- package/dist/services/templates/designmd/mintlify.md +852 -0
- package/dist/services/templates/designmd/miro.md +825 -0
- package/dist/services/templates/designmd/notion.md +821 -0
- package/dist/services/templates/designmd/raycast.md +669 -0
- package/dist/services/templates/designmd/resend.md +585 -0
- package/dist/services/templates/designmd/sentry.md +262 -0
- package/dist/services/templates/designmd/shopify.md +350 -0
- package/dist/services/templates/designmd/spotify.md +246 -0
- package/dist/services/templates/designmd/stripe.md +322 -0
- package/dist/services/templates/designmd/supabase.md +255 -0
- package/dist/services/templates/designmd/superhuman.md +252 -0
- package/dist/services/templates/designmd/uber.md +295 -0
- package/dist/services/templates/designmd/vercel.md +310 -0
- package/dist/services/templates/viteReactTs.d.ts +48 -0
- package/dist/services/templates/viteReactTs.d.ts.map +1 -0
- package/dist/services/templates/viteReactTs.js +274 -0
- package/dist/services/templates/viteReactTs.js.map +1 -0
- package/dist/types/change-request-types.d.ts +29 -3
- package/dist/types/change-request-types.d.ts.map +1 -1
- package/dist/utils/skills/claude-skill.d.ts +2 -2
- package/dist/utils/skills/claude-skill.d.ts.map +1 -1
- package/dist/utils/skills/claude-skill.js +19 -98
- package/dist/utils/skills/claude-skill.js.map +1 -1
- package/dist/utils/skills/cursor-rules.d.ts +2 -2
- package/dist/utils/skills/cursor-rules.d.ts.map +1 -1
- package/dist/utils/skills/cursor-rules.js +15 -80
- package/dist/utils/skills/cursor-rules.js.map +1 -1
- package/dist/utils/skills/shared-variants-protocol.d.ts +23 -0
- package/dist/utils/skills/shared-variants-protocol.d.ts.map +1 -0
- package/dist/utils/skills/shared-variants-protocol.js +130 -0
- package/dist/utils/skills/shared-variants-protocol.js.map +1 -0
- package/package.json +6 -6
- package/src/ui/dist/assets/main-CpX7fB64.js +382 -0
- package/src/ui/dist/assets/main-Qqe2_oMT.css +1 -0
- package/src/ui/dist/index.html +2 -2
- package/src/ui/dist/assets/main-AsPCtLsx.js +0 -382
- package/src/ui/dist/assets/main-BzmseUDd.css +0 -1
|
@@ -3,32 +3,61 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.pruneWorktrees = exports.cleanupOrphanedWorktrees = exports.WorktreeManager = void 0;
|
|
6
|
+
exports.pruneWorktrees = exports.cleanupOrphanedWorktrees = exports.registerFreshWorktreeRoot = exports.WorktreeManager = exports.INSTANCE_PREFIX = exports.FRESH_WORKTREES_DIRNAME = void 0;
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const os_1 = __importDefault(require("os"));
|
|
8
9
|
const fs_1 = __importDefault(require("fs"));
|
|
9
10
|
const net_1 = __importDefault(require("net"));
|
|
10
11
|
const simple_git_1 = require("simple-git");
|
|
11
12
|
const child_process_1 = require("child_process");
|
|
12
13
|
const logger_1 = require("../utils/logger");
|
|
14
|
+
const designCatalog_1 = require("./templates/designCatalog");
|
|
15
|
+
const viteReactTs_1 = require("./templates/viteReactTs");
|
|
16
|
+
const sourceContext_1 = require("../mcp/agent-variants/sourceContext");
|
|
13
17
|
const log = (0, logger_1.createLogger)('WorktreeManager');
|
|
14
|
-
|
|
18
|
+
// Existing-project worktrees still go under /tmp — `git worktree add` refuses
|
|
19
|
+
// to nest inside the main worktree, so the user's project tree is off-limits
|
|
20
|
+
// and /tmp is the right neutral location.
|
|
21
|
+
const EXISTING_WORKTREE_BASE = '/tmp';
|
|
22
|
+
// Fresh-project worktrees live under destinationParent so commit time is a
|
|
23
|
+
// same-volume rename instead of a cross-volume cp. Tucked under a
|
|
24
|
+
// dot-prefixed dir so the editor file tree collapses them cleanly.
|
|
25
|
+
exports.FRESH_WORKTREES_DIRNAME = '.rivet-variants';
|
|
15
26
|
const WORKTREE_PREFIX = 'rivet-variants';
|
|
27
|
+
const SESSION_ID_PATTERN = /^[A-Za-z0-9_-]+$/;
|
|
16
28
|
// Include the PID so each server instance only cleans up its own worktrees.
|
|
17
|
-
|
|
29
|
+
exports.INSTANCE_PREFIX = `${WORKTREE_PREFIX}-pid${process.pid}`;
|
|
30
|
+
// Registry of every destinationParent that has ever housed a fresh-worktree
|
|
31
|
+
// root in this user account. Read at startup so orphan cleanup can sweep
|
|
32
|
+
// roots created by prior MCP processes that crashed before teardown ran.
|
|
33
|
+
const FRESH_ROOTS_REGISTRY_PATH = path_1.default.join(os_1.default.homedir(), '.rivet', 'fresh-worktree-roots.json');
|
|
34
|
+
const FRESH_SESSION_ERROR = 'Fresh-project sessions have no source project — this operation requires an existing project path.';
|
|
18
35
|
class WorktreeManager {
|
|
19
36
|
resolveProjectPath;
|
|
20
37
|
/**
|
|
21
|
-
* Accepts either a static path or a lazy getter. The getter form
|
|
22
|
-
* long-lived callers (e.g. the agent-variants orchestrator) defer the
|
|
38
|
+
* Accepts either a static path, null, or a lazy getter. The getter form
|
|
39
|
+
* lets long-lived callers (e.g. the agent-variants orchestrator) defer the
|
|
23
40
|
* project path until each operation, since `bridge.getProjectPath()`
|
|
24
|
-
* isn't known until `open_visual_editor` runs.
|
|
41
|
+
* isn't known until `open_visual_editor` runs. A null projectPath is
|
|
42
|
+
* allowed for fresh-project sessions that scaffold from scratch and
|
|
43
|
+
* therefore have no source repo; methods that need a real project path
|
|
44
|
+
* throw a clear error in that case.
|
|
25
45
|
*/
|
|
26
46
|
constructor(projectPath) {
|
|
27
|
-
|
|
28
|
-
|
|
47
|
+
if (typeof projectPath === 'function') {
|
|
48
|
+
this.resolveProjectPath = projectPath;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
const value = projectPath;
|
|
52
|
+
this.resolveProjectPath = () => value;
|
|
53
|
+
}
|
|
29
54
|
}
|
|
30
55
|
get projectPath() {
|
|
31
|
-
|
|
56
|
+
const resolved = this.resolveProjectPath();
|
|
57
|
+
if (!resolved) {
|
|
58
|
+
throw new Error(FRESH_SESSION_ERROR);
|
|
59
|
+
}
|
|
60
|
+
return resolved;
|
|
32
61
|
}
|
|
33
62
|
/**
|
|
34
63
|
* Return the absolute git root for the repo containing this.projectPath.
|
|
@@ -69,6 +98,33 @@ class WorktreeManager {
|
|
|
69
98
|
const diff = await git.diff(['HEAD']);
|
|
70
99
|
return diff;
|
|
71
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Return untracked, non-ignored file paths relative to the git root.
|
|
103
|
+
* These are files present in the working tree but not yet in any commit,
|
|
104
|
+
* so `git diff HEAD` won't include them.
|
|
105
|
+
*/
|
|
106
|
+
async getUntrackedFiles() {
|
|
107
|
+
const gitRoot = await this.getGitRoot();
|
|
108
|
+
const git = (0, simple_git_1.simpleGit)(gitRoot);
|
|
109
|
+
const result = await git
|
|
110
|
+
.raw(['ls-files', '--others', '--exclude-standard'])
|
|
111
|
+
.catch(() => '');
|
|
112
|
+
return result.split('\n').filter(Boolean);
|
|
113
|
+
}
|
|
114
|
+
/** Copy untracked files from the source repo into a worktree */
|
|
115
|
+
copyUntrackedFiles(untrackedFiles, gitRoot, worktreePath) {
|
|
116
|
+
for (const relPath of untrackedFiles) {
|
|
117
|
+
try {
|
|
118
|
+
const src = path_1.default.join(gitRoot, relPath);
|
|
119
|
+
const dest = path_1.default.join(worktreePath, relPath);
|
|
120
|
+
fs_1.default.mkdirSync(path_1.default.dirname(dest), { recursive: true });
|
|
121
|
+
fs_1.default.copyFileSync(src, dest);
|
|
122
|
+
}
|
|
123
|
+
catch (err) {
|
|
124
|
+
log.warn(`Could not copy untracked file ${relPath} to worktree:`, err);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
72
128
|
/** Apply a patch string via stdin to the given cwd using git apply */
|
|
73
129
|
applyPatchViaStdin(patch, cwd) {
|
|
74
130
|
return new Promise((resolve, reject) => {
|
|
@@ -87,12 +143,15 @@ class WorktreeManager {
|
|
|
87
143
|
}
|
|
88
144
|
/** Create N worktrees for a session, apply uncommitted patch to each, return paths */
|
|
89
145
|
async createWorktrees(sessionId, count) {
|
|
146
|
+
this.assertSafeSessionId(sessionId);
|
|
90
147
|
const git = (0, simple_git_1.simpleGit)(this.projectPath);
|
|
91
148
|
const patch = await this.getUncommittedPatch();
|
|
149
|
+
const gitRoot = await this.getGitRoot();
|
|
150
|
+
const untrackedFiles = await this.getUntrackedFiles();
|
|
92
151
|
const paths = [];
|
|
93
|
-
const projectCwdRelative = path_1.default.relative(
|
|
152
|
+
const projectCwdRelative = path_1.default.relative(gitRoot, path_1.default.resolve(this.projectPath));
|
|
94
153
|
for (let i = 0; i < count; i++) {
|
|
95
|
-
const worktreePath = path_1.default.join(
|
|
154
|
+
const worktreePath = path_1.default.join(EXISTING_WORKTREE_BASE, `${exports.INSTANCE_PREFIX}-${sessionId}-${i}`);
|
|
96
155
|
try {
|
|
97
156
|
await git.raw(['worktree', 'add', '--detach', worktreePath, 'HEAD']);
|
|
98
157
|
// Symlink node_modules into the project subdirectory within the worktree
|
|
@@ -115,6 +174,13 @@ class WorktreeManager {
|
|
|
115
174
|
log.warn(`Could not apply uncommitted patch to worktree ${i} — working from HEAD`);
|
|
116
175
|
});
|
|
117
176
|
}
|
|
177
|
+
// Copy untracked files — git diff HEAD only covers tracked files, so
|
|
178
|
+
// untracked-but-not-ignored files (e.g. new components not yet committed)
|
|
179
|
+
// must be copied manually or the worktree's dev server will fail to
|
|
180
|
+
// resolve their imports.
|
|
181
|
+
if (untrackedFiles.length > 0) {
|
|
182
|
+
this.copyUntrackedFiles(untrackedFiles, gitRoot, worktreePath);
|
|
183
|
+
}
|
|
118
184
|
const wtGit = (0, simple_git_1.simpleGit)(worktreePath);
|
|
119
185
|
await wtGit.raw(['add', '-A']).catch(() => { });
|
|
120
186
|
await wtGit
|
|
@@ -184,6 +250,17 @@ class WorktreeManager {
|
|
|
184
250
|
cp.stdin.end();
|
|
185
251
|
});
|
|
186
252
|
}
|
|
253
|
+
/**
|
|
254
|
+
* Apply a unified diff to an arbitrary project path. Same engine as
|
|
255
|
+
* `applyDiff` but the cwd is a parameter, so callers (e.g. the variants
|
|
256
|
+
* orchestrator) can target the user's project regardless of which path this
|
|
257
|
+
* manager instance was constructed with.
|
|
258
|
+
*/
|
|
259
|
+
async applyDiffToProject(diff, projectPath) {
|
|
260
|
+
if (!diff.trim())
|
|
261
|
+
return;
|
|
262
|
+
return this.applyPatchViaStdin(diff, projectPath);
|
|
263
|
+
}
|
|
187
264
|
/** Bind port 0 to get an OS-assigned free port */
|
|
188
265
|
getFreePort() {
|
|
189
266
|
return new Promise((resolve, reject) => {
|
|
@@ -233,6 +310,16 @@ class WorktreeManager {
|
|
|
233
310
|
detached: false,
|
|
234
311
|
});
|
|
235
312
|
proc.on('error', (err) => log.warn(`Dev server error (port ${port}):`, err));
|
|
313
|
+
// Drain stdout/stderr. With `stdio: 'pipe'` and no consumer, the OS pipe
|
|
314
|
+
// buffer (~64KB) fills within seconds of Vite's HMR/request logging and
|
|
315
|
+
// the child blocks on write, freezing the dev server even though it
|
|
316
|
+
// passed the readiness probe.
|
|
317
|
+
proc.stdout?.on('data', (data) => {
|
|
318
|
+
log.debug(`[variant-dev:${port}] ${data.toString().trim()}`);
|
|
319
|
+
});
|
|
320
|
+
proc.stderr?.on('data', (data) => {
|
|
321
|
+
log.debug(`[variant-dev:${port}] ${data.toString().trim()}`);
|
|
322
|
+
});
|
|
236
323
|
const deadline = Date.now() + 30_000;
|
|
237
324
|
while (Date.now() < deadline) {
|
|
238
325
|
try {
|
|
@@ -278,10 +365,29 @@ class WorktreeManager {
|
|
|
278
365
|
catch { /* ignore */ }
|
|
279
366
|
await exited;
|
|
280
367
|
}
|
|
281
|
-
/** Remove all worktrees for a session
|
|
282
|
-
|
|
368
|
+
/** Remove all worktrees for a session.
|
|
369
|
+
*
|
|
370
|
+
* For existing-project sessions, asks git to unregister the worktree
|
|
371
|
+
* (handles `.git/worktrees/*` cleanup) and falls back to plain rm. For
|
|
372
|
+
* fresh-project sessions (no projectPath) the worktrees are detached
|
|
373
|
+
* directories with their own `.git` under `<destinationParent>/.rivet-variants/`
|
|
374
|
+
* — git registry cleanup is a no-op and we just rm the matching dirs.
|
|
375
|
+
*
|
|
376
|
+
* `freshDestinationParent` is required when the session was fresh; pass
|
|
377
|
+
* `path.dirname(projectContext.workspacePath)` so we know which
|
|
378
|
+
* `.rivet-variants/` root to sweep.
|
|
379
|
+
*/
|
|
380
|
+
async cleanupSession(sessionId, freshDestinationParent) {
|
|
381
|
+
this.assertSafeSessionId(sessionId);
|
|
382
|
+
if (!this.resolveProjectPath()) {
|
|
383
|
+
// Fresh sessions: no source repo, no git registry to clean. Just rm.
|
|
384
|
+
if (freshDestinationParent) {
|
|
385
|
+
this.cleanupFreshWorktrees(sessionId, freshDestinationParent);
|
|
386
|
+
}
|
|
387
|
+
return;
|
|
388
|
+
}
|
|
283
389
|
const git = (0, simple_git_1.simpleGit)(this.projectPath);
|
|
284
|
-
const pattern = path_1.default.join(
|
|
390
|
+
const pattern = path_1.default.join(EXISTING_WORKTREE_BASE, `${exports.INSTANCE_PREFIX}-${sessionId}-`);
|
|
285
391
|
try {
|
|
286
392
|
const worktreeList = await git.raw(['worktree', 'list', '--porcelain']);
|
|
287
393
|
const worktreePaths = worktreeList
|
|
@@ -302,23 +408,292 @@ class WorktreeManager {
|
|
|
302
408
|
catch (e) {
|
|
303
409
|
log.warn('Worktree cleanup error:', e);
|
|
304
410
|
}
|
|
411
|
+
// Always also remove any leftover fresh-style directories for this
|
|
412
|
+
// session (e.g. mixed-mode sessions, or git registry mismatch).
|
|
413
|
+
if (freshDestinationParent) {
|
|
414
|
+
this.cleanupFreshWorktrees(sessionId, freshDestinationParent);
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
/**
|
|
418
|
+
* Create N worktrees for a fresh-project session by writing a template
|
|
419
|
+
* bundle into each `<destinationParent>/.rivet-variants/rivet-variants-pid<PID>-<sessionId>-<i>`
|
|
420
|
+
* directory, optionally writing a DESIGN.md per slot, and committing a
|
|
421
|
+
* baseline.
|
|
422
|
+
*
|
|
423
|
+
* Worktrees live under the user's destinationParent (not /tmp) so commit
|
|
424
|
+
* time can be a same-volume rename instead of a cross-volume copy. The
|
|
425
|
+
* destinationParent is registered to a small JSON file so a future MCP
|
|
426
|
+
* startup can sweep orphans even when the original process crashed.
|
|
427
|
+
*
|
|
428
|
+
* Does NOT run `npm install` — the orchestrator dispatches that as a
|
|
429
|
+
* background task so failures surface via work-item state without blocking
|
|
430
|
+
* the MCP tool response.
|
|
431
|
+
*
|
|
432
|
+
* @effect Creates directories under destinationParent, writes template
|
|
433
|
+
* files, runs git init/add/commit, appends destinationParent to
|
|
434
|
+
* the fresh-worktree-roots registry.
|
|
435
|
+
*/
|
|
436
|
+
async createFreshWorktrees(sessionId, count, template, designContext, sourceContext, destinationParent) {
|
|
437
|
+
this.assertSafeSessionId(sessionId);
|
|
438
|
+
if (!destinationParent || !path_1.default.isAbsolute(destinationParent)) {
|
|
439
|
+
throw new Error('createFreshWorktrees requires an absolute destinationParent path');
|
|
440
|
+
}
|
|
441
|
+
const freshRoot = path_1.default.join(destinationParent, exports.FRESH_WORKTREES_DIRNAME);
|
|
442
|
+
fs_1.default.mkdirSync(freshRoot, { recursive: true });
|
|
443
|
+
(0, exports.registerFreshWorktreeRoot)(freshRoot);
|
|
444
|
+
const paths = [];
|
|
445
|
+
for (let i = 0; i < count; i++) {
|
|
446
|
+
const worktreePath = path_1.default.join(freshRoot, `${exports.INSTANCE_PREFIX}-${sessionId}-${i}`);
|
|
447
|
+
fs_1.default.mkdirSync(worktreePath, { recursive: true });
|
|
448
|
+
(0, viteReactTs_1.writeTemplateBundle)(template, worktreePath);
|
|
449
|
+
this.writeDesignContext(worktreePath, i, designContext?.[i]);
|
|
450
|
+
this.writeSourceContext(worktreePath, sourceContext);
|
|
451
|
+
const wtGit = (0, simple_git_1.simpleGit)(worktreePath);
|
|
452
|
+
try {
|
|
453
|
+
await wtGit.raw(['init']);
|
|
454
|
+
await wtGit.raw(['add', '-A']);
|
|
455
|
+
await wtGit
|
|
456
|
+
.raw([
|
|
457
|
+
'-c',
|
|
458
|
+
'user.name=Rivet',
|
|
459
|
+
'-c',
|
|
460
|
+
'user.email=hello@tryrivet.design',
|
|
461
|
+
'commit',
|
|
462
|
+
'--no-gpg-sign',
|
|
463
|
+
'-m',
|
|
464
|
+
'rivet: variant baseline',
|
|
465
|
+
])
|
|
466
|
+
.catch((err) => {
|
|
467
|
+
log.warn(`Fresh worktree ${i}: baseline commit failed`, err);
|
|
468
|
+
});
|
|
469
|
+
}
|
|
470
|
+
catch (err) {
|
|
471
|
+
// Best-effort: even without a baseline commit the worktree is usable
|
|
472
|
+
// for the agent — log and continue.
|
|
473
|
+
log.warn(`Fresh worktree ${i}: git init failed`, err);
|
|
474
|
+
}
|
|
475
|
+
paths.push(worktreePath);
|
|
476
|
+
}
|
|
477
|
+
return paths;
|
|
478
|
+
}
|
|
479
|
+
/**
|
|
480
|
+
* Write SOURCE_CONTEXT.md when source context exists for the session.
|
|
481
|
+
*
|
|
482
|
+
* @effect Writes SOURCE_CONTEXT.md for source-grounded fresh worktrees.
|
|
483
|
+
*/
|
|
484
|
+
writeSourceContext(worktreePath, sourceContext) {
|
|
485
|
+
if (!sourceContext)
|
|
486
|
+
return;
|
|
487
|
+
if (sourceContext.artifact) {
|
|
488
|
+
fs_1.default.writeFileSync(path_1.default.join(worktreePath, 'SOURCE_CONTEXT.md'), (0, sourceContext_1.buildSourceContextMarkdown)(sourceContext.artifact), 'utf8');
|
|
489
|
+
return;
|
|
490
|
+
}
|
|
491
|
+
if ((sourceContext.sourceUrls?.length ?? 0) === 0)
|
|
492
|
+
return;
|
|
493
|
+
const lines = [
|
|
494
|
+
'# SOURCE_CONTEXT',
|
|
495
|
+
'',
|
|
496
|
+
'## Source URLs',
|
|
497
|
+
...sourceContext.sourceUrls.map((url) => `- ${url}`),
|
|
498
|
+
'',
|
|
499
|
+
'## Notes',
|
|
500
|
+
'- Source research was provided as URL-only context.',
|
|
501
|
+
];
|
|
502
|
+
fs_1.default.writeFileSync(path_1.default.join(worktreePath, 'SOURCE_CONTEXT.md'), `${lines.join('\n')}\n`, 'utf8');
|
|
503
|
+
}
|
|
504
|
+
/**
|
|
505
|
+
* Write the per-slot DESIGN.md for a fresh worktree.
|
|
506
|
+
*
|
|
507
|
+
* @effect Writes DESIGN.md when a design context is available.
|
|
508
|
+
*/
|
|
509
|
+
writeDesignContext(worktreePath, slot, entry) {
|
|
510
|
+
if (!entry)
|
|
511
|
+
return;
|
|
512
|
+
if (entry.kind === 'markdown') {
|
|
513
|
+
const label = entry.label.replace(/-->/g, '-- >');
|
|
514
|
+
fs_1.default.writeFileSync(path_1.default.join(worktreePath, 'DESIGN.md'), `<!-- Custom design context: ${label} -->\n\n${entry.content}`, 'utf8');
|
|
515
|
+
return;
|
|
516
|
+
}
|
|
517
|
+
const markdown = (0, designCatalog_1.loadDesignSystemMarkdown)(entry.slug);
|
|
518
|
+
if (markdown) {
|
|
519
|
+
fs_1.default.writeFileSync(path_1.default.join(worktreePath, 'DESIGN.md'), markdown, 'utf8');
|
|
520
|
+
return;
|
|
521
|
+
}
|
|
522
|
+
log.warn(`Fresh worktree ${slot}: unknown design system slug '${entry.slug}' — DESIGN.md skipped`);
|
|
523
|
+
}
|
|
524
|
+
/**
|
|
525
|
+
* Move a worktree to its history location preserving contents. Used by the
|
|
526
|
+
* orchestrator at commit time so unchosen variants survive on disk as
|
|
527
|
+
* runnable references (siblings of the chosen project).
|
|
528
|
+
*
|
|
529
|
+
* Returns the destination path (`<historyDir>/<folderName>`).
|
|
530
|
+
*
|
|
531
|
+
* @effect renames `srcWorktreePath` → `<historyDir>/<folderName>`, creating
|
|
532
|
+
* the historyDir if needed.
|
|
533
|
+
*/
|
|
534
|
+
moveWorktreeToHistory(srcWorktreePath, historyDir, folderName) {
|
|
535
|
+
fs_1.default.mkdirSync(historyDir, { recursive: true });
|
|
536
|
+
const dest = path_1.default.join(historyDir, folderName);
|
|
537
|
+
fs_1.default.renameSync(srcWorktreePath, dest);
|
|
538
|
+
return dest;
|
|
539
|
+
}
|
|
540
|
+
/**
|
|
541
|
+
* Repoint a worktree's `node_modules` at a relative symlink so it tracks
|
|
542
|
+
* the chosen variant's real install after both have moved into their new
|
|
543
|
+
* permanent homes. Idempotent — removes any existing entry first.
|
|
544
|
+
*/
|
|
545
|
+
repointNodeModulesSymlink(worktreePath, sharedNodeModulesAbsPath) {
|
|
546
|
+
const link = path_1.default.join(worktreePath, 'node_modules');
|
|
547
|
+
try {
|
|
548
|
+
fs_1.default.rmSync(link, { force: true, recursive: true });
|
|
549
|
+
}
|
|
550
|
+
catch {
|
|
551
|
+
/* may not exist */
|
|
552
|
+
}
|
|
553
|
+
const target = path_1.default.relative(path_1.default.dirname(link), sharedNodeModulesAbsPath);
|
|
554
|
+
fs_1.default.symlinkSync(target, link, 'dir');
|
|
555
|
+
}
|
|
556
|
+
/** Remove all fresh worktrees for a session.
|
|
557
|
+
*
|
|
558
|
+
* @effect Removes directories under <destinationParent>/.rivet-variants/
|
|
559
|
+
* matching ${INSTANCE_PREFIX}-<sessionId>-*. Also removes the
|
|
560
|
+
* .rivet-variants/ parent if it becomes empty so the editor file
|
|
561
|
+
* tree doesn't accumulate noise.
|
|
562
|
+
*
|
|
563
|
+
* When `preserve` is provided, entries whose basenames are in the set are
|
|
564
|
+
* skipped — used by the orchestrator after a vite_app commit, where the
|
|
565
|
+
* unchosen variant worktrees have already been moved to a sibling history
|
|
566
|
+
* dir and must not be re-deleted.
|
|
567
|
+
*/
|
|
568
|
+
cleanupFreshWorktrees(sessionId, destinationParent, preserve) {
|
|
569
|
+
this.assertSafeSessionId(sessionId);
|
|
570
|
+
if (!destinationParent || !path_1.default.isAbsolute(destinationParent)) {
|
|
571
|
+
log.warn('cleanupFreshWorktrees: destinationParent missing or not absolute — skipping');
|
|
572
|
+
return;
|
|
573
|
+
}
|
|
574
|
+
const freshRoot = path_1.default.join(destinationParent, exports.FRESH_WORKTREES_DIRNAME);
|
|
575
|
+
try {
|
|
576
|
+
const prefix = `${exports.INSTANCE_PREFIX}-${sessionId}-`;
|
|
577
|
+
const entries = fs_1.default
|
|
578
|
+
.readdirSync(freshRoot)
|
|
579
|
+
.filter((e) => e.startsWith(prefix))
|
|
580
|
+
.filter((e) => !preserve?.has(e));
|
|
581
|
+
for (const entry of entries) {
|
|
582
|
+
fs_1.default.rmSync(path_1.default.join(freshRoot, entry), {
|
|
583
|
+
recursive: true,
|
|
584
|
+
force: true,
|
|
585
|
+
});
|
|
586
|
+
}
|
|
587
|
+
// If the freshRoot is now empty, remove it too.
|
|
588
|
+
try {
|
|
589
|
+
const remaining = fs_1.default.readdirSync(freshRoot);
|
|
590
|
+
if (remaining.length === 0) {
|
|
591
|
+
fs_1.default.rmdirSync(freshRoot);
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
catch {
|
|
595
|
+
// Non-fatal — leaving the dir is harmless.
|
|
596
|
+
}
|
|
597
|
+
}
|
|
598
|
+
catch (e) {
|
|
599
|
+
// ENOENT is expected when the dir was already cleaned up — only log
|
|
600
|
+
// when it's a different failure mode.
|
|
601
|
+
if (e.code !== 'ENOENT') {
|
|
602
|
+
log.warn('Fresh worktree cleanup error:', e);
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
assertSafeSessionId(sessionId) {
|
|
607
|
+
if (!SESSION_ID_PATTERN.test(sessionId)) {
|
|
608
|
+
throw new Error('Invalid sessionId: expected a safe path segment');
|
|
609
|
+
}
|
|
305
610
|
}
|
|
306
611
|
}
|
|
307
612
|
exports.WorktreeManager = WorktreeManager;
|
|
613
|
+
/**
|
|
614
|
+
* Read the fresh-worktree-root registry, dropping entries whose dir no
|
|
615
|
+
* longer exists so the file stays small.
|
|
616
|
+
*/
|
|
617
|
+
const loadFreshWorktreeRoots = () => {
|
|
618
|
+
try {
|
|
619
|
+
const raw = fs_1.default.readFileSync(FRESH_ROOTS_REGISTRY_PATH, 'utf8');
|
|
620
|
+
const parsed = JSON.parse(raw);
|
|
621
|
+
if (!Array.isArray(parsed))
|
|
622
|
+
return [];
|
|
623
|
+
return parsed.filter((p) => typeof p === 'string');
|
|
624
|
+
}
|
|
625
|
+
catch {
|
|
626
|
+
return [];
|
|
627
|
+
}
|
|
628
|
+
};
|
|
629
|
+
const saveFreshWorktreeRoots = (roots) => {
|
|
630
|
+
try {
|
|
631
|
+
fs_1.default.mkdirSync(path_1.default.dirname(FRESH_ROOTS_REGISTRY_PATH), { recursive: true });
|
|
632
|
+
const deduped = Array.from(new Set(roots));
|
|
633
|
+
fs_1.default.writeFileSync(FRESH_ROOTS_REGISTRY_PATH, JSON.stringify(deduped, null, 2), 'utf8');
|
|
634
|
+
}
|
|
635
|
+
catch (err) {
|
|
636
|
+
log.warn('Could not persist fresh-worktree-roots registry:', err);
|
|
637
|
+
}
|
|
638
|
+
};
|
|
639
|
+
/**
|
|
640
|
+
* Append a freshRoot path to the registry (de-duped). Called by
|
|
641
|
+
* createFreshWorktrees so future MCP startups can sweep orphans even if
|
|
642
|
+
* the original process crashed before teardown ran.
|
|
643
|
+
*/
|
|
644
|
+
const registerFreshWorktreeRoot = (freshRoot) => {
|
|
645
|
+
const existing = loadFreshWorktreeRoots();
|
|
646
|
+
if (existing.includes(freshRoot))
|
|
647
|
+
return;
|
|
648
|
+
existing.push(freshRoot);
|
|
649
|
+
saveFreshWorktreeRoots(existing);
|
|
650
|
+
};
|
|
651
|
+
exports.registerFreshWorktreeRoot = registerFreshWorktreeRoot;
|
|
652
|
+
/**
|
|
653
|
+
* Sweep orphan worktrees from /tmp (existing-project flow) and from every
|
|
654
|
+
* registered fresh-worktree root (fresh-project flow). Filters by
|
|
655
|
+
* INSTANCE_PREFIX (includes PID) so each server instance only removes its
|
|
656
|
+
* own worktrees and never touches those of sibling instances. Prunes
|
|
657
|
+
* registry entries whose directory no longer exists so the file stays small.
|
|
658
|
+
*/
|
|
308
659
|
const cleanupOrphanedWorktrees = () => {
|
|
309
660
|
try {
|
|
310
|
-
// Filter by INSTANCE_PREFIX (includes PID) so each server instance only
|
|
311
|
-
// removes its own worktrees and never touches those of sibling instances.
|
|
312
661
|
const entries = fs_1.default
|
|
313
|
-
.readdirSync(
|
|
314
|
-
.filter((e) => e.startsWith(INSTANCE_PREFIX));
|
|
662
|
+
.readdirSync(EXISTING_WORKTREE_BASE)
|
|
663
|
+
.filter((e) => e.startsWith(exports.INSTANCE_PREFIX));
|
|
315
664
|
for (const entry of entries) {
|
|
316
|
-
fs_1.default.rmSync(path_1.default.join(
|
|
665
|
+
fs_1.default.rmSync(path_1.default.join(EXISTING_WORKTREE_BASE, entry), {
|
|
666
|
+
recursive: true,
|
|
667
|
+
force: true,
|
|
668
|
+
});
|
|
317
669
|
}
|
|
318
670
|
}
|
|
319
671
|
catch {
|
|
320
672
|
/* ignore */
|
|
321
673
|
}
|
|
674
|
+
const roots = loadFreshWorktreeRoots();
|
|
675
|
+
const survivingRoots = [];
|
|
676
|
+
for (const root of roots) {
|
|
677
|
+
let rootStillExists = true;
|
|
678
|
+
try {
|
|
679
|
+
const entries = fs_1.default
|
|
680
|
+
.readdirSync(root)
|
|
681
|
+
.filter((e) => e.startsWith(exports.INSTANCE_PREFIX));
|
|
682
|
+
for (const entry of entries) {
|
|
683
|
+
fs_1.default.rmSync(path_1.default.join(root, entry), { recursive: true, force: true });
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
catch (err) {
|
|
687
|
+
if (err.code === 'ENOENT') {
|
|
688
|
+
rootStillExists = false;
|
|
689
|
+
}
|
|
690
|
+
}
|
|
691
|
+
if (rootStillExists)
|
|
692
|
+
survivingRoots.push(root);
|
|
693
|
+
}
|
|
694
|
+
if (survivingRoots.length !== roots.length) {
|
|
695
|
+
saveFreshWorktreeRoots(survivingRoots);
|
|
696
|
+
}
|
|
322
697
|
};
|
|
323
698
|
exports.cleanupOrphanedWorktrees = cleanupOrphanedWorktrees;
|
|
324
699
|
// Clean up on natural exit (covers process.exit() calls from server shutdown)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorktreeManager.js","sourceRoot":"","sources":["../../src/services/WorktreeManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WorktreeManager.js","sourceRoot":"","sources":["../../src/services/WorktreeManager.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,4CAAoB;AACpB,4CAAoB;AACpB,8CAAsB;AACtB,2CAAuC;AACvC,iDAAyD;AACzD,4CAA+C;AAC/C,6DAEmC;AACnC,yDAGiC;AAGjC,uEAAiF;AAEjF,MAAM,GAAG,GAAG,IAAA,qBAAY,EAAC,iBAAiB,CAAC,CAAC;AAC5C,8EAA8E;AAC9E,6EAA6E;AAC7E,0CAA0C;AAC1C,MAAM,sBAAsB,GAAG,MAAM,CAAC;AACtC,2EAA2E;AAC3E,kEAAkE;AAClE,mEAAmE;AACtD,QAAA,uBAAuB,GAAG,iBAAiB,CAAC;AACzD,MAAM,eAAe,GAAG,gBAAgB,CAAC;AACzC,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAC9C,4EAA4E;AAC/D,QAAA,eAAe,GAAG,GAAG,eAAe,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;AAEtE,4EAA4E;AAC5E,yEAAyE;AACzE,yEAAyE;AACzE,MAAM,yBAAyB,GAAG,cAAI,CAAC,IAAI,CACzC,YAAE,CAAC,OAAO,EAAE,EACZ,QAAQ,EACR,2BAA2B,CAC5B,CAAC;AAEF,MAAM,mBAAmB,GACvB,mGAAmG,CAAC;AAEtG,MAAa,eAAe;IACT,kBAAkB,CAAsB;IAEzD;;;;;;;;OAQG;IACH,YACE,WAAkD;QAElD,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE,CAAC;YACtC,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,WAAW,CAAC;YAC1B,IAAI,CAAC,kBAAkB,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC;QACxC,CAAC;IACH,CAAC;IAED,IAAY,WAAW;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,GAAG,MAAM,IAAA,sBAAS,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,uBAAuB,CAAC,YAAoB;QAChD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,cAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACvE,OAAO,OAAO,CAAC,CAAC,CAAC,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IACnE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,uBAAuB,CAAC,OAAe,EAAE,YAAoB;QACjE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,cAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5C,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,cAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,OAAO,CAAC;QACjE,OAAO,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,sEAAsE;IACtE,KAAK,CAAC,mBAAmB;QACvB,MAAM,GAAG,GAAG,IAAA,sBAAS,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,iBAAiB;QAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAA,sBAAS,EAAC,OAAO,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,GAAG;aACrB,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,oBAAoB,CAAC,CAAC;aACnD,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACnB,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,gEAAgE;IACxD,kBAAkB,CACxB,cAAwB,EACxB,OAAe,EACf,YAAoB;QAEpB,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACxC,MAAM,IAAI,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBAC9C,YAAE,CAAC,SAAS,CAAC,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACtD,YAAE,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC7B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,CAAC,iCAAiC,OAAO,eAAe,EAAE,GAAG,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;IACH,CAAC;IAED,sEAAsE;IAC9D,kBAAkB,CAAC,KAAa,EAAE,GAAW;QACnD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,EAAE,GAAG,IAAA,qBAAK,EACd,KAAK,EACL,CAAC,OAAO,EAAE,qBAAqB,EAAE,GAAG,CAAC,EACrC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CACzC,CAAC;YACF,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE;gBAC9B,IAAI,IAAI,KAAK,CAAC;oBAAE,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC,CAAC;;oBAC5D,OAAO,EAAE,CAAC;YACjB,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACtB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,sFAAsF;IACtF,KAAK,CAAC,eAAe,CAAC,SAAiB,EAAE,KAAa;QACpD,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,IAAA,sBAAS,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACtD,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,kBAAkB,GAAG,cAAI,CAAC,QAAQ,CACtC,OAAO,EACP,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAC/B,CAAC;QAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAC5B,sBAAsB,EACtB,GAAG,uBAAe,IAAI,SAAS,IAAI,CAAC,EAAE,CACvC,CAAC;YACF,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;gBAErE,yEAAyE;gBACzE,oEAAoE;gBACpE,MAAM,iBAAiB,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;gBACtE,MAAM,oBAAoB,GAAG,kBAAkB;oBAC7C,CAAC,CAAC,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC;oBAC7C,CAAC,CAAC,YAAY,CAAC;gBACjB,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,cAAc,CAAC,CAAC;gBACxE,IACE,YAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC;oBAChC,CAAC,YAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAC/B,CAAC;oBACD,YAAE,CAAC,WAAW,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;gBACrD,CAAC;gBAED,qEAAqE;gBACrE,kEAAkE;gBAClE,iEAAiE;gBACjE,yEAAyE;gBACzE,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;oBACjB,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;wBAC5D,GAAG,CAAC,IAAI,CACN,iDAAiD,CAAC,sBAAsB,CACzE,CAAC;oBACJ,CAAC,CAAC,CAAC;gBACL,CAAC;gBAED,qEAAqE;gBACrE,0EAA0E;gBAC1E,oEAAoE;gBACpE,yBAAyB;gBACzB,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9B,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;gBACjE,CAAC;gBAED,MAAM,KAAK,GAAG,IAAA,sBAAS,EAAC,YAAY,CAAC,CAAC;gBACtC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBAC/C,MAAM,KAAK;qBACR,GAAG,CAAC;oBACH,QAAQ;oBACR,eAAe;oBACf,eAAe;oBACf,IAAI;oBACJ,yBAAyB;iBAC1B,CAAC;qBACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBAEnB,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,GAAG,CAAC,KAAK,CAAC,6BAA6B,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAChD,MAAM,CAAC,CAAC;YACV,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,CAAC,YAAoB;QAChC,MAAM,GAAG,GAAG,IAAA,sBAAS,EAAC,YAAY,CAAC,CAAC;QACpC,gEAAgE;QAChE,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACxD,4DAA4D;QAC9D,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,OAAgB;QAC5C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,OAAO;QACzB,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;QAC9C,IAAI,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEf,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,EAAE,GAAG,IAAA,qBAAK,EAAC,KAAK,EAAE,IAAI,EAAE;gBAC5B,GAAG,EAAE,IAAI,CAAC,WAAW;gBACrB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;aAChC,CAAC,CAAC;YACH,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE;gBAC9B,IAAI,IAAI,KAAK,CAAC;oBAAE,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC,CAAC;;oBAC5D,OAAO,EAAE,CAAC;YACjB,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACrB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,kBAAkB,CAAC,IAAY,EAAE,WAAmB;QACxD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,OAAO;QACzB,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACpD,CAAC;IAED,kDAAkD;IAClD,WAAW;QACT,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7C,MAAM,MAAM,GAAG,aAAG,CAAC,YAAY,EAAE,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE;gBACpB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC9B,MAAM,IAAI,GAAG,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9D,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,sEAAsE;IACtE,YAAY,CAAC,IAAY,EAAE,OAAgB;QACzC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3C,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,qBAAqB,CAAC,CAAC;YACzD,IAAI,OAAO;gBAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACf,MAAM,EAAE,GAAG,IAAA,qBAAK,EAAC,KAAK,EAAE,IAAI,EAAE;gBAC5B,GAAG,EAAE,IAAI,CAAC,WAAW;gBACrB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;aAChC,CAAC,CAAC;YACH,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE;gBAC9B,IAAI,IAAI,KAAK,CAAC;oBAAE,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;;oBACzE,OAAO,EAAE,CAAC;YACjB,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACrB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc,CAClB,YAAoB,EACpB,IAAY,EACZ,GAAW,EACX,IAAc,EACd,GAA2B;QAE3B,MAAM,IAAI,GAAG,IAAA,qBAAK,EAAC,GAAG,EAAE,IAAI,EAAE;YAC5B,GAAG,EAAE,YAAY;YACjB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE;YAC/B,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7E,yEAAyE;QACzE,wEAAwE;QACxE,oEAAoE;QACpE,8BAA8B;QAC9B,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACvC,GAAG,CAAC,KAAK,CAAC,gBAAgB,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACvC,GAAG,CAAC,KAAK,CAAC,gBAAgB,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;QACrC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,EAAE,EAAE;oBAClD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;iBACnC,CAAC,CAAC;gBACH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;oBAAE,OAAO,IAAI,CAAC;YACtC,CAAC;YAAC,MAAM,CAAC;gBACP,aAAa;YACf,CAAC;YACD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,kCAAkC,CAAC,CAAC;IAChF,CAAC;IAED,wDAAwD;IACxD,KAAK,CAAC,aAAa,CAAC,IAAkB,EAAE,SAAS,GAAG,KAAK;QACvD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI;YAAE,OAAO;QAEtE,MAAM,MAAM,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAC3C,MAAM,IAAI,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YACnF,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAEpD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;YACxB,IAAI,OAAO,CAAU,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;SAClE,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,IAAI,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACpD,MAAM,MAAM,CAAC;IACf,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,cAAc,CAClB,SAAiB,EACjB,sBAA+B;QAE/B,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC/B,qEAAqE;YACrE,IAAI,sBAAsB,EAAE,CAAC;gBAC3B,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;YAChE,CAAC;YACD,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,IAAA,sBAAS,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CACvB,sBAAsB,EACtB,GAAG,uBAAe,IAAI,SAAS,GAAG,CACnC,CAAC;QACF,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;YACxE,MAAM,aAAa,GAAG,YAAY;iBAC/B,KAAK,CAAC,IAAI,CAAC;iBACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;iBAC9C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;iBACnD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;YAExC,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;gBAClC,IAAI,CAAC;oBACH,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC1D,CAAC;gBAAC,MAAM,CAAC;oBACP,8CAA8C;oBAC9C,YAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,mEAAmE;QACnE,gEAAgE;QAChE,IAAI,sBAAsB,EAAE,CAAC;YAC3B,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,oBAAoB,CACxB,SAAiB,EACjB,KAAa,EACb,QAAwB,EACxB,aAAwE,EACxE,aAA6C,EAC7C,iBAAyB;QAEzB,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,iBAAiB,IAAI,CAAC,cAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,+BAAuB,CAAC,CAAC;QACxE,YAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,IAAA,iCAAyB,EAAC,SAAS,CAAC,CAAC;QACrC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAC5B,SAAS,EACT,GAAG,uBAAe,IAAI,SAAS,IAAI,CAAC,EAAE,CACvC,CAAC;YACF,YAAE,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,IAAA,iCAAmB,EAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAE5C,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7D,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;YAErD,MAAM,KAAK,GAAG,IAAA,sBAAS,EAAC,YAAY,CAAC,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC1B,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC/B,MAAM,KAAK;qBACR,GAAG,CAAC;oBACH,IAAI;oBACJ,iBAAiB;oBACjB,IAAI;oBACJ,kCAAkC;oBAClC,QAAQ;oBACR,eAAe;oBACf,IAAI;oBACJ,yBAAyB;iBAC1B,CAAC;qBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBACb,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;gBAC/D,CAAC,CAAC,CAAC;YACP,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,qEAAqE;gBACrE,oCAAoC;gBACpC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;YACxD,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACK,kBAAkB,CACxB,YAAoB,EACpB,aAA6C;QAE7C,IAAI,CAAC,aAAa;YAAE,OAAO;QAC3B,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC3B,YAAE,CAAC,aAAa,CACd,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,mBAAmB,CAAC,EAC5C,IAAA,0CAA0B,EAAC,aAAa,CAAC,QAAQ,CAAC,EAClD,MAAM,CACP,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC;YAAE,OAAO;QAC1D,MAAM,KAAK,GAAG;YACZ,kBAAkB;YAClB,EAAE;YACF,gBAAgB;YAChB,GAAG,aAAa,CAAC,UAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC;YACrD,EAAE;YACF,UAAU;YACV,qDAAqD;SACtD,CAAC;QACF,YAAE,CAAC,aAAa,CACd,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,mBAAmB,CAAC,EAC5C,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EACvB,MAAM,CACP,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,kBAAkB,CACxB,YAAoB,EACpB,IAAY,EACZ,KAAqC;QAErC,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClD,YAAE,CAAC,aAAa,CACd,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,EACpC,+BAA+B,KAAK,WAAW,KAAK,CAAC,OAAO,EAAE,EAC9D,MAAM,CACP,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAA,wCAAwB,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,QAAQ,EAAE,CAAC;YACb,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QACD,GAAG,CAAC,IAAI,CACN,kBAAkB,IAAI,iCAAiC,KAAK,CAAC,IAAI,uBAAuB,CACzF,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,qBAAqB,CACnB,eAAuB,EACvB,UAAkB,EAClB,UAAkB;QAElB,YAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC/C,YAAE,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,yBAAyB,CACvB,YAAoB,EACpB,wBAAgC;QAEhC,MAAM,IAAI,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QACrD,IAAI,CAAC;YACH,YAAE,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,mBAAmB;QACrB,CAAC;QACD,MAAM,MAAM,GAAG,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,wBAAwB,CAAC,CAAC;QAC3E,YAAE,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,qBAAqB,CACnB,SAAiB,EACjB,iBAAyB,EACzB,QAA8B;QAE9B,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,iBAAiB,IAAI,CAAC,cAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,IAAI,CACN,6EAA6E,CAC9E,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,+BAAuB,CAAC,CAAC;QACxE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,GAAG,uBAAe,IAAI,SAAS,GAAG,CAAC;YAClD,MAAM,OAAO,GAAG,YAAE;iBACf,WAAW,CAAC,SAAS,CAAC;iBACtB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;iBACnC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,YAAE,CAAC,MAAM,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;oBACrC,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,IAAI;iBACZ,CAAC,CAAC;YACL,CAAC;YACD,gDAAgD;YAChD,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,YAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBAC5C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC3B,YAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,2CAA2C;YAC7C,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,oEAAoE;YACpE,sCAAsC;YACtC,IAAK,CAAuB,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC/C,GAAG,CAAC,IAAI,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,SAAiB;QAC3C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;CACF;AArpBD,0CAqpBC;AAED;;;GAGG;AACH,MAAM,sBAAsB,GAAG,GAAa,EAAE;IAC5C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAE,CAAC,YAAY,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,KAAe,EAAQ,EAAE;IACvD,IAAI,CAAC;QACH,YAAE,CAAC,SAAS,CAAC,cAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,YAAE,CAAC,aAAa,CACd,yBAAyB,EACzB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAChC,MAAM,CACP,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,kDAAkD,EAAE,GAAG,CAAC,CAAC;IACpE,CAAC;AACH,CAAC,CAAC;AAEF;;;;GAIG;AACI,MAAM,yBAAyB,GAAG,CAAC,SAAiB,EAAQ,EAAE;IACnE,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAC;IAC1C,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO;IACzC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzB,sBAAsB,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC,CAAC;AALW,QAAA,yBAAyB,6BAKpC;AAEF;;;;;;GAMG;AACI,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAE;aACf,WAAW,CAAC,sBAAsB,CAAC;aACnC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,uBAAe,CAAC,CAAC,CAAC;QAChD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,YAAE,CAAC,MAAM,CAAC,cAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,CAAC,EAAE;gBAClD,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;IAED,MAAM,KAAK,GAAG,sBAAsB,EAAE,CAAC;IACvC,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,eAAe,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAE;iBACf,WAAW,CAAC,IAAI,CAAC;iBACjB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,uBAAe,CAAC,CAAC,CAAC;YAChD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,YAAE,CAAC,MAAM,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAAyB,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACjD,eAAe,GAAG,KAAK,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,IAAI,eAAe;YAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,cAAc,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAC3C,sBAAsB,CAAC,cAAc,CAAC,CAAC;IACzC,CAAC;AACH,CAAC,CAAC;AApCW,QAAA,wBAAwB,4BAoCnC;AAEF,8EAA8E;AAC9E,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,gCAAwB,CAAC,CAAC;AAE7C;;;;GAIG;AACI,MAAM,cAAc,GAAG,KAAK,EAAE,WAAmB,EAAiB,EAAE;IACzE,IAAI,CAAC;QACH,MAAM,IAAA,sBAAS,EAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,gDAAgD;IAClD,CAAC;AACH,CAAC,CAAC;AANW,QAAA,cAAc,kBAMzB"}
|
|
@@ -169,13 +169,13 @@ class AgentModService {
|
|
|
169
169
|
const strictResult = await this.core.execute({
|
|
170
170
|
systemPrompt: this.generateSystemPrompt('strict'),
|
|
171
171
|
userPrompt: this.buildAgentPrompt(instruction, initialContext),
|
|
172
|
-
allowedTools: ['Read', 'Edit', 'Write'],
|
|
173
|
-
permissionMode: '
|
|
172
|
+
allowedTools: ['Read', 'Edit', 'Write', 'Bash'],
|
|
173
|
+
permissionMode: 'bypassPermissions',
|
|
174
174
|
cwd: this.projectPath,
|
|
175
175
|
resumeSessionId: sessionId,
|
|
176
176
|
model,
|
|
177
177
|
executionPolicy: {
|
|
178
|
-
disableBash:
|
|
178
|
+
disableBash: false,
|
|
179
179
|
disableSubagents: true,
|
|
180
180
|
maxTaskCalls: 0,
|
|
181
181
|
},
|
|
@@ -190,8 +190,8 @@ class AgentModService {
|
|
|
190
190
|
const fallbackResult = await this.core.execute({
|
|
191
191
|
systemPrompt: this.generateSystemPrompt('fallback'),
|
|
192
192
|
userPrompt: `${this.buildAgentPrompt(instruction, initialContext)}\n\nNote: A direct-edit pass was attempted first and modified 0 files. Explore as needed.`,
|
|
193
|
-
allowedTools: ['Glob', 'Grep', 'Read', 'Edit', 'Write', 'Task'],
|
|
194
|
-
permissionMode: '
|
|
193
|
+
allowedTools: ['Glob', 'Grep', 'Read', 'Edit', 'Write', 'Task', 'Bash'],
|
|
194
|
+
permissionMode: 'bypassPermissions',
|
|
195
195
|
cwd: this.projectPath,
|
|
196
196
|
resumeSessionId: strictResult.sessionId || sessionId,
|
|
197
197
|
model,
|
|
@@ -203,7 +203,7 @@ class AgentModService {
|
|
|
203
203
|
},
|
|
204
204
|
},
|
|
205
205
|
executionPolicy: {
|
|
206
|
-
disableBash:
|
|
206
|
+
disableBash: false,
|
|
207
207
|
disableSubagents: true,
|
|
208
208
|
maxTaskCalls: MAX_TASK_CALLS_PER_REQUEST,
|
|
209
209
|
allowedTaskAgentTypes: ['code-modifier'],
|