spec-cat 0.1.63 → 0.1.64
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/.output/nitro.json +1 -1
- package/.output/public/_nuxt/BOa_3MnO.js +1 -0
- package/.output/public/_nuxt/{FfyCVKRU.js → Be7Q-KZm.js} +1 -1
- package/.output/public/_nuxt/{DPOGSCeV.js → C0xGK0_5.js} +1 -1
- package/.output/public/_nuxt/{Su-Cl_JF.js → C5uvKiQJ.js} +1 -1
- package/.output/public/_nuxt/{DIOhMCOf.js → CJOi1pKi.js} +3 -3
- package/.output/public/_nuxt/{D4LyIv_t.js → Cqzfu4b1.js} +1 -1
- package/.output/public/_nuxt/CrxPmt5A.js +1 -0
- package/.output/public/_nuxt/D0ZHasco.js +105 -0
- package/.output/public/_nuxt/DIUADCOG.js +1 -0
- package/.output/public/_nuxt/DaYnMifu.js +43 -0
- package/.output/public/_nuxt/DhK8N2yk.js +58 -0
- package/.output/public/_nuxt/{Bz2rU2zs.js → DntGb46R.js} +1 -1
- package/.output/public/_nuxt/{DwpuOtAP.js → FCWUBLV4.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/39e9ce1e-ba3f-4066-8a58-66dfecfe2817.json +1 -0
- package/.output/public/_nuxt/builds/meta/dev.json +1 -0
- package/.output/public/_nuxt/default.DKcvUy2t.css +1 -0
- package/.output/public/_nuxt/entry.uBSFaL6A.css +1 -0
- package/.output/public/_nuxt/{useTheme.Cny4Z64J.css → useTheme.B4wINCoW.css} +1 -1
- package/.output/server/chunks/_/aiProviderRegistry.mjs +1 -2
- package/.output/server/chunks/_/aiProviderRegistry.mjs.map +1 -1
- package/.output/server/chunks/_/aiProviderSelection.mjs +2 -2
- package/.output/server/chunks/_/chatGit.mjs +1 -2
- package/.output/server/chunks/_/chatGit.mjs.map +1 -1
- package/.output/server/chunks/_/claudeProvider.mjs +1 -215
- package/.output/server/chunks/_/claudeProvider.mjs.map +1 -1
- package/.output/server/chunks/_/claudeService.mjs +50 -54
- package/.output/server/chunks/_/claudeService.mjs.map +1 -1
- package/.output/server/chunks/_/codexProvider.mjs +47 -812
- package/.output/server/chunks/_/codexProvider.mjs.map +1 -1
- package/.output/server/chunks/_/git.mjs +1 -2
- package/.output/server/chunks/_/git.mjs.map +1 -1
- package/.output/server/chunks/_/gitApiHelpers.mjs +1 -1
- package/.output/server/chunks/_/gitBranchOperations.mjs +1 -1
- package/.output/server/chunks/_/interactiveProviderQuery.mjs +160 -0
- package/.output/server/chunks/_/interactiveProviderQuery.mjs.map +1 -0
- package/.output/server/chunks/_/jobPersister.mjs +37 -6
- package/.output/server/chunks/_/jobPersister.mjs.map +1 -1
- package/.output/server/chunks/_/jobQueue.mjs +430 -278
- package/.output/server/chunks/_/jobQueue.mjs.map +1 -1
- package/.output/server/chunks/_/terminalSessions.mjs +582 -0
- package/.output/server/chunks/_/terminalSessions.mjs.map +1 -0
- package/.output/server/chunks/_/worktreeSetup.mjs +98 -0
- package/.output/server/chunks/_/worktreeSetup.mjs.map +1 -0
- package/.output/server/chunks/build/client.precomputed.mjs +1 -1
- package/.output/server/chunks/build/client.precomputed.mjs.map +1 -1
- package/.output/server/chunks/nitro/nitro.mjs +1239 -625
- package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
- package/.output/server/chunks/routes/_ws.mjs +21 -111
- package/.output/server/chunks/routes/_ws.mjs.map +1 -1
- package/.output/server/chunks/routes/api/ai/providers.get.mjs +3 -1
- package/.output/server/chunks/routes/api/ai/providers.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/compare.get.mjs +4 -5
- package/.output/server/chunks/routes/api/chat/compare.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/context.get.mjs +4 -2
- package/.output/server/chunks/routes/api/chat/context.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/finalize.post.mjs +11 -7
- package/.output/server/chunks/routes/api/chat/finalize.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/generate-commit-message.post.mjs +26 -29
- package/.output/server/chunks/routes/api/chat/generate-commit-message.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/preview-sync.post.mjs +4 -5
- package/.output/server/chunks/routes/api/chat/preview-sync.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/preview.delete.mjs +4 -5
- package/.output/server/chunks/routes/api/chat/preview.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/preview.post.mjs +4 -6
- package/.output/server/chunks/routes/api/chat/preview.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/rebase.post.mjs +4 -7
- package/.output/server/chunks/routes/api/chat/rebase.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/worktree-commit.post.mjs +4 -6
- package/.output/server/chunks/routes/api/chat/worktree-commit.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/worktree.delete.mjs +11 -4
- package/.output/server/chunks/routes/api/chat/worktree.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/worktree.post.mjs +4 -6
- package/.output/server/chunks/routes/api/chat/worktree.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/conversations/_conversationId/archive.post.mjs +10 -9
- package/.output/server/chunks/routes/api/conversations/_conversationId/archive.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/conversations/archives/_archiveId/restore.post.mjs +4 -7
- package/.output/server/chunks/routes/api/conversations/archives/_archiveId/restore.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/conversations/archives/_archiveId_.delete.mjs +4 -7
- package/.output/server/chunks/routes/api/conversations/archives/_archiveId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/conversations/archives.delete.mjs +40 -0
- package/.output/server/chunks/routes/api/conversations/archives.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/conversations/archives.get.mjs +4 -7
- package/.output/server/chunks/routes/api/conversations/archives.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/conversations/update.post.mjs +4 -7
- package/.output/server/chunks/routes/api/conversations/update.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/conversations.get.mjs +4 -7
- package/.output/server/chunks/routes/api/conversations.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/conversations.post.mjs +4 -7
- package/.output/server/chunks/routes/api/conversations.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/cwd.get.mjs +4 -2
- package/.output/server/chunks/routes/api/cwd.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/branch-rename.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/branch-rename.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/branch.delete.mjs +4 -5
- package/.output/server/chunks/routes/api/git/branch.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/branches.get.mjs +4 -6
- package/.output/server/chunks/routes/api/git/branches.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/checkout.post.mjs +4 -5
- package/.output/server/chunks/routes/api/git/checkout.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/cherry-pick.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/cherry-pick.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/clean.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/clean.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/commit/_id_.get.mjs +3 -4
- package/.output/server/chunks/routes/api/git/commit/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/commit.post.mjs +4 -5
- package/.output/server/chunks/routes/api/git/commit.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/diff.get.mjs +4 -5
- package/.output/server/chunks/routes/api/git/diff.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/fetch.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/fetch.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/file-diff.get.mjs +4 -5
- package/.output/server/chunks/routes/api/git/file-diff.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/graph.get.mjs +4 -5
- package/.output/server/chunks/routes/api/git/graph.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/log.get.mjs +4 -5
- package/.output/server/chunks/routes/api/git/log.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/merge-base.get.mjs +4 -5
- package/.output/server/chunks/routes/api/git/merge-base.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/merge.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/merge.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/pull.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/pull.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/push.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/push.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/rebase.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/rebase.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/remote.delete.mjs +3 -4
- package/.output/server/chunks/routes/api/git/remote.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/remote.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/remote.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/remote.put.mjs +3 -4
- package/.output/server/chunks/routes/api/git/remote.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/remotes.get.mjs +3 -4
- package/.output/server/chunks/routes/api/git/remotes.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/reset.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/reset.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/revert.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/revert.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/show.get.mjs +4 -5
- package/.output/server/chunks/routes/api/git/show.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/stage.post.mjs +4 -5
- package/.output/server/chunks/routes/api/git/stage.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/stash-apply.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/stash-apply.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/stash-branch.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/stash-branch.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/stash-drop.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/stash-drop.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/stash-pop.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/stash-pop.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/stash.get.mjs +3 -4
- package/.output/server/chunks/routes/api/git/stash.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/stash.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/stash.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/state.get.mjs +3 -4
- package/.output/server/chunks/routes/api/git/state.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/status.get.mjs +4 -5
- package/.output/server/chunks/routes/api/git/status.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/tag/_name_.get.mjs +3 -4
- package/.output/server/chunks/routes/api/git/tag/_name_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/tag-push.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/tag-push.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/tag.delete.mjs +3 -4
- package/.output/server/chunks/routes/api/git/tag.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/tag.post.mjs +3 -4
- package/.output/server/chunks/routes/api/git/tag.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/unstage.post.mjs +4 -5
- package/.output/server/chunks/routes/api/git/unstage.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get.mjs +7 -4
- package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get2.mjs +4 -2
- package/.output/server/chunks/routes/api/index.get2.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get3.mjs +4 -2
- package/.output/server/chunks/routes/api/index.get3.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post.mjs +19 -16
- package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post2.mjs +4 -6
- package/.output/server/chunks/routes/api/index.post2.mjs.map +1 -1
- package/.output/server/chunks/routes/api/jobs/_id/cancel.post.mjs +6 -3
- package/.output/server/chunks/routes/api/jobs/_id/cancel.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/jobs/_id_.get.mjs +7 -4
- package/.output/server/chunks/routes/api/jobs/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/rebase/abort.post.mjs +4 -2
- package/.output/server/chunks/routes/api/rebase/abort.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/rebase/ai-resolve.post.mjs +19 -105
- package/.output/server/chunks/routes/api/rebase/ai-resolve.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/rebase/conflicts.get.mjs +3 -1
- package/.output/server/chunks/routes/api/rebase/conflicts.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/rebase/continue-sync.post.mjs +4 -2
- package/.output/server/chunks/routes/api/rebase/continue-sync.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/rebase/continue.post.mjs +71 -73
- package/.output/server/chunks/routes/api/rebase/continue.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/rebase/resolve.put.mjs +3 -1
- package/.output/server/chunks/routes/api/rebase/resolve.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repository/status.get.mjs +4 -5
- package/.output/server/chunks/routes/api/repository/status.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings.get.mjs +6 -5
- package/.output/server/chunks/routes/api/settings.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings.post.mjs +5 -3
- package/.output/server/chunks/routes/api/settings.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/skills/_skillId/prompt.post.mjs +3 -1
- package/.output/server/chunks/routes/api/skills/_skillId/prompt.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/specs/_featureId/_...filename_.get.mjs +3 -1
- package/.output/server/chunks/routes/api/specs/_featureId/_...filename_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/specs/_featureId/_...filename_.put.mjs +3 -1
- package/.output/server/chunks/routes/api/specs/_featureId/_...filename_.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/specs/features.get.mjs +3 -1
- package/.output/server/chunks/routes/api/specs/features.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/specs/reindex.post.mjs +4 -2
- package/.output/server/chunks/routes/api/specs/reindex.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/specs/search.get.mjs +4 -2
- package/.output/server/chunks/routes/api/specs/search.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/specs/status.get.mjs +4 -2
- package/.output/server/chunks/routes/api/specs/status.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/specs/traceability/_featureId_.get.mjs +4 -2
- package/.output/server/chunks/routes/api/specs/traceability/_featureId_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/worktrees/_name/switch.post.mjs +4 -2
- package/.output/server/chunks/routes/api/worktrees/_name/switch.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/worktrees/_name_.delete.mjs +3 -1
- package/.output/server/chunks/routes/api/worktrees/_name_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/git-watcher-ws.mjs +4 -2
- package/.output/server/chunks/routes/git-watcher-ws.mjs.map +1 -1
- package/.output/server/chunks/routes/renderer.mjs +4 -2
- package/.output/server/chunks/routes/terminal-ws.mjs +230 -0
- package/.output/server/chunks/routes/terminal-ws.mjs.map +1 -0
- package/.output/server/index.mjs +4 -2
- package/.output/server/index.mjs.map +1 -1
- package/.output/server/node_modules/node-pty/build/Makefile +369 -0
- package/.output/server/node_modules/node-pty/build/Release/pty.node +0 -0
- package/.output/server/node_modules/node-pty/build/binding.Makefile +6 -0
- package/.output/server/node_modules/node-pty/build/config.gypi +513 -0
- package/.output/server/node_modules/node-pty/build/pty.target.mk +168 -0
- package/.output/server/node_modules/node-pty/lib/eventEmitter2.js +47 -0
- package/.output/server/node_modules/node-pty/lib/index.js +52 -0
- package/.output/server/node_modules/node-pty/lib/shared/conout.js +11 -0
- package/.output/server/node_modules/node-pty/lib/terminal.js +190 -0
- package/.output/server/node_modules/node-pty/lib/unixTerminal.js +346 -0
- package/.output/server/node_modules/node-pty/lib/utils.js +39 -0
- package/.output/server/node_modules/node-pty/lib/windowsConoutConnection.js +125 -0
- package/.output/server/node_modules/node-pty/lib/windowsPtyAgent.js +320 -0
- package/.output/server/node_modules/node-pty/lib/windowsTerminal.js +199 -0
- package/.output/server/node_modules/node-pty/package.json +64 -0
- package/.output/server/package.json +2 -1
- package/package.json +4 -1
- package/.output/public/_nuxt/2zamijve.js +0 -1
- package/.output/public/_nuxt/BEjIzkrM.js +0 -85
- package/.output/public/_nuxt/BaSsfm-t.js +0 -36
- package/.output/public/_nuxt/BjdLSVUw.js +0 -1
- package/.output/public/_nuxt/DeqM2TrP.js +0 -1
- package/.output/public/_nuxt/builds/meta/74089fa1-2fbb-4792-94aa-7535d2aec557.json +0 -1
- package/.output/public/_nuxt/default.DKSPicGu.css +0 -1
- package/.output/public/_nuxt/entry.BUDfUMkE.css +0 -1
- package/.output/public/_nuxt/zrVRZSxq.js +0 -64
- package/.output/server/chunks/_/baseBranch.mjs +0 -137
- package/.output/server/chunks/_/baseBranch.mjs.map +0 -1
- package/.output/server/chunks/_/claude.mjs +0 -164
- package/.output/server/chunks/_/claude.mjs.map +0 -1
- package/.output/server/chunks/_/conversationStore.mjs +0 -257
- package/.output/server/chunks/_/conversationStore.mjs.map +0 -1
- package/.output/server/chunks/_/geminiProvider.mjs +0 -372
- package/.output/server/chunks/_/geminiProvider.mjs.map +0 -1
- package/.output/server/chunks/_/gitExec.mjs +0 -48
- package/.output/server/chunks/_/gitExec.mjs.map +0 -1
- package/.output/server/chunks/_/providerProcessError.mjs +0 -163
- package/.output/server/chunks/_/providerProcessError.mjs.map +0 -1
- package/.output/server/chunks/_/uiAdapter.mjs +0 -421
- package/.output/server/chunks/_/uiAdapter.mjs.map +0 -1
- package/.output/server/chunks/routes/api/chat.post.mjs +0 -276
- package/.output/server/chunks/routes/api/chat.post.mjs.map +0 -1
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import { readFile } from 'node:fs/promises';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { a as getProjectDir, v as isUsableBaseBranchName, f as resolvePreferredBaseBranch, n as execGitCommand, B as getSpecCatDataDir, u as upsertConversationInStorage, S as STORAGE_VERSION, y as generateConversationTitle } from '../nitro/nitro.mjs';
|
|
5
|
+
import { g as getChatWorktreePath } from './worktreePaths.mjs';
|
|
6
|
+
|
|
7
|
+
async function setupConversationWorktree(options) {
|
|
8
|
+
var _a;
|
|
9
|
+
const { conversationId, featureId } = options;
|
|
10
|
+
const projectDir = getProjectDir();
|
|
11
|
+
if (featureId && !/^[a-zA-Z0-9_\-]+$/.test(featureId)) {
|
|
12
|
+
console.warn("[worktreeSetup] Invalid featureId format:", featureId);
|
|
13
|
+
return { success: false, cwd: projectDir };
|
|
14
|
+
}
|
|
15
|
+
const branchName = featureId || `sc/${conversationId}`;
|
|
16
|
+
const worktreePath = getChatWorktreePath(conversationId, featureId);
|
|
17
|
+
if (existsSync(worktreePath)) {
|
|
18
|
+
return { success: true, cwd: worktreePath, worktreeBranch: branchName };
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
const requestedBaseBranch = (_a = options.baseBranch) == null ? void 0 : _a.trim();
|
|
22
|
+
if (requestedBaseBranch && !isUsableBaseBranchName(requestedBaseBranch)) {
|
|
23
|
+
throw new Error(`Invalid base branch "${requestedBaseBranch}"`);
|
|
24
|
+
}
|
|
25
|
+
const baseBranch = requestedBaseBranch || await resolvePreferredBaseBranch(projectDir);
|
|
26
|
+
if (!baseBranch) {
|
|
27
|
+
throw new Error("Unable to resolve base branch for conversation worktree");
|
|
28
|
+
}
|
|
29
|
+
const baseHead = await execGitCommand(
|
|
30
|
+
["rev-parse", "--verify", `refs/heads/${baseBranch}^{commit}`],
|
|
31
|
+
projectDir
|
|
32
|
+
).catch(() => {
|
|
33
|
+
throw new Error(`Base branch "${baseBranch}" does not exist`);
|
|
34
|
+
});
|
|
35
|
+
let branchExists = false;
|
|
36
|
+
try {
|
|
37
|
+
await execGitCommand(["rev-parse", "--verify", branchName], projectDir);
|
|
38
|
+
branchExists = true;
|
|
39
|
+
} catch {
|
|
40
|
+
}
|
|
41
|
+
if (branchExists) {
|
|
42
|
+
await execGitCommand(["worktree", "prune"], projectDir);
|
|
43
|
+
await execGitCommand(["worktree", "add", worktreePath, branchName], projectDir);
|
|
44
|
+
} else {
|
|
45
|
+
await execGitCommand(["worktree", "add", "-b", branchName, worktreePath, baseHead], projectDir);
|
|
46
|
+
}
|
|
47
|
+
console.log("[worktreeSetup] Worktree ready:", { conversationId, worktreePath, branchName, branchExists });
|
|
48
|
+
await ensureConversationWorktreeInfo(options, worktreePath, branchName, baseBranch);
|
|
49
|
+
return { success: true, cwd: worktreePath, worktreeBranch: branchName, baseBranch };
|
|
50
|
+
} catch (err) {
|
|
51
|
+
const error = err instanceof Error ? err.message : String(err);
|
|
52
|
+
console.warn("[worktreeSetup] Failed:", error);
|
|
53
|
+
return { success: false, cwd: projectDir, error };
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async function ensureConversationWorktreeInfo(options, worktreePath, branchName, baseBranch) {
|
|
57
|
+
const dataDir = getSpecCatDataDir();
|
|
58
|
+
const convFilePath = join(dataDir, "conversations", `${options.conversationId}.json`);
|
|
59
|
+
try {
|
|
60
|
+
if (existsSync(convFilePath)) {
|
|
61
|
+
const raw = await readFile(convFilePath, "utf-8");
|
|
62
|
+
const conv = JSON.parse(raw);
|
|
63
|
+
if (!conv.worktreePath) {
|
|
64
|
+
conv.cwd = worktreePath;
|
|
65
|
+
conv.worktreePath = worktreePath;
|
|
66
|
+
conv.worktreeBranch = branchName;
|
|
67
|
+
conv.hasWorktree = true;
|
|
68
|
+
conv.baseBranch = baseBranch;
|
|
69
|
+
conv.updatedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
70
|
+
await upsertConversationInStorage(conv, STORAGE_VERSION);
|
|
71
|
+
}
|
|
72
|
+
} else {
|
|
73
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
74
|
+
const conv = {
|
|
75
|
+
id: options.conversationId,
|
|
76
|
+
title: generateConversationTitle(options.message),
|
|
77
|
+
messages: [],
|
|
78
|
+
createdAt: now,
|
|
79
|
+
updatedAt: now,
|
|
80
|
+
cwd: worktreePath,
|
|
81
|
+
source: options.featureId ? "cascade" : "user",
|
|
82
|
+
worktreePath,
|
|
83
|
+
worktreeBranch: branchName,
|
|
84
|
+
hasWorktree: true,
|
|
85
|
+
baseBranch,
|
|
86
|
+
featureId: options.featureId,
|
|
87
|
+
providerId: options.providerId,
|
|
88
|
+
providerModelKey: options.providerModelKey
|
|
89
|
+
};
|
|
90
|
+
await upsertConversationInStorage(conv, STORAGE_VERSION);
|
|
91
|
+
}
|
|
92
|
+
} catch (err) {
|
|
93
|
+
console.warn("[worktreeSetup] Failed to update conversation storage:", err);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export { setupConversationWorktree as s };
|
|
98
|
+
//# sourceMappingURL=worktreeSetup.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktreeSetup.mjs","sources":["../../../../server/utils/worktreeSetup.ts"],"names":[],"mappings":"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"}
|