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.
Files changed (157) hide show
  1. package/dist/mcp/agent-variants/SessionStore.d.ts +78 -2
  2. package/dist/mcp/agent-variants/SessionStore.d.ts.map +1 -1
  3. package/dist/mcp/agent-variants/SessionStore.js +464 -62
  4. package/dist/mcp/agent-variants/SessionStore.js.map +1 -1
  5. package/dist/mcp/agent-variants/WorktreeOrchestrator.d.ts +331 -9
  6. package/dist/mcp/agent-variants/WorktreeOrchestrator.d.ts.map +1 -1
  7. package/dist/mcp/agent-variants/WorktreeOrchestrator.js +1985 -61
  8. package/dist/mcp/agent-variants/WorktreeOrchestrator.js.map +1 -1
  9. package/dist/mcp/agent-variants/WorktreeOrchestrator.testHelpers.d.ts +65 -0
  10. package/dist/mcp/agent-variants/WorktreeOrchestrator.testHelpers.d.ts.map +1 -0
  11. package/dist/mcp/agent-variants/WorktreeOrchestrator.testHelpers.js +162 -0
  12. package/dist/mcp/agent-variants/WorktreeOrchestrator.testHelpers.js.map +1 -0
  13. package/dist/mcp/agent-variants/contracts.d.ts +2508 -10
  14. package/dist/mcp/agent-variants/contracts.d.ts.map +1 -1
  15. package/dist/mcp/agent-variants/contracts.js +295 -5
  16. package/dist/mcp/agent-variants/contracts.js.map +1 -1
  17. package/dist/mcp/agent-variants/createProjectArtifacts.d.ts +78 -0
  18. package/dist/mcp/agent-variants/createProjectArtifacts.d.ts.map +1 -0
  19. package/dist/mcp/agent-variants/createProjectArtifacts.js +123 -0
  20. package/dist/mcp/agent-variants/createProjectArtifacts.js.map +1 -0
  21. package/dist/mcp/agent-variants/createZeroToOneTool.d.ts +241 -0
  22. package/dist/mcp/agent-variants/createZeroToOneTool.d.ts.map +1 -0
  23. package/dist/mcp/agent-variants/createZeroToOneTool.js +213 -0
  24. package/dist/mcp/agent-variants/createZeroToOneTool.js.map +1 -0
  25. package/dist/mcp/agent-variants/designContextStore.d.ts +160 -0
  26. package/dist/mcp/agent-variants/designContextStore.d.ts.map +1 -0
  27. package/dist/mcp/agent-variants/designContextStore.js +295 -0
  28. package/dist/mcp/agent-variants/designContextStore.js.map +1 -0
  29. package/dist/mcp/agent-variants/elementRefToTarget.d.ts +21 -0
  30. package/dist/mcp/agent-variants/elementRefToTarget.d.ts.map +1 -0
  31. package/dist/mcp/agent-variants/elementRefToTarget.js +47 -0
  32. package/dist/mcp/agent-variants/elementRefToTarget.js.map +1 -0
  33. package/dist/mcp/agent-variants/errors.d.ts +1 -1
  34. package/dist/mcp/agent-variants/errors.d.ts.map +1 -1
  35. package/dist/mcp/agent-variants/errors.js +7 -0
  36. package/dist/mcp/agent-variants/errors.js.map +1 -1
  37. package/dist/mcp/agent-variants/index.d.ts +4 -2
  38. package/dist/mcp/agent-variants/index.d.ts.map +1 -1
  39. package/dist/mcp/agent-variants/index.js +7 -1
  40. package/dist/mcp/agent-variants/index.js.map +1 -1
  41. package/dist/mcp/agent-variants/inspirationDesignContext.d.ts +440 -0
  42. package/dist/mcp/agent-variants/inspirationDesignContext.d.ts.map +1 -0
  43. package/dist/mcp/agent-variants/inspirationDesignContext.js +2467 -0
  44. package/dist/mcp/agent-variants/inspirationDesignContext.js.map +1 -0
  45. package/dist/mcp/agent-variants/pendingChangesAdapter.d.ts.map +1 -1
  46. package/dist/mcp/agent-variants/pendingChangesAdapter.js +21 -7
  47. package/dist/mcp/agent-variants/pendingChangesAdapter.js.map +1 -1
  48. package/dist/mcp/agent-variants/previewQa.d.ts +61 -0
  49. package/dist/mcp/agent-variants/previewQa.d.ts.map +1 -0
  50. package/dist/mcp/agent-variants/previewQa.js +374 -0
  51. package/dist/mcp/agent-variants/previewQa.js.map +1 -0
  52. package/dist/mcp/agent-variants/sourceContext.d.ts +8 -0
  53. package/dist/mcp/agent-variants/sourceContext.d.ts.map +1 -0
  54. package/dist/mcp/agent-variants/sourceContext.js +183 -0
  55. package/dist/mcp/agent-variants/sourceContext.js.map +1 -0
  56. package/dist/mcp/agent-variants/tools.d.ts +36 -0
  57. package/dist/mcp/agent-variants/tools.d.ts.map +1 -1
  58. package/dist/mcp/agent-variants/tools.js +451 -19
  59. package/dist/mcp/agent-variants/tools.js.map +1 -1
  60. package/dist/mcp/changeBatchClassification.d.ts +30 -0
  61. package/dist/mcp/changeBatchClassification.d.ts.map +1 -0
  62. package/dist/mcp/changeBatchClassification.js +65 -0
  63. package/dist/mcp/changeBatchClassification.js.map +1 -0
  64. package/dist/mcp/server.d.ts.map +1 -1
  65. package/dist/mcp/server.js +258 -41
  66. package/dist/mcp/server.js.map +1 -1
  67. package/dist/prompts/agentModPrompts.js +4 -4
  68. package/dist/prompts/agentModPrompts.js.map +1 -1
  69. package/dist/proxy-middleware/proxy-config.d.ts.map +1 -1
  70. package/dist/proxy-middleware/proxy-config.js +1 -15
  71. package/dist/proxy-middleware/proxy-config.js.map +1 -1
  72. package/dist/routes/agentVariants.d.ts +3 -1
  73. package/dist/routes/agentVariants.d.ts.map +1 -1
  74. package/dist/routes/agentVariants.js +138 -13
  75. package/dist/routes/agentVariants.js.map +1 -1
  76. package/dist/routes/mcp.d.ts +7 -1
  77. package/dist/routes/mcp.d.ts.map +1 -1
  78. package/dist/routes/mcp.js +139 -16
  79. package/dist/routes/mcp.js.map +1 -1
  80. package/dist/server.d.ts.map +1 -1
  81. package/dist/server.js +23 -5
  82. package/dist/server.js.map +1 -1
  83. package/dist/services/ProjectDetectionService.d.ts.map +1 -1
  84. package/dist/services/ProjectDetectionService.js +9 -0
  85. package/dist/services/ProjectDetectionService.js.map +1 -1
  86. package/dist/services/SessionBridgeService.d.ts +22 -0
  87. package/dist/services/SessionBridgeService.d.ts.map +1 -1
  88. package/dist/services/SessionBridgeService.js +61 -0
  89. package/dist/services/SessionBridgeService.js.map +1 -1
  90. package/dist/services/TelemetryService.d.ts +121 -0
  91. package/dist/services/TelemetryService.d.ts.map +1 -1
  92. package/dist/services/TelemetryService.js +155 -0
  93. package/dist/services/TelemetryService.js.map +1 -1
  94. package/dist/services/WorktreeManager.d.ts +116 -6
  95. package/dist/services/WorktreeManager.d.ts.map +1 -1
  96. package/dist/services/WorktreeManager.js +394 -19
  97. package/dist/services/WorktreeManager.js.map +1 -1
  98. package/dist/services/agent/AgentModService.js +6 -6
  99. package/dist/services/agent/AgentModService.js.map +1 -1
  100. package/dist/services/templates/designCatalog.d.ts +27 -0
  101. package/dist/services/templates/designCatalog.d.ts.map +1 -0
  102. package/dist/services/templates/designCatalog.js +141 -0
  103. package/dist/services/templates/designCatalog.js.map +1 -0
  104. package/dist/services/templates/designmd/airbnb.md +545 -0
  105. package/dist/services/templates/designmd/airtable.md +554 -0
  106. package/dist/services/templates/designmd/apple.md +562 -0
  107. package/dist/services/templates/designmd/binance.md +634 -0
  108. package/dist/services/templates/designmd/bmw-m.md +503 -0
  109. package/dist/services/templates/designmd/bmw.md +544 -0
  110. package/dist/services/templates/designmd/bugatti.md +454 -0
  111. package/dist/services/templates/designmd/cal.md +542 -0
  112. package/dist/services/templates/designmd/claude.md +589 -0
  113. package/dist/services/templates/designmd/clay.md +541 -0
  114. package/dist/services/templates/designmd/cohere.md +451 -0
  115. package/dist/services/templates/designmd/cursor.md +537 -0
  116. package/dist/services/templates/designmd/expo.md +526 -0
  117. package/dist/services/templates/designmd/figma.md +578 -0
  118. package/dist/services/templates/designmd/framer.md +544 -0
  119. package/dist/services/templates/designmd/hp.md +670 -0
  120. package/dist/services/templates/designmd/linear.app.md +548 -0
  121. package/dist/services/templates/designmd/mintlify.md +852 -0
  122. package/dist/services/templates/designmd/miro.md +825 -0
  123. package/dist/services/templates/designmd/notion.md +821 -0
  124. package/dist/services/templates/designmd/raycast.md +669 -0
  125. package/dist/services/templates/designmd/resend.md +585 -0
  126. package/dist/services/templates/designmd/sentry.md +262 -0
  127. package/dist/services/templates/designmd/shopify.md +350 -0
  128. package/dist/services/templates/designmd/spotify.md +246 -0
  129. package/dist/services/templates/designmd/stripe.md +322 -0
  130. package/dist/services/templates/designmd/supabase.md +255 -0
  131. package/dist/services/templates/designmd/superhuman.md +252 -0
  132. package/dist/services/templates/designmd/uber.md +295 -0
  133. package/dist/services/templates/designmd/vercel.md +310 -0
  134. package/dist/services/templates/viteReactTs.d.ts +48 -0
  135. package/dist/services/templates/viteReactTs.d.ts.map +1 -0
  136. package/dist/services/templates/viteReactTs.js +274 -0
  137. package/dist/services/templates/viteReactTs.js.map +1 -0
  138. package/dist/types/change-request-types.d.ts +29 -3
  139. package/dist/types/change-request-types.d.ts.map +1 -1
  140. package/dist/utils/skills/claude-skill.d.ts +2 -2
  141. package/dist/utils/skills/claude-skill.d.ts.map +1 -1
  142. package/dist/utils/skills/claude-skill.js +19 -98
  143. package/dist/utils/skills/claude-skill.js.map +1 -1
  144. package/dist/utils/skills/cursor-rules.d.ts +2 -2
  145. package/dist/utils/skills/cursor-rules.d.ts.map +1 -1
  146. package/dist/utils/skills/cursor-rules.js +15 -80
  147. package/dist/utils/skills/cursor-rules.js.map +1 -1
  148. package/dist/utils/skills/shared-variants-protocol.d.ts +23 -0
  149. package/dist/utils/skills/shared-variants-protocol.d.ts.map +1 -0
  150. package/dist/utils/skills/shared-variants-protocol.js +130 -0
  151. package/dist/utils/skills/shared-variants-protocol.js.map +1 -0
  152. package/package.json +6 -6
  153. package/src/ui/dist/assets/main-CpX7fB64.js +382 -0
  154. package/src/ui/dist/assets/main-Qqe2_oMT.css +1 -0
  155. package/src/ui/dist/index.html +2 -2
  156. package/src/ui/dist/assets/main-AsPCtLsx.js +0 -382
  157. 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
- const WORKTREE_BASE = '/tmp';
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
- const INSTANCE_PREFIX = `${WORKTREE_PREFIX}-pid${process.pid}`;
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 lets
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
- this.resolveProjectPath =
28
- typeof projectPath === 'string' ? () => projectPath : projectPath;
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
- return this.resolveProjectPath();
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(await this.getGitRoot(), path_1.default.resolve(this.projectPath));
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(WORKTREE_BASE, `${INSTANCE_PREFIX}-${sessionId}-${i}`);
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
- async cleanupSession(sessionId) {
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(WORKTREE_BASE, `${INSTANCE_PREFIX}-${sessionId}-`);
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(WORKTREE_BASE)
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(WORKTREE_BASE, entry), { recursive: true, force: true });
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":";;;;;;AAAA,gDAAwB;AACxB,4CAAoB;AACpB,8CAAsB;AACtB,2CAAuC;AACvC,iDAAyD;AACzD,4CAA+C;AAE/C,MAAM,GAAG,GAAG,IAAA,qBAAY,EAAC,iBAAiB,CAAC,CAAC;AAC5C,MAAM,aAAa,GAAG,MAAM,CAAC;AAC7B,MAAM,eAAe,GAAG,gBAAgB,CAAC;AACzC,4EAA4E;AAC5E,MAAM,eAAe,GAAG,GAAG,eAAe,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;AAE/D,MAAa,eAAe;IACT,kBAAkB,CAAe;IAElD;;;;;OAKG;IACH,YAAY,WAAoC;QAC9C,IAAI,CAAC,kBAAkB;YACrB,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;IACtE,CAAC;IAED,IAAY,WAAW;QACrB,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACnC,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,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,MAAM,GAAG,GAAG,IAAA,sBAAS,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,kBAAkB,GAAG,cAAI,CAAC,QAAQ,CACtC,MAAM,IAAI,CAAC,UAAU,EAAE,EACvB,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,aAAa,EACb,GAAG,eAAe,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;gBACD,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,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;QAE7E,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,yCAAyC;IACzC,KAAK,CAAC,cAAc,CAAC,SAAiB;QACpC,MAAM,GAAG,GAAG,IAAA,sBAAS,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CACvB,aAAa,EACb,GAAG,eAAe,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;IACH,CAAC;CACF;AAxTD,0CAwTC;AAEM,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,IAAI,CAAC;QACH,wEAAwE;QACxE,0EAA0E;QAC1E,MAAM,OAAO,GAAG,YAAE;aACf,WAAW,CAAC,aAAa,CAAC;aAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;QAChD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,YAAE,CAAC,MAAM,CAAC,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;AACH,CAAC,CAAC;AAbW,QAAA,wBAAwB,4BAanC;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"}
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: 'acceptEdits',
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: true,
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: 'acceptEdits',
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: true,
206
+ disableBash: false,
207
207
  disableSubagents: true,
208
208
  maxTaskCalls: MAX_TASK_CALLS_PER_REQUEST,
209
209
  allowedTaskAgentTypes: ['code-modifier'],