spec-cat 0.1.60 → 0.1.62
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/2zamijve.js +1 -0
- package/.output/public/_nuxt/{hL590mW_.js → BEjIzkrM.js} +54 -54
- package/.output/public/_nuxt/{0b9erTT7.js → BaSsfm-t.js} +1 -1
- package/.output/public/_nuxt/BjdLSVUw.js +1 -0
- package/.output/public/_nuxt/{fOeB-VHQ.js → Bz2rU2zs.js} +1 -1
- package/.output/public/_nuxt/{oZWZjCpV.js → D4LyIv_t.js} +1 -1
- package/.output/public/_nuxt/{CeUwIKdG.js → DIOhMCOf.js} +2 -2
- package/.output/public/_nuxt/{PyyEm6pa.js → DPOGSCeV.js} +1 -1
- package/.output/public/_nuxt/{BBjCHYA6.js → DeqM2TrP.js} +1 -1
- package/.output/public/_nuxt/{C7bEjS62.js → DwpuOtAP.js} +1 -1
- package/.output/public/_nuxt/{soqWbP5S.js → FfyCVKRU.js} +1 -1
- package/.output/public/_nuxt/{Ritd1ZTh.js → Su-Cl_JF.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/df07a2f8-c6d6-420d-a863-ac6e0e7673e0.json +1 -0
- package/.output/public/_nuxt/{CtkWRKR5.js → zrVRZSxq.js} +1 -1
- package/.output/server/chunks/_/asyncLock.mjs +17 -0
- package/.output/server/chunks/_/asyncLock.mjs.map +1 -0
- package/.output/server/chunks/_/chatGit.mjs +19 -0
- package/.output/server/chunks/_/chatGit.mjs.map +1 -0
- package/.output/server/chunks/_/claude.mjs +2 -1
- package/.output/server/chunks/_/claude.mjs.map +1 -1
- package/.output/server/chunks/_/claudeProvider.mjs +2 -1
- package/.output/server/chunks/_/claudeProvider.mjs.map +1 -1
- package/.output/server/chunks/_/codexProvider.mjs +14 -2
- package/.output/server/chunks/_/codexProvider.mjs.map +1 -1
- package/.output/server/chunks/_/conversationStore.mjs.map +1 -1
- package/.output/server/chunks/_/jobQueue.mjs +1 -1
- package/.output/server/chunks/_/validateWorktree.mjs +1 -1
- package/.output/server/chunks/_/worktreePaths.mjs +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 +558 -558
- package/.output/server/chunks/routes/_ws.mjs +7 -6
- package/.output/server/chunks/routes/_ws.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/compare.get.mjs +5 -0
- package/.output/server/chunks/routes/api/chat/compare.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/finalize.post.mjs +94 -93
- 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 +2 -0
- 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 +28 -22
- package/.output/server/chunks/routes/api/chat/preview-sync.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/preview.delete.mjs +24 -23
- package/.output/server/chunks/routes/api/chat/preview.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/preview.post.mjs +53 -48
- package/.output/server/chunks/routes/api/chat/preview.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/rebase.post.mjs +39 -41
- package/.output/server/chunks/routes/api/chat/rebase.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/worktree-commit.post.mjs +56 -46
- package/.output/server/chunks/routes/api/chat/worktree-commit.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/worktree.delete.mjs +38 -30
- package/.output/server/chunks/routes/api/chat/worktree.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat/worktree.post.mjs +73 -65
- package/.output/server/chunks/routes/api/chat/worktree.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/chat.post.mjs +16 -3
- package/.output/server/chunks/routes/api/chat.post.mjs.map +1 -1
- package/.output/server/package.json +1 -1
- package/package.json +1 -1
- package/.output/public/_nuxt/Bq8BNs4s.js +0 -1
- package/.output/public/_nuxt/CvPsR12A.js +0 -1
- package/.output/public/_nuxt/builds/meta/9d41800a-a604-4f15-8938-30e3b775a2dc.json +0 -1
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { d as defineEventHandler, b as readBody, c as createError, e as getProjectDir, l as logger } from '../../../nitro/nitro.mjs';
|
|
2
|
-
import {
|
|
2
|
+
import { execFile } from 'node:child_process';
|
|
3
3
|
import { promisify } from 'node:util';
|
|
4
4
|
import { a as resolvePreferredBaseBranch } from '../../../_/baseBranch.mjs';
|
|
5
5
|
import { g as getChatWorktreePath } from '../../../_/worktreePaths.mjs';
|
|
6
|
+
import { a as assertSafeBranchName } from '../../../_/chatGit.mjs';
|
|
7
|
+
import { w as withLock } from '../../../_/asyncLock.mjs';
|
|
6
8
|
import 'node:http';
|
|
7
9
|
import 'node:https';
|
|
8
10
|
import 'node:crypto';
|
|
@@ -28,7 +30,8 @@ import '../../../_/gitExec.mjs';
|
|
|
28
30
|
import 'child_process';
|
|
29
31
|
import 'util';
|
|
30
32
|
|
|
31
|
-
const
|
|
33
|
+
const execFileAsync = promisify(execFile);
|
|
34
|
+
const CONVERSATION_ID_PATTERN = /^[A-Za-z0-9._-]+$/;
|
|
32
35
|
const worktree_post = defineEventHandler(async (event) => {
|
|
33
36
|
var _a;
|
|
34
37
|
const body = await readBody(event);
|
|
@@ -39,17 +42,20 @@ const worktree_post = defineEventHandler(async (event) => {
|
|
|
39
42
|
});
|
|
40
43
|
}
|
|
41
44
|
const { conversationId, featureId } = body;
|
|
45
|
+
if (!CONVERSATION_ID_PATTERN.test(conversationId)) {
|
|
46
|
+
throw createError({ statusCode: 400, message: "Invalid conversationId" });
|
|
47
|
+
}
|
|
42
48
|
const requestedBaseBranch = (_a = body.baseBranch) == null ? void 0 : _a.trim();
|
|
43
49
|
const projectDir = getProjectDir();
|
|
44
|
-
const branchName = featureId || `sc/${conversationId}
|
|
50
|
+
const branchName = assertSafeBranchName(featureId || `sc/${conversationId}`, "branch");
|
|
45
51
|
const worktreePath = getChatWorktreePath(conversationId, featureId);
|
|
46
52
|
logger.chat.info("Creating chat worktree", { conversationId, branchName, worktreePath });
|
|
47
53
|
const requestStart = process.hrtime.bigint();
|
|
48
54
|
const stepDurations = {};
|
|
49
|
-
async function execTimed(step,
|
|
55
|
+
async function execTimed(step, args, options) {
|
|
50
56
|
const start = process.hrtime.bigint();
|
|
51
57
|
try {
|
|
52
|
-
const result = await
|
|
58
|
+
const result = await execFileAsync("git", args, { cwd: projectDir });
|
|
53
59
|
const durationMs = Number(process.hrtime.bigint() - start) / 1e6;
|
|
54
60
|
stepDurations[step] = durationMs;
|
|
55
61
|
logger.chat.debug("Chat worktree step completed", { conversationId, step, durationMs });
|
|
@@ -63,73 +69,75 @@ const worktree_post = defineEventHandler(async (event) => {
|
|
|
63
69
|
throw error;
|
|
64
70
|
}
|
|
65
71
|
}
|
|
66
|
-
|
|
67
|
-
let baseBranch = requestedBaseBranch || "";
|
|
68
|
-
if (!baseBranch) {
|
|
69
|
-
baseBranch = await resolvePreferredBaseBranch(projectDir) || "";
|
|
70
|
-
}
|
|
71
|
-
if (!baseBranch) {
|
|
72
|
-
return {
|
|
73
|
-
success: false,
|
|
74
|
-
error: "Unable to resolve a base branch for this worktree"
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
if (baseBranch.startsWith("sc/")) {
|
|
78
|
-
return {
|
|
79
|
-
success: false,
|
|
80
|
-
error: `Invalid base branch "${baseBranch}"`
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
let base = "";
|
|
72
|
+
return withLock(projectDir, async () => {
|
|
84
73
|
try {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
error: `Base branch "${baseBranch}" does not exist`
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
if (featureId) {
|
|
94
|
-
try {
|
|
95
|
-
await execTimed("check-feature-branch-exists", `git rev-parse --verify "${branchName}"`, { logFailure: false });
|
|
74
|
+
let baseBranch = requestedBaseBranch || "";
|
|
75
|
+
if (!baseBranch) {
|
|
76
|
+
baseBranch = await resolvePreferredBaseBranch(projectDir) || "";
|
|
77
|
+
}
|
|
78
|
+
if (!baseBranch) {
|
|
96
79
|
return {
|
|
97
80
|
success: false,
|
|
98
|
-
error:
|
|
81
|
+
error: "Unable to resolve a base branch for this worktree"
|
|
99
82
|
};
|
|
83
|
+
}
|
|
84
|
+
if (baseBranch.startsWith("sc/")) {
|
|
85
|
+
return {
|
|
86
|
+
success: false,
|
|
87
|
+
error: `Invalid base branch "${baseBranch}"`
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
let base = "";
|
|
91
|
+
try {
|
|
92
|
+
const { stdout: head } = await execTimed("resolve-base-head", ["rev-parse", "--verify", `refs/heads/${baseBranch}^{commit}`]);
|
|
93
|
+
base = head.trim();
|
|
100
94
|
} catch {
|
|
95
|
+
return {
|
|
96
|
+
success: false,
|
|
97
|
+
error: `Base branch "${baseBranch}" does not exist`
|
|
98
|
+
};
|
|
101
99
|
}
|
|
100
|
+
if (featureId) {
|
|
101
|
+
try {
|
|
102
|
+
await execTimed("check-feature-branch-exists", ["rev-parse", "--verify", branchName], { logFailure: false });
|
|
103
|
+
return {
|
|
104
|
+
success: false,
|
|
105
|
+
error: `Branch "${branchName}" already exists. Delete the existing branch or worktree first.`
|
|
106
|
+
};
|
|
107
|
+
} catch {
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
await execTimed("worktree-add", ["worktree", "add", "-b", branchName, worktreePath, base]);
|
|
111
|
+
const totalDurationMs = Number(process.hrtime.bigint() - requestStart) / 1e6;
|
|
112
|
+
logger.chat.info("Chat worktree created", {
|
|
113
|
+
conversationId,
|
|
114
|
+
worktreePath,
|
|
115
|
+
branchName,
|
|
116
|
+
baseBranch,
|
|
117
|
+
totalDurationMs,
|
|
118
|
+
steps: stepDurations
|
|
119
|
+
});
|
|
120
|
+
return {
|
|
121
|
+
success: true,
|
|
122
|
+
worktreePath,
|
|
123
|
+
branch: branchName,
|
|
124
|
+
baseBranch
|
|
125
|
+
};
|
|
126
|
+
} catch (error) {
|
|
127
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
128
|
+
const totalDurationMs = Number(process.hrtime.bigint() - requestStart) / 1e6;
|
|
129
|
+
logger.chat.error("Failed to create chat worktree", {
|
|
130
|
+
conversationId,
|
|
131
|
+
error: errorMessage,
|
|
132
|
+
totalDurationMs,
|
|
133
|
+
steps: stepDurations
|
|
134
|
+
});
|
|
135
|
+
return {
|
|
136
|
+
success: false,
|
|
137
|
+
error: errorMessage
|
|
138
|
+
};
|
|
102
139
|
}
|
|
103
|
-
|
|
104
|
-
const totalDurationMs = Number(process.hrtime.bigint() - requestStart) / 1e6;
|
|
105
|
-
logger.chat.info("Chat worktree created", {
|
|
106
|
-
conversationId,
|
|
107
|
-
worktreePath,
|
|
108
|
-
branchName,
|
|
109
|
-
baseBranch,
|
|
110
|
-
totalDurationMs,
|
|
111
|
-
steps: stepDurations
|
|
112
|
-
});
|
|
113
|
-
return {
|
|
114
|
-
success: true,
|
|
115
|
-
worktreePath,
|
|
116
|
-
branch: branchName,
|
|
117
|
-
baseBranch
|
|
118
|
-
};
|
|
119
|
-
} catch (error) {
|
|
120
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
121
|
-
const totalDurationMs = Number(process.hrtime.bigint() - requestStart) / 1e6;
|
|
122
|
-
logger.chat.error("Failed to create chat worktree", {
|
|
123
|
-
conversationId,
|
|
124
|
-
error: errorMessage,
|
|
125
|
-
totalDurationMs,
|
|
126
|
-
steps: stepDurations
|
|
127
|
-
});
|
|
128
|
-
return {
|
|
129
|
-
success: false,
|
|
130
|
-
error: errorMessage
|
|
131
|
-
};
|
|
132
|
-
}
|
|
140
|
+
});
|
|
133
141
|
});
|
|
134
142
|
|
|
135
143
|
export { worktree_post as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree.post.mjs","sources":["../../../../../../server/api/chat/worktree.post.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"worktree.post.mjs","sources":["../../../../../../server/api/chat/worktree.post.ts"],"names":[],"mappings":"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"}
|
|
@@ -170,14 +170,23 @@ ${context.context}`;
|
|
|
170
170
|
res.setHeader("X-Accel-Buffering", "no");
|
|
171
171
|
res.flushHeaders();
|
|
172
172
|
const writeChunk = (data) => {
|
|
173
|
+
if (res.writableEnded || res.destroyed) return;
|
|
173
174
|
res.write(data);
|
|
174
175
|
if (typeof res.flush === "function") {
|
|
175
176
|
res.flush();
|
|
176
177
|
}
|
|
177
178
|
};
|
|
179
|
+
const endResponse = () => {
|
|
180
|
+
if (res.writableEnded || res.destroyed) return;
|
|
181
|
+
try {
|
|
182
|
+
res.end();
|
|
183
|
+
} catch {
|
|
184
|
+
}
|
|
185
|
+
};
|
|
178
186
|
const isUnexpectedExit = (exitCode) => exitCode !== 0 && exitCode !== null;
|
|
179
187
|
return new Promise((resolve, reject) => {
|
|
180
188
|
let controller = null;
|
|
189
|
+
let clientGone = false;
|
|
181
190
|
const runStream = (resumeSessionId, isRetry = false, forceEphemeral = false) => {
|
|
182
191
|
streamChatWithProvider(
|
|
183
192
|
{
|
|
@@ -234,26 +243,30 @@ ${context.context}`;
|
|
|
234
243
|
} else {
|
|
235
244
|
writeChunk(doneEvent());
|
|
236
245
|
}
|
|
237
|
-
|
|
246
|
+
endResponse();
|
|
238
247
|
resolve();
|
|
239
248
|
},
|
|
240
249
|
onError(error) {
|
|
241
250
|
console.error("[Chat API] Process error:", error);
|
|
242
251
|
writeChunk(errorEvent(error.message));
|
|
243
|
-
|
|
252
|
+
endResponse();
|
|
244
253
|
reject(error);
|
|
245
254
|
}
|
|
246
255
|
}
|
|
247
256
|
).then((activeController) => {
|
|
248
257
|
controller = activeController;
|
|
258
|
+
if (clientGone) {
|
|
259
|
+
controller.kill();
|
|
260
|
+
}
|
|
249
261
|
}).catch((error) => {
|
|
250
262
|
writeChunk(errorEvent(error instanceof Error ? error.message : String(error)));
|
|
251
|
-
|
|
263
|
+
endResponse();
|
|
252
264
|
reject(error);
|
|
253
265
|
});
|
|
254
266
|
};
|
|
255
267
|
runStream(chatRequest.sessionId);
|
|
256
268
|
res.on("close", () => {
|
|
269
|
+
clientGone = true;
|
|
257
270
|
controller == null ? void 0 : controller.kill();
|
|
258
271
|
});
|
|
259
272
|
});
|
|
@@ -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":"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
|
|
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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"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{M as f,$ as h,g as m}from"./CeUwIKdG.js";const p="claude",l="sonnet",g=[{value:"sonnet",label:"Sonnet",description:"Balanced performance and cost"},{value:"opus",label:"Opus",description:"Most capable, higher cost"},{value:"haiku",label:"Haiku",description:"Fast and cost-effective"}];function M(e){if(!e)return{};const t={},s=typeof e.claudeModel=="string"&&g.some(n=>n.value===e.claudeModel)?e.claudeModel:void 0;typeof e.providerId=="string"?(t.providerId=e.providerId,typeof e.providerModelKey=="string"&&e.providerModelKey.length>0?t.providerModelKey=e.providerModelKey:s?t.providerModelKey=s:t.providerModelKey=l):s&&(t.providerId="claude",t.providerModelKey=s),(e.theme==="dark"||e.theme==="light")&&(t.theme=e.theme);const r=e.permissionMode;return r&&["plan","ask","auto","bypass"].includes(String(r))&&(t.permissionMode=r),typeof e.autoGenerateCommitMessages=="boolean"&&(t.autoGenerateCommitMessages=e.autoGenerateCommitMessages),t}const y=f("settings",{state:()=>({providerId:p,providerModelKey:l,theme:"dark",permissionMode:"ask",autoGenerateCommitMessages:!1,_hydrated:!1}),getters:{providerSelection:e=>({providerId:e.providerId,modelKey:e.providerModelKey})},actions:{async hydrate(){if(!this._hydrated)try{const e=await $fetch("/api/settings"),t=M(e);t.providerId!==void 0&&(this.providerId=t.providerId),t.providerModelKey!==void 0&&(this.providerModelKey=t.providerModelKey),t.theme!==void 0&&(this.theme=t.theme),t.permissionMode!==void 0&&(this.permissionMode=t.permissionMode),t.autoGenerateCommitMessages!==void 0&&(this.autoGenerateCommitMessages=t.autoGenerateCommitMessages),this._hydrated=!0}catch(e){console.error("Failed to load settings:",e)}},setTheme(e){this.theme=e,this._saveToServer()},setProviderSelection(e){this.providerId=e.providerId,this.providerModelKey=typeof e.modelKey=="string"&&e.modelKey.length>0?e.modelKey:l,this._saveToServer(!0)},setPermissionMode(e){this.permissionMode=e,this._saveToServer()},setAutoGenerateCommitMessages(e){this.autoGenerateCommitMessages=e,this._saveToServer()},resetToDefaults(){this.providerId=p,this.providerModelKey=l,this.theme="dark",this.permissionMode="ask",this.autoGenerateCommitMessages=!1,this._saveToServer()},_saveToServer(e=!1){const t={providerId:this.providerId,providerModelKey:this.providerModelKey,claudeModel:this.providerId==="claude"?this.providerModelKey:void 0,theme:this.theme,permissionMode:this.permissionMode,autoGenerateCommitMessages:this.autoGenerateCommitMessages};$fetch("/api/settings",{method:"POST",body:t}).then(s=>{if(!e||!s?.settings)return;const r=s.settings.providerId,n=s.settings.providerModelKey;typeof r=="string"&&(this.providerId=r),typeof n=="string"&&n.length>0&&(this.providerModelKey=n)}).catch(s=>{console.error("Failed to save settings:",s)})}}}),_=Object.freeze(Object.defineProperty({__proto__:null,useSettingsStore:y},Symbol.toStringTag,{value:"Module"})),d=m([]);function S(){const e=(i,o="info",a=3e3)=>{const c=`toast-${Date.now()}-${Math.random().toString(36).slice(2)}`,v={id:c,message:i,type:o,duration:a};return d.value.push(v),a>0&&setTimeout(()=>{t(c)},a),c},t=i=>{const o=d.value.findIndex(a=>a.id===i);o!==-1&&d.value.splice(o,1)},s=(i,o)=>e(i,"success",o),r=(i,o)=>e(i,"error",o),n=(i,o)=>e(i,"info",o),u=(i,o)=>e(i,"warning",o);return{toasts:h(d),add:e,remove:t,success:s,error:r,info:n,warning:u}}const A=Object.freeze(Object.defineProperty({__proto__:null,useToast:S},Symbol.toStringTag,{value:"Module"}));function T(){return`blk-${Date.now()}-${Math.random().toString(36).substring(2,6)}`}function E(e){return Array.isArray(e.contentBlocks)&&e.contentBlocks.length>0}const K={plan:"Plan Mode",ask:"Ask Before",auto:"Auto Edit",bypass:"Bypass"},C={plan:"The assistant will create a plan before making changes",ask:"The assistant will ask before each action",auto:"The assistant can read and edit files automatically",bypass:"Skip all permission checks (dangerous)"},k=300,O=600,D=400;function b(){return`msg-${Date.now()}-${Math.random().toString(36).substring(2,8)}`}const G=2,N=100,L=80;function P(){return`conv-${Math.random().toString(36).slice(2,12)}`}function R(e){const s=e.trim().replace(/\n/g," ");return s.length<=50?s:s.slice(0,50).trim()+"..."}function $(e){if(!e||typeof e!="object")return!1;const t=e;return typeof t.id=="string"&&typeof t.title=="string"&&Array.isArray(t.messages)&&typeof t.createdAt=="string"&&typeof t.updatedAt=="string"&&typeof t.cwd=="string"}function H(e){if(!e||typeof e!="object")return!1;const t=e;return typeof t.id=="string"&&typeof t.sourceConversationId=="string"&&typeof t.title=="string"&&Array.isArray(t.messages)&&typeof t.createdAt=="string"&&typeof t.updatedAt=="string"&&typeof t.archivedAt=="string"&&typeof t.cwd=="string"}export{l as D,N as M,D as P,G as S,L as W,S as a,H as b,k as c,O as d,P as e,p as f,b as g,R as h,$ as i,T as j,K as k,C as l,E as m,A as n,_ as s,y as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as e}from"./DlAUqK2U.js";import{z as r,y as c}from"./CeUwIKdG.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":"9d41800a-a604-4f15-8938-30e3b775a2dc","timestamp":1780312711107,"prerendered":[]}
|