spec-cat 0.1.43 → 0.1.44

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 (37) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{C5VmlmOK.js → B56DSSfp.js} +1 -1
  3. package/.output/public/_nuxt/{DIEyni0K.js → BFFThwWz.js} +1 -1
  4. package/.output/public/_nuxt/{CUhpW37J.js → BOLrA7H8.js} +1 -1
  5. package/.output/public/_nuxt/{wserZ5KO.js → B_IFBYSw.js} +2 -2
  6. package/.output/public/_nuxt/{CPsvWw1J.js → Ba3Pcgcf.js} +1 -1
  7. package/.output/public/_nuxt/{BjExtU_8.js → BqaOje-o.js} +1 -1
  8. package/.output/public/_nuxt/{D_05ko21.js → CDdYT-E3.js} +1 -1
  9. package/.output/public/_nuxt/{lyWV44Wc.js → CaIUTuUU.js} +1 -1
  10. package/.output/public/_nuxt/{BdnBYIQg.js → CwqI8l6M.js} +48 -48
  11. package/.output/public/_nuxt/{DFgtAR95.js → DLJ2xGMS.js} +1 -1
  12. package/.output/public/_nuxt/DXbMXlyj.js +1 -0
  13. package/.output/public/_nuxt/{-2tR8Cph.js → D_ZXiRDu.js} +1 -1
  14. package/.output/public/_nuxt/builds/latest.json +1 -1
  15. package/.output/public/_nuxt/builds/meta/d88c9434-84d1-435a-9c24-03139ecee860.json +1 -0
  16. package/.output/public/_nuxt/{BBA9sqLe.js → xK5F_xjP.js} +1 -1
  17. package/.output/server/chunks/_/baseBranch.mjs +23 -4
  18. package/.output/server/chunks/_/baseBranch.mjs.map +1 -1
  19. package/.output/server/chunks/_/conversationStore.mjs +1 -1
  20. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  21. package/.output/server/chunks/build/client.precomputed.mjs.map +1 -1
  22. package/.output/server/chunks/nitro/nitro.mjs +645 -645
  23. package/.output/server/chunks/routes/_ws.mjs +1 -1
  24. package/.output/server/chunks/routes/api/chat/finalize.post.mjs +10 -19
  25. package/.output/server/chunks/routes/api/chat/finalize.post.mjs.map +1 -1
  26. package/.output/server/chunks/routes/api/chat/rebase.post.mjs +16 -17
  27. package/.output/server/chunks/routes/api/chat/rebase.post.mjs.map +1 -1
  28. package/.output/server/chunks/routes/api/chat/worktree.post.mjs +1 -1
  29. package/.output/server/chunks/routes/api/conversations/archives/_archiveId/restore.post.mjs +1 -1
  30. package/.output/server/chunks/routes/api/index.post.mjs +1 -1
  31. package/.output/server/chunks/routes/api/index.post2.mjs +1 -1
  32. package/.output/server/chunks/routes/api/rebase/continue.post.mjs +10 -19
  33. package/.output/server/chunks/routes/api/rebase/continue.post.mjs.map +1 -1
  34. package/.output/server/package.json +1 -1
  35. package/package.json +1 -1
  36. package/.output/public/_nuxt/DphOOigU.js +0 -1
  37. package/.output/public/_nuxt/builds/meta/5201faab-9d06-4dd5-8459-59d164fdf02d.json +0 -1
@@ -8,7 +8,7 @@ import { exec } from 'node:child_process';
8
8
  import { promisify } from 'node:util';
9
9
  import { readFile } from 'node:fs/promises';
10
10
  import { u as upsertConversationInStorage, S as STORAGE_VERSION, b as generateConversationTitle } from '../_/conversationStore.mjs';
11
- import { r as resolvePreferredBaseBranch } from '../_/baseBranch.mjs';
11
+ import { a as resolvePreferredBaseBranch } from '../_/baseBranch.mjs';
12
12
  import 'node:http';
13
13
  import 'node:https';
14
14
  import 'node:crypto';
@@ -3,6 +3,7 @@ import { execSync, exec } from 'node:child_process';
3
3
  import { promisify } from 'node:util';
4
4
  import { existsSync } from 'node:fs';
5
5
  import { rm } from 'node:fs/promises';
6
+ import { r as resolveExistingBaseBranch } from '../../../_/baseBranch.mjs';
6
7
  import { b as guardServerProviderCapability } from '../../../_/aiProviderSelection.mjs';
7
8
  import 'node:http';
8
9
  import 'node:https';
@@ -23,6 +24,9 @@ import 'node:path';
23
24
  import 'node:os';
24
25
  import 'node:module';
25
26
  import 'node:url';
27
+ import '../../../_/gitExec.mjs';
28
+ import 'child_process';
29
+ import 'util';
26
30
  import '../../../_/aiProviderRegistry.mjs';
27
31
 
28
32
  const execAsync = promisify(exec);
@@ -57,26 +61,13 @@ const finalize_post = defineEventHandler(async (event) => {
57
61
  const branchName = body.worktreeBranch || `sc/${conversationId}`;
58
62
  const worktreePath = body.worktreePath || `/tmp/sc-${conversationId}`;
59
63
  logger.chat.info("Finalizing conversation", { conversationId, branchName });
60
- let baseBranch = body.baseBranch;
64
+ const baseBranch = await resolveExistingBaseBranch({
65
+ cwd: projectDir,
66
+ requestedBaseBranch: body.baseBranch,
67
+ worktreeBranch: branchName
68
+ });
61
69
  if (!baseBranch) {
62
- try {
63
- await git(projectDir, "rev-parse --verify main");
64
- baseBranch = "main";
65
- } catch {
66
- baseBranch = "master";
67
- }
68
- } else {
69
- try {
70
- await git(projectDir, `rev-parse --verify "${baseBranch}"`);
71
- } catch {
72
- logger.chat.warn("Requested baseBranch not found, falling back", { requested: baseBranch });
73
- try {
74
- await git(projectDir, "rev-parse --verify main");
75
- baseBranch = "main";
76
- } catch {
77
- baseBranch = "master";
78
- }
79
- }
70
+ return { success: false, error: "Unable to resolve a valid base branch for this worktree." };
80
71
  }
81
72
  try {
82
73
  if (!existsSync(worktreePath)) {
@@ -1 +1 @@
1
- {"version":3,"file":"finalize.post.mjs","sources":["../../../../../../server/api/chat/finalize.post.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"finalize.post.mjs","sources":["../../../../../../server/api/chat/finalize.post.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { d as defineEventHandler, b as readBody, c as createError, e as getProje
2
2
  import { execSync, exec } from 'node:child_process';
3
3
  import { promisify } from 'node:util';
4
4
  import { existsSync } from 'node:fs';
5
+ import { r as resolveExistingBaseBranch } from '../../../_/baseBranch.mjs';
5
6
  import 'node:http';
6
7
  import 'node:https';
7
8
  import 'node:crypto';
@@ -22,6 +23,9 @@ import 'node:os';
22
23
  import 'node:module';
23
24
  import 'node:fs/promises';
24
25
  import 'node:url';
26
+ import '../../../_/gitExec.mjs';
27
+ import 'child_process';
28
+ import 'util';
25
29
 
26
30
  const execAsync = promisify(exec);
27
31
  async function git(cwd, cmd) {
@@ -46,27 +50,22 @@ const rebase_post = defineEventHandler(async (event) => {
46
50
  const { conversationId } = body;
47
51
  const projectDir = getProjectDir();
48
52
  const worktreePath = body.worktreePath || `/tmp/sc-${conversationId}`;
49
- let baseBranch = body.baseBranch;
50
- if (!baseBranch) {
53
+ let worktreeBranch = "";
54
+ if (existsSync(worktreePath)) {
51
55
  try {
52
- await git(projectDir, "rev-parse --verify main");
53
- baseBranch = "main";
56
+ worktreeBranch = await git(worktreePath, "rev-parse --abbrev-ref HEAD");
54
57
  } catch {
55
- baseBranch = "master";
56
- }
57
- } else {
58
- try {
59
- await git(projectDir, `rev-parse --verify "${baseBranch}"`);
60
- } catch {
61
- logger.chat.warn("Requested baseBranch not found, falling back", { requested: baseBranch });
62
- try {
63
- await git(projectDir, "rev-parse --verify main");
64
- baseBranch = "main";
65
- } catch {
66
- baseBranch = "master";
67
- }
58
+ worktreeBranch = "";
68
59
  }
69
60
  }
61
+ const baseBranch = await resolveExistingBaseBranch({
62
+ cwd: projectDir,
63
+ requestedBaseBranch: body.baseBranch,
64
+ worktreeBranch
65
+ });
66
+ if (!baseBranch) {
67
+ return { success: false, error: "Unable to resolve a valid base branch for this worktree." };
68
+ }
70
69
  logger.chat.info("Rebasing worktree onto base", { conversationId, baseBranch });
71
70
  try {
72
71
  if (!existsSync(worktreePath)) {
@@ -1 +1 @@
1
- {"version":3,"file":"rebase.post.mjs","sources":["../../../../../../server/api/chat/rebase.post.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rebase.post.mjs","sources":["../../../../../../server/api/chat/rebase.post.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { d as defineEventHandler, b as readBody, c as createError, e as getProjectDir, l as logger } from '../../../nitro/nitro.mjs';
2
2
  import { exec } from 'node:child_process';
3
3
  import { promisify } from 'node:util';
4
- import { r as resolvePreferredBaseBranch } from '../../../_/baseBranch.mjs';
4
+ import { a as resolvePreferredBaseBranch } from '../../../_/baseBranch.mjs';
5
5
  import 'node:http';
6
6
  import 'node:https';
7
7
  import 'node:crypto';
@@ -2,7 +2,7 @@ import { d as defineEventHandler, i as getRouterParam, b as readBody, c as creat
2
2
  import { exec } from 'node:child_process';
3
3
  import { promisify } from 'node:util';
4
4
  import { r as readConversationStorageState, a as generateConversationId, w as writeConversationStorageState } from '../../../../../_/conversationStore.mjs';
5
- import { r as resolvePreferredBaseBranch } from '../../../../../_/baseBranch.mjs';
5
+ import { a as resolvePreferredBaseBranch } from '../../../../../_/baseBranch.mjs';
6
6
  import 'node:http';
7
7
  import 'node:https';
8
8
  import 'node:crypto';
@@ -4,7 +4,7 @@ import { promisify } from 'node:util';
4
4
  import { j as jobQueue } from '../../_/jobQueue.mjs';
5
5
  import { s as startPersisting } from '../../_/jobPersister.mjs';
6
6
  import { a as generateConversationId, b as generateConversationTitle, u as upsertConversationInStorage, S as STORAGE_VERSION } from '../../_/conversationStore.mjs';
7
- import { r as resolvePreferredBaseBranch } from '../../_/baseBranch.mjs';
7
+ import { a as resolvePreferredBaseBranch } from '../../_/baseBranch.mjs';
8
8
  import 'node:http';
9
9
  import 'node:https';
10
10
  import 'node:crypto';
@@ -3,7 +3,7 @@ import { exec } from 'node:child_process';
3
3
  import { promisify } from 'node:util';
4
4
  import { existsSync } from 'node:fs';
5
5
  import { join } from 'node:path';
6
- import { r as resolvePreferredBaseBranch } from '../../_/baseBranch.mjs';
6
+ import { a as resolvePreferredBaseBranch } from '../../_/baseBranch.mjs';
7
7
  import 'node:http';
8
8
  import 'node:https';
9
9
  import 'node:crypto';
@@ -3,6 +3,7 @@ import { exec } from 'node:child_process';
3
3
  import { promisify } from 'node:util';
4
4
  import { existsSync } from 'node:fs';
5
5
  import { rm } from 'node:fs/promises';
6
+ import { r as resolveExistingBaseBranch } from '../../../_/baseBranch.mjs';
6
7
  import 'node:http';
7
8
  import 'node:https';
8
9
  import 'node:crypto';
@@ -22,6 +23,9 @@ import 'node:path';
22
23
  import 'node:os';
23
24
  import 'node:module';
24
25
  import 'node:url';
26
+ import '../../../_/gitExec.mjs';
27
+ import 'child_process';
28
+ import 'util';
25
29
 
26
30
  const execAsync = promisify(exec);
27
31
  async function git(cwd, cmd, env) {
@@ -43,26 +47,13 @@ const continue_post = defineEventHandler(async (event) => {
43
47
  if (!existsSync(worktreePath)) {
44
48
  return { success: false, error: "Worktree directory not found." };
45
49
  }
46
- let baseBranch = body.baseBranch;
50
+ const baseBranch = await resolveExistingBaseBranch({
51
+ cwd: projectDir,
52
+ requestedBaseBranch: body.baseBranch,
53
+ worktreeBranch: body.worktreeBranch || branchName
54
+ });
47
55
  if (!baseBranch) {
48
- try {
49
- await git(projectDir, "rev-parse --verify main");
50
- baseBranch = "main";
51
- } catch {
52
- baseBranch = "master";
53
- }
54
- } else {
55
- try {
56
- await git(projectDir, `rev-parse --verify "${baseBranch}"`);
57
- } catch {
58
- logger.chat.warn("Requested baseBranch not found, falling back", { requested: baseBranch });
59
- try {
60
- await git(projectDir, "rev-parse --verify main");
61
- baseBranch = "main";
62
- } catch {
63
- baseBranch = "master";
64
- }
65
- }
56
+ return { success: false, error: "Unable to resolve a valid base branch for this worktree." };
66
57
  }
67
58
  try {
68
59
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"continue.post.mjs","sources":["../../../../../../server/api/rebase/continue.post.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"continue.post.mjs","sources":["../../../../../../server/api/rebase/continue.post.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spec-cat-prod",
3
- "version": "0.1.43",
3
+ "version": "0.1.44",
4
4
  "type": "module",
5
5
  "private": true,
6
6
  "dependencies": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spec-cat",
3
- "version": "0.1.43",
3
+ "version": "0.1.44",
4
4
  "description": "Spec-driven development workbench",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -1 +0,0 @@
1
- import{_ as e}from"./DlAUqK2U.js";import{z as r,y as c}from"./wserZ5KO.js";const o={};function t(n,s){return c(),r("div")}const f=e(o,[["render",t]]);export{f as default};
@@ -1 +0,0 @@
1
- {"id":"5201faab-9d06-4dd5-8459-59d164fdf02d","timestamp":1776856069807,"prerendered":[]}