@oro.ad/nuxt-claude-devtools 1.1.0 → 1.3.0

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