skill-creator 1.5.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +73 -0
- package/LICENSE +21 -0
- package/README.md +248 -275
- package/dist/cli.js +51129 -0
- package/dist/cli.js.map +7 -0
- package/dist/daemon.js +52163 -0
- package/dist/daemon.js.map +7 -0
- package/dist/package.json +5 -0
- package/dist/webui/_app/immutable/assets/0.0XN00VKF.css +2 -0
- package/dist/webui/_app/immutable/assets/ProviderView.DEH95hqa.css +1 -0
- package/dist/webui/_app/immutable/assets/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2 +0 -0
- package/dist/webui/_app/immutable/assets/inter-cyrillic-wght-normal.DqGufNeO.woff2 +0 -0
- package/dist/webui/_app/immutable/assets/inter-greek-ext-wght-normal.DlzME5K_.woff2 +0 -0
- package/dist/webui/_app/immutable/assets/inter-greek-wght-normal.CkhJZR-_.woff2 +0 -0
- package/dist/webui/_app/immutable/assets/inter-latin-ext-wght-normal.DO1Apj_S.woff2 +0 -0
- package/dist/webui/_app/immutable/assets/inter-latin-wght-normal.Dx4kXJAl.woff2 +0 -0
- package/dist/webui/_app/immutable/assets/inter-vietnamese-wght-normal.CBcvBZtf.woff2 +0 -0
- package/dist/webui/_app/immutable/assets/shell.U4CQV8re.css +1 -0
- package/dist/webui/_app/immutable/chunks/0umLG1IN.js +1 -0
- package/dist/webui/_app/immutable/chunks/B2zyE4XX.js +1 -0
- package/dist/webui/_app/immutable/chunks/BD9g8Udg.js +1 -0
- package/dist/webui/_app/immutable/chunks/BEPs9Z9s.js +1 -0
- package/dist/webui/_app/immutable/chunks/BEsyQXpe.js +1 -0
- package/dist/webui/_app/immutable/chunks/BIfnT_mK.js +1 -0
- package/dist/webui/_app/immutable/chunks/BYNWtKcf.js +259 -0
- package/dist/webui/_app/immutable/chunks/B_YFzSAv.js +2 -0
- package/dist/webui/_app/immutable/chunks/BaH4uqzh.js +1 -0
- package/dist/webui/_app/immutable/chunks/Bjy-W4x2.js +81 -0
- package/dist/webui/_app/immutable/chunks/BkEnd9_Z.js +1 -0
- package/dist/webui/_app/immutable/chunks/BrDKAjtR.js +1 -0
- package/dist/webui/_app/immutable/chunks/Bs27XW8_.js +1 -0
- package/dist/webui/_app/immutable/chunks/BySEbwqx.js +1 -0
- package/dist/webui/_app/immutable/chunks/C3mlWJXx.js +1 -0
- package/dist/webui/_app/immutable/chunks/CEpOi93z.js +2 -0
- package/dist/webui/_app/immutable/chunks/CIFG41pU.js +1 -0
- package/dist/webui/_app/immutable/chunks/CNPsST_i.js +1 -0
- package/dist/webui/_app/immutable/chunks/CQD9uzpA.js +1 -0
- package/dist/webui/_app/immutable/chunks/CeR4do8T.js +1 -0
- package/dist/webui/_app/immutable/chunks/Ckw1quWt.js +1 -0
- package/dist/webui/_app/immutable/chunks/CmCJ0SKP.js +3 -0
- package/dist/webui/_app/immutable/chunks/D-V0xBeS.js +1 -0
- package/dist/webui/_app/immutable/chunks/D-ecV3TD.js +1 -0
- package/dist/webui/_app/immutable/chunks/D0xHg31U.js +1 -0
- package/dist/webui/_app/immutable/chunks/D25cXQtk.js +1 -0
- package/dist/webui/_app/immutable/chunks/D8Der6oM.js +1 -0
- package/dist/webui/_app/immutable/chunks/DEtYLPO4.js +8 -0
- package/dist/webui/_app/immutable/chunks/DJNLWtK-.js +1 -0
- package/dist/webui/_app/immutable/chunks/DLuJKUyD.js +1 -0
- package/dist/webui/_app/immutable/chunks/DWcQbrnv.js +52 -0
- package/dist/webui/_app/immutable/chunks/DZ_Kltd5.js +1 -0
- package/dist/webui/_app/immutable/chunks/DecrR9TK.js +1 -0
- package/dist/webui/_app/immutable/chunks/Dl8eQ129.js +5 -0
- package/dist/webui/_app/immutable/chunks/Dnkino9G.js +1 -0
- package/dist/webui/_app/immutable/chunks/HclGiUj8.js +1 -0
- package/dist/webui/_app/immutable/chunks/IYkYSIV6.js +1 -0
- package/dist/webui/_app/immutable/chunks/J36u8XLO.js +1 -0
- package/dist/webui/_app/immutable/chunks/UeEccMjN.js +1 -0
- package/dist/webui/_app/immutable/chunks/Y--VMh3y.js +1 -0
- package/dist/webui/_app/immutable/chunks/iicbWqXp.js +3 -0
- package/dist/webui/_app/immutable/chunks/s48N5eaK.js +67 -0
- package/dist/webui/_app/immutable/chunks/xihTtKlq.js +1 -0
- package/dist/webui/_app/immutable/entry/app.CbFi8HIH.js +2 -0
- package/dist/webui/_app/immutable/entry/start.C3bV1TCO.js +1 -0
- package/dist/webui/_app/immutable/nodes/0.C7-AKGsj.js +231 -0
- package/dist/webui/_app/immutable/nodes/1.raBmjc20.js +1 -0
- package/dist/webui/_app/immutable/nodes/2.ewWz-Ki-.js +1 -0
- package/dist/webui/_app/immutable/nodes/3.DCVfhckZ.js +1 -0
- package/dist/webui/_app/version.json +1 -0
- package/dist/webui/icons/app-icon/darwin-dark.icns +0 -0
- package/dist/webui/icons/app-icon/darwin-light.icns +0 -0
- package/dist/webui/icons/app-icon/win32-dark.ico +0 -0
- package/dist/webui/icons/app-icon/win32-light.ico +0 -0
- package/dist/webui/icons/app-icon.icns +0 -0
- package/dist/webui/icons/app-icon.ico +0 -0
- package/dist/webui/icons/app-icon.json +84 -0
- package/dist/webui/icons/app-icon.png +0 -0
- package/dist/webui/icons/flat-symbol.png +0 -0
- package/dist/webui/icons/linux/128x128/app-icon.png +0 -0
- package/dist/webui/icons/linux/16x16/app-icon.png +0 -0
- package/dist/webui/icons/linux/256x256/app-icon.png +0 -0
- package/dist/webui/icons/linux/32x32/app-icon.png +0 -0
- package/dist/webui/icons/linux/48x48/app-icon.png +0 -0
- package/dist/webui/icons/linux/512x512/app-icon.png +0 -0
- package/dist/webui/icons/linux/64x64/app-icon.png +0 -0
- package/dist/webui/icons/monochrome-mini.png +0 -0
- package/dist/webui/index.html +62 -0
- package/dist/webui/robots.txt +3 -0
- package/package.json +100 -70
- package/dist/chunk-Da8dvM5T.mjs +0 -1
- package/dist/cli.d.mts +0 -1016
- package/dist/cli.d.mts.map +0 -1
- package/dist/cli.mjs +0 -36
- package/dist/cli.mjs.map +0 -1
- package/dist/contentManager-8rmWJMb6.mjs +0 -22
- package/dist/contentManager-8rmWJMb6.mjs.map +0 -1
- package/dist/contentManager-Xt8N5psY.mjs +0 -1
- package/dist/dist-DZL34HNo.mjs +0 -8
- package/dist/dist-DZL34HNo.mjs.map +0 -1
- package/dist/dist-X_kVEzbK.mjs +0 -1
- package/dist/esm-8qfZdcpd.mjs +0 -33
- package/dist/esm-8qfZdcpd.mjs.map +0 -1
- package/dist/esm-BF5pvSbc.mjs +0 -1
- package/dist/esm-BbhxxeGF.mjs +0 -4
- package/dist/esm-BbhxxeGF.mjs.map +0 -1
- package/dist/index.d.mts +0 -1964
- package/dist/index.d.mts.map +0 -1
- package/dist/index.mjs +0 -21
- package/dist/index.mjs.map +0 -1
- package/dist/listContext7-DKXzgWdn.mjs +0 -2
- package/dist/listContext7-DKXzgWdn.mjs.map +0 -1
- package/dist/package-Cxx_VSyD.mjs +0 -2
- package/dist/package-Cxx_VSyD.mjs.map +0 -1
- package/dist/path-CuoiIaIe.mjs +0 -2
- package/dist/path-CuoiIaIe.mjs.map +0 -1
- package/dist/removeContext7-DOXrTXeI.mjs +0 -3
- package/dist/removeContext7-DOXrTXeI.mjs.map +0 -1
- package/dist/removeSkill-C-ehFexk.mjs +0 -5
- package/dist/removeSkill-C-ehFexk.mjs.map +0 -1
- package/dist/removeSkill-DWwhvzej.mjs +0 -1
- package/dist/runScript-Cr9RRN9y.mjs +0 -14
- package/dist/runScript-Cr9RRN9y.mjs.map +0 -1
- package/dist/search_format-DIs-1lKk.mjs +0 -5
- package/dist/search_format-DIs-1lKk.mjs.map +0 -1
- package/dist/shared-CFoY2Xhg.mjs +0 -2
- package/dist/shared-CFoY2Xhg.mjs.map +0 -1
- package/dist/skillMdManager-DP8fGZb7.mjs +0 -7
- package/dist/skillMdManager-DP8fGZb7.mjs.map +0 -1
- package/dist/unifiedSearch-CGZXw0NB.mjs +0 -1
- package/dist/unifiedSearch-l-lrSc9C.mjs +0 -4
- package/dist/unifiedSearch-l-lrSc9C.mjs.map +0 -1
- package/templates/SKILL.md +0 -41
- package/templates/SKILL.zh-CN.md +0 -297
- package/templates/skill-creator.md +0 -97
- package/templates/skill-creator.zh-CN.md +0 -100
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
var e={coding:{label:`Coding`,icon:`code`},writing:{label:`Writing`,icon:`pen`},data:{label:`Data`,icon:`database`},design:{label:`Design`,icon:`palette`},devops:{label:`DevOps`,icon:`server`},legal:{label:`Legal`,icon:`scale`},general:{label:`General`,icon:`box`}},t=[{id:`code-review`,name:`code-reviewer`,description:`Review code changes for bugs, style, security, and best practices before merge.`,category:`coding`,body:`## When to Use
|
|
2
|
+
|
|
3
|
+
Use this skill when reviewing pull requests, code diffs, or staged changes. Focus on {{focus_areas}}.
|
|
4
|
+
|
|
5
|
+
## Review Checklist
|
|
6
|
+
|
|
7
|
+
1. **Correctness**: Does the code do what it claims? Check edge cases.
|
|
8
|
+
2. **Security**: Look for injection, auth bypass, secrets in code.
|
|
9
|
+
3. **Performance**: N+1 queries, unnecessary re-renders, large allocations.
|
|
10
|
+
4. **Readability**: Clear naming, appropriate comments, DRY without over-abstraction.
|
|
11
|
+
|
|
12
|
+
## Output Format
|
|
13
|
+
|
|
14
|
+
\`\`\`
|
|
15
|
+
LGTM | Request Changes
|
|
16
|
+
- [issue severity] file:line — description
|
|
17
|
+
- suggestion: concrete fix
|
|
18
|
+
\`\`\`
|
|
19
|
+
|
|
20
|
+
## Context
|
|
21
|
+
|
|
22
|
+
- Language: {{language}}
|
|
23
|
+
- Framework: {{framework}}
|
|
24
|
+
- Team conventions: {{conventions}}`,placeholders:{focus_areas:`e.g. "security and performance"`,language:`e.g. TypeScript`,framework:`e.g. React`,conventions:`e.g. "use functional components, avoid any"`}},{id:`commit-writer`,name:`commit-writer`,description:`Generate clear, conventional commit messages from staged changes.`,category:`coding`,body:`## When to Use
|
|
25
|
+
|
|
26
|
+
Use this skill after staging changes, before committing. Analyze the diff and produce a commit message.
|
|
27
|
+
|
|
28
|
+
## Rules
|
|
29
|
+
|
|
30
|
+
1. Follow Conventional Commits: \`type(scope): description\`
|
|
31
|
+
2. Types: feat, fix, refactor, docs, test, chore, perf, ci
|
|
32
|
+
3. Description: imperative mood, lowercase, no period, max 72 chars
|
|
33
|
+
4. Body: explain *why*, not *what* (the diff shows what). Wrap at 80 chars.
|
|
34
|
+
5. Breaking change: add \`BREAKING CHANGE:\` footer.
|
|
35
|
+
|
|
36
|
+
## Example
|
|
37
|
+
|
|
38
|
+
\`\`\`
|
|
39
|
+
feat(auth): add OAuth2 token refresh middleware
|
|
40
|
+
|
|
41
|
+
Tokens expire after 1h. This adds automatic refresh on 401
|
|
42
|
+
responses, retrying the original request with the new token.
|
|
43
|
+
|
|
44
|
+
BREAKING CHANGE: authMiddleware now requires a tokenStore argument
|
|
45
|
+
\`\`\``},{id:`test-generator`,name:`test-generator`,description:`Generate unit and integration tests from source code or function signatures.`,category:`coding`,body:`## When to Use
|
|
46
|
+
|
|
47
|
+
Use this skill to generate comprehensive test suites for functions, classes, or API endpoints.
|
|
48
|
+
|
|
49
|
+
## Strategy
|
|
50
|
+
|
|
51
|
+
1. **Happy path**: the most common valid input → expected output.
|
|
52
|
+
2. **Edge cases**: empty/null/undefined, boundary values, extreme sizes.
|
|
53
|
+
3. **Error cases**: invalid input, missing fields, permission denied.
|
|
54
|
+
4. **Integration**: interaction with dependencies (mock external calls).
|
|
55
|
+
|
|
56
|
+
## Test Framework
|
|
57
|
+
|
|
58
|
+
{{test_framework}}
|
|
59
|
+
|
|
60
|
+
## Naming
|
|
61
|
+
|
|
62
|
+
\`describe('ModuleName') → it('should verb when condition')\``,placeholders:{test_framework:`e.g. Vitest / Jest / Pytest`}},{id:`doc-writer`,name:`api-doc-writer`,description:`Generate clear API documentation from code, types, or OpenAPI specs.`,category:`writing`,body:`## When to Use
|
|
63
|
+
|
|
64
|
+
Generate or improve API documentation from code annotations, TypeScript types, or OpenAPI/Swagger specs.
|
|
65
|
+
|
|
66
|
+
## Structure
|
|
67
|
+
|
|
68
|
+
For each endpoint:
|
|
69
|
+
1. **Method + Path**: \`GET /api/v1/resource/{id}\`
|
|
70
|
+
2. **Summary**: one sentence.
|
|
71
|
+
3. **Parameters**: name, type, required, description.
|
|
72
|
+
4. **Responses**: status code, schema, example.
|
|
73
|
+
5. **Errors**: common error codes and meanings.
|
|
74
|
+
|
|
75
|
+
## Tone
|
|
76
|
+
|
|
77
|
+
- Precise, no filler. Every sentence conveys a fact a developer needs.
|
|
78
|
+
- Use code blocks for examples, not prose.
|
|
79
|
+
- Link to related endpoints with relative paths.`},{id:`prd-writer`,name:`prd-writer`,description:`Draft Product Requirements Documents from feature descriptions or user stories.`,category:`writing`,body:`## When to Use
|
|
80
|
+
|
|
81
|
+
Transform a rough feature idea into a structured PRD for engineering, design, and stakeholders.
|
|
82
|
+
|
|
83
|
+
## PRD Sections
|
|
84
|
+
|
|
85
|
+
1. **Problem**: What user pain are we solving? Link to research/data.
|
|
86
|
+
2. **Goals / Non-goals**: What's in scope? What's explicitly out?
|
|
87
|
+
3. **User stories**: As a [role], I want [action], so that [benefit].
|
|
88
|
+
4. **Design**: UX flow, key screens, API changes, data model.
|
|
89
|
+
5. **Success metrics**: How do we know it worked? (adoption, retention, latency)
|
|
90
|
+
6. **Risks**: What could go wrong? Mitigation plan.
|
|
91
|
+
7. **Timeline**: Milestones, dependencies, launch plan.
|
|
92
|
+
|
|
93
|
+
## Context
|
|
94
|
+
|
|
95
|
+
- Product: {{product}}
|
|
96
|
+
- Target user: {{target_user}}`,placeholders:{product:`e.g. "Skill Creator desktop app"`,target_user:`e.g. "developers using Claude Code"`}},{id:`data-analyst`,name:`data-analyst`,description:`Analyze datasets, generate insights, create visualizations, and build reports.`,category:`data`,body:`## When to Use
|
|
97
|
+
|
|
98
|
+
Use this skill for exploratory data analysis, statistical summaries, trend detection, and report generation.
|
|
99
|
+
|
|
100
|
+
## Workflow
|
|
101
|
+
|
|
102
|
+
1. **Profile**: shape, dtypes, missing values, unique counts.
|
|
103
|
+
2. **Distribution**: describe, histograms, outliers.
|
|
104
|
+
3. **Relationships**: correlation matrix, group-by comparisons.
|
|
105
|
+
4. **Insights**: anomalies, trends, segments worth investigating.
|
|
106
|
+
5. **Visualize**: choose chart type by question (comparison→bar, trend→line, distribution→hist, part-of-whole→pie).
|
|
107
|
+
|
|
108
|
+
## Tools
|
|
109
|
+
|
|
110
|
+
- Primary: {{analysis_tool}}
|
|
111
|
+
- Visualization: {{viz_tool}}
|
|
112
|
+
|
|
113
|
+
## Output
|
|
114
|
+
|
|
115
|
+
A markdown report with embedded charts, key findings in bullet points, and recommended next steps.`,placeholders:{analysis_tool:`e.g. "pandas + Python"`,viz_tool:`e.g. "matplotlib / plotly"`}},{id:`design-system`,name:`design-system-helper`,description:`Enforce design system consistency: tokens, components, spacing, and accessibility.`,category:`design`,body:`## When to Use
|
|
116
|
+
|
|
117
|
+
Review UI code or designs for design system compliance. Catch inconsistencies in tokens, spacing, colors, typography.
|
|
118
|
+
|
|
119
|
+
## Checklist
|
|
120
|
+
|
|
121
|
+
1. **Tokens**: Use CSS variables / theme tokens, never hardcoded colors or sizes.
|
|
122
|
+
2. **Spacing**: Follow the 4px/8px grid. No arbitrary pixel values.
|
|
123
|
+
3. **Typography**: Use defined font scales. Check line-height and letter-spacing.
|
|
124
|
+
4. **Components**: Prefer existing components over custom HTML. If custom, document why.
|
|
125
|
+
5. **Accessibility**: WCAG AA contrast (4.5:1 text). Keyboard navigation. ARIA labels.
|
|
126
|
+
6. **Responsive**: Test at 360px, 768px, 1024px, 1440px breakpoints.
|
|
127
|
+
|
|
128
|
+
## Design System Reference
|
|
129
|
+
|
|
130
|
+
{{design_system_link}}`,placeholders:{design_system_link:`e.g. "https://design.company.com/tokens"`}},{id:`ci-pipeline`,name:`ci-pipeline-builder`,description:`Design and validate CI/CD pipelines for build, test, deploy workflows.`,category:`devops`,body:`## When to Use
|
|
131
|
+
|
|
132
|
+
Create or review CI/CD pipeline configurations (GitHub Actions, GitLab CI, Jenkins).
|
|
133
|
+
|
|
134
|
+
## Pipeline Stages
|
|
135
|
+
|
|
136
|
+
1. **Lint**: format check, type check, lint. Fast, runs on every push.
|
|
137
|
+
2. **Test**: unit + integration. Parallelize by module/service.
|
|
138
|
+
3. **Build**: compile, bundle, docker image. Cache dependencies.
|
|
139
|
+
4. **Security**: dependency scan, SAST, secret detection.
|
|
140
|
+
5. **Deploy**: staging on main merge, production on tag/release.
|
|
141
|
+
6. **Notify**: status to Slack/Teams, deployment summary.
|
|
142
|
+
|
|
143
|
+
## Best Practices
|
|
144
|
+
|
|
145
|
+
- Fail fast: lint before test, test before build.
|
|
146
|
+
- Cache: node_modules, Docker layers, build artifacts.
|
|
147
|
+
- Secrets: use CI secrets, never commit.
|
|
148
|
+
- Matrix: test across {{matrix_versions}}.
|
|
149
|
+
|
|
150
|
+
## Platform
|
|
151
|
+
|
|
152
|
+
{{ci_platform}}`,placeholders:{matrix_versions:`e.g. "Node 20, 22"`,ci_platform:`e.g. "GitHub Actions"`}},{id:`incident-response`,name:`incident-responder`,description:`Guide incident response: triage, mitigate, communicate, and postmortem.`,category:`devops`,body:`## When to Use
|
|
153
|
+
|
|
154
|
+
Active production incident. Follow this runbook to triage, stabilize, and document.
|
|
155
|
+
|
|
156
|
+
## Response Phases
|
|
157
|
+
|
|
158
|
+
### 1. Triage (first 5 min)
|
|
159
|
+
- Acknowledge alert. Assign Incident Commander (IC).
|
|
160
|
+
- Assess severity: SEV1 (down), SEV2 (degraded), SEV3 (minor).
|
|
161
|
+
- Open incident channel. Page on-call if needed.
|
|
162
|
+
|
|
163
|
+
### 2. Mitigate (next 30 min)
|
|
164
|
+
- Rollback recent deploys.
|
|
165
|
+
- Scale up resources.
|
|
166
|
+
- Disable problematic feature flags.
|
|
167
|
+
- **Do not fix root cause yet** — stabilize first.
|
|
168
|
+
|
|
169
|
+
### 3. Communicate
|
|
170
|
+
- Internal: incident channel every 15 min with status update.
|
|
171
|
+
- External: status page update for SEV1/SEV2.
|
|
172
|
+
|
|
173
|
+
### 4. Resolve & Postmortem
|
|
174
|
+
- Fix root cause.
|
|
175
|
+
- Write postmortem within 48h: timeline, impact, root cause, action items (with owners + dates).
|
|
176
|
+
- Schedule blameless review.
|
|
177
|
+
|
|
178
|
+
## escalation_policy
|
|
179
|
+
|
|
180
|
+
{{escalation_policy}}`,placeholders:{escalation_policy:`e.g. "Page @oncall-primary, then @oncall-secondary after 5 min"`}},{id:`compliance-check`,name:`compliance-checker`,description:`Review documents or code for regulatory compliance (GDPR, HIPAA, SOC2).`,category:`legal`,body:`## When to Use
|
|
181
|
+
|
|
182
|
+
Check that documents, data flows, or code meet regulatory requirements before review by legal counsel.
|
|
183
|
+
|
|
184
|
+
## Compliance Framework
|
|
185
|
+
|
|
186
|
+
{{framework}}
|
|
187
|
+
|
|
188
|
+
## Checklist
|
|
189
|
+
|
|
190
|
+
1. **Data minimization**: Only collect data you need. Document purpose for each field.
|
|
191
|
+
2. **Consent**: Explicit opt-in for sensitive data. Audit trail of consent.
|
|
192
|
+
3. **Access control**: Role-based access. Principle of least privilege. Audit logs.
|
|
193
|
+
4. **Encryption**: At rest (AES-256) and in transit (TLS 1.2+).
|
|
194
|
+
5. **Retention**: Defined retention period. Automated deletion.
|
|
195
|
+
6. **Right to erasure**: User can request data deletion. Process documented.
|
|
196
|
+
7. **Breach notification**: Process to notify within {{breach_window}}.
|
|
197
|
+
|
|
198
|
+
## Disclaimer
|
|
199
|
+
|
|
200
|
+
This skill provides a preliminary check. **All findings must be reviewed by qualified legal counsel.** This is not legal advice.`,placeholders:{framework:`e.g. "GDPR Article 5 & 32"`,breach_window:`e.g. "72 hours (GDPR)"`}},{id:`git-workflow`,name:`git-workflow-assistant`,description:`Guide git operations: branching, rebasing, conflict resolution, and cleanup.`,category:`coding`,body:`## When to Use
|
|
201
|
+
|
|
202
|
+
Help with complex git operations: interactive rebase, conflict resolution, branch management, history cleanup.
|
|
203
|
+
|
|
204
|
+
## Common Operations
|
|
205
|
+
|
|
206
|
+
### Rebase onto latest main
|
|
207
|
+
\`\`\`bash
|
|
208
|
+
git fetch origin
|
|
209
|
+
git rebase origin/main
|
|
210
|
+
# Resolve conflicts, then:
|
|
211
|
+
git rebase --continue
|
|
212
|
+
\`\`\`
|
|
213
|
+
|
|
214
|
+
### Squash commits before merge
|
|
215
|
+
\`\`\`bash
|
|
216
|
+
git rebase -i HEAD~3
|
|
217
|
+
# Change lines to "squash" or "fixup"
|
|
218
|
+
\`\`\`
|
|
219
|
+
|
|
220
|
+
### Resolve merge conflict
|
|
221
|
+
1. \`git status\` to see conflicted files.
|
|
222
|
+
2. Open each file, find \`<<<<<<<\` markers.
|
|
223
|
+
3. Choose/combine the changes.
|
|
224
|
+
4. \`git add <file>\` then \`git rebase --continue\` (or \`git merge --continue\`).
|
|
225
|
+
|
|
226
|
+
### Clean up branches
|
|
227
|
+
\`\`\`bash
|
|
228
|
+
git branch --merged main | grep -v main | xargs git branch -d
|
|
229
|
+
\`\`\`
|
|
230
|
+
|
|
231
|
+
## Branching Model
|
|
232
|
+
|
|
233
|
+
{{branching_model}}`,placeholders:{branching_model:`e.g. "trunk-based (main + short-lived feature branches)"`}},{id:`meeting-notes`,name:`meeting-summarizer`,description:`Transform meeting transcripts into structured notes with action items.`,category:`writing`,body:`## When to Use
|
|
234
|
+
|
|
235
|
+
Process meeting transcripts or notes into a clean, actionable summary.
|
|
236
|
+
|
|
237
|
+
## Output Structure
|
|
238
|
+
|
|
239
|
+
### Meeting: [Title]
|
|
240
|
+
**Date**: [date] | **Attendees**: [names] | **Duration**: [min]
|
|
241
|
+
|
|
242
|
+
### Summary (2-3 sentences)
|
|
243
|
+
What was discussed and why it matters.
|
|
244
|
+
|
|
245
|
+
### Decisions
|
|
246
|
+
- Decision 1 (proposed by X, agreed by all)
|
|
247
|
+
- Decision 2
|
|
248
|
+
|
|
249
|
+
### Action Items
|
|
250
|
+
| Task | Owner | Due | Status |
|
|
251
|
+
|------|-------|-----|--------|
|
|
252
|
+
| ... | ... | ... | pending |
|
|
253
|
+
|
|
254
|
+
### Discussion Notes
|
|
255
|
+
- Topic A: key points, dissenting opinions.
|
|
256
|
+
- Topic B: ...
|
|
257
|
+
|
|
258
|
+
### Next Meeting
|
|
259
|
+
[Date/agenda if decided]`}];export{e as n,t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{A as e,At as t,B as n,Ct as r,F as i,G as a,N as o,R as s,St as c,U as l,W as u,X as d,ct as f,ft as p,gt as m,kt as h,lt as g,m as _,mt as v,nt as y,o as b,ot as x,rt as S,s as C,st as w,x as T,z as E}from"./CmCJ0SKP.js";import{t as D}from"./BaH4uqzh.js";import"./xihTtKlq.js";import"./DLuJKUyD.js";import{t as O}from"./BkEnd9_Z.js";import{A as k,F as ee,M as te,P as A,_ as ne,a as j,b as M,d as N,j as P,m as re,t as ie}from"./BrDKAjtR.js";import"./D25cXQtk.js";import{i as F,n as ae,o as oe,r as se}from"./BD9g8Udg.js";import{n as ce,t as le}from"./Dl8eQ129.js";import{a as I,i as L,n as R}from"./CNPsST_i.js";import{t as ue}from"./BIfnT_mK.js";import{t as z}from"./Bs27XW8_.js";import{t as B}from"./D-V0xBeS.js";var V=new Set([`$$slots`,`$$events`,`$$legacy`]);function de(e,t){let n=b(t,V),r=[[`path`,{d:`M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5`}],[`path`,{d:`M3.22 13H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27`}]];O(e,C({name:`heart-pulse`},()=>n,{get iconNode(){return r}}))}var H=new Set([`$$slots`,`$$events`,`$$legacy`]);function fe(e,t){let n=b(t,H),r=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z`}]];O(e,C({name:`compass`},()=>n,{get iconNode(){return r}}))}var U=new Set([`$$slots`,`$$events`,`$$legacy`]);function W(e,t){let n=b(t,U),r=[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`}]];O(e,C({name:`folder`},()=>n,{get iconNode(){return r}}))}var pe=n(`<!> Import`,1),me=n(`<button class="flex w-full items-center gap-2 px-3 py-2 text-left transition-colors hover:bg-muted/50"><!> <span class="min-w-0 flex-1 truncate text-xs"> </span> <span class="shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground"> </span> <span class="shrink-0 text-[10px] text-muted-foreground"> </span></button>`),he=n(`<section aria-label="Recent agent sessions" class="space-y-1.5"><h2 class="text-xs font-medium uppercase tracking-wide text-muted-foreground">Continue</h2> <div class="divide-y divide-border rounded-lg border border-border"></div></section>`),ge=n(`<div class="flex items-start gap-3 rounded-lg border border-destructive/40 bg-destructive/10 p-4" role="alert"><!> <div class="min-w-0 flex-1"><p class="text-sm font-medium text-destructive">Couldn't load workspaces</p> <p class="mt-1 break-words text-xs text-destructive/90"> </p></div> <!></div>`),_e=n(`<div class="space-y-3" aria-label="Loading workspaces"><div class="h-24 animate-pulse rounded-lg border border-border bg-muted/50"></div> <div class="h-24 animate-pulse rounded-lg border border-border bg-muted/50"></div></div>`),ve=n(`<!> Import workspace`,1),ye=n(`<div class="rounded-lg border border-dashed border-border p-8 text-center"><!> <p class="mt-3 text-sm font-medium">No skill locations yet</p> <p class="mt-1 text-xs text-muted-foreground">Import a directory to manage its skills, or browse the global agent locations.</p> <!></div>`),be=n(`<p class="flex items-center gap-2 text-xs text-muted-foreground" role="status"><!> Updating…</p>`),xe=n(`<span class="text-[11px] text-muted-foreground">Not found on disk</span>`),Se=n(`<span class="block truncate font-mono text-[10px] text-muted-foreground"> </span>`),Ce=n(`<li><button class="flex min-h-11 w-full items-center justify-between gap-2 rounded-md border border-border/60 px-3 py-2 text-left transition-colors hover:bg-muted/50 disabled:pointer-events-none disabled:opacity-50"><span class="min-w-0"><span class="block truncate text-xs font-medium"> </span> <!></span> <!></button></li>`),we=n(`<section class="rounded-lg border border-border"><div class="flex items-center gap-2.5 border-b border-border px-4 py-3"><!> <div class="min-w-0 flex-1"><div class="flex items-center gap-2"><h2 class="truncate text-sm font-medium"> </h2> <!></div> <p class="mt-0.5 text-xs text-muted-foreground"> </p></div></div> <ul class="grid grid-cols-1 gap-2 p-3 sm:grid-cols-2"></ul></section>`),Te=n(`<!> Missing`,1),Ee=n(`<li><button class="flex min-h-9 items-center gap-1.5 rounded-full border border-border/60 px-2.5 py-1 text-xs transition-colors hover:bg-muted/50 disabled:pointer-events-none disabled:opacity-50"> <span class="tabular-nums text-muted-foreground"> </span></button></li>`),De=n(`<ul class="flex flex-wrap gap-1.5 border-t border-border/60 px-4 py-2.5"></ul>`),Oe=n(`<li><div class="flex items-center gap-2.5 px-4 py-3"><button class="flex min-h-11 min-w-0 flex-1 items-center gap-2.5 text-left"><!> <span class="min-w-0 flex-1"><span class="flex items-center gap-2"><span class="truncate text-sm font-medium"> </span> <!></span> <span class="mt-0.5 block truncate font-mono text-[10px] text-muted-foreground"> </span></span> <!></button> <!></div> <!></li>`),ke=n(`<section><h2 class="mb-2 text-xs font-medium uppercase tracking-wide text-muted-foreground">Imported workspaces</h2> <ul class="space-y-2"></ul></section>`),Ae=n(`<!> <!> <!>`,1),je=n(`<div class="flex h-full flex-col overflow-y-auto p-5"><header class="flex shrink-0 items-start justify-between gap-3 border-b border-border pb-4"><div><h1 class="text-lg font-semibold">Workspaces</h1> <p class="mt-0.5 text-xs text-muted-foreground">Your skill library, agent sessions, and quick ways to put both to work.</p></div> <div class="flex shrink-0 items-center gap-1.5"><!> <!></div></header> <div class="mx-auto mt-5 w-full max-w-3xl space-y-6"><section aria-label="Quick actions" class="grid grid-cols-1 gap-2 min-[560px]:grid-cols-2"><button class="flex items-start gap-2.5 rounded-lg border border-border bg-background p-3 text-left transition-colors hover:border-primary/50 hover:bg-primary/5"><!> <span class="min-w-0"><span class="block text-sm font-medium">Create a skill</span> <span class="block text-xs text-muted-foreground">Describe the task; the agent drafts the SKILL.md with best practices.</span></span></button> <button class="flex items-start gap-2.5 rounded-lg border border-border bg-background p-3 text-left transition-colors hover:border-primary/50 hover:bg-primary/5"><!> <span class="min-w-0"><span class="block text-sm font-medium">Health check my library</span> <span class="block text-xs text-muted-foreground">Duplicates, vague descriptions, stale skills — with proposed fixes.</span></span></button> <button class="flex items-start gap-2.5 rounded-lg border border-border bg-background p-3 text-left transition-colors hover:border-primary/50 hover:bg-primary/5"><!> <span class="min-w-0"><span class="block text-sm font-medium">Explore skill sources</span> <span class="block text-xs text-muted-foreground">Discover curated Git sources and analyze candidate skills.</span></span></button> <button class="flex items-start gap-2.5 rounded-lg border border-border bg-background p-3 text-left transition-colors hover:border-primary/50 hover:bg-primary/5"><!> <span class="min-w-0"><span class="block text-sm font-medium">Browse the library</span> <span class="block text-xs text-muted-foreground"> </span></span></button></section> <!> <div id="library-index" class="space-y-6"><!></div></div></div> <!>`,1);function G(n,u){r(u,!0);let b=m(()=>F.workspaces.filter(e=>e.kind===`global`)),C=m(()=>F.workspaces.filter(e=>e.kind===`directory`)),O=m(()=>F.workspaces.length>0),V=m(()=>F.loading&&d(O)),H=v(null),U=v(!1),G=v(!1);S(()=>{ae(),!j.loaded&&!j.loading&&N()});let Me=m(()=>{let e=0,t=0;for(let n of F.workspaces)for(let r of n.providers)t+=1,e+=r.skillCount??0;return{skills:e,providers:t,imported:F.workspaces.filter(e=>e.kind===`directory`).length}}),Ne=m(()=>j.sessions.slice(0,3));function Pe(e){re(e),ne(!0)}function Fe(e){let t=Date.now()-new Date(e).getTime();if(!Number.isFinite(t))return``;let n=Math.floor(t/6e4);if(n<1)return`just now`;if(n<60)return`${n}m ago`;let r=Math.floor(n/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}function Ie(e){p(H,e,!0),p(U,!0)}S(()=>{d(U)||p(H,null)});async function Le(){await ae()}function Re(e,t){return`/workspaces/${e.id===`~`?`%7E`:e.id}/${t.id}`}async function ze(){let e=d(H);if(e){p(G,!0);try{await se(e.id)&&(p(U,!1),R(`Removed ${e.label}. Files remain on disk.`))}catch(e){R(e instanceof Error?e.message:String(e))}finally{p(G,!1)}}}var Be=je(),K=w(Be),q=x(K),Ve=g(x(q),2),He=x(Ve);I(He,{variant:`ghost`,size:`icon`,class:`h-9 w-9`,title:`Refresh workspaces`,"aria-label":`Refresh workspaces`,get disabled(){return F.loading},onclick:()=>void Le(),children:(e,t)=>{var n=E(),r=w(n),i=e=>{L(e,{class:`h-4 w-4 animate-spin`})},a=e=>{ue(e,{class:`h-4 w-4`})};o(r,e=>{F.loading?e(i):e(a,-1)}),s(e,n)},$$slots:{default:!0}});var Ue=g(He,2);I(Ue,{size:`sm`,onclick:()=>A(),children:(e,t)=>{var n=pe(),r=w(n);P(r,{class:`h-4 w-4`}),h(),s(e,n)},$$slots:{default:!0}}),t(Ve),t(q);var We=g(q,2),J=x(We),Y=x(J),Ge=x(Y);ie(Ge,{class:`mt-0.5 h-4 w-4 shrink-0 text-primary`}),h(2),t(Y);var X=g(Y,2);de(x(X),{class:`mt-0.5 h-4 w-4 shrink-0 text-primary`}),h(2),t(X);var Z=g(X,2);fe(x(Z),{class:`mt-0.5 h-4 w-4 shrink-0 text-primary`}),h(2),t(Z);var Q=g(Z,2),Ke=x(Q);ee(Ke,{class:`mt-0.5 h-4 w-4 shrink-0 text-primary`});var qe=g(Ke,2),Je=g(x(qe),2),Ye=f(Je);t(qe),t(Q),t(J);var Xe=g(J,2),Ze=n=>{var r=he(),o=g(x(r),2);e(o,21,()=>d(Ne),e=>e.sessionId,(e,n)=>{var r=me(),o=x(r);k(o,{class:`h-3.5 w-3.5 shrink-0 text-muted-foreground`});var c=g(o,2),l=f(c,!0),u=g(c,2),p=f(u,!0),m=g(u,2),h=f(m,!0);t(r),y(e=>{i(l,d(n).title||`Untitled session`),i(p,d(n).mode),i(h,e)},[()=>Fe(d(n).createdAt)]),a(`click`,r,()=>Pe(d(n).sessionId)),s(e,r)}),t(o),t(r),s(n,r)};o(Xe,e=>{d(Ne).length>0&&e(Ze)});var $=g(Xe,2),Qe=x($),$e=e=>{var n=ge(),r=x(n);z(r,{class:`mt-0.5 h-4 w-4 shrink-0 text-destructive`});var a=g(r,2),o=g(x(a),2),c=f(o,!0);t(a);var u=g(a,2);I(u,{variant:`outline`,size:`sm`,onclick:()=>void Le(),children:(e,t)=>{h();var n=l(`Retry`);s(e,n)},$$slots:{default:!0}}),t(n),y(()=>i(c,F.error)),s(e,n)},et=e=>{var t=_e();s(e,t)},tt=e=>{var n=ye(),r=x(n);W(r,{class:`mx-auto h-8 w-8 text-muted-foreground`});var i=g(r,6);I(i,{class:`mt-4`,size:`sm`,onclick:()=>A(),children:(e,t)=>{var n=ve(),r=w(n);P(r,{class:`h-4 w-4`}),h(),s(e,n)},$$slots:{default:!0}}),t(n),s(e,n)},nt=n=>{var r=Ae(),c=w(r),u=e=>{var n=be(),r=x(n);L(r,{class:`h-3.5 w-3.5 animate-spin`}),h(),t(n),s(e,n)};o(c,e=>{d(V)&&e(u)});var p=g(c,2);e(p,17,()=>d(b),e=>e.id,(n,r)=>{let c=m(()=>d(r).available?d(r):null);var u=we(),p=x(u),v=x(p);te(v,{class:`h-4 w-4 shrink-0 text-primary`});var b=g(v,2),S=x(b),C=x(S),w=f(C,!0),T=g(C,2);B(T,{variant:`secondary`,class:`text-[10px]`,children:(e,t)=>{h();var n=l(`~ global`);s(e,n)},$$slots:{default:!0}}),t(S);var E=g(S,2),O=f(E);t(b),t(p);var k=g(p,2);e(k,21,()=>d(r).providers,e=>e.id,(e,n)=>{var u=Ce(),p=x(u),m=x(p),v=x(m),b=f(v,!0),S=g(v,2),C=e=>{var t=xe();s(e,t)},w=e=>{var t=Se(),r=f(t,!0);y(()=>i(r,d(n).path)),s(e,t)};o(S,e=>{d(n).available?d(n).path&&e(w,1):e(C)}),t(m);var T=g(m,2);B(T,{variant:`secondary`,class:`shrink-0 tabular-nums`,children:(e,t)=>{h();var r=l();y(()=>i(r,d(n).skillCount)),s(e,r)},$$slots:{default:!0}}),t(p),t(u),y(()=>{p.disabled=!d(c)||!d(n).available,_(p,`title`,d(n).path??d(n).label),i(b,d(n).label)}),a(`click`,p,()=>d(c)&&void D(Re(d(r),d(n)))),s(e,u)}),t(k),t(u),y(()=>{i(w,d(r).label),i(O,`${d(r).skillCount??``} skill${d(r).skillCount===1?``:`s`} across ${d(r).providers.length??``}
|
|
2
|
+
agent location${d(r).providers.length===1?``:`s`}`)}),s(n,u)});var v=g(p,2),S=n=>{var r=ke(),c=g(x(r),2);e(c,21,()=>d(C),e=>e.id,(n,r)=>{let c=m(()=>d(r).kind===`directory`?d(r):null);var u=Oe(),p=x(u),v=x(p),b=x(v);{let e=m(()=>d(r).available?`text-primary`:`text-destructive`);W(b,{get class(){return`h-4 w-4 shrink-0 ${d(e)??``}`}})}var S=g(b,2),C=x(S),E=x(C),O=f(E,!0),k=g(E,2),ee=e=>{B(e,{variant:`destructive`,class:`text-[10px]`,children:(e,t)=>{var n=Te(),r=w(n);z(r,{class:`h-3 w-3`}),h(),s(e,n)},$$slots:{default:!0}})};o(k,e=>{d(r).available||e(ee)}),t(C);var te=g(C,2),A=f(te,!0);t(S);var ne=g(S,2);B(ne,{variant:`secondary`,class:`shrink-0 tabular-nums`,children:(e,t)=>{h();var n=l();y(()=>i(n,d(r).skillCount)),s(e,n)},$$slots:{default:!0}}),t(v);var j=g(v,2),M=e=>{{let t=m(()=>`Remove ${d(r).label} registration`),n=m(()=>`Remove ${d(r).label}`);I(e,{variant:`ghost`,size:`icon`,class:`h-11 w-11 shrink-0 text-muted-foreground hover:text-destructive`,get title(){return d(t)},get"aria-label"(){return d(n)},onclick:()=>Ie(d(c)),children:(e,t)=>{le(e,{class:`h-4 w-4`})},$$slots:{default:!0}})}};o(j,e=>{d(c)&&e(M)}),t(p);var N=g(p,2),P=n=>{var o=De();e(o,21,()=>d(r).providers,e=>e.id,(e,n)=>{var o=Ee(),c=x(o),l=x(c),u=g(l),p=f(u,!0);t(c),t(o),y(()=>{c.disabled=!d(r).available||!d(n).available,i(l,`${d(n).label??``} `),i(p,d(n).skillCount)}),a(`click`,c,()=>d(r).available&&void D(Re(d(r),d(n)))),s(e,o)}),t(o),y(()=>_(o,`aria-label`,`Providers in ${d(r).label??``}`)),s(n,o)};o(N,e=>{d(r).providers.length>0&&e(P)}),t(u),y(()=>{T(u,1,`rounded-lg border border-border transition-colors ${d(r).available?`hover:border-foreground/20`:`border-destructive/40`}`),v.disabled=!d(r).available,i(O,d(r).label),i(A,d(r).path)}),a(`click`,v,()=>d(r).available&&void D(oe(d(r)))),s(n,u)}),t(c),t(r),s(n,r)};o(v,e=>{d(C).length>0&&e(S)}),s(n,r)};o(Qe,e=>{F.error?e($e):F.loading&&!d(O)?e(et,1):d(O)?e(nt,-1):e(tt,2)}),t($),t(We),t(K);var rt=g(K,2);{let e=m(()=>d(H)?`Remove ${d(H).label} from Skill Creator? Its files stay on disk; only the registration is deleted.`:``);ce(rt,{title:`Remove workspace registration`,get description(){return d(e)},confirmLabel:`Remove`,get busy(){return d(G)},onConfirm:()=>void ze(),get open(){return d(U)},set open(e){p(U,e,!0)}})}y(()=>i(Ye,`${d(Me).skills??``} skills across ${d(Me).providers??``} agent locations.`)),a(`click`,Y,()=>M(`create`,`I want to create a new skill. It should help me `)),a(`click`,X,()=>M(`manage`,`Audit my skill library: find duplicates, vague descriptions, and stale skills, then propose concrete fixes.`)),a(`click`,Z,()=>void D(`/repository`)),a(`click`,Q,()=>document.getElementById(`library-index`)?.scrollIntoView({behavior:`smooth`})),s(n,Be),c()}u([`click`]);export{G as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,Q as t,X as n,Z as r,ft as i,mt as a,r as o,t as s,vt as c}from"./CmCJ0SKP.js";var l=class{constructor(e,t){this.status=e,this.body=typeof t==`string`?{message:t}:t||{message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}},u=class{constructor(e,t){try{new Headers({location:t})}catch{throw Error(`Invalid redirect location ${JSON.stringify(t)}: this string contains characters that cannot be used in HTTP headers`)}this.status=e,this.location=t}},d=class extends Error{constructor(e,t,n){super(n),this.status=e,this.text=t}};new URL(`sveltekit-internal://`);function f(e,t){return e===`/`||t===`ignore`?e:t===`never`?e.endsWith(`/`)?e.slice(0,-1):e:t===`always`&&!e.endsWith(`/`)?e+`/`:e}function p(e){return e.split(`%25`).map(decodeURI).join(`%25`)}function ee(e){for(let t in e)e[t]=decodeURIComponent(e[t]);return e}function m({href:e}){return e.split(`#`)[0]}function h(){}function g(...e){let t=5381;for(let n of e)if(typeof n==`string`){let e=n.length;for(;e;)t=t*33^n.charCodeAt(--e)}else if(ArrayBuffer.isView(n)){let e=new Uint8Array(n.buffer,n.byteOffset,n.byteLength),r=e.length;for(;r;)t=t*33^e[--r]}else throw TypeError(`value must be a string or TypedArray`);return(t>>>0).toString(36)}new TextEncoder;function _(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}var te=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||`GET`)!==`GET`&&v.delete(b(e)),te(e,t));var v=new Map;function y(e,t){let n=b(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:e,...t}=JSON.parse(r.textContent);r.getAttribute(`data-b64`)!==null&&(e=_(e));let i=r.getAttribute(`data-ttl`);return i&&v.set(n,{body:e,init:t,ttl:1e3*Number(i)}),Promise.resolve(new Response(e,t))}return window.fetch(e,t)}function ne(e,t,n){if(v.size>0){let t=b(e,n),r=v.get(t);if(r){if(performance.now()<r.ttl&&[`default`,`force-cache`,`only-if-cached`,void 0].includes(n?.cache))return new Response(r.body,r.init);v.delete(t)}}return window.fetch(t,n)}function b(e,t){let n=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){let e=[];t.headers&&e.push([...new Headers(t.headers)].join(`,`)),t.body&&(typeof t.body==`string`||ArrayBuffer.isView(t.body))&&e.push(t.body),n+=`[data-hash="${g(...e)}"]`}return n}var re=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/,ie=/^\/\((?:[^)]+)\)$/;function ae(e){let t=[];return{pattern:e===`/`||ie.test(e)?/^\/$/:RegExp(`^${se(e).map(e=>{let n=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(e);if(n)return t.push({name:n[1],matcher:n[2],optional:!1,rest:!0,chained:!0}),`(?:/([^]*))?`;let r=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(e);if(r)return t.push({name:r[1],matcher:r[2],optional:!0,rest:!1,chained:!0}),`(?:/([^/]+))?`;if(!e)return;let i=e.split(/\[(.+?)\](?!\])/);return`/`+i.map((e,n)=>{if(n%2){if(e.startsWith(`x+`))return le(String.fromCharCode(parseInt(e.slice(2),16)));if(e.startsWith(`u+`))return le(String.fromCharCode(...e.slice(2).split(`-`).map(e=>parseInt(e,16))));let[,r,a,o,s]=re.exec(e);return t.push({name:o,matcher:s,optional:!!r,rest:!!a,chained:a?n===1&&i[0]===``:!1}),a?`([^]*?)`:r?`([^/]*)?`:`([^/]+?)`}return le(e)}).join(``)}).join(``)}/?$`),params:t}}function oe(e){return e!==``&&!/^\([^)]+\)$/.test(e)}function se(e){return e.slice(1).split(`/`).filter(oe)}function ce(e,t,n){let r={},i=e.slice(1),a=i.filter(e=>e!==void 0),o=0;for(let e=0;e<t.length;e+=1){let s=t[e],c=i[e-o];if(s.chained&&s.rest&&o&&(c=i.slice(e-o,e+1).filter(e=>e).join(`/`),o=0),c===void 0){if(s.rest)c=``;else continue}if(!s.matcher||n[s.matcher](c)){r[s.name]=c;let n=t[e+1],l=i[e+1];n&&!n.rest&&n.optional&&l&&s.chained&&(o=0),!n&&!l&&Object.keys(r).length===a.length&&(o=0);continue}if(s.optional&&s.chained){o++;continue}return}if(!o)return r}function le(e){return e.normalize().replace(/[[\]]/g,`\\$&`).replace(/%/g,`%25`).replace(/\//g,`%2[Ff]`).replace(/\?/g,`%3[Ff]`).replace(/#/g,`%23`).replace(/[.*+?^${}()|\\]/g,`\\$&`)}function ue({nodes:e,server_loads:t,dictionary:n,matchers:r}){let i=new Set(t);return Object.entries(n).map(([t,[n,i,s]])=>{let{pattern:c,params:l}=ae(t),u={id:t,exec:e=>{let t=c.exec(e);if(t)return ce(t,l,r)},errors:[1,...s||[]].map(t=>e[t]),layouts:[0,...i||[]].map(o),leaf:a(n)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function a(t){let n=t<0;return n&&(t=~t),[n,e[t]]}function o(t){return t===void 0?t:[i.has(t),e[t]]}}function de(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function fe(e,t,n=JSON.stringify){let r=n(t);try{sessionStorage[e]=r}catch{}}var x=globalThis.__sveltekit_l3qipc?.base??``,pe=globalThis.__sveltekit_l3qipc?.assets??x??``,me=`1789354902856`,he=`sveltekit:snapshot`,ge=`sveltekit:scroll`,_e=`sveltekit:states`,ve=`sveltekit:pageurl`,S=`sveltekit:history`,C=`sveltekit:navigation`,w={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},T=location.origin;function ye(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){let e=document.getElementsByTagName(`base`);t=e.length?e[0].href:document.URL}return new URL(e,t)}function E(){return{x:pageXOffset,y:pageYOffset}}function D(e,t){return e.getAttribute(`data-sveltekit-${t}`)}var be={...w,"":w.hover};function xe(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function Se(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()===`A`&&e.hasAttribute(`href`))return e;e=xe(e)}}function Ce(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){let e=location.hash.split(`#`)[1]||`/`;r.hash=`#${e}${r.hash}`}}catch{}let i=e instanceof SVGAElement?e.target.baseVal:e.target,a=!r||!!i||k(r,t,n)||(e.getAttribute(`rel`)||``).split(/\s+/).includes(`external`),o=r?.origin===T&&e.hasAttribute(`download`);return{url:r,external:a,target:i,download:o}}function O(e){let t=null,n=null,r=null,i=null,a=null,o=null,s=e;for(;s&&s!==document.documentElement;)r===null&&(r=D(s,`preload-code`)),i===null&&(i=D(s,`preload-data`)),t===null&&(t=D(s,`keepfocus`)),n===null&&(n=D(s,`noscroll`)),a===null&&(a=D(s,`reload`)),o===null&&(o=D(s,`replacestate`)),s=xe(s);function c(e){switch(e){case``:case`true`:return!0;case`off`:case`false`:return!1;default:return}}return{preload_code:be[r??`off`],preload_data:be[i??`off`],keepfocus:c(t),noscroll:c(n),reload:c(a),replace_state:c(o)}}function we(e){let t=c(e),n=!0;function r(){n=!0,t.update(e=>e)}function i(e){n=!1,t.set(e)}function a(e){let r;return t.subscribe(t=>{(r===void 0||n&&t!==r)&&e(r=t)})}return{notify:r,set:i,subscribe:a}}var Te={v:h};function Ee(){let{set:e,subscribe:t}=c(!1),n;async function r(){clearTimeout(n);try{let t=await fetch(`${pe}/_app/version.json`,{headers:{pragma:`no-cache`,"cache-control":`no-cache`}});if(!t.ok)return!1;let r=(await t.json()).version!==me;return r&&(e(!0),Te.v(),clearTimeout(n)),r}catch{return!1}}return{subscribe:t,check:r}}function k(e,t,n){return e.origin!==T||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function De(e){}var Oe=2**32-1-1,ke=Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);function Ae(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Object.getPrototypeOf(t)===null||Object.getOwnPropertyNames(t).sort().join(`\0`)===ke}function je(e){return Object.prototype.toString.call(e).slice(8,-1)}function Me(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.getOwnPropertyDescriptor(e,t).enumerable)}function Ne(e){return!(!Number.isInteger(e)||e<0||e>Oe)}function Pe(e){if(e.length===0||e.length>1&&e.charCodeAt(0)===48)return!1;for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<48||n>57)return!1}return Ne(+e)}function Fe(e){for(var t=e.length-1;t>=0&&!Pe(e[t]);t--);return t+1}function Ie(e){let t=Object.keys(e);return t.length=Fe(t),t}Uint8Array.fromBase64,typeof process==`object`&&process.versions?.node;var Le=Object.freeze({kind:`not-plain`}),Re=Object.freeze({kind:`symbol-keys`});Object.freeze({identify:e=>e,typeOf:e=>e===null?`null`:typeof e,toPrimitive:e=>e,tagOf:e=>je(e),isThenable:e=>typeof e.then==`function`,toPromise:e=>Promise.resolve(e),unbox:e=>e.valueOf(),toISOString:e=>isNaN(e.getDate())?``:e.toISOString(),toStringValue:e=>e.toString(),regExpInfo:e=>({source:e.source,flags:e.flags}),valuesOf:e=>e,entriesOf:e=>e,viewInfo:e=>({buffer:e.buffer,byteOffset:e.byteOffset,byteLength:e.byteLength,length:e.length,bufferByteLength:e.buffer.byteLength}),toArrayBuffer:e=>e,lengthOf:e=>e.length,hasOwn:(e,t)=>Object.hasOwn(e,t),indicesOf:e=>Ie(e),shapeOf:e=>Ae(e)?Me(e).length>0?Re:{kind:Object.getPrototypeOf(e)===null?`null-proto`:`plain`,keys:Object.keys(e)}:Le,get:(e,t)=>e[t]}),Object.freeze({fromPrimitive:e=>e,fromISOString:e=>new Date(e),fromStringValue:(e,t)=>e===`URL`?new URL(t):e===`URLSearchParams`?new URLSearchParams(t):Temporal[e.slice(9)].from(t),fromArrayBuffer:e=>e,fromRegExpInfo:(e,t)=>new RegExp(e,t),fromViewInfo:(e,t,n,r)=>{let i=globalThis[e];return n===void 0?new i(t):new i(t,n,r)},box:e=>Object(e),createArray:e=>Array(e),createSparseArray:e=>{let t=[];return t[Oe]=void 0,delete t[Oe],t.length=e,t},createObject:()=>({}),createNullPrototypeObject:()=>Object.create(null),createSet:()=>new Set,createMap:()=>new Map,set:(e,t,n)=>{e[t]=n},addValue:(e,t)=>{e.add(t)},addEntry:(e,t,n)=>{e.set(t,n)}});var ze=new Set([`load`,`prerender`,`csr`,`ssr`,`trailingSlash`,`config`]);[...ze],[...new Set([...ze])];function Be(e){return e.filter(e=>e!=null)}function A(e,t){return e+`/`+t}function Ve(e){return e instanceof l||e instanceof d?e.status:500}function He(e){return e instanceof d?e.text:`Internal Error`}var j,M,Ue,We=o.toString().includes(`$$`)||/function \w+\(\) \{\}/.test(o.toString()),Ge=`a:`;We?(j={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(Ge)},M={current:null},Ue={current:!1}):(j=new class{#e=a({});get data(){return n(this.#e)}set data(e){i(this.#e,e)}#t=a(null);get form(){return n(this.#t)}set form(e){i(this.#t,e)}#n=a(null);get error(){return n(this.#n)}set error(e){i(this.#n,e)}#r=a({});get params(){return n(this.#r)}set params(e){i(this.#r,e)}#i=a({id:null});get route(){return n(this.#i)}set route(e){i(this.#i,e)}#a=a({});get state(){return n(this.#a)}set state(e){i(this.#a,e)}#o=a(-1);get status(){return n(this.#o)}set status(e){i(this.#o,e)}#s=a(new URL(Ge));get url(){return n(this.#s)}set url(e){i(this.#s,e)}},M=new class{#e=a(null);get current(){return n(this.#e)}set current(e){i(this.#e,e)}},Ue=new class{#e=a(!1);get current(){return n(this.#e)}set current(e){i(this.#e,e)}},Te.v=()=>Ue.current=!0);function Ke(e){Object.assign(j,e)}var{onMount:qe,tick:Je}=s,Ye=e??(e=>e()),Xe=new Set([`icon`,`shortcut icon`,`apple-touch-icon`]),N=null,P=de(`sveltekit:scroll`)??{},F=de(`sveltekit:snapshot`)??{},I={url:we({}),page:we({}),navigating:c(null),updated:Ee()};function Ze(e){P[e]=E()}function Qe(e,t){let n=e+1;for(;P[n];)delete P[n],n+=1;for(n=t+1;F[n];)delete F[n],n+=1}function L(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(h)}async function $e(){if(`serviceWorker`in navigator){let e=await navigator.serviceWorker.getRegistration(x||`/`);e&&await e.update()}}var et,tt,R,z,nt,B,rt={},it={},at=[],ot=[],V=null;function st(){V?.fork?.then(e=>e?.discard()),V=null,Q={element:void 0,href:void 0}}var ct=new Map,lt=new Set,ut=new Set,H=new Set,U={branch:[],error:null,url:null,nav:null},dt=!1,W=!1,ft=!0,G=!1,K=!1,pt=!1,mt=!1,ht,q,J,Y,gt=new Set,_t=new Map,vt=new Map;async function yt(e,t,n){if(globalThis.__sveltekit_l3qipc.data){let{q:e={},p:t={},l:n={},f:r={}}=globalThis.__sveltekit_l3qipc.data;for(let t in e)rt[t]=e[t];for(let e in n)rt[e]=n[e];for(let e in r)rt[e]=r[e];for(let e in t)it[e]=t[e]}document.URL!==location.href&&(location.href=location.href),B=e,await e.hooks.init?.(),et=ue(e),z=document.documentElement,nt=t,tt=e.nodes[0],R=e.nodes[1],tt(),R(),q=history.state?.[S],J=history.state?.[C],q||(q=J=Date.now(),history.replaceState({...history.state,[S]:q,[C]:J},``));let r=P[q];function i(){r&&(history.scrollRestoration=`manual`,scrollTo(r.x,r.y))}n?(i(),await Jt(nt,n)):(await Z({type:`enter`,url:ye(B.hash?en(new URL(location.href)):location.href),replace_state:!0}),i()),qt()}function bt(){at.length=0,mt=!1}function xt(e){ot.some(e=>e?.snapshot)&&(F[e]=ot.map(e=>e?.snapshot?.capture()))}function St(e){F[e]?.forEach((e,t)=>{ot[t]?.snapshot?.restore(e)})}function Ct(){Ze(q),fe(ge,P),xt(J),fe(he,F)}async function wt(e,n,r,i){let a,o;n.invalidateAll&&st(),await Z({type:`goto`,url:ye(e),keepfocus:n.keepFocus,noscroll:n.noScroll,replace_state:n.replaceState,state:n.state,redirect_count:r,nav_token:i,accept:()=>{if(n.invalidateAll){mt=!0,a=new Set;for(let[e,t]of _t)for(let[n,r]of t)r.resource?.reset(),a.add(A(e,n));o=new Set;for(let[e,t]of vt)for(let n of t.keys())o.add(A(e,n))}n.invalidate&&n.invalidate.forEach(Gt)}}),n.invalidateAll&&t().then(t).then(()=>{for(let[e,t]of _t)for(let[n,{resource:r}]of t)a?.has(A(e,n))&&r.start();for(let[e,t]of vt)for(let[n,{resource:r}]of t)o?.has(A(e,n))&&r.reconnect()})}async function Tt(e){if(e.id!==V?.id){st();let t={};gt.add(t),V={id:e.id,token:t,promise:Ft({...e,preload:t}).then(e=>(gt.delete(t),e.type===`loaded`&&e.state.error&&st(),e)),fork:null}}return V.promise}async function Et(e){let t=(await zt(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(e=>e[1]()))}async function Dt(e,t,n){let r={params:U.params,route:{id:U.route?.id??null},url:new URL(location.href)};if(U={...e.state,nav:r},Ke(e.props.page),ht=new B.root({target:t,props:{...e.props,stores:I,components:ot},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),n){let e={from:null,to:{...r,scroll:P[q]??E()},willUnload:!1,type:`enter`,complete:Promise.resolve()};H.forEach(t=>t(e))}St(J),W=!0}async function Ot({url:e,params:t,branch:n,errors:r,status:i,error:a,route:o,form:s}){let c=`never`;if(x&&(e.pathname===x||e.pathname===x+`/`))c=`always`;else for(let e of n)e?.slash!==void 0&&(c=e.slash);e.pathname=f(e.pathname,c),e.search=e.search;let l={type:`loaded`,state:{url:e,params:t,branch:n,error:a,route:o},props:{constructors:Be(n).map(e=>e.node.component),page:$t(j)}};s!==void 0&&(l.props.form=s);let u={},d=!j,p=0;for(let e=0;e<Math.max(n.length,U.branch.length);e+=1){let t=n[e],r=U.branch[e];t?.data!==r?.data&&(d=!0),t&&(u={...u,...t.data},d&&(l.props[`data_${p}`]=u),p+=1)}return(!U.url||e.href!==U.url.href||U.error!==a||s!==void 0&&s!==j.form||d)&&(l.props.page={error:a,params:t,route:{id:o?.id??null},state:{},status:i,url:new URL(e),form:s??null,data:d?u:j.data}),l}async function kt({loader:e,parent:t,url:n,params:r,route:i,server_data_node:a}){let o={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},s=await e();return{node:s,loader:e,server:a,universal:s.universal?.load?{type:`data`,data:null,uses:o}:null,data:a?.data??null,slash:s.universal?.trailingSlash??a?.slash}}function At(e,t,n){let r=e instanceof Request?e.url:e,i=new URL(r,n);return i.origin===n.origin&&(r=i.href.slice(n.origin.length)),{resolved:i,promise:W?ne(r,i.href,t):y(r,t)}}function jt(e,t,n,r,i,a){if(mt)return!0;if(!i)return!1;if(i.parent&&e||i.route&&t||i.url&&n)return!0;for(let e of i.search_params)if(r.has(e))return!0;for(let e of i.params)if(a[e]!==U.params[e])return!0;for(let e of i.dependencies)if(at.some(t=>t(new URL(e))))return!0;return!1}function Mt(e,t){return e?.type===`data`?e:e?.type===`skip`?t??null:null}function Nt(e,t){if(!e)return new Set(t.searchParams.keys());let n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(let r of n){let i=e.searchParams.getAll(r),a=t.searchParams.getAll(r);i.every(e=>a.includes(e))&&a.every(e=>i.includes(e))&&n.delete(r)}return n}function Pt({error:e,url:t,route:n,params:r}){return{type:`loaded`,state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:$t(j),constructors:[]}}}async function Ft({id:e,invalidating:t,url:n,params:r,route:i,preload:a}){if(V?.id===e)return gt.delete(V.token),V.promise;let{errors:o,layouts:s,leaf:c}=i,d=[...s,c];o.forEach(e=>e?.().catch(h)),d.forEach(e=>e?.[1]().catch(h));let f=U.url?e!==X(U.url):!1,p=U.route?i.id!==U.route.id:!1,ee=Nt(U.url,n),m=!1,g=d.map(async(e,t)=>{if(!e)return;let a=U.branch[t];return e[1]===a?.loader&&!jt(m,p,f,ee,a.universal?.uses,r)?a:(m=!0,kt({loader:e[1],url:n,params:r,route:i,parent:async()=>{let e={};for(let n=0;n<t;n+=1)Object.assign(e,(await g[n])?.data);return e},server_data_node:Mt(e[0]?{type:`skip`}:null,e[0]?a?.server:void 0)}))});for(let e of g)e.catch(h);let _=[];for(let e=0;e<d.length;e+=1)if(d[e])try{_.push(await g[e])}catch(t){if(t instanceof u)return{type:`redirect`,location:t.location};if(a&>.has(a))return Pt({error:await $(t,{params:r,url:n,route:{id:i.id}}),url:n,params:r,route:i});let s=Ve(t),c;if(t instanceof l)c=t.body;else{if(await I.updated.check())return await $e(),await L(n);c=await $(t,{params:r,url:n,route:{id:i.id}})}let d=await It(e,_,o);return d?Ot({url:n,params:r,branch:_.slice(0,d.idx).concat(d.node),errors:o,status:s,error:c,route:i}):await Ht(n,{id:i.id},c,s)}else _.push(void 0);return Ot({url:n,params:r,branch:_,errors:o,status:200,error:null,route:i,form:t?void 0:null})}async function It(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)--r;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function Lt({status:e,error:t,url:n,route:r}){let i={};try{return Ot({url:n,params:i,branch:[await kt({loader:tt,url:n,params:i,route:r,parent:()=>Promise.resolve({}),server_data_node:Mt(null)}),{node:await R(),loader:R,universal:null,server:null,data:null}],status:e,error:t,errors:[],route:null})}catch(t){if(t instanceof u){await wt(new URL(t.location,location.href),{},0);return}let a=await B.get_error_template(),o=await $(t,{url:n,params:i,route:r}),s=a({status:e,message:String(o?.message??``).replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`)}),c=new DOMParser().parseFromString(s,`text/html`);throw document.documentElement.replaceChild(document.adoptNode(c.head),document.head),document.documentElement.replaceChild(document.adoptNode(c.body),document.body),t}}async function Rt(e){let t=e.href;if(ct.has(t))return ct.get(t);let n;try{let r=(async()=>{let t=await B.hooks.reroute({url:new URL(e),fetch:async(t,n)=>At(t,n,e).promise})??e;if(typeof t==`string`){let n=new URL(e);B.hash?n.hash=t:n.pathname=t,t=n}return t})();ct.set(t,r),n=await r}catch{ct.delete(t);return}return n}async function zt(e,t){if(e&&!k(e,x,B.hash)){let n=await Rt(e);if(!n)return;let r=Bt(n);for(let n of et){let i=n.exec(r);if(i)return{id:X(e),invalidating:t,route:n,params:ee(i),url:e}}}}function Bt(e){return p(B.hash?e.hash.replace(/^#/,``).replace(/[?#].+/,``):e.pathname.slice(x.length))||`/`}function X(e){return(B.hash?e.hash.replace(/^#/,``):e.pathname)+e.search}function Vt({url:e,type:t,intent:n,delta:r,event:i,scroll:a}){let o=!1,s=Qt(U,n,e,t,a??null);r!==void 0&&(s.navigation.delta=r),i!==void 0&&(s.navigation.event=i);let c={...s.navigation,cancel:()=>{o=!0,s.reject(Error(`navigation cancelled`))}};return G||lt.forEach(e=>e(c)),o?null:s}async function Z({type:e,url:n,popped:i,keepfocus:a,noscroll:o,replace_state:s,state:c={},redirect_count:l=0,nav_token:u={},accept:f=h,block:p=h,event:ee}){let m=Y;Y=u;let g=await zt(n,!1),_=e===`enter`?Qt(U,g,n,e):Vt({url:n,type:e,delta:i?.delta,intent:g,scroll:i?.scroll,event:ee});if(!_){p(),Y===u&&(Y=m);return}let te=q,v=J;f(),G=!0,W&&_.navigation.type!==`enter`&&I.navigating.set(M.current=_.navigation);let y=g&&await Ft(g);if(!y){if(k(n,x,B.hash))return await L(n,s);y=await Ht(n,{id:null},await $(new d(404,`Not Found`,`Not found: ${n.pathname}`),{url:n,params:{},route:{id:null}}),404,s)}if(n=g?.url||n,Y!==u){_.reject(Error(`navigation aborted`));return}if(!y)return;if(y.type===`redirect`){if(l<20){await Z({type:e,url:new URL(y.location,n),popped:i,keepfocus:a,noscroll:o,replace_state:s,state:c,redirect_count:l+1,nav_token:u}),_.fulfil(void 0);return}if(y=await Lt({status:500,error:await $(Error(`Redirect loop`),{url:n,params:{},route:{id:null}}),url:n,route:{id:null}}),!y)return}else if(y.props.page.status>=400&&await I.updated.check())return await $e(),await L(n,s);if(bt(),Ze(te),xt(v),y.props.page.url.pathname!==n.pathname&&(n.pathname=y.props.page.url.pathname),c=i?i.state:c,!i){let e=+!s,t={[S]:q+=e,[C]:J+=e,[_e]:c};(s?history.replaceState:history.pushState).call(history,t,``,n),s||Qe(q,J)}let ne=g&&V?.id===g.id?V.fork:null;V?.fork&&!ne?st():(V=null,Q={element:void 0,href:void 0}),y.props.page.state=c;let b;if(W){let e=(await Promise.all(Array.from(ut,e=>e(_.navigation)))).filter(e=>typeof e==`function`);if(e.length>0){function t(){e.forEach(e=>{H.delete(e)})}e.push(t),e.forEach(e=>{H.add(e)})}let t=_.navigation.to;U={...y.state,nav:{params:t.params,route:t.route,url:t.url}},y.props.page&&(y.props.page.url=n),!a&&document.activeElement instanceof HTMLElement&&document.activeElement!==document.body&&document.activeElement.blur();let i=ne&&await ne;i?b=i.commit():(N=null,ht.$set(y.props),N&&Object.assign(y.props.page,N),Ke(y.props.page),b=r?.()),pt=!0}else await Dt(y,nt,!1);let{activeElement:re}=document;if(await b,await t(),await t(),Y!==u){_.reject(Error(`navigation aborted`));return}y.props.page&&N&&Object.assign(y.props.page,N);let ie=null;if(ft){let e=i?i.scroll:o?E():null;e?scrollTo(e.x,e.y):(ie=n.hash&&document.getElementById(tn(n)))?ie.scrollIntoView():scrollTo(0,0)}let ae=document.activeElement!==re&&document.activeElement!==document.body;!a&&!ae&&Zt(n,!ie),ft=!0,G=!1,_.fulfil(void 0),_.navigation.to&&(_.navigation.to.scroll=E()),H.forEach(e=>e(_.navigation)),e===`popstate`&&St(J),I.navigating.set(M.current=null)}async function Ht(e,t,n,r,i){return e.origin===T&&e.pathname===location.pathname&&!dt?await Lt({status:r,error:n,url:e,route:t}):await L(e,i)}var Q={element:void 0,href:void 0};function Ut(){let e,t;z.addEventListener(`mousemove`,t=>{let n=t.target;clearTimeout(e),e=setTimeout(()=>{i(n,w.hover)},20)});function n(e){e.defaultPrevented||i(e.composedPath()[0],w.tap)}z.addEventListener(`mousedown`,n),z.addEventListener(`touchstart`,n,{passive:!0});let r=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&(Et(new URL(t.target.href)),r.unobserve(t.target))},{threshold:0});async function i(e,n){let r=Se(e,z),i=r===Q.element&&r?.href===Q.href&&n>=t;if(!r||i)return;let{url:a,external:o,download:s}=Ce(r,x,B.hash);if(o||s)return;let c=O(r),l=a&&X(U.url)===X(a);if(!(c.reload||l)){if(n<=c.preload_data){Q={element:r,href:r.href},t=w.tap;let e=await zt(a,!1);if(!e)return;Tt(e)}else n<=c.preload_code&&(Q={element:r,href:r.href},t=n,Et(a))}}function a(){r.disconnect();for(let e of z.querySelectorAll(`a`)){let{url:t,external:n,download:i}=Ce(e,x,B.hash);if(n||i)continue;let a=O(e);a.reload||(a.preload_code===w.viewport&&r.observe(e),a.preload_code===w.eager&&Et(t))}}H.add(a),a()}function $(e,t){if(e instanceof l)return e.body;let n=Ve(e),r=He(e);return B.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function Wt(e,t={}){return e=new URL(ye(e)),e.origin===T?wt(e,t,0):Promise.reject(Error(`goto: invalid URL`))}function Gt(e){if(typeof e==`function`)at.push(e);else{let{href:t}=new URL(e,location.href);at.push(e=>e.href===t)}}function Kt(e,t){let n={[S]:q,[C]:J,[ve]:j.url.href,[_e]:t};history.replaceState(n,``,ye(e)),j.state=t,ht.$set({page:Ye(()=>$t(j))})}function qt(){history.scrollRestoration=`manual`,addEventListener(`beforeunload`,e=>{let t=!1;if(Ct(),!G){let e=Qt(U,void 0,null,`leave`),n={...e.navigation,cancel:()=>{t=!0,e.reject(Error(`navigation cancelled`))}};lt.forEach(e=>e(n))}t?(e.preventDefault(),e.returnValue=``):history.scrollRestoration=`auto`}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&Ct()}),navigator.connection?.saveData||Ut(),z.addEventListener(`click`,async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;let n=Se(t.composedPath()[0],z);if(!n)return;let{url:r,external:i,target:a,download:o}=Ce(n,x,B.hash);if(!r)return;if(a===`_parent`||a===`_top`){if(window.parent!==window)return}else if(a&&a!==`_self`)return;let s=O(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&r.protocol!==`https:`&&r.protocol!==`http:`||o)return;let[c,l]=(B.hash?r.hash.replace(/^#/,``):r.href).split(`#`),u=c===m(location);if(i||s.reload&&(!u||!l)){Vt({url:r,type:`link`,event:t})?G=!0:t.preventDefault();return}if(l!==void 0&&u){let[,i]=U.url.href.split(`#`);if(i===l){if(t.preventDefault(),l===``||l===`top`&&n.ownerDocument.getElementById(`top`)===null)scrollTo({top:0});else{let e=n.ownerDocument.getElementById(decodeURIComponent(l));e&&(e.scrollIntoView(),e.focus())}return}if(K=!0,Ze(q),e(r),!s.replace_state)return;K=!1}t.preventDefault(),await new Promise(e=>{requestAnimationFrame(()=>{setTimeout(e,0)}),setTimeout(e,100)}),await Z({type:`link`,url:r,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??r.href===location.href,event:t})}),z.addEventListener(`submit`,e=>{if(e.defaultPrevented)return;let t=HTMLFormElement.prototype.cloneNode.call(e.target),n=e.submitter;if((n?.formTarget||t.target)===`_blank`||(n?.formMethod||t.method)!==`get`)return;let r=new URL(n?.hasAttribute(`formaction`)&&n?.formAction||t.action);if(k(r,x,!1))return;let i=e.target,a=O(i);if(a.reload)return;e.preventDefault(),e.stopPropagation();let o=new FormData(i,n);r.search=new URLSearchParams(o).toString(),Z({type:`form`,url:r,keepfocus:a.keepfocus,noscroll:a.noscroll,replace_state:a.replace_state??r.href===location.href,event:e})}),addEventListener(`popstate`,async t=>{if(!Xt){if(t.state?.[`sveltekit:history`]){let n=t.state[S];if(Y={},n===q)return;let r=P[n],i=t.state[`sveltekit:states`]??{},a=new URL(t.state[`sveltekit:pageurl`]??location.href),o=t.state[C],s=U.url?m(location)===m(U.url):!1;if(o===J&&(pt||s)){i!==j.state&&(j.state=i),e(a),P[q]=E(),r&&scrollTo(r.x,r.y),q=n;return}let c=n-q;await Z({type:`popstate`,url:a,popped:{state:i,scroll:r,delta:c},accept:()=>{q=n,J=o},block:()=>{history.go(-c)},nav_token:Y,event:t})}else K||(e(new URL(location.href)),B.hash&&location.reload())}}),addEventListener(`hashchange`,()=>{K&&(K=!1,history.replaceState({...history.state,[S]:++q,[C]:J},``,location.href))});for(let e of document.querySelectorAll(`link`))Xe.has(e.rel)&&(e.href=e.href);addEventListener(`pageshow`,e=>{e.persisted&&I.navigating.set(M.current=null)});function e(e){U.url=j.url=e,I.page.set($t(j)),I.page.notify()}}async function Jt(e,{status:t=200,error:n,node_ids:r,params:i,route:a,server_route:o,data:s,form:c}){dt=!0;let l=new URL(location.href),d;({params:i={},route:a={id:null}}=await zt(l,!1)||{}),d=et.find(({id:e})=>e===a.id);let f,p=!0;try{let e=r.map(async(t,n)=>{let r=s[n];return r?.uses&&(r.uses=Yt(r.uses)),kt({loader:B.nodes[t],url:l,params:i,route:a,parent:async()=>{let t={};for(let r=0;r<n;r+=1)Object.assign(t,(await e[r]).data);return t},server_data_node:Mt(r)})}),o=await Promise.all(e);if(d){let e=d.layouts;for(let t=0;t<e.length;t++)e[t]||o.splice(t,0,void 0)}f=await Ot({url:l,params:i,branch:o,status:t,error:n,errors:d?.errors,form:c,route:d??null})}catch(t){if(t instanceof u)return await L(new URL(t.location,location.href));f=await Lt({status:Ve(t),error:await $(t,{url:l,params:i,route:a}),url:l,route:a}),e.textContent=``,p=!1}f&&(f.props.page&&(f.props.page.state={}),await Dt(f,e,p))}function Yt(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}var Xt=!1;function Zt(e,t=!0){let n=document.querySelector(`[autofocus]`);if(n)n.focus();else{let n=tn(e);if(n&&document.getElementById(n)){let{x:r,y:i}=E();setTimeout(()=>{let a=history.state;Xt=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(a,``,e),t&&scrollTo(r,i),Xt=!1})}else{let e=document.body,t=e.getAttribute(`tabindex`);e.tabIndex=-1,e.focus({preventScroll:!0,focusVisible:!1}),t===null?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,t)}let r=getSelection();if(r&&r.type!==`None`){let e=[];for(let t=0;t<r.rangeCount;t+=1)e.push(r.getRangeAt(t));setTimeout(()=>{if(r.rangeCount===e.length){for(let t=0;t<r.rangeCount;t+=1){let n=e[t],i=r.getRangeAt(t);if(n.commonAncestorContainer!==i.commonAncestorContainer||n.startContainer!==i.startContainer||n.endContainer!==i.endContainer||n.startOffset!==i.startOffset||n.endOffset!==i.endOffset)return}r.removeAllRanges()}})}}}function Qt(e,t,n,r,i=null){let a,o,s=new Promise((e,t)=>{a=e,o=t});return s.catch(h),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:E()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:i},willUnload:!t,type:r,complete:s},fulfil:a,reject:o}}function $t(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function en(e){let t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function tn(e){let t;if(B.hash){let[,,n]=e.hash.split(`#`,3);t=n??``}else t=e.hash.slice(1);return decodeURIComponent(t)}export{j as a,M as i,Kt as n,De as o,yt as r,Wt as t};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
var e=({status:e,message:t})=>`<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<title>`+t+`</title>
|
|
6
|
+
|
|
7
|
+
<style>
|
|
8
|
+
body {
|
|
9
|
+
--bg: white;
|
|
10
|
+
--fg: #222;
|
|
11
|
+
--divider: #ccc;
|
|
12
|
+
background: var(--bg);
|
|
13
|
+
color: var(--fg);
|
|
14
|
+
font-family:
|
|
15
|
+
system-ui,
|
|
16
|
+
-apple-system,
|
|
17
|
+
BlinkMacSystemFont,
|
|
18
|
+
'Segoe UI',
|
|
19
|
+
Roboto,
|
|
20
|
+
Oxygen,
|
|
21
|
+
Ubuntu,
|
|
22
|
+
Cantarell,
|
|
23
|
+
'Open Sans',
|
|
24
|
+
'Helvetica Neue',
|
|
25
|
+
sans-serif;
|
|
26
|
+
display: flex;
|
|
27
|
+
align-items: center;
|
|
28
|
+
justify-content: center;
|
|
29
|
+
height: 100vh;
|
|
30
|
+
margin: 0;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.error {
|
|
34
|
+
display: flex;
|
|
35
|
+
align-items: center;
|
|
36
|
+
max-width: 32rem;
|
|
37
|
+
margin: 0 1rem;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.status {
|
|
41
|
+
font-weight: 200;
|
|
42
|
+
font-size: 3rem;
|
|
43
|
+
line-height: 1;
|
|
44
|
+
position: relative;
|
|
45
|
+
top: -0.05rem;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.message {
|
|
49
|
+
border-left: 1px solid var(--divider);
|
|
50
|
+
padding: 0 0 0 1rem;
|
|
51
|
+
margin: 0 0 0 1rem;
|
|
52
|
+
min-height: 2.5rem;
|
|
53
|
+
display: flex;
|
|
54
|
+
align-items: center;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.message h1 {
|
|
58
|
+
font-weight: 400;
|
|
59
|
+
font-size: 1em;
|
|
60
|
+
margin: 0;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
@media (prefers-color-scheme: dark) {
|
|
64
|
+
body {
|
|
65
|
+
--bg: #222;
|
|
66
|
+
--fg: #ddd;
|
|
67
|
+
--divider: #666;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
</style>
|
|
71
|
+
</head>
|
|
72
|
+
<body>
|
|
73
|
+
<div class="error">
|
|
74
|
+
<span class="status">`+e+`</span>
|
|
75
|
+
<div class="message">
|
|
76
|
+
<h1>`+t+`</h1>
|
|
77
|
+
</div>
|
|
78
|
+
</div>
|
|
79
|
+
</body>
|
|
80
|
+
</html>
|
|
81
|
+
`;export{e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e,At as t,Ct as n,E as r,Mt as i,O as a,R as o,St as s,V as c,X as l,a as u,bt as d,f,gt as p,j as m,jt as h,lt as g,o as _,ot as v,st as y,z as b}from"./CmCJ0SKP.js";import"./xihTtKlq.js";var x={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`},S=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},C=Symbol(`lucide-context`),w=()=>d(C),T=new Set([`$$slots`,`$$events`,`$$legacy`,`name`,`color`,`size`,`strokeWidth`,`absoluteStrokeWidth`,`iconNode`,`children`]),E=c(`<svg><!><!></svg>`);function D(c,d){n(d,!0);let C=w()??{},D=u(d,`color`,19,()=>C.color??`currentColor`),O=u(d,`size`,19,()=>C.size??24),k=u(d,`strokeWidth`,19,()=>C.strokeWidth??2),A=u(d,`absoluteStrokeWidth`,19,()=>C.absoluteStrokeWidth??!1),j=u(d,`iconNode`,19,()=>[]),M=_(d,T),N=p(()=>A()?Number(k())*24/Number(O()):k());var P=E();f(P,e=>({...x,...e,...M,width:O(),height:O(),stroke:D(),"stroke-width":l(N),class:[`lucide-icon lucide`,C.class,d.name&&`lucide-${d.name}`,d.class]}),[()=>!d.children&&!S(M)&&{"aria-hidden":`true`}]);var F=v(P);e(F,17,j,m,(e,t)=>{var n=p(()=>i(l(t),2));let a=()=>l(n)[0],s=()=>l(n)[1];var c=b(),u=y(c);r(u,a,!0,(e,t)=>{f(e,()=>({...s()}))}),o(e,c)});var I=g(F);a(I,()=>d.children??h),t(P),o(c,P),s()}export{D as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e,s as t,ut as n}from"./CmCJ0SKP.js";import"./xihTtKlq.js";import{t as r}from"./BkEnd9_Z.js";import{A as i,C as a,E as o,O as s,T as ee,a as c,d as te,h as ne,k as re,m as l,o as u,s as d,t as f}from"./DWcQbrnv.js";import{n as p}from"./CNPsST_i.js";var ie=new Set([`$$slots`,`$$events`,`$$legacy`]);function ae(n,i){let a=e(i,ie),o=[[`path`,{d:`M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z`}],[`path`,{d:`m7 16.5-4.74-2.85`}],[`path`,{d:`m7 16.5 5-3`}],[`path`,{d:`M7 16.5v5.17`}],[`path`,{d:`M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z`}],[`path`,{d:`m17 16.5-5-3`}],[`path`,{d:`m17 16.5 4.74-2.85`}],[`path`,{d:`M17 16.5v5.17`}],[`path`,{d:`M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z`}],[`path`,{d:`M12 8 7.26 5.15`}],[`path`,{d:`m12 8 4.74-2.85`}],[`path`,{d:`M12 13.5V8`}]];r(n,t({name:`boxes`},()=>a,{get iconNode(){return o}}))}var m=n({open:!1});function oe(){m.open=!0}var se=new Set([`$$slots`,`$$events`,`$$legacy`]);function ce(n,i){let a=e(i,se),o=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`}],[`path`,{d:`M2 12h20`}]];r(n,t({name:`globe`},()=>a,{get iconNode(){return o}}))}var le=new Set([`$$slots`,`$$events`,`$$legacy`]);function ue(n,i){let a=e(i,le),o=[[`path`,{d:`M12 10v6`}],[`path`,{d:`M9 13h6`}],[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`}]];r(n,t({name:`folder-plus`},()=>a,{get iconNode(){return o}}))}var de=new Set([`$$slots`,`$$events`,`$$legacy`]);function fe(n,i){let a=e(i,de),o=[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`}]];r(n,t({name:`message-square`},()=>a,{get iconNode(){return o}}))}var h=`__new__`,g=n({text:``,images:[],files:[],editing:null}),_=new Map,v=h;function y(){return{text:``,images:[],files:[],editing:null}}function pe(){return{text:g.text,images:[...g.images],files:[...g.files],editing:g.editing}}function b(e){g.text=e.text,g.images=e.images,g.files=e.files,g.editing=e.editing}function x(e){if(e===v)return;_.set(v,pe());let t=_.get(e)??y();_.delete(e),v=e,b(t)}function S(e){_.delete(e),e===v&&b(y())}function me(e,t){if(e===t)return;let n=_.get(e);n!==void 0&&(_.delete(e),v===t?b(n):_.has(t)||_.set(t,n))}function he(e){g.editing=e,g.text=e}function ge(){g.editing=null}var _e={"image/png":!0,"image/jpeg":!0,"image/webp":!0,"image/gif":!0};function C(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{let e=String(r.result??``);t(e.slice(e.indexOf(`,`)+1))},r.onerror=()=>n(r.error),r.readAsDataURL(e)})}async function ve(e){for(let t of e){if(t.type.startsWith(`image/`))continue;if(g.files.length>=2){p(`At most 2 file attachments per message.`);return}if(t.size>524288){p(`"${t.name}" exceeds the 512KiB limit.`);continue}let e=await C(t);g.files=[...g.files,{name:t.name,data:e}]}}async function w(e){for(let t of e){if(g.images.length>=4){p(`At most 4 images per message.`);return}if(!(t.type in _e)){p(`Unsupported image type: ${t.type||`unknown`}.`);continue}if(t.size>4194304){p(`"${t.name}" exceeds the 4MiB limit.`);continue}let e=await C(t);g.images=[...g.images,{mediaType:t.type,data:e,...t.name?{name:t.name}:{},preview:`data:${t.type};base64,${e}`}]}}function ye(e){let t=[...e.dataTransfer?.files??[]],n=t.filter(e=>e.type.startsWith(`image/`)),r=t.filter(e=>!e.type.startsWith(`image/`));t.length>0&&e.preventDefault(),n.length>0&&w(n),r.length>0&&ve(r)}function be(e){for(let t of e){if(g.images.length>=4){p(`At most 4 images per message.`);return}g.images=[...g.images,{path:t.path,name:t.name,...t.preview===void 0?{}:{preview:t.preview}}]}}function xe(e){for(let t of e){if(g.files.length>=2){p(`At most 2 file attachments per message.`);return}g.files=[...g.files,{name:t.name,path:t.path}]}}var T=f(c),E=f(c),D=f(c),O=f(c),k=f(c),A=f(c),j=f(c),M=f(c),N=f(c),Se=f(c),P=`skill-creator.agentPanelWidth.v1`;function F(e){return Number.isFinite(e)?Math.min(720,Math.max(320,Math.round(e))):440}function Ce(){try{let e=sessionStorage.getItem(P);return e===null?440:F(Number(e))}catch{return 440}}var I=n({open:!1,seedPrompt:null,width:Ce()}),L=n({sessionId:null,status:`idle`,mode:null,pendingMode:`free`,items:[],todos:[],turnStartedAt:null,cursor:0,sending:!1,error:null,promptError:null,lastUsage:null}),R=n({loaded:!1,loading:!1,sessions:[],error:null}),z=n({view:null,loading:!1,updating:!1,error:null}),B=null,V=[],H=null,U=new Map;function we(e){I.open=e,e&&!R.loaded&&!R.loading&&G(),e&&L.sessionId&&J(),e||Y()}function Te(e){I.width=F(e);try{sessionStorage.setItem(P,String(I.width))}catch{}}var W=0;async function G(){if(u()===null){if(W>=25)return;W+=1,setTimeout(()=>void G(),300);return}W=0;let e=T.issue();R.loading=!0;try{let t=await d().agent.sessions.list({});if(!e.isCurrent())return;R.sessions=t.sessions,R.loaded=!0,R.error=null}catch(t){if(!e.isCurrent())return;R.error=t instanceof Error?t.message:String(t)}finally{e.isCurrent()&&(R.loading=!1)}}async function Ee(e){let t=Se.issue();try{let n=await d().agent.sessions.cleanup(e);if(!t.isCurrent())return null;if(n.kind===`summary`&&L.sessionId!==null){let e=L.sessionId;(n.deletedIds??[]).includes(e)?K():n.deletedIdsTruncated===!0&&(await G(),t.isCurrent()&&!R.sessions.some(t=>t.sessionId===e&&t.hasTranscript!==!1)&&K())}return R.loaded=!1,G(),n}catch(e){return t.isCurrent()?{error:e instanceof Error?e.message:String(e)}:null}}async function De(e,t){let n=E.issue();L.sending=!0;try{let r=await d().agent.session.create({...e?{prompt:e}:{},...t?{mode:t}:{}});if(!n.isCurrent())return;q(r.session.sessionId,r.session.status,r.session.mode),R.loaded=!1,G(),J()}catch(e){if(!n.isCurrent())return;L.error=e instanceof Error?e.message:String(e)}finally{n.isCurrent()&&(L.sending=!1)}}function Oe(e,t){K(),I.open=!0,I.seedPrompt=t??null,L.pendingMode=e}function K(){Y(),L.sessionId=null,L.status=`idle`,L.mode=null,L.pendingMode=`free`,L.items=[],L.todos=[],L.turnStartedAt=null,L.cursor=0,L.error=null,L.promptError=null,L.lastUsage=null,V=[],H=null,U=new Map,x(h),S(h)}function ke(e){L.sessionId!==e&&(q(e,`idle`,R.sessions.find(t=>t.sessionId===e)?.mode??`free`),J())}function q(e,t,n){L.sessionId=e,L.status=t,L.mode=n,L.items=[],L.todos=[],L.turnStartedAt=null,L.cursor=0,L.error=null,L.lastUsage=null,V=[],H=null,U=new Map,x(e)}async function Ae(e){let t=L.sessionId;if(!t||L.mode===e)return!1;if(L.status===`running`)return L.error=`Switch modes after the current turn ends.`,!1;let n=M.issue();try{let r=await d().agent.session.setMode({sessionId:t,mode:e});return!n.isCurrent()||L.sessionId!==t?!1:(L.mode=r.session.mode,L.status=r.session.status,L.error=null,R.loaded=!1,G(),J(),!0)}catch(e){return n.isCurrent()&&(L.error=e instanceof Error?e.message:String(e)),!1}}async function je(e,t=[],n=[]){if(e.trim().length===0&&t.length===0&&n.length===0)return;if(!L.sessionId){if(await De(void 0,L.pendingMode),!L.sessionId)return;me(h,L.sessionId)}let r=L.sessionId,i=O.issue();L.sending=!0;let a=t.filter(e=>e.preview===void 0).map(e=>e.name??`image`);L.items.push({kind:`user`,seq:-Date.now(),text:e,...t.some(e=>e.preview!==void 0)?{images:t.flatMap(e=>e.preview===void 0?[]:[e.preview])}:{},...n.length>0||a.length>0?{files:[...n.map(e=>e.name??`file`),...a]}:{}}),V.push(e);try{if(await d().agent.session.prompt({sessionId:r,text:e,images:t.map(e=>{if(e.path!==void 0)return{path:e.path,...e.name?{name:e.name}:{}};if(e.mediaType===void 0||e.data===void 0)throw Error(`image attachment needs either path or mediaType+data`);return{mediaType:e.mediaType,data:e.data,...e.name?{name:e.name}:{}}}),files:n.map(e=>{if(e.path!==void 0)return{path:e.path};if(e.name===void 0||e.data===void 0)throw Error(`file attachment needs either path or name+data`);return{name:e.name,data:e.data}})}),!i.isCurrent())return;L.promptError=null,S(r)}catch(t){if(!i.isCurrent())return;L.promptError=t instanceof Error?t.message:String(t);let n=V.indexOf(e);n>=0&&V.splice(n,1)}finally{i.isCurrent()&&(L.sending=!1)}J()}async function Me(){let e=L.sessionId;if(e){try{await d().agent.session.cancel({sessionId:e})}catch(e){L.error=e instanceof Error?e.message:String(e)}J()}}async function Ne(e,t){let n=L.sessionId;if(!n)return;let r=k.issue();try{if(await d().agent.session.answer({sessionId:n,requestSeq:e,answers:t}),!r.isCurrent())return;for(let t of L.items)t.kind===`approval`&&t.seq===e&&(t.resolved=!0)}catch(e){if(!r.isCurrent())return;L.error=e instanceof Error?e.message:String(e)}J()}async function J(){let e=L.sessionId;if(!e)return;let t=D.issue();try{let n=await d().agent.session.stream({sessionId:e,afterSeq:L.cursor,limit:100});if(!t.isCurrent()||L.sessionId!==e)return;L.status=n.status;for(let e of n.frames)Ue(e),L.cursor=Math.max(L.cursor,e.seq);L.error=null}catch(e){if(!t.isCurrent())return;L.error=e instanceof Error?e.message:String(e),Y();return}Pe()}function Pe(){Y();let e=L.items.some(e=>e.kind===`approval`&&!e.resolved);if(L.status===`running`||e){L.sessionId;let e=L.status===`running`?450:1200;B=setTimeout(()=>{J()},e)}}function Y(){B!==null&&(clearTimeout(B),B=null)}function X(e,t,n){for(let t=L.items.length-1;t>=0;t--){let r=L.items[t];if(r.kind===`turn`)break;if(r.kind===e){r.streaming&&=(r.text=n,!1);return}}L.items.push({kind:e,seq:t,text:n,streaming:!1})}function Fe(e){let t=e?.usage;if(!t)return null;let n=t.inputTokens??t.promptTokens??t.input_tokens??0,r=t.outputTokens??t.completionTokens??t.output_tokens??0;return n>0||r>0?{inputTokens:n,outputTokens:r}:null}function Z(e,t){for(let n=L.items.length-1;n>=0;n--){let r=L.items[n];if(r.kind===`turn`)return null;if(r.kind===`tool`&&r.result===void 0){if(e!==void 0){if(r.toolCallId===e)return r;continue}if(r.toolName===t)return r}}return null}var Ie=o({isError:ee(!0).optional(),error:re([s().min(1),o()]).optional()}).passthrough();function Q(e){let t=Ie.safeParse(e);return t.success?t.data.isError===!0||t.data.error!==void 0:!1}var Le=o({attachments:a(i()).optional()}).passthrough();function Re(e){let t=Le.safeParse(e),n=t.success?t.data.attachments:void 0;if(!Array.isArray(n)||n.length===0)return null;let r=[],i=[],a=[];for(let e of n){let t=ne.safeParse(e);if(t.success){if(t.data.kind===`image`&&t.data.thumb!==void 0)r.push(t.data.thumb);else{let e=t.data.name??(t.data.kind===`image`?`image`:`file`);i.push(e),t.data.kind===`image`&&a.push(e)}}}return r.length>0||i.length>0?{images:r,files:i,imageChipNames:a}:null}var ze=o({todos:a(i())}),Be=o({content:s(),status:s()}),Ve=o({questions:a(te)}),$=o({from:l,to:l});function He(e){let t=ze.safeParse(e);if(!t.success)return null;let n=[];for(let e of t.data.todos){let t=Be.safeParse(e);t.success&&n.push(t.data)}return n}function Ue(e){switch(e.kind){case`turn-start`:L.turnStartedAt=e.at,U=new Map,L.items.push({kind:`turn`,seq:e.seq,label:`Turn`});break;case`status`:L.items.push({kind:`status`,seq:e.seq,text:JSON.stringify(e.payload??{})});break;case`auto-compact`:typeof e.text==`string`&&e.text.length>0&&L.items.push({kind:`note`,seq:e.seq,text:e.text});break;case`user-text`:if(typeof e.text==`string`&&e.text.length>0){let t=V.indexOf(e.text);if(t>=0){V.splice(t,1);break}let n=Re(e.payload);L.items.push({kind:`user`,seq:e.seq,text:e.text,...n&&n.images.length>0?{images:n.images}:{},...n&&n.files.length>0?{files:n.files}:{},...n&&n.imageChipNames.length>0?{imageChipNames:n.imageChipNames}:{}})}break;case`assistant-delta`:if(typeof e.text==`string`&&e.text.length>0){let t=L.items[L.items.length-1];t?.kind===`assistant`&&t.streaming?t.text+=e.text:L.items.push({kind:`assistant`,seq:e.seq,text:e.text,streaming:!0})}break;case`assistant-reasoning-delta`:if(typeof e.text==`string`&&e.text.length>0){let t=L.items[L.items.length-1];t?.kind===`reasoning`&&t.streaming?t.text+=e.text:L.items.push({kind:`reasoning`,seq:e.seq,text:e.text,streaming:!0})}break;case`assistant-reasoning`:typeof e.text==`string`&&e.text.length>0&&X(`reasoning`,e.seq,e.text);break;case`todo-snapshot`:{let t=He(e.payload);t!==null&&(L.todos=t);break}case`session-title`:{let t=typeof e.text==`string`?e.text.trim():``;if(t.length>0)for(let n of R.sessions)n.sessionId===e.sessionId&&(n.title=t);break}case`assistant-text`:if(typeof e.text==`string`&&e.text.length>0){X(`assistant`,e.seq,e.text);let t=Fe(e.payload);t&&(L.lastUsage=t,H=t)}break;case`tool-args-delta`:if(typeof e.text==`string`&&e.text.length>0&&e.toolCallId){let t=Z(e.toolCallId,e.toolName??``);if(t&&t.toolCallId===e.toolCallId&&t.phase===`calling`)t.argsText=(t.argsText??``)+e.text;else if(!t){let t=U.get(e.toolCallId);U.set(e.toolCallId,{...e.toolName?{name:e.toolName}:{},text:(t?.text??``)+e.text})}}break;case`tool-call`:{let t=e.toolName??`tool`,n=e.toolCallId;if(n!==void 0&&Z(n,t)!==null)break;let r=n===void 0?void 0:U.get(n);n!==void 0&&U.delete(n);let i;e.payload!==void 0&&e.payload!==null&&(i=typeof e.payload==`string`?e.payload:We(e.payload)),(i===void 0||i.length===0)&&r&&(i=r.text),L.items.push({kind:`tool`,seq:e.seq,...n===void 0?{}:{toolCallId:n},toolName:t,...i!==void 0&&i.length>0?{argsText:i}:{},phase:`calling`,startedAt:e.at});break}case`tool-result`:{let t=e.toolName??`tool`,n=Z(e.toolCallId,t);if(n){n.result=e.payload,n.phase=Q(e.payload)?`error`:`done`,n.endedAt=e.at;break}L.items.push({kind:`tool`,seq:e.seq,...e.toolCallId===void 0?{}:{toolCallId:e.toolCallId},toolName:t,result:e.payload,phase:Q(e.payload)?`error`:`done`,startedAt:e.at,endedAt:e.at});break}case`turn-end`:{let t=typeof e.text==`string`&&e.text.length>0?e.text:`completed`,n=H;H=null;let r=L.turnStartedAt,i=r===null||Number.isNaN(Date.parse(r))||Number.isNaN(Date.parse(e.at))?void 0:Math.max(0,Date.parse(e.at)-Date.parse(r));L.items.push({kind:`turn-end`,seq:e.seq,reason:t,...n?{usage:n}:{},...i===void 0?{}:{elapsedMs:i}});break}case`approval-request`:{let t=Ve.safeParse(e.payload);if(!t.success)break;L.items.push({kind:`approval`,seq:e.seq,questions:t.data.questions,resolved:!1});break}case`approval-resolved`:for(let e of L.items)e.kind===`approval`&&(e.resolved=!0);break;case`mode-changed`:{let t=$.safeParse(e.payload);if(!t.success)break;L.items.push({kind:`mode`,seq:e.seq,from:t.data.from,to:t.data.to}),L.mode=t.data.to;break}}L.items.length>500&&L.items.splice(0,L.items.length-500)}function We(e){try{return JSON.stringify(e,null,2)??``}catch{return String(e)}}async function Ge(){let e=A.issue();z.loading=!0;try{let t=await d().agent.settings.get({});return e.isCurrent()?(z.view=t,z.error=null,{view:t,error:null}):{view:null,error:null}}catch(t){if(!e.isCurrent())return{view:null,error:null};let n=t instanceof Error?t.message:String(t);return z.error=n,{view:null,error:n}}finally{e.isCurrent()&&(z.loading=!1)}}async function Ke(e){let t=j.issue();z.updating=!0;try{let n=await d().agent.settings.update(e);return t.isCurrent()?(n.outcome===`updated`&&(z.view=n.view),n):null}catch(e){return t.isCurrent()?{outcome:`error`,message:e instanceof Error?e.message:String(e)}:null}finally{t.isCurrent()&&(z.updating=!1)}}async function qe(e){try{let t=u();return t===null?null:await t.agent.files.pickFiles({mode:e})}catch{return null}}async function Je(e,t){let n=N.issue();z.updating=!0;try{let r=await d().agent.credentials.set({provider:e,apiKey:t});return n.isCurrent()?(r.outcome===`stored`&&(z.view=r.view),r):null}catch(e){return n.isCurrent()?{outcome:`rejected`,code:`NETWORK`,detail:e instanceof Error?e.message:String(e)}:null}finally{n.isCurrent()&&(z.updating=!1)}}async function Ye(e){let t=N.issue();z.updating=!0;try{let n=await d().agent.credentials.clear({provider:e});if(!t.isCurrent())return;z.view=n}catch(e){if(!t.isCurrent())return;z.error=e instanceof Error?e.message:String(e)}finally{t.isCurrent()&&(z.updating=!1)}}async function Xe(e){let t=u();if(t===null)return null;try{return await t.agent.settings.testConnection(e)}catch(e){return{outcome:`failed`,detail:e instanceof Error?e.message:String(e)}}}var Ze=new Set([`$$slots`,`$$events`,`$$legacy`]);function Qe(n,i){let a=e(i,Ze),o=[[`path`,{d:`M13 21h8`}],[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`}]];r(n,t({name:`pen-line`},()=>a,{get iconNode(){return o}}))}export{fe as A,w as C,he as D,g as E,ae as F,ce as M,m as N,ge as O,oe as P,Ke as S,be as T,we as _,R as a,Oe as b,Me as c,G as d,Ge as f,Je as g,je as h,L as i,ue as j,ye as k,Ee as l,ke as m,I as n,Ne as o,qe as p,z as r,K as s,Qe as t,Ye as u,Te as v,xe as w,Xe as x,Ae as y};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e,s as t}from"./CmCJ0SKP.js";import"./xihTtKlq.js";import{t as n}from"./BkEnd9_Z.js";var r=new Set([`$$slots`,`$$events`,`$$legacy`]);function i(i,a){let o=e(a,r),s=[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`}],[`path`,{d:`M12 9v4`}],[`path`,{d:`M12 17h.01`}]];n(i,t({name:`triangle-alert`},()=>o,{get iconNode(){return s}}))}export{i as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,A as t,At as n,B as r,Ct as i,F as a,G as o,Mt as s,N as c,R as l,S as u,St as d,U as f,W as p,X as m,_t as h,a as g,ct as _,d as v,ft as y,g as ee,gt as b,j as te,k as ne,kt as x,l as re,lt as S,m as C,mt as w,nt as T,o as E,ot as D,p as ie,rt as O,s as k,st as A,ut as j,x as ae,z as oe}from"./CmCJ0SKP.js";import"./xihTtKlq.js";import{t as M}from"./BkEnd9_Z.js";import{a as N,i as se,r as ce}from"./D-ecV3TD.js";import{_ as le,a as ue,b as de,s as P,t as fe,u as pe,v as me,x as he}from"./DWcQbrnv.js";import{a as ge,i as _e,l as ve,n as ye,o as be,r as F,t as xe}from"./D25cXQtk.js";import{a as I,i as L,n as R,s as z}from"./CNPsST_i.js";import{t as Se}from"./BEPs9Z9s.js";import{n as Ce,r as we,t as Te}from"./Ckw1quWt.js";import{t as Ee}from"./CIFG41pU.js";import{n as De,t as Oe}from"./s48N5eaK.js";import{t as B}from"./D-V0xBeS.js";import{t as ke}from"./D8Der6oM.js";var V=fe(ue),H=j({target:null,checking:!1,applying:!1,checkError:null,results:[],applyResults:null});async function Ae(e,t){let n=V.issue(),r=()=>n.isCurrent()&&_e(H.target,e);H.target=e,H.checking=!0,H.checkError=null,H.results=[],H.applyResults=null;try{let{results:n}=await P().skills.update.check({...e,skillIds:t});if(!r())return;H.results=n}catch(e){if(!r())return;H.checkError=e instanceof Error?e.message:String(e)}finally{n.isLatest()&&(H.checking=!1)}}async function je(e,t){let n=V.issue(),r=()=>n.isCurrent()&&_e(H.target,e);H.applying=!0;try{let{results:n}=await P().skills.update.apply({...e,skillIds:t});return r()?(H.applyResults=n,n):null}catch(e){if(!r())return null;throw e}finally{n.isLatest()&&(H.applying=!1)}}function Me(){V.invalidate(),H.results=[],H.applyResults=null,H.checkError=null}function Ne(e){let t=0,n=0,r=0,i=0;for(let a of e)a.status===`updated`?t+=1:a.status===`already-current`?n+=1:a.status===`failed`?r+=1:i+=1;return{outdated:t,current:n,failed:r,unavailable:i}}function Pe(e){let t=0,n=0,r=0;for(let i of e)i.status===`updated`?t+=1:i.status===`already-current`?n+=1:r+=1;return{updated:t,current:n,failed:r}}var U=new Set([`$$slots`,`$$events`,`$$legacy`]);function W(e,t){let n=E(t,U),r=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`line`,{x1:`10`,x2:`10`,y1:`15`,y2:`9`}],[`line`,{x1:`14`,x2:`14`,y1:`15`,y2:`9`}]];M(e,k({name:`circle-pause`},()=>n,{get iconNode(){return r}}))}var G=r(`<span title="Disabled (paused)" class="shrink-0"><!></span>`),K=r(`<span class="shrink-0 text-[10px] uppercase tracking-wide text-amber-600 dark:text-amber-400">disabled</span>`),q=r(`<button type="button"><!> <span class="min-w-0 flex-1"><span class="flex items-center gap-2"><span class="truncate text-[13px] font-medium text-foreground"> </span> <!></span> <span class="mt-0.5 line-clamp-2 text-[11px] leading-4"> </span></span></button>`);function Fe(e,t){i(t,!0);let r=g(t,`selected`,3,!1);var s=q(),f=D(s),p=e=>{var t=G();W(D(t),{class:`mt-0.5 h-4 w-4 text-amber-600 dark:text-amber-400`}),n(t),l(e,t)},m=e=>{Ce(e,{class:`mt-0.5 h-4 w-4 shrink-0 text-primary`})};c(f,e=>{t.skill.disabled?e(p):e(m,-1)});var h=S(f,2),v=D(h),y=D(v),ee=_(y,!0),b=S(y,2),te=e=>{var t=K();l(e,t)};c(b,e=>{t.skill.disabled&&e(te)}),n(v);var ne=S(v,2),x=_(ne,!0);n(h),n(s),T(e=>{C(s,`data-skill-id`,t.skill.id),C(s,`aria-pressed`,r()),ae(s,1,e),a(ee,t.skill.name),a(x,t.skill.description||`No description`)},[()=>u(z(`group flex min-h-14 w-full items-start gap-2.5 border-b border-border/70 px-3 py-2.5 text-left transition-colors`,r()?`bg-accent text-foreground`:`text-muted-foreground hover:bg-accent/60 hover:text-foreground`))]),o(`click`,s,function(...e){t.onclick?.apply(this,e)}),l(e,s),d()}p([`click`]);var J=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ie(e,t){let n=E(t,J),r=[[`path`,{d:`m12 19-7-7 7-7`}],[`path`,{d:`M19 12H5`}]];M(e,k({name:`arrow-left`},()=>n,{get iconNode(){return r}}))}var Y=new Set([`$$slots`,`$$events`,`$$legacy`]);function Le(e,t){let n=E(t,Y),r=[[`path`,{d:`M12 17V3`}],[`path`,{d:`m6 11 6 6 6-6`}],[`path`,{d:`M19 21H5`}]];M(e,k({name:`arrow-down-to-line`},()=>n,{get iconNode(){return r}}))}var Re=new Set([`$$slots`,`$$events`,`$$legacy`]);function ze(e,t){let n=E(t,Re),r=[[`path`,{d:`M12 2v10`}],[`path`,{d:`M18.4 6.6a9 9 0 1 1-12.77.04`}]];M(e,k({name:`power`},()=>n,{get iconNode(){return r}}))}var Be=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ve(e,t){let n=E(t,Be),r=[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`}],[`path`,{d:`m9 12 2 2 4-4`}]];M(e,k({name:`shield-check`},()=>n,{get iconNode(){return r}}))}var He=r(`<!> Insights`,1),Ue=r(`<!> Updates`,1),We=r(`<p class="flex shrink-0 items-center gap-2 border-b border-border px-4 py-2 text-xs text-muted-foreground" role="status"><!> Checking upstream sources…</p>`),Ge=r(`<div class="flex shrink-0 items-start gap-2 border-b border-border px-4 py-2 text-xs text-destructive" role="alert"><span class="min-w-0 flex-1 break-words"> </span> <button class="shrink-0 underline underline-offset-2">Retry</button></div>`),Ke=r(`<span class="text-muted-foreground"> </span>`),qe=r(`<span class="text-destructive"> </span>`),Je=r(`<p class="min-w-0 flex-1 text-xs"><span class="font-medium">Applied</span> <!> <!> <!></p>`),Ye=r(`<span class="font-medium text-primary"> </span>`),Xe=r(`<span class="font-medium">All current</span>`),Ze=r(`<!> `,1),Qe=r(`<p class="min-w-0 flex-1 text-xs"><!> <!> <!> <!></p> <!>`,1),$e=r(`<li class="pl-3 text-[10px] text-muted-foreground"> </li>`),et=r(`<li class="flex items-baseline gap-1.5"><span class="min-w-0 flex-1 truncate"> </span> <!></li> <!>`,1),tt=r(`<ul class="mt-1.5 max-h-40 space-y-1 overflow-y-auto text-[11px]"></ul>`),nt=r(`<section class="shrink-0 border-b border-border px-4 py-2.5" aria-label="Update report" data-testid="update-report"><div class="flex items-center gap-2"><!> <button class="flex h-7 w-7 shrink-0 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground" aria-label="Dismiss update report"><!></button></div> <!></section>`),rt=r(`<div class="flex items-center gap-2 px-4 py-6 text-xs text-muted-foreground"><!> Loading skills…</div>`),it=r(`<div class="flex flex-col items-start gap-2 px-4 py-6 text-xs text-destructive"><p class="break-words"> </p> <!></div>`),at=r(`<p class="px-4 py-6 text-xs text-muted-foreground">No skills match.</p>`),ot=r(`<div class="flex h-full flex-col items-center justify-center gap-2 px-8 text-center text-muted-foreground"><!> <p class="text-sm font-medium text-foreground">Select a skill</p> <p class="max-w-xs text-xs">Inspect its frontmatter, rendered body, and validation status.</p></div>`),st=r(`<div class="flex h-full items-center justify-center gap-2 text-xs text-muted-foreground"><!> Loading skill…</div>`),ct=r(`<div class="flex h-full flex-col items-center justify-center gap-2 px-8 text-center"><p class="text-xs text-destructive"> </p> <!></div>`),lt=r(`<h2 class="truncate text-base font-semibold"> </h2>`),ut=r(`<textarea rows="2" class="mt-1 w-full resize-y rounded-md border border-input bg-input/20 px-2 py-1 text-xs leading-5 outline-none focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30" aria-label="Skill description"></textarea>`),dt=r(`<p class="mt-0.5 text-xs leading-5 text-muted-foreground"> </p>`),ft=r(`<!> Save`,1),pt=r(`<!> Validate`,1),mt=r(`<!> Valid skill`,1),ht=r(`<!> Validation issues`,1),gt=r(`<p class="mt-1 text-xs text-destructive"> </p>`),_t=r(`<p class="mt-1 text-xs text-amber-700 dark:text-amber-300"> </p>`),vt=r(`<section class="mb-4 border-b border-border pb-3" aria-live="polite"><div class="flex items-center gap-2 text-xs font-medium"><!></div> <!> <!></section>`),yt=r(`<div><dt class="bg-muted/40 px-2 py-1 text-[11px] font-medium text-muted-foreground"> </dt> <dd class="break-words px-2 py-1 text-[11px]"> </dd></div>`),bt=r(`<section class="mb-4"><h3 class="mb-2 text-xs font-medium text-muted-foreground">Frontmatter</h3> <dl class="overflow-x-auto rounded-md border border-border"></dl></section>`),xt=r(`<header tabindex="-1" class="detail-header shrink-0 border-b border-border px-4 py-3 focus:outline-none svelte-9qjypz"><div class="flex items-start gap-2"><button class="provider-back mt-0.5 hidden h-8 w-8 items-center justify-center svelte-9qjypz" aria-label="Back to skills"><!></button> <div class="min-w-0 flex-1"><!> <!></div> <div class="flex shrink-0 items-center gap-1.5"><!> <!> <!></div></div> <div class="mt-2 flex flex-wrap gap-1.5"><!> <!> <!></div></header> <div class="min-h-0 flex-1 overflow-y-auto px-4 py-3"><!> <!> <section><h3 class="mb-2 text-xs font-medium text-muted-foreground">SKILL.md</h3> <div class="prose prose-sm max-w-none overflow-x-auto"></div></section></div>`,1),St=r(`<div class="provider-surface flex h-full min-h-0 w-full min-w-0 svelte-9qjypz"><section aria-label="Skills"><header class="shrink-0 border-b border-border px-4 py-3"><div class="flex flex-wrap items-center gap-x-2 gap-y-1.5"><h1 class="min-w-0 truncate text-base font-semibold"> </h1> <!> <div class="ml-auto flex flex-wrap items-center gap-1"><!> <!></div></div> <div class="relative mt-2"><!> <input class="h-7 w-full rounded-md border border-input bg-input/20 pl-7 pr-2 text-xs outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30" placeholder="Filter skills" aria-label="Filter skills"/></div></header> <!> <div class="min-h-0 flex-1 overflow-y-auto"><!></div></section> <section aria-label="Skill detail"><!></section></div>`);function Ct(r,u){i(u,!0);let p=ce(),g=se(),C=b(()=>p?.()?.wsId),E=b(()=>p?.()?.providerId),k=b(()=>g?.()??{}),j=b(()=>m(k).skill),M=b(()=>m(k).q??``),P=b(()=>m(k).view??`list`),_e=fe(ue),z=w(null),V=w(!1),U=w(null),W=w(!1),G=w(null),K=w(!1),q=w(!1),J=w(``),Y=w(``),Re=w(null),Be=w(null),Ct=null,X=b(()=>{if(!m(C)||!m(E))return null;let e=he.safeParse(m(C)),t=de.safeParse(m(E));return!e.success||!t.success?null:{workspaceId:e.data,providerId:t.data}});O(()=>{m(X)&&ye(m(X))}),O(()=>{let e=m(X),t=m(j);if(!e||!t){y(z,null),y(U,null);return}wt(e,t)});async function wt(e,t){let n=_e.issue(),r=me.safeParse(t);if(!r.success){y(z,null),y(U,`Invalid skill id in URL.`);return}y(V,!0),y(U,null),y(G,null);try{let t=await xe(e,r.data);if(!n.isCurrent())return;y(z,t,!0);let{frontmatter:i}=De(t.content),a=pe.safeParse(i);y(J,a.success?a.data.name:t.name,!0),y(Y,a.success?a.data.description:t.description,!0)}catch(e){if(!n.isCurrent())return;y(z,null),y(U,e instanceof Error?e.message:String(e),!0)}finally{n.isLatest()&&y(V,!1)}}let Tt=b(()=>{let e=m(M).trim().toLowerCase(),t=F.skills;return e?t.filter(t=>[t.name,t.description,t.provider].some(t=>t.toLowerCase().includes(e))):t}),Z=b(()=>m(z)?De(m(z).content):null),Et=b(()=>m(Z)?Oe(m(Z).body):``),Dt=b(()=>m(X)!==null&&m(X).workspaceId!==`~`);function Ot(e){m(C)&&m(E)&&N(`workspaces.provider`,{wsId:m(C),providerId:m(E)},{...m(k),skill:e,view:`detail`})}function kt(e){m(C)&&m(E)&&N(`workspaces.provider`,{wsId:m(C),providerId:m(E)},{...m(k),q:e||void 0},`REPLACE`)}function At(){m(C)&&m(E)&&(Ct=m(j)??null,N(`workspaces.provider`,{wsId:m(C),providerId:m(E)},{...m(k),view:`list`}))}let jt=`list`;O(()=>{let t=m(P),n=e(()=>jt),r=e(()=>Ct);jt=t,t===`list`&&n===`detail`&&r&&(Ct=null,(document.querySelector(`button[data-skill-id="${CSS.escape(r)}"]`)??m(Be))?.focus())}),O(()=>{m(P)!==`detail`||m(V)||m(z)?.id!==void 0&&m(Re)?.focus()});async function Mt(){let e=m(z);if(!e||!m(X)||m(q))return;y(q,!0);let t=e.disabled?`enable`:`disable`;try{let n=await ge([e.id],t);if(!n)return;let r=n.results.find(t=>t.skillId===e.id);r&&(r.status===`conflict`?R(`${r.name}: ${t} conflict${r.error?` — ${r.error}`:`.`}`):r.status===`failed`?R(`${r.name}: ${t} failed — ${r.error??`unknown error`}`):r.status===`skipped`?R(`${r.name}: already ${t===`enable`?`enabled`:`disabled`}.`):R(`${r.name} ${r.status}.`)),await wt(m(X),e.id)}catch(e){R(e instanceof Error?e.message:String(e))}finally{y(q,!1)}}let Nt=b(()=>H.results.filter(e=>e.status===`updated`).map(e=>e.skillId)),Q=b(()=>Ne(H.results)),$=b(()=>H.applyResults?Pe(H.applyResults):null);O(()=>{m(X)&&Me()});async function Pt(){m(X)&&!H.checking&&await Ae(m(X))}async function Ft(){if(m(X)&&!H.applying&&m(Nt).length!==0)try{let e=await je(m(X),m(Nt));if(!e)return;let t=Pe(e),n=[t.updated>0?`${t.updated} updated`:null,t.current>0?`${t.current} already current`:null,t.failed>0?`${t.failed} failed`:null].filter(e=>e!==null);R(n.length>0?n.join(` · `):`No changes applied.`),await ye(m(X))}catch(e){R(e instanceof Error?e.message:String(e))}}async function It(){if(m(z)&&m(X)){y(W,!0),y(G,null);try{let e=await be(m(z).id);e&&y(G,{success:e.success,errors:e.errors,warnings:e.warnings},!0)}catch(e){y(G,{success:!1,errors:[e instanceof Error?e.message:String(e)],warnings:[]},!0)}finally{y(W,!1)}}}async function Lt(){let e=m(z),t=m(X),n=m(Z)?.body;if(!e||!t||n===void 0)return;let r=m(J).trim(),i=m(Y).trim();if(!r||!i){R(`Name and description cannot be empty.`);return}y(K,!0);try{let a=m(Z)?m(Z).frontmatter:{},o=pe.safeParse({...a,name:r,description:i});if(!o.success){R(`Frontmatter is invalid after edit.`);return}let s=o.data,c=await ve({mode:`update`,workspaceId:t.workspaceId,providerId:t.providerId,skillId:e.id,expectedRevision:e.revision,frontmatter:s,body:n});y(z,{...e,revision:c.document.revision,name:r,description:i},!0),R(`Saved.`)}catch(e){e instanceof le&&e.code===`CONFLICT`?R(`This skill changed elsewhere. Reload to view the latest.`,{label:`Reload`,run:()=>{t&&m(z)&&wt(t,m(z).id)}}):R(e instanceof Error?e.message:String(e))}finally{y(K,!1)}}var Rt=St(),zt=D(Rt),Bt=D(zt),Vt=D(Bt),Ht=D(Vt),Ut=_(Ht,!0),Wt=S(Ht,2),Gt=e=>{L(e,{class:`h-3.5 w-3.5 shrink-0 animate-spin text-muted-foreground`,title:`Refreshing skills`})},Kt=e=>{B(e,{variant:`secondary`,children:(e,t)=>{x();var n=f();T(()=>a(n,m(Tt).length)),l(e,n)},$$slots:{default:!0}})};c(Wt,e=>{F.refreshing?e(Gt):e(Kt,-1)});var qt=S(Wt,2),Jt=D(qt);I(Jt,{variant:`ghost`,size:`sm`,class:`h-7 gap-1.5 px-2 text-xs`,title:`Read-only analysis: duplicates, conflicts, shared resources`,onclick:()=>{m(C)&&m(E)&&N(`workspaces.intelligence`,{wsId:m(C),providerId:m(E)},{})},children:(e,t)=>{var n=He(),r=A(n);ke(r,{class:`h-3.5 w-3.5`}),x(),l(e,n)},$$slots:{default:!0}});var Yt=S(Jt,2);I(Yt,{variant:`ghost`,size:`sm`,class:`h-7 gap-1.5 px-2 text-xs`,title:`Compare installed skills against their upstream sources`,get disabled(){return H.checking},onclick:()=>void Pt(),children:(e,t)=>{var n=Ue(),r=A(n),i=e=>{L(e,{class:`h-3.5 w-3.5 animate-spin`})},a=e=>{Le(e,{class:`h-3.5 w-3.5`})};c(r,e=>{H.checking?e(i):e(a,-1)}),x(),l(e,n)},$$slots:{default:!0}}),n(qt),n(Vt);var Xt=S(Vt,2),Zt=D(Xt);Ee(Zt,{class:`pointer-events-none absolute left-2 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground`});var Qt=S(Zt,2);ie(Qt),re(Qt,e=>y(Be,e),()=>m(Be)),n(Xt),n(Bt);var $t=S(Bt,2),en=e=>{var t=We(),r=D(t);L(r,{class:`h-3.5 w-3.5 animate-spin`}),x(),n(t),l(e,t)},tn=e=>{var t=Ge(),r=D(t),i=_(r,!0),s=S(r,2);n(t),T(()=>a(i,H.checkError)),o(`click`,s,()=>void Pt()),l(e,t)},nn=e=>{var r=nt(),i=D(r),s=D(i),u=e=>{var t=Je(),r=S(D(t),2),i=e=>{var t=Ke(),n=_(t);T(()=>a(n,`· ${m($).updated??``} updated`)),l(e,t)};c(r,e=>{m($).updated>0&&e(i)});var o=S(r,2),s=e=>{var t=Ke(),n=_(t);T(()=>a(n,`· ${m($).current??``} already current`)),l(e,t)};c(o,e=>{m($).current>0&&e(s)});var u=S(o,2),d=e=>{var t=qe(),n=_(t);T(()=>a(n,`· ${m($).failed??``} failed`)),l(e,t)};c(u,e=>{m($).failed>0&&e(d)}),n(t),l(e,t)},d=e=>{var t=Qe(),r=A(t),i=D(r),o=e=>{var t=Ye(),n=_(t);T(()=>a(n,`${m(Q).outdated??``} outdated`)),l(e,t)},s=e=>{var t=Xe();l(e,t)};c(i,e=>{m(Q).outdated>0?e(o):e(s,-1)});var u=S(i,2),d=e=>{var t=Ke(),n=_(t);T(()=>a(n,`· ${m(Q).current??``} up to date`)),l(e,t)};c(u,e=>{m(Q).current>0&&e(d)});var f=S(u,2),p=e=>{var t=Ke(),n=_(t);T(()=>a(n,`· ${m(Q).unavailable??``} unavailable`)),l(e,t)};c(f,e=>{m(Q).unavailable>0&&e(p)});var h=S(f,2),g=e=>{var t=qe(),n=_(t);T(()=>a(n,`· ${m(Q).failed??``} failed`)),l(e,t)};c(h,e=>{m(Q).failed>0&&e(g)}),n(r);var v=S(r,2),y=e=>{I(e,{size:`sm`,class:`h-7 gap-1.5 px-2 text-xs`,get disabled(){return H.applying},onclick:()=>void Ft(),children:(e,t)=>{var n=Ze(),r=A(n),i=e=>{L(e,{class:`h-3.5 w-3.5 animate-spin`})},o=e=>{Le(e,{class:`h-3.5 w-3.5`})};c(r,e=>{H.applying?e(i):e(o,-1)});var s=S(r);T(()=>a(s,` Update ${m(Nt).length??``}`)),l(e,n)},$$slots:{default:!0}})};c(v,e=>{m(Nt).length>0&&e(y)}),l(e,t)};c(s,e=>{m($)?e(u):e(d,-1)});var p=S(s,2),h=D(p);Se(h,{class:`h-3.5 w-3.5`}),n(p),n(i);var g=S(i,2),v=e=>{let r=b(()=>H.applyResults??H.results);var i=tt();t(i,21,()=>m(r),e=>e.skillId,(e,t)=>{var r=et(),i=A(r),o=D(i),s=_(o,!0),u=S(o,2),d=e=>{B(e,{variant:`secondary`,class:`text-[10px]`,children:(e,t)=>{x();var n=f();T(()=>a(n,m($)?`reinstalled`:`outdated`)),l(e,n)},$$slots:{default:!0}})},p=e=>{B(e,{variant:`outline`,class:`text-[10px]`,children:(e,t)=>{x();var n=f(`current`);l(e,n)},$$slots:{default:!0}})},h=e=>{B(e,{variant:`destructive`,class:`text-[10px]`,children:(e,t)=>{x();var n=f(`failed`);l(e,n)},$$slots:{default:!0}})},g=e=>{B(e,{variant:`outline`,class:`text-[10px]`,children:(e,t)=>{x();var n=f(`unavailable`);l(e,n)},$$slots:{default:!0}})};c(u,e=>{m(t).status===`updated`?e(d):m(t).status===`already-current`?e(p,1):m(t).status===`failed`?e(h,2):e(g,-1)}),n(i);var v=S(i,2),y=e=>{var n=$e(),r=_(n,!0);T(()=>a(r,m(t).error)),l(e,n)};c(v,e=>{m(t).error&&e(y)}),T(()=>a(s,m(t).name)),l(e,r)}),n(i),l(e,i)};c(g,e=>{(H.applyResults??H.results)&&e(v)}),n(r),o(`click`,p,()=>Me()),l(e,r)};c($t,e=>{H.checking?e(en):H.checkError?e(tn,1):(H.results.length>0||H.applyResults)&&e(nn,2)});var rn=S($t,2),an=D(rn),on=e=>{var t=rt(),r=D(t);L(r,{class:`h-3.5 w-3.5 animate-spin`}),x(),n(t),l(e,t)},sn=e=>{var t=it(),r=D(t),i=_(r,!0),o=S(r,2),s=e=>{I(e,{variant:`outline`,size:`sm`,class:`h-7 text-xs`,onclick:()=>void ye(m(X)),children:(e,t)=>{x();var n=f(`Retry`);l(e,n)},$$slots:{default:!0}})};c(o,e=>{m(X)&&e(s)}),n(t),T(()=>a(i,F.error)),l(e,t)},cn=e=>{var t=at();l(e,t)},ln=e=>{var n=oe(),r=A(n);t(r,17,()=>m(Tt),e=>e.id,(e,t)=>{{let n=b(()=>m(t).id===m(j));Fe(e,{get skill(){return m(t)},get selected(){return m(n)},onclick:()=>Ot(m(t).id)})}}),l(e,n)};c(an,e=>{F.loading?e(on):F.error?e(sn,1):m(Tt).length===0?e(cn,2):e(ln,-1)}),n(rn),n(zt);var un=S(zt,2),dn=D(un),fn=e=>{var t=ot(),r=D(t);Ce(r,{class:`h-8 w-8 opacity-50`}),x(4),n(t),l(e,t)},pn=e=>{var t=st(),r=D(t);L(r,{class:`h-4 w-4 animate-spin`}),x(),n(t),l(e,t)},mn=e=>{var t=ct(),r=D(t),i=_(r,!0),o=S(r,2),s=e=>{I(e,{variant:`outline`,size:`sm`,onclick:()=>wt(m(X),m(j)),children:(e,t)=>{x();var n=f(`Retry`);l(e,n)},$$slots:{default:!0}})};c(o,e=>{m(X)&&m(j)&&e(s)}),n(t),T(()=>a(i,m(U))),l(e,t)},hn=e=>{let r=b(()=>m(Dt));var i=xt(),u=A(i),d=D(u),p=D(d);Ie(D(p),{class:`h-4 w-4`}),n(p);var g=S(p,2),ee=D(g),C=e=>{we(e,{class:`h-8 text-base font-semibold`,"aria-label":`Skill name`,get value(){return m(J)},set value(e){y(J,e,!0)}})},w=e=>{var t=lt(),n=_(t,!0);T(()=>a(n,m(z).name)),l(e,t)};c(ee,e=>{m(r)?e(C):e(w,-1)});var E=S(ee,2),ie=e=>{var t=ut();h(t),v(t,()=>m(Y),e=>y(Y,e)),l(e,t)},O=e=>{var t=dt(),n=_(t,!0);T(()=>a(n,m(z).description)),l(e,t)};c(E,e=>{m(r)?e(ie):e(O,-1)}),n(g);var k=S(g,2),j=D(k),M=e=>{I(e,{size:`sm`,class:`h-8 gap-1.5`,onclick:Lt,get disabled(){return m(K)},children:(e,t)=>{var n=oe(),r=A(n),i=e=>{var t=ft(),n=A(t);L(n,{class:`h-3.5 w-3.5 animate-spin`}),x(),l(e,t)},a=e=>{var t=f(`Save`);l(e,t)};c(r,e=>{m(K)?e(i):e(a,-1)}),l(e,n)},$$slots:{default:!0}})};c(j,e=>{m(r)&&e(M)});var N=S(j,2);I(N,{variant:`outline`,size:`sm`,class:`h-8 gap-1.5`,onclick:It,get disabled(){return m(W)},children:(e,t)=>{var n=pt(),r=A(n),i=e=>{L(e,{class:`h-3.5 w-3.5 animate-spin`})},a=e=>{Ve(e,{class:`h-3.5 w-3.5`})};c(r,e=>{m(W)?e(i):e(a,-1)}),x(),l(e,n)},$$slots:{default:!0}});var se=S(N,2);{let e=b(()=>m(z).disabled?`default`:`outline`);I(se,{size:`sm`,get variant(){return m(e)},class:`h-8 gap-1.5`,get disabled(){return m(q)},onclick:Mt,children:(e,t)=>{var n=Ze(),r=A(n),i=e=>{L(e,{class:`h-3.5 w-3.5 animate-spin`})},o=e=>{ze(e,{class:`h-3.5 w-3.5`})};c(r,e=>{m(q)?e(i):e(o,-1)});var s=S(r);T(()=>a(s,` ${m(z).disabled?`Enable`:`Disable`}`)),l(e,n)},$$slots:{default:!0}})}n(k),n(d);var ce=S(d,2),le=D(ce);B(le,{variant:`secondary`,children:(e,t)=>{x();var n=f();T(()=>a(n,m(z).provider)),l(e,n)},$$slots:{default:!0}});var ue=S(le,2);B(ue,{variant:`outline`,children:(e,t)=>{x();var n=f();T(()=>a(n,m(z).directoryName)),l(e,n)},$$slots:{default:!0}});var de=S(ue,2),P=e=>{B(e,{variant:`outline`,class:`text-amber-700 dark:text-amber-300`,children:(e,t)=>{x();var n=f(`Disabled`);l(e,n)},$$slots:{default:!0}})};c(de,e=>{m(z).disabled&&e(P)}),n(ce),n(u),re(u,e=>y(Re,e),()=>m(Re));var fe=S(u,2),pe=D(fe),me=e=>{var r=vt(),i=D(r),o=D(i),s=e=>{var t=mt(),n=A(t);Te(n,{class:`h-4 w-4 text-emerald-600`}),x(),l(e,t)},u=e=>{var t=ht();Ve(A(t),{class:`h-4 w-4 text-destructive`}),x(),l(e,t)};c(o,e=>{m(G).success?e(s):e(u,-1)}),n(i);var d=S(i,2);t(d,17,()=>m(G).errors,te,(e,t)=>{var n=gt(),r=_(n,!0);T(()=>a(r,m(t))),l(e,n)});var f=S(d,2);t(f,17,()=>m(G).warnings,te,(e,t)=>{var n=_t(),r=_(n,!0);T(()=>a(r,m(t))),l(e,n)}),n(r),l(e,r)};c(pe,e=>{m(G)&&e(me)});var he=S(pe,2),ge=e=>{var r=bt(),i=S(D(r),2);t(i,21,()=>Object.entries(m(Z).frontmatter),te,(e,t,r)=>{var i=b(()=>s(m(t),2));let o=()=>m(i)[0],c=()=>m(i)[1];var u=yt();ae(u,1,`grid grid-cols-[120px_minmax(0,1fr)] ${r>0?`border-t border-border`:``}`);var d=D(u),f=_(d,!0),p=S(d,2),h=_(p,!0);n(u),T(e=>{a(f,o()),a(h,e)},[()=>c()===null?`null`:String(c())]),l(e,u)}),n(i),n(r),l(e,r)};c(he,e=>{m(Z)&&e(ge)});var _e=S(he,2),ve=S(D(_e),2);ne(ve,()=>m(Et),!0),n(ve),n(_e),n(fe),o(`click`,p,At),l(e,i)};c(dn,e=>{m(j)?m(V)?e(pn,1):m(U)?e(mn,2):m(z)&&e(hn,3):e(fn)}),n(un),n(Rt),T(()=>{ae(zt,1,`provider-list flex min-h-0 flex-col border-r border-border ${m(P)===`detail`?`provider-list-hidden`:``}`,`svelte-9qjypz`),a(Ut,m(E)??`—`),ee(Qt,m(M)),ae(un,1,`provider-detail flex min-h-0 flex-col ${m(P)===`list`?`provider-detail-hidden`:``}`,`svelte-9qjypz`)}),o(`input`,Qt,e=>kt(e.currentTarget.value)),l(r,Rt),d()}p([`input`,`click`]);export{Ct as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={};throw Error(`Could not resolve "@antv/infographic" imported by "markstream-svelte". Is it installed?`);export{e as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{A as e,At as t,B as n,Ct as r,F as i,G as a,K as o,N as s,R as c,St as l,W as u,X as d,ct as f,d as p,ft as m,gt as h,h as ee,lt as g,m as te,mt as _,nt as v,ot as y,p as b,rt as x,st as S,ut as ne,x as re}from"./CmCJ0SKP.js";import{t as C}from"./BaH4uqzh.js";import"./xihTtKlq.js";import{t as w}from"./D0xHg31U.js";import"./DLuJKUyD.js";import{a as ie,i as T,r as E}from"./D-ecV3TD.js";import{a as ae,c as D,l as oe,n as O,s as k,u as A}from"./BD9g8Udg.js";import{a as j,r as se,s as ce}from"./DJNLWtK-.js";var M=[{id:`anthropics-skills`,label:`Anthropic Skills`,gitUrl:`https://github.com/anthropics/skills.git`,description:`Anthropic 官方维护的 Agent skills 集合。`,homepage:`https://github.com/anthropics/skills`},{id:`vercel-labs-skills`,label:`Vercel Labs Skills`,gitUrl:`https://github.com/vercel-labs/skills.git`,description:`Vercel Labs 维护的社区 Agent skills 集合。`,homepage:`https://github.com/vercel-labs/skills`}];function N(e){return M.find(t=>t.id===e)}var le=n(`<p class="truncate font-mono text-[11px] text-muted-foreground"> </p>`),ue=n(`<span class="shrink-0 text-[11px] text-muted-foreground"> </span>`),de=n(`<div class="flex shrink-0 items-center gap-3 border-b border-amber-500/40 bg-amber-500/10 px-4 py-2.5 text-xs" role="alert" data-testid="session-expired"><span class="min-w-0 flex-1"><span class="font-medium">Scan session expired.</span> <span class="text-muted-foreground">The pinned commit is no longer held by the daemon. Rescan this repository to continue.</span></span> <button type="button" class="h-7 shrink-0 rounded-md border border-border bg-background px-3 text-[11px] font-medium transition-colors hover:bg-muted/50 disabled:opacity-50">Rescan</button></div>`),fe=n(`<p class="px-4 py-8 text-center text-xs text-muted-foreground">Scanning…</p>`),pe=n(`<div class="px-4 text-center"><button type="button" class="rounded-md border border-border px-3 py-1 text-xs hover:bg-muted/50">Retry scan</button></div>`),me=n(`<p class="px-4 py-8 text-center text-xs text-destructive"> </p> <!>`,1),he=n(`<p class="px-4 py-8 text-center text-xs text-muted-foreground">No scan yet.</p>`),ge=n(`<p class="px-4 py-8 text-center text-xs text-muted-foreground">No installable skills found in this repository.</p>`),_e=n(`<button type="button" class="hover:text-foreground">Clear</button>`),ve=n(`<span class="mt-0.5 block text-[10px] text-amber-600 dark:text-amber-400"> </span>`),ye=n(`<button type="button"><input type="checkbox" class="mt-0.5 h-3.5 w-3.5" aria-label="Select skill"/> <span class="min-w-0 flex-1"><span class="block truncate text-[13px] font-medium text-foreground"> </span> <span class="mt-0.5 line-clamp-2 block text-[11px] text-muted-foreground"> </span> <!></span></button>`),be=n(`<p class="mt-2 text-xs text-muted-foreground">Loading…</p>`),xe=n(`<pre class="mt-2 max-h-48 overflow-auto rounded bg-muted/50 p-2 text-[11px] leading-4"> </pre>`),Se=n(`<p class="mt-2 text-xs text-muted-foreground">Select a skill to preview.</p>`),Ce=n(`<p class="mt-2 text-xs text-muted-foreground">No writable workspace providers. Import a directory workspace first.</p>`),we=n(`<li><label class="flex items-center gap-2 text-xs"><input type="checkbox" class="h-3.5 w-3.5"/> <span class="truncate"> </span></label></li>`),Te=n(`<ul class="mt-2 space-y-1"></ul>`),Ee=n(`<p class="mt-2 break-words text-xs text-destructive"> </p>`),De=n(`<div class="p-3 text-xs"><h2 class="font-medium text-muted-foreground">Dry-run preview</h2> <p class="mt-1"> </p></div>`),Oe=n(`<div class="flex items-center justify-between gap-2 rounded border border-border px-2 py-1"><span class="truncate"> </span> <button type="button" class="shrink-0 rounded bg-primary/10 px-2 py-0.5 text-[10px] text-primary hover:bg-primary/20">View in Workspaces</button></div>`),ke=n(`<div class="mt-2 space-y-1"></div>`),Ae=n(`<div class="p-3 text-xs"><h2 class="font-medium text-muted-foreground"> </h2> <!></div>`),je=n(`<div class="flex min-h-0 flex-1"><section class="flex w-1/2 min-w-0 flex-col border-r border-border"><header class="flex shrink-0 items-center justify-between px-3 py-2 text-xs text-muted-foreground"><span> </span> <!></header> <div class="min-h-0 flex-1 overflow-y-auto"></div></section> <section class="flex w-1/2 min-w-0 flex-col overflow-y-auto"><div class="border-b border-border p-3"><h2 class="text-xs font-medium text-muted-foreground">Preview</h2> <!></div> <div class="border-b border-border p-3"><h2 class="text-xs font-medium text-muted-foreground"> </h2> <!> <div class="mt-2 flex gap-2"><button type="button" class="h-7 rounded-md border border-border px-2 text-[11px] hover:bg-muted/50 disabled:opacity-50">Dry-run</button> <button type="button" class="h-7 rounded-md bg-primary px-3 text-[11px] font-medium text-primary-foreground hover:bg-primary/90 disabled:opacity-50"> </button></div> <!></div> <!> <!></section></div>`),Me=n(`<div class="flex h-full flex-col overflow-hidden"><header class="flex shrink-0 items-center gap-3 border-b border-border px-4 py-3"><div class="min-w-0 flex-1"><h1 class="truncate text-sm font-semibold"> </h1> <!></div> <!> <form class="flex shrink-0 items-center gap-1"><input placeholder="branch / tag" title="Optional Git ref to scan (defaults to the repository default branch)" aria-label="Git ref for scanning" class="h-7 w-28 rounded-md border border-input bg-input/20 px-2 font-mono text-[11px] outline-none placeholder:text-muted-foreground focus-visible:border-ring"/> <button type="submit" class="h-7 rounded-md border border-border px-2 text-[11px] transition-colors hover:bg-muted/50 disabled:opacity-50"> </button></form> <button type="button" class="shrink-0 rounded-md border border-border px-2 py-1 text-[11px] hover:bg-muted/50">Discover</button></header> <!> <!></div>`);function P(n,u){r(u,!0);let M=E(),P=T(),F=h(()=>M?.()?.sourceId),Ne=h(()=>d(F)?N(d(F)):void 0),Pe=h(()=>d(F)?ce.user.find(e=>e.id===d(F)):void 0),Fe=h(()=>d(Ne)?.label??d(Pe)?.label??d(F)??`Repository`),I=h(()=>d(Ne)?.gitUrl??d(Pe)?.gitUrl),L=_(null),R=_(!1),z=_(null),B=_(null),V=_(!1),H=_(null),U=_(null),W=_(!1),G=_(null),K=_(``),Ie=h(()=>P?.()?.selected??``),q=h(()=>{let e=d(Ie).split(`,`).map(e=>e.trim()).filter(Boolean);return new Set(e)}),Le=h(()=>P?.()?.skill),J=_(ne([]));x(()=>{j()}),x(()=>{O()});let Re=h(ae),ze=_(null);x(()=>{d(F)&&d(I)&&(d(ze)===d(F)&&d(L)||(m(ze,d(F),!0),Y(d(I))))});async function Y(e,t){m(R,!0),m(z,null),m(L,null),m(B,null),m(H,null),m(U,null),m(G,null);let n=t?.trim()||void 0,{scan:r,error:i}=await A(e,n);m(L,r,!0),m(z,i,!0),r&&d(F)&&se(d(F),{skillCount:r.skills.length,commit:r.commit}),m(R,!1)}x(()=>{if(!d(L)||!d(Le)){m(B,null);return}let e=d(Le);if(!d(L).skills.some(t=>t.id===e)){m(B,null);return}Be(d(L).sessionId,e)});async function Be(e,t){m(V,!0),m(H,null);let{preview:n,error:r}=await oe(e,t);m(B,n,!0),m(H,r,!0),m(V,!1)}function Ve(e){let t=new Set(d(q));t.has(e.id)?t.delete(e.id):t.add(e.id),He(t)}function He(e){let t=[...e].join(`,`),n=new URLSearchParams(w.url.search);t?n.set(`selected`,t):n.delete(`selected`);let r=n.toString();C(`/repository/scan/${encodeURIComponent(d(F)??``)}${r?`?${r}`:``}`,{replaceState:!0})}function Ue(e){let t=new URLSearchParams(w.url.search);t.set(`skill`,e.id),C(`/repository/scan/${encodeURIComponent(d(F)??``)}?${t.toString()}`,{replaceState:!0})}function We(e){let t=d(J).some(t=>t.workspaceId===e.workspaceId&&t.providerId===e.providerId);m(J,t?d(J).filter(t=>t.workspaceId!==e.workspaceId||t.providerId!==e.providerId):[...d(J),e],!0)}function Ge(e){return d(J).some(t=>t.workspaceId===e.workspaceId&&t.providerId===e.providerId)}let Ke=h(()=>d(L)?d(L).skills.filter(e=>d(q).has(e.id)):[]),X=h(()=>d(Ke).filter(e=>e.installable));async function qe(e){if(!d(L)||d(X).length===0||d(J).length===0)return;m(W,!0),m(G,null),m(U,null);let t=d(X).map(e=>e.id),{result:n,error:r}=await k({sessionId:d(L).sessionId,skillIds:t,targets:d(J),dryRun:e});m(U,n,!0),m(G,r,!0),m(W,!1),n&&!e&&await O()}let Je=h(()=>D(d(H))||D(d(G))),Z=h(()=>d(U)?.kind===`result`?d(U):null),Ye=h(()=>d(Z)?d(Z).results.filter(e=>e.status===`installed`||e.status===`overwritten`):[]);function Xe(e,t,n){ie(`workspaces.provider`,{wsId:e,providerId:t},{skill:n})}var Ze=Me(),Qe=y(Ze),Q=y(Qe),$e=y(Q),et=f($e,!0),tt=g($e,2),nt=e=>{var t=le(),n=f(t,!0);v(()=>i(n,d(I))),c(e,t)};s(tt,e=>{d(I)&&e(nt)}),t(Q);var rt=g(Q,2),it=e=>{var t=ue(),n=f(t);v(e=>i(n,`${d(L).skills.length??``} skills · commit ${e??``}`),[()=>d(L).commit.slice(0,12)]),c(e,t)};s(rt,e=>{d(L)&&e(it)});var $=g(rt,2),at=y($);b(at);var ot=g(at,2),st=f(ot,!0);t($);var ct=g($,2);t(Qe);var lt=g(Qe,2),ut=e=>{var n=de(),r=g(y(n),2);t(n),v(()=>r.disabled=d(R)||!d(I)),a(`click`,r,()=>d(I)&&void Y(d(I),d(K))),c(e,n)};s(lt,e=>{d(Je)&&e(ut)});var dt=g(lt,2),ft=e=>{var t=fe();c(e,t)},pt=e=>{var t=me(),n=S(t),r=f(n,!0),o=g(n,2),l=e=>{var t=pe(),n=f(t);a(`click`,n,()=>Y(d(I))),c(e,t)};s(o,e=>{d(I)&&e(l)}),v(()=>i(r,d(z).message)),c(e,t)},mt=e=>{var t=he();c(e,t)},ht=e=>{var t=ge();c(e,t)},gt=n=>{var r=je(),o=y(r),l=y(o),u=y(l),p=f(u),m=g(u,2),h=e=>{var t=_e();a(`click`,t,()=>He(new Set)),c(e,t)};s(m,e=>{d(q).size>0&&e(h)}),t(l);var _=g(l,2);e(_,21,()=>d(L).skills,e=>e.id,(e,n)=>{var r=ye(),o=y(r);b(o);var l=g(o,2),u=y(l),p=f(u,!0),m=g(u,2),h=f(m,!0),_=g(m,2),x=e=>{var t=ve(),r=f(t,!0);v(e=>i(r,e),[()=>d(n).issues.join(` `)||`Not installable`]),c(e,t)};s(_,e=>{d(n).installable||e(x)}),t(l),t(r),v((e,t,a)=>{re(r,1,`flex w-full items-start gap-2 border-b border-border/70 px-3 py-2 text-left transition-colors ${e??``}`),te(r,`aria-pressed`,t),ee(o,a),i(p,d(n).name),i(h,d(n).description||`No description`)},[()=>d(q).has(d(n).id)?`bg-accent`:`hover:bg-accent/60`,()=>d(q).has(d(n).id),()=>d(q).has(d(n).id)]),a(`click`,r,()=>Ue(d(n))),a(`click`,o,e=>{e.stopPropagation(),Ve(d(n))}),c(e,r)}),t(_),t(o);var x=g(o,2),S=y(x),ne=g(y(S),2),C=e=>{var t=be();c(e,t)},w=e=>{var t=xe(),n=f(t,!0);v(()=>i(n,d(B).content)),c(e,t)},ie=e=>{var t=Se();c(e,t)};s(ne,e=>{d(V)?e(C):d(B)?e(w,1):e(ie,-1)}),t(S);var T=g(S,2),E=y(T),ae=f(E),D=g(E,2),oe=e=>{var t=Ce();c(e,t)},O=n=>{var r=Te();e(r,21,()=>d(Re),e=>e.target.workspaceId+`:`+e.target.providerId,(e,n)=>{var r=we(),o=y(r),s=y(o);b(s);var l=g(s,2),u=f(l,!0);t(o),t(r),v(e=>{ee(s,e),i(u,d(n).label)},[()=>Ge(d(n).target)]),a(`change`,s,()=>We(d(n).target)),c(e,r)}),t(r),c(n,r)};s(D,e=>{d(Re).length===0?e(oe):e(O,-1)});var k=g(D,2),A=y(k),j=g(A,2),se=f(j,!0);t(k);var ce=g(k,2),M=e=>{var t=Ee(),n=f(t,!0);v(()=>i(n,d(G).message)),c(e,t)};s(ce,e=>{d(G)&&!d(Je)&&e(M)}),t(T);var N=g(T,2),le=e=>{var n=De(),r=g(y(n),2),a=f(r);t(n),v(()=>i(a,`${d(U).totalInstalls??``} install(s) planned across ${d(U).destinations.length??``} destination(s).`)),c(e,n)};s(N,e=>{d(U)?.kind===`preview`&&e(le)});var ue=g(N,2),de=n=>{var r=Ae(),o=y(r),l=f(o),u=g(o,2),p=n=>{var r=ke();e(r,21,()=>d(Ye),e=>e.target.workspaceId+`:`+e.target.providerId+`:`+e.skillId,(e,n)=>{var r=Oe(),o=y(r),s=f(o),l=g(o,2);t(r),v(()=>i(s,`${d(n).skill??``} → ${d(n).target.workspaceId??``}/${d(n).target.providerId??``}`)),a(`click`,l,()=>Xe(d(n).target.workspaceId,d(n).target.providerId,d(n).skillId)),c(e,r)}),t(r),c(n,r)};s(u,e=>{d(Ye).length>0&&e(p)}),t(r),v(()=>i(l,`Installed ${d(Z).installed??``} · overwritten ${d(Z).overwritten??``} · skipped
|
|
2
|
+
${d(Z).skipped??``} · failed ${d(Z).failed??``}`)),c(n,r)};s(ue,e=>{d(Z)&&e(de)}),t(x),t(r),v(()=>{i(p,`${d(q).size??``} selected`),i(ae,`Install targets (${d(J).length??``})`),A.disabled=d(W)||d(X).length===0||d(J).length===0,j.disabled=d(W)||d(X).length===0||d(J).length===0,i(se,d(W)?`Installing…`:`Install`)}),a(`click`,A,()=>qe(!0)),a(`click`,j,()=>qe(!1)),c(n,r)};s(dt,e=>{d(R)?e(ft):d(z)?e(pt,1):d(L)?d(L).skills.length===0?e(ht,3):e(gt,-1):e(mt,2)}),t(Ze),v(()=>{i(et,d(Fe)),ot.disabled=d(R)||!d(I),i(st,d(R)?`Scanning…`:`Rescan`)}),o(`submit`,$,e=>{e.preventDefault(),d(I)&&Y(d(I),d(K))}),p(at,()=>d(K),e=>m(K,e)),a(`click`,ct,()=>C(`/repository`)),c(n,Ze),l()}u([`click`,`change`]);export{P as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e,s as t}from"./CmCJ0SKP.js";import"./xihTtKlq.js";import{t as n}from"./BkEnd9_Z.js";var r=new Set([`$$slots`,`$$events`,`$$legacy`]);function i(i,a){let o=e(a,r),s=[[`path`,{d:`m21 21-4.34-4.34`}],[`circle`,{cx:`11`,cy:`11`,r:`8`}]];n(i,t({name:`search`},()=>o,{get iconNode(){return s}}))}export{i as t};
|