@oro.ad/nuxt-claude-devtools 1.1.0 → 1.3.0
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/README.md +133 -10
- package/dist/client/200.html +1 -1
- package/dist/client/404.html +1 -1
- package/dist/client/_nuxt/B8uzckkK.js +1 -0
- package/dist/client/_nuxt/BAb1fJOF.js +12 -0
- package/dist/client/_nuxt/BB1-kxmm.js +1 -0
- package/dist/client/_nuxt/BMZIbUUD.js +1 -0
- package/dist/client/_nuxt/BSF2Vz9o.js +1 -0
- package/dist/client/_nuxt/BSVkH7b6.js +1 -0
- package/dist/client/_nuxt/{DV075BoS.js → BYp73eMl.js} +1 -1
- package/dist/client/_nuxt/B_BoWmnX.js +1 -0
- package/dist/client/_nuxt/BcZxFXBD.js +1 -0
- package/dist/client/_nuxt/BflmC3YB.js +1 -0
- package/dist/client/_nuxt/BnXQTjo-.js +1 -0
- package/dist/client/_nuxt/C--9REmc.js +1 -0
- package/dist/client/_nuxt/CDQtmRaX.js +1 -0
- package/dist/client/_nuxt/CHeJJZL9.js +1 -0
- package/dist/client/_nuxt/{DImlDIT-.js → COus5Ssl.js} +1 -1
- package/dist/client/_nuxt/{BRCY8pHC.js → CPA0s6N9.js} +1 -1
- package/dist/client/_nuxt/CRkq21kc.js +1 -0
- package/dist/client/_nuxt/Cgba93Y9.js +1 -0
- package/dist/client/_nuxt/D2l4TRxW.js +1 -0
- package/dist/client/_nuxt/DC_XB519.js +1 -0
- package/dist/client/_nuxt/DEys9N1G.js +1 -0
- package/dist/client/_nuxt/{DYNukx3V.js → DGQ4s7ae.js} +1 -1
- package/dist/client/_nuxt/DH8Ugy8E.js +1 -0
- package/dist/client/_nuxt/DSt96JPY.js +4 -0
- package/dist/client/_nuxt/DbJLoP3G.js +1 -0
- package/dist/client/_nuxt/DeGmaFBY.js +1 -0
- package/dist/client/_nuxt/DgfRwrFR.js +1 -0
- package/dist/client/_nuxt/{BbEuL4Z6.js → DolUcBed.js} +1 -1
- package/dist/client/_nuxt/M6QPYocW.js +1 -0
- package/dist/client/_nuxt/QumocfwJ.js +1 -0
- package/dist/client/_nuxt/TQi6eIO6.js +1 -0
- package/dist/client/_nuxt/V4UvAcd3.js +1 -0
- package/dist/client/_nuxt/builds/latest.json +1 -1
- package/dist/client/_nuxt/builds/meta/2be12f06-336a-4fdd-b982-2f6c682c14a6.json +1 -0
- package/dist/client/_nuxt/d8BPa19J.js +1 -0
- package/dist/client/_nuxt/entry.BMxUr06A.css +1 -0
- package/dist/client/_nuxt/qbS8UemQ.js +1 -0
- package/dist/client/_nuxt/wDw60tEC.js +10 -0
- package/dist/client/_nuxt/xEjB6ozD.js +1 -0
- package/dist/client/agents/index.html +1 -1
- package/dist/client/commands/index.html +1 -1
- package/dist/client/docs/index.html +1 -1
- package/dist/client/index.html +1 -1
- package/dist/client/mcp/index.html +1 -1
- package/dist/client/plugins/index.html +1 -0
- package/dist/client/settings/index.html +1 -0
- package/dist/client/skills/index.html +1 -1
- package/dist/module.d.mts +13 -1
- package/dist/module.json +1 -1
- package/dist/module.mjs +35 -7
- package/dist/runtime/constants.d.ts +29 -0
- package/dist/runtime/constants.js +5 -0
- package/dist/runtime/logger.js +18 -0
- package/dist/runtime/overlay/components/ChatOverlay.d.vue.ts +7 -0
- package/dist/runtime/overlay/components/ChatOverlay.vue +893 -0
- package/dist/runtime/overlay/components/ChatOverlay.vue.d.ts +7 -0
- package/dist/runtime/overlay/components/MarkdownContent.d.vue.ts +6 -0
- package/dist/runtime/overlay/components/MarkdownContent.vue +31 -0
- package/dist/runtime/overlay/components/MarkdownContent.vue.d.ts +6 -0
- package/dist/runtime/overlay/components/ToolCallBlock.d.vue.ts +8 -0
- package/dist/runtime/overlay/components/ToolCallBlock.vue +77 -0
- package/dist/runtime/overlay/components/ToolCallBlock.vue.d.ts +8 -0
- package/dist/runtime/overlay/plugin.client.d.ts +6 -0
- package/dist/runtime/overlay/plugin.client.js +29 -0
- package/dist/runtime/server/agents-manager.d.ts +17 -4
- package/dist/runtime/server/agents-manager.js +38 -109
- package/dist/runtime/server/base-resource-manager.d.ts +90 -0
- package/dist/runtime/server/base-resource-manager.js +201 -0
- package/dist/runtime/server/claude-session.d.ts +11 -1
- package/dist/runtime/server/claude-session.js +246 -27
- package/dist/runtime/server/commands-manager.d.ts +12 -4
- package/dist/runtime/server/commands-manager.js +25 -100
- package/dist/runtime/server/constants.d.ts +94 -0
- package/dist/runtime/server/constants.js +18 -0
- package/dist/runtime/server/docs-manager.d.ts +7 -0
- package/dist/runtime/server/docs-manager.js +112 -3
- package/dist/runtime/server/history-manager.d.ts +1 -0
- package/dist/runtime/server/history-manager.js +25 -3
- package/dist/runtime/server/plugins/socket.io.js +5 -3
- package/dist/runtime/server/plugins-manager.d.ts +84 -0
- package/dist/runtime/server/plugins-manager.js +338 -0
- package/dist/runtime/server/settings-manager.d.ts +17 -0
- package/dist/runtime/server/settings-manager.js +70 -0
- package/dist/runtime/server/share-manager.d.ts +24 -0
- package/dist/runtime/server/share-manager.js +96 -0
- package/dist/runtime/server/skills-manager.d.ts +18 -4
- package/dist/runtime/server/skills-manager.js +32 -159
- package/dist/runtime/shared/composables/useClaudeChat.d.ts +35 -0
- package/dist/runtime/shared/composables/useClaudeChat.js +264 -0
- package/dist/runtime/shared/composables/useShare.d.ts +42 -0
- package/dist/runtime/shared/composables/useShare.js +192 -0
- package/dist/runtime/shared/composables/useVoiceInput.d.ts +8 -0
- package/dist/runtime/shared/composables/useVoiceInput.js +77 -0
- package/dist/runtime/shared/constants.d.ts +28 -0
- package/dist/runtime/shared/constants.js +6 -0
- package/dist/runtime/shared/index.d.ts +9 -0
- package/dist/runtime/shared/index.js +5 -0
- package/dist/runtime/shared/types.d.ts +48 -0
- package/dist/runtime/shared/types.js +0 -0
- package/dist/runtime/types.d.ts +2 -0
- package/dist/types.d.mts +1 -1
- package/package.json +5 -3
- package/dist/client/_nuxt/BVHVIm9H.js +0 -12
- package/dist/client/_nuxt/BZrcCMrf.js +0 -1
- package/dist/client/_nuxt/BmjlsnUc.js +0 -1
- package/dist/client/_nuxt/D2NL8Xro.js +0 -7
- package/dist/client/_nuxt/D9qGFoJm.js +0 -4
- package/dist/client/_nuxt/Dbw96V2H.js +0 -7
- package/dist/client/_nuxt/FllXIyfS.js +0 -8
- package/dist/client/_nuxt/TvBJGid1.js +0 -1
- package/dist/client/_nuxt/XJ4dJUK2.js +0 -1
- package/dist/client/_nuxt/builds/meta/e8ae4dbb-462d-47a2-9aa2-50bed9498ab2.json +0 -1
- package/dist/client/_nuxt/e7kgpy_n.js +0 -4
- package/dist/client/_nuxt/entry.DwDQaFYc.css +0 -1
package/README.md
CHANGED
|
@@ -9,16 +9,30 @@ Nuxt DevTools integration for [Claude Code](https://claude.ai/code) AI assistant
|
|
|
9
9
|
|
|
10
10
|
## Features
|
|
11
11
|
|
|
12
|
+
### Core
|
|
12
13
|
- **Chat Interface** — Interactive chat with Claude AI directly in DevTools
|
|
14
|
+
- **Overlay Mode** — Lightweight floating chat panel that works without DevTools (`devtools: false`)
|
|
13
15
|
- **Streaming Responses** — Real-time streaming output from Claude
|
|
16
|
+
- **Voice Input** — Speech-to-text for hands-free messaging
|
|
14
17
|
- **Session Management** — Start new conversations or continue previous ones
|
|
15
18
|
- **Chat History** — Browse and restore previous conversations
|
|
19
|
+
|
|
20
|
+
### Context & Integration
|
|
21
|
+
- **Context Chips** — Send viewport size, browser info, and routing context with messages
|
|
22
|
+
- **Component Picker** — Select Vue components from the page to add as context
|
|
23
|
+
- **LLMS Sources** — Configure external documentation URLs (llms.txt format)
|
|
24
|
+
|
|
25
|
+
### Extensibility
|
|
16
26
|
- **Skills** — Markdown-based skills to extend Claude's capabilities (`.claude/skills/<name>/SKILL.md`)
|
|
17
27
|
- **Subagents** — Specialized AI agents for delegated tasks (`.claude/agents/<name>.md`)
|
|
18
28
|
- **Slash Commands** — Custom commands with YAML frontmatter (`.claude/commands/<name>.md`)
|
|
19
29
|
- **Documentation** — Manage project docs that Claude can reference (`.claude/docs/`)
|
|
20
30
|
- **MCP Servers** — Manage Model Context Protocol servers (add, remove, list)
|
|
31
|
+
|
|
32
|
+
### Collaboration & Access
|
|
33
|
+
- **Collaborative Mode** — Share chat sessions with team members via link
|
|
21
34
|
- **Tunnel Support** — Remote access via cloudflared tunnel
|
|
35
|
+
- **Mobile Support** — Responsive bottom-sheet UI with swipe gestures
|
|
22
36
|
|
|
23
37
|
## Prerequisites
|
|
24
38
|
|
|
@@ -67,9 +81,33 @@ export default defineNuxtConfig({
|
|
|
67
81
|
| Option | Type | Default | Description |
|
|
68
82
|
|--------|------|---------|-------------|
|
|
69
83
|
| `enabled` | `boolean` | `true` | Enable/disable the module |
|
|
84
|
+
| `debug` | `boolean` | `false` | Enable debug logging in console |
|
|
70
85
|
| `claude.command` | `string` | `'claude'` | Path to Claude CLI executable |
|
|
71
86
|
| `claude.args` | `string[]` | `[]` | Additional arguments for Claude CLI |
|
|
72
87
|
|
|
88
|
+
## Overlay Mode
|
|
89
|
+
|
|
90
|
+
When you don't need full DevTools integration, use overlay mode for a lightweight chat experience:
|
|
91
|
+
|
|
92
|
+
```ts
|
|
93
|
+
export default defineNuxtConfig({
|
|
94
|
+
modules: ['@oro.ad/nuxt-claude-devtools'],
|
|
95
|
+
|
|
96
|
+
devtools: {
|
|
97
|
+
enabled: false, // Disable DevTools
|
|
98
|
+
},
|
|
99
|
+
|
|
100
|
+
claudeDevtools: {
|
|
101
|
+
enabled: true,
|
|
102
|
+
},
|
|
103
|
+
})
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
The overlay appears as a floating button (FAB) in the corner of your app:
|
|
107
|
+
- **Desktop**: Draggable floating panel, `Ctrl+Shift+K` to toggle
|
|
108
|
+
- **Mobile**: Full-width bottom sheet with swipe-to-close
|
|
109
|
+
- **Features**: Voice input, slash commands, markdown rendering, collaborative sharing
|
|
110
|
+
|
|
73
111
|
## Usage
|
|
74
112
|
|
|
75
113
|
### Chat Interface
|
|
@@ -81,6 +119,22 @@ export default defineNuxtConfig({
|
|
|
81
119
|
|
|
82
120
|
The module automatically uses `--continue` for follow-up messages within a session. Click "New Chat" to start a fresh conversation.
|
|
83
121
|
|
|
122
|
+
### Context Chips
|
|
123
|
+
|
|
124
|
+
Add contextual information to your messages using the chips next to the input field:
|
|
125
|
+
|
|
126
|
+
| Chip | Context Provided |
|
|
127
|
+
|------|------------------|
|
|
128
|
+
| **Viewport** | App window dimensions (width × height) |
|
|
129
|
+
| **User Agent** | Browser and OS information |
|
|
130
|
+
| **Routing** | Current route path, query params, page component file |
|
|
131
|
+
|
|
132
|
+
Click a chip to toggle it on/off. Active chips will include their context with your next message.
|
|
133
|
+
|
|
134
|
+
### Component Picker
|
|
135
|
+
|
|
136
|
+
Click "Add Component" to select Vue components directly from your running app. The component's file path will be included as context, allowing Claude to read and understand the component code.
|
|
137
|
+
|
|
84
138
|
### Skills
|
|
85
139
|
|
|
86
140
|
Skills extend Claude's capabilities with specialized knowledge. Create markdown files with YAML frontmatter:
|
|
@@ -182,6 +236,34 @@ Example MCP servers:
|
|
|
182
236
|
- **GitHub**: `npx -y @modelcontextprotocol/server-github`
|
|
183
237
|
- **Nuxt UI**: `https://ui.nuxt.com/mcp` (HTTP)
|
|
184
238
|
|
|
239
|
+
### Collaborative Mode
|
|
240
|
+
|
|
241
|
+
Share your chat session with team members:
|
|
242
|
+
|
|
243
|
+
1. Click the **Share** button in the chat header
|
|
244
|
+
2. Enter a nickname (required for collaboration)
|
|
245
|
+
3. Copy and share the generated link
|
|
246
|
+
4. Team members opening the link join the same session
|
|
247
|
+
|
|
248
|
+
Features:
|
|
249
|
+
- Real-time message sync between all participants
|
|
250
|
+
- Nicknames displayed on messages from other users
|
|
251
|
+
- Own messages appear on the right (green), others on the left (purple)
|
|
252
|
+
- Share links can include pre-set nicknames via `oro_share_nickname` URL parameter
|
|
253
|
+
|
|
254
|
+
### LLMS Sources
|
|
255
|
+
|
|
256
|
+
Configure external documentation URLs in llms.txt format:
|
|
257
|
+
|
|
258
|
+
1. Go to the **Docs** tab in DevTools
|
|
259
|
+
2. Add URLs to documentation sources
|
|
260
|
+
3. Claude can fetch and use these when answering questions
|
|
261
|
+
|
|
262
|
+
Supported formats:
|
|
263
|
+
- Direct markdown URLs
|
|
264
|
+
- llms.txt manifest files
|
|
265
|
+
- API documentation endpoints
|
|
266
|
+
|
|
185
267
|
## Architecture
|
|
186
268
|
|
|
187
269
|
```
|
|
@@ -196,10 +278,22 @@ Example MCP servers:
|
|
|
196
278
|
│ │ - /skills Skills manager │ │
|
|
197
279
|
│ │ - /agents Subagents manager │ │
|
|
198
280
|
│ │ - /commands Slash commands manager │ │
|
|
199
|
-
│ │ - /docs Documentation
|
|
281
|
+
│ │ - /docs Documentation & LLMS sources │ │
|
|
200
282
|
│ │ - /mcp MCP servers config │ │
|
|
283
|
+
│ │ - /plugins Plugin marketplace │ │
|
|
201
284
|
│ └───────────────────────────────────────────────────┘ │
|
|
202
285
|
└─────────────────────────────────────────────────────────┘
|
|
286
|
+
│ │
|
|
287
|
+
│ Socket.IO │ (or)
|
|
288
|
+
▼ ▼
|
|
289
|
+
┌──────────────────────┐ ┌──────────────────────────────┐
|
|
290
|
+
│ Chat Overlay │ │ Multiple Clients │
|
|
291
|
+
│ (Floating Panel) │ │ (Collaborative Mode) │
|
|
292
|
+
│ │ │ │
|
|
293
|
+
│ - Desktop: Draggable│ │ Client A ◄──┐ │
|
|
294
|
+
│ - Mobile: Bottom │ │ Client B ◄──┼── Shared │
|
|
295
|
+
│ sheet with swipe │ │ Client C ◄──┘ Session │
|
|
296
|
+
└──────────────────────┘ └──────────────────────────────┘
|
|
203
297
|
│
|
|
204
298
|
│ Socket.IO
|
|
205
299
|
▼
|
|
@@ -207,15 +301,16 @@ Example MCP servers:
|
|
|
207
301
|
│ Claude Session Server │
|
|
208
302
|
│ ┌─────────────────┐ ┌─────────────────────────────┐│
|
|
209
303
|
│ │ Socket.IO Hub │───▶│ Claude CLI Process ││
|
|
210
|
-
│ │ │ │ (spawn with --
|
|
304
|
+
│ │ │ │ (spawn with --resume) ││
|
|
211
305
|
│ │ Managers: │ └─────────────────────────────┘│
|
|
212
306
|
│ │ - Skills │ │
|
|
213
307
|
│ │ - Agents │ ┌─────────────────────────────┐│
|
|
214
308
|
│ │ - Commands │ │ File Storage ││
|
|
215
|
-
│ │ - Docs │ │ .claude/
|
|
216
|
-
│ │ - History │ │ .claude/
|
|
217
|
-
│
|
|
218
|
-
│
|
|
309
|
+
│ │ - Docs │ │ .claude-devtools/ ││
|
|
310
|
+
│ │ - History │ │ .claude/skills/ ││
|
|
311
|
+
│ │ - Share │ │ .claude/agents/ ││
|
|
312
|
+
│ │ - Plugins │ │ .claude/commands/ ││
|
|
313
|
+
│ └─────────────────┘ │ .claude/docs/ ││
|
|
219
314
|
│ └─────────────────────────────┘│
|
|
220
315
|
└─────────────────────────────────────────────────────────┘
|
|
221
316
|
```
|
|
@@ -268,25 +363,53 @@ npm run lint
|
|
|
268
363
|
│ ├── devtools.ts # DevTools UI setup
|
|
269
364
|
│ └── runtime/
|
|
270
365
|
│ ├── logger.ts # Logging utility
|
|
366
|
+
│ ├── overlay/ # Lightweight chat overlay
|
|
367
|
+
│ │ └── components/
|
|
368
|
+
│ │ ├── ChatOverlay.vue # Main overlay component
|
|
369
|
+
│ │ ├── MarkdownContent.vue # Markdown renderer
|
|
370
|
+
│ │ └── ToolCallBlock.vue # Tool call display
|
|
371
|
+
│ ├── shared/ # Shared code (overlay + client)
|
|
372
|
+
│ │ ├── composables/
|
|
373
|
+
│ │ │ ├── useClaudeChat.ts # Chat logic
|
|
374
|
+
│ │ │ ├── useVoiceInput.ts # Speech recognition
|
|
375
|
+
│ │ │ └── useShare.ts # Collaborative sharing
|
|
376
|
+
│ │ ├── types.ts # TypeScript types
|
|
377
|
+
│ │ └── constants.ts # Shared constants
|
|
271
378
|
│ └── server/
|
|
272
379
|
│ ├── claude-session.ts # Socket.IO server & Claude process
|
|
273
380
|
│ ├── skills-manager.ts # Skills CRUD operations
|
|
274
381
|
│ ├── agents-manager.ts # Agents CRUD operations
|
|
275
382
|
│ ├── commands-manager.ts # Commands CRUD operations
|
|
276
|
-
│ ├── docs-manager.ts # Documentation management
|
|
277
|
-
│
|
|
383
|
+
│ ├── docs-manager.ts # Documentation & LLMS management
|
|
384
|
+
│ ├── history-manager.ts # Chat history management
|
|
385
|
+
│ ├── share-manager.ts # Collaborative session management
|
|
386
|
+
│ └── plugins-manager.ts # Plugin marketplace
|
|
278
387
|
├── client/ # DevTools panel UI (Nuxt app)
|
|
279
388
|
│ ├── pages/
|
|
280
389
|
│ │ ├── index.vue # Chat interface
|
|
281
390
|
│ │ ├── skills.vue # Skills manager
|
|
282
391
|
│ │ ├── agents.vue # Subagents manager
|
|
283
392
|
│ │ ├── commands.vue # Slash commands manager
|
|
284
|
-
│ │ ├── docs.vue # Documentation viewer
|
|
285
|
-
│ │
|
|
393
|
+
│ │ ├── docs.vue # Documentation & LLMS viewer
|
|
394
|
+
│ │ ├── mcp.vue # MCP servers management
|
|
395
|
+
│ │ └── plugins.vue # Plugin marketplace
|
|
396
|
+
│ ├── composables/
|
|
397
|
+
│ │ ├── useClaudeChat.ts # Socket, messages, session
|
|
398
|
+
│ │ ├── useMessageContext.ts # Context chips logic
|
|
399
|
+
│ │ ├── useVoiceInput.ts # Speech recognition
|
|
400
|
+
│ │ ├── useAutocomplete.ts # Docs/commands autocomplete
|
|
401
|
+
│ │ ├── useComponentPicker.ts # Component selection
|
|
402
|
+
│ │ └── useShare.ts # Collaborative sharing
|
|
286
403
|
│ └── nuxt.config.ts
|
|
287
404
|
└── playground/ # Development playground
|
|
288
405
|
```
|
|
289
406
|
|
|
407
|
+
## Showcase
|
|
408
|
+
|
|
409
|
+
Check out real-world use cases and demos at **[nuxt-claude-devtools.oro.ad](https://nuxt-claude-devtools.oro.ad/)**
|
|
410
|
+
|
|
411
|
+
Have an interesting use case? We'd love to feature it! Send your story to [jobsbystr@gmail.com](mailto:jobsbystr@gmail.com).
|
|
412
|
+
|
|
290
413
|
## Security Notes
|
|
291
414
|
|
|
292
415
|
- The module only runs in development mode (`nuxt.options.dev`)
|
package/dist/client/200.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__claude-devtools/_nuxt/entry.
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__claude-devtools/_nuxt/entry.BMxUr06A.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__claude-devtools/_nuxt/DSt96JPY.js"><script type="module" src="/__claude-devtools/_nuxt/DSt96JPY.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{claudeDevtoolsBc:{tunnel:""}},app:{baseURL:"/__claude-devtools",buildId:"2be12f06-336a-4fdd-b982-2f6c682c14a6",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1769952369240,false]</script></body></html>
|
package/dist/client/404.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__claude-devtools/_nuxt/entry.
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__claude-devtools/_nuxt/entry.BMxUr06A.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__claude-devtools/_nuxt/DSt96JPY.js"><script type="module" src="/__claude-devtools/_nuxt/DSt96JPY.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{claudeDevtoolsBc:{tunnel:""}},app:{baseURL:"/__claude-devtools",buildId:"2be12f06-336a-4fdd-b982-2f6c682c14a6",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1769952369240,false]</script></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as O,U as q,z as j,r as B,e as k,j as T,V as N,W as U,X as E,Y as I,R as A,Z as L,$ as V,a0 as w,a1 as D,s as b,a2 as _,a3 as F,S as H,a4 as z,a5 as W,a6 as M,a7 as $}from"./DSt96JPY.js";const G=(...t)=>t.find(o=>o!==void 0);function Q(t){const o=t.componentName||"NuxtLink";function v(e){return typeof e=="string"&&e.startsWith("#")}function S(e,u,f){const r=f??t.trailingSlash;if(!e||r!=="append"&&r!=="remove")return e;if(typeof e=="string")return R(e,r);const l="path"in e&&e.path!==void 0?e.path:u(e).path;return{...e,name:void 0,path:R(l,r)}}function C(e){const u=q(),f=H(),r=b(()=>!!e.target&&e.target!=="_self"),l=b(()=>{const i=e.to||e.href||"";return typeof i=="string"&&_(i,{acceptRelative:!0})}),m=L("RouterLink"),h=typeof m!="string"?m.useLink:void 0,c=b(()=>{if(e.external)return!0;const i=e.to||e.href||"";return typeof i=="object"?!1:i===""||l.value}),n=b(()=>{const i=e.to||e.href||"";return c.value?i:S(i,u.resolve,e.trailingSlash)}),g=c.value?void 0:h?.({...e,to:n}),y=b(()=>{const i=e.trailingSlash??t.trailingSlash;if(!n.value||l.value||v(n.value))return n.value;if(c.value){const p=typeof n.value=="object"&&"path"in n.value?w(n.value):n.value,x=typeof p=="object"?u.resolve(p).href:p;return R(x,i)}return typeof n.value=="object"?u.resolve(n.value)?.href??null:R(F(f.app.baseURL,n.value),i)});return{to:n,hasTarget:r,isAbsoluteUrl:l,isExternal:c,href:y,isActive:g?.isActive??b(()=>n.value===u.currentRoute.value.path),isExactActive:g?.isExactActive??b(()=>n.value===u.currentRoute.value.path),route:g?.route??b(()=>u.resolve(n.value)),async navigate(i){await z(y.value,{replace:e.replace,external:c.value||r.value})}}}return O({name:o,props:{to:{type:[String,Object],default:void 0,required:!1},href:{type:[String,Object],default:void 0,required:!1},target:{type:String,default:void 0,required:!1},rel:{type:String,default:void 0,required:!1},noRel:{type:Boolean,default:void 0,required:!1},prefetch:{type:Boolean,default:void 0,required:!1},prefetchOn:{type:[String,Object],default:void 0,required:!1},noPrefetch:{type:Boolean,default:void 0,required:!1},activeClass:{type:String,default:void 0,required:!1},exactActiveClass:{type:String,default:void 0,required:!1},prefetchedClass:{type:String,default:void 0,required:!1},replace:{type:Boolean,default:void 0,required:!1},ariaCurrentValue:{type:String,default:void 0,required:!1},external:{type:Boolean,default:void 0,required:!1},custom:{type:Boolean,default:void 0,required:!1},trailingSlash:{type:String,default:void 0,required:!1}},useLink:C,setup(e,{slots:u}){const f=q(),{to:r,href:l,navigate:m,isExternal:h,hasTarget:c,isAbsoluteUrl:n}=C(e),g=j(!1),y=B(null),i=s=>{y.value=e.custom?s?.$el?.nextElementSibling:s?.$el};function p(s){return!g.value&&(typeof e.prefetchOn=="string"?e.prefetchOn===s:e.prefetchOn?.[s]??t.prefetchOn?.[s])&&(e.prefetch??t.prefetch)!==!1&&e.noPrefetch!==!0&&e.target!=="_blank"&&!Z()}async function x(s=k()){if(g.value)return;g.value=!0;const d=typeof r.value=="string"?r.value:h.value?w(r.value):f.resolve(r.value).fullPath,a=h.value?new URL(d,window.location.href).href:d;await Promise.all([s.hooks.callHook("link:prefetch",a).catch(()=>{}),!h.value&&!c.value&&D(r.value,f).catch(()=>{})])}if(p("visibility")){const s=k();let d,a=null;T(()=>{const P=X();N(()=>{d=U(()=>{y?.value?.tagName&&(a=P.observe(y.value,async()=>{a?.(),a=null,await x(s)}))})})}),E(()=>{d&&I(d),a?.(),a=null})}return()=>{if(!h.value&&!c.value&&!v(r.value)){const a={ref:i,to:r.value,activeClass:e.activeClass||t.activeClass,exactActiveClass:e.exactActiveClass||t.exactActiveClass,replace:e.replace,ariaCurrentValue:e.ariaCurrentValue,custom:e.custom};return e.custom||(p("interaction")&&(a.onPointerenter=x.bind(null,void 0),a.onFocus=x.bind(null,void 0)),g.value&&(a.class=e.prefetchedClass||t.prefetchedClass),a.rel=e.rel||void 0),A(L("RouterLink"),a,u.default)}const s=e.target||null,d=G(e.noRel?"":e.rel,t.externalRelAttribute,n.value||c.value?"noopener noreferrer":"")||null;return e.custom?u.default?u.default({href:l.value,navigate:m,prefetch:x,get route(){if(!l.value)return;const a=new URL(l.value,window.location.href);return{path:a.pathname,fullPath:a.pathname,get query(){return V(a.search)},hash:a.hash,params:{},name:void 0,matched:[],redirectedFrom:void 0,meta:{},href:l.value}},rel:d,target:s,isExternal:h.value||c.value,isActive:!1,isExactActive:!1}):null:A("a",{ref:y,href:l.value||null,rel:d,target:s,onClick:a=>{if(!(h.value||c.value))return a.preventDefault(),e.replace?f.replace(l.value):f.push(l.value)}},u.default?.())}}})}const K=Q($);function R(t,o){const v=o==="append"?W:M;return _(t)&&!t.startsWith("http")?t:v(t,!0)}function X(){const t=k();if(t._observer)return t._observer;let o=null;const v=new Map,S=(e,u)=>(o||=new IntersectionObserver(f=>{for(const r of f){const l=v.get(r.target);(r.isIntersecting||r.intersectionRatio>0)&&l&&l()}}),v.set(e,u),o.observe(e),()=>{v.delete(e),o?.unobserve(e),v.size===0&&(o?.disconnect(),o=null)});return t._observer={observe:S}}const Y=/2g/;function Z(){const t=navigator.connection;return!!(t&&(t.saveData||Y.test(t.effectiveType)))}export{K as _};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import{_ as me}from"./B8uzckkK.js";import{_ as fe}from"./QumocfwJ.js";import{_ as pe}from"./M6QPYocW.js";import{_ as be}from"./C--9REmc.js";import{_ as xe}from"./COus5Ssl.js";import{_ as ge}from"./CDQtmRaX.js";import{g as ye,r as c,s as ke,j as _e,k as Ce,c as i,a as t,b as l,w as d,d as o,q as V,T as we,o as n,m as x,t as p,l as K,F as _,n as O,x as Y,p as G,y as Le}from"./DSt96JPY.js";import{u as De,a as Ue,l as he,S as Ae}from"./DeGmaFBY.js";const Se={class:"relative flex flex-col h-screen n-bg-base"},Ee={class:"flex items-center justify-between p-4"},Ve={class:"flex items-center gap-3"},Me={class:"text-xl font-bold flex items-center gap-2"},Ne={class:"flex items-center gap-2"},je={class:"px-4 flex gap-2 border-b border-neutral-200 dark:border-neutral-800"},$e={class:"flex-1 overflow-auto p-4"},Te={key:0,class:"h-full flex flex-col"},Fe={class:"flex items-center justify-between mb-4"},Pe={class:"text-lg font-semibold flex items-center gap-2"},Re={key:0,class:"text-xs opacity-40 mt-1"},Be={class:"flex gap-2"},ze={key:0,class:"mb-4"},Ie={class:"flex-1 n-bg-active rounded-lg overflow-hidden"},We={key:1,class:"h-full p-4 overflow-auto"},qe={key:2,class:"h-full flex items-center justify-center opacity-50"},He={class:"text-center"},Ke={key:1,class:"flex gap-4 h-full"},Oe={class:"w-64 flex-shrink-0 space-y-4"},Ye={key:0,class:"n-bg-active rounded-lg p-4 opacity-50 text-sm"},Ge={key:0,class:"text-xs opacity-50 font-medium px-2 pt-2"},Je=["onClick"],Qe={class:"flex items-center justify-between"},Xe={class:"flex items-center gap-2 truncate"},Ze={class:"truncate"},et={class:"text-xs opacity-40 pl-6"},tt={class:"flex-1 flex flex-col n-bg-active rounded-lg overflow-hidden"},lt={class:"p-4 border-b border-neutral-200 dark:border-neutral-800"},ot={key:0,class:"mb-4"},nt={class:"space-y-4"},st={class:"flex-1 p-4"},at={class:"p-4 border-t border-neutral-200 dark:border-neutral-800 flex gap-2"},it={class:"p-4 border-b border-neutral-200 dark:border-neutral-800 flex items-center justify-between"},ut={class:"font-bold"},dt={class:"text-xs opacity-50"},rt={class:"flex gap-2"},ct={class:"flex-1 p-4 overflow-auto"},vt={key:2,class:"flex-1 flex items-center justify-center opacity-50"},mt={class:"text-center"},ft={key:2,class:"space-y-4"},pt={key:0,class:"n-bg-active rounded-lg p-4"},bt={key:0,class:"mb-4"},xt={class:"space-y-4"},gt={class:"flex gap-2"},yt={key:1,class:"n-bg-active rounded-lg p-4 opacity-50"},kt={key:2,class:"space-y-2"},_t={class:"flex items-start justify-between"},Ct={class:"flex-1"},wt={class:"font-bold flex items-center gap-2"},Lt={class:"text-sm opacity-70 font-mono mt-1"},Dt={key:0,class:"text-sm opacity-50 mt-1"},Ut={class:"text-xs opacity-40 mt-2"},Tt=ye({__name:"docs",setup(ht){const W=De(),{log:C}=Ue("docs"),a=c(null),w=c(!1),M=c(!1),q=c([]),v=c(null),y=c(!1),g=c(""),N=c(!1),L=c(""),j=c(""),H=c([]),h=c(!1),A=c(""),$=c(""),T=c(""),S=c(""),F=c(!1),P=c(null),E=c(!1),k=c(""),m=c(""),b=c("claudemd"),X=ke(()=>{const u={"":[]};for(const e of q.value){const B=e.path.split("/");if(B.length>1){const r=B.slice(0,-1).join("/");u[r]||(u[r]=[]),u[r].push(e)}else u[""].push(e)}return u});function Z(){return W.isActive.value&&W.origin.value?W.origin.value:window.location.origin}function ee(){const u=Z();C("Connecting to socket at",u),a.value=he(u,{path:Ae,transports:["websocket","polling"],reconnection:!0,reconnectionAttempts:5}),a.value.on("connect",()=>{C("Connected"),w.value=!0,J()}),a.value.on("disconnect",()=>{C("Disconnected"),w.value=!1}),a.value.on("docs:list",e=>{C("Docs list received",e.length),q.value=e,M.value=!1}),a.value.on("docs:file",e=>{e&&(v.value=e,g.value=e.content)}),a.value.on("docs:saved",e=>{e.success&&e.file?(v.value=e.file,g.value=e.file.content,y.value=!1,N.value=!1,L.value="",j.value="",m.value=""):m.value=e.error||"Failed to save"}),a.value.on("docs:deleted",e=>{e.success&&v.value?.path===e.path&&(v.value=null,y.value=!1)}),a.value.on("llms:list",e=>{C("LLMS list received",e.length),H.value=e}),a.value.on("llms:added",e=>{e.success?(h.value=!1,A.value="",$.value="",T.value="",m.value=""):m.value=e.error||"Failed to add"}),a.value.on("claudemd:data",e=>{C("CLAUDE.md data received",e.exists),S.value=e.content,F.value=e.exists,P.value=e.updatedAt,k.value=e.content}),a.value.on("claudemd:saved",e=>{e.success?(S.value=e.content||"",F.value=!0,P.value=e.updatedAt||null,k.value=e.content||"",E.value=!1,m.value=""):m.value=e.error||"Failed to save"})}function J(){a.value&&(M.value=!0,a.value.emit("docs:list"),a.value.emit("llms:list"),a.value.emit("claudemd:get"))}function te(){k.value=S.value,E.value=!0}function le(){a.value&&a.value.emit("claudemd:save",k.value)}function oe(){k.value=S.value,E.value=!1}function ne(u){v.value=u,g.value=u.content,y.value=!1}function se(){v.value&&(g.value=v.value.content,y.value=!0)}function ae(){a.value&&v.value&&a.value.emit("docs:save",{path:v.value.path,content:g.value})}function ie(){v.value&&(g.value=v.value.content),y.value=!1}function ue(){if(!L.value.trim()){m.value="Path is required";return}a.value&&a.value.emit("docs:save",{path:L.value.trim(),content:j.value||`# ${L.value.split("/").pop()?.replace(".md","")||"New Doc"}
|
|
2
|
+
|
|
3
|
+
`})}function de(u){confirm(`Delete "${u}"?`)&&a.value&&a.value.emit("docs:delete",u)}function re(){if(!A.value.trim()){m.value="URL is required";return}let u=A.value.trim();!u.startsWith("http://")&&!u.startsWith("https://")&&(u="https://"+u),a.value&&a.value.emit("llms:add",{url:u,title:$.value.trim()||void 0,description:T.value.trim()||void 0})}function ce(u){confirm(`Remove "${u}"?`)&&a.value&&a.value.emit("llms:remove",u)}function R(u){return new Date(u).toLocaleDateString()}return _e(()=>{ee()}),Ce(()=>{a.value&&a.value.disconnect()}),(u,e)=>{const B=me,r=fe,f=pe,D=be,Q=xe,z=ge;return n(),i("div",Se,[t("div",Ee,[t("div",Ve,[l(B,{class:"text-sm opacity-50 hover:opacity-100",to:"/"},{default:d(()=>[...e[14]||(e[14]=[o(" ← Chat ",-1)])]),_:1}),t("h1",Me,[l(r,{class:"text-purple",icon:"carbon:document"}),e[15]||(e[15]=o(" Docs & LLMS ",-1))])]),t("div",Ne,[l(f,{disabled:!w.value||M.value,n:"gray",onClick:J},{default:d(()=>[l(r,{class:V([{"animate-spin":M.value},"mr-1"]),icon:"carbon:restart"},null,8,["class"]),e[16]||(e[16]=o(" Refresh ",-1))]),_:1},8,["disabled"])])]),t("div",je,[t("button",{class:V([b.value==="claudemd"?"border-b-2 border-green-500 text-green-500":"opacity-60","px-4 py-2 font-medium"]),onClick:e[0]||(e[0]=s=>b.value="claudemd")},[l(r,{class:"mr-1",icon:"carbon:document-tasks"}),e[17]||(e[17]=o(" CLAUDE.md ",-1))],2),t("button",{class:V([b.value==="docs"?"border-b-2 border-purple-500 text-purple-500":"opacity-60","px-4 py-2 font-medium"]),onClick:e[1]||(e[1]=s=>b.value="docs")},[l(r,{class:"mr-1",icon:"carbon:folder"}),e[18]||(e[18]=o(" .claude/docs ",-1))],2),t("button",{class:V([b.value==="llms"?"border-b-2 border-blue-500 text-blue-500":"opacity-60","px-4 py-2 font-medium"]),onClick:e[2]||(e[2]=s=>b.value="llms")},[l(r,{class:"mr-1",icon:"carbon:link"}),e[19]||(e[19]=o(" LLMS Sources ",-1))],2)]),t("div",$e,[l(we,{appear:"",mode:"out-in",name:"page"},{default:d(()=>[b.value==="claudemd"?(n(),i("div",Te,[t("div",Fe,[t("div",null,[t("h2",Pe,[l(r,{icon:"carbon:document-tasks"}),e[20]||(e[20]=o(" CLAUDE.md ",-1))]),e[21]||(e[21]=t("p",{class:"text-sm opacity-50"}," Project-level instructions for Claude. Located at project root. ",-1)),P.value?(n(),i("p",Re," Updated: "+p(R(P.value)),1)):x("",!0)]),t("div",Be,[E.value?(n(),i(_,{key:0},[l(f,{n:"green",onClick:le},{default:d(()=>[l(r,{class:"mr-1",icon:"carbon:save"}),e[22]||(e[22]=o(" Save ",-1))]),_:1}),l(f,{n:"gray",onClick:oe},{default:d(()=>[...e[23]||(e[23]=[o(" Cancel ",-1)])]),_:1})],64)):(n(),K(f,{key:1,disabled:!w.value,n:"blue",onClick:te},{default:d(()=>[l(r,{class:"mr-1",icon:"carbon:edit"}),o(" "+p(F.value?"Edit":"Create"),1)]),_:1},8,["disabled"]))])]),m.value&&b.value==="claudemd"?(n(),i("div",ze,[l(D,{icon:"carbon:warning",n:"red"},{default:d(()=>[o(p(m.value),1)]),_:1})])):x("",!0),t("div",Ie,[E.value?O((n(),i("textarea",{key:0,"onUpdate:modelValue":e[3]||(e[3]=s=>k.value=s),class:"w-full h-full p-4 font-mono text-sm n-bg-base resize-none focus:outline-none",placeholder:`# CLAUDE.md
|
|
4
|
+
|
|
5
|
+
Write project-level instructions for Claude here...
|
|
6
|
+
|
|
7
|
+
Example:
|
|
8
|
+
- This is a Vue 3 + Nuxt project
|
|
9
|
+
- Use TypeScript
|
|
10
|
+
- Follow existing code style`},null,512)),[[Y,k.value]]):F.value?(n(),i("div",We,[l(Q,{content:S.value,class:"max-w-none"},null,8,["content"])])):(n(),i("div",qe,[t("div",He,[l(r,{class:"text-4xl mb-2",icon:"carbon:document-add"}),e[24]||(e[24]=t("p",null,"No CLAUDE.md file yet",-1)),e[25]||(e[25]=t("p",{class:"text-sm"},' Click "Create" to add project instructions ',-1))])]))]),l(D,{class:"mt-4",icon:"carbon:information",n:"gray"},{default:d(()=>[...e[26]||(e[26]=[o(" CLAUDE.md contains project-level instructions that Claude reads automatically. Use it to define coding standards, project structure, and preferences. ",-1)])]),_:1})])):b.value==="docs"?(n(),i("div",Ke,[t("div",Oe,[l(f,{disabled:!w.value,class:"w-full",n:"purple",onClick:e[4]||(e[4]=s=>{N.value=!0,v.value=null})},{default:d(()=>[l(r,{class:"mr-1",icon:"carbon:add"}),e[27]||(e[27]=o(" New Doc ",-1))]),_:1},8,["disabled"]),l(D,{class:"text-xs",icon:"carbon:information",n:"gray"},{default:d(()=>[...e[28]||(e[28]=[o(" Files are stored in ",-1),t("code",{class:"font-mono"},".claude/docs/",-1),t("br",null,null,-1),o(" Use ",-1),t("code",{class:"font-mono text-blue-500"},"@docs/filename",-1),o(" in chat to attach. ",-1)])]),_:1}),q.value.length===0?(n(),i("div",Ye,[...e[29]||(e[29]=[o(" No doc files yet. ",-1),t("br",null,null,-1),o(" Create one to get started. ",-1)])])):x("",!0),(n(!0),i(_,null,G(X.value,(s,I)=>(n(),i("div",{key:I,class:"space-y-1"},[I?(n(),i("div",Ge,p(I)+"/ ",1)):x("",!0),(n(!0),i(_,null,G(s,U=>(n(),i("div",{key:U.path,class:V([v.value?.path===U.path?"n-bg-active ring-1 ring-purple-500":"hover:n-bg-active","rounded-lg p-2 cursor-pointer group"]),onClick:ve=>ne(U)},[t("div",Qe,[t("div",Xe,[l(r,{class:"opacity-50",icon:"carbon:document"}),t("span",Ze,p(U.name),1)]),l(f,{class:"opacity-0 group-hover:opacity-100",n:"red xs",onClick:Le(ve=>de(U.path),["stop"])},{default:d(()=>[l(r,{icon:"carbon:trash-can"})]),_:1},8,["onClick"])]),t("div",et,p(R(U.updatedAt)),1)],10,Je))),128))]))),128))]),t("div",tt,[N.value?(n(),i(_,{key:0},[t("div",lt,[e[32]||(e[32]=t("h3",{class:"font-bold mb-4"}," Create New Doc ",-1)),m.value?(n(),i("div",ot,[l(D,{icon:"carbon:warning",n:"red"},{default:d(()=>[o(p(m.value),1)]),_:1})])):x("",!0),t("div",nt,[t("div",null,[e[30]||(e[30]=t("label",{class:"block text-sm font-medium mb-1"},"Path",-1)),l(z,{modelValue:L.value,"onUpdate:modelValue":e[5]||(e[5]=s=>L.value=s),class:"w-full font-mono",placeholder:"e.g. api/endpoints.md or readme.md"},null,8,["modelValue"]),e[31]||(e[31]=t("div",{class:"text-xs opacity-50 mt-1"}," Use / for subdirectories. .md extension added automatically. ",-1))])])]),t("div",st,[e[33]||(e[33]=t("label",{class:"block text-sm font-medium mb-1"},"Content (optional)",-1)),O(t("textarea",{"onUpdate:modelValue":e[6]||(e[6]=s=>j.value=s),class:"w-full h-full min-h-[200px] p-3 font-mono text-sm n-bg-base rounded-lg border border-neutral-200 dark:border-neutral-800 resize-none",placeholder:`# Your doc title
|
|
11
|
+
|
|
12
|
+
Write your documentation here...`},null,512),[[Y,j.value]])]),t("div",at,[l(f,{n:"purple",onClick:ue},{default:d(()=>[...e[34]||(e[34]=[o(" Create ",-1)])]),_:1}),l(f,{n:"gray",onClick:e[7]||(e[7]=s=>{N.value=!1,m.value=""})},{default:d(()=>[...e[35]||(e[35]=[o(" Cancel ",-1)])]),_:1})])],64)):v.value?(n(),i(_,{key:1},[t("div",it,[t("div",null,[t("h3",ut,p(v.value.path),1),t("div",dt," Updated: "+p(R(v.value.updatedAt)),1)]),t("div",rt,[y.value?(n(),i(_,{key:0},[l(f,{n:"green",onClick:ae},{default:d(()=>[l(r,{class:"mr-1",icon:"carbon:save"}),e[36]||(e[36]=o(" Save ",-1))]),_:1}),l(f,{n:"gray",onClick:ie},{default:d(()=>[...e[37]||(e[37]=[o(" Cancel ",-1)])]),_:1})],64)):(n(),K(f,{key:1,n:"blue",onClick:se},{default:d(()=>[l(r,{class:"mr-1",icon:"carbon:edit"}),e[38]||(e[38]=o(" Edit ",-1))]),_:1}))])]),t("div",ct,[y.value?O((n(),i("textarea",{key:0,"onUpdate:modelValue":e[8]||(e[8]=s=>g.value=s),class:"w-full h-full min-h-[300px] p-3 font-mono text-sm n-bg-base rounded-lg border border-neutral-200 dark:border-neutral-800 resize-none"},null,512)),[[Y,g.value]]):(n(),K(Q,{key:1,content:v.value.content,class:"max-w-none"},null,8,["content"]))])],64)):(n(),i("div",vt,[t("div",mt,[l(r,{class:"text-4xl mb-2",icon:"carbon:document"}),e[39]||(e[39]=t("p",null,"Select a doc file or create a new one",-1))])]))])])):b.value==="llms"?(n(),i("div",ft,[l(f,{disabled:!w.value,n:"blue",onClick:e[9]||(e[9]=s=>h.value=!0)},{default:d(()=>[l(r,{class:"mr-1",icon:"carbon:add"}),e[40]||(e[40]=o(" Add LLMS Source ",-1))]),_:1},8,["disabled"]),h.value?(n(),i("div",pt,[e[47]||(e[47]=t("h3",{class:"font-bold mb-4"}," Add LLMS Source ",-1)),m.value?(n(),i("div",bt,[l(D,{icon:"carbon:warning",n:"red"},{default:d(()=>[o(p(m.value),1)]),_:1})])):x("",!0),t("div",xt,[t("div",null,[e[41]||(e[41]=t("label",{class:"block text-sm font-medium mb-1"},"URL",-1)),l(z,{modelValue:A.value,"onUpdate:modelValue":e[10]||(e[10]=s=>A.value=s),class:"w-full font-mono",placeholder:"e.g. https://example.com/llms.txt"},null,8,["modelValue"]),e[42]||(e[42]=t("div",{class:"text-xs opacity-50 mt-1"}," URL to the llms.txt file ",-1))]),t("div",null,[e[43]||(e[43]=t("label",{class:"block text-sm font-medium mb-1"},"Title (optional)",-1)),l(z,{modelValue:$.value,"onUpdate:modelValue":e[11]||(e[11]=s=>$.value=s),class:"w-full",placeholder:"e.g. Example Documentation"},null,8,["modelValue"])]),t("div",null,[e[44]||(e[44]=t("label",{class:"block text-sm font-medium mb-1"},"Description (optional)",-1)),l(z,{modelValue:T.value,"onUpdate:modelValue":e[12]||(e[12]=s=>T.value=s),class:"w-full",placeholder:"e.g. API documentation and guides"},null,8,["modelValue"])]),t("div",gt,[l(f,{n:"blue",onClick:re},{default:d(()=>[...e[45]||(e[45]=[o(" Add ",-1)])]),_:1}),l(f,{n:"gray",onClick:e[13]||(e[13]=s=>{h.value=!1,m.value=""})},{default:d(()=>[...e[46]||(e[46]=[o(" Cancel ",-1)])]),_:1})])])])):x("",!0),H.value.length===0&&!h.value?(n(),i("div",yt,[...e[48]||(e[48]=[o(" No LLMS sources configured. ",-1),t("br",null,null,-1),o(" Add external llms.txt URLs to provide context to Claude. ",-1)])])):(n(),i("div",kt,[(n(!0),i(_,null,G(H.value,s=>(n(),i("div",{key:s.url,class:"n-bg-active rounded-lg p-4"},[t("div",_t,[t("div",Ct,[t("div",wt,[l(r,{class:"text-blue",icon:"carbon:link"}),o(" "+p(s.title||s.domain),1)]),t("div",Lt,p(s.url),1),s.description?(n(),i("div",Dt,p(s.description),1)):x("",!0),t("div",Ut," Added: "+p(R(s.addedAt)),1)]),l(f,{n:"red",onClick:I=>ce(s.url)},{default:d(()=>[l(r,{icon:"carbon:trash-can"})]),_:1},8,["onClick"])])]))),128))])),l(D,{icon:"carbon:information",n:"blue"},{default:d(()=>[...e[49]||(e[49]=[o(" LLMS sources are external llms.txt files that provide documentation context. Claude can use these to better understand APIs and libraries you're working with. ",-1)])]),_:1})])):x("",!0)]),_:1})])])}}});export{Tt as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as w}from"./D2l4TRxW.js";import{_ as E}from"./BcZxFXBD.js";import{_ as $}from"./DolUcBed.js";import{_ as V}from"./COus5Ssl.js";import{g as y,c as i,a as n,m as d,l,w as c,t as r,F as v,p,b as g,o as e,d as u}from"./DSt96JPY.js";import{_ as B}from"./QumocfwJ.js";import"./B8uzckkK.js";import"./M6QPYocW.js";import"./CHeJJZL9.js";import"./C--9REmc.js";import"./CDQtmRaX.js";import"./DEys9N1G.js";const C={class:"flex-1 p-4 overflow-auto"},F={class:"space-y-4"},N={class:"flex flex-wrap gap-2"},S={class:"text-xs opacity-50"},A={key:0},D={class:"flex flex-wrap gap-1"},h={key:1},j={class:"flex flex-wrap gap-1"},L=y({__name:"AgentView",props:{agent:{},formattedDate:{}},setup(t){return(f,o)=>{const m=$,a=V;return e(),i("div",C,[n("div",F,[n("div",N,[t.agent.model?(e(),l(m,{key:0,n:"purple"},{default:c(()=>[u(" Model: "+r(t.agent.model),1)]),_:1})):d("",!0)]),n("div",S," Updated: "+r(t.formattedDate),1),t.agent.tools&&t.agent.tools.length>0?(e(),i("div",A,[o[0]||(o[0]=n("div",{class:"text-sm font-medium opacity-50 mb-1"}," Tools ",-1)),n("div",D,[(e(!0),i(v,null,p(t.agent.tools,s=>(e(),l(m,{key:s,class:"font-mono text-xs",n:"blue"},{default:c(()=>[u(r(s),1)]),_:2},1024))),128))])])):d("",!0),t.agent.skills&&t.agent.skills.length>0?(e(),i("div",h,[o[1]||(o[1]=n("div",{class:"text-sm font-medium opacity-50 mb-1"}," Skills ",-1)),n("div",j,[(e(!0),i(v,null,p(t.agent.skills,s=>(e(),l(m,{key:s,class:"text-xs",n:"orange"},{default:c(()=>[u(r(s),1)]),_:2},1024))),128))])])):d("",!0),n("div",null,[o[2]||(o[2]=n("div",{class:"text-sm font-medium opacity-50 mb-2"}," System Prompt ",-1)),g(a,{content:t.agent.prompt,class:"max-w-none"},null,8,["content"])])])])}}}),M=Object.assign(L,{__name:"AgentView"}),T={key:0},H={key:1,class:"flex-1 flex items-center justify-center opacity-50"},I={class:"text-center"},Y=y({__name:"[name]",props:{agent:{},isEditing:{type:Boolean},editForm:{},formError:{},formatDate:{type:Function},availableSkills:{}},emits:["startEditing","save","cancel"],setup(t,{emit:f}){const o=f;return(m,a)=>{const s=w,_=E,k=M,b=B;return t.agent?(e(),i("div",T,[g(s,{description:t.agent.description,"is-editing":t.isEditing,readonly:t.agent.source!=="project",source:t.agent.source,title:t.agent.name,icon:"carbon:bot","icon-color":"text-purple-500","show-icon":"",onCancel:a[0]||(a[0]=x=>o("cancel")),onEdit:a[1]||(a[1]=x=>o("startEditing")),onSave:a[2]||(a[2]=x=>o("save"))},null,8,["description","is-editing","readonly","source","title"]),t.isEditing?(e(),l(_,{key:0,"available-skills":t.availableSkills,error:t.formError,"model-value":t.editForm,mode:"edit"},null,8,["available-skills","error","model-value"])):(e(),l(k,{key:1,agent:t.agent,"formatted-date":t.formatDate(t.agent.updatedAt)},null,8,["agent","formatted-date"]))])):(e(),i("div",H,[n("div",I,[g(b,{class:"text-4xl mb-2 animate-pulse",icon:"carbon:bot"}),a[3]||(a[3]=n("p",null,"Loading agent...",-1))])]))}}});export{Y as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as u}from"./B8uzckkK.js";import{_ as h}from"./QumocfwJ.js";import{_ as g}from"./DolUcBed.js";import{g as p,c as i,a as t,b as l,l as y,m as C,w as d,d as n,q as m,t as r,M as s,o as a}from"./DSt96JPY.js";const B={class:"flex flex-col h-screen n-bg-base overflow-hidden"},v={class:"flex items-center justify-between p-4"},w={class:"flex items-center gap-3"},k={class:"text-xl font-bold flex items-center gap-2"},N={class:"flex items-center gap-2"},b={class:"flex-1 overflow-auto p-4"},$=p({__name:"PageLayout",props:{title:{},icon:{},color:{},showConnectionBadge:{type:Boolean},isConnected:{type:Boolean},centered:{type:Boolean},maxWidth:{}},setup(e){return(o,c)=>{const _=u,f=h,x=g;return a(),i("div",B,[t("div",v,[t("div",w,[l(_,{class:"text-sm opacity-50 hover:opacity-100",to:"/"},{default:d(()=>[...c[0]||(c[0]=[n(" ← Chat ",-1)])]),_:1}),t("h1",k,[l(f,{class:m(`text-${e.color}-500`),icon:e.icon},null,8,["class","icon"]),n(" "+r(e.title),1)]),e.showConnectionBadge?(a(),y(x,{key:0,n:e.isConnected?"green":"red"},{default:d(()=>[n(r(e.isConnected?"Connected":"Disconnected"),1)]),_:1},8,["n"])):C("",!0)]),t("div",N,[s(o.$slots,"actions")])]),t("div",b,[e.centered?(a(),i("div",{key:0,class:m([e.maxWidth||"max-w-2xl","mx-auto"])},[s(o.$slots,"default")],2)):s(o.$slots,"default",{key:1})])])}}}),P=Object.assign($,{__name:"PageLayout"});export{P as _};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{u as P,_ as j,a as A}from"./DgfRwrFR.js";import{_ as G}from"./DC_XB519.js";import{g as H,s as J,l as s,w as f,E as o,G as M,H as U,o as a,I as Y,J as z,c as g,m as K,a as w,d as C,F as O,p as Q}from"./DSt96JPY.js";import"./QumocfwJ.js";import"./M6QPYocW.js";import"./B8uzckkK.js";import"./DolUcBed.js";import"./C--9REmc.js";import"./BMZIbUUD.js";import"./DeGmaFBY.js";import"./CHeJJZL9.js";import"./CDQtmRaX.js";const W={key:0,class:"n-bg-active rounded-lg p-4 opacity-50 text-sm"},X={class:"space-y-1"},ue=H({__name:"commands",setup(Z){const v=M(),i=U(),{isConnected:h,isLoading:d,items:m,isEditing:N,showNewForm:c,formError:u,newForm:l,editForm:S,load:x,select:y,startEditing:F,save:p,cancelEditing:k,deleteItem:E,showNew:T,formatDate:b}=P({resourceName:"commands",loggerName:"commands",createDefaultForm:()=>({name:"",description:"",content:"",allowedTools:""}),resourceToForm:e=>({name:e.name,description:e.description||"",content:e.content,allowedTools:e.allowedTools?.join(", ")||""}),validateForm:e=>e.name?e.content?null:"Content is required":"Name is required",transformFormForSave:e=>{const n=e.allowedTools.split(",").map(r=>r.trim()).filter(r=>r.length>0);return{name:e.name,content:e.content,description:e.description||void 0,allowedTools:n.length>0?n:void 0}}}),_=J(()=>{const e=v.params.name;return e&&m.value.find(n=>n.name===e)||null});function D(e){y(e),i.push(`/commands/${e.name}`)}function R(e){E(e,`Delete command "/${e}"?`)}function V(){T(),i.push("/commands")}function L(){c.value=!1}return(e,n)=>{const r=A,B=G,$=z,I=j;return a(),s(I,{title:"Slash Commands",icon:"carbon:terminal",color:"green","is-connected":o(h),"is-loading":o(d),"info-tip":"Slash commands are markdown files with YAML frontmatter.","storage-path":".claude/commands/<name>.md","empty-message":"No slash commands yet. Create one to get started.","empty-editor-message":"Select a command or create a new one","new-button-label":"New Command",onNew:V,onRefresh:o(x)},{list:f(()=>[o(m).length===0&&!o(d)?(a(),g("div",W,[...n[1]||(n[1]=[C(" No slash commands yet. ",-1),w("br",null,null,-1),C(" Create one to get started. ",-1)])])):K("",!0),w("div",X,[(a(!0),g(O,null,Q(o(m),t=>(a(),s(r,{key:t.name,selected:_.value?.name===t.name,name:t.name,description:t.description,source:t.source,icon:"carbon:terminal",color:"green","mono-name":"","name-prefix":"/",onSelect:q=>D(t),onDelete:q=>R(t.name)},null,8,["selected","name","description","source","onSelect","onDelete"]))),128))])]),editor:f(()=>[o(c)?(a(),s(B,{key:0,modelValue:o(l),"onUpdate:modelValue":n[0]||(n[0]=t=>Y(l)?l.value=t:null),mode:"create",error:o(u),onSave:o(p),onCancel:L},null,8,["modelValue","error","onSave"])):(a(),s($,{key:1,command:_.value,"is-editing":o(N),"edit-form":o(S),"form-error":o(u),"format-date":o(b),onStartEditing:o(F),onSave:o(p),onCancel:o(k)},null,8,["command","is-editing","edit-form","form-error","format-date","onStartEditing","onSave","onCancel"]))]),_:1},8,["is-connected","is-loading","onRefresh"])}}});export{ue as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as s}from"./QumocfwJ.js";import{g as n,c as a,a as t,b as c,o as i}from"./DSt96JPY.js";const r={class:"flex-1 flex items-center justify-center opacity-50"},l={class:"text-center"},f=n({__name:"index",setup(_){return(p,e)=>{const o=s;return i(),a("div",r,[t("div",l,[c(o,{class:"text-4xl mb-2",icon:"carbon:application"}),e[0]||(e[0]=t("p",null,"Select a plugin to view details",-1))])])}}});export{f as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as s}from"./
|
|
1
|
+
import{_ as s}from"./B8uzckkK.js";import{_ as a,c as i,o as u,a as t,t as n,b as c,w as l,d}from"./DSt96JPY.js";import{u as f}from"./DGQ4s7ae.js";const p={class:"antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"},m={class:"max-w-520px text-center"},h=["textContent"],g=["textContent"],b=["textContent"],x={class:"flex items-center justify-center w-full"},y={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},statusCode:{type:Number,default:404},statusMessage:{type:String,default:"Page not found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(e){const r=e;return f({title:`${r.statusCode} - ${r.statusMessage} | ${r.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(k,_)=>{const o=s;return u(),i("div",p,[t("div",m,[t("h1",{class:"font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]",textContent:n(e.statusCode)},null,8,h),t("h2",{class:"font-semibold mb-2 sm:text-3xl text-2xl",textContent:n(e.statusMessage)},null,8,g),t("p",{class:"mb-4 px-2 text-[#64748B] text-md",textContent:n(e.description)},null,8,b),t("div",x,[c(o,{to:"/",class:"font-medium hover:text-[#00DC82] text-sm underline underline-offset-3"},{default:l(()=>[d(n(e.backHome),1)]),_:1})])])])}}},N=a(y,[["__scopeId","data-v-8c88d9ea"]]);export{N as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as y}from"./D2l4TRxW.js";import{_ as w}from"./DbJLoP3G.js";import{_ as E}from"./DolUcBed.js";import{_ as $}from"./COus5Ssl.js";import{g as _,c as r,a as i,b as m,l,m as u,w as k,t as a,o as n,d as f}from"./DSt96JPY.js";import{_ as b}from"./QumocfwJ.js";import"./B8uzckkK.js";import"./M6QPYocW.js";import"./CHeJJZL9.js";import"./C--9REmc.js";import"./CDQtmRaX.js";import"./DEys9N1G.js";const V={class:"flex-1 p-4 overflow-auto"},B={class:"flex flex-wrap gap-2 mb-4"},C={class:"text-xs opacity-50 mb-4"},N=_({__name:"SkillView",props:{skill:{},formattedDate:{}},setup(t){return(c,o)=>{const s=E,e=$;return n(),r("div",V,[i("div",B,[t.skill.model?(n(),l(s,{key:0,n:"blue"},{default:k(()=>[f(" Model: "+a(t.skill.model),1)]),_:1})):u("",!0),t.skill.argumentHint?(n(),l(s,{key:1,n:"gray"},{default:k(()=>[f(" Arg: "+a(t.skill.argumentHint),1)]),_:1})):u("",!0)]),i("div",C," Updated: "+a(t.formattedDate),1),m(e,{content:t.skill.content,class:"max-w-none"},null,8,["content"])])}}}),S=Object.assign(N,{__name:"SkillView"}),D={key:0},h={key:1,class:"flex-1 flex items-center justify-center opacity-50"},F={class:"text-center"},J=_({__name:"[name]",props:{skill:{},isEditing:{type:Boolean},editForm:{},formError:{},formatDate:{type:Function}},emits:["startEditing","save","cancel"],setup(t,{emit:c}){const o=c;return(s,e)=>{const g=y,x=w,p=S,v=b;return t.skill?(n(),r("div",D,[m(g,{title:t.skill.name,description:t.skill.description,"is-editing":t.isEditing,readonly:t.skill.source!=="project",source:t.skill.source,icon:"carbon:lightning","icon-color":"text-orange-500","show-icon":"",onEdit:e[0]||(e[0]=d=>o("startEditing")),onSave:e[1]||(e[1]=d=>o("save")),onCancel:e[2]||(e[2]=d=>o("cancel"))},null,8,["title","description","is-editing","readonly","source"]),t.isEditing?(n(),l(x,{key:0,"model-value":t.editForm,mode:"edit",error:t.formError},null,8,["model-value","error"])):(n(),l(p,{key:1,skill:t.skill,"formatted-date":t.formatDate(t.skill.updatedAt)},null,8,["skill","formatted-date"]))])):(n(),r("div",h,[i("div",F,[m(v,{class:"text-4xl mb-2 animate-pulse",icon:"carbon:lightning"}),e[3]||(e[3]=i("p",null,"Loading skill...",-1))])]))}}});export{J as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as C}from"./CHeJJZL9.js";import{_}from"./CDQtmRaX.js";import{_ as S}from"./DEys9N1G.js";import{_ as N}from"./M6QPYocW.js";import{g as $,K as v,L as B,s as U,c as s,a as l,m as i,b as a,E as p,F as f,p as F,n as M,x as D,w as k,o as n,q as O,t as T,d as x}from"./DSt96JPY.js";const A={class:"flex-1 overflow-auto"},E={class:"p-4 border-b border-neutral-200 dark:border-neutral-800"},L={key:0,class:"font-bold mb-4"},q={class:"space-y-4"},z={key:0},G={key:1},j={class:"flex flex-wrap gap-2"},H=["onClick"],I={class:"p-4"},K={key:0,class:"p-4 border-t border-neutral-200 dark:border-neutral-800 flex gap-2 flex-shrink-0"},P=$({__name:"AgentForm",props:v({mode:{},error:{},availableSkills:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:v(["save","cancel"],["update:modelValue"]),setup(r){const c=r,o=B(r,"modelValue"),g=[{value:"",label:"Default"},{value:"sonnet",label:"Sonnet (fast)"},{value:"opus",label:"Opus (powerful)"},{value:"haiku",label:"Haiku (fastest)"}],m=U(()=>c.mode==="create");function V(d){const e=o.value.skills.indexOf(d);e>=0?o.value.skills.splice(e,1):o.value.skills.push(d)}return(d,e)=>{const w=C,u=_,y=S,b=N;return n(),s(f,null,[l("div",A,[l("div",E,[p(m)?(n(),s("h3",L," Create New Subagent ")):i("",!0),a(w,{error:r.error||"",class:"mb-4"},null,8,["error"]),l("div",q,[p(m)?(n(),s("div",z,[e[7]||(e[7]=l("label",{class:"block text-sm font-medium mb-1"},"Name",-1)),a(u,{modelValue:o.value.name,"onUpdate:modelValue":e[0]||(e[0]=t=>o.value.name=t),class:"w-full font-mono",placeholder:"e.g. reviewer, test-runner, docs-writer"},null,8,["modelValue"]),e[8]||(e[8]=l("div",{class:"text-xs opacity-50 mt-1"}," Use lowercase with hyphens (kebab-case) ",-1))])):i("",!0),l("div",null,[e[9]||(e[9]=l("label",{class:"block text-sm font-medium mb-1"},"Description",-1)),a(u,{modelValue:o.value.description,"onUpdate:modelValue":e[1]||(e[1]=t=>o.value.description=t),class:"w-full",placeholder:"Brief description of what this agent does"},null,8,["modelValue"])]),l("div",null,[e[10]||(e[10]=l("label",{class:"block text-sm font-medium mb-1"},"Model (optional)",-1)),a(y,{modelValue:o.value.model,"onUpdate:modelValue":e[2]||(e[2]=t=>o.value.model=t),options:g,class:"w-full"},null,8,["modelValue"])]),l("div",null,[e[11]||(e[11]=l("label",{class:"block text-sm font-medium mb-1"},"Tools (optional)",-1)),a(u,{modelValue:o.value.tools,"onUpdate:modelValue":e[3]||(e[3]=t=>o.value.tools=t),class:"w-full font-mono",placeholder:"e.g. Read, Grep, Glob, Bash"},null,8,["modelValue"]),e[12]||(e[12]=l("div",{class:"text-xs opacity-50 mt-1"}," Comma-separated list. Leave empty for all tools. ",-1))]),r.availableSkills&&r.availableSkills.length>0?(n(),s("div",G,[e[13]||(e[13]=l("label",{class:"block text-sm font-medium mb-1"},"Skills",-1)),l("div",j,[(n(!0),s(f,null,F(r.availableSkills,t=>(n(),s("button",{key:t,class:O([o.value.skills.includes(t)?"bg-orange-500 text-white":"n-bg-base","px-2 py-1 rounded text-sm border border-neutral-200 dark:border-neutral-700"]),type:"button",onClick:R=>V(t)},T(t),11,H))),128))]),e[14]||(e[14]=l("div",{class:"text-xs opacity-50 mt-1"}," Click to add/remove skills. Skills will be preloaded for the agent. ",-1))])):i("",!0)])]),l("div",I,[e[15]||(e[15]=l("label",{class:"block text-sm font-medium mb-1"},"System Prompt",-1)),M(l("textarea",{"onUpdate:modelValue":e[4]||(e[4]=t=>o.value.prompt=t),class:"w-full min-h-[200px] p-3 font-mono text-sm n-bg-base rounded-lg border border-neutral-200 dark:border-neutral-800 resize-y",placeholder:"Write the system prompt for this agent..."},null,512),[[D,o.value.prompt]])])]),p(m)?(n(),s("div",K,[a(b,{n:"purple",onClick:e[5]||(e[5]=t=>d.$emit("save"))},{default:k(()=>[...e[16]||(e[16]=[x(" Create Agent ",-1)])]),_:1}),a(b,{n:"gray",onClick:e[6]||(e[6]=t=>d.$emit("cancel"))},{default:k(()=>[...e[17]||(e[17]=[x(" Cancel ",-1)])]),_:1})])):i("",!0)],64)}}}),Z=Object.assign(P,{__name:"AgentForm"});export{Z as _};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as A}from"./QumocfwJ.js";import{_ as R}from"./M6QPYocW.js";import{_ as j}from"./DolUcBed.js";import{g as E,r as d,s as F,B as H,j as I,k as U,l as k,w as a,G as q,H as z,o as l,a as o,c as y,m as b,b as c,d as _,t as v,F as G,p as J,q as C,J as K}from"./DSt96JPY.js";import{_ as M}from"./BMZIbUUD.js";import{u as O,a as Q,l as W,S as X}from"./DeGmaFBY.js";import"./B8uzckkK.js";const Y={class:"flex gap-4 h-full"},Z={class:"w-72 flex-shrink-0 space-y-4 overflow-hidden"},ee={class:"text-sm font-medium opacity-50 mb-2 flex items-center gap-2"},te={key:0,class:"text-xs opacity-50"},ne={class:"space-y-1 px-1"},se=["onClick"],oe={class:"flex items-center gap-2"},ae={class:"font-medium truncate"},le={class:"flex flex-wrap gap-1 mt-1 pl-6"},ce={class:"flex-1 flex flex-col n-bg-active rounded-lg overflow-hidden"},ge=E({__name:"plugins",setup(ie){const m=O(),{log:i}=Q("plugins"),N=q(),B=z(),t=d(null),f=d(!1),u=d(!1),r=d([]),p=d(null),g=F(()=>{const e=N.params.id;return e&&r.value.find(n=>n.id===e||n.name===e)||null});function S(){return m.isActive.value&&m.origin.value?m.origin.value:window.location.origin}function $(){const e=S();i("Connecting to socket at",e),t.value=W(e,{path:X,transports:["websocket","polling"],reconnection:!0,reconnectionAttempts:5}),t.value.on("connect",()=>{i("Connected to socket"),f.value=!0,w()}),t.value.on("disconnect",()=>{i("Disconnected from socket"),f.value=!1}),t.value.on("plugins:list",n=>{i("Plugins list received",n),r.value=n,u.value=!1}),t.value.on("plugins:get",n=>{i("Plugin details received",n),p.value=n})}function w(){t.value&&(u.value=!0,t.value.emit("plugins:list"))}function D(e){p.value=null,B.push(`/plugins/${e.id}`),t.value&&e.cachePath&&t.value.emit("plugins:get",e.id)}function P(e){switch(e){case"user":return"purple";case"project":return"green";case"local":return"blue";case"managed":return"gray";default:return"gray"}}return H(g,e=>{e&&t.value&&e.cachePath&&(p.value=null,t.value.emit("plugins:get",e.id))}),I(()=>{$()}),U(()=>{t.value&&t.value.disconnect()}),(e,n)=>{const x=A,L=R,h=j,T=K,V=M;return l(),k(V,{color:"cyan",icon:"carbon:application",title:"Plugins"},{actions:a(()=>[c(L,{disabled:!f.value||u.value,n:"gray",onClick:w},{default:a(()=>[c(x,{class:C([{"animate-spin":u.value},"mr-1"]),icon:"carbon:restart"},null,8,["class"]),n[0]||(n[0]=_(" Refresh ",-1))]),_:1},8,["disabled"])]),default:a(()=>[o("div",Y,[o("div",Z,[o("div",null,[o("div",ee,[c(x,{icon:"carbon:application"}),_(" Installed Plugins ("+v(r.value.length)+") ",1)]),r.value.length===0&&!u.value?(l(),y("div",te," No plugins installed ")):b("",!0),o("div",ne,[(l(!0),y(G,null,J(r.value,s=>(l(),y("div",{key:s.id,class:C([[g.value?.id===s.id?"n-bg-active ring-1 ring-cyan-500":"hover:n-bg-active",!s.enabled&&"opacity-50"],"rounded-lg p-2 cursor-pointer"]),onClick:ue=>D(s)},[o("div",oe,[c(x,{class:C(s.enabled?"text-cyan-500":"text-gray-400"),icon:"carbon:application"},null,8,["class"]),o("span",ae,v(s.name),1)]),o("div",le,[c(h,{n:P(s.scope),class:"text-xs"},{default:a(()=>[_(v(s.scope),1)]),_:2},1032,["n"]),s.enabled?b("",!0):(l(),k(h,{key:0,class:"text-xs",n:"red"},{default:a(()=>[...n[1]||(n[1]=[_(" disabled ",-1)])]),_:1})),s.manifest?.version?(l(),k(h,{key:1,class:"text-xs",n:"gray"},{default:a(()=>[_(" v"+v(s.manifest.version),1)]),_:2},1024)):b("",!0)])],10,se))),128))])])]),o("div",ce,[c(T,{plugin:g.value,"plugin-details":p.value,"get-scope-color":P},null,8,["plugin","plugin-details"])])])]),_:1})}}});export{ge as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as p}from"./QumocfwJ.js";import{_ as y}from"./DolUcBed.js";import{_ as b}from"./B8uzckkK.js";import{g as v,c as s,a as n,m as a,b as c,t as i,l as r,w as m,F as h,d as u,p as x,o as t}from"./DSt96JPY.js";const k={key:0,class:"overflow-y-auto"},_={class:"p-4 border-b border-neutral-200 dark:border-neutral-800"},D={class:"flex items-center gap-3"},N={class:"text-lg font-bold"},w={class:"text-sm opacity-50"},C={key:0,class:"mt-2 text-sm opacity-70"},B={class:"flex flex-wrap gap-2 mt-3"},$={key:1,class:"mt-2 text-xs opacity-50"},L={key:2,class:"mt-1"},S=["href"],V={class:"flex-1 p-4 overflow-auto"},F={key:0,class:"mb-6"},j={class:"text-sm font-medium opacity-50 mb-2 flex items-center gap-2"},A={class:"space-y-1"},P={class:"font-mono text-sm text-orange-500"},T={key:0,class:"text-xs opacity-50 mt-1"},E={key:1,class:"mb-6"},I={class:"text-sm font-medium opacity-50 mb-2 flex items-center gap-2"},q={class:"space-y-1"},z={class:"font-mono text-sm text-green-500"},G={key:0,class:"text-xs opacity-50 mt-1"},H={key:2,class:"mb-6"},J={class:"text-sm font-medium opacity-50 mb-2 flex items-center gap-2"},K={class:"space-y-1"},M={class:"font-medium text-sm text-purple-500"},O={key:0,class:"text-xs opacity-50 mt-1"},Q={key:3,class:"text-center opacity-50 py-8"},R={key:1,class:"flex items-center justify-center h-full opacity-50"},U={key:2,class:"text-center opacity-50 py-8"},W={key:1,class:"flex-1 flex items-center justify-center opacity-50"},X={class:"text-center"},se=v({__name:"[id]",props:{plugin:{},pluginDetails:{},getScopeColor:{type:Function}},setup(e){return(Y,o)=>{const d=p,g=y,f=b;return e.plugin?(t(),s("div",k,[n("div",_,[n("div",D,[c(d,{class:"text-2xl text-cyan-500",icon:"carbon:application"}),n("div",null,[n("h2",N,i(e.plugin.name),1),n("div",w,i(e.plugin.marketplace),1)])]),e.plugin.manifest?.description?(t(),s("p",C,i(e.plugin.manifest.description),1)):a("",!0),n("div",B,[c(g,{n:e.getScopeColor(e.plugin.scope)},{default:m(()=>[u(i(e.plugin.scope)+" scope ",1)]),_:1},8,["n"]),c(g,{n:e.plugin.enabled?"green":"red"},{default:m(()=>[u(i(e.plugin.enabled?"enabled":"disabled"),1)]),_:1},8,["n"]),e.plugin.manifest?.version?(t(),r(g,{key:0,n:"gray"},{default:m(()=>[u(" v"+i(e.plugin.manifest.version),1)]),_:1})):a("",!0),e.plugin.manifest?.license?(t(),r(g,{key:1,n:"gray"},{default:m(()=>[u(i(e.plugin.manifest.license),1)]),_:1})):a("",!0)]),e.plugin.manifest?.author?.name?(t(),s("div",$," Author: "+i(e.plugin.manifest.author.name),1)):a("",!0),e.plugin.manifest?.homepage?(t(),s("div",L,[n("a",{href:e.plugin.manifest.homepage,class:"text-xs text-cyan-500 hover:underline",target:"_blank"},i(e.plugin.manifest.homepage),9,S)])):a("",!0)]),n("div",V,[e.pluginDetails?(t(),s(h,{key:0},[e.pluginDetails.skills.length>0?(t(),s("div",F,[n("h3",j,[c(d,{icon:"carbon:lightning"}),u(" Skills ("+i(e.pluginDetails.skills.length)+") ",1)]),n("div",A,[(t(!0),s(h,null,x(e.pluginDetails.skills,l=>(t(),r(f,{key:l.fullName,to:`/skills/${l.fullName}`,class:"n-bg-base rounded p-2 block hover:ring-1 hover:ring-orange-500 transition-all"},{default:m(()=>[n("div",P," /"+i(l.fullName),1),l.description?(t(),s("div",T,i(l.description),1)):a("",!0)]),_:2},1032,["to"]))),128))])])):a("",!0),e.pluginDetails.commands.length>0?(t(),s("div",E,[n("h3",I,[c(d,{icon:"carbon:terminal"}),u(" Commands ("+i(e.pluginDetails.commands.length)+") ",1)]),n("div",q,[(t(!0),s(h,null,x(e.pluginDetails.commands,l=>(t(),r(f,{key:l.fullName,to:`/commands/${l.fullName}`,class:"n-bg-base rounded p-2 block hover:ring-1 hover:ring-green-500 transition-all"},{default:m(()=>[n("div",z," /"+i(l.fullName),1),l.description?(t(),s("div",G,i(l.description),1)):a("",!0)]),_:2},1032,["to"]))),128))])])):a("",!0),e.pluginDetails.agents.length>0?(t(),s("div",H,[n("h3",J,[c(d,{icon:"carbon:bot"}),u(" Agents ("+i(e.pluginDetails.agents.length)+") ",1)]),n("div",K,[(t(!0),s(h,null,x(e.pluginDetails.agents,l=>(t(),r(f,{key:l.name,to:`/agents/${l.name}`,class:"n-bg-base rounded p-2 block hover:ring-1 hover:ring-purple-500 transition-all"},{default:m(()=>[n("div",M,i(l.name),1),l.description?(t(),s("div",O,i(l.description),1)):a("",!0)]),_:2},1032,["to"]))),128))])])):a("",!0),e.pluginDetails.skills.length===0&&e.pluginDetails.commands.length===0&&e.pluginDetails.agents.length===0?(t(),s("div",Q,[c(d,{class:"text-4xl mb-2",icon:"carbon:folder"}),o[0]||(o[0]=n("p",null,"No skills, commands, or agents in this plugin",-1))])):a("",!0)],64)):e.plugin.cachePath?(t(),s("div",R,[c(d,{class:"animate-spin mr-2",icon:"carbon:circle-dash"}),o[1]||(o[1]=u(" Loading plugin details... ",-1))])):(t(),s("div",U,[c(d,{class:"text-4xl mb-2",icon:"carbon:warning"}),o[2]||(o[2]=n("p",null,"Plugin not found in cache",-1)),o[3]||(o[3]=n("p",{class:"text-xs mt-1"}," The plugin may need to be re-installed ",-1))]))])])):(t(),s("div",W,[n("div",X,[c(d,{class:"text-4xl mb-2 animate-pulse",icon:"carbon:application"}),o[4]||(o[4]=n("p",null,"Loading plugin...",-1))])]))}}});export{se as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as c}from"./QumocfwJ.js";import{c as a,o as n,M as s,a as i,l as r,m as l}from"./DSt96JPY.js";const m={class:"n-tip n-tip-base"},u={__name:"NTip",props:{icon:{type:String,required:!1}},setup(e){return(o,p)=>{const t=c;return n(),a("div",m,[s(o.$slots,"icon",{},()=>[e.icon?(n(),r(t,{key:0,icon:e.icon,class:"n-tip-icon"},null,8,["icon"])):l("",!0)]),i("div",null,[s(o.$slots,"default")])])}}};export{u as _};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as w}from"./QumocfwJ.js";import{B as T,N as A,r as I,s as q,O as h,E as B,D as M,c as O,o as k,M as C,n as j,l as D,m as F,P as L,a as R,Q as J,I as W}from"./DSt96JPY.js";const _=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const G=e=>typeof e<"u",U=Object.prototype.toString,Q=e=>U.call(e)==="[object Object]",x=()=>{};function N(e){return Array.isArray(e)?e:[e]}function z(e,s,c){return T(e,s,{...c,immediate:!0})}const V=_?window:void 0;function E(e){var s;const c=h(e);return(s=c?.$el)!==null&&s!==void 0?s:c}function P(...e){const s=(o,i,r,a)=>(o.addEventListener(i,r,a),()=>o.removeEventListener(i,r,a)),c=q(()=>{const o=N(h(e[0])).filter(i=>i!=null);return o.every(i=>typeof i!="string")?o:void 0});return z(()=>{var o,i;return[(o=(i=c.value)===null||i===void 0?void 0:i.map(r=>E(r)))!==null&&o!==void 0?o:[V].filter(r=>r!=null),N(h(c.value?e[1]:e[0])),N(B(c.value?e[2]:e[1])),h(c.value?e[3]:e[2])]},([o,i,r,a],v,d)=>{if(!o?.length||!i?.length||!r?.length)return;const y=Q(a)?{...a}:a,$=o.flatMap(f=>i.flatMap(u=>r.map(m=>s(f,u,m,y))));d(()=>{$.forEach(f=>f())})},{flush:"post"})}function ee(e,s,c={}){const{window:o=V,ignore:i=[],capture:r=!0,detectIframe:a=!1,controls:v=!1}=c;if(!o)return v?{stop:x,cancel:x,trigger:x}:x;let d=!0;const y=t=>h(i).some(l=>{if(typeof l=="string")return Array.from(o.document.querySelectorAll(l)).some(n=>n===t.target||t.composedPath().includes(n));{const n=E(l);return n&&(t.target===n||t.composedPath().includes(n))}});function $(t){const l=h(t);return l&&l.$.subTree.shapeFlag===16}function f(t,l){const n=h(t),p=n.$.subTree&&n.$.subTree.children;return p==null||!Array.isArray(p)?!1:p.some(g=>g.el===l.target||l.composedPath().includes(g.el))}const u=t=>{const l=E(e);if(t.target!=null&&!(!(l instanceof Element)&&$(e)&&f(e,t))&&!(!l||l===t.target||t.composedPath().includes(l))){if("detail"in t&&t.detail===0&&(d=!y(t)),!d){d=!0;return}s(t)}};let m=!1;const b=[P(o,"click",t=>{m||(m=!0,setTimeout(()=>{m=!1},0),u(t))},{passive:!0,capture:r}),P(o,"pointerdown",t=>{const l=E(e);d=!y(t)&&!!(l&&!t.composedPath().includes(l))},{passive:!0}),a&&P(o,"blur",t=>{setTimeout(()=>{var l;const n=E(e);((l=o.document.activeElement)===null||l===void 0?void 0:l.tagName)==="IFRAME"&&!n?.contains(o.document.activeElement)&&s(t)},0)},{passive:!0})].filter(Boolean),S=()=>b.forEach(t=>t());return v?{stop:S,cancel:()=>{d=!1},trigger:t=>{d=!0,u(t),d=!1}}:S}function H(e){return JSON.parse(JSON.stringify(e))}function K(e,s,c,o={}){var i,r;const{clone:a=!1,passive:v=!1,eventName:d,deep:y=!1,defaultValue:$,shouldEmit:f}=o,u=A(),m=c||u?.emit||(u==null||(i=u.$emit)===null||i===void 0?void 0:i.bind(u))||(u==null||(r=u.proxy)===null||r===void 0||(r=r.$emit)===null||r===void 0?void 0:r.bind(u?.proxy));let b=d;b=b||`update:${s.toString()}`;const S=n=>a?typeof a=="function"?a(n):H(n):n,t=()=>G(e[s])?S(e[s]):$,l=n=>{f?f(n)&&m(b,n):m(b,n)};if(v){const n=I(t());let p=!1;return T(()=>e[s],g=>{p||(p=!0,n.value=S(g),M(()=>p=!1))}),T(n,g=>{!p&&(g!==e[s]||y)&&l(g)},{deep:y}),n}else return q({get(){return t()},set(n){l(n)}})}const X={class:"n-text-input flex flex items-center border n-border-base rounded n-bg-base py-1 pl-1 pr-2 focus-within:border-context focus-within:n-focus-base"},te={__name:"NTextInput",props:{modelValue:{type:[String,Number],required:!1,default:""},icon:{type:String,required:!1},placeholder:{type:String,required:!1},disabled:{type:Boolean,required:!1},autofocus:{type:Boolean,required:!1},autocomplete:{type:String,required:!1},readonly:{type:Boolean,required:!1},type:{type:String,required:!1,default:"text"}},emits:["keydown","keyup","change"],setup(e,{emit:s}){const i=K(e,"modelValue",s,{passive:!0});return(r,a)=>{const v=w;return k(),O("div",X,[C(r.$slots,"icon",{},()=>[e.icon?(k(),D(v,{key:0,icon:e.icon,class:"ml-0.3em mr-0.1em text-1.1em op50"},null,8,["icon"])):F("",!0)]),j(R("input",J({"onUpdate:modelValue":a[0]||(a[0]=d=>W(i)?i.value=d:null)},r.$props,{class:"ml-0.4em w-full flex-auto n-bg-base !outline-none"}),null,16),[[L,B(i)]])])}}};export{te as _,ee as o};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as a}from"./C--9REmc.js";import{g as s,c as n,m as t,o as c,b as m,w as _,d as i,t as p,q as l}from"./DSt96JPY.js";const d=s({__name:"FormError",props:{error:{},class:{}},setup(e){return(r,f)=>{const o=a;return e.error?(c(),n("div",{key:0,class:l(r.$props.class)},[m(o,{icon:"carbon:warning",n:"red"},{default:_(()=>[i(p(e.error),1)]),_:1})],2)):t("",!0)}}}),x=Object.assign(d,{__name:"FormError"});export{x as _};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{g as de,
|
|
1
|
+
import{g as de,s as xe,c as be,o as we}from"./DSt96JPY.js";function D(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var R=D();function se(n){R=n}var _={exec:()=>null};function p(n,e=""){let r=typeof n=="string"?n:n.source,s={replace:(t,i)=>{let l=typeof i=="string"?i:i.source;return l=l.replace(x.caret,"$1"),r=r.replace(t,l),s},getRegex:()=>new RegExp(r,e)};return s}var me=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),x={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:n=>new RegExp(`^( {0,3}${n})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}#`),htmlBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}<(?:[a-z].*>|!--)`,"i")},ye=/^(?:[ \t]*(?:\n|$))+/,$e=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Re=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,P=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Se=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,O=/(?:[*+-]|\d{1,9}[.)])/,le=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,ie=p(le).replace(/bull/g,O).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),Te=p(le).replace(/bull/g,O).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),H=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,ze=/^[^\n]+/,j=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Ae=p(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",j).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),_e=p(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,O).getRegex(),B="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",N=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,Pe=p("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",N).replace("tag",B).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),ae=p(H).replace("hr",P).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",B).getRegex(),Ie=p(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",ae).getRegex(),G={blockquote:Ie,code:$e,def:Ae,fences:Re,heading:Se,hr:P,html:Pe,lheading:ie,list:_e,newline:ye,paragraph:ae,table:_,text:ze},V=p("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",P).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",B).getRegex(),Ce={...G,lheading:Te,table:V,paragraph:p(H).replace("hr",P).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",V).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",B).getRegex()},Le={...G,html:p(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",N).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:_,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:p(H).replace("hr",P).replace("heading",` *#{1,6} *[^
|
|
2
2
|
]`).replace("lheading",ie).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},ve=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,Be=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,oe=/^( {2,}|\\)\n(?!\s*$)/,Ee=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,E=/[\p{P}\p{S}]/u,X=/[\s\p{P}\p{S}]/u,ce=/[^\s\p{P}\p{S}]/u,qe=p(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,X).getRegex(),he=/(?!~)[\p{P}\p{S}]/u,Ze=/(?!~)[\s\p{P}\p{S}]/u,Me=/(?:[^\s\p{P}\p{S}]|~)/u,Qe=p(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",me?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),pe=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,De=p(pe,"u").replace(/punct/g,E).getRegex(),Oe=p(pe,"u").replace(/punct/g,he).getRegex(),ue="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",He=p(ue,"gu").replace(/notPunctSpace/g,ce).replace(/punctSpace/g,X).replace(/punct/g,E).getRegex(),je=p(ue,"gu").replace(/notPunctSpace/g,Me).replace(/punctSpace/g,Ze).replace(/punct/g,he).getRegex(),Ne=p("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,ce).replace(/punctSpace/g,X).replace(/punct/g,E).getRegex(),Ge=p(/\\(punct)/,"gu").replace(/punct/g,E).getRegex(),Xe=p(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Fe=p(N).replace("(?:-->|$)","-->").getRegex(),We=p("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",Fe).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),C=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+[^`]*?`+(?!`)|[^\[\]\\`])*?/,Ue=p(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",C).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),ge=p(/^!?\[(label)\]\[(ref)\]/).replace("label",C).replace("ref",j).getRegex(),ke=p(/^!?\[(ref)\](?:\[\])?/).replace("ref",j).getRegex(),Je=p("reflink|nolink(?!\\()","g").replace("reflink",ge).replace("nolink",ke).getRegex(),Y=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,F={_backpedal:_,anyPunctuation:Ge,autolink:Xe,blockSkip:Qe,br:oe,code:Be,del:_,emStrongLDelim:De,emStrongRDelimAst:He,emStrongRDelimUnd:Ne,escape:ve,link:Ue,nolink:ke,punctuation:qe,reflink:ge,reflinkSearch:Je,tag:We,text:Ee,url:_},Ke={...F,link:p(/^!?\[(label)\]\((.*?)\)/).replace("label",C).getRegex(),reflink:p(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",C).getRegex()},Z={...F,emStrongRDelimAst:je,emStrongLDelim:Oe,url:p(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",Y).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:p(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",Y).getRegex()},Ve={...Z,br:p(oe).replace("{2,}","*").getRegex(),text:p(Z.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},I={normal:G,gfm:Ce,pedantic:Le},T={normal:F,gfm:Z,breaks:Ve,pedantic:Ke},Ye={"&":"&","<":"<",">":">",'"':""","'":"'"},ee=n=>Ye[n];function y(n,e){if(e){if(x.escapeTest.test(n))return n.replace(x.escapeReplace,ee)}else if(x.escapeTestNoEncode.test(n))return n.replace(x.escapeReplaceNoEncode,ee);return n}function te(n){try{n=encodeURI(n).replace(x.percentDecode,"%")}catch{return null}return n}function re(n,e){let r=n.replace(x.findPipe,(i,l,o)=>{let a=!1,h=l;for(;--h>=0&&o[h]==="\\";)a=!a;return a?"|":" |"}),s=r.split(x.splitPipe),t=0;if(s[0].trim()||s.shift(),s.length>0&&!s.at(-1)?.trim()&&s.pop(),e)if(s.length>e)s.splice(e);else for(;s.length<e;)s.push("");for(;t<s.length;t++)s[t]=s[t].trim().replace(x.slashPipe,"|");return s}function z(n,e,r){let s=n.length;if(s===0)return"";let t=0;for(;t<s&&n.charAt(s-t-1)===e;)t++;return n.slice(0,s-t)}function et(n,e){if(n.indexOf(e[1])===-1)return-1;let r=0;for(let s=0;s<n.length;s++)if(n[s]==="\\")s++;else if(n[s]===e[0])r++;else if(n[s]===e[1]&&(r--,r<0))return s;return r>0?-2:-1}function ne(n,e,r,s,t){let i=e.href,l=e.title||null,o=n[1].replace(t.other.outputLinkReplace,"$1");s.state.inLink=!0;let a={type:n[0].charAt(0)==="!"?"image":"link",raw:r,href:i,title:l,text:o,tokens:s.inlineTokens(o)};return s.state.inLink=!1,a}function tt(n,e,r){let s=n.match(r.other.indentCodeCompensation);if(s===null)return e;let t=s[1];return e.split(`
|
|
3
3
|
`).map(i=>{let l=i.match(r.other.beginningSpace);if(l===null)return i;let[o]=l;return o.length>=t.length?i.slice(t.length):i}).join(`
|
|
4
4
|
`)}var L=class{options;rules;lexer;constructor(n){this.options=n||R}space(n){let e=this.rules.block.newline.exec(n);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(n){let e=this.rules.block.code.exec(n);if(e){let r=e[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?r:z(r,`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as o,c as s,o as a,a as t,t as r}from"./
|
|
1
|
+
import{_ as o,c as s,o as a,a as t,t as r}from"./DSt96JPY.js";import{u as i}from"./DGQ4s7ae.js";const u={class:"antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"},c={class:"max-w-520px text-center"},l=["textContent"],d=["textContent"],p=["textContent"],f={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},statusCode:{type:Number,default:500},statusMessage:{type:String,default:"Internal server error"},description:{type:String,default:"This page is temporarily unavailable."},refresh:{type:String,default:"Refresh this page"}},setup(e){const n=e;return i({title:`${n.statusCode} - ${n.statusMessage} | ${n.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(g,h)=>(a(),s("div",u,[t("div",c,[t("h1",{class:"font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]",textContent:r(e.statusCode)},null,8,l),t("h2",{class:"font-semibold mb-2 sm:text-3xl text-2xl",textContent:r(e.statusMessage)},null,8,d),t("p",{class:"mb-4 px-2 text-[#64748B] text-md",textContent:r(e.description)},null,8,p)])]))}},x=o(f,[["__scopeId","data-v-c415ba6a"]]);export{x as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as S}from"./QumocfwJ.js";import{_ as F}from"./C--9REmc.js";import{_ as N}from"./BMZIbUUD.js";import{u as j,a as A,l as B,S as T}from"./DeGmaFBY.js";import{g as L,r,j as V,k as D,l as E,w as x,o as a,a as e,b as c,d as s,c as u,m as U,F as p,q as _,p as P,t as $}from"./DSt96JPY.js";import"./B8uzckkK.js";import"./DolUcBed.js";const q={class:"space-y-6"},z={class:"n-bg-active rounded-lg p-6"},H={class:"text-lg font-semibold mb-4 flex items-center gap-2"},I={class:"space-y-4"},K={class:"flex-1"},M={class:"text-sm opacity-60"},O={class:"ml-4"},G={key:0,class:"text-sm text-purple-500 flex items-center gap-2"},J={class:"n-bg-active rounded-lg p-6"},Q={class:"font-medium mb-3 flex items-center gap-2"},R={class:"flex flex-wrap gap-2"},st=L({__name:"settings",setup(W){const d=j(),{log:i}=A("settings"),o=r(null),l=r(!1),g=r(!1),n=r({criticalFiles:{autoConfirm:!1}});function b(){return d.isActive.value&&d.origin.value?d.origin.value:window.location.origin}function w(){const m=b();i("Connecting to socket at",m),o.value=B(m,{path:T,transports:["websocket","polling"],reconnection:!0,reconnectionAttempts:5}),o.value.on("connect",()=>{i("Connected to socket"),l.value=!0,o.value?.emit("settings:get")}),o.value.on("disconnect",()=>{i("Disconnected from socket"),l.value=!1}),o.value.on("settings:get",t=>{i("Settings received",t),n.value=t}),o.value.on("settings:updated",t=>{i("Settings updated",t),n.value=t,g.value=!1})}function h(){!o.value||!l.value||(g.value=!0,o.value.emit("settings:update",n.value))}function k(){n.value.criticalFiles.autoConfirm=!n.value.criticalFiles.autoConfirm,h()}return V(()=>{w()}),D(()=>{o.value?.disconnect()}),(m,t)=>{const f=S,C=F,y=N;return a(),E(y,{title:"Settings",icon:"carbon:settings",color:"purple","show-connection-badge":"","is-connected":l.value,centered:"","max-width":"max-w-2xl"},{default:x(()=>[e("div",q,[e("div",z,[e("h2",H,[c(f,{class:"text-orange",icon:"carbon:warning"}),t[0]||(t[0]=s(" Critical Files Behavior ",-1))]),t[3]||(t[3]=e("p",{class:"text-sm opacity-70 mb-4"}," Configure how Claude handles changes to critical configuration files (nuxt.config.ts, app.config.ts, etc.) that trigger a Nuxt restart. ",-1)),e("div",I,[e("div",{class:"flex items-center justify-between p-4 rounded-lg border border-neutral-200 dark:border-neutral-700 cursor-pointer hover:border-purple-500/50 transition-colors",onClick:k},[e("div",K,[t[1]||(t[1]=e("div",{class:"font-medium mb-1"}," Auto-confirm critical file changes ",-1)),e("div",M,[n.value.criticalFiles.autoConfirm?(a(),u(p,{key:0},[s(" Claude will automatically proceed with changes without asking for confirmation. ")],64)):(a(),u(p,{key:1},[s(" Claude will ask for your confirmation before modifying critical files. ")],64))])]),e("div",O,[e("div",{class:_(["w-12 h-6 rounded-full transition-colors relative",n.value.criticalFiles.autoConfirm?"bg-purple-500":"bg-neutral-300 dark:bg-neutral-600"])},[e("div",{class:_(["absolute top-1 w-4 h-4 rounded-full bg-white transition-transform",n.value.criticalFiles.autoConfirm?"translate-x-7":"translate-x-1"])},null,2)],2)])]),g.value?(a(),u("div",G,[c(f,{class:"animate-spin",icon:"carbon:rotate"}),t[2]||(t[2]=s(" Saving... ",-1))])):U("",!0)])]),c(C,{n:"blue"},{default:x(()=>[...t[4]||(t[4]=[e("strong",null,"Note:",-1),s(" Settings are stored in ",-1),e("code",{class:"text-xs bg-blue-500/20 px-1 rounded"},".claude-devtools/settings.json",-1),s(" and the CLAUDE.md instructions are updated automatically when you change settings. ",-1)])]),_:1}),e("div",J,[e("h3",Q,[c(f,{class:"text-yellow",icon:"carbon:document"}),t[5]||(t[5]=s(" Files that trigger Nuxt restart: ",-1))]),e("div",R,[(a(),u(p,null,P(["nuxt.config.ts","nuxt.config.js","app.config.ts","app.config.js",".nuxtrc","tsconfig.json"],v=>e("code",{key:v,class:"text-xs px-2 py-1 bg-yellow-500/10 text-yellow-600 dark:text-yellow-400 rounded"},$(v),1)),64))])])])]),_:1},8,["is-connected"])}}});export{st as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as j}from"./QumocfwJ.js";import{_ as R}from"./M6QPYocW.js";import{_ as q}from"./C--9REmc.js";import{_ as D}from"./CHeJJZL9.js";import{_ as H}from"./CDQtmRaX.js";import{_ as I}from"./DolUcBed.js";import{_ as z}from"./BMZIbUUD.js";import{g as K,r as m,j as O,k as G,l as J,o as a,w as r,a as o,b as n,c as i,m as U,d as u,n as b,v as x,F as y,p as Q,t as v,q as W}from"./DSt96JPY.js";import{u as X,a as Y,l as Z,S as h}from"./DeGmaFBY.js";import"./B8uzckkK.js";const ee={class:"space-y-4"},oe={key:0,class:"n-bg-active rounded-lg p-4"},te={class:"space-y-4"},le={class:"flex gap-4"},ne={class:"flex items-center gap-2"},se={class:"flex items-center gap-2"},ae={class:"flex items-center gap-2"},re={key:1},ue={class:"flex gap-4"},ie={class:"flex items-center gap-2"},de={class:"flex items-center gap-2"},me={class:"flex gap-2 pt-2"},pe={key:1,class:"n-bg-active rounded-lg p-4 opacity-50"},ve={key:2,class:"space-y-2"},ce={class:"font-bold flex items-center gap-2"},fe={class:"text-sm opacity-70 font-mono"},Pe=K({__name:"mcp",setup(ge){const S=X(),{log:_}=Y("mcp"),s=m(null),k=m(!1),c=m(!1),V=m([]),f=m(!1),t=m({name:"",transport:"stdio",command:"",args:"",url:"",scope:"local"}),p=m("");function A(){return S.isActive.value&&S.origin.value?S.origin.value:window.location.origin}function M(){const d=A();_("Connecting to socket at",d),s.value=Z(d,{path:h,transports:["websocket","polling"],reconnection:!0,reconnectionAttempts:5}),s.value.on("connect",()=>{_("Connected to socket"),k.value=!0,N()}),s.value.on("disconnect",()=>{_("Disconnected from socket"),k.value=!1}),s.value.on("mcp:list",e=>{_("MCP list received",e),V.value=e,c.value=!1}),s.value.on("mcp:added",e=>{e.success?(f.value=!1,P()):p.value=e.error||"Failed to add MCP server"}),s.value.on("mcp:removed",e=>{e.success||alert(`Failed to remove: ${e.error}`)})}function N(){s.value&&(c.value=!0,s.value.emit("mcp:list"))}function P(){t.value={name:"",transport:"stdio",command:"",args:"",url:"",scope:"local"},p.value=""}function $(){if(!t.value.name){p.value="Name is required";return}if(t.value.transport==="stdio"&&!t.value.command){p.value="Command is required for stdio transport";return}if((t.value.transport==="http"||t.value.transport==="sse")&&!t.value.url){p.value="URL is required for HTTP/SSE transport";return}if(s.value){const d=t.value.args.split(" ").map(e=>e.trim()).filter(e=>e.length>0);s.value.emit("mcp:add",{name:t.value.name,transport:t.value.transport,command:t.value.command,args:d,url:t.value.url,scope:t.value.scope})}}function F(d){confirm(`Remove MCP server "${d.name}"?`)&&s.value&&s.value.emit("mcp:remove",{name:d.name})}return O(()=>{M()}),G(()=>{s.value&&s.value.disconnect()}),(d,e)=>{const w=j,g=R,L=q,B=D,C=H,T=I,E=z;return a(),J(E,{title:"MCP Servers",icon:"carbon:plug",color:"blue"},{actions:r(()=>[n(g,{disabled:!k.value,n:"blue",onClick:e[0]||(e[0]=l=>f.value=!0)},{default:r(()=>[n(w,{class:"mr-1",icon:"carbon:add"}),e[11]||(e[11]=u(" Add Server ",-1))]),_:1},8,["disabled"]),n(g,{disabled:!k.value||c.value,n:"gray",onClick:N},{default:r(()=>[n(w,{class:W([{"animate-spin":c.value},"mr-1"]),icon:"carbon:restart"},null,8,["class"]),e[12]||(e[12]=u(" Refresh ",-1))]),_:1},8,["disabled"])]),default:r(()=>[o("div",ee,[n(L,{class:"text-sm",icon:"carbon:information",n:"blue"},{default:r(()=>[...e[13]||(e[13]=[u(" Model Context Protocol (MCP) servers extend Claude's capabilities with custom tools and data sources. ",-1)])]),_:1}),f.value?(a(),i("div",oe,[e[27]||(e[27]=o("h3",{class:"font-bold mb-4"}," Add MCP Server ",-1)),n(B,{error:p.value,class:"mb-4"},null,8,["error"]),o("div",te,[o("div",null,[e[14]||(e[14]=o("label",{class:"block text-sm font-medium mb-1"},"Name",-1)),n(C,{modelValue:t.value.name,"onUpdate:modelValue":e[1]||(e[1]=l=>t.value.name=l),class:"w-full",placeholder:"e.g. github, nuxt-ui-remote"},null,8,["modelValue"])]),o("div",null,[e[18]||(e[18]=o("label",{class:"block text-sm font-medium mb-1"},"Transport",-1)),o("div",le,[o("label",ne,[b(o("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>t.value.transport=l),name:"transport",type:"radio",value:"stdio"},null,512),[[x,t.value.transport]]),e[15]||(e[15]=o("span",null,"stdio",-1))]),o("label",se,[b(o("input",{"onUpdate:modelValue":e[3]||(e[3]=l=>t.value.transport=l),name:"transport",type:"radio",value:"http"},null,512),[[x,t.value.transport]]),e[16]||(e[16]=o("span",null,"HTTP",-1))]),o("label",ae,[b(o("input",{"onUpdate:modelValue":e[4]||(e[4]=l=>t.value.transport=l),name:"transport",type:"radio",value:"sse"},null,512),[[x,t.value.transport]]),e[17]||(e[17]=o("span",null,"SSE",-1))])])]),t.value.transport==="stdio"?(a(),i(y,{key:0},[o("div",null,[e[19]||(e[19]=o("label",{class:"block text-sm font-medium mb-1"},"Command",-1)),n(C,{modelValue:t.value.command,"onUpdate:modelValue":e[5]||(e[5]=l=>t.value.command=l),class:"w-full font-mono",placeholder:"e.g. npx"},null,8,["modelValue"])]),o("div",null,[e[20]||(e[20]=o("label",{class:"block text-sm font-medium mb-1"},"Arguments",-1)),n(C,{modelValue:t.value.args,"onUpdate:modelValue":e[6]||(e[6]=l=>t.value.args=l),class:"w-full font-mono",placeholder:"e.g. -y @modelcontextprotocol/server-github"},null,8,["modelValue"])])],64)):U("",!0),t.value.transport==="http"||t.value.transport==="sse"?(a(),i("div",re,[e[21]||(e[21]=o("label",{class:"block text-sm font-medium mb-1"},"URL",-1)),n(C,{modelValue:t.value.url,"onUpdate:modelValue":e[7]||(e[7]=l=>t.value.url=l),class:"w-full font-mono",placeholder:"e.g. https://ui.nuxt.com/mcp"},null,8,["modelValue"])])):U("",!0),o("div",null,[e[24]||(e[24]=o("label",{class:"block text-sm font-medium mb-1"},"Scope",-1)),o("div",ue,[o("label",ie,[b(o("input",{"onUpdate:modelValue":e[8]||(e[8]=l=>t.value.scope=l),name:"scope",type:"radio",value:"local"},null,512),[[x,t.value.scope]]),e[22]||(e[22]=o("span",null,"Local (this project)",-1))]),o("label",de,[b(o("input",{"onUpdate:modelValue":e[9]||(e[9]=l=>t.value.scope=l),name:"scope",type:"radio",value:"global"},null,512),[[x,t.value.scope]]),e[23]||(e[23]=o("span",null,"User (all projects)",-1))])])]),o("div",me,[n(g,{n:"green",onClick:$},{default:r(()=>[...e[25]||(e[25]=[u(" Add Server ",-1)])]),_:1}),n(g,{n:"gray",onClick:e[10]||(e[10]=l=>{f.value=!1,P()})},{default:r(()=>[...e[26]||(e[26]=[u(" Cancel ",-1)])]),_:1})])])])):U("",!0),V.value.length===0&&!f.value&&!c.value?(a(),i("div",pe,' No MCP servers configured. Click "Add Server" to get started. ')):(a(),i("div",ve,[(a(!0),i(y,null,Q(V.value,l=>(a(),i("div",{key:l.name,class:"n-bg-active rounded-lg p-4 flex items-center justify-between"},[o("div",null,[o("div",ce,[u(v(l.name)+" ",1),n(T,{n:l.transport==="stdio"?"gray":"blue",class:"text-xs"},{default:r(()=>[u(v(l.transport),1)]),_:2},1032,["n"]),n(T,{n:l.scope==="local"?"green":"purple",class:"text-xs"},{default:r(()=>[u(v(l.scope),1)]),_:2},1032,["n"])]),o("div",fe,[l.transport==="stdio"?(a(),i(y,{key:0},[u(v(l.command)+" "+v(l.args?.join(" ")),1)],64)):(a(),i(y,{key:1},[u(v(l.url),1)],64))])]),n(g,{n:"red",onClick:be=>F(l)},{default:r(()=>[n(w,{icon:"carbon:trash-can"})]),_:1},8,["onClick"])]))),128))]))])]),_:1})}}});export{Pe as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as p}from"./QumocfwJ.js";import{_ as v}from"./DolUcBed.js";import{_ as C}from"./B8uzckkK.js";import{_ as x}from"./M6QPYocW.js";import{g as $,c as r,a as y,m as c,M as B,q as k,l as m,d as s,t as u,w as a,F as N,b as n,o}from"./DSt96JPY.js";const _={class:"p-4 border-b border-neutral-200 dark:border-neutral-800 flex items-center justify-between"},E={key:0,class:"text-sm opacity-70"},w={key:0,class:"flex gap-2"},V=$({__name:"CrudEditorHeader",props:{title:{},description:{},isEditing:{type:Boolean},icon:{},iconColor:{default:""},showIcon:{type:Boolean,default:!1},monoTitle:{type:Boolean},readonly:{type:Boolean,default:!1},source:{}},emits:["edit","save","cancel"],setup(e){return(i,t)=>{const l=p,b=v,g=C,d=x;return o(),r("div",_,[y("div",null,[y("h3",{class:k([{"font-mono":e.monoTitle},"font-bold flex items-center gap-2"])},[e.showIcon&&e.icon?(o(),m(l,{key:0,class:k([e.iconColor]),icon:e.icon},null,8,["class","icon"])):c("",!0),s(" "+u(e.title)+" ",1),e.source&&e.source!=="project"?(o(),m(g,{key:1,to:`/plugins/${e.source}`,class:"hover:opacity-80 transition-opacity"},{default:a(()=>[n(b,{class:"text-xs cursor-pointer",n:"cyan"},{default:a(()=>[n(l,{class:"mr-1",icon:"carbon:application"}),s(" "+u(e.source),1)]),_:1})]),_:1},8,["to"])):c("",!0)],2),e.description?(o(),r("div",E,u(e.description),1)):c("",!0),B(i.$slots,"subtitle")]),e.readonly?c("",!0):(o(),r("div",w,[e.isEditing?(o(),r(N,{key:0},[n(d,{n:"green",onClick:t[0]||(t[0]=f=>i.$emit("save"))},{default:a(()=>[n(l,{class:"mr-1",icon:"carbon:save"}),t[3]||(t[3]=s(" Save ",-1))]),_:1}),n(d,{n:"gray",onClick:t[1]||(t[1]=f=>i.$emit("cancel"))},{default:a(()=>[...t[4]||(t[4]=[s(" Cancel ",-1)])]),_:1})],64)):(o(),m(d,{key:1,n:"blue",onClick:t[2]||(t[2]=f=>i.$emit("edit"))},{default:a(()=>[n(l,{class:"mr-1",icon:"carbon:edit"}),t[5]||(t[5]=s(" Edit ",-1))]),_:1}))]))])}}}),H=Object.assign(V,{__name:"CrudEditorHeader"});export{H as _};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as V}from"./CHeJJZL9.js";import{_ as k}from"./CDQtmRaX.js";import{_ as C}from"./M6QPYocW.js";import{g as w,K as b,L as g,s as y,c as a,a as o,m as i,b as s,E as u,t as N,n as B,x as T,w as c,F,o as n,d as v}from"./DSt96JPY.js";const $={class:"flex-1 overflow-auto"},E={class:"p-4 border-b border-neutral-200 dark:border-neutral-800"},M={key:0,class:"font-bold mb-4"},U={class:"space-y-4"},D={key:0},S={class:"text-xs opacity-50 mt-1"},W={class:"p-4"},j={key:0,class:"p-4 border-t border-neutral-200 dark:border-neutral-800 flex gap-2 flex-shrink-0"},q=w({__name:"CommandForm",props:b({mode:{},error:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:b(["save","cancel"],["update:modelValue"]),setup(r){const x=r,t=g(r,"modelValue"),m=y(()=>x.mode==="create");return(p,e)=>{const _=V,d=k,f=C;return n(),a(F,null,[o("div",$,[o("div",E,[u(m)?(n(),a("h3",M," Create New Slash Command ")):i("",!0),s(_,{error:r.error||"",class:"mb-4"},null,8,["error"]),o("div",U,[u(m)?(n(),a("div",D,[e[6]||(e[6]=o("label",{class:"block text-sm font-medium mb-1"},"Command Name",-1)),s(d,{modelValue:t.value.name,"onUpdate:modelValue":e[0]||(e[0]=l=>t.value.name=l),class:"w-full font-mono",placeholder:"e.g. review, deploy, test"},null,8,["modelValue"]),o("div",S," Will be invoked as /"+N(t.value.name||"command-name"),1)])):i("",!0),o("div",null,[e[7]||(e[7]=o("label",{class:"block text-sm font-medium mb-1"},"Description (optional)",-1)),s(d,{modelValue:t.value.description,"onUpdate:modelValue":e[1]||(e[1]=l=>t.value.description=l),class:"w-full",placeholder:"Brief description of what this command does"},null,8,["modelValue"])]),o("div",null,[e[8]||(e[8]=o("label",{class:"block text-sm font-medium mb-1"},"Allowed Tools (optional)",-1)),s(d,{modelValue:t.value.allowedTools,"onUpdate:modelValue":e[2]||(e[2]=l=>t.value.allowedTools=l),class:"w-full font-mono",placeholder:"e.g. Bash(git:*), Read, Edit"},null,8,["modelValue"]),e[9]||(e[9]=o("div",{class:"text-xs opacity-50 mt-1"}," Comma-separated list of allowed tools ",-1))])])]),o("div",W,[e[10]||(e[10]=o("label",{class:"block text-sm font-medium mb-1"},"Command Prompt",-1)),B(o("textarea",{"onUpdate:modelValue":e[3]||(e[3]=l=>t.value.content=l),class:"w-full min-h-[200px] p-3 font-mono text-sm n-bg-base rounded-lg border border-neutral-200 dark:border-neutral-800 resize-y",placeholder:"Write the prompt for this command..."},null,512),[[T,t.value.content]])])]),u(m)?(n(),a("div",j,[s(f,{n:"green",onClick:e[4]||(e[4]=l=>p.$emit("save"))},{default:c(()=>[...e[11]||(e[11]=[v(" Create Command ",-1)])]),_:1}),s(f,{n:"gray",onClick:e[5]||(e[5]=l=>p.$emit("cancel"))},{default:c(()=>[...e[12]||(e[12]=[v(" Cancel ",-1)])]),_:1})])):i("",!0)],64)}}}),L=Object.assign(q,{__name:"CommandForm"});export{L as _};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as x}from"./QumocfwJ.js";import{g as V,r as u,s as d,c as n,o as l,a as m,b as p,q as r,t as v,w,m as C,F as N,p as B,T as O}from"./DSt96JPY.js";import{o as S}from"./CDQtmRaX.js";const j={key:0,class:"absolute z-50 mt-1 w-full border n-border-base rounded n-bg-base shadow-lg max-h-60 overflow-auto"},z=["onClick"],F=V({__name:"NSelect",props:{modelValue:{},options:{},placeholder:{},disabled:{type:Boolean}},emits:["update:modelValue"],setup(o,{emit:f}){const a=o,b=f,e=u(!1),c=u(null),y=d(()=>a.options.find(i=>i.value===a.modelValue)?.label||a.placeholder||""),_=d(()=>!a.options.find(t=>t.value===a.modelValue));function h(){a.disabled||(e.value=!e.value)}function g(t){b("update:modelValue",t.value),e.value=!1}return S(c,()=>{e.value=!1}),(t,i)=>{const k=x;return l(),n("div",{ref_key:"selectRef",ref:c,class:"n-select relative"},[m("div",{class:r(["flex items-center justify-between border n-border-base rounded n-bg-base py-1 px-2 cursor-pointer",e.value?"border-context n-focus-base":"hover:border-neutral-400 dark:hover:border-neutral-600",o.disabled?"opacity-50 cursor-not-allowed":""]),onClick:h},[m("span",{class:r(_.value?"opacity-50":"")},v(y.value),3),p(k,{class:r(["transition-transform duration-150 op50 ml-2 flex-shrink-0",e.value?"rotate-180":""]),icon:"carbon:chevron-down"},null,8,["class"])],2),p(O,{"enter-active-class":"transition duration-100 ease-out","enter-from-class":"opacity-0 -translate-y-1","enter-to-class":"opacity-100 translate-y-0","leave-active-class":"transition duration-75 ease-in","leave-from-class":"opacity-100 translate-y-0","leave-to-class":"opacity-0 -translate-y-1"},{default:w(()=>[e.value?(l(),n("div",j,[(l(!0),n(N,null,B(o.options,s=>(l(),n("div",{key:s.value,class:r(["px-3 py-1.5 cursor-pointer","hover:n-bg-active",s.value===o.modelValue?"n-bg-active font-medium":""]),onClick:L=>g(s)},v(s.label),11,z))),128))])):C("",!0)]),_:1})],512)}}}),q=Object.assign(F,{__name:"NSelect"});export{q as _};
|