lindoai-cli 1.4.5 → 1.4.7

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/SKILL.md ADDED
@@ -0,0 +1,361 @@
1
+ ---
2
+ name: lindoai
3
+ description: Lindo AI CLI - Command-line interface for the Lindo API
4
+ ---
5
+
6
+ # Lindo AI CLI
7
+
8
+ The `lindoai` CLI provides commands for interacting with the Lindo API, including website management, page editing, blog management, and more.
9
+
10
+ ## Authentication
11
+
12
+ ### Login via Browser
13
+ ```bash
14
+ lindoai login
15
+ ```
16
+ Opens your browser to authenticate and automatically configures your API key.
17
+
18
+ Options:
19
+ - `--timeout <seconds>` - Timeout for the login flow (default: 120)
20
+ - `--no-browser` - Display the authorization URL without opening the browser
21
+
22
+ ### Manual Configuration
23
+ ```bash
24
+ lindoai config set apiKey <your-api-key>
25
+ ```
26
+
27
+ ## Website Management
28
+
29
+ ### List Websites
30
+ ```bash
31
+ lindoai websites list
32
+ ```
33
+
34
+ ### Get Website Details
35
+ ```bash
36
+ lindoai websites get <website_id>
37
+ ```
38
+
39
+ ## Page Management
40
+
41
+ ### List Pages
42
+ ```bash
43
+ lindoai pages list <website_id>
44
+ ```
45
+
46
+ ### Get Page Details
47
+ ```bash
48
+ lindoai pages get <website_id> <page_id>
49
+ ```
50
+
51
+ ### Live Preview Editing Workflow
52
+
53
+ 1. **Start editing with live preview:**
54
+ ```bash
55
+ lindoai pages edit <website_id> <page_id> --background
56
+ ```
57
+ This fetches the page HTML, saves it locally, starts a preview server, and opens your browser.
58
+
59
+ Options:
60
+ - `--file <path>` - Save HTML to a specific path (default: ./page.html)
61
+ - `--background` - Run the preview server in the background
62
+
63
+ 2. **Edit the HTML file** in your editor. The browser will automatically refresh when you save.
64
+
65
+ 3. **Update the page** when you're done:
66
+ ```bash
67
+ lindoai pages update <website_id> <page_id> --html-file ./page.html
68
+ ```
69
+
70
+ 4. **Stop the preview server:**
71
+ ```bash
72
+ lindoai pages stop-preview
73
+ ```
74
+
75
+ ### Important: Global Header/Footer Limitation
76
+
77
+ **Global header and footer sections cannot be updated via the CLI.** When you edit a page locally:
78
+ - The preview shows the website's global header/footer for visual context
79
+ - Any changes you make to global sections are saved with the page only
80
+ - Changes do NOT propagate to other pages or the website settings
81
+ - To update global header/footer across all pages, use the Lindo webapp
82
+
83
+ This is by design - global sections are website-wide settings managed through the webapp.
84
+
85
+ ## Blog Management
86
+
87
+ ### List Blogs
88
+ ```bash
89
+ lindoai blogs list <website_id>
90
+ ```
91
+
92
+ ### Get Blog Details
93
+ ```bash
94
+ lindoai blogs get <website_id> <blog_id>
95
+ ```
96
+
97
+ ### Live Preview Editing Workflow
98
+
99
+ 1. **Start editing with live preview:**
100
+ ```bash
101
+ lindoai blogs edit <website_id> <blog_id> --background
102
+ ```
103
+
104
+ Options:
105
+ - `--file <path>` - Save HTML to a specific path (default: ./blog.html)
106
+ - `--background` - Run the preview server in the background
107
+
108
+ 2. **Edit the HTML file** in your editor. The browser will automatically refresh when you save.
109
+
110
+ 3. **Update the blog** when you're done:
111
+ ```bash
112
+ lindoai blogs update <website_id> <blog_id> --html-file ./blog.html
113
+ ```
114
+
115
+ 4. **Stop the preview server:**
116
+ ```bash
117
+ lindoai blogs stop-preview
118
+ ```
119
+
120
+ ## AI Agents
121
+
122
+ ### Run an Agent
123
+ ```bash
124
+ lindoai agents run <agent_id> --input '{"prompt": "Hello!"}'
125
+ ```
126
+
127
+ Options:
128
+ - `--input <json>` - Input data as JSON string
129
+ - `--stream` - Stream the response
130
+ - `--format <format>` - Output format (json, table)
131
+
132
+ ## Workflows
133
+
134
+ ### Start a Workflow
135
+ ```bash
136
+ lindoai workflows start <workflow_id> --params '{"key": "value"}'
137
+ ```
138
+
139
+ ### Get Workflow Status
140
+ ```bash
141
+ lindoai workflows status <instance_id>
142
+ ```
143
+
144
+ ## Workspace
145
+
146
+ ### Get Workspace Credits
147
+ ```bash
148
+ lindoai workspace credits
149
+ ```
150
+
151
+ ## Analytics
152
+
153
+ ### Get Workspace Analytics
154
+ ```bash
155
+ lindoai analytics workspace --from 2024-01-01 --to 2024-01-31
156
+ ```
157
+
158
+ ## Configuration
159
+
160
+ ### View Configuration
161
+ ```bash
162
+ lindoai config get apiKey
163
+ lindoai config get baseUrl
164
+ ```
165
+
166
+ ### Set Configuration
167
+ ```bash
168
+ lindoai config set apiKey <value>
169
+ lindoai config set baseUrl <value>
170
+ ```
171
+
172
+ ## Tips for AI Agents
173
+
174
+ 1. **Always authenticate first** using `lindoai login` or by setting the API key.
175
+ 2. **Use the live preview workflow** for editing pages and blogs - it provides instant visual feedback.
176
+ 3. **Run preview servers in background mode** (`--background`) to keep the terminal available.
177
+ 4. **Remember to stop preview servers** when done editing with `stop-preview`.
178
+ 5. **Use JSON format** (`--format json`) when you need to parse command output programmatically.
179
+
180
+ ## Page Building Guidelines
181
+
182
+ ### Structure Requirements
183
+
184
+ When building or editing Lindo pages, follow these structure requirements:
185
+
186
+ - **Output ONLY content HTML**: Generate only `<header>`, `<section>` elements, and `<footer>`
187
+ - **NO document wrapper tags**: Do NOT include `<!DOCTYPE html>`, `<html>`, `<head>`, or `<body>` tags
188
+ - **Unique section IDs**: Each section must have a unique id following the pattern: `_block_name_###` (e.g., `_hero_001`, `_features_002`)
189
+ - **Semantic structure**: Use proper HTML5 semantic elements for accessibility
190
+
191
+ Example structure:
192
+ ```html
193
+ <header id="_header_001" class="...">
194
+ <!-- Navigation content -->
195
+ </header>
196
+
197
+ <section id="_hero_001" class="...">
198
+ <!-- Hero content -->
199
+ </section>
200
+
201
+ <section id="_features_002" class="...">
202
+ <!-- Features content -->
203
+ </section>
204
+
205
+ <footer id="_footer_001" class="...">
206
+ <!-- Footer content -->
207
+ </footer>
208
+ ```
209
+
210
+ ### Tailwind CSS v3.4 Usage
211
+
212
+ Lindo pages use Tailwind CSS v3.4 for styling:
213
+
214
+ - **Utility-first approach**: Use Tailwind utility classes for all styling
215
+ - **No custom CSS**: Avoid writing custom CSS; use Tailwind utilities instead
216
+ - **NO font family classes**: Do NOT use `font-sans`, `font-serif`, `font-mono`, or any `font-[family]` classes - fonts are managed by the theme system
217
+ - **Responsive design**: Use responsive prefixes (`sm:`, `md:`, `lg:`, `xl:`, `2xl:`) for all breakpoints
218
+ - **Dark mode support**: Always include dark mode variants using the `dark:` prefix
219
+ - **Neutral shades**: Use neutral color shades for text and surfaces (e.g., `text-neutral-900 dark:text-neutral-100`)
220
+
221
+ Example:
222
+ ```html
223
+ <div class="px-4 py-8 md:px-8 lg:px-16 bg-white dark:bg-neutral-900">
224
+ <h1 class="text-3xl md:text-4xl lg:text-5xl text-neutral-900 dark:text-white">
225
+ Welcome
226
+ </h1>
227
+ </div>
228
+ ```
229
+
230
+ ### Animation System
231
+
232
+ Lindo uses a custom animation system with `data-motion` attributes for scroll-triggered animations:
233
+
234
+ **Available animation types:**
235
+ - `fade` - Simple fade in
236
+ - `fade-up` - Fade in while moving up
237
+ - `fade-down` - Fade in while moving down
238
+ - `fade-left` - Fade in while moving from left
239
+ - `fade-right` - Fade in while moving from right
240
+ - `scale` - Scale up while fading in
241
+ - `card` - Card entrance animation
242
+ - `heading` - Heading text animation
243
+ - `text` - Body text animation
244
+ - `image` - Image reveal animation
245
+ - `button` - Button entrance animation
246
+
247
+ **Usage:**
248
+ ```html
249
+ <section data-motion="fade-up">
250
+ <h2 data-motion="heading">Section Title</h2>
251
+ <p data-motion="text">Section description text.</p>
252
+ <img data-motion="image" src="..." alt="..." />
253
+ <button data-motion="button">Click Me</button>
254
+ </section>
255
+ ```
256
+
257
+ **Animation delays:** Use `data-motion-delay` for staggered animations:
258
+ ```html
259
+ <div data-motion="fade-up" data-motion-delay="0">First item</div>
260
+ <div data-motion="fade-up" data-motion-delay="100">Second item</div>
261
+ <div data-motion="fade-up" data-motion-delay="200">Third item</div>
262
+ ```
263
+
264
+ ### Logo Requirements
265
+
266
+ When adding logos to pages, use the `lindo-image-logo` attribute:
267
+
268
+ **Logo types:**
269
+ - `full` - Full logo (icon + text)
270
+ - `icon` - Icon only
271
+ - `text` - Text only
272
+
273
+ **Usage:**
274
+ ```html
275
+ <!-- Full logo -->
276
+ <img lindo-image-logo="full" src="https://cdn.ln-cdn.com/image/placeholder-logo-full.png" alt="Logo" class="h-8" />
277
+
278
+ <!-- Icon only -->
279
+ <img lindo-image-logo="icon" src="https://cdn.ln-cdn.com/image/placeholder-logo-icon.png" alt="Logo" class="h-8 w-8" />
280
+
281
+ <!-- Text only -->
282
+ <img lindo-image-logo="text" src="https://cdn.ln-cdn.com/image/placeholder-logo-text.png" alt="Logo" class="h-6" />
283
+ ```
284
+
285
+ **Important:**
286
+ - Do NOT add text or brand names as logo alternatives
287
+ - Always use the `lindo-image-logo` attribute for logos
288
+ - The actual logo will be replaced with the website's configured logo
289
+
290
+ ### Theme Guidelines
291
+
292
+ Follow these theme guidelines for consistent light and dark mode support:
293
+
294
+ **Light and Dark Mode:**
295
+ - Every element must specify both light and dark styles
296
+ - Use the `dark:` prefix for dark mode variants
297
+ - Test both modes to ensure readability and contrast
298
+
299
+ **Color Palette:**
300
+ - Use Tailwind's default color palette
301
+ - Primary colors: Use brand colors from the theme
302
+ - Text colors: `text-neutral-900 dark:text-white` for headings, `text-neutral-600 dark:text-neutral-400` for body text
303
+ - Background colors: `bg-white dark:bg-neutral-900` for main backgrounds
304
+ - Surface colors: `bg-neutral-50 dark:bg-neutral-800` for cards and elevated surfaces
305
+
306
+ **Gradients:**
307
+ - Apply gradient backgrounds where appropriate for visual interest
308
+ - Example: `bg-gradient-to-br from-blue-500 to-purple-600`
309
+
310
+ **Example with full theme support:**
311
+ ```html
312
+ <section class="py-16 bg-white dark:bg-neutral-900">
313
+ <div class="container mx-auto px-4">
314
+ <h2 class="text-3xl text-neutral-900 dark:text-white mb-4">
315
+ Section Title
316
+ </h2>
317
+ <p class="text-neutral-600 dark:text-neutral-400 mb-8">
318
+ Section description with proper contrast in both modes.
319
+ </p>
320
+ <div class="bg-neutral-50 dark:bg-neutral-800 rounded-lg p-6">
321
+ <p class="text-neutral-700 dark:text-neutral-300">
322
+ Card content with elevated surface.
323
+ </p>
324
+ </div>
325
+ </div>
326
+ </section>
327
+ ```
328
+
329
+ ### Core Rules
330
+
331
+ Follow these core rules when building pages:
332
+
333
+ 1. **No font family classes**: Never use `font-sans`, `font-serif`, `font-mono`, or custom font classes. The theme system manages fonts.
334
+
335
+ 2. **Responsive design is required**: All pages must be fully responsive. Use Tailwind's responsive prefixes:
336
+ - Mobile first: Start with base styles
337
+ - `sm:` - Small screens (640px+)
338
+ - `md:` - Medium screens (768px+)
339
+ - `lg:` - Large screens (1024px+)
340
+ - `xl:` - Extra large screens (1280px+)
341
+ - `2xl:` - 2X large screens (1536px+)
342
+
343
+ 3. **Accessibility considerations**:
344
+ - Use semantic HTML elements (`<header>`, `<nav>`, `<main>`, `<section>`, `<footer>`)
345
+ - Include `alt` attributes on all images
346
+ - Ensure sufficient color contrast (WCAG AA minimum)
347
+ - Use proper heading hierarchy (h1 → h2 → h3)
348
+ - Add `aria-label` attributes to interactive elements without visible text
349
+
350
+ 4. **Image handling**:
351
+ - Use responsive images with appropriate sizes
352
+ - Include descriptive `alt` text
353
+ - Use lazy loading for below-the-fold images: `loading="lazy"`
354
+
355
+ 5. **Link handling**:
356
+ - Use descriptive link text (avoid "click here")
357
+ - External links should have `target="_blank"` and `rel="noopener noreferrer"`
358
+
359
+ 6. **Container patterns**:
360
+ - Use `container mx-auto px-4` for consistent content width
361
+ - Apply consistent vertical padding: `py-12 md:py-16 lg:py-20`