kanban-lite 1.0.13 → 1.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/README.md +75 -13
  2. package/dist/cli.js +1027 -286
  3. package/dist/extension.js +915 -249
  4. package/dist/mcp-server.js +767 -35
  5. package/dist/sdk/index.cjs +636 -7
  6. package/dist/sdk/index.mjs +635 -7
  7. package/dist/sdk/sdk/KanbanSDK.d.ts +608 -2
  8. package/dist/sdk/sdk/fileUtils.d.ts +49 -0
  9. package/dist/sdk/sdk/index.d.ts +2 -1
  10. package/dist/sdk/sdk/parser.d.ts +23 -0
  11. package/dist/sdk/sdk/types.d.ts +61 -1
  12. package/dist/sdk/shared/config.d.ts +176 -6
  13. package/dist/sdk/shared/types.d.ts +173 -13
  14. package/dist/standalone-webview/icons-BUWXsIxt.js.map +1 -1
  15. package/dist/standalone-webview/index.js +38 -38
  16. package/dist/standalone-webview/index.js.map +1 -1
  17. package/dist/standalone-webview/react-vendor-DD6VaYq_.js.map +1 -1
  18. package/dist/standalone-webview/style.css +1 -1
  19. package/dist/standalone.js +595 -1
  20. package/dist/webview/icons-BUWXsIxt.js.map +1 -1
  21. package/dist/webview/index.js +38 -38
  22. package/dist/webview/index.js.map +1 -1
  23. package/dist/webview/react-vendor-DD6VaYq_.js.map +1 -1
  24. package/dist/webview/style.css +1 -1
  25. package/docs/api.md +635 -0
  26. package/docs/plans/2026-02-24-move-card-to-board-design.md +433 -0
  27. package/docs/sdk.md +1251 -380
  28. package/docs/webhooks.md +489 -0
  29. package/package.json +7 -1
  30. package/scripts/generate-api-docs.ts +665 -0
  31. package/scripts/generate-sdk-docs.ts +249 -0
  32. package/scripts/generate-webhooks-docs.ts +485 -0
  33. package/src/cli/index.ts +101 -4
  34. package/src/extension/KanbanPanel.ts +21 -0
  35. package/src/mcp-server/index.ts +37 -4
  36. package/src/sdk/KanbanSDK.ts +647 -4
  37. package/src/sdk/fileUtils.ts +49 -0
  38. package/src/sdk/index.ts +2 -1
  39. package/src/sdk/parser.ts +23 -0
  40. package/src/sdk/types.ts +84 -1
  41. package/src/shared/config.ts +177 -9
  42. package/src/shared/types.ts +165 -13
  43. package/src/standalone/__tests__/webhooks.test.ts +10 -14
  44. package/src/standalone/server.ts +34 -22
  45. package/src/standalone/webhooks.ts +134 -39
  46. package/src/webview/App.tsx +12 -0
  47. package/src/webview/components/FeatureEditor.tsx +122 -20
package/README.md CHANGED
@@ -37,7 +37,8 @@ kl add --title "My first task" --priority high
37
37
 
38
38
  ### Web UI
39
39
 
40
- - **5-column workflow**: Backlog, To Do, In Progress, Review, Done (fully customizable)
40
+ - **Multi-board support**: Create multiple boards with independent columns and settings
41
+ - **5-column workflow**: Backlog, To Do, In Progress, Review, Done (fully customizable per board)
41
42
  - **Drag-and-drop**: Move cards between columns and reorder within columns
42
43
  - **Split-view editor**: Board on left, inline markdown editor on right
43
44
  - **Layout toggle**: Switch between horizontal and vertical board layouts
@@ -117,6 +118,18 @@ kl comment add implement-search --author alice \
117
118
  kl comment edit implement-search c1 --body "Updated" # Edit a comment
118
119
  kl comment remove implement-search c1 # Remove a comment
119
120
 
121
+ # Boards
122
+ kl boards # List boards
123
+ kl boards add --id bugs --name "Bug Tracker" # Create a board
124
+ kl boards show bugs # Show board details
125
+ kl boards remove bugs # Remove an empty board
126
+ kl boards default bugs # Set default board
127
+ kl transfer card-42 --from default --to bugs # Transfer card between boards
128
+
129
+ # Target a specific board (works with most commands)
130
+ kl list --board bugs # List cards in a board
131
+ kl add --title "Login bug" --board bugs # Create card in a board
132
+
120
133
  # Manage columns
121
134
  kl columns # List columns
122
135
  kl columns add --id testing --name Testing # Add column
@@ -143,9 +156,15 @@ kl serve --port 8080 --no-browser # Custom port, no auto-o
143
156
 
144
157
  # Initialize features directory
145
158
  kl init
159
+
160
+ # Other
161
+ kl version # Print version
162
+ kl help # Show help
163
+ kl help sdk # Show SDK documentation
164
+ kl help api # Show REST API documentation
146
165
  ```
147
166
 
148
- Use `--json` for machine-readable output. Use `--dir <path>` to specify a custom features directory.
167
+ Use `--json` for machine-readable output. Use `--dir <path>` to specify a custom features directory. Use `--board <id>` to target a specific board.
149
168
 
150
169
  ## Standalone Server
151
170
 
@@ -171,6 +190,18 @@ The server provides:
171
190
 
172
191
  All responses follow the format `{ "ok": true, "data": ... }` or `{ "ok": false, "error": "message" }`. CORS is enabled for all origins.
173
192
 
193
+ > See the [full REST API documentation](docs/api.md) for detailed endpoint reference, request/response examples, and board-scoped routes.
194
+
195
+ #### Boards
196
+
197
+ | Method | Endpoint | Description |
198
+ |--------|----------|-------------|
199
+ | `GET` | `/api/boards` | List all boards |
200
+ | `POST` | `/api/boards` | Create a board |
201
+ | `GET` | `/api/boards/:boardId` | Get board configuration |
202
+ | `PUT` | `/api/boards/:boardId` | Update board configuration |
203
+ | `DELETE` | `/api/boards/:boardId` | Delete an empty board |
204
+
174
205
  #### Tasks
175
206
 
176
207
  | Method | Endpoint | Description |
@@ -182,6 +213,14 @@ All responses follow the format `{ "ok": true, "data": ... }` or `{ "ok": false,
182
213
  | `PATCH` | `/api/tasks/:id/move` | Move task to column/position |
183
214
  | `DELETE` | `/api/tasks/:id` | Delete a task |
184
215
 
216
+ Board-scoped equivalents are available at `/api/boards/:boardId/tasks/...`.
217
+
218
+ #### Transfer
219
+
220
+ | Method | Endpoint | Description |
221
+ |--------|----------|-------------|
222
+ | `POST` | `/api/boards/:boardId/tasks/:id/transfer` | Transfer a task to another board |
223
+
185
224
  #### Columns
186
225
 
187
226
  | Method | Endpoint | Description |
@@ -318,6 +357,11 @@ kanban-mcp --dir .kanban
318
357
 
319
358
  | Tool | Description |
320
359
  |------|-------------|
360
+ | `list_boards` | List all boards in the workspace |
361
+ | `create_board` | Create a new board with optional custom columns |
362
+ | `get_board` | Get board configuration and details |
363
+ | `delete_board` | Delete an empty board |
364
+ | `transfer_card` | Move a card from one board to another |
321
365
  | `list_cards` | List/filter cards by status, priority, assignee, or label |
322
366
  | `get_card` | Get full details of a card (supports partial ID matching) |
323
367
  | `create_card` | Create a new card with title, body, status, priority, etc. |
@@ -342,6 +386,8 @@ kanban-mcp --dir .kanban
342
386
  | `remove_webhook` | Remove a webhook |
343
387
  | `get_workspace_info` | Get workspace root path and features directory |
344
388
 
389
+ All card, column, comment, and attachment tools accept an optional `boardId` parameter to target a specific board.
390
+
345
391
  ## SDK
346
392
 
347
393
  Use the kanban SDK programmatically in your own tools. The `KanbanSDK` class is the single source of truth — the CLI, MCP server, VSCode extension, and standalone server all delegate to it.
@@ -351,7 +397,13 @@ import { KanbanSDK } from 'kanban-lite/sdk'
351
397
 
352
398
  const sdk = new KanbanSDK('/path/to/.kanban')
353
399
 
354
- // Cards
400
+ // Boards
401
+ const boards = sdk.listBoards()
402
+ sdk.createBoard('bugs', 'Bug Tracker', { description: 'Track production bugs' })
403
+ await sdk.transferCard('42', 'default', 'bugs')
404
+ await sdk.deleteBoard('bugs')
405
+
406
+ // Cards (all accept optional boardId as last argument)
355
407
  const cards = await sdk.listCards()
356
408
  const card = await sdk.createCard({ content: '# My Task', status: 'todo', priority: 'high' })
357
409
  await sdk.moveCard(card.id, 'in-progress')
@@ -382,7 +434,7 @@ See the [full SDK documentation](docs/sdk.md) for detailed API reference, types,
382
434
 
383
435
  ## Data Storage
384
436
 
385
- Cards are stored as markdown files with YAML frontmatter in `.kanban/` within your project:
437
+ Cards are stored as markdown files with YAML frontmatter in `.kanban/boards/<boardId>/` within your project:
386
438
 
387
439
  ```markdown
388
440
  ---
@@ -422,17 +474,27 @@ Comments are stored as additional YAML documents in the same file, keeping every
422
474
 
423
475
  ## Configuration
424
476
 
425
- Board configuration is stored in `.kanban.json` at your project root:
477
+ Board configuration is stored in `.kanban.json` at your project root. It supports multiple boards, each with their own columns and settings:
426
478
 
427
479
  ```json
428
480
  {
429
- "columns": [
430
- { "id": "backlog", "name": "Backlog", "color": "#6b7280" },
431
- { "id": "todo", "name": "To Do", "color": "#3b82f6" },
432
- { "id": "in-progress", "name": "In Progress", "color": "#f59e0b" },
433
- { "id": "review", "name": "Review", "color": "#8b5cf6" },
434
- { "id": "done", "name": "Done", "color": "#22c55e" }
435
- ],
481
+ "version": 2,
482
+ "defaultBoard": "default",
483
+ "boards": {
484
+ "default": {
485
+ "name": "Default Board",
486
+ "columns": [
487
+ { "id": "backlog", "name": "Backlog", "color": "#6b7280" },
488
+ { "id": "todo", "name": "To Do", "color": "#3b82f6" },
489
+ { "id": "in-progress", "name": "In Progress", "color": "#f59e0b" },
490
+ { "id": "review", "name": "Review", "color": "#8b5cf6" },
491
+ { "id": "done", "name": "Done", "color": "#22c55e" }
492
+ ],
493
+ "nextCardId": 1,
494
+ "defaultStatus": "backlog",
495
+ "defaultPriority": "medium"
496
+ }
497
+ },
436
498
  "showPriorityBadges": true,
437
499
  "showAssignee": true,
438
500
  "showDueDate": true,
@@ -441,7 +503,7 @@ Board configuration is stored in `.kanban.json` at your project root:
441
503
  }
442
504
  ```
443
505
 
444
- Columns are fully customizable — add, remove, rename, or recolor them from the web UI, CLI, or REST API.
506
+ Columns are fully customizable per board — add, remove, rename, or recolor them from the web UI, CLI, or REST API.
445
507
 
446
508
  ## AI Agent Integration
447
509
  - **Claude Code**: Default, Plan, Auto-edit, and Full Auto modes