largo commited on
Commit
99b2259
·
1 Parent(s): 42763eb

Working the deploy

Browse files
Files changed (8) hide show
  1. agent.json +15 -0
  2. agent.py +17 -0
  3. agent.ts +15 -0
  4. app.py +23 -29
  5. app.py.orig +37 -0
  6. gradio-client.py +0 -26
  7. package.json +6 -0
  8. pnpm-lock.yaml +666 -0
agent.json ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "Qwen/Qwen2.5-72B-Instruct",
3
+ "provider": "nebius",
4
+ "servers": [
5
+ {
6
+ "type": "stdio",
7
+ "config": {
8
+ "command": "npx",
9
+ "args": [
10
+ "@playwright/mcp@latest"
11
+ ]
12
+ }
13
+ }
14
+ ]
15
+ }
agent.py ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+
3
+ from huggingface_hub import Agent
4
+
5
+ agent = Agent(
6
+ model="Qwen/Qwen2.5-72B-Instruct",
7
+ provider="nebius",
8
+ servers=[
9
+ {
10
+ "command": "npx",
11
+ "args": [
12
+ "mcp-remote",
13
+ "http://localhost:7860/gradio_api/mcp/sse" # Your Gradio MCP server
14
+ ]
15
+ }
16
+ ],
17
+ )
agent.ts ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const agent = new Agent({
2
+ provider: process.env.PROVIDER ?? "nebius",
3
+ model: process.env.MODEL_ID ?? "Qwen/Qwen2.5-72B-Instruct",
4
+ apiKey: process.env.HF_TOKEN,
5
+ servers: [
6
+ // ... existing servers ...
7
+ {
8
+ command: "npx",
9
+ args: [
10
+ "mcp-remote",
11
+ "http://localhost:7860/gradio_api/mcp/sse" // Your Gradio MCP server
12
+ ]
13
+ }
14
+ ],
15
+ });
app.py CHANGED
@@ -1,37 +1,31 @@
1
- import json
2
  import gradio as gr
3
- from textblob import TextBlob
4
 
5
- def sentiment_analysis(text: str) -> str:
6
- """
7
- Analyze the sentiment of the given text.
8
 
9
- Args:
10
- text (str): The text to analyze
 
 
 
 
 
 
11
 
12
- Returns:
13
- str: A JSON string containing polarity, subjectivity, and assessment
14
- """
15
- blob = TextBlob(text)
16
- sentiment = blob.sentiment
17
 
18
- result = {
19
- "polarity": round(sentiment.polarity, 2), # -1 (negative) to 1 (positive)
20
- "subjectivity": round(sentiment.subjectivity, 2), # 0 (objective) to 1 (subjective)
21
- "assessment": "positive" if sentiment.polarity > 0 else "negative" if sentiment.polarity < 0 else "neutral"
22
- }
23
 
24
- return json.dumps(result)
25
 
26
- # Create the Gradio interface
27
- demo = gr.Interface(
28
- fn=sentiment_analysis,
29
- inputs=gr.Textbox(placeholder="Enter text to analyze..."),
30
- outputs=gr.Textbox(), # Changed from gr.JSON() to gr.Textbox()
31
- title="Text Sentiment Analysis",
32
- description="Analyze the sentiment of text using TextBlob"
33
- )
34
 
35
- # Launch the interface and MCP server
36
- if __name__ == "__main__":
37
- demo.launch(mcp_server=True)
 
 
1
  import gradio as gr
2
+ import os
3
 
4
+ from smolagents import InferenceClientModel, CodeAgent, MCPClient
 
 
5
 
6
+ print(f"TOKEN: {os.getenv('HF_HUB_TOKEN')}")
7
+ try:
8
+ mcp_client = MCPClient(
9
+ {"url": "https://abidlabs-mcp-tool-http.hf.space/gradio_api/mcp/sse"}
10
+ )
11
+ # mcp_client = MCPClient(
12
+ # {"url": " http://127.0.0.1:7860/gradio_api/mcp/sse"}
13
+ #)
14
 
15
+ tools = mcp_client.get_tools()
 
 
 
 
16
 
17
+ model = InferenceClientModel(token=os.getenv("HF_HUB_TOKEN"))
 
 
 
 
18
 
19
+ agent = CodeAgent(tools=[*tools], model=model, additional_authorized_imports=["json", "ast", "urllib", "base64"])
20
 
21
+ demo = gr.ChatInterface(
22
+ fn=lambda message, history: str(agent.run(message)),
23
+ type="messages",
24
+ examples=["Analyze the sentiment of the following text 'This is awesome'"],
25
+ title="Agent with MCP Tools",
26
+ description="This is a simple agent that uses MCP tools to answer questions.",
27
+ )
 
28
 
29
+ demo.launch(share=True)
30
+ finally:
31
+ mcp_client.disconnect()
app.py.orig ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ import gradio as gr
3
+ from textblob import TextBlob
4
+
5
+ def sentiment_analysis(text: str) -> str:
6
+ """
7
+ Analyze the sentiment of the given text.
8
+
9
+ Args:
10
+ text (str): The text to analyze
11
+
12
+ Returns:
13
+ str: A JSON string containing polarity, subjectivity, and assessment
14
+ """
15
+ blob = TextBlob(text)
16
+ sentiment = blob.sentiment
17
+
18
+ result = {
19
+ "polarity": round(sentiment.polarity, 2), # -1 (negative) to 1 (positive)
20
+ "subjectivity": round(sentiment.subjectivity, 2), # 0 (objective) to 1 (subjective)
21
+ "assessment": "positive" if sentiment.polarity > 0 else "negative" if sentiment.polarity < 0 else "neutral"
22
+ }
23
+
24
+ return json.dumps(result)
25
+
26
+ # Create the Gradio interface
27
+ demo = gr.Interface(
28
+ fn=sentiment_analysis,
29
+ inputs=gr.Textbox(placeholder="Enter text to analyze..."),
30
+ outputs=gr.Textbox(), # Changed from gr.JSON() to gr.Textbox()
31
+ title="Text Sentiment Analysis",
32
+ description="Analyze the sentiment of text using TextBlob"
33
+ )
34
+
35
+ # Launch the interface and MCP server
36
+ if __name__ == "__main__":
37
+ demo.launch(mcp_server=True)
gradio-client.py DELETED
@@ -1,26 +0,0 @@
1
- import gradio as gr
2
- import os
3
-
4
- from smolagents import InferenceClientModel, CodeAgent, MCPClient
5
-
6
-
7
- try:
8
- mcp_client = MCPClient(
9
- {"url": "https://abidlabs-mcp-tool-http.hf.space/gradio_api/mcp/sse"}
10
- )
11
- tools = mcp_client.get_tools()
12
-
13
- model = InferenceClientModel(token=os.getenv("HF_HUB_TOKEN"))
14
- agent = CodeAgent(tools=[*tools], model=model, additional_authorized_imports=["json", "ast", "urllib", "base64"])
15
-
16
- demo = gr.ChatInterface(
17
- fn=lambda message, history: str(agent.run(message)),
18
- type="messages",
19
- examples=["Analyze the sentiment of the following text 'This is awesome'"],
20
- title="Agent with MCP Tools",
21
- description="This is a simple agent that uses MCP tools to answer questions.",
22
- )
23
-
24
- demo.launch()
25
- finally:
26
- mcp_client.disconnect()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
package.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "dependencies": {
3
+ "mcp-remote": "^0.1.15"
4
+ },
5
+ "packageManager": "[email protected]+sha512.6540583f41cc5f628eb3d9773ecee802f4f9ef9923cc45b69890fb47991d4b092964694ec3a4f738a420c918a333062c8b925d312f42e4f0c263eb603551f977"
6
+ }
pnpm-lock.yaml ADDED
@@ -0,0 +1,666 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ lockfileVersion: '9.0'
2
+
3
+ settings:
4
+ autoInstallPeers: true
5
+ excludeLinksFromLockfile: false
6
+
7
+ importers:
8
+
9
+ .:
10
+ dependencies:
11
+ mcp-remote:
12
+ specifier: ^0.1.15
13
+ version: 0.1.15
14
+
15
+ packages:
16
+
17
18
+ resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
19
+ engines: {node: '>= 0.6'}
20
+
21
22
+ resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
23
+
24
25
+ resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==}
26
+ engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
27
+
28
29
+ resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
30
+ engines: {node: '>=18'}
31
+
32
33
+ resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
34
+ engines: {node: '>= 0.8'}
35
+
36
37
+ resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
38
+ engines: {node: '>= 0.4'}
39
+
40
41
+ resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
42
+ engines: {node: '>= 0.4'}
43
+
44
45
+ resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
46
+ engines: {node: '>= 0.6'}
47
+
48
49
+ resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
50
+ engines: {node: '>= 0.6'}
51
+
52
53
+ resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
54
+
55
56
+ resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==}
57
+ engines: {node: '>= 0.6'}
58
+
59
60
+ resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
61
+ peerDependencies:
62
+ supports-color: '*'
63
+ peerDependenciesMeta:
64
+ supports-color:
65
+ optional: true
66
+
67
68
+ resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==}
69
+ engines: {node: '>=18'}
70
+
71
72
+ resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==}
73
+ engines: {node: '>=18'}
74
+
75
76
+ resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
77
+ engines: {node: '>=12'}
78
+
79
80
+ resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
81
+ engines: {node: '>= 0.8'}
82
+
83
84
+ resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
85
+ engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
86
+
87
88
+ resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
89
+ engines: {node: '>= 0.4'}
90
+
91
92
+ resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
93
+
94
95
+ resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
96
+ engines: {node: '>= 0.8'}
97
+
98
99
+ resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
100
+ engines: {node: '>= 0.8'}
101
+
102
103
+ resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
104
+ engines: {node: '>= 0.4'}
105
+
106
107
+ resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
108
+ engines: {node: '>= 0.4'}
109
+
110
111
+ resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
112
+ engines: {node: '>= 0.4'}
113
+
114
115
+ resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
116
+
117
118
+ resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
119
+ engines: {node: '>= 0.6'}
120
+
121
122
+ resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==}
123
+ engines: {node: '>= 0.10.0'}
124
+
125
126
+ resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==}
127
+ engines: {node: '>= 0.8'}
128
+
129
130
+ resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
131
+ engines: {node: '>= 0.6'}
132
+
133
134
+ resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
135
+ engines: {node: '>= 0.6'}
136
+
137
138
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
139
+
140
141
+ resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
142
+ engines: {node: '>= 0.4'}
143
+
144
145
+ resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
146
+ engines: {node: '>= 0.4'}
147
+
148
149
+ resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
150
+ engines: {node: '>= 0.4'}
151
+
152
153
+ resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
154
+ engines: {node: '>= 0.4'}
155
+
156
157
+ resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
158
+ engines: {node: '>= 0.4'}
159
+
160
161
+ resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
162
+ engines: {node: '>= 0.8'}
163
+
164
165
+ resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
166
+ engines: {node: '>=0.10.0'}
167
+
168
169
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
170
+
171
172
+ resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
173
+ engines: {node: '>= 0.10'}
174
+
175
176
+ resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
177
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
178
+ hasBin: true
179
+
180
181
+ resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
182
+ engines: {node: '>=14.16'}
183
+ hasBin: true
184
+
185
186
+ resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
187
+ engines: {node: '>=16'}
188
+
189
190
+ resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
191
+ engines: {node: '>= 0.4'}
192
+
193
194
+ resolution: {integrity: sha512-9apYRQ/N7txlRENl23Ux5GeZ+RYiYp4JXRuPFF6DRbOFFJbZtdjI9MsqH1dFKRpgVt+0YjQRrRXwh74a2QwphA==}
195
+ hasBin: true
196
+
197
198
+ resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
199
+ engines: {node: '>= 0.6'}
200
+
201
202
+ resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==}
203
+
204
205
+ resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
206
+ engines: {node: '>= 0.6'}
207
+
208
209
+ resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
210
+ engines: {node: '>= 0.6'}
211
+
212
213
+ resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
214
+ engines: {node: '>= 0.6'}
215
+
216
217
+ resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
218
+ engines: {node: '>=4'}
219
+ hasBin: true
220
+
221
222
+ resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
223
+
224
225
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
226
+
227
228
+ resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
229
+ engines: {node: '>= 0.6'}
230
+
231
232
+ resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
233
+ engines: {node: '>= 0.4'}
234
+
235
236
+ resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
237
+ engines: {node: '>= 0.8'}
238
+
239
240
+ resolution: {integrity: sha512-cxN6aIDPz6rm8hbebcP7vrQNhvRcveZoJU72Y7vskh4oIm+BZwBECnx5nTmrlres1Qapvx27Qo1Auukpf8PKXw==}
241
+ engines: {node: '>=18'}
242
+
243
244
+ resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
245
+ engines: {node: '>= 0.8'}
246
+
247
248
+ resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==}
249
+
250
251
+ resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
252
+ engines: {node: '>= 0.10'}
253
+
254
255
+ resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==}
256
+ engines: {node: '>=0.6'}
257
+
258
259
+ resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
260
+ engines: {node: '>= 0.6'}
261
+
262
263
+ resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
264
+ engines: {node: '>= 0.8'}
265
+
266
267
+ resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==}
268
+ engines: {node: '>=18'}
269
+
270
271
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
272
+
273
274
+ resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
275
+
276
277
+ resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==}
278
+ engines: {node: '>= 0.8.0'}
279
+
280
281
+ resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==}
282
+ engines: {node: '>= 0.8.0'}
283
+
284
285
+ resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
286
+
287
288
+ resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
289
+ engines: {node: '>= 0.4'}
290
+
291
292
+ resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
293
+ engines: {node: '>= 0.4'}
294
+
295
296
+ resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
297
+ engines: {node: '>= 0.4'}
298
+
299
300
+ resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
301
+ engines: {node: '>= 0.4'}
302
+
303
304
+ resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
305
+ engines: {node: '>= 0.8'}
306
+
307
308
+ resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
309
+ engines: {node: '>=0.6'}
310
+
311
312
+ resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
313
+ engines: {node: '>= 0.6'}
314
+
315
316
+ resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
317
+ engines: {node: '>= 0.8'}
318
+
319
320
+ resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
321
+ engines: {node: '>= 0.4.0'}
322
+
323
324
+ resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
325
+ engines: {node: '>= 0.8'}
326
+
327
+ snapshots:
328
+
329
330
+ dependencies:
331
+ mime-types: 2.1.35
332
+ negotiator: 0.6.3
333
+
334
335
+
336
337
+ dependencies:
338
+ bytes: 3.1.2
339
+ content-type: 1.0.5
340
+ debug: 2.6.9
341
+ depd: 2.0.0
342
+ destroy: 1.2.0
343
+ http-errors: 2.0.0
344
+ iconv-lite: 0.4.24
345
+ on-finished: 2.4.1
346
+ qs: 6.13.0
347
+ raw-body: 2.5.2
348
+ type-is: 1.6.18
349
+ unpipe: 1.0.0
350
+ transitivePeerDependencies:
351
+ - supports-color
352
+
353
354
+ dependencies:
355
+ run-applescript: 7.0.0
356
+
357
358
+
359
360
+ dependencies:
361
+ es-errors: 1.3.0
362
+ function-bind: 1.1.2
363
+
364
365
+ dependencies:
366
+ call-bind-apply-helpers: 1.0.2
367
+ get-intrinsic: 1.3.0
368
+
369
370
+ dependencies:
371
+ safe-buffer: 5.2.1
372
+
373
374
+
375
376
+
377
378
+
379
380
+ dependencies:
381
+ ms: 2.0.0
382
+
383
384
+
385
386
+ dependencies:
387
+ bundle-name: 4.1.0
388
+ default-browser-id: 5.0.0
389
+
390
391
+
392
393
+
394
395
+
396
397
+ dependencies:
398
+ call-bind-apply-helpers: 1.0.2
399
+ es-errors: 1.3.0
400
+ gopd: 1.2.0
401
+
402
403
+
404
405
+
406
407
+
408
409
+
410
411
+
412
413
+ dependencies:
414
+ es-errors: 1.3.0
415
+
416
417
+
418
419
+
420
421
+ dependencies:
422
+ accepts: 1.3.8
423
+ array-flatten: 1.1.1
424
+ body-parser: 1.20.3
425
+ content-disposition: 0.5.4
426
+ content-type: 1.0.5
427
+ cookie: 0.7.1
428
+ cookie-signature: 1.0.6
429
+ debug: 2.6.9
430
+ depd: 2.0.0
431
+ encodeurl: 2.0.0
432
+ escape-html: 1.0.3
433
+ etag: 1.8.1
434
+ finalhandler: 1.3.1
435
+ fresh: 0.5.2
436
+ http-errors: 2.0.0
437
+ merge-descriptors: 1.0.3
438
+ methods: 1.1.2
439
+ on-finished: 2.4.1
440
+ parseurl: 1.3.3
441
+ path-to-regexp: 0.1.12
442
+ proxy-addr: 2.0.7
443
+ qs: 6.13.0
444
+ range-parser: 1.2.1
445
+ safe-buffer: 5.2.1
446
+ send: 0.19.0
447
+ serve-static: 1.16.2
448
+ setprototypeof: 1.2.0
449
+ statuses: 2.0.1
450
+ type-is: 1.6.18
451
+ utils-merge: 1.0.1
452
+ vary: 1.1.2
453
+ transitivePeerDependencies:
454
+ - supports-color
455
+
456
457
+ dependencies:
458
+ debug: 2.6.9
459
+ encodeurl: 2.0.0
460
+ escape-html: 1.0.3
461
+ on-finished: 2.4.1
462
+ parseurl: 1.3.3
463
+ statuses: 2.0.1
464
+ unpipe: 1.0.0
465
+ transitivePeerDependencies:
466
+ - supports-color
467
+
468
469
+
470
471
+
472
473
+
474
475
+ dependencies:
476
+ call-bind-apply-helpers: 1.0.2
477
+ es-define-property: 1.0.1
478
+ es-errors: 1.3.0
479
+ es-object-atoms: 1.1.1
480
+ function-bind: 1.1.2
481
+ get-proto: 1.0.1
482
+ gopd: 1.2.0
483
+ has-symbols: 1.1.0
484
+ hasown: 2.0.2
485
+ math-intrinsics: 1.1.0
486
+
487
488
+ dependencies:
489
+ dunder-proto: 1.0.1
490
+ es-object-atoms: 1.1.1
491
+
492
493
+
494
495
+
496
497
+ dependencies:
498
+ function-bind: 1.1.2
499
+
500
501
+ dependencies:
502
+ depd: 2.0.0
503
+ inherits: 2.0.4
504
+ setprototypeof: 1.2.0
505
+ statuses: 2.0.1
506
+ toidentifier: 1.0.1
507
+
508
509
+ dependencies:
510
+ safer-buffer: 2.1.2
511
+
512
513
+
514
515
+
516
517
+
518
519
+ dependencies:
520
+ is-docker: 3.0.0
521
+
522
523
+ dependencies:
524
+ is-inside-container: 1.0.0
525
+
526
527
+
528
529
+ dependencies:
530
+ express: 4.21.2
531
+ open: 10.1.2
532
+ transitivePeerDependencies:
533
+ - supports-color
534
+
535
536
+
537
538
+
539
540
+
541
542
+
543
544
+ dependencies:
545
+ mime-db: 1.52.0
546
+
547
548
+
549
550
+
551
552
+
553
554
+
555
556
+
557
558
+ dependencies:
559
+ ee-first: 1.1.1
560
+
561
562
+ dependencies:
563
+ default-browser: 5.2.1
564
+ define-lazy-prop: 3.0.0
565
+ is-inside-container: 1.0.0
566
+ is-wsl: 3.1.0
567
+
568
569
+
570
571
+
572
573
+ dependencies:
574
+ forwarded: 0.2.0
575
+ ipaddr.js: 1.9.1
576
+
577
578
+ dependencies:
579
+ side-channel: 1.1.0
580
+
581
582
+
583
584
+ dependencies:
585
+ bytes: 3.1.2
586
+ http-errors: 2.0.0
587
+ iconv-lite: 0.4.24
588
+ unpipe: 1.0.0
589
+
590
591
+
592
593
+
594
595
+
596
597
+ dependencies:
598
+ debug: 2.6.9
599
+ depd: 2.0.0
600
+ destroy: 1.2.0
601
+ encodeurl: 1.0.2
602
+ escape-html: 1.0.3
603
+ etag: 1.8.1
604
+ fresh: 0.5.2
605
+ http-errors: 2.0.0
606
+ mime: 1.6.0
607
+ ms: 2.1.3
608
+ on-finished: 2.4.1
609
+ range-parser: 1.2.1
610
+ statuses: 2.0.1
611
+ transitivePeerDependencies:
612
+ - supports-color
613
+
614
615
+ dependencies:
616
+ encodeurl: 2.0.0
617
+ escape-html: 1.0.3
618
+ parseurl: 1.3.3
619
+ send: 0.19.0
620
+ transitivePeerDependencies:
621
+ - supports-color
622
+
623
624
+
625
626
+ dependencies:
627
+ es-errors: 1.3.0
628
+ object-inspect: 1.13.4
629
+
630
631
+ dependencies:
632
+ call-bound: 1.0.4
633
+ es-errors: 1.3.0
634
+ get-intrinsic: 1.3.0
635
+ object-inspect: 1.13.4
636
+
637
638
+ dependencies:
639
+ call-bound: 1.0.4
640
+ es-errors: 1.3.0
641
+ get-intrinsic: 1.3.0
642
+ object-inspect: 1.13.4
643
+ side-channel-map: 1.0.1
644
+
645
646
+ dependencies:
647
+ es-errors: 1.3.0
648
+ object-inspect: 1.13.4
649
+ side-channel-list: 1.0.0
650
+ side-channel-map: 1.0.1
651
+ side-channel-weakmap: 1.0.2
652
+
653
654
+
655
656
+
657
658
+ dependencies:
659
+ media-typer: 0.3.0
660
+ mime-types: 2.1.35
661
+
662
663
+
664
665
+
666