Spaces:
Sleeping
Sleeping
fixing gemini
Browse files- app/api/gemini/chat/route.ts +59 -86
- app/components/GeminiChat.tsx +58 -28
- package-lock.json +491 -1
- package.json +1 -0
app/api/gemini/chat/route.ts
CHANGED
|
@@ -1,112 +1,85 @@
|
|
| 1 |
import { NextRequest, NextResponse } from 'next/server'
|
| 2 |
-
|
| 3 |
-
const GEMINI_API_URL = 'https://generativelanguage.googleapis.com/v1beta/models/gemini-flash-latest:generateContent'
|
| 4 |
-
const GEMINI_API_KEY = process.env.GEMINI_API_KEY
|
| 5 |
|
| 6 |
export async function POST(request: NextRequest) {
|
| 7 |
try {
|
| 8 |
-
const { message,
|
|
|
|
| 9 |
|
| 10 |
-
if (!
|
| 11 |
return NextResponse.json(
|
| 12 |
-
{ error: 'Gemini API key not configured
|
| 13 |
{ status: 500 }
|
| 14 |
)
|
| 15 |
}
|
| 16 |
|
| 17 |
-
|
| 18 |
-
if (generateImage) {
|
| 19 |
-
// Note: Gemini doesn't directly generate images, but we can use a prompt to describe what an image should contain
|
| 20 |
-
// You would typically integrate with an image generation service like Stable Diffusion or DALL-E here
|
| 21 |
-
return NextResponse.json({
|
| 22 |
-
response: `I can describe the image for you: "${message}". For actual image generation, you would need to integrate with services like DALL-E or Stable Diffusion.`,
|
| 23 |
-
imageDescription: message,
|
| 24 |
-
note: 'Image generation requires integration with specialized services.'
|
| 25 |
-
})
|
| 26 |
-
}
|
| 27 |
-
|
| 28 |
-
// Prepare the request body for Gemini API
|
| 29 |
-
const requestBody: any = {
|
| 30 |
-
contents: [],
|
| 31 |
-
generationConfig: {
|
| 32 |
-
temperature: 0.9,
|
| 33 |
-
topK: 1,
|
| 34 |
-
topP: 1,
|
| 35 |
-
maxOutputTokens: 2048,
|
| 36 |
-
}
|
| 37 |
-
}
|
| 38 |
-
|
| 39 |
-
// Add conversation history if available
|
| 40 |
-
if (history && history.length > 0) {
|
| 41 |
-
history.forEach((msg: any) => {
|
| 42 |
-
requestBody.contents.push({
|
| 43 |
-
role: msg.role === 'user' ? 'user' : 'model',
|
| 44 |
-
parts: [{ text: msg.content }]
|
| 45 |
-
})
|
| 46 |
-
})
|
| 47 |
-
}
|
| 48 |
|
| 49 |
-
//
|
| 50 |
-
const
|
|
|
|
|
|
|
|
|
|
| 51 |
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
|
|
|
|
|
|
| 55 |
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 63 |
}
|
| 64 |
-
}
|
| 65 |
-
}
|
| 66 |
-
|
| 67 |
-
requestBody.contents.push({
|
| 68 |
-
role: 'user',
|
| 69 |
-
parts: parts
|
| 70 |
})
|
| 71 |
|
| 72 |
-
|
| 73 |
-
const response = await fetch(`${GEMINI_API_URL}?key=${GEMINI_API_KEY}`, {
|
| 74 |
-
method: 'POST',
|
| 75 |
headers: {
|
| 76 |
-
'Content-Type': '
|
|
|
|
|
|
|
| 77 |
},
|
| 78 |
-
body: JSON.stringify(requestBody)
|
| 79 |
-
})
|
| 80 |
-
|
| 81 |
-
if (!response.ok) {
|
| 82 |
-
const errorText = await response.text()
|
| 83 |
-
console.error('Gemini API error:', errorText)
|
| 84 |
-
return NextResponse.json(
|
| 85 |
-
{ error: 'Failed to get response from Gemini', details: errorText },
|
| 86 |
-
{ status: response.status }
|
| 87 |
-
)
|
| 88 |
-
}
|
| 89 |
-
|
| 90 |
-
const data = await response.json()
|
| 91 |
-
|
| 92 |
-
if (!data.candidates || data.candidates.length === 0) {
|
| 93 |
-
return NextResponse.json(
|
| 94 |
-
{ error: 'No response generated' },
|
| 95 |
-
{ status: 500 }
|
| 96 |
-
)
|
| 97 |
-
}
|
| 98 |
-
|
| 99 |
-
const generatedText = data.candidates[0].content.parts[0].text
|
| 100 |
-
|
| 101 |
-
return NextResponse.json({
|
| 102 |
-
response: generatedText
|
| 103 |
})
|
| 104 |
|
| 105 |
} catch (error) {
|
| 106 |
console.error('Error in Gemini chat API:', error)
|
| 107 |
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred'
|
| 108 |
return NextResponse.json(
|
| 109 |
-
{ error: 'Failed to process request'
|
| 110 |
{ status: 500 }
|
| 111 |
)
|
| 112 |
}
|
|
|
|
| 1 |
import { NextRequest, NextResponse } from 'next/server'
|
| 2 |
+
import { GoogleGenAI } from "@google/genai"
|
|
|
|
|
|
|
| 3 |
|
| 4 |
export async function POST(request: NextRequest) {
|
| 5 |
try {
|
| 6 |
+
const { message, history } = await request.json()
|
| 7 |
+
const apiKey = process.env.GEMINI_API_KEY
|
| 8 |
|
| 9 |
+
if (!apiKey) {
|
| 10 |
return NextResponse.json(
|
| 11 |
+
{ error: 'Gemini API key not configured' },
|
| 12 |
{ status: 500 }
|
| 13 |
)
|
| 14 |
}
|
| 15 |
|
| 16 |
+
const ai = new GoogleGenAI({ apiKey })
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
|
| 18 |
+
// Convert history to Gemini format
|
| 19 |
+
const contents = history?.map((msg: any) => ({
|
| 20 |
+
role: msg.role === 'assistant' ? 'model' : 'user',
|
| 21 |
+
parts: [{ text: msg.content }]
|
| 22 |
+
})) || []
|
| 23 |
|
| 24 |
+
// Add current message
|
| 25 |
+
contents.push({
|
| 26 |
+
role: 'user',
|
| 27 |
+
parts: [{ text: message }]
|
| 28 |
+
})
|
| 29 |
|
| 30 |
+
const stream = new ReadableStream({
|
| 31 |
+
async start(controller) {
|
| 32 |
+
try {
|
| 33 |
+
const result = await ai.models.generateContentStream({
|
| 34 |
+
model: 'gemini-flash-latest',
|
| 35 |
+
contents,
|
| 36 |
+
config: {
|
| 37 |
+
thinkingConfig: {
|
| 38 |
+
includeThoughts: true
|
| 39 |
+
}
|
| 40 |
+
}
|
| 41 |
+
})
|
| 42 |
+
|
| 43 |
+
for await (const chunk of result) {
|
| 44 |
+
// Extract text and thoughts
|
| 45 |
+
const text = chunk.text
|
| 46 |
+
|
| 47 |
+
// Check for thoughts in the candidates
|
| 48 |
+
// Note: The SDK structure for thoughts might vary, checking parts
|
| 49 |
+
let thought = ''
|
| 50 |
+
if (chunk.candidates?.[0]?.content?.parts) {
|
| 51 |
+
for (const part of chunk.candidates[0].content.parts) {
|
| 52 |
+
// @ts-ignore - thought property might exist on part in newer models/SDKs
|
| 53 |
+
if (part.thought) {
|
| 54 |
+
// @ts-ignore
|
| 55 |
+
thought += part.thought
|
| 56 |
+
}
|
| 57 |
+
}
|
| 58 |
+
}
|
| 59 |
+
|
| 60 |
+
const data = JSON.stringify({ text, thought })
|
| 61 |
+
controller.enqueue(new TextEncoder().encode(`data: ${data}\n\n`))
|
| 62 |
+
}
|
| 63 |
+
controller.close()
|
| 64 |
+
} catch (error) {
|
| 65 |
+
console.error('Streaming error:', error)
|
| 66 |
+
controller.error(error)
|
| 67 |
}
|
| 68 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 69 |
})
|
| 70 |
|
| 71 |
+
return new NextResponse(stream, {
|
|
|
|
|
|
|
| 72 |
headers: {
|
| 73 |
+
'Content-Type': 'text/event-stream',
|
| 74 |
+
'Cache-Control': 'no-cache',
|
| 75 |
+
'Connection': 'keep-alive',
|
| 76 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 77 |
})
|
| 78 |
|
| 79 |
} catch (error) {
|
| 80 |
console.error('Error in Gemini chat API:', error)
|
|
|
|
| 81 |
return NextResponse.json(
|
| 82 |
+
{ error: 'Failed to process request' },
|
| 83 |
{ status: 500 }
|
| 84 |
)
|
| 85 |
}
|
app/components/GeminiChat.tsx
CHANGED
|
@@ -20,6 +20,7 @@ interface Message {
|
|
| 20 |
id: string
|
| 21 |
role: 'user' | 'assistant'
|
| 22 |
content: string
|
|
|
|
| 23 |
timestamp: number
|
| 24 |
}
|
| 25 |
|
|
@@ -97,35 +98,56 @@ export function GeminiChat({ onClose, onMinimize, onMaximize, onFocus, zIndex }:
|
|
| 97 |
}),
|
| 98 |
})
|
| 99 |
|
| 100 |
-
|
| 101 |
|
| 102 |
-
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
|
| 108 |
-
|
| 109 |
-
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
|
| 119 |
-
|
|
|
|
|
|
|
| 120 |
|
| 121 |
-
|
| 122 |
-
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 126 |
}
|
| 127 |
-
setMessages(prev => [...prev, assistantMessage])
|
| 128 |
}
|
|
|
|
| 129 |
} catch (error) {
|
| 130 |
console.error('Error sending message:', error)
|
| 131 |
const errorMessage: Message = {
|
|
@@ -162,7 +184,7 @@ export function GeminiChat({ onClose, onMinimize, onMaximize, onFocus, zIndex }:
|
|
| 162 |
return (
|
| 163 |
<Window
|
| 164 |
id="gemini"
|
| 165 |
-
title="Gemini
|
| 166 |
isOpen={true}
|
| 167 |
onClose={onClose}
|
| 168 |
onMinimize={onMinimize}
|
|
@@ -182,7 +204,7 @@ export function GeminiChat({ onClose, onMinimize, onMaximize, onFocus, zIndex }:
|
|
| 182 |
<Sparkle size={18} weight="fill" className="text-white" />
|
| 183 |
</div>
|
| 184 |
<span className="text-transparent bg-clip-text bg-gradient-to-r from-blue-500 to-pink-600 font-bold">
|
| 185 |
-
Gemini
|
| 186 |
</span>
|
| 187 |
</div>
|
| 188 |
<button
|
|
@@ -212,12 +234,20 @@ export function GeminiChat({ onClose, onMinimize, onMaximize, onFocus, zIndex }:
|
|
| 212 |
{message.role === 'assistant' && (
|
| 213 |
<p className="font-semibold text-blue-600 mb-1 text-xs">Gemini</p>
|
| 214 |
)}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 215 |
<p className="whitespace-pre-wrap">{message.content}</p>
|
| 216 |
</div>
|
| 217 |
</div>
|
| 218 |
))}
|
| 219 |
|
| 220 |
-
{isLoading && (
|
| 221 |
<div className="flex justify-start">
|
| 222 |
<div className="bg-gray-100 rounded-2xl rounded-tl-none px-4 py-3 text-sm">
|
| 223 |
<p className="font-semibold text-blue-600 mb-1 text-xs">Gemini</p>
|
|
|
|
| 20 |
id: string
|
| 21 |
role: 'user' | 'assistant'
|
| 22 |
content: string
|
| 23 |
+
thought?: string
|
| 24 |
timestamp: number
|
| 25 |
}
|
| 26 |
|
|
|
|
| 98 |
}),
|
| 99 |
})
|
| 100 |
|
| 101 |
+
if (!response.ok) throw new Error('Network response was not ok')
|
| 102 |
|
| 103 |
+
const reader = response.body?.getReader()
|
| 104 |
+
const decoder = new TextDecoder()
|
| 105 |
+
|
| 106 |
+
// Create a placeholder message
|
| 107 |
+
const assistantMessage: Message = {
|
| 108 |
+
id: (Date.now() + 1).toString(),
|
| 109 |
+
role: 'assistant',
|
| 110 |
+
content: '',
|
| 111 |
+
thought: '',
|
| 112 |
+
timestamp: Date.now()
|
| 113 |
+
}
|
| 114 |
+
setMessages(prev => [...prev, assistantMessage])
|
| 115 |
+
|
| 116 |
+
if (reader) {
|
| 117 |
+
while (true) {
|
| 118 |
+
const { done, value } = await reader.read()
|
| 119 |
+
if (done) break
|
| 120 |
+
|
| 121 |
+
const chunk = decoder.decode(value, { stream: true })
|
| 122 |
+
const lines = chunk.split('\n\n')
|
| 123 |
|
| 124 |
+
for (const line of lines) {
|
| 125 |
+
if (line.startsWith('data: ')) {
|
| 126 |
+
try {
|
| 127 |
+
const data = JSON.parse(line.slice(6))
|
| 128 |
+
setMessages(prev => {
|
| 129 |
+
const newMessages = [...prev]
|
| 130 |
+
const lastMsg = newMessages[newMessages.length - 1]
|
| 131 |
+
if (lastMsg.id === assistantMessage.id) {
|
| 132 |
+
return [
|
| 133 |
+
...newMessages.slice(0, -1),
|
| 134 |
+
{
|
| 135 |
+
...lastMsg,
|
| 136 |
+
content: lastMsg.content + (data.text || ''),
|
| 137 |
+
thought: (lastMsg.thought || '') + (data.thought || '')
|
| 138 |
+
}
|
| 139 |
+
]
|
| 140 |
+
}
|
| 141 |
+
return newMessages
|
| 142 |
+
})
|
| 143 |
+
} catch (e) {
|
| 144 |
+
console.error('Error parsing chunk:', e)
|
| 145 |
+
}
|
| 146 |
+
}
|
| 147 |
+
}
|
| 148 |
}
|
|
|
|
| 149 |
}
|
| 150 |
+
|
| 151 |
} catch (error) {
|
| 152 |
console.error('Error sending message:', error)
|
| 153 |
const errorMessage: Message = {
|
|
|
|
| 184 |
return (
|
| 185 |
<Window
|
| 186 |
id="gemini"
|
| 187 |
+
title="Gemini"
|
| 188 |
isOpen={true}
|
| 189 |
onClose={onClose}
|
| 190 |
onMinimize={onMinimize}
|
|
|
|
| 204 |
<Sparkle size={18} weight="fill" className="text-white" />
|
| 205 |
</div>
|
| 206 |
<span className="text-transparent bg-clip-text bg-gradient-to-r from-blue-500 to-pink-600 font-bold">
|
| 207 |
+
Gemini
|
| 208 |
</span>
|
| 209 |
</div>
|
| 210 |
<button
|
|
|
|
| 234 |
{message.role === 'assistant' && (
|
| 235 |
<p className="font-semibold text-blue-600 mb-1 text-xs">Gemini</p>
|
| 236 |
)}
|
| 237 |
+
{message.thought && (
|
| 238 |
+
<div className="mb-2 p-2 bg-white/50 rounded text-xs text-gray-600 border border-gray-200/50 italic">
|
| 239 |
+
<div className="font-semibold mb-1 not-italic flex items-center gap-1">
|
| 240 |
+
<Sparkle size={12} /> Thinking Process:
|
| 241 |
+
</div>
|
| 242 |
+
{message.thought}
|
| 243 |
+
</div>
|
| 244 |
+
)}
|
| 245 |
<p className="whitespace-pre-wrap">{message.content}</p>
|
| 246 |
</div>
|
| 247 |
</div>
|
| 248 |
))}
|
| 249 |
|
| 250 |
+
{isLoading && messages[messages.length - 1].role === 'user' && (
|
| 251 |
<div className="flex justify-start">
|
| 252 |
<div className="bg-gray-100 rounded-2xl rounded-tl-none px-4 py-3 text-sm">
|
| 253 |
<p className="font-semibold text-blue-600 mb-1 text-xs">Gemini</p>
|
package-lock.json
CHANGED
|
@@ -9,6 +9,7 @@
|
|
| 9 |
"version": "0.1.0",
|
| 10 |
"dependencies": {
|
| 11 |
"@github/spark": "^0.41.23",
|
|
|
|
| 12 |
"@modelcontextprotocol/sdk": "^1.22.0",
|
| 13 |
"@monaco-editor/react": "^4.7.0",
|
| 14 |
"@phosphor-icons/react": "^2.1.10",
|
|
@@ -986,6 +987,48 @@
|
|
| 986 |
"vite": "^6.2.0"
|
| 987 |
}
|
| 988 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 989 |
"node_modules/@humanfs/core": {
|
| 990 |
"version": "0.19.1",
|
| 991 |
"resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
|
|
@@ -1503,6 +1546,96 @@
|
|
| 1503 |
"url": "https://opencollective.com/libvips"
|
| 1504 |
}
|
| 1505 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1506 |
"node_modules/@jonkemp/package-utils": {
|
| 1507 |
"version": "1.0.8",
|
| 1508 |
"resolved": "https://registry.npmjs.org/@jonkemp/package-utils/-/package-utils-1.0.8.tgz",
|
|
@@ -2380,6 +2513,16 @@
|
|
| 2380 |
"react-dom": ">= 16.8"
|
| 2381 |
}
|
| 2382 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2383 |
"node_modules/@puppeteer/browsers": {
|
| 2384 |
"version": "2.10.13",
|
| 2385 |
"resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.13.tgz",
|
|
@@ -4373,6 +4516,15 @@
|
|
| 4373 |
"node": ">=0.6"
|
| 4374 |
}
|
| 4375 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4376 |
"node_modules/binary": {
|
| 4377 |
"version": "0.3.0",
|
| 4378 |
"resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz",
|
|
@@ -4548,6 +4700,12 @@
|
|
| 4548 |
"node": "*"
|
| 4549 |
}
|
| 4550 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4551 |
"node_modules/buffer-indexof-polyfill": {
|
| 4552 |
"version": "1.0.2",
|
| 4553 |
"resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz",
|
|
@@ -5387,6 +5545,21 @@
|
|
| 5387 |
"readable-stream": "^2.0.2"
|
| 5388 |
}
|
| 5389 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5390 |
"node_modules/ee-first": {
|
| 5391 |
"version": "1.1.1",
|
| 5392 |
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
|
@@ -5404,7 +5577,6 @@
|
|
| 5404 |
"version": "9.2.2",
|
| 5405 |
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
|
| 5406 |
"integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
|
| 5407 |
-
"dev": true,
|
| 5408 |
"license": "MIT"
|
| 5409 |
},
|
| 5410 |
"node_modules/encodeurl": {
|
|
@@ -6295,6 +6467,12 @@
|
|
| 6295 |
"node": ">= 0.6"
|
| 6296 |
}
|
| 6297 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6298 |
"node_modules/extract-css": {
|
| 6299 |
"version": "2.0.1",
|
| 6300 |
"resolved": "https://registry.npmjs.org/extract-css/-/extract-css-2.0.1.tgz",
|
|
@@ -6616,6 +6794,22 @@
|
|
| 6616 |
"url": "https://github.com/sponsors/ljharb"
|
| 6617 |
}
|
| 6618 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6619 |
"node_modules/form-data": {
|
| 6620 |
"version": "4.0.4",
|
| 6621 |
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
|
|
@@ -6804,6 +6998,116 @@
|
|
| 6804 |
"url": "https://github.com/sponsors/ljharb"
|
| 6805 |
}
|
| 6806 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6807 |
"node_modules/generator-function": {
|
| 6808 |
"version": "2.0.1",
|
| 6809 |
"resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz",
|
|
@@ -6994,6 +7298,33 @@
|
|
| 6994 |
"url": "https://github.com/sponsors/ljharb"
|
| 6995 |
}
|
| 6996 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6997 |
"node_modules/gopd": {
|
| 6998 |
"version": "1.2.0",
|
| 6999 |
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
|
|
@@ -7019,6 +7350,19 @@
|
|
| 7019 |
"dev": true,
|
| 7020 |
"license": "MIT"
|
| 7021 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7022 |
"node_modules/handlebars": {
|
| 7023 |
"version": "4.7.8",
|
| 7024 |
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
|
|
@@ -7877,6 +8221,21 @@
|
|
| 7877 |
"node": ">= 0.4"
|
| 7878 |
}
|
| 7879 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7880 |
"node_modules/jiti": {
|
| 7881 |
"version": "2.6.1",
|
| 7882 |
"resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz",
|
|
@@ -7925,6 +8284,15 @@
|
|
| 7925 |
"node": ">=6"
|
| 7926 |
}
|
| 7927 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7928 |
"node_modules/json-buffer": {
|
| 7929 |
"version": "3.0.1",
|
| 7930 |
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
|
|
@@ -7992,6 +8360,27 @@
|
|
| 7992 |
"setimmediate": "^1.0.5"
|
| 7993 |
}
|
| 7994 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7995 |
"node_modules/katex": {
|
| 7996 |
"version": "0.16.25",
|
| 7997 |
"resolved": "https://registry.npmjs.org/katex/-/katex-0.16.25.tgz",
|
|
@@ -8785,6 +9174,15 @@
|
|
| 8785 |
"url": "https://github.com/sponsors/ljharb"
|
| 8786 |
}
|
| 8787 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8788 |
"node_modules/mitt": {
|
| 8789 |
"version": "3.0.1",
|
| 8790 |
"resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz",
|
|
@@ -9416,6 +9814,12 @@
|
|
| 9416 |
"node": ">= 14"
|
| 9417 |
}
|
| 9418 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 9419 |
"node_modules/pako": {
|
| 9420 |
"version": "1.0.11",
|
| 9421 |
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
|
|
@@ -9478,6 +9882,28 @@
|
|
| 9478 |
"dev": true,
|
| 9479 |
"license": "MIT"
|
| 9480 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 9481 |
"node_modules/path-to-regexp": {
|
| 9482 |
"version": "8.3.0",
|
| 9483 |
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz",
|
|
@@ -10975,6 +11401,18 @@
|
|
| 10975 |
"url": "https://github.com/sponsors/ljharb"
|
| 10976 |
}
|
| 10977 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 10978 |
"node_modules/slick": {
|
| 10979 |
"version": "1.12.2",
|
| 10980 |
"resolved": "https://registry.npmjs.org/slick/-/slick-1.12.2.tgz",
|
|
@@ -11146,6 +11584,27 @@
|
|
| 11146 |
"node": ">=8"
|
| 11147 |
}
|
| 11148 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11149 |
"node_modules/string-width/node_modules/emoji-regex": {
|
| 11150 |
"version": "8.0.0",
|
| 11151 |
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
|
@@ -11277,6 +11736,19 @@
|
|
| 11277 |
"node": ">=8"
|
| 11278 |
}
|
| 11279 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11280 |
"node_modules/strip-bom": {
|
| 11281 |
"version": "3.0.0",
|
| 11282 |
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
|
|
@@ -12323,6 +12795,24 @@
|
|
| 12323 |
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
|
| 12324 |
}
|
| 12325 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 12326 |
"node_modules/wrappy": {
|
| 12327 |
"version": "1.0.2",
|
| 12328 |
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
|
|
|
| 9 |
"version": "0.1.0",
|
| 10 |
"dependencies": {
|
| 11 |
"@github/spark": "^0.41.23",
|
| 12 |
+
"@google/genai": "^1.30.0",
|
| 13 |
"@modelcontextprotocol/sdk": "^1.22.0",
|
| 14 |
"@monaco-editor/react": "^4.7.0",
|
| 15 |
"@phosphor-icons/react": "^2.1.10",
|
|
|
|
| 987 |
"vite": "^6.2.0"
|
| 988 |
}
|
| 989 |
},
|
| 990 |
+
"node_modules/@google/genai": {
|
| 991 |
+
"version": "1.30.0",
|
| 992 |
+
"resolved": "https://registry.npmjs.org/@google/genai/-/genai-1.30.0.tgz",
|
| 993 |
+
"integrity": "sha512-3MRcgczBFbUat1wIlZoLJ0vCCfXgm7Qxjh59cZi2X08RgWLtm9hKOspzp7TOg1TV2e26/MLxR2GR5yD5GmBV2w==",
|
| 994 |
+
"license": "Apache-2.0",
|
| 995 |
+
"dependencies": {
|
| 996 |
+
"google-auth-library": "^10.3.0",
|
| 997 |
+
"ws": "^8.18.0"
|
| 998 |
+
},
|
| 999 |
+
"engines": {
|
| 1000 |
+
"node": ">=20.0.0"
|
| 1001 |
+
},
|
| 1002 |
+
"peerDependencies": {
|
| 1003 |
+
"@modelcontextprotocol/sdk": "^1.20.1"
|
| 1004 |
+
},
|
| 1005 |
+
"peerDependenciesMeta": {
|
| 1006 |
+
"@modelcontextprotocol/sdk": {
|
| 1007 |
+
"optional": true
|
| 1008 |
+
}
|
| 1009 |
+
}
|
| 1010 |
+
},
|
| 1011 |
+
"node_modules/@google/genai/node_modules/ws": {
|
| 1012 |
+
"version": "8.18.3",
|
| 1013 |
+
"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
|
| 1014 |
+
"integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
|
| 1015 |
+
"license": "MIT",
|
| 1016 |
+
"engines": {
|
| 1017 |
+
"node": ">=10.0.0"
|
| 1018 |
+
},
|
| 1019 |
+
"peerDependencies": {
|
| 1020 |
+
"bufferutil": "^4.0.1",
|
| 1021 |
+
"utf-8-validate": ">=5.0.2"
|
| 1022 |
+
},
|
| 1023 |
+
"peerDependenciesMeta": {
|
| 1024 |
+
"bufferutil": {
|
| 1025 |
+
"optional": true
|
| 1026 |
+
},
|
| 1027 |
+
"utf-8-validate": {
|
| 1028 |
+
"optional": true
|
| 1029 |
+
}
|
| 1030 |
+
}
|
| 1031 |
+
},
|
| 1032 |
"node_modules/@humanfs/core": {
|
| 1033 |
"version": "0.19.1",
|
| 1034 |
"resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
|
|
|
|
| 1546 |
"url": "https://opencollective.com/libvips"
|
| 1547 |
}
|
| 1548 |
},
|
| 1549 |
+
"node_modules/@isaacs/cliui": {
|
| 1550 |
+
"version": "8.0.2",
|
| 1551 |
+
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
|
| 1552 |
+
"integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
|
| 1553 |
+
"license": "ISC",
|
| 1554 |
+
"dependencies": {
|
| 1555 |
+
"string-width": "^5.1.2",
|
| 1556 |
+
"string-width-cjs": "npm:string-width@^4.2.0",
|
| 1557 |
+
"strip-ansi": "^7.0.1",
|
| 1558 |
+
"strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
|
| 1559 |
+
"wrap-ansi": "^8.1.0",
|
| 1560 |
+
"wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
|
| 1561 |
+
},
|
| 1562 |
+
"engines": {
|
| 1563 |
+
"node": ">=12"
|
| 1564 |
+
}
|
| 1565 |
+
},
|
| 1566 |
+
"node_modules/@isaacs/cliui/node_modules/ansi-regex": {
|
| 1567 |
+
"version": "6.2.2",
|
| 1568 |
+
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
|
| 1569 |
+
"integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
|
| 1570 |
+
"license": "MIT",
|
| 1571 |
+
"engines": {
|
| 1572 |
+
"node": ">=12"
|
| 1573 |
+
},
|
| 1574 |
+
"funding": {
|
| 1575 |
+
"url": "https://github.com/chalk/ansi-regex?sponsor=1"
|
| 1576 |
+
}
|
| 1577 |
+
},
|
| 1578 |
+
"node_modules/@isaacs/cliui/node_modules/ansi-styles": {
|
| 1579 |
+
"version": "6.2.3",
|
| 1580 |
+
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
|
| 1581 |
+
"integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
|
| 1582 |
+
"license": "MIT",
|
| 1583 |
+
"engines": {
|
| 1584 |
+
"node": ">=12"
|
| 1585 |
+
},
|
| 1586 |
+
"funding": {
|
| 1587 |
+
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
| 1588 |
+
}
|
| 1589 |
+
},
|
| 1590 |
+
"node_modules/@isaacs/cliui/node_modules/string-width": {
|
| 1591 |
+
"version": "5.1.2",
|
| 1592 |
+
"resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
|
| 1593 |
+
"integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
|
| 1594 |
+
"license": "MIT",
|
| 1595 |
+
"dependencies": {
|
| 1596 |
+
"eastasianwidth": "^0.2.0",
|
| 1597 |
+
"emoji-regex": "^9.2.2",
|
| 1598 |
+
"strip-ansi": "^7.0.1"
|
| 1599 |
+
},
|
| 1600 |
+
"engines": {
|
| 1601 |
+
"node": ">=12"
|
| 1602 |
+
},
|
| 1603 |
+
"funding": {
|
| 1604 |
+
"url": "https://github.com/sponsors/sindresorhus"
|
| 1605 |
+
}
|
| 1606 |
+
},
|
| 1607 |
+
"node_modules/@isaacs/cliui/node_modules/strip-ansi": {
|
| 1608 |
+
"version": "7.1.2",
|
| 1609 |
+
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
|
| 1610 |
+
"integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
|
| 1611 |
+
"license": "MIT",
|
| 1612 |
+
"dependencies": {
|
| 1613 |
+
"ansi-regex": "^6.0.1"
|
| 1614 |
+
},
|
| 1615 |
+
"engines": {
|
| 1616 |
+
"node": ">=12"
|
| 1617 |
+
},
|
| 1618 |
+
"funding": {
|
| 1619 |
+
"url": "https://github.com/chalk/strip-ansi?sponsor=1"
|
| 1620 |
+
}
|
| 1621 |
+
},
|
| 1622 |
+
"node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
|
| 1623 |
+
"version": "8.1.0",
|
| 1624 |
+
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
|
| 1625 |
+
"integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
|
| 1626 |
+
"license": "MIT",
|
| 1627 |
+
"dependencies": {
|
| 1628 |
+
"ansi-styles": "^6.1.0",
|
| 1629 |
+
"string-width": "^5.0.1",
|
| 1630 |
+
"strip-ansi": "^7.0.1"
|
| 1631 |
+
},
|
| 1632 |
+
"engines": {
|
| 1633 |
+
"node": ">=12"
|
| 1634 |
+
},
|
| 1635 |
+
"funding": {
|
| 1636 |
+
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
|
| 1637 |
+
}
|
| 1638 |
+
},
|
| 1639 |
"node_modules/@jonkemp/package-utils": {
|
| 1640 |
"version": "1.0.8",
|
| 1641 |
"resolved": "https://registry.npmjs.org/@jonkemp/package-utils/-/package-utils-1.0.8.tgz",
|
|
|
|
| 2513 |
"react-dom": ">= 16.8"
|
| 2514 |
}
|
| 2515 |
},
|
| 2516 |
+
"node_modules/@pkgjs/parseargs": {
|
| 2517 |
+
"version": "0.11.0",
|
| 2518 |
+
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
|
| 2519 |
+
"integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
|
| 2520 |
+
"license": "MIT",
|
| 2521 |
+
"optional": true,
|
| 2522 |
+
"engines": {
|
| 2523 |
+
"node": ">=14"
|
| 2524 |
+
}
|
| 2525 |
+
},
|
| 2526 |
"node_modules/@puppeteer/browsers": {
|
| 2527 |
"version": "2.10.13",
|
| 2528 |
"resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.13.tgz",
|
|
|
|
| 4516 |
"node": ">=0.6"
|
| 4517 |
}
|
| 4518 |
},
|
| 4519 |
+
"node_modules/bignumber.js": {
|
| 4520 |
+
"version": "9.3.1",
|
| 4521 |
+
"resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz",
|
| 4522 |
+
"integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==",
|
| 4523 |
+
"license": "MIT",
|
| 4524 |
+
"engines": {
|
| 4525 |
+
"node": "*"
|
| 4526 |
+
}
|
| 4527 |
+
},
|
| 4528 |
"node_modules/binary": {
|
| 4529 |
"version": "0.3.0",
|
| 4530 |
"resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz",
|
|
|
|
| 4700 |
"node": "*"
|
| 4701 |
}
|
| 4702 |
},
|
| 4703 |
+
"node_modules/buffer-equal-constant-time": {
|
| 4704 |
+
"version": "1.0.1",
|
| 4705 |
+
"resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
|
| 4706 |
+
"integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==",
|
| 4707 |
+
"license": "BSD-3-Clause"
|
| 4708 |
+
},
|
| 4709 |
"node_modules/buffer-indexof-polyfill": {
|
| 4710 |
"version": "1.0.2",
|
| 4711 |
"resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz",
|
|
|
|
| 5545 |
"readable-stream": "^2.0.2"
|
| 5546 |
}
|
| 5547 |
},
|
| 5548 |
+
"node_modules/eastasianwidth": {
|
| 5549 |
+
"version": "0.2.0",
|
| 5550 |
+
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
|
| 5551 |
+
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
|
| 5552 |
+
"license": "MIT"
|
| 5553 |
+
},
|
| 5554 |
+
"node_modules/ecdsa-sig-formatter": {
|
| 5555 |
+
"version": "1.0.11",
|
| 5556 |
+
"resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
|
| 5557 |
+
"integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
|
| 5558 |
+
"license": "Apache-2.0",
|
| 5559 |
+
"dependencies": {
|
| 5560 |
+
"safe-buffer": "^5.0.1"
|
| 5561 |
+
}
|
| 5562 |
+
},
|
| 5563 |
"node_modules/ee-first": {
|
| 5564 |
"version": "1.1.1",
|
| 5565 |
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
|
|
|
| 5577 |
"version": "9.2.2",
|
| 5578 |
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
|
| 5579 |
"integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
|
|
|
|
| 5580 |
"license": "MIT"
|
| 5581 |
},
|
| 5582 |
"node_modules/encodeurl": {
|
|
|
|
| 6467 |
"node": ">= 0.6"
|
| 6468 |
}
|
| 6469 |
},
|
| 6470 |
+
"node_modules/extend": {
|
| 6471 |
+
"version": "3.0.2",
|
| 6472 |
+
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
|
| 6473 |
+
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
|
| 6474 |
+
"license": "MIT"
|
| 6475 |
+
},
|
| 6476 |
"node_modules/extract-css": {
|
| 6477 |
"version": "2.0.1",
|
| 6478 |
"resolved": "https://registry.npmjs.org/extract-css/-/extract-css-2.0.1.tgz",
|
|
|
|
| 6794 |
"url": "https://github.com/sponsors/ljharb"
|
| 6795 |
}
|
| 6796 |
},
|
| 6797 |
+
"node_modules/foreground-child": {
|
| 6798 |
+
"version": "3.3.1",
|
| 6799 |
+
"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
|
| 6800 |
+
"integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
|
| 6801 |
+
"license": "ISC",
|
| 6802 |
+
"dependencies": {
|
| 6803 |
+
"cross-spawn": "^7.0.6",
|
| 6804 |
+
"signal-exit": "^4.0.1"
|
| 6805 |
+
},
|
| 6806 |
+
"engines": {
|
| 6807 |
+
"node": ">=14"
|
| 6808 |
+
},
|
| 6809 |
+
"funding": {
|
| 6810 |
+
"url": "https://github.com/sponsors/isaacs"
|
| 6811 |
+
}
|
| 6812 |
+
},
|
| 6813 |
"node_modules/form-data": {
|
| 6814 |
"version": "4.0.4",
|
| 6815 |
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
|
|
|
|
| 6998 |
"url": "https://github.com/sponsors/ljharb"
|
| 6999 |
}
|
| 7000 |
},
|
| 7001 |
+
"node_modules/gaxios": {
|
| 7002 |
+
"version": "7.1.3",
|
| 7003 |
+
"resolved": "https://registry.npmjs.org/gaxios/-/gaxios-7.1.3.tgz",
|
| 7004 |
+
"integrity": "sha512-YGGyuEdVIjqxkxVH1pUTMY/XtmmsApXrCVv5EU25iX6inEPbV+VakJfLealkBtJN69AQmh1eGOdCl9Sm1UP6XQ==",
|
| 7005 |
+
"license": "Apache-2.0",
|
| 7006 |
+
"dependencies": {
|
| 7007 |
+
"extend": "^3.0.2",
|
| 7008 |
+
"https-proxy-agent": "^7.0.1",
|
| 7009 |
+
"node-fetch": "^3.3.2",
|
| 7010 |
+
"rimraf": "^5.0.1"
|
| 7011 |
+
},
|
| 7012 |
+
"engines": {
|
| 7013 |
+
"node": ">=18"
|
| 7014 |
+
}
|
| 7015 |
+
},
|
| 7016 |
+
"node_modules/gaxios/node_modules/agent-base": {
|
| 7017 |
+
"version": "7.1.4",
|
| 7018 |
+
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
|
| 7019 |
+
"integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
|
| 7020 |
+
"license": "MIT",
|
| 7021 |
+
"engines": {
|
| 7022 |
+
"node": ">= 14"
|
| 7023 |
+
}
|
| 7024 |
+
},
|
| 7025 |
+
"node_modules/gaxios/node_modules/brace-expansion": {
|
| 7026 |
+
"version": "2.0.2",
|
| 7027 |
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
|
| 7028 |
+
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
|
| 7029 |
+
"license": "MIT",
|
| 7030 |
+
"dependencies": {
|
| 7031 |
+
"balanced-match": "^1.0.0"
|
| 7032 |
+
}
|
| 7033 |
+
},
|
| 7034 |
+
"node_modules/gaxios/node_modules/glob": {
|
| 7035 |
+
"version": "10.5.0",
|
| 7036 |
+
"resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
|
| 7037 |
+
"integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
|
| 7038 |
+
"license": "ISC",
|
| 7039 |
+
"dependencies": {
|
| 7040 |
+
"foreground-child": "^3.1.0",
|
| 7041 |
+
"jackspeak": "^3.1.2",
|
| 7042 |
+
"minimatch": "^9.0.4",
|
| 7043 |
+
"minipass": "^7.1.2",
|
| 7044 |
+
"package-json-from-dist": "^1.0.0",
|
| 7045 |
+
"path-scurry": "^1.11.1"
|
| 7046 |
+
},
|
| 7047 |
+
"bin": {
|
| 7048 |
+
"glob": "dist/esm/bin.mjs"
|
| 7049 |
+
},
|
| 7050 |
+
"funding": {
|
| 7051 |
+
"url": "https://github.com/sponsors/isaacs"
|
| 7052 |
+
}
|
| 7053 |
+
},
|
| 7054 |
+
"node_modules/gaxios/node_modules/https-proxy-agent": {
|
| 7055 |
+
"version": "7.0.6",
|
| 7056 |
+
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
|
| 7057 |
+
"integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
|
| 7058 |
+
"license": "MIT",
|
| 7059 |
+
"dependencies": {
|
| 7060 |
+
"agent-base": "^7.1.2",
|
| 7061 |
+
"debug": "4"
|
| 7062 |
+
},
|
| 7063 |
+
"engines": {
|
| 7064 |
+
"node": ">= 14"
|
| 7065 |
+
}
|
| 7066 |
+
},
|
| 7067 |
+
"node_modules/gaxios/node_modules/minimatch": {
|
| 7068 |
+
"version": "9.0.5",
|
| 7069 |
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
|
| 7070 |
+
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
|
| 7071 |
+
"license": "ISC",
|
| 7072 |
+
"dependencies": {
|
| 7073 |
+
"brace-expansion": "^2.0.1"
|
| 7074 |
+
},
|
| 7075 |
+
"engines": {
|
| 7076 |
+
"node": ">=16 || 14 >=14.17"
|
| 7077 |
+
},
|
| 7078 |
+
"funding": {
|
| 7079 |
+
"url": "https://github.com/sponsors/isaacs"
|
| 7080 |
+
}
|
| 7081 |
+
},
|
| 7082 |
+
"node_modules/gaxios/node_modules/rimraf": {
|
| 7083 |
+
"version": "5.0.10",
|
| 7084 |
+
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz",
|
| 7085 |
+
"integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==",
|
| 7086 |
+
"license": "ISC",
|
| 7087 |
+
"dependencies": {
|
| 7088 |
+
"glob": "^10.3.7"
|
| 7089 |
+
},
|
| 7090 |
+
"bin": {
|
| 7091 |
+
"rimraf": "dist/esm/bin.mjs"
|
| 7092 |
+
},
|
| 7093 |
+
"funding": {
|
| 7094 |
+
"url": "https://github.com/sponsors/isaacs"
|
| 7095 |
+
}
|
| 7096 |
+
},
|
| 7097 |
+
"node_modules/gcp-metadata": {
|
| 7098 |
+
"version": "8.1.2",
|
| 7099 |
+
"resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-8.1.2.tgz",
|
| 7100 |
+
"integrity": "sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==",
|
| 7101 |
+
"license": "Apache-2.0",
|
| 7102 |
+
"dependencies": {
|
| 7103 |
+
"gaxios": "^7.0.0",
|
| 7104 |
+
"google-logging-utils": "^1.0.0",
|
| 7105 |
+
"json-bigint": "^1.0.0"
|
| 7106 |
+
},
|
| 7107 |
+
"engines": {
|
| 7108 |
+
"node": ">=18"
|
| 7109 |
+
}
|
| 7110 |
+
},
|
| 7111 |
"node_modules/generator-function": {
|
| 7112 |
"version": "2.0.1",
|
| 7113 |
"resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz",
|
|
|
|
| 7298 |
"url": "https://github.com/sponsors/ljharb"
|
| 7299 |
}
|
| 7300 |
},
|
| 7301 |
+
"node_modules/google-auth-library": {
|
| 7302 |
+
"version": "10.5.0",
|
| 7303 |
+
"resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-10.5.0.tgz",
|
| 7304 |
+
"integrity": "sha512-7ABviyMOlX5hIVD60YOfHw4/CxOfBhyduaYB+wbFWCWoni4N7SLcV46hrVRktuBbZjFC9ONyqamZITN7q3n32w==",
|
| 7305 |
+
"license": "Apache-2.0",
|
| 7306 |
+
"dependencies": {
|
| 7307 |
+
"base64-js": "^1.3.0",
|
| 7308 |
+
"ecdsa-sig-formatter": "^1.0.11",
|
| 7309 |
+
"gaxios": "^7.0.0",
|
| 7310 |
+
"gcp-metadata": "^8.0.0",
|
| 7311 |
+
"google-logging-utils": "^1.0.0",
|
| 7312 |
+
"gtoken": "^8.0.0",
|
| 7313 |
+
"jws": "^4.0.0"
|
| 7314 |
+
},
|
| 7315 |
+
"engines": {
|
| 7316 |
+
"node": ">=18"
|
| 7317 |
+
}
|
| 7318 |
+
},
|
| 7319 |
+
"node_modules/google-logging-utils": {
|
| 7320 |
+
"version": "1.1.3",
|
| 7321 |
+
"resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-1.1.3.tgz",
|
| 7322 |
+
"integrity": "sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==",
|
| 7323 |
+
"license": "Apache-2.0",
|
| 7324 |
+
"engines": {
|
| 7325 |
+
"node": ">=14"
|
| 7326 |
+
}
|
| 7327 |
+
},
|
| 7328 |
"node_modules/gopd": {
|
| 7329 |
"version": "1.2.0",
|
| 7330 |
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
|
|
|
|
| 7350 |
"dev": true,
|
| 7351 |
"license": "MIT"
|
| 7352 |
},
|
| 7353 |
+
"node_modules/gtoken": {
|
| 7354 |
+
"version": "8.0.0",
|
| 7355 |
+
"resolved": "https://registry.npmjs.org/gtoken/-/gtoken-8.0.0.tgz",
|
| 7356 |
+
"integrity": "sha512-+CqsMbHPiSTdtSO14O51eMNlrp9N79gmeqmXeouJOhfucAedHw9noVe/n5uJk3tbKE6a+6ZCQg3RPhVhHByAIw==",
|
| 7357 |
+
"license": "MIT",
|
| 7358 |
+
"dependencies": {
|
| 7359 |
+
"gaxios": "^7.0.0",
|
| 7360 |
+
"jws": "^4.0.0"
|
| 7361 |
+
},
|
| 7362 |
+
"engines": {
|
| 7363 |
+
"node": ">=18"
|
| 7364 |
+
}
|
| 7365 |
+
},
|
| 7366 |
"node_modules/handlebars": {
|
| 7367 |
"version": "4.7.8",
|
| 7368 |
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
|
|
|
|
| 8221 |
"node": ">= 0.4"
|
| 8222 |
}
|
| 8223 |
},
|
| 8224 |
+
"node_modules/jackspeak": {
|
| 8225 |
+
"version": "3.4.3",
|
| 8226 |
+
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
|
| 8227 |
+
"integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
|
| 8228 |
+
"license": "BlueOak-1.0.0",
|
| 8229 |
+
"dependencies": {
|
| 8230 |
+
"@isaacs/cliui": "^8.0.2"
|
| 8231 |
+
},
|
| 8232 |
+
"funding": {
|
| 8233 |
+
"url": "https://github.com/sponsors/isaacs"
|
| 8234 |
+
},
|
| 8235 |
+
"optionalDependencies": {
|
| 8236 |
+
"@pkgjs/parseargs": "^0.11.0"
|
| 8237 |
+
}
|
| 8238 |
+
},
|
| 8239 |
"node_modules/jiti": {
|
| 8240 |
"version": "2.6.1",
|
| 8241 |
"resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz",
|
|
|
|
| 8284 |
"node": ">=6"
|
| 8285 |
}
|
| 8286 |
},
|
| 8287 |
+
"node_modules/json-bigint": {
|
| 8288 |
+
"version": "1.0.0",
|
| 8289 |
+
"resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz",
|
| 8290 |
+
"integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==",
|
| 8291 |
+
"license": "MIT",
|
| 8292 |
+
"dependencies": {
|
| 8293 |
+
"bignumber.js": "^9.0.0"
|
| 8294 |
+
}
|
| 8295 |
+
},
|
| 8296 |
"node_modules/json-buffer": {
|
| 8297 |
"version": "3.0.1",
|
| 8298 |
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
|
|
|
|
| 8360 |
"setimmediate": "^1.0.5"
|
| 8361 |
}
|
| 8362 |
},
|
| 8363 |
+
"node_modules/jwa": {
|
| 8364 |
+
"version": "2.0.1",
|
| 8365 |
+
"resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz",
|
| 8366 |
+
"integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==",
|
| 8367 |
+
"license": "MIT",
|
| 8368 |
+
"dependencies": {
|
| 8369 |
+
"buffer-equal-constant-time": "^1.0.1",
|
| 8370 |
+
"ecdsa-sig-formatter": "1.0.11",
|
| 8371 |
+
"safe-buffer": "^5.0.1"
|
| 8372 |
+
}
|
| 8373 |
+
},
|
| 8374 |
+
"node_modules/jws": {
|
| 8375 |
+
"version": "4.0.0",
|
| 8376 |
+
"resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz",
|
| 8377 |
+
"integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==",
|
| 8378 |
+
"license": "MIT",
|
| 8379 |
+
"dependencies": {
|
| 8380 |
+
"jwa": "^2.0.0",
|
| 8381 |
+
"safe-buffer": "^5.0.1"
|
| 8382 |
+
}
|
| 8383 |
+
},
|
| 8384 |
"node_modules/katex": {
|
| 8385 |
"version": "0.16.25",
|
| 8386 |
"resolved": "https://registry.npmjs.org/katex/-/katex-0.16.25.tgz",
|
|
|
|
| 9174 |
"url": "https://github.com/sponsors/ljharb"
|
| 9175 |
}
|
| 9176 |
},
|
| 9177 |
+
"node_modules/minipass": {
|
| 9178 |
+
"version": "7.1.2",
|
| 9179 |
+
"resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
|
| 9180 |
+
"integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
|
| 9181 |
+
"license": "ISC",
|
| 9182 |
+
"engines": {
|
| 9183 |
+
"node": ">=16 || 14 >=14.17"
|
| 9184 |
+
}
|
| 9185 |
+
},
|
| 9186 |
"node_modules/mitt": {
|
| 9187 |
"version": "3.0.1",
|
| 9188 |
"resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz",
|
|
|
|
| 9814 |
"node": ">= 14"
|
| 9815 |
}
|
| 9816 |
},
|
| 9817 |
+
"node_modules/package-json-from-dist": {
|
| 9818 |
+
"version": "1.0.1",
|
| 9819 |
+
"resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
|
| 9820 |
+
"integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
|
| 9821 |
+
"license": "BlueOak-1.0.0"
|
| 9822 |
+
},
|
| 9823 |
"node_modules/pako": {
|
| 9824 |
"version": "1.0.11",
|
| 9825 |
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
|
|
|
|
| 9882 |
"dev": true,
|
| 9883 |
"license": "MIT"
|
| 9884 |
},
|
| 9885 |
+
"node_modules/path-scurry": {
|
| 9886 |
+
"version": "1.11.1",
|
| 9887 |
+
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
|
| 9888 |
+
"integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
|
| 9889 |
+
"license": "BlueOak-1.0.0",
|
| 9890 |
+
"dependencies": {
|
| 9891 |
+
"lru-cache": "^10.2.0",
|
| 9892 |
+
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
|
| 9893 |
+
},
|
| 9894 |
+
"engines": {
|
| 9895 |
+
"node": ">=16 || 14 >=14.18"
|
| 9896 |
+
},
|
| 9897 |
+
"funding": {
|
| 9898 |
+
"url": "https://github.com/sponsors/isaacs"
|
| 9899 |
+
}
|
| 9900 |
+
},
|
| 9901 |
+
"node_modules/path-scurry/node_modules/lru-cache": {
|
| 9902 |
+
"version": "10.4.3",
|
| 9903 |
+
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
|
| 9904 |
+
"integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
|
| 9905 |
+
"license": "ISC"
|
| 9906 |
+
},
|
| 9907 |
"node_modules/path-to-regexp": {
|
| 9908 |
"version": "8.3.0",
|
| 9909 |
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz",
|
|
|
|
| 11401 |
"url": "https://github.com/sponsors/ljharb"
|
| 11402 |
}
|
| 11403 |
},
|
| 11404 |
+
"node_modules/signal-exit": {
|
| 11405 |
+
"version": "4.1.0",
|
| 11406 |
+
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
|
| 11407 |
+
"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
|
| 11408 |
+
"license": "ISC",
|
| 11409 |
+
"engines": {
|
| 11410 |
+
"node": ">=14"
|
| 11411 |
+
},
|
| 11412 |
+
"funding": {
|
| 11413 |
+
"url": "https://github.com/sponsors/isaacs"
|
| 11414 |
+
}
|
| 11415 |
+
},
|
| 11416 |
"node_modules/slick": {
|
| 11417 |
"version": "1.12.2",
|
| 11418 |
"resolved": "https://registry.npmjs.org/slick/-/slick-1.12.2.tgz",
|
|
|
|
| 11584 |
"node": ">=8"
|
| 11585 |
}
|
| 11586 |
},
|
| 11587 |
+
"node_modules/string-width-cjs": {
|
| 11588 |
+
"name": "string-width",
|
| 11589 |
+
"version": "4.2.3",
|
| 11590 |
+
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
| 11591 |
+
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
|
| 11592 |
+
"license": "MIT",
|
| 11593 |
+
"dependencies": {
|
| 11594 |
+
"emoji-regex": "^8.0.0",
|
| 11595 |
+
"is-fullwidth-code-point": "^3.0.0",
|
| 11596 |
+
"strip-ansi": "^6.0.1"
|
| 11597 |
+
},
|
| 11598 |
+
"engines": {
|
| 11599 |
+
"node": ">=8"
|
| 11600 |
+
}
|
| 11601 |
+
},
|
| 11602 |
+
"node_modules/string-width-cjs/node_modules/emoji-regex": {
|
| 11603 |
+
"version": "8.0.0",
|
| 11604 |
+
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
| 11605 |
+
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
|
| 11606 |
+
"license": "MIT"
|
| 11607 |
+
},
|
| 11608 |
"node_modules/string-width/node_modules/emoji-regex": {
|
| 11609 |
"version": "8.0.0",
|
| 11610 |
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
|
|
|
| 11736 |
"node": ">=8"
|
| 11737 |
}
|
| 11738 |
},
|
| 11739 |
+
"node_modules/strip-ansi-cjs": {
|
| 11740 |
+
"name": "strip-ansi",
|
| 11741 |
+
"version": "6.0.1",
|
| 11742 |
+
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
| 11743 |
+
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
| 11744 |
+
"license": "MIT",
|
| 11745 |
+
"dependencies": {
|
| 11746 |
+
"ansi-regex": "^5.0.1"
|
| 11747 |
+
},
|
| 11748 |
+
"engines": {
|
| 11749 |
+
"node": ">=8"
|
| 11750 |
+
}
|
| 11751 |
+
},
|
| 11752 |
"node_modules/strip-bom": {
|
| 11753 |
"version": "3.0.0",
|
| 11754 |
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
|
|
|
|
| 12795 |
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
|
| 12796 |
}
|
| 12797 |
},
|
| 12798 |
+
"node_modules/wrap-ansi-cjs": {
|
| 12799 |
+
"name": "wrap-ansi",
|
| 12800 |
+
"version": "7.0.0",
|
| 12801 |
+
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
|
| 12802 |
+
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
|
| 12803 |
+
"license": "MIT",
|
| 12804 |
+
"dependencies": {
|
| 12805 |
+
"ansi-styles": "^4.0.0",
|
| 12806 |
+
"string-width": "^4.1.0",
|
| 12807 |
+
"strip-ansi": "^6.0.0"
|
| 12808 |
+
},
|
| 12809 |
+
"engines": {
|
| 12810 |
+
"node": ">=10"
|
| 12811 |
+
},
|
| 12812 |
+
"funding": {
|
| 12813 |
+
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
|
| 12814 |
+
}
|
| 12815 |
+
},
|
| 12816 |
"node_modules/wrappy": {
|
| 12817 |
"version": "1.0.2",
|
| 12818 |
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
package.json
CHANGED
|
@@ -13,6 +13,7 @@
|
|
| 13 |
},
|
| 14 |
"dependencies": {
|
| 15 |
"@github/spark": "^0.41.23",
|
|
|
|
| 16 |
"@modelcontextprotocol/sdk": "^1.22.0",
|
| 17 |
"@monaco-editor/react": "^4.7.0",
|
| 18 |
"@phosphor-icons/react": "^2.1.10",
|
|
|
|
| 13 |
},
|
| 14 |
"dependencies": {
|
| 15 |
"@github/spark": "^0.41.23",
|
| 16 |
+
"@google/genai": "^1.30.0",
|
| 17 |
"@modelcontextprotocol/sdk": "^1.22.0",
|
| 18 |
"@monaco-editor/react": "^4.7.0",
|
| 19 |
"@phosphor-icons/react": "^2.1.10",
|