@proletariat/cli 0.3.105 → 0.3.109

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 (227) hide show
  1. package/dist/commands/agent/cleanup.js +13 -1
  2. package/dist/commands/agent/cleanup.js.map +1 -1
  3. package/dist/commands/claude/index.js +2 -2
  4. package/dist/commands/claude/index.js.map +1 -1
  5. package/dist/commands/feedback/list.js +4 -9
  6. package/dist/commands/feedback/list.js.map +1 -1
  7. package/dist/commands/feedback/submit.js +4 -9
  8. package/dist/commands/feedback/submit.js.map +1 -1
  9. package/dist/commands/feedback/view.js +4 -9
  10. package/dist/commands/feedback/view.js.map +1 -1
  11. package/dist/commands/gc.d.ts +1 -0
  12. package/dist/commands/gc.js +34 -1
  13. package/dist/commands/gc.js.map +1 -1
  14. package/dist/commands/notify/connect.d.ts +34 -0
  15. package/dist/commands/notify/connect.js +166 -0
  16. package/dist/commands/notify/connect.js.map +1 -0
  17. package/dist/commands/notify/disconnect.d.ts +16 -0
  18. package/dist/commands/notify/disconnect.js +45 -0
  19. package/dist/commands/notify/disconnect.js.map +1 -0
  20. package/dist/commands/notify/list.d.ts +15 -0
  21. package/dist/commands/notify/list.js +101 -0
  22. package/dist/commands/notify/list.js.map +1 -0
  23. package/dist/commands/notify/rules/add.d.ts +26 -0
  24. package/dist/commands/notify/rules/add.js +95 -0
  25. package/dist/commands/notify/rules/add.js.map +1 -0
  26. package/dist/commands/notify/rules/list.d.ts +14 -0
  27. package/dist/commands/notify/rules/list.js +82 -0
  28. package/dist/commands/notify/rules/list.js.map +1 -0
  29. package/dist/commands/notify/rules/remove.d.ts +16 -0
  30. package/dist/commands/notify/rules/remove.js +44 -0
  31. package/dist/commands/notify/rules/remove.js.map +1 -0
  32. package/dist/commands/notify/test.d.ts +16 -0
  33. package/dist/commands/notify/test.js +63 -0
  34. package/dist/commands/notify/test.js.map +1 -0
  35. package/dist/commands/orchestrate/index.js +11 -6
  36. package/dist/commands/orchestrate/index.js.map +1 -1
  37. package/dist/commands/orchestrate/machine.d.ts +29 -0
  38. package/dist/commands/orchestrate/machine.js +230 -0
  39. package/dist/commands/orchestrate/machine.js.map +1 -0
  40. package/dist/commands/pr/checks.js +4 -8
  41. package/dist/commands/pr/checks.js.map +1 -1
  42. package/dist/commands/pr/close.js +4 -8
  43. package/dist/commands/pr/close.js.map +1 -1
  44. package/dist/commands/pr/create.js +4 -8
  45. package/dist/commands/pr/create.js.map +1 -1
  46. package/dist/commands/pr/index.js +1 -1
  47. package/dist/commands/pr/index.js.map +1 -1
  48. package/dist/commands/pr/link.js +4 -8
  49. package/dist/commands/pr/link.js.map +1 -1
  50. package/dist/commands/pr/list.js +5 -9
  51. package/dist/commands/pr/list.js.map +1 -1
  52. package/dist/commands/pr/merge.d.ts +5 -0
  53. package/dist/commands/pr/merge.js +35 -11
  54. package/dist/commands/pr/merge.js.map +1 -1
  55. package/dist/commands/pr/status.js +5 -4
  56. package/dist/commands/pr/status.js.map +1 -1
  57. package/dist/commands/qa/index.js +2 -2
  58. package/dist/commands/qa/index.js.map +1 -1
  59. package/dist/commands/repo/create.js +4 -8
  60. package/dist/commands/repo/create.js.map +1 -1
  61. package/dist/commands/session/list.js +81 -41
  62. package/dist/commands/session/list.js.map +1 -1
  63. package/dist/commands/session/poke.d.ts +1 -11
  64. package/dist/commands/session/poke.js +20 -78
  65. package/dist/commands/session/poke.js.map +1 -1
  66. package/dist/commands/session/prune.js +3 -0
  67. package/dist/commands/session/prune.js.map +1 -1
  68. package/dist/commands/ticket/move.d.ts +12 -0
  69. package/dist/commands/ticket/move.js +75 -2
  70. package/dist/commands/ticket/move.js.map +1 -1
  71. package/dist/commands/work/drop.js +2 -2
  72. package/dist/commands/work/drop.js.map +1 -1
  73. package/dist/commands/work/ready.js +3 -3
  74. package/dist/commands/work/ready.js.map +1 -1
  75. package/dist/commands/work/rebase.js +4 -8
  76. package/dist/commands/work/rebase.js.map +1 -1
  77. package/dist/commands/work/run.d.ts +58 -0
  78. package/dist/commands/work/run.js +411 -0
  79. package/dist/commands/work/run.js.map +1 -0
  80. package/dist/commands/work/ship.d.ts +6 -0
  81. package/dist/commands/work/ship.js +93 -51
  82. package/dist/commands/work/ship.js.map +1 -1
  83. package/dist/commands/work/start.d.ts +1 -0
  84. package/dist/commands/work/start.js +126 -13
  85. package/dist/commands/work/start.js.map +1 -1
  86. package/dist/lib/agents/commands.d.ts +6 -0
  87. package/dist/lib/agents/commands.js +55 -2
  88. package/dist/lib/agents/commands.js.map +1 -1
  89. package/dist/lib/database/credential-store.js +2 -3
  90. package/dist/lib/database/credential-store.js.map +1 -1
  91. package/dist/lib/database/db-safety.d.ts +25 -0
  92. package/dist/lib/database/db-safety.js +35 -0
  93. package/dist/lib/database/db-safety.js.map +1 -1
  94. package/dist/lib/database/driver.js +6 -12
  95. package/dist/lib/database/driver.js.map +1 -1
  96. package/dist/lib/database/drizzle-schema.d.ts +3 -3
  97. package/dist/lib/database/drizzle.js +3 -3
  98. package/dist/lib/database/drizzle.js.map +1 -1
  99. package/dist/lib/database/index.d.ts +1 -1
  100. package/dist/lib/database/index.js +1 -1
  101. package/dist/lib/database/index.js.map +1 -1
  102. package/dist/lib/database/migrations/0021_notification_system.d.ts +2 -0
  103. package/dist/lib/database/migrations/0021_notification_system.js +39 -0
  104. package/dist/lib/database/migrations/0021_notification_system.js.map +1 -0
  105. package/dist/lib/database/migrations/0022_hook_mode_tiers.d.ts +11 -0
  106. package/dist/lib/database/migrations/0022_hook_mode_tiers.js +53 -0
  107. package/dist/lib/database/migrations/0022_hook_mode_tiers.js.map +1 -0
  108. package/dist/lib/database/migrations/index.js +4 -0
  109. package/dist/lib/database/migrations/index.js.map +1 -1
  110. package/dist/lib/database/pmo-bootstrap.js +6 -2
  111. package/dist/lib/database/pmo-bootstrap.js.map +1 -1
  112. package/dist/lib/database/workspace.js +5 -13
  113. package/dist/lib/database/workspace.js.map +1 -1
  114. package/dist/lib/events/emitting-runner.js +10 -0
  115. package/dist/lib/events/emitting-runner.js.map +1 -1
  116. package/dist/lib/execution/cc-version.d.ts +62 -0
  117. package/dist/lib/execution/cc-version.js +103 -0
  118. package/dist/lib/execution/cc-version.js.map +1 -0
  119. package/dist/lib/execution/devcontainer.js +2 -1
  120. package/dist/lib/execution/devcontainer.js.map +1 -1
  121. package/dist/lib/execution/runners/devcontainer.js +4 -1
  122. package/dist/lib/execution/runners/devcontainer.js.map +1 -1
  123. package/dist/lib/execution/runners/docker-management.js +10 -46
  124. package/dist/lib/execution/runners/docker-management.js.map +1 -1
  125. package/dist/lib/execution/runners/orchestrator.js +13 -39
  126. package/dist/lib/execution/runners/orchestrator.js.map +1 -1
  127. package/dist/lib/execution/session-utils.d.ts +88 -1
  128. package/dist/lib/execution/session-utils.js +120 -46
  129. package/dist/lib/execution/session-utils.js.map +1 -1
  130. package/dist/lib/execution/storage.js +20 -2
  131. package/dist/lib/execution/storage.js.map +1 -1
  132. package/dist/lib/flags/resolver.d.ts +8 -1
  133. package/dist/lib/flags/resolver.js +35 -2
  134. package/dist/lib/flags/resolver.js.map +1 -1
  135. package/dist/lib/gc/cascade.d.ts +99 -0
  136. package/dist/lib/gc/cascade.js +357 -0
  137. package/dist/lib/gc/cascade.js.map +1 -0
  138. package/dist/lib/gc/config.d.ts +69 -0
  139. package/dist/lib/gc/config.js +134 -0
  140. package/dist/lib/gc/config.js.map +1 -0
  141. package/dist/lib/gc/index.d.ts +36 -0
  142. package/dist/lib/gc/index.js +209 -1
  143. package/dist/lib/gc/index.js.map +1 -1
  144. package/dist/lib/init/index.js +10 -1
  145. package/dist/lib/init/index.js.map +1 -1
  146. package/dist/lib/machine-db.d.ts +144 -0
  147. package/dist/lib/machine-db.js +338 -0
  148. package/dist/lib/machine-db.js.map +1 -0
  149. package/dist/lib/machine-orchestrator.d.ts +35 -0
  150. package/dist/lib/machine-orchestrator.js +139 -0
  151. package/dist/lib/machine-orchestrator.js.map +1 -0
  152. package/dist/lib/notifications/dispatcher.d.ts +29 -0
  153. package/dist/lib/notifications/dispatcher.js +281 -0
  154. package/dist/lib/notifications/dispatcher.js.map +1 -0
  155. package/dist/lib/notifications/index.d.ts +13 -0
  156. package/dist/lib/notifications/index.js +18 -0
  157. package/dist/lib/notifications/index.js.map +1 -0
  158. package/dist/lib/notifications/manager.d.ts +46 -0
  159. package/dist/lib/notifications/manager.js +200 -0
  160. package/dist/lib/notifications/manager.js.map +1 -0
  161. package/dist/lib/notifications/storage.d.ts +60 -0
  162. package/dist/lib/notifications/storage.js +182 -0
  163. package/dist/lib/notifications/storage.js.map +1 -0
  164. package/dist/lib/notifications/types.d.ts +126 -0
  165. package/dist/lib/notifications/types.js +16 -0
  166. package/dist/lib/notifications/types.js.map +1 -0
  167. package/dist/lib/orchestrate/actions.js +182 -3
  168. package/dist/lib/orchestrate/actions.js.map +1 -1
  169. package/dist/lib/orchestrate/config-loader.js +9 -35
  170. package/dist/lib/orchestrate/config-loader.js.map +1 -1
  171. package/dist/lib/orchestrate/engine.d.ts +53 -1
  172. package/dist/lib/orchestrate/engine.js +74 -3
  173. package/dist/lib/orchestrate/engine.js.map +1 -1
  174. package/dist/lib/orchestrate/escalation.d.ts +87 -0
  175. package/dist/lib/orchestrate/escalation.js +63 -0
  176. package/dist/lib/orchestrate/escalation.js.map +1 -0
  177. package/dist/lib/orchestrate/index.d.ts +2 -0
  178. package/dist/lib/orchestrate/index.js +1 -0
  179. package/dist/lib/orchestrate/index.js.map +1 -1
  180. package/dist/lib/orchestrate/llm-agent.d.ts +101 -0
  181. package/dist/lib/orchestrate/llm-agent.js +295 -0
  182. package/dist/lib/orchestrate/llm-agent.js.map +1 -0
  183. package/dist/lib/orchestrate/presets.d.ts +4 -3
  184. package/dist/lib/orchestrate/presets.js +13 -8
  185. package/dist/lib/orchestrate/presets.js.map +1 -1
  186. package/dist/lib/orchestrate/types.d.ts +7 -1
  187. package/dist/lib/orchestrate/types.js +1 -0
  188. package/dist/lib/orchestrate/types.js.map +1 -1
  189. package/dist/lib/pmo/base-command.js +1 -1
  190. package/dist/lib/pmo/base-command.js.map +1 -1
  191. package/dist/lib/pmo/find-pmo.d.ts +8 -0
  192. package/dist/lib/pmo/find-pmo.js +63 -2
  193. package/dist/lib/pmo/find-pmo.js.map +1 -1
  194. package/dist/lib/pmo/index.d.ts +1 -1
  195. package/dist/lib/pmo/index.js +1 -1
  196. package/dist/lib/pmo/index.js.map +1 -1
  197. package/dist/lib/pmo/pmo-context.js +1 -1
  198. package/dist/lib/pmo/pmo-context.js.map +1 -1
  199. package/dist/lib/pmo/storage/index.js +2 -1
  200. package/dist/lib/pmo/storage/index.js.map +1 -1
  201. package/dist/lib/pr/index.d.ts +32 -0
  202. package/dist/lib/pr/index.js +45 -0
  203. package/dist/lib/pr/index.js.map +1 -1
  204. package/dist/lib/registry/index.js +0 -1
  205. package/dist/lib/registry/index.js.map +1 -1
  206. package/dist/lib/signal-handler.d.ts +8 -0
  207. package/dist/lib/signal-handler.js +33 -0
  208. package/dist/lib/signal-handler.js.map +1 -1
  209. package/dist/lib/themes.js +8 -1
  210. package/dist/lib/themes.js.map +1 -1
  211. package/dist/lib/work-lifecycle/container-cleanup-hook.d.ts +17 -7
  212. package/dist/lib/work-lifecycle/container-cleanup-hook.js +64 -11
  213. package/dist/lib/work-lifecycle/container-cleanup-hook.js.map +1 -1
  214. package/dist/lib/work-lifecycle/hooks/executor.d.ts +22 -2
  215. package/dist/lib/work-lifecycle/hooks/executor.js +46 -8
  216. package/dist/lib/work-lifecycle/hooks/executor.js.map +1 -1
  217. package/dist/lib/work-lifecycle/hooks/manager.d.ts +62 -3
  218. package/dist/lib/work-lifecycle/hooks/manager.js +285 -4
  219. package/dist/lib/work-lifecycle/hooks/manager.js.map +1 -1
  220. package/dist/lib/work-lifecycle/hooks/types.d.ts +36 -5
  221. package/dist/lib/work-lifecycle/hooks/types.js +1 -1
  222. package/dist/lib/work-lifecycle/hooks/types.js.map +1 -1
  223. package/dist/lib/workspace-resolution.d.ts +73 -0
  224. package/dist/lib/workspace-resolution.js +188 -0
  225. package/dist/lib/workspace-resolution.js.map +1 -0
  226. package/oclif.manifest.json +2830 -2142
  227. package/package.json +1 -1
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Workspace Resolution for Ticketless Work
3
+ *
4
+ * Auto-detects the directory type and resolves the appropriate working
5
+ * directory for an agent. Handles git repos, non-git directories, and
6
+ * headless (no directory) mode.
7
+ *
8
+ * Resolution rules:
9
+ * 1. Git repo (default) → create worktree for isolation
10
+ * 2. Git repo + noWorktree → work in-place
11
+ * 3. Non-git directory → work in-place (auto-detected)
12
+ * 4. No directory specified → create temp workspace (headless mode)
13
+ * 5. --repo URL → clone into temp dir (handled by caller)
14
+ *
15
+ * The caller should not need to specify a mode — this module detects
16
+ * git vs non-git and does the right thing.
17
+ */
18
+ export type WorkspaceMode = 'worktree' | 'in-place' | 'headless';
19
+ export interface ResolvedWorkspace {
20
+ /** Actual directory the agent will work in */
21
+ workDir: string;
22
+ /** Original source directory (same as workDir for in-place/headless) */
23
+ sourceDir: string;
24
+ /** Whether the directory is inside a git repository */
25
+ isGitRepo: boolean;
26
+ /** Current git branch (null if not a git repo) */
27
+ branch: string | null;
28
+ /** How the workspace was resolved */
29
+ mode: WorkspaceMode;
30
+ /** Whether the workspace is a temporary directory (should be cleaned up) */
31
+ isTemp: boolean;
32
+ }
33
+ /**
34
+ * Check if a directory is inside a git repository.
35
+ */
36
+ export declare function isGitRepo(dir: string): boolean;
37
+ /**
38
+ * Get the git root directory for a path.
39
+ */
40
+ export declare function getGitRoot(dir: string): string | null;
41
+ /**
42
+ * Get the current git branch.
43
+ */
44
+ export declare function getCurrentBranch(dir: string): string | null;
45
+ /**
46
+ * Create a git worktree for isolated agent work.
47
+ * Returns the path to the new worktree directory.
48
+ */
49
+ export declare function createWorktree(repoDir: string, agentName: string): string;
50
+ /**
51
+ * Create a temporary workspace directory for headless work.
52
+ * Used when no --dir or --repo is specified (research, thinking, non-code tasks).
53
+ */
54
+ export declare function createTempWorkspace(agentName: string): string;
55
+ /**
56
+ * Resolve the workspace for a ticketless work run.
57
+ *
58
+ * Auto-detects git vs non-git and chooses the appropriate strategy:
59
+ * - Git repo → worktree (default) or in-place (--no-worktree)
60
+ * - Non-git dir → in-place
61
+ * - No dir → temp workspace (headless)
62
+ *
63
+ * @param options Resolution options
64
+ * @returns Resolved workspace info
65
+ */
66
+ export declare function resolveWorkspace(options: {
67
+ /** Explicit directory (--dir flag) */
68
+ dir?: string;
69
+ /** Agent name (for worktree/temp naming) */
70
+ agentName: string;
71
+ /** Skip worktree creation even for git repos (--no-worktree) */
72
+ noWorktree?: boolean;
73
+ }): ResolvedWorkspace;
@@ -0,0 +1,188 @@
1
+ /**
2
+ * Workspace Resolution for Ticketless Work
3
+ *
4
+ * Auto-detects the directory type and resolves the appropriate working
5
+ * directory for an agent. Handles git repos, non-git directories, and
6
+ * headless (no directory) mode.
7
+ *
8
+ * Resolution rules:
9
+ * 1. Git repo (default) → create worktree for isolation
10
+ * 2. Git repo + noWorktree → work in-place
11
+ * 3. Non-git directory → work in-place (auto-detected)
12
+ * 4. No directory specified → create temp workspace (headless mode)
13
+ * 5. --repo URL → clone into temp dir (handled by caller)
14
+ *
15
+ * The caller should not need to specify a mode — this module detects
16
+ * git vs non-git and does the right thing.
17
+ */
18
+ import * as fs from 'node:fs';
19
+ import * as path from 'node:path';
20
+ import * as os from 'node:os';
21
+ import { execSync } from 'node:child_process';
22
+ // =============================================================================
23
+ // Git Detection
24
+ // =============================================================================
25
+ /**
26
+ * Check if a directory is inside a git repository.
27
+ */
28
+ export function isGitRepo(dir) {
29
+ try {
30
+ execSync('git rev-parse --git-dir', {
31
+ cwd: dir,
32
+ stdio: ['pipe', 'pipe', 'pipe'],
33
+ encoding: 'utf-8',
34
+ });
35
+ return true;
36
+ }
37
+ catch {
38
+ return false;
39
+ }
40
+ }
41
+ /**
42
+ * Get the git root directory for a path.
43
+ */
44
+ export function getGitRoot(dir) {
45
+ try {
46
+ return execSync('git rev-parse --show-toplevel', {
47
+ cwd: dir,
48
+ encoding: 'utf-8',
49
+ stdio: ['pipe', 'pipe', 'pipe'],
50
+ }).trim();
51
+ }
52
+ catch {
53
+ return null;
54
+ }
55
+ }
56
+ /**
57
+ * Get the current git branch.
58
+ */
59
+ export function getCurrentBranch(dir) {
60
+ try {
61
+ return execSync('git rev-parse --abbrev-ref HEAD', {
62
+ cwd: dir,
63
+ encoding: 'utf-8',
64
+ stdio: ['pipe', 'pipe', 'pipe'],
65
+ }).trim();
66
+ }
67
+ catch {
68
+ return null;
69
+ }
70
+ }
71
+ // =============================================================================
72
+ // Worktree Management
73
+ // =============================================================================
74
+ /**
75
+ * Create a git worktree for isolated agent work.
76
+ * Returns the path to the new worktree directory.
77
+ */
78
+ export function createWorktree(repoDir, agentName) {
79
+ const gitRoot = getGitRoot(repoDir);
80
+ if (!gitRoot) {
81
+ throw new Error(`Not a git repository: ${repoDir}`);
82
+ }
83
+ // Create worktree in a sibling directory to avoid polluting the repo
84
+ const worktreeBase = path.join(os.tmpdir(), 'prlt-worktrees');
85
+ fs.mkdirSync(worktreeBase, { recursive: true });
86
+ const worktreeDir = path.join(worktreeBase, `${agentName}-${Date.now()}`);
87
+ const branchName = `prlt-run/${agentName}-${Date.now()}`;
88
+ // Get the current HEAD as the base for the worktree
89
+ const baseRef = getCurrentBranch(gitRoot) || 'HEAD';
90
+ execSync(`git worktree add "${worktreeDir}" -b "${branchName}" "${baseRef}"`, {
91
+ cwd: gitRoot,
92
+ stdio: ['pipe', 'pipe', 'pipe'],
93
+ });
94
+ return worktreeDir;
95
+ }
96
+ // =============================================================================
97
+ // Temp Workspace (Headless Mode)
98
+ // =============================================================================
99
+ /**
100
+ * Create a temporary workspace directory for headless work.
101
+ * Used when no --dir or --repo is specified (research, thinking, non-code tasks).
102
+ */
103
+ export function createTempWorkspace(agentName) {
104
+ const tmpBase = path.join(os.tmpdir(), 'prlt-workspaces');
105
+ fs.mkdirSync(tmpBase, { recursive: true });
106
+ const tmpDir = path.join(tmpBase, `${agentName}-${Date.now()}`);
107
+ fs.mkdirSync(tmpDir, { recursive: true });
108
+ return tmpDir;
109
+ }
110
+ // =============================================================================
111
+ // Resolve Workspace
112
+ // =============================================================================
113
+ /**
114
+ * Resolve the workspace for a ticketless work run.
115
+ *
116
+ * Auto-detects git vs non-git and chooses the appropriate strategy:
117
+ * - Git repo → worktree (default) or in-place (--no-worktree)
118
+ * - Non-git dir → in-place
119
+ * - No dir → temp workspace (headless)
120
+ *
121
+ * @param options Resolution options
122
+ * @returns Resolved workspace info
123
+ */
124
+ export function resolveWorkspace(options) {
125
+ const { dir, agentName, noWorktree = false } = options;
126
+ // ─── No directory: headless mode ──────────────────────────────
127
+ if (!dir) {
128
+ const tmpDir = createTempWorkspace(agentName);
129
+ return {
130
+ workDir: tmpDir,
131
+ sourceDir: tmpDir,
132
+ isGitRepo: false,
133
+ branch: null,
134
+ mode: 'headless',
135
+ isTemp: true,
136
+ };
137
+ }
138
+ // ─── Explicit directory ───────────────────────────────────────
139
+ const resolvedDir = path.resolve(dir);
140
+ const gitRepo = isGitRepo(resolvedDir);
141
+ if (!gitRepo) {
142
+ // Non-git directory: work in-place (auto-detected)
143
+ return {
144
+ workDir: resolvedDir,
145
+ sourceDir: resolvedDir,
146
+ isGitRepo: false,
147
+ branch: null,
148
+ mode: 'in-place',
149
+ isTemp: false,
150
+ };
151
+ }
152
+ // Git repo
153
+ if (noWorktree) {
154
+ // User opted out of worktree isolation
155
+ return {
156
+ workDir: resolvedDir,
157
+ sourceDir: resolvedDir,
158
+ isGitRepo: true,
159
+ branch: getCurrentBranch(resolvedDir),
160
+ mode: 'in-place',
161
+ isTemp: false,
162
+ };
163
+ }
164
+ // Default: create worktree for isolation
165
+ try {
166
+ const worktreeDir = createWorktree(resolvedDir, agentName);
167
+ return {
168
+ workDir: worktreeDir,
169
+ sourceDir: resolvedDir,
170
+ isGitRepo: true,
171
+ branch: getCurrentBranch(worktreeDir),
172
+ mode: 'worktree',
173
+ isTemp: true,
174
+ };
175
+ }
176
+ catch {
177
+ // Worktree creation failed — fall back to in-place
178
+ return {
179
+ workDir: resolvedDir,
180
+ sourceDir: resolvedDir,
181
+ isGitRepo: true,
182
+ branch: getCurrentBranch(resolvedDir),
183
+ mode: 'in-place',
184
+ isTemp: false,
185
+ };
186
+ }
187
+ }
188
+ //# sourceMappingURL=workspace-resolution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-resolution.js","sourceRoot":"","sources":["../../src/lib/workspace-resolution.ts"],"names":[],"mappings":"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"}