spec-cat 0.1.3 → 0.1.5
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/1XtI-90W.js +1 -0
- package/.output/public/_nuxt/{B5aO4ZNC.js → BAm7cJoI.js} +2 -2
- package/.output/public/_nuxt/{BuqGdsNQ.js → BjfxbyhV.js} +1 -1
- package/.output/public/_nuxt/{Clb3EfFq.js → C8lJXn2B.js} +1 -1
- package/.output/public/_nuxt/{CCK8ekH2.js → CObKakIs.js} +1 -1
- package/.output/public/_nuxt/{CP-PXXh9.js → ChhNAy6p.js} +1 -1
- package/.output/public/_nuxt/{CDln69no.js → DNqICsON.js} +1 -1
- package/.output/public/_nuxt/{Dn9vgJET.js → DrYa9eDS.js} +1 -1
- package/.output/public/_nuxt/{BSliVpnl.js → SpUrQtl1.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/6bbc2770-cb3b-45d7-abaf-69c06b005c83.json +1 -0
- package/.output/public/_nuxt/d5fpdBZE.js +126 -0
- package/.output/public/_nuxt/entry.B5Gpnt5-.css +1 -0
- package/.output/server/chunks/_/codexProvider.mjs +16 -3
- package/.output/server/chunks/_/codexProvider.mjs.map +1 -1
- 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 +700 -700
- package/.output/server/chunks/routes/api/chat/worktree-commit.post.mjs +1 -8
- package/.output/server/chunks/routes/api/chat/worktree-commit.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat.post.mjs +32 -0
- package/.output/server/chunks/routes/api/chat.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/rebase/ai-resolve.post.mjs +4 -10
- package/.output/server/chunks/routes/api/rebase/ai-resolve.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/specs/features.get.mjs +18 -1
- package/.output/server/chunks/routes/api/specs/features.get.mjs.map +1 -1
- package/.output/server/package.json +1 -1
- package/package.json +1 -1
- package/.output/public/_nuxt/15ws-gGd.js +0 -126
- package/.output/public/_nuxt/builds/meta/9c566498-2f5d-4d0b-a989-d9128fcf06b1.json +0 -1
- package/.output/public/_nuxt/entry.CFLOfmis.css +0 -1
- package/.output/public/_nuxt/o9twnm8S.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { d as defineEventHandler, r as readBody, c as createError,
|
|
1
|
+
import { d as defineEventHandler, r as readBody, c as createError, o as autoCommitChanges, m as logger } from '../../../nitro/nitro.mjs';
|
|
2
2
|
import 'node:http';
|
|
3
3
|
import 'node:https';
|
|
4
4
|
import 'node:crypto';
|
|
@@ -33,13 +33,6 @@ const worktreeCommit_post = defineEventHandler(async (event) => {
|
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
35
|
const { worktreePath, conversationId } = body;
|
|
36
|
-
const providerGuard = await guardServerProviderCapability(
|
|
37
|
-
"autoCommit",
|
|
38
|
-
"Switch to a provider with auto-commit support to continue."
|
|
39
|
-
);
|
|
40
|
-
if ("failure" in providerGuard) {
|
|
41
|
-
return providerGuard.failure;
|
|
42
|
-
}
|
|
43
36
|
try {
|
|
44
37
|
const result = await autoCommitChanges(worktreePath);
|
|
45
38
|
if (result.success) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree-commit.post.mjs","sources":["../../../../../../server/api/chat/worktree-commit.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"worktree-commit.post.mjs","sources":["../../../../../../server/api/chat/worktree-commit.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AASA,4BAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,MAAA,IAAA,GAAA,MAAA,QAAA,CAGA,KAAA,CAAA;AAEA,EAAA,IAAA,EAAA,6BAAA,YAAA,CAAA,EAAA;AACA,IAAA,MAAA,WAAA,CAAA;AAAA,MACA,UAAA,EAAA,GAAA;AAAA,MACA,OAAA,EAAA;AAAA,KACA,CAAA;AAAA,EACA;AAEA,EAAA,MAAA,EAAA,YAAA,EAAA,cAAA,EAAA,GAAA,IAAA;AAEA,EAAA,IAAA;AACA,IAAA,MAAA,MAAA,GAAA,MAAA,iBAAA,CAAA,YAAA,CAAA;AAEA,IAAA,IAAA,OAAA,OAAA,EAAA;AACA,MAAA,MAAA,CAAA,IAAA,CAAA,KAAA,2BAAA,EAAA;AAAA,QACA,cAAA;AAAA,QACA,SAAA,MAAA,CAAA,OAAA;AAAA,QACA,eAAA,MAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,OAAA;AAAA,MACA,SAAA,MAAA,CAAA,OAAA;AAAA,MACA,SAAA,MAAA,CAAA,OAAA;AAAA,MACA,eAAA,MAAA,CAAA,aAAA;AAAA,MACA,OAAA,MAAA,CAAA;AAAA,KACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,MAAA,eAAA,KAAA,YAAA,KAAA,GAAA,KAAA,CAAA,OAAA,GAAA,OAAA,KAAA,CAAA;AACA,IAAA,MAAA,CAAA,IAAA,CAAA,MAAA,6BAAA,EAAA;AAAA,MACA,cAAA;AAAA,MACA,KAAA,EAAA;AAAA,KACA,CAAA;AAEA,IAAA,OAAA,EAAA,OAAA,EAAA,KAAA,EAAA,KAAA,EAAA,YAAA,EAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}
|
|
@@ -79,6 +79,23 @@ async function buildSearchContextForImplement(input) {
|
|
|
79
79
|
};
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
+
const FEATURE_ID_PATTERN = /\b\d{3}-[a-z0-9][a-z0-9-]*\b/i;
|
|
83
|
+
const SEARCH_ACTION_PATTERN = /\b(find|search|look up|lookup|where is|what feature)\b/i;
|
|
84
|
+
const SEARCH_DOMAIN_PATTERN = /\b(spec|requirement|requirements|fr-|feature)\b/i;
|
|
85
|
+
const SEARCH_ACTION_KR_PATTERN = /(찾아줘|검색|어디|찾아봐|찾아봐줘)/i;
|
|
86
|
+
const SEARCH_DOMAIN_KR_PATTERN = /(스펙|요구사항|기능|fr-)/i;
|
|
87
|
+
function extractFeatureIdFromMessage(message) {
|
|
88
|
+
const match = message.match(FEATURE_ID_PATTERN);
|
|
89
|
+
return match == null ? void 0 : match[0];
|
|
90
|
+
}
|
|
91
|
+
function shouldInjectSearchContextForChatMessage(message) {
|
|
92
|
+
const trimmed = message.trim();
|
|
93
|
+
if (!trimmed) return false;
|
|
94
|
+
if (trimmed.startsWith("/")) return false;
|
|
95
|
+
const enIntent = SEARCH_ACTION_PATTERN.test(trimmed) && SEARCH_DOMAIN_PATTERN.test(trimmed);
|
|
96
|
+
const koIntent = SEARCH_ACTION_KR_PATTERN.test(trimmed) && SEARCH_DOMAIN_KR_PATTERN.test(trimmed);
|
|
97
|
+
return enIntent || koIntent;
|
|
98
|
+
}
|
|
82
99
|
const chat_post = defineEventHandler(async (event) => {
|
|
83
100
|
var _a;
|
|
84
101
|
const chatRequest = await readBody(event);
|
|
@@ -117,6 +134,21 @@ ${context.context}`;
|
|
|
117
134
|
} catch (error) {
|
|
118
135
|
console.warn("[Chat API] Failed to inject spec search context:", error);
|
|
119
136
|
}
|
|
137
|
+
} else if (shouldInjectSearchContextForChatMessage(chatRequest.message)) {
|
|
138
|
+
try {
|
|
139
|
+
const context = await buildSearchContextForImplement({
|
|
140
|
+
query: chatRequest.message,
|
|
141
|
+
featureId: extractFeatureIdFromMessage(chatRequest.message),
|
|
142
|
+
maxResults: 5
|
|
143
|
+
});
|
|
144
|
+
if (context.injected && context.context) {
|
|
145
|
+
providerMessage = `${chatRequest.message}
|
|
146
|
+
|
|
147
|
+
${context.context}`;
|
|
148
|
+
}
|
|
149
|
+
} catch (error) {
|
|
150
|
+
console.warn("[Chat API] Failed to inject spec search context for chat intent:", error);
|
|
151
|
+
}
|
|
120
152
|
}
|
|
121
153
|
const workingDirectory = getProjectDir();
|
|
122
154
|
const requestedSelection = chatRequest.providerId ? { providerId: chatRequest.providerId, modelKey: chatRequest.providerModelKey || "" } : await getServerProviderSelection();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.post.mjs","sources":["../../../../../server/utils/chatEventFormatters.ts","../../../../../server/utils/specSearch/contextInjector.ts","../../../../../server/api/chat.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,SAAS,kBAAkB,IAAA,EAAuB;AACvD,EAAA,OAAO,KAAK,SAAA,CAAU,EAAE,MAAM,eAAA,EAAiB,IAAA,EAAM,CAAA,GAAI,IAAA;AAC3D;AAEO,SAAS,kBAAkB,MAAA,EAAwB;AACxD,EAAA,OAAO,KAAK,SAAA,CAAU,EAAE,MAAM,eAAA,EAAiB,MAAA,EAAQ,CAAA,GAAI,IAAA;AAC7D;AAEO,SAAS,WAAW,OAAA,EAAyB;AAClD,EAAA,OAAO,IAAA,CAAK,UAAU,EAAE,IAAA,EAAM,SAAS,KAAA,EAAO,OAAA,EAAS,CAAA,GAAI,IAAA;AAC7D;AAEO,SAAS,SAAA,GAAoB;AAClC,EAAA,OAAO,KAAK,SAAA,CAAU,EAAE,IAAA,EAAM,MAAA,EAAQ,CAAA,GAAI,IAAA;AAC5C;;ACLA,eAAsB,+BAA+B,KAAA,EAIlB;AAbnC,EAAA,IAAA,EAAA;AAcE,EAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,KAAA,CAAM,IAAA,EAAK;AAC/B,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,OAAO,EAAE,UAAU,KAAA,EAAM;AAAA,EAC3B;AAEA,EAAA,MAAM,SAAA,GAAY,MAAM,YAAA,CAAa,KAAK,CAAA;AAC1C,EAAA,MAAM,OAAA,GAAU,MAAM,SAAA,CAAU,QAAA,EAAU,KAAA,EAAO;AAAA,IAC/C,SAAA;AAAA,IACA,WAAW,KAAA,CAAM,SAAA;AAAA,IACjB,KAAA,EAAA,CAAO,EAAA,GAAA,KAAA,CAAM,UAAA,KAAN,IAAA,GAAA,EAAA,GAAoB;AAAA,GAC5B,CAAA;AAED,EAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,IAAA,OAAO;AAAA,MACL,QAAA,EAAU,KAAA;AAAA,MACV,OAAA,EAAS;AAAA,KACX;AAAA,EACF;AAEA,EAAA,MAAM,WAAqB,EAAC;AAC5B,EAAA,QAAA,CAAS,KAAK,2BAA2B,CAAA;AACzC,EAAA,QAAA,CAAS,KAAK,wEAAwE,CAAA;AAEtF,EAAA,KAAA,MAAW,CAAC,KAAA,EAAO,MAAM,CAAA,IAAK,OAAA,CAAQ,SAAQ,EAAG;AAC/C,IAAA,MAAM,QAAQ,MAAA,CAAO,KAAA;AACrB,IAAA,QAAA,CAAS,KAAK,EAAE,CAAA;AAChB,IAAA,QAAA,CAAS,IAAA,CAAK,CAAA,EAAG,KAAA,GAAQ,CAAC,CAAA,EAAA,EAAK,MAAM,UAAU,CAAA,CAAA,EAAI,KAAA,CAAM,SAAS,CAAA,CAAE,CAAA;AACpE,IAAA,IAAI,KAAA,CAAM,gBAAA,CAAiB,MAAA,GAAS,CAAA,EAAG;AACrC,MAAA,QAAA,CAAS,KAAK,CAAA,aAAA,EAAgB,KAAA,CAAM,iBAAiB,IAAA,CAAK,KAAK,CAAC,CAAA,CAAE,CAAA;AAAA,IACpE;AACA,IAAA,QAAA,CAAS,IAAA,CAAK,CAAA,GAAA,EAAM,KAAA,CAAM,OAAA,CAAQ,KAAA,CAAM,CAAA,EAAG,GAAG,CAAA,CAAE,OAAA,CAAQ,MAAA,EAAQ,GAAG,CAAC,CAAA,CAAE,CAAA;AAAA,EACxE;AAEA,EAAA,MAAM,aAAa,sBAAA,EAAuB;AAC1C,EAAA,IAAI,UAAA,EAAY;AACd,IAAA,QAAA,CAAS,KAAK,EAAE,CAAA;AAChB,IAAA,QAAA,CAAS,IAAA,CAAK,CAAA,qCAAA,EAAwC,UAAU,CAAA,iCAAA,CAAmC,CAAA;AAAA,EACrG;AAEA,EAAA,OAAO;AAAA,IACL,QAAA,EAAU,IAAA;AAAA,IACV,OAAA,EAAS,QAAA,CAAS,IAAA,CAAK,IAAI;AAAA,GAC7B;AACF;;ACrCA,kBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;;AACA,EAAA,MAAA,WAAA,GAAA,MAAA,QAAA,CAAA,KAAA,CAAA;AAEA,EAAA,IAAA,EAAA,CAAA,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAA,OAAA,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,EAAA,CAAA,EAAA;AACA,IAAA,MAAA,WAAA,CAAA;AAAA,MACA,UAAA,EAAA,GAAA;AAAA,MACA,aAAA,EAAA;AAAA,KACA,CAAA;AAAA,EACA;AAEA,EAAA,IAAA,EAAA,2CAAA,SAAA,CAAA,EAAA;AACA,IAAA,MAAA,WAAA,CAAA;AAAA,MACA,UAAA,EAAA,GAAA;AAAA,MACA,aAAA,EAAA;AAAA,KACA,CAAA;AAAA,EACA;AAEA,EAAA,OAAA,CAAA,IAAA,6BAAA,EAAA;AAAA,IACA,OAAA,EAAA,WAAA,CAAA,OAAA,CAAA,KAAA,CAAA,GAAA,GAAA,CAAA;AAAA,IACA,WAAA,WAAA,CAAA,SAAA;AAAA,IACA,WAAA,WAAA,CAAA;AAAA,GACA,CAAA;AAEA,EAAA,IAAA,kBAAA,WAAA,CAAA,OAAA;AACA,EAAA,MAAA,cAAA,GAAA,WAAA,CAAA,OAAA,CAAA,KAAA,CAAA,kCAAA,CAAA;AACA,EAAA,IAAA,cAAA,EAAA;AACA,IAAA,IAAA;AACA,MAAA,MAAA,SAAA,GAAA,eAAA,CAAA,CAAA;AACA,MAAA,MAAA,OAAA,GAAA,MAAA,8BAAA,CAAA;AAAA,QACA,OAAA,WAAA,CAAA,OAAA;AAAA,QACA,SAAA;AAAA,QACA,UAAA,EAAA;AAAA,OACA,CAAA;AACA,MAAA,IAAA,OAAA,CAAA,QAAA,IAAA,OAAA,CAAA,OAAA,EAAA;AACA,QAAA,eAAA,GAAA,CAAA,EAAA,YAAA,OAAA;;AAAA,EAAA,QAAA,OAAA,CAAA,CAAA;AAAA,MACA;AAAA,IACA,SAAA,KAAA,EAAA;AACA,MAAA,OAAA,CAAA,IAAA,CAAA,oDAAA,KAAA,CAAA;AAAA,IACA;AAAA,EACA;AAEA,EAAA,MAAA,mBAAA,aAAA,EAAA;AACA,EAAA,MAAA,kBAAA,GAAA,WAAA,CAAA,UAAA,GACA,EAAA,UAAA,EAAA,WAAA,CAAA,UAAA,EAAA,QAAA,EAAA,WAAA,CAAA,gBAAA,IAAA,EAAA,EAAA,GACA,MAAA,0BAAA,EAAA;AACA,EAAA,MAAA,SAAA,GAAA,MAAA,8BAAA,CAAA,kBAAA,CAAA;AAEA,EAAA,MAAA,gBAAA,MAAA,uBAAA;AAAA,IACA,SAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GACA;AACA,EAAA,IAAA,aAAA,aAAA,EAAA;AACA,IAAA,MAAA,WAAA,CAAA;AAAA,MACA,UAAA,EAAA,GAAA;AAAA,MACA,aAAA,EAAA,cAAA,OAAA,CAAA;AAAA,KACA,CAAA;AAAA,EACA;AAGA,EAAA,MAAA,GAAA,GAAA,MAAA,IAAA,CAAA,GAAA;AAGA,EAAA,GAAA,CAAA,SAAA,CAAA,gBAAA,mBAAA,CAAA;AACA,EAAA,GAAA,CAAA,SAAA,CAAA,iBAAA,wBAAA,CAAA;AACA,EAAA,GAAA,CAAA,SAAA,CAAA,cAAA,YAAA,CAAA;AACA,EAAA,GAAA,CAAA,SAAA,CAAA,qBAAA,IAAA,CAAA;AACA,EAAA,GAAA,CAAA,YAAA,EAAA;AAGA,EAAA,MAAA,UAAA,GAAA,CAAA,IAAA,KAAA;AACA,IAAA,GAAA,CAAA,MAAA,IAAA,CAAA;AAEA,IAAA,IAAA,OAAA,GAAA,CAAA,KAAA,KAAA,UAAA,EAAA;AACA,MAAA,IAAA,KAAA,EAAA;AAAA,IACA;AAAA,EACA,CAAA;AAEA,EAAA,MAAA,gBAAA,GAAA,CAAA,QAAA,KAAA,QAAA,KAAA,KAAA,QAAA,KAAA,IAAA;AAGA,EAAA,OAAA,IAAA,OAAA,CAAA,CAAA,OAAA,EAAA,MAAA,KAAA;AACA,IAAA,IAAA,UAAA,GAAA,IAAA;AACA,IAAA,MAAA,YAAA,CAAA,eAAA,EAAA,OAAA,GAAA,KAAA,EAAA,iBAAA,KAAA,KAAA;AACA,MAAA,sBAAA;AAAA,QACA;AAAA,UACA,OAAA,EAAA,eAAA;AAAA,UACA,SAAA;AAAA,UACA,GAAA,EAAA,gBAAA;AAAA,UACA,cAAA,EAAA,QAAA;AAAA,UACA,eAAA;AAAA,UACA,SAAA,EAAA,cAAA,IAAA,SAAA,CAAA,UAAA,KAAA;AAAA,SACA;AAAA,QACA;AAAA,UACA,eAAA,IAAA,EAAA;AACA,YAAA,UAAA,CAAA,iBAAA,CAAA,IAAA,CAAA,CAAA;AAAA,UACA,CAAA;AAAA,UACA,OAAA,CAAA,EAAA,QAAA,EAAA,MAAA,EAAA,eAAA,EAAA;AACA,YAAA,MAAA,kBAAA,GAAA,wBAAA,aAAA,CAAA;AACA,YAAA,MAAA,kBAAA,GAAA,gCAAA,aAAA,CAAA;AACA,YAAA,IAAA,iBAAA,QAAA,CAAA,IAAA,sBAAA,CAAA,kBAAA,IAAA,CAAA,OAAA,EAAA;AACA,cAAA,UAAA,CAAA,iBAAA,CAAA,wFAAA,CAAA,CAAA;AACA,cAAA,SAAA,CAAA,MAAA,EAAA,MAAA,IAAA,CAAA;AACA,cAAA;AAAA,YACA;AAEA,YAAA,IAAA,gBAAA,CAAA,QAAA,CAAA,IAAA,eAAA,IAAA,CAAA,OAAA,EAAA;AACA,cAAA,MAAA,kBAAA,GAAA,UAAA,UAAA,KAAA,OAAA;AACA,cAAA,UAAA,CAAA,iBAAA;AAAA,gBACA,kBAAA,GACA,CAAA,iCAAA,EAAA,QAAA,CAAA,2CAAA,CAAA,GACA,oCAAA,QAAA,CAAA,iCAAA;AAAA,eACA,CAAA;AACA,cAAA,SAAA,CAAA,MAAA,EAAA,MAAA,kBAAA,CAAA;AACA,cAAA;AAAA,YACA;AAEA,YAAA,IAAA,gBAAA,CAAA,QAAA,CAAA,EAAA;AACA,cAAA,MAAA,OAAA,GAAA,6BAAA,CAAA,aAAA,EAAA,GAAA,CAAA;AACA,cAAA,MAAA,OAAA,GAAA,OAAA,GAAA,CAAA,QAAA,EAAA,OAAA,CAAA,CAAA,GAAA,EAAA;AACA,cAAA,UAAA,CAAA,UAAA,CAAA,CAAA,4CAAA,EAAA,QAAA,CAAA,EAAA,MAAA,GAAA,CAAA,UAAA,EAAA,MAAA,CAAA,CAAA,GAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA,CAAA,CAAA;AAAA,YACA,CAAA,MAAA,IAAA,QAAA,KAAA,IAAA,IAAA,MAAA,EAAA;AACA,cAAA,MAAA,OAAA,GAAA,6BAAA,CAAA,aAAA,EAAA,GAAA,CAAA;AACA,cAAA,MAAA,OAAA,GAAA,OAAA,GAAA,CAAA,QAAA,EAAA,OAAA,CAAA,CAAA,GAAA,EAAA;AACA,cAAA,UAAA,CAAA,WAAA,CAAA,sCAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA;AAAA,YACA,CAAA,MAAA;AACA,cAAA,UAAA,CAAA,WAAA,CAAA;AAAA,YACA;AACA,YAAA,GAAA,CAAA,GAAA,EAAA;AACA,YAAA,OAAA,EAAA;AAAA,UACA,CAAA;AAAA,UACA,QAAA,KAAA,EAAA;AACA,YAAA,OAAA,CAAA,KAAA,CAAA,6BAAA,KAAA,CAAA;AACA,YAAA,UAAA,CAAA,UAAA,CAAA,KAAA,CAAA,OAAA,CAAA,CAAA;AACA,YAAA,GAAA,CAAA,GAAA,EAAA;AACA,YAAA,MAAA,CAAA,KAAA,CAAA;AAAA,UACA;AAAA;AACA,OACA,CACA,IAAA,CAAA,CAAA,gBAAA,KAAA;AACA,QAAA,UAAA,GAAA,gBAAA;AAAA,MACA,CAAA,CAAA,CACA,KAAA,CAAA,CAAA,KAAA,KAAA;AACA,QAAA,UAAA,CAAA,UAAA,CAAA,iBAAA,KAAA,GAAA,KAAA,CAAA,UAAA,MAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AACA,QAAA,GAAA,CAAA,GAAA,EAAA;AACA,QAAA,MAAA,CAAA,KAAA,CAAA;AAAA,MACA,CAAA,CAAA;AAAA,IACA,CAAA;AAEA,IAAA,SAAA,CAAA,YAAA,SAAA,CAAA;AAEA,IAAA,GAAA,CAAA,EAAA,CAAA,SAAA,MAAA;AACA,MAAA,UAAA,IAAA,IAAA,GAAA,MAAA,GAAA,UAAA,CAAA,IAAA,EAAA;AAAA,IACA,CAAA,CAAA;AAAA,EACA,CAAA,CAAA;AACA,CAAA,CAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"chat.post.mjs","sources":["../../../../../server/utils/chatEventFormatters.ts","../../../../../server/utils/specSearch/contextInjector.ts","../../../../../server/api/chat.post.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { d as defineEventHandler, r as readBody, c as createError,
|
|
1
|
+
import { d as defineEventHandler, r as readBody, c as createError, h as getServerProviderSelection, D as DEFAULT_MODEL_KEY, s as sendMessage } from '../../../nitro/nitro.mjs';
|
|
2
2
|
import { v as validateWorktreePath, a as validateFilePath } from '../../../_/validateWorktree.mjs';
|
|
3
3
|
import 'node:http';
|
|
4
4
|
import 'node:https';
|
|
@@ -32,14 +32,8 @@ const aiResolve_post = defineEventHandler(async (event) => {
|
|
|
32
32
|
}
|
|
33
33
|
validateWorktreePath(body.worktreePath);
|
|
34
34
|
validateFilePath(body.filePath);
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
"Switch to a provider that supports AI conflict resolution."
|
|
38
|
-
);
|
|
39
|
-
if ("failure" in providerGuard) {
|
|
40
|
-
return providerGuard.failure;
|
|
41
|
-
}
|
|
42
|
-
const { selection } = providerGuard;
|
|
35
|
+
const selection = await getServerProviderSelection();
|
|
36
|
+
const modelKey = selection.providerId === "claude" ? selection.modelKey : DEFAULT_MODEL_KEY;
|
|
43
37
|
const prompt = `You are a merge conflict resolution expert. Resolve the following Git merge conflict in the file "${body.filePath}".
|
|
44
38
|
|
|
45
39
|
The file contains Git conflict markers:
|
|
@@ -59,7 +53,7 @@ IMPORTANT: Output ONLY the complete resolved file content. No explanations, no m
|
|
|
59
53
|
File content with conflicts:
|
|
60
54
|
${body.conflictContent}`;
|
|
61
55
|
try {
|
|
62
|
-
const result = await sendMessage(prompt, body.worktreePath,
|
|
56
|
+
const result = await sendMessage(prompt, body.worktreePath, modelKey);
|
|
63
57
|
if (result.success && result.text) {
|
|
64
58
|
let resolved = result.text;
|
|
65
59
|
const codeBlockMatch = resolved.match(/^```[\w]*\n([\s\S]*?)\n```$/m);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-resolve.post.mjs","sources":["../../../../../../server/api/rebase/ai-resolve.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"ai-resolve.post.mjs","sources":["../../../../../../server/api/rebase/ai-resolve.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,uBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,MAAA,IAAA,GAAA,MAAA,QAAA,CAAA,KAAA,CAAA;AAEA,EAAA,IAAA,EAAA,6BAAA,YAAA,CAAA,IAAA,EAAA,6BAAA,QAAA,CAAA,IAAA,EAAA,6BAAA,eAAA,CAAA,EAAA;AACA,IAAA,MAAA,YAAA,EAAA,UAAA,EAAA,GAAA,EAAA,OAAA,EAAA,4DAAA,CAAA;AAAA,EACA;AAEA,EAAA,oBAAA,CAAA,KAAA,YAAA,CAAA;AACA,EAAA,gBAAA,CAAA,KAAA,QAAA,CAAA;AAEA,EAAA,MAAA,SAAA,GAAA,MAAA,0BAAA,EAAA;AACA,EAAA,MAAA,QAAA,GAAA,SAAA,CAAA,UAAA,KAAA,QAAA,GAAA,UAAA,QAAA,GAAA,iBAAA;AAEA,EAAA,MAAA,MAAA,GAAA,CAAA,kGAAA,EAAA,IAAA,CAAA,QAAA,CAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA,EAiBA,KAAA,eAAA,CAAA,CAAA;AAEA,EAAA,IAAA;AACA,IAAA,MAAA,SAAA,MAAA,WAAA,CAAA,MAAA,EAAA,IAAA,CAAA,cAAA,QAAA,CAAA;AAEA,IAAA,IAAA,MAAA,CAAA,OAAA,IAAA,MAAA,CAAA,IAAA,EAAA;AAEA,MAAA,IAAA,WAAA,MAAA,CAAA,IAAA;AACA,MAAA,MAAA,cAAA,GAAA,QAAA,CAAA,KAAA,CAAA,8BAAA,CAAA;AACA,MAAA,IAAA,cAAA,EAAA;AACA,QAAA,QAAA,GAAA,eAAA,CAAA,CAAA;AAAA,MACA;AAEA,MAAA,OAAA,EAAA,OAAA,EAAA,IAAA,EAAA,eAAA,EAAA,QAAA,EAAA;AAAA,IACA;AAEA,IAAA,OAAA,EAAA,OAAA,EAAA,KAAA,EAAA,KAAA,EAAA,MAAA,CAAA,SAAA,sBAAA,EAAA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,MAAA,UAAA,KAAA,YAAA,KAAA,GAAA,KAAA,CAAA,OAAA,GAAA,OAAA,KAAA,CAAA;AACA,IAAA,OAAA,EAAA,OAAA,EAAA,KAAA,EAAA,KAAA,EAAA,OAAA,EAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}
|
|
@@ -54,6 +54,12 @@ function extractFeatureName(specContent, dirName) {
|
|
|
54
54
|
const withoutPrefix = dirName.replace(/^\d+-/, "");
|
|
55
55
|
return withoutPrefix.split("-").map((w) => w.charAt(0).toUpperCase() + w.slice(1)).join(" ");
|
|
56
56
|
}
|
|
57
|
+
function extractTaskProgress(tasksContent) {
|
|
58
|
+
var _a;
|
|
59
|
+
const checkboxLines = (_a = tasksContent.match(/^\s*-\s+\[(?: |x|X)\]\s+.+$/gm)) != null ? _a : [];
|
|
60
|
+
const completedTasks = checkboxLines.filter((line) => /^\s*-\s+\[(?:x|X)\]\s+.+$/.test(line)).length;
|
|
61
|
+
return { completedTasks, totalTasks: checkboxLines.length };
|
|
62
|
+
}
|
|
57
63
|
async function scanMdFiles(dir, prefix = "") {
|
|
58
64
|
const files = [];
|
|
59
65
|
try {
|
|
@@ -93,6 +99,8 @@ const features_get = defineEventHandler(async () => {
|
|
|
93
99
|
const hasSpec = files.some((f) => f.filename === "spec.md");
|
|
94
100
|
const hasPlan = files.some((f) => f.filename === "plan.md");
|
|
95
101
|
const hasTasks = files.some((f) => f.filename === "tasks.md");
|
|
102
|
+
let completedTasks = 0;
|
|
103
|
+
let totalTasks = 0;
|
|
96
104
|
let name = dirName.replace(/^\d+-/, "").split("-").map((w) => w.charAt(0).toUpperCase() + w.slice(1)).join(" ");
|
|
97
105
|
if (hasSpec) {
|
|
98
106
|
try {
|
|
@@ -101,7 +109,16 @@ const features_get = defineEventHandler(async () => {
|
|
|
101
109
|
} catch {
|
|
102
110
|
}
|
|
103
111
|
}
|
|
104
|
-
|
|
112
|
+
if (hasTasks) {
|
|
113
|
+
try {
|
|
114
|
+
const tasksContent = await readFile(join(dirPath, "tasks.md"), "utf-8");
|
|
115
|
+
const progress = extractTaskProgress(tasksContent);
|
|
116
|
+
completedTasks = progress.completedTasks;
|
|
117
|
+
totalTasks = progress.totalTasks;
|
|
118
|
+
} catch {
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
features.push({ id: dirName, name, files, hasSpec, hasPlan, hasTasks, completedTasks, totalTasks });
|
|
105
122
|
}
|
|
106
123
|
return { features };
|
|
107
124
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features.get.mjs","sources":["../../../../../../server/api/specs/features.get.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"features.get.mjs","sources":["../../../../../../server/api/specs/features.get.ts"],"names":[],"mappings":"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"}
|