daemora 1.0.3 → 1.0.5
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/LICENSE +663 -0
- package/README.md +69 -19
- package/SOUL.md +25 -24
- package/daemora-ui/README.md +11 -0
- package/package.json +12 -2
- package/skills/api-development.md +35 -0
- package/skills/artifacts-builder/SKILL.md +74 -0
- package/skills/artifacts-builder/scripts/bundle-artifact.sh +54 -0
- package/skills/artifacts-builder/scripts/init-artifact.sh +322 -0
- package/skills/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- package/skills/brand-guidelines.md +73 -0
- package/skills/browser.md +77 -0
- package/skills/changelog-generator.md +104 -0
- package/skills/coding.md +26 -10
- package/skills/content-research-writer.md +538 -0
- package/skills/data-analysis.md +27 -0
- package/skills/debugging.md +33 -0
- package/skills/devops.md +37 -0
- package/skills/document-docx.md +197 -0
- package/skills/document-pdf.md +294 -0
- package/skills/document-pptx.md +484 -0
- package/skills/document-xlsx.md +289 -0
- package/skills/domain-name-brainstormer.md +212 -0
- package/skills/file-organizer.md +433 -0
- package/skills/frontend-design.md +42 -0
- package/skills/image-enhancer.md +99 -0
- package/skills/invoice-organizer.md +446 -0
- package/skills/lead-research-assistant.md +199 -0
- package/skills/mcp-builder/SKILL.md +328 -0
- package/skills/mcp-builder/reference/evaluation.md +602 -0
- package/skills/mcp-builder/reference/mcp_best_practices.md +915 -0
- package/skills/mcp-builder/reference/node_mcp_server.md +916 -0
- package/skills/mcp-builder/reference/python_mcp_server.md +752 -0
- package/skills/mcp-builder/scripts/connections.py +151 -0
- package/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/skills/meeting-insights-analyzer.md +327 -0
- package/skills/orchestration.md +93 -0
- package/skills/raffle-winner-picker.md +159 -0
- package/skills/slack-gif-creator/SKILL.md +646 -0
- package/skills/slack-gif-creator/core/color_palettes.py +302 -0
- package/skills/slack-gif-creator/core/easing.py +230 -0
- package/skills/slack-gif-creator/core/frame_composer.py +469 -0
- package/skills/slack-gif-creator/core/gif_builder.py +246 -0
- package/skills/slack-gif-creator/core/typography.py +357 -0
- package/skills/slack-gif-creator/core/validators.py +264 -0
- package/skills/slack-gif-creator/core/visual_effects.py +494 -0
- package/skills/slack-gif-creator/requirements.txt +4 -0
- package/skills/slack-gif-creator/templates/bounce.py +106 -0
- package/skills/slack-gif-creator/templates/explode.py +331 -0
- package/skills/slack-gif-creator/templates/fade.py +329 -0
- package/skills/slack-gif-creator/templates/flip.py +291 -0
- package/skills/slack-gif-creator/templates/kaleidoscope.py +211 -0
- package/skills/slack-gif-creator/templates/morph.py +329 -0
- package/skills/slack-gif-creator/templates/move.py +293 -0
- package/skills/slack-gif-creator/templates/pulse.py +268 -0
- package/skills/slack-gif-creator/templates/shake.py +127 -0
- package/skills/slack-gif-creator/templates/slide.py +291 -0
- package/skills/slack-gif-creator/templates/spin.py +269 -0
- package/skills/slack-gif-creator/templates/wiggle.py +300 -0
- package/skills/slack-gif-creator/templates/zoom.py +312 -0
- package/skills/system-admin.md +44 -0
- package/skills/tailored-resume-generator.md +345 -0
- package/skills/theme-factory/SKILL.md +59 -0
- package/skills/theme-factory/theme-showcase.pdf +0 -0
- package/skills/theme-factory/themes/arctic-frost.md +19 -0
- package/skills/theme-factory/themes/botanical-garden.md +19 -0
- package/skills/theme-factory/themes/desert-rose.md +19 -0
- package/skills/theme-factory/themes/forest-canopy.md +19 -0
- package/skills/theme-factory/themes/golden-hour.md +19 -0
- package/skills/theme-factory/themes/midnight-galaxy.md +19 -0
- package/skills/theme-factory/themes/modern-minimalist.md +19 -0
- package/skills/theme-factory/themes/ocean-depths.md +19 -0
- package/skills/theme-factory/themes/sunset-boulevard.md +19 -0
- package/skills/theme-factory/themes/tech-innovation.md +19 -0
- package/skills/video-downloader.md +99 -0
- package/skills/web-development.md +32 -0
- package/skills/webapp-testing/SKILL.md +96 -0
- package/skills/webapp-testing/examples/console_logging.py +35 -0
- package/skills/webapp-testing/examples/element_discovery.py +40 -0
- package/skills/webapp-testing/examples/static_html_automation.py +33 -0
- package/skills/webapp-testing/scripts/with_server.py +106 -0
- package/src/agents/SubAgentManager.js +57 -12
- package/src/api/openai-compat.js +212 -0
- package/src/channels/TelegramChannel.js +5 -2
- package/src/channels/index.js +7 -10
- package/src/cli.js +129 -50
- package/src/config/agentProfiles.js +1 -0
- package/src/config/default.js +10 -0
- package/src/config/models.js +317 -71
- package/src/config/permissions.js +12 -0
- package/src/core/AgentLoop.js +70 -50
- package/src/core/Compaction.js +84 -2
- package/src/core/MessageQueue.js +90 -0
- package/src/core/Task.js +13 -0
- package/src/core/TaskQueue.js +1 -1
- package/src/core/TaskRunner.js +80 -5
- package/src/index.js +328 -48
- package/src/mcp/MCPAgentRunner.js +48 -11
- package/src/mcp/MCPManager.js +40 -2
- package/src/models/ModelRouter.js +67 -1
- package/src/safety/DockerSandbox.js +212 -0
- package/src/safety/ExecApproval.js +118 -0
- package/src/scheduler/Heartbeat.js +56 -21
- package/src/services/cleanup.js +106 -0
- package/src/services/sessions.js +39 -1
- package/src/setup/wizard.js +75 -4
- package/src/skills/SkillLoader.js +104 -17
- package/src/storage/TaskStore.js +19 -1
- package/src/systemPrompt.js +171 -328
- package/src/tools/browserAutomation.js +615 -104
- package/src/tools/executeCommand.js +19 -1
- package/src/tools/index.js +6 -0
- package/src/tools/manageAgents.js +55 -4
- package/src/tools/replyWithFile.js +62 -0
- package/src/tools/screenCapture.js +12 -1
- package/src/tools/taskManager.js +164 -0
- package/src/tools/useMCP.js +3 -1
- package/src/utils/Embeddings.js +157 -10
- package/src/webhooks/WebhookHandler.js +107 -0
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Exit on error
|
|
4
|
+
set -e
|
|
5
|
+
|
|
6
|
+
# Detect Node version
|
|
7
|
+
NODE_VERSION=$(node -v | cut -d'v' -f2 | cut -d'.' -f1)
|
|
8
|
+
|
|
9
|
+
echo "🔍 Detected Node.js version: $NODE_VERSION"
|
|
10
|
+
|
|
11
|
+
if [ "$NODE_VERSION" -lt 18 ]; then
|
|
12
|
+
echo "❌ Error: Node.js 18 or higher is required"
|
|
13
|
+
echo " Current version: $(node -v)"
|
|
14
|
+
exit 1
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
# Set Vite version based on Node version
|
|
18
|
+
if [ "$NODE_VERSION" -ge 20 ]; then
|
|
19
|
+
VITE_VERSION="latest"
|
|
20
|
+
echo "✅ Using Vite latest (Node 20+)"
|
|
21
|
+
else
|
|
22
|
+
VITE_VERSION="5.4.11"
|
|
23
|
+
echo "✅ Using Vite $VITE_VERSION (Node 18 compatible)"
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
# Detect OS and set sed syntax
|
|
27
|
+
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
28
|
+
SED_INPLACE="sed -i ''"
|
|
29
|
+
else
|
|
30
|
+
SED_INPLACE="sed -i"
|
|
31
|
+
fi
|
|
32
|
+
|
|
33
|
+
# Check if pnpm is installed
|
|
34
|
+
if ! command -v pnpm &> /dev/null; then
|
|
35
|
+
echo "📦 pnpm not found. Installing pnpm..."
|
|
36
|
+
npm install -g pnpm
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
# Check if project name is provided
|
|
40
|
+
if [ -z "$1" ]; then
|
|
41
|
+
echo "❌ Usage: ./create-react-shadcn-complete.sh <project-name>"
|
|
42
|
+
exit 1
|
|
43
|
+
fi
|
|
44
|
+
|
|
45
|
+
PROJECT_NAME="$1"
|
|
46
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
47
|
+
COMPONENTS_TARBALL="$SCRIPT_DIR/shadcn-components.tar.gz"
|
|
48
|
+
|
|
49
|
+
# Check if components tarball exists
|
|
50
|
+
if [ ! -f "$COMPONENTS_TARBALL" ]; then
|
|
51
|
+
echo "❌ Error: shadcn-components.tar.gz not found in script directory"
|
|
52
|
+
echo " Expected location: $COMPONENTS_TARBALL"
|
|
53
|
+
exit 1
|
|
54
|
+
fi
|
|
55
|
+
|
|
56
|
+
echo "🚀 Creating new React + Vite project: $PROJECT_NAME"
|
|
57
|
+
|
|
58
|
+
# Create new Vite project (always use latest create-vite, pin vite version later)
|
|
59
|
+
pnpm create vite "$PROJECT_NAME" --template react-ts
|
|
60
|
+
|
|
61
|
+
# Navigate into project directory
|
|
62
|
+
cd "$PROJECT_NAME"
|
|
63
|
+
|
|
64
|
+
echo "🧹 Cleaning up Vite template..."
|
|
65
|
+
$SED_INPLACE '/<link rel="icon".*vite\.svg/d' index.html
|
|
66
|
+
$SED_INPLACE 's/<title>.*<\/title>/<title>'"$PROJECT_NAME"'<\/title>/' index.html
|
|
67
|
+
|
|
68
|
+
echo "📦 Installing base dependencies..."
|
|
69
|
+
pnpm install
|
|
70
|
+
|
|
71
|
+
# Pin Vite version for Node 18
|
|
72
|
+
if [ "$NODE_VERSION" -lt 20 ]; then
|
|
73
|
+
echo "📌 Pinning Vite to $VITE_VERSION for Node 18 compatibility..."
|
|
74
|
+
pnpm add -D vite@$VITE_VERSION
|
|
75
|
+
fi
|
|
76
|
+
|
|
77
|
+
echo "📦 Installing Tailwind CSS and dependencies..."
|
|
78
|
+
pnpm install -D tailwindcss@3.4.1 postcss autoprefixer @types/node tailwindcss-animate
|
|
79
|
+
pnpm install class-variance-authority clsx tailwind-merge lucide-react next-themes
|
|
80
|
+
|
|
81
|
+
echo "⚙️ Creating Tailwind and PostCSS configuration..."
|
|
82
|
+
cat > postcss.config.js << 'EOF'
|
|
83
|
+
export default {
|
|
84
|
+
plugins: {
|
|
85
|
+
tailwindcss: {},
|
|
86
|
+
autoprefixer: {},
|
|
87
|
+
},
|
|
88
|
+
}
|
|
89
|
+
EOF
|
|
90
|
+
|
|
91
|
+
echo "📝 Configuring Tailwind with shadcn theme..."
|
|
92
|
+
cat > tailwind.config.js << 'EOF'
|
|
93
|
+
/** @type {import('tailwindcss').Config} */
|
|
94
|
+
module.exports = {
|
|
95
|
+
darkMode: ["class"],
|
|
96
|
+
content: [
|
|
97
|
+
"./index.html",
|
|
98
|
+
"./src/**/*.{js,ts,jsx,tsx}",
|
|
99
|
+
],
|
|
100
|
+
theme: {
|
|
101
|
+
extend: {
|
|
102
|
+
colors: {
|
|
103
|
+
border: "hsl(var(--border))",
|
|
104
|
+
input: "hsl(var(--input))",
|
|
105
|
+
ring: "hsl(var(--ring))",
|
|
106
|
+
background: "hsl(var(--background))",
|
|
107
|
+
foreground: "hsl(var(--foreground))",
|
|
108
|
+
primary: {
|
|
109
|
+
DEFAULT: "hsl(var(--primary))",
|
|
110
|
+
foreground: "hsl(var(--primary-foreground))",
|
|
111
|
+
},
|
|
112
|
+
secondary: {
|
|
113
|
+
DEFAULT: "hsl(var(--secondary))",
|
|
114
|
+
foreground: "hsl(var(--secondary-foreground))",
|
|
115
|
+
},
|
|
116
|
+
destructive: {
|
|
117
|
+
DEFAULT: "hsl(var(--destructive))",
|
|
118
|
+
foreground: "hsl(var(--destructive-foreground))",
|
|
119
|
+
},
|
|
120
|
+
muted: {
|
|
121
|
+
DEFAULT: "hsl(var(--muted))",
|
|
122
|
+
foreground: "hsl(var(--muted-foreground))",
|
|
123
|
+
},
|
|
124
|
+
accent: {
|
|
125
|
+
DEFAULT: "hsl(var(--accent))",
|
|
126
|
+
foreground: "hsl(var(--accent-foreground))",
|
|
127
|
+
},
|
|
128
|
+
popover: {
|
|
129
|
+
DEFAULT: "hsl(var(--popover))",
|
|
130
|
+
foreground: "hsl(var(--popover-foreground))",
|
|
131
|
+
},
|
|
132
|
+
card: {
|
|
133
|
+
DEFAULT: "hsl(var(--card))",
|
|
134
|
+
foreground: "hsl(var(--card-foreground))",
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
borderRadius: {
|
|
138
|
+
lg: "var(--radius)",
|
|
139
|
+
md: "calc(var(--radius) - 2px)",
|
|
140
|
+
sm: "calc(var(--radius) - 4px)",
|
|
141
|
+
},
|
|
142
|
+
keyframes: {
|
|
143
|
+
"accordion-down": {
|
|
144
|
+
from: { height: "0" },
|
|
145
|
+
to: { height: "var(--radix-accordion-content-height)" },
|
|
146
|
+
},
|
|
147
|
+
"accordion-up": {
|
|
148
|
+
from: { height: "var(--radix-accordion-content-height)" },
|
|
149
|
+
to: { height: "0" },
|
|
150
|
+
},
|
|
151
|
+
},
|
|
152
|
+
animation: {
|
|
153
|
+
"accordion-down": "accordion-down 0.2s ease-out",
|
|
154
|
+
"accordion-up": "accordion-up 0.2s ease-out",
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
},
|
|
158
|
+
plugins: [require("tailwindcss-animate")],
|
|
159
|
+
}
|
|
160
|
+
EOF
|
|
161
|
+
|
|
162
|
+
# Add Tailwind directives and CSS variables to index.css
|
|
163
|
+
echo "🎨 Adding Tailwind directives and CSS variables..."
|
|
164
|
+
cat > src/index.css << 'EOF'
|
|
165
|
+
@tailwind base;
|
|
166
|
+
@tailwind components;
|
|
167
|
+
@tailwind utilities;
|
|
168
|
+
|
|
169
|
+
@layer base {
|
|
170
|
+
:root {
|
|
171
|
+
--background: 0 0% 100%;
|
|
172
|
+
--foreground: 0 0% 3.9%;
|
|
173
|
+
--card: 0 0% 100%;
|
|
174
|
+
--card-foreground: 0 0% 3.9%;
|
|
175
|
+
--popover: 0 0% 100%;
|
|
176
|
+
--popover-foreground: 0 0% 3.9%;
|
|
177
|
+
--primary: 0 0% 9%;
|
|
178
|
+
--primary-foreground: 0 0% 98%;
|
|
179
|
+
--secondary: 0 0% 96.1%;
|
|
180
|
+
--secondary-foreground: 0 0% 9%;
|
|
181
|
+
--muted: 0 0% 96.1%;
|
|
182
|
+
--muted-foreground: 0 0% 45.1%;
|
|
183
|
+
--accent: 0 0% 96.1%;
|
|
184
|
+
--accent-foreground: 0 0% 9%;
|
|
185
|
+
--destructive: 0 84.2% 60.2%;
|
|
186
|
+
--destructive-foreground: 0 0% 98%;
|
|
187
|
+
--border: 0 0% 89.8%;
|
|
188
|
+
--input: 0 0% 89.8%;
|
|
189
|
+
--ring: 0 0% 3.9%;
|
|
190
|
+
--radius: 0.5rem;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.dark {
|
|
194
|
+
--background: 0 0% 3.9%;
|
|
195
|
+
--foreground: 0 0% 98%;
|
|
196
|
+
--card: 0 0% 3.9%;
|
|
197
|
+
--card-foreground: 0 0% 98%;
|
|
198
|
+
--popover: 0 0% 3.9%;
|
|
199
|
+
--popover-foreground: 0 0% 98%;
|
|
200
|
+
--primary: 0 0% 98%;
|
|
201
|
+
--primary-foreground: 0 0% 9%;
|
|
202
|
+
--secondary: 0 0% 14.9%;
|
|
203
|
+
--secondary-foreground: 0 0% 98%;
|
|
204
|
+
--muted: 0 0% 14.9%;
|
|
205
|
+
--muted-foreground: 0 0% 63.9%;
|
|
206
|
+
--accent: 0 0% 14.9%;
|
|
207
|
+
--accent-foreground: 0 0% 98%;
|
|
208
|
+
--destructive: 0 62.8% 30.6%;
|
|
209
|
+
--destructive-foreground: 0 0% 98%;
|
|
210
|
+
--border: 0 0% 14.9%;
|
|
211
|
+
--input: 0 0% 14.9%;
|
|
212
|
+
--ring: 0 0% 83.1%;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
@layer base {
|
|
217
|
+
* {
|
|
218
|
+
@apply border-border;
|
|
219
|
+
}
|
|
220
|
+
body {
|
|
221
|
+
@apply bg-background text-foreground;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
EOF
|
|
225
|
+
|
|
226
|
+
# Add path aliases to tsconfig.json
|
|
227
|
+
echo "🔧 Adding path aliases to tsconfig.json..."
|
|
228
|
+
node -e "
|
|
229
|
+
const fs = require('fs');
|
|
230
|
+
const config = JSON.parse(fs.readFileSync('tsconfig.json', 'utf8'));
|
|
231
|
+
config.compilerOptions = config.compilerOptions || {};
|
|
232
|
+
config.compilerOptions.baseUrl = '.';
|
|
233
|
+
config.compilerOptions.paths = { '@/*': ['./src/*'] };
|
|
234
|
+
fs.writeFileSync('tsconfig.json', JSON.stringify(config, null, 2));
|
|
235
|
+
"
|
|
236
|
+
|
|
237
|
+
# Add path aliases to tsconfig.app.json
|
|
238
|
+
echo "🔧 Adding path aliases to tsconfig.app.json..."
|
|
239
|
+
node -e "
|
|
240
|
+
const fs = require('fs');
|
|
241
|
+
const path = 'tsconfig.app.json';
|
|
242
|
+
const content = fs.readFileSync(path, 'utf8');
|
|
243
|
+
// Remove comments manually
|
|
244
|
+
const lines = content.split('\n').filter(line => !line.trim().startsWith('//'));
|
|
245
|
+
const jsonContent = lines.join('\n');
|
|
246
|
+
const config = JSON.parse(jsonContent.replace(/\/\*[\s\S]*?\*\//g, '').replace(/,(\s*[}\]])/g, '\$1'));
|
|
247
|
+
config.compilerOptions = config.compilerOptions || {};
|
|
248
|
+
config.compilerOptions.baseUrl = '.';
|
|
249
|
+
config.compilerOptions.paths = { '@/*': ['./src/*'] };
|
|
250
|
+
fs.writeFileSync(path, JSON.stringify(config, null, 2));
|
|
251
|
+
"
|
|
252
|
+
|
|
253
|
+
# Update vite.config.ts
|
|
254
|
+
echo "⚙️ Updating Vite configuration..."
|
|
255
|
+
cat > vite.config.ts << 'EOF'
|
|
256
|
+
import path from "path";
|
|
257
|
+
import react from "@vitejs/plugin-react";
|
|
258
|
+
import { defineConfig } from "vite";
|
|
259
|
+
|
|
260
|
+
export default defineConfig({
|
|
261
|
+
plugins: [react()],
|
|
262
|
+
resolve: {
|
|
263
|
+
alias: {
|
|
264
|
+
"@": path.resolve(__dirname, "./src"),
|
|
265
|
+
},
|
|
266
|
+
},
|
|
267
|
+
});
|
|
268
|
+
EOF
|
|
269
|
+
|
|
270
|
+
# Install all shadcn/ui dependencies
|
|
271
|
+
echo "📦 Installing shadcn/ui dependencies..."
|
|
272
|
+
pnpm install @radix-ui/react-accordion @radix-ui/react-aspect-ratio @radix-ui/react-avatar @radix-ui/react-checkbox @radix-ui/react-collapsible @radix-ui/react-context-menu @radix-ui/react-dialog @radix-ui/react-dropdown-menu @radix-ui/react-hover-card @radix-ui/react-label @radix-ui/react-menubar @radix-ui/react-navigation-menu @radix-ui/react-popover @radix-ui/react-progress @radix-ui/react-radio-group @radix-ui/react-scroll-area @radix-ui/react-select @radix-ui/react-separator @radix-ui/react-slider @radix-ui/react-slot @radix-ui/react-switch @radix-ui/react-tabs @radix-ui/react-toast @radix-ui/react-toggle @radix-ui/react-toggle-group @radix-ui/react-tooltip
|
|
273
|
+
pnpm install sonner cmdk vaul embla-carousel-react react-day-picker react-resizable-panels date-fns react-hook-form @hookform/resolvers zod
|
|
274
|
+
|
|
275
|
+
# Extract shadcn components from tarball
|
|
276
|
+
echo "📦 Extracting shadcn/ui components..."
|
|
277
|
+
tar -xzf "$COMPONENTS_TARBALL" -C src/
|
|
278
|
+
|
|
279
|
+
# Create components.json for reference
|
|
280
|
+
echo "📝 Creating components.json config..."
|
|
281
|
+
cat > components.json << 'EOF'
|
|
282
|
+
{
|
|
283
|
+
"$schema": "https://ui.shadcn.com/schema.json",
|
|
284
|
+
"style": "default",
|
|
285
|
+
"rsc": false,
|
|
286
|
+
"tsx": true,
|
|
287
|
+
"tailwind": {
|
|
288
|
+
"config": "tailwind.config.js",
|
|
289
|
+
"css": "src/index.css",
|
|
290
|
+
"baseColor": "slate",
|
|
291
|
+
"cssVariables": true,
|
|
292
|
+
"prefix": ""
|
|
293
|
+
},
|
|
294
|
+
"aliases": {
|
|
295
|
+
"components": "@/components",
|
|
296
|
+
"utils": "@/lib/utils",
|
|
297
|
+
"ui": "@/components/ui",
|
|
298
|
+
"lib": "@/lib",
|
|
299
|
+
"hooks": "@/hooks"
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
EOF
|
|
303
|
+
|
|
304
|
+
echo "✅ Setup complete! You can now use Tailwind CSS and shadcn/ui in your project."
|
|
305
|
+
echo ""
|
|
306
|
+
echo "📦 Included components (40+ total):"
|
|
307
|
+
echo " - accordion, alert, aspect-ratio, avatar, badge, breadcrumb"
|
|
308
|
+
echo " - button, calendar, card, carousel, checkbox, collapsible"
|
|
309
|
+
echo " - command, context-menu, dialog, drawer, dropdown-menu"
|
|
310
|
+
echo " - form, hover-card, input, label, menubar, navigation-menu"
|
|
311
|
+
echo " - popover, progress, radio-group, resizable, scroll-area"
|
|
312
|
+
echo " - select, separator, sheet, skeleton, slider, sonner"
|
|
313
|
+
echo " - switch, table, tabs, textarea, toast, toggle, toggle-group, tooltip"
|
|
314
|
+
echo ""
|
|
315
|
+
echo "To start developing:"
|
|
316
|
+
echo " cd $PROJECT_NAME"
|
|
317
|
+
echo " pnpm dev"
|
|
318
|
+
echo ""
|
|
319
|
+
echo "📚 Import components like:"
|
|
320
|
+
echo " import { Button } from '@/components/ui/button'"
|
|
321
|
+
echo " import { Card, CardHeader, CardTitle, CardContent } from '@/components/ui/card'"
|
|
322
|
+
echo " import { Dialog, DialogContent, DialogTrigger } from '@/components/ui/dialog'"
|
|
Binary file
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: brand-guidelines
|
|
3
|
+
description: Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
|
|
4
|
+
license: Complete terms in LICENSE.txt
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Anthropic Brand Styling
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
To access Anthropic's official brand identity and style resources, use this skill.
|
|
12
|
+
|
|
13
|
+
**Keywords**: branding, corporate identity, visual identity, post-processing, styling, brand colors, typography, Anthropic brand, visual formatting, visual design
|
|
14
|
+
|
|
15
|
+
## Brand Guidelines
|
|
16
|
+
|
|
17
|
+
### Colors
|
|
18
|
+
|
|
19
|
+
**Main Colors:**
|
|
20
|
+
|
|
21
|
+
- Dark: `#141413` - Primary text and dark backgrounds
|
|
22
|
+
- Light: `#faf9f5` - Light backgrounds and text on dark
|
|
23
|
+
- Mid Gray: `#b0aea5` - Secondary elements
|
|
24
|
+
- Light Gray: `#e8e6dc` - Subtle backgrounds
|
|
25
|
+
|
|
26
|
+
**Accent Colors:**
|
|
27
|
+
|
|
28
|
+
- Orange: `#d97757` - Primary accent
|
|
29
|
+
- Blue: `#6a9bcc` - Secondary accent
|
|
30
|
+
- Green: `#788c5d` - Tertiary accent
|
|
31
|
+
|
|
32
|
+
### Typography
|
|
33
|
+
|
|
34
|
+
- **Headings**: Poppins (with Arial fallback)
|
|
35
|
+
- **Body Text**: Lora (with Georgia fallback)
|
|
36
|
+
- **Note**: Fonts should be pre-installed in your environment for best results
|
|
37
|
+
|
|
38
|
+
## Features
|
|
39
|
+
|
|
40
|
+
### Smart Font Application
|
|
41
|
+
|
|
42
|
+
- Applies Poppins font to headings (24pt and larger)
|
|
43
|
+
- Applies Lora font to body text
|
|
44
|
+
- Automatically falls back to Arial/Georgia if custom fonts unavailable
|
|
45
|
+
- Preserves readability across all systems
|
|
46
|
+
|
|
47
|
+
### Text Styling
|
|
48
|
+
|
|
49
|
+
- Headings (24pt+): Poppins font
|
|
50
|
+
- Body text: Lora font
|
|
51
|
+
- Smart color selection based on background
|
|
52
|
+
- Preserves text hierarchy and formatting
|
|
53
|
+
|
|
54
|
+
### Shape and Accent Colors
|
|
55
|
+
|
|
56
|
+
- Non-text shapes use accent colors
|
|
57
|
+
- Cycles through orange, blue, and green accents
|
|
58
|
+
- Maintains visual interest while staying on-brand
|
|
59
|
+
|
|
60
|
+
## Technical Details
|
|
61
|
+
|
|
62
|
+
### Font Management
|
|
63
|
+
|
|
64
|
+
- Uses system-installed Poppins and Lora fonts when available
|
|
65
|
+
- Provides automatic fallback to Arial (headings) and Georgia (body)
|
|
66
|
+
- No font installation required - works with existing system fonts
|
|
67
|
+
- For best results, pre-install Poppins and Lora fonts in your environment
|
|
68
|
+
|
|
69
|
+
### Color Application
|
|
70
|
+
|
|
71
|
+
- Uses RGB color values for precise brand matching
|
|
72
|
+
- Applied via python-pptx's RGBColor class
|
|
73
|
+
- Maintains color fidelity across different systems
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: browser
|
|
3
|
+
description: Web browsing, scraping, form filling, testing, automation with accessibility snapshots
|
|
4
|
+
triggers: browser, browse, scrape, web page, click, fill form, login, automate, screenshot, navigate, website, open page, test site, check page
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Snapshot-First Workflow (MANDATORY)
|
|
8
|
+
|
|
9
|
+
1. **Navigate** → `browserAction("navigate", "https://example.com")`
|
|
10
|
+
2. **Snapshot** → `browserAction("snapshot")` — get ARIA tree with refs (e1, e2, ...)
|
|
11
|
+
3. **Act using refs** → `browserAction("click", "e5")`, `browserAction("fill", "e3", "hello")`
|
|
12
|
+
4. **Verify** → snapshot again or screenshot to confirm result
|
|
13
|
+
5. **Repeat** until task is done
|
|
14
|
+
|
|
15
|
+
## Why Refs > CSS Selectors
|
|
16
|
+
- Refs (e1, e5) come from accessibility tree — stable, semantic
|
|
17
|
+
- CSS selectors break on class name changes, dynamic IDs
|
|
18
|
+
- Always take a fresh snapshot after navigation or major page changes
|
|
19
|
+
|
|
20
|
+
## Key Actions
|
|
21
|
+
|
|
22
|
+
### Navigation
|
|
23
|
+
- `navigate(url)` — go to URL (localhost allowed)
|
|
24
|
+
- `reload`, `goBack`, `goForward`
|
|
25
|
+
|
|
26
|
+
### Inspection
|
|
27
|
+
- `snapshot()` — ARIA tree with refs. Use `snapshot("interactive")` for only clickable/fillable elements
|
|
28
|
+
- `screenshot(path?)` — pixel capture. Use `screenshot(selector)` for element screenshot
|
|
29
|
+
- `getText(selector|ref?)` — text content
|
|
30
|
+
- `getContent(selector?)` — innerHTML
|
|
31
|
+
- `getLinks` — all links on page
|
|
32
|
+
- `console(filter?,limit?)` — browser console logs. filter: "all", "error", "warn", "log"
|
|
33
|
+
|
|
34
|
+
### Interaction
|
|
35
|
+
- `click(ref|selector, opts?)` — click. opts: "double", "right", "middle"
|
|
36
|
+
- `fill(ref|selector, value)` — clear + fill input
|
|
37
|
+
- `type(ref|selector, text)` — keystroke-by-keystroke typing
|
|
38
|
+
- `hover(ref|selector)` — mouse hover
|
|
39
|
+
- `selectOption(ref|selector, value)` — dropdown selection
|
|
40
|
+
- `pressKey(key)` — Enter, Tab, Escape, ArrowDown, etc.
|
|
41
|
+
- `scroll(direction|ref|selector, amount?)` — up/down/left/right or scroll to element
|
|
42
|
+
- `drag(source, target)` — drag and drop
|
|
43
|
+
|
|
44
|
+
### Waiting
|
|
45
|
+
- `waitFor(selector)` — wait for element
|
|
46
|
+
- `waitFor("text:Loading complete")` — wait for text on page
|
|
47
|
+
- `waitFor("url:/dashboard")` — wait for URL change
|
|
48
|
+
- `waitFor("js:document.readyState==='complete'")` — JS predicate
|
|
49
|
+
- `waitFor("networkidle")` — wait for network idle
|
|
50
|
+
- `waitForNavigation(timeout?)` — wait for page navigation
|
|
51
|
+
|
|
52
|
+
### State
|
|
53
|
+
- `getCookies(domain?)`, `setCookie(json)`, `clearCookies`
|
|
54
|
+
- `getStorage(local|session, key?)`, `setStorage(json)`, `clearStorage(local|session)`
|
|
55
|
+
|
|
56
|
+
### Files
|
|
57
|
+
- `upload(ref|selector, filePath)` — file input upload
|
|
58
|
+
- `download(ref|selector)` — click + capture download
|
|
59
|
+
- `pdf(path?)` — save page as PDF
|
|
60
|
+
|
|
61
|
+
### Tabs
|
|
62
|
+
- `newTab(url?)`, `switchTab(targetId)`, `listTabs`, `closeTab(targetId?)`
|
|
63
|
+
|
|
64
|
+
### Other
|
|
65
|
+
- `resize("1920x1080")` — change viewport
|
|
66
|
+
- `highlight(ref|selector)` — visual highlight for 3s
|
|
67
|
+
- `evaluate(js)` — run JavaScript
|
|
68
|
+
- `handleDialog(accept|dismiss, text?)`
|
|
69
|
+
- `newSession(profile?)` — fresh session (preserves cookies per profile)
|
|
70
|
+
- `status` — browser state
|
|
71
|
+
- `close` — shutdown
|
|
72
|
+
|
|
73
|
+
## Don't
|
|
74
|
+
- Don't use CSS selectors when you have refs from a snapshot
|
|
75
|
+
- Don't skip snapshot — blind clicking fails on dynamic pages
|
|
76
|
+
- Don't forget to take a fresh snapshot after navigation changes the page
|
|
77
|
+
- Don't assume element positions — always verify with snapshot or screenshot
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: changelog-generator
|
|
3
|
+
description: Automatically creates user-facing changelogs from git commits by analyzing commit history, categorizing changes, and transforming technical commits into clear, customer-friendly release notes. Turns hours of manual changelog writing into minutes of automated generation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Changelog Generator
|
|
7
|
+
|
|
8
|
+
This skill transforms technical git commits into polished, user-friendly changelogs that your customers and users will actually understand and appreciate.
|
|
9
|
+
|
|
10
|
+
## When to Use This Skill
|
|
11
|
+
|
|
12
|
+
- Preparing release notes for a new version
|
|
13
|
+
- Creating weekly or monthly product update summaries
|
|
14
|
+
- Documenting changes for customers
|
|
15
|
+
- Writing changelog entries for app store submissions
|
|
16
|
+
- Generating update notifications
|
|
17
|
+
- Creating internal release documentation
|
|
18
|
+
- Maintaining a public changelog/product updates page
|
|
19
|
+
|
|
20
|
+
## What This Skill Does
|
|
21
|
+
|
|
22
|
+
1. **Scans Git History**: Analyzes commits from a specific time period or between versions
|
|
23
|
+
2. **Categorizes Changes**: Groups commits into logical categories (features, improvements, bug fixes, breaking changes, security)
|
|
24
|
+
3. **Translates Technical → User-Friendly**: Converts developer commits into customer language
|
|
25
|
+
4. **Formats Professionally**: Creates clean, structured changelog entries
|
|
26
|
+
5. **Filters Noise**: Excludes internal commits (refactoring, tests, etc.)
|
|
27
|
+
6. **Follows Best Practices**: Applies changelog guidelines and your brand voice
|
|
28
|
+
|
|
29
|
+
## How to Use
|
|
30
|
+
|
|
31
|
+
### Basic Usage
|
|
32
|
+
|
|
33
|
+
From your project repository:
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
Create a changelog from commits since last release
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
Generate changelog for all commits from the past week
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
Create release notes for version 2.5.0
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### With Specific Date Range
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
Create a changelog for all commits between March 1 and March 15
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### With Custom Guidelines
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
Create a changelog for commits since v2.4.0, using my changelog
|
|
57
|
+
guidelines from CHANGELOG_STYLE.md
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Example
|
|
61
|
+
|
|
62
|
+
**User**: "Create a changelog for commits from the past 7 days"
|
|
63
|
+
|
|
64
|
+
**Output**:
|
|
65
|
+
```markdown
|
|
66
|
+
# Updates - Week of March 10, 2024
|
|
67
|
+
|
|
68
|
+
## ✨ New Features
|
|
69
|
+
|
|
70
|
+
- **Team Workspaces**: Create separate workspaces for different
|
|
71
|
+
projects. Invite team members and keep everything organized.
|
|
72
|
+
|
|
73
|
+
- **Keyboard Shortcuts**: Press ? to see all available shortcuts.
|
|
74
|
+
Navigate faster without touching your mouse.
|
|
75
|
+
|
|
76
|
+
## 🔧 Improvements
|
|
77
|
+
|
|
78
|
+
- **Faster Sync**: Files now sync 2x faster across devices
|
|
79
|
+
- **Better Search**: Search now includes file contents, not just titles
|
|
80
|
+
|
|
81
|
+
## 🐛 Fixes
|
|
82
|
+
|
|
83
|
+
- Fixed issue where large images wouldn't upload
|
|
84
|
+
- Resolved timezone confusion in scheduled posts
|
|
85
|
+
- Corrected notification badge count
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Inspired by:** Manik Aggarwal's use case from Lenny's Newsletter
|
|
89
|
+
|
|
90
|
+
## Tips
|
|
91
|
+
|
|
92
|
+
- Run from your git repository root
|
|
93
|
+
- Specify date ranges for focused changelogs
|
|
94
|
+
- Use your CHANGELOG_STYLE.md for consistent formatting
|
|
95
|
+
- Review and adjust the generated changelog before publishing
|
|
96
|
+
- Save output directly to CHANGELOG.md
|
|
97
|
+
|
|
98
|
+
## Related Use Cases
|
|
99
|
+
|
|
100
|
+
- Creating GitHub release notes
|
|
101
|
+
- Writing app store update descriptions
|
|
102
|
+
- Generating email updates for users
|
|
103
|
+
- Creating social media announcement posts
|
|
104
|
+
|
package/skills/coding.md
CHANGED
|
@@ -1,14 +1,30 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: coding
|
|
3
3
|
description: Use when writing, debugging, or reviewing code
|
|
4
|
-
triggers: code, function, bug, error, refactor, implement, class, module, typescript, javascript, python, api, endpoint, test, debug
|
|
4
|
+
triggers: code, function, bug, error, refactor, implement, class, module, typescript, javascript, python, api, endpoint, test, debug, fix, PR, pull request, commit, git
|
|
5
5
|
---
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
1. **Read
|
|
9
|
-
2. **
|
|
10
|
-
3. **
|
|
11
|
-
4. **
|
|
12
|
-
5. **
|
|
13
|
-
|
|
14
|
-
|
|
6
|
+
## Workflow: Read → Understand → Change → Verify → Test
|
|
7
|
+
|
|
8
|
+
1. **Read** — readFile every file you'll touch. Check imports, patterns, conventions.
|
|
9
|
+
2. **Understand** — trace data flow. Find callers. Check tests.
|
|
10
|
+
3. **Change** — editFile for surgical fixes. writeFile only for new files or full rewrites.
|
|
11
|
+
4. **Verify** — readFile after every edit. Check the diff is what you intended.
|
|
12
|
+
5. **Test** — run build + tests. If they fail, fix and re-run. Don't finalize with failing tests.
|
|
13
|
+
|
|
14
|
+
## Rules
|
|
15
|
+
- Match existing code style (naming, indentation, patterns)
|
|
16
|
+
- Don't add comments, docstrings, or type annotations to code you didn't change
|
|
17
|
+
- Don't refactor code you weren't asked to refactor
|
|
18
|
+
- Don't add error handling for impossible scenarios
|
|
19
|
+
- Security: no injection, XSS, hardcoded secrets, path traversal
|
|
20
|
+
|
|
21
|
+
## Git Workflow
|
|
22
|
+
- Read the diff before committing: `git diff`
|
|
23
|
+
- Write clear commit messages: imperative, present tense, explain WHY
|
|
24
|
+
- One logical change per commit
|
|
25
|
+
|
|
26
|
+
## Code Review
|
|
27
|
+
- Check for bugs, security issues, performance problems
|
|
28
|
+
- Verify edge cases and error handling
|
|
29
|
+
- Ensure tests cover the change
|
|
30
|
+
- Flag over-engineering and unnecessary complexity
|