@oro.ad/nuxt-claude-devtools 1.2.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 +105 -13
- 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/{CPQSDiF7.js → BAb1fJOF.js} +4 -4
- 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/{08Mb3FOO.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/{CSlPuO5s.js → COus5Ssl.js} +1 -1
- package/dist/client/_nuxt/{o1jjB-UO.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/{b4Upel01.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/{CLKqRoht.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 +12 -1
- package/dist/module.json +1 -1
- package/dist/module.mjs +27 -5
- package/dist/runtime/constants.d.ts +29 -0
- package/dist/runtime/constants.js +5 -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/BMi2eT6G.js +0 -1
- package/dist/client/_nuxt/BiBLVxWh.js +0 -1
- package/dist/client/_nuxt/BnRGpZsC.js +0 -8
- package/dist/client/_nuxt/C2GhPw5d.js +0 -7
- package/dist/client/_nuxt/D8683igF.js +0 -7
- package/dist/client/_nuxt/DBIw6BGF.js +0 -1
- package/dist/client/_nuxt/DCgjfr8H.js +0 -9
- package/dist/client/_nuxt/bl5iU4Kz.js +0 -1
- package/dist/client/_nuxt/builds/meta/35284331-5e85-46e0-9058-988fea05336c.json +0 -1
- package/dist/client/_nuxt/entry.BhHeZ_Nj.css +0 -1
- package/dist/client/_nuxt/nKfsBgPE.js +0 -4
package/README.md
CHANGED
|
@@ -9,18 +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
|
|
14
|
-
- **
|
|
15
|
-
- **Component Picker** — Select Vue components from the page to add as context
|
|
16
|
+
- **Voice Input** — Speech-to-text for hands-free messaging
|
|
16
17
|
- **Session Management** — Start new conversations or continue previous ones
|
|
17
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
|
|
18
26
|
- **Skills** — Markdown-based skills to extend Claude's capabilities (`.claude/skills/<name>/SKILL.md`)
|
|
19
27
|
- **Subagents** — Specialized AI agents for delegated tasks (`.claude/agents/<name>.md`)
|
|
20
28
|
- **Slash Commands** — Custom commands with YAML frontmatter (`.claude/commands/<name>.md`)
|
|
21
29
|
- **Documentation** — Manage project docs that Claude can reference (`.claude/docs/`)
|
|
22
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
|
|
23
34
|
- **Tunnel Support** — Remote access via cloudflared tunnel
|
|
35
|
+
- **Mobile Support** — Responsive bottom-sheet UI with swipe gestures
|
|
24
36
|
|
|
25
37
|
## Prerequisites
|
|
26
38
|
|
|
@@ -73,6 +85,29 @@ export default defineNuxtConfig({
|
|
|
73
85
|
| `claude.command` | `string` | `'claude'` | Path to Claude CLI executable |
|
|
74
86
|
| `claude.args` | `string[]` | `[]` | Additional arguments for Claude CLI |
|
|
75
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
|
+
|
|
76
111
|
## Usage
|
|
77
112
|
|
|
78
113
|
### Chat Interface
|
|
@@ -201,6 +236,34 @@ Example MCP servers:
|
|
|
201
236
|
- **GitHub**: `npx -y @modelcontextprotocol/server-github`
|
|
202
237
|
- **Nuxt UI**: `https://ui.nuxt.com/mcp` (HTTP)
|
|
203
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
|
+
|
|
204
267
|
## Architecture
|
|
205
268
|
|
|
206
269
|
```
|
|
@@ -215,10 +278,22 @@ Example MCP servers:
|
|
|
215
278
|
│ │ - /skills Skills manager │ │
|
|
216
279
|
│ │ - /agents Subagents manager │ │
|
|
217
280
|
│ │ - /commands Slash commands manager │ │
|
|
218
|
-
│ │ - /docs Documentation
|
|
281
|
+
│ │ - /docs Documentation & LLMS sources │ │
|
|
219
282
|
│ │ - /mcp MCP servers config │ │
|
|
283
|
+
│ │ - /plugins Plugin marketplace │ │
|
|
220
284
|
│ └───────────────────────────────────────────────────┘ │
|
|
221
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
|
+
└──────────────────────┘ └──────────────────────────────┘
|
|
222
297
|
│
|
|
223
298
|
│ Socket.IO
|
|
224
299
|
▼
|
|
@@ -226,15 +301,16 @@ Example MCP servers:
|
|
|
226
301
|
│ Claude Session Server │
|
|
227
302
|
│ ┌─────────────────┐ ┌─────────────────────────────┐│
|
|
228
303
|
│ │ Socket.IO Hub │───▶│ Claude CLI Process ││
|
|
229
|
-
│ │ │ │ (spawn with --
|
|
304
|
+
│ │ │ │ (spawn with --resume) ││
|
|
230
305
|
│ │ Managers: │ └─────────────────────────────┘│
|
|
231
306
|
│ │ - Skills │ │
|
|
232
307
|
│ │ - Agents │ ┌─────────────────────────────┐│
|
|
233
308
|
│ │ - Commands │ │ File Storage ││
|
|
234
|
-
│ │ - Docs │ │ .claude/
|
|
235
|
-
│ │ - History │ │ .claude/
|
|
236
|
-
│
|
|
237
|
-
│
|
|
309
|
+
│ │ - Docs │ │ .claude-devtools/ ││
|
|
310
|
+
│ │ - History │ │ .claude/skills/ ││
|
|
311
|
+
│ │ - Share │ │ .claude/agents/ ││
|
|
312
|
+
│ │ - Plugins │ │ .claude/commands/ ││
|
|
313
|
+
│ └─────────────────┘ │ .claude/docs/ ││
|
|
238
314
|
│ └─────────────────────────────┘│
|
|
239
315
|
└─────────────────────────────────────────────────────────┘
|
|
240
316
|
```
|
|
@@ -287,27 +363,43 @@ npm run lint
|
|
|
287
363
|
│ ├── devtools.ts # DevTools UI setup
|
|
288
364
|
│ └── runtime/
|
|
289
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
|
|
290
378
|
│ └── server/
|
|
291
379
|
│ ├── claude-session.ts # Socket.IO server & Claude process
|
|
292
380
|
│ ├── skills-manager.ts # Skills CRUD operations
|
|
293
381
|
│ ├── agents-manager.ts # Agents CRUD operations
|
|
294
382
|
│ ├── commands-manager.ts # Commands CRUD operations
|
|
295
|
-
│ ├── docs-manager.ts # Documentation management
|
|
296
|
-
│
|
|
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
|
|
297
387
|
├── client/ # DevTools panel UI (Nuxt app)
|
|
298
388
|
│ ├── pages/
|
|
299
389
|
│ │ ├── index.vue # Chat interface
|
|
300
390
|
│ │ ├── skills.vue # Skills manager
|
|
301
391
|
│ │ ├── agents.vue # Subagents manager
|
|
302
392
|
│ │ ├── commands.vue # Slash commands manager
|
|
303
|
-
│ │ ├── docs.vue # Documentation viewer
|
|
304
|
-
│ │
|
|
393
|
+
│ │ ├── docs.vue # Documentation & LLMS viewer
|
|
394
|
+
│ │ ├── mcp.vue # MCP servers management
|
|
395
|
+
│ │ └── plugins.vue # Plugin marketplace
|
|
305
396
|
│ ├── composables/
|
|
306
397
|
│ │ ├── useClaudeChat.ts # Socket, messages, session
|
|
307
398
|
│ │ ├── useMessageContext.ts # Context chips logic
|
|
308
399
|
│ │ ├── useVoiceInput.ts # Speech recognition
|
|
309
400
|
│ │ ├── useAutocomplete.ts # Docs/commands autocomplete
|
|
310
|
-
│ │
|
|
401
|
+
│ │ ├── useComponentPicker.ts # Component selection
|
|
402
|
+
│ │ └── useShare.ts # Collaborative sharing
|
|
311
403
|
│ └── nuxt.config.ts
|
|
312
404
|
└── playground/ # Development playground
|
|
313
405
|
```
|
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 _};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import{_ as me}from"./
|
|
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
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
|
|
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
4
|
|
|
5
5
|
Write project-level instructions for Claude here...
|
|
6
6
|
|
|
7
7
|
Example:
|
|
8
8
|
- This is a Vue 3 + Nuxt project
|
|
9
9
|
- Use TypeScript
|
|
10
|
-
- Follow existing code style`},null,512)),[[
|
|
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
11
|
|
|
12
|
-
Write your documentation here...`},null,512),[[
|
|
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};
|