@proletariat/cli 0.3.93 → 0.3.94
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/dist/commands/action/create.d.ts +1 -1
- package/dist/commands/action/delete.d.ts +1 -1
- package/dist/commands/action/index.d.ts +1 -1
- package/dist/commands/action/list.d.ts +1 -1
- package/dist/commands/action/run.d.ts +1 -1
- package/dist/commands/action/show.d.ts +1 -1
- package/dist/commands/action/update.d.ts +1 -1
- package/dist/commands/agent/cleanup.d.ts +1 -1
- package/dist/commands/agent/gc.d.ts +1 -1
- package/dist/commands/agent/index.d.ts +1 -1
- package/dist/commands/agent/list.d.ts +1 -1
- package/dist/commands/agent/login.d.ts +1 -1
- package/dist/commands/agent/rebuild.d.ts +1 -1
- package/dist/commands/agent/remove.d.ts +1 -1
- package/dist/commands/agent/restart.d.ts +1 -1
- package/dist/commands/agent/shell.d.ts +1 -1
- package/dist/commands/agent/staff/index.d.ts +1 -1
- package/dist/commands/agent/staff/remove.d.ts +1 -1
- package/dist/commands/agent/status.d.ts +1 -1
- package/dist/commands/agent/visit.d.ts +1 -1
- package/dist/commands/asana/import.d.ts +1 -1
- package/dist/commands/branch/create.d.ts +1 -1
- package/dist/commands/branch/index.d.ts +1 -1
- package/dist/commands/branch/list.d.ts +1 -1
- package/dist/commands/branch/validate.d.ts +1 -1
- package/dist/commands/branch/where.d.ts +1 -1
- package/dist/commands/config/index.js +2 -2
- package/dist/commands/config/index.js.map +1 -1
- package/dist/commands/diet.d.ts +1 -1
- package/dist/commands/docker/index.js +2 -0
- package/dist/commands/docker/index.js.map +1 -1
- package/dist/commands/docker/rebuild-cache.d.ts +12 -0
- package/dist/commands/docker/rebuild-cache.js +144 -0
- package/dist/commands/docker/rebuild-cache.js.map +1 -0
- package/dist/commands/execution/config.d.ts +1 -1
- package/dist/commands/execution/index.d.ts +1 -1
- package/dist/commands/execution/list.d.ts +1 -1
- package/dist/commands/execution/logs.d.ts +1 -1
- package/dist/commands/execution/stop.d.ts +1 -1
- package/dist/commands/execution/view.d.ts +1 -1
- package/dist/commands/hook/export.d.ts +1 -1
- package/dist/commands/hook/fire.d.ts +1 -1
- package/dist/commands/hook/index.d.ts +1 -1
- package/dist/commands/hook/list.d.ts +1 -1
- package/dist/commands/hook/preset.d.ts +1 -1
- package/dist/commands/linear/auth.d.ts +1 -1
- package/dist/commands/linear/connect.d.ts +1 -1
- package/dist/commands/linear/import.d.ts +1 -1
- package/dist/commands/linear/status.d.ts +1 -1
- package/dist/commands/linear/sync.d.ts +1 -1
- package/dist/commands/mcp-server.d.ts +8 -2
- package/dist/commands/mcp-server.js +15 -28
- package/dist/commands/mcp-server.js.map +1 -1
- package/dist/commands/monday/connect.d.ts +1 -1
- package/dist/commands/monday/sync.d.ts +1 -1
- package/dist/commands/orchestrate/index.d.ts +1 -1
- package/dist/commands/orchestrator/index.d.ts +1 -1
- package/dist/commands/orchestrator/start.d.ts +3 -3
- package/dist/commands/orchestrator/start.js +38 -40
- package/dist/commands/orchestrator/start.js.map +1 -1
- package/dist/commands/pr/checks.d.ts +1 -1
- package/dist/commands/pr/close.d.ts +1 -1
- package/dist/commands/pr/create.d.ts +1 -1
- package/dist/commands/pr/index.d.ts +1 -1
- package/dist/commands/pr/link.d.ts +1 -1
- package/dist/commands/pr/list.d.ts +1 -1
- package/dist/commands/pr/merge.d.ts +1 -1
- package/dist/commands/pr/status.d.ts +1 -1
- package/dist/commands/pull.d.ts +1 -1
- package/dist/commands/repo/add.d.ts +1 -1
- package/dist/commands/repo/create.d.ts +1 -1
- package/dist/commands/repo/fix-remotes.d.ts +1 -1
- package/dist/commands/repo/index.d.ts +1 -1
- package/dist/commands/repo/list.d.ts +1 -1
- package/dist/commands/repo/remove.d.ts +1 -1
- package/dist/commands/repo/view.d.ts +1 -1
- package/dist/commands/session/attach.d.ts +1 -1
- package/dist/commands/session/cleanup.d.ts +1 -1
- package/dist/commands/session/create.d.ts +1 -1
- package/dist/commands/session/exec.d.ts +1 -1
- package/dist/commands/session/health.d.ts +1 -1
- package/dist/commands/session/index.d.ts +1 -1
- package/dist/commands/session/inspect.d.ts +1 -1
- package/dist/commands/session/list.d.ts +1 -1
- package/dist/commands/session/peek.d.ts +1 -1
- package/dist/commands/session/prune.d.ts +1 -1
- package/dist/commands/session/report.d.ts +1 -1
- package/dist/commands/session/restart.d.ts +1 -1
- package/dist/commands/shortcut/connect.d.ts +1 -1
- package/dist/commands/support/logs.d.ts +1 -1
- package/dist/commands/ticket/create.d.ts +1 -1
- package/dist/commands/ticket/delete.d.ts +1 -1
- package/dist/commands/ticket/edit.d.ts +1 -1
- package/dist/commands/ticket/index.d.ts +1 -1
- package/dist/commands/ticket/index.js +6 -36
- package/dist/commands/ticket/index.js.map +1 -1
- package/dist/commands/ticket/list.d.ts +1 -1
- package/dist/commands/ticket/move.d.ts +1 -1
- package/dist/commands/ticket/show.d.ts +8 -7
- package/dist/commands/ticket/show.js +101 -8
- package/dist/commands/ticket/show.js.map +1 -1
- package/dist/commands/ticket/update.d.ts +1 -1
- package/dist/commands/trello/configure.d.ts +1 -1
- package/dist/commands/trello/import.d.ts +1 -1
- package/dist/commands/trello/sync.d.ts +1 -1
- package/dist/commands/work/asana.d.ts +1 -1
- package/dist/commands/work/complete.d.ts +1 -1
- package/dist/commands/work/groom.d.ts +1 -1
- package/dist/commands/work/hooks/add.d.ts +1 -1
- package/dist/commands/work/hooks/index.d.ts +1 -1
- package/dist/commands/work/hooks/list.d.ts +1 -1
- package/dist/commands/work/hooks/remove.d.ts +1 -1
- package/dist/commands/work/hooks/toggle.d.ts +1 -1
- package/dist/commands/work/implement.d.ts +1 -1
- package/dist/commands/work/index.d.ts +1 -1
- package/dist/commands/work/jira.d.ts +1 -1
- package/dist/commands/work/linear.d.ts +1 -1
- package/dist/commands/work/peek.d.ts +1 -1
- package/dist/commands/work/ready.d.ts +1 -1
- package/dist/commands/work/rebase.d.ts +1 -1
- package/dist/commands/work/resolve.d.ts +1 -1
- package/dist/commands/work/review.d.ts +1 -1
- package/dist/commands/work/ship.d.ts +1 -1
- package/dist/commands/work/shortcut.d.ts +1 -1
- package/dist/commands/work/source/set.d.ts +1 -1
- package/dist/commands/work/source.d.ts +1 -1
- package/dist/commands/work/spawn.d.ts +1 -1
- package/dist/commands/work/start.d.ts +1 -1
- package/dist/commands/work/status.d.ts +1 -1
- package/dist/commands/work/stop.d.ts +1 -1
- package/dist/commands/work/watch.d.ts +1 -1
- package/dist/hooks/init.js +1 -1
- package/dist/hooks/init.js.map +1 -1
- package/dist/lib/asana/config.js +13 -7
- package/dist/lib/asana/config.js.map +1 -1
- package/dist/lib/clickup/client.d.ts +92 -0
- package/dist/lib/clickup/client.js +150 -0
- package/dist/lib/clickup/client.js.map +1 -0
- package/dist/lib/clickup/config.d.ts +41 -0
- package/dist/lib/clickup/config.js +104 -0
- package/dist/lib/clickup/config.js.map +1 -0
- package/dist/lib/clickup/index.d.ts +4 -0
- package/dist/lib/clickup/index.js +4 -0
- package/dist/lib/clickup/index.js.map +1 -0
- package/dist/lib/clickup/types.d.ts +104 -0
- package/dist/lib/clickup/types.js +34 -0
- package/dist/lib/clickup/types.js.map +1 -0
- package/dist/lib/database/credential-store.d.ts +64 -0
- package/dist/lib/database/credential-store.js +306 -0
- package/dist/lib/database/credential-store.js.map +1 -0
- package/dist/lib/database/index.d.ts +1 -0
- package/dist/lib/database/index.js +2 -0
- package/dist/lib/database/index.js.map +1 -1
- package/dist/lib/database/pmo-bootstrap.d.ts +7 -0
- package/dist/lib/database/pmo-bootstrap.js +45 -20
- package/dist/lib/database/pmo-bootstrap.js.map +1 -1
- package/dist/lib/database/workspace.js +4 -0
- package/dist/lib/database/workspace.js.map +1 -1
- package/dist/lib/execution/devcontainer.js +51 -0
- package/dist/lib/execution/devcontainer.js.map +1 -1
- package/dist/lib/execution/runners/docker-management.d.ts +23 -0
- package/dist/lib/execution/runners/docker-management.js +99 -7
- package/dist/lib/execution/runners/docker-management.js.map +1 -1
- package/dist/lib/execution/session-utils.d.ts +4 -0
- package/dist/lib/execution/session-utils.js +34 -24
- package/dist/lib/execution/session-utils.js.map +1 -1
- package/dist/lib/execution/types.js +1 -1
- package/dist/lib/external-issues/types.d.ts +3 -3
- package/dist/lib/external-issues/types.js +1 -1
- package/dist/lib/external-issues/types.js.map +1 -1
- package/dist/lib/jira/config.js +10 -4
- package/dist/lib/jira/config.js.map +1 -1
- package/dist/lib/linear/config.js +13 -8
- package/dist/lib/linear/config.js.map +1 -1
- package/dist/lib/mcp/generator.d.ts +26 -0
- package/dist/lib/mcp/generator.js +219 -0
- package/dist/lib/mcp/generator.js.map +1 -0
- package/dist/lib/mcp/index.d.ts +1 -0
- package/dist/lib/mcp/index.js +1 -0
- package/dist/lib/mcp/index.js.map +1 -1
- package/dist/lib/mcp/tools/index.d.ts +0 -11
- package/dist/lib/mcp/tools/index.js +0 -11
- package/dist/lib/mcp/tools/index.js.map +1 -1
- package/dist/lib/mcp/tools/overrides/index.d.ts +23 -0
- package/dist/lib/mcp/tools/overrides/index.js +30 -0
- package/dist/lib/mcp/tools/overrides/index.js.map +1 -0
- package/dist/lib/mcp/tools/overrides/tmux.d.ts +11 -0
- package/dist/lib/mcp/tools/overrides/tmux.js +184 -0
- package/dist/lib/mcp/tools/overrides/tmux.js.map +1 -0
- package/dist/lib/mcp/tools/overrides/work-start.d.ts +12 -0
- package/dist/lib/mcp/tools/overrides/work-start.js +108 -0
- package/dist/lib/mcp/tools/overrides/work-start.js.map +1 -0
- package/dist/lib/mcp/tools/ticket.js +10 -48
- package/dist/lib/mcp/tools/ticket.js.map +1 -1
- package/dist/lib/monday/config.js +11 -5
- package/dist/lib/monday/config.js.map +1 -1
- package/dist/lib/pmo/base-command.d.ts +20 -152
- package/dist/lib/pmo/base-command.js +32 -198
- package/dist/lib/pmo/base-command.js.map +1 -1
- package/dist/lib/pmo/index.d.ts +1 -0
- package/dist/lib/pmo/index.js +3 -0
- package/dist/lib/pmo/index.js.map +1 -1
- package/dist/lib/pmo/storage/base.d.ts +0 -18
- package/dist/lib/pmo/storage/base.js +0 -231
- package/dist/lib/pmo/storage/base.js.map +1 -1
- package/dist/lib/pmo/storage/index.d.ts +1 -76
- package/dist/lib/pmo/storage/index.js +1 -215
- package/dist/lib/pmo/storage/index.js.map +1 -1
- package/dist/lib/pmo/storage/tickets.d.ts +2 -2
- package/dist/lib/pmo/storage/tickets.js +4 -34
- package/dist/lib/pmo/storage/tickets.js.map +1 -1
- package/dist/lib/pmo/types.d.ts +0 -37
- package/dist/lib/providers/clickup-provider.d.ts +28 -0
- package/dist/lib/providers/clickup-provider.js +353 -0
- package/dist/lib/providers/clickup-provider.js.map +1 -0
- package/dist/lib/providers/resolver.d.ts +1 -1
- package/dist/lib/providers/resolver.js +16 -5
- package/dist/lib/providers/resolver.js.map +1 -1
- package/dist/lib/providers/types.d.ts +1 -1
- package/dist/lib/runners/claude-code-runner.js +13 -4
- package/dist/lib/runners/claude-code-runner.js.map +1 -1
- package/dist/lib/runtime-command.d.ts +219 -0
- package/dist/lib/runtime-command.js +320 -0
- package/dist/lib/runtime-command.js.map +1 -0
- package/dist/lib/shortcut/config.js +13 -7
- package/dist/lib/shortcut/config.js.map +1 -1
- package/dist/lib/trello/config.js +17 -12
- package/dist/lib/trello/config.js.map +1 -1
- package/dist/lib/work-lifecycle/events.d.ts +1 -1
- package/dist/lib/work-source/config.d.ts +1 -1
- package/dist/lib/work-source/config.js +11 -1
- package/dist/lib/work-source/config.js.map +1 -1
- package/dist/lib/work-source/provider-sources.js +6 -1
- package/dist/lib/work-source/provider-sources.js.map +1 -1
- package/oclif.manifest.json +3015 -4827
- package/package.json +1 -1
- package/dist/commands/board/index.d.ts +0 -21
- package/dist/commands/board/index.js +0 -263
- package/dist/commands/board/index.js.map +0 -1
- package/dist/commands/board/view.d.ts +0 -15
- package/dist/commands/board/view.js +0 -137
- package/dist/commands/board/view.js.map +0 -1
- package/dist/commands/board/watch.d.ts +0 -15
- package/dist/commands/board/watch.js +0 -59
- package/dist/commands/board/watch.js.map +0 -1
- package/dist/commands/dashboard/index.d.ts +0 -14
- package/dist/commands/dashboard/index.js +0 -117
- package/dist/commands/dashboard/index.js.map +0 -1
- package/dist/commands/dashboard.d.ts +0 -38
- package/dist/commands/dashboard.js +0 -353
- package/dist/commands/dashboard.js.map +0 -1
- package/dist/commands/pmo/init.d.ts +0 -28
- package/dist/commands/pmo/init.js +0 -410
- package/dist/commands/pmo/init.js.map +0 -1
- package/dist/commands/project/archive.d.ts +0 -18
- package/dist/commands/project/archive.js +0 -79
- package/dist/commands/project/archive.js.map +0 -1
- package/dist/commands/project/create.d.ts +0 -24
- package/dist/commands/project/create.js +0 -191
- package/dist/commands/project/create.js.map +0 -1
- package/dist/commands/project/delete.d.ts +0 -18
- package/dist/commands/project/delete.js +0 -115
- package/dist/commands/project/delete.js.map +0 -1
- package/dist/commands/project/index.d.ts +0 -14
- package/dist/commands/project/index.js +0 -60
- package/dist/commands/project/index.js.map +0 -1
- package/dist/commands/project/list.d.ts +0 -16
- package/dist/commands/project/list.js +0 -115
- package/dist/commands/project/list.js.map +0 -1
- package/dist/commands/project/spec.d.ts +0 -19
- package/dist/commands/project/spec.js +0 -218
- package/dist/commands/project/spec.js.map +0 -1
- package/dist/commands/project/unarchive.d.ts +0 -17
- package/dist/commands/project/unarchive.js +0 -55
- package/dist/commands/project/unarchive.js.map +0 -1
- package/dist/commands/project/update.d.ts +0 -19
- package/dist/commands/project/update.js +0 -161
- package/dist/commands/project/update.js.map +0 -1
- package/dist/commands/project/view.d.ts +0 -17
- package/dist/commands/project/view.js +0 -107
- package/dist/commands/project/view.js.map +0 -1
- package/dist/commands/ticket/bulk.d.ts +0 -14
- package/dist/commands/ticket/bulk.js +0 -141
- package/dist/commands/ticket/bulk.js.map +0 -1
- package/dist/commands/ticket/cancel.d.ts +0 -17
- package/dist/commands/ticket/cancel.js +0 -206
- package/dist/commands/ticket/cancel.js.map +0 -1
- package/dist/commands/ticket/category.d.ts +0 -15
- package/dist/commands/ticket/category.js +0 -64
- package/dist/commands/ticket/category.js.map +0 -1
- package/dist/commands/ticket/complete.d.ts +0 -17
- package/dist/commands/ticket/complete.js +0 -193
- package/dist/commands/ticket/complete.js.map +0 -1
- package/dist/commands/ticket/epic.d.ts +0 -21
- package/dist/commands/ticket/epic.js +0 -306
- package/dist/commands/ticket/epic.js.map +0 -1
- package/dist/commands/ticket/link/block.d.ts +0 -15
- package/dist/commands/ticket/link/block.js +0 -96
- package/dist/commands/ticket/link/block.js.map +0 -1
- package/dist/commands/ticket/link/duplicates.d.ts +0 -15
- package/dist/commands/ticket/link/duplicates.js +0 -96
- package/dist/commands/ticket/link/duplicates.js.map +0 -1
- package/dist/commands/ticket/link/index.d.ts +0 -14
- package/dist/commands/ticket/link/index.js +0 -99
- package/dist/commands/ticket/link/index.js.map +0 -1
- package/dist/commands/ticket/link/relates.d.ts +0 -15
- package/dist/commands/ticket/link/relates.js +0 -96
- package/dist/commands/ticket/link/relates.js.map +0 -1
- package/dist/commands/ticket/project.d.ts +0 -19
- package/dist/commands/ticket/project.js +0 -257
- package/dist/commands/ticket/project.js.map +0 -1
- package/dist/commands/ticket/reassign.d.ts +0 -20
- package/dist/commands/ticket/reassign.js +0 -340
- package/dist/commands/ticket/reassign.js.map +0 -1
- package/dist/commands/ticket/resolve.d.ts +0 -68
- package/dist/commands/ticket/resolve.js +0 -306
- package/dist/commands/ticket/resolve.js.map +0 -1
- package/dist/commands/ticket/spec.d.ts +0 -19
- package/dist/commands/ticket/spec.js +0 -260
- package/dist/commands/ticket/spec.js.map +0 -1
- package/dist/commands/ticket/status.d.ts +0 -14
- package/dist/commands/ticket/status.js +0 -84
- package/dist/commands/ticket/status.js.map +0 -1
- package/dist/commands/ticket/view.d.ts +0 -14
- package/dist/commands/ticket/view.js +0 -113
- package/dist/commands/ticket/view.js.map +0 -1
- package/dist/lib/mcp/tools/board.d.ts +0 -6
- package/dist/lib/mcp/tools/board.js +0 -190
- package/dist/lib/mcp/tools/board.js.map +0 -1
- package/dist/lib/mcp/tools/category.d.ts +0 -6
- package/dist/lib/mcp/tools/category.js +0 -85
- package/dist/lib/mcp/tools/category.js.map +0 -1
- package/dist/lib/mcp/tools/epic.d.ts +0 -6
- package/dist/lib/mcp/tools/epic.js +0 -184
- package/dist/lib/mcp/tools/epic.js.map +0 -1
- package/dist/lib/mcp/tools/label.d.ts +0 -6
- package/dist/lib/mcp/tools/label.js +0 -339
- package/dist/lib/mcp/tools/label.js.map +0 -1
- package/dist/lib/mcp/tools/phase.d.ts +0 -6
- package/dist/lib/mcp/tools/phase.js +0 -132
- package/dist/lib/mcp/tools/phase.js.map +0 -1
- package/dist/lib/mcp/tools/project.d.ts +0 -6
- package/dist/lib/mcp/tools/project.js +0 -197
- package/dist/lib/mcp/tools/project.js.map +0 -1
- package/dist/lib/mcp/tools/roadmap.d.ts +0 -6
- package/dist/lib/mcp/tools/roadmap.js +0 -124
- package/dist/lib/mcp/tools/roadmap.js.map +0 -1
- package/dist/lib/mcp/tools/status.d.ts +0 -6
- package/dist/lib/mcp/tools/status.js +0 -110
- package/dist/lib/mcp/tools/status.js.map +0 -1
- package/dist/lib/mcp/tools/template.d.ts +0 -6
- package/dist/lib/mcp/tools/template.js +0 -108
- package/dist/lib/mcp/tools/template.js.map +0 -1
- package/dist/lib/mcp/tools/view.d.ts +0 -6
- package/dist/lib/mcp/tools/view.js +0 -77
- package/dist/lib/mcp/tools/view.js.map +0 -1
- package/dist/lib/mcp/tools/workflow.d.ts +0 -6
- package/dist/lib/mcp/tools/workflow.js +0 -96
- package/dist/lib/mcp/tools/workflow.js.map +0 -1
- package/dist/lib/pmo/storage/categories.d.ts +0 -50
- package/dist/lib/pmo/storage/categories.js +0 -206
- package/dist/lib/pmo/storage/categories.js.map +0 -1
- package/dist/lib/pmo/storage/labels.d.ts +0 -55
- package/dist/lib/pmo/storage/labels.js +0 -347
- package/dist/lib/pmo/storage/labels.js.map +0 -1
- package/dist/lib/pmo/storage/phases.d.ts +0 -65
- package/dist/lib/pmo/storage/phases.js +0 -393
- package/dist/lib/pmo/storage/phases.js.map +0 -1
- package/dist/lib/pmo/storage/roadmaps.d.ts +0 -64
- package/dist/lib/pmo/storage/roadmaps.js +0 -373
- package/dist/lib/pmo/storage/roadmaps.js.map +0 -1
- package/dist/lib/pmo/storage/views.d.ts +0 -57
- package/dist/lib/pmo/storage/views.js +0 -456
- package/dist/lib/pmo/storage/views.js.map +0 -1
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP Board Tools
|
|
3
|
-
*/
|
|
4
|
-
import { z } from 'zod';
|
|
5
|
-
import { formatTicketCompact, errorResponse, strictTool } from '../helpers.js';
|
|
6
|
-
/** Status categories considered "done" and excluded by default */
|
|
7
|
-
const DONE_CATEGORIES = new Set(['completed', 'canceled']);
|
|
8
|
-
export function registerBoardTools(server, ctx) {
|
|
9
|
-
strictTool(server, 'board_view', 'Show the kanban board. Returns compact ticket format by default (id, title, priority, category, assignee, statusName). Use ticket_show for full details. Excludes Done/Canceled columns by default.', {
|
|
10
|
-
project: z.string().optional().describe('Project ID'),
|
|
11
|
-
summary: z.boolean().optional().describe('Summary mode: return only column names and ticket counts, no ticket details'),
|
|
12
|
-
column: z.string().optional().describe('Filter to a specific column by name (case-insensitive partial match)'),
|
|
13
|
-
include_done: z.boolean().optional().describe('Include completed/canceled columns (excluded by default)'),
|
|
14
|
-
limit: z.number().int().nonnegative().optional().describe('Max tickets to return per column'),
|
|
15
|
-
offset: z.number().int().nonnegative().optional().describe('Number of tickets to skip per column (for pagination)'),
|
|
16
|
-
}, async (params) => {
|
|
17
|
-
try {
|
|
18
|
-
let projectId = params.project;
|
|
19
|
-
if (!projectId) {
|
|
20
|
-
const projects = await ctx.storage.listProjects();
|
|
21
|
-
if (projects.length === 0)
|
|
22
|
-
throw new Error('No projects found');
|
|
23
|
-
projectId = projects[0].id;
|
|
24
|
-
}
|
|
25
|
-
const board = await ctx.storage.getBoard(projectId);
|
|
26
|
-
// Filter out done columns unless explicitly requested
|
|
27
|
-
let columns = board.columns;
|
|
28
|
-
if (!params.include_done) {
|
|
29
|
-
columns = columns.filter((col) => !DONE_CATEGORIES.has(col.status || ''));
|
|
30
|
-
}
|
|
31
|
-
// Filter to specific column by name (case-insensitive partial match)
|
|
32
|
-
if (params.column) {
|
|
33
|
-
const columnFilter = params.column.toLowerCase();
|
|
34
|
-
columns = columns.filter((col) => col.name.toLowerCase().includes(columnFilter));
|
|
35
|
-
}
|
|
36
|
-
// Summary mode: just column names and ticket counts
|
|
37
|
-
if (params.summary) {
|
|
38
|
-
const totalTickets = columns.reduce((sum, col) => sum + col.tickets.length, 0);
|
|
39
|
-
return {
|
|
40
|
-
content: [{
|
|
41
|
-
type: 'text',
|
|
42
|
-
text: JSON.stringify({
|
|
43
|
-
success: true,
|
|
44
|
-
board: {
|
|
45
|
-
id: board.id,
|
|
46
|
-
name: board.name,
|
|
47
|
-
totalTickets,
|
|
48
|
-
columns: columns.map((col) => ({
|
|
49
|
-
name: col.name,
|
|
50
|
-
position: col.position,
|
|
51
|
-
ticketCount: col.tickets.length,
|
|
52
|
-
})),
|
|
53
|
-
updatedAt: board.updatedAt.toISOString(),
|
|
54
|
-
},
|
|
55
|
-
}, null, 2),
|
|
56
|
-
}],
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
// Compact format (default): return compact ticket objects with pagination
|
|
60
|
-
return {
|
|
61
|
-
content: [{
|
|
62
|
-
type: 'text',
|
|
63
|
-
text: JSON.stringify({
|
|
64
|
-
success: true,
|
|
65
|
-
board: {
|
|
66
|
-
id: board.id,
|
|
67
|
-
name: board.name,
|
|
68
|
-
columns: columns.map((col) => {
|
|
69
|
-
const total = col.tickets.length;
|
|
70
|
-
let tickets = col.tickets;
|
|
71
|
-
const offset = params.offset || 0;
|
|
72
|
-
if (offset > 0) {
|
|
73
|
-
tickets = tickets.slice(offset);
|
|
74
|
-
}
|
|
75
|
-
if (params.limit !== undefined) {
|
|
76
|
-
tickets = tickets.slice(0, params.limit);
|
|
77
|
-
}
|
|
78
|
-
return {
|
|
79
|
-
name: col.name,
|
|
80
|
-
position: col.position,
|
|
81
|
-
ticketCount: total,
|
|
82
|
-
...(offset > 0 || params.limit !== undefined ? { showing: tickets.length, offset } : {}),
|
|
83
|
-
tickets: tickets.map((t) => formatTicketCompact(t)),
|
|
84
|
-
};
|
|
85
|
-
}),
|
|
86
|
-
updatedAt: board.updatedAt.toISOString(),
|
|
87
|
-
},
|
|
88
|
-
}, null, 2),
|
|
89
|
-
}],
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
catch (error) {
|
|
93
|
-
return errorResponse(error);
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
strictTool(server, 'board_columns', 'Get column names for a project', { project: z.string().optional().describe('Project ID') }, async (params) => {
|
|
97
|
-
try {
|
|
98
|
-
let projectId = params.project;
|
|
99
|
-
if (!projectId) {
|
|
100
|
-
const projects = await ctx.storage.listProjects();
|
|
101
|
-
if (projects.length === 0)
|
|
102
|
-
throw new Error('No projects found');
|
|
103
|
-
projectId = projects[0].id;
|
|
104
|
-
}
|
|
105
|
-
const columns = ctx.storage.getColumnNames(projectId);
|
|
106
|
-
return {
|
|
107
|
-
content: [{
|
|
108
|
-
type: 'text',
|
|
109
|
-
text: JSON.stringify({ success: true, projectId, columns }, null, 2),
|
|
110
|
-
}],
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
catch (error) {
|
|
114
|
-
return errorResponse(error);
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
strictTool(server, 'board_create_column', 'Add a new column to the board', {
|
|
118
|
-
project: z.string().describe('Project ID'),
|
|
119
|
-
name: z.string().describe('Column name'),
|
|
120
|
-
position: z.number().optional().describe('Position'),
|
|
121
|
-
}, async (params) => {
|
|
122
|
-
try {
|
|
123
|
-
const column = await ctx.storage.createColumn(params.project, params.name, params.position);
|
|
124
|
-
return {
|
|
125
|
-
content: [{
|
|
126
|
-
type: 'text',
|
|
127
|
-
text: JSON.stringify({ success: true, column: { id: column.id, name: column.name, position: column.position } }, null, 2),
|
|
128
|
-
}],
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
catch (error) {
|
|
132
|
-
return errorResponse(error);
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
strictTool(server, 'board_rename_column', 'Rename a column', {
|
|
136
|
-
project: z.string().describe('Project ID'),
|
|
137
|
-
column_id: z.string().describe('Column ID'),
|
|
138
|
-
name: z.string().describe('New name'),
|
|
139
|
-
}, async (params) => {
|
|
140
|
-
try {
|
|
141
|
-
const column = await ctx.storage.renameColumn(params.project, params.column_id, params.name);
|
|
142
|
-
return {
|
|
143
|
-
content: [{
|
|
144
|
-
type: 'text',
|
|
145
|
-
text: JSON.stringify({ success: true, column: { id: column.id, name: column.name } }, null, 2),
|
|
146
|
-
}],
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
catch (error) {
|
|
150
|
-
return errorResponse(error);
|
|
151
|
-
}
|
|
152
|
-
});
|
|
153
|
-
strictTool(server, 'board_move_column', 'Reorder a column', {
|
|
154
|
-
project: z.string().describe('Project ID'),
|
|
155
|
-
column_id: z.string().describe('Column ID'),
|
|
156
|
-
position: z.number().describe('New position'),
|
|
157
|
-
}, async (params) => {
|
|
158
|
-
try {
|
|
159
|
-
const column = await ctx.storage.moveColumn(params.project, params.column_id, params.position);
|
|
160
|
-
return {
|
|
161
|
-
content: [{
|
|
162
|
-
type: 'text',
|
|
163
|
-
text: JSON.stringify({ success: true, column: { id: column.id, name: column.name, position: column.position } }, null, 2),
|
|
164
|
-
}],
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
catch (error) {
|
|
168
|
-
return errorResponse(error);
|
|
169
|
-
}
|
|
170
|
-
});
|
|
171
|
-
strictTool(server, 'board_delete_column', 'Delete a column', {
|
|
172
|
-
project: z.string().describe('Project ID'),
|
|
173
|
-
column_id: z.string().describe('Column ID'),
|
|
174
|
-
cascade: z.boolean().optional().describe('Delete tickets in column'),
|
|
175
|
-
}, async (params) => {
|
|
176
|
-
try {
|
|
177
|
-
await ctx.storage.deleteColumn(params.project, params.column_id, params.cascade);
|
|
178
|
-
return {
|
|
179
|
-
content: [{
|
|
180
|
-
type: 'text',
|
|
181
|
-
text: JSON.stringify({ success: true, message: 'Column deleted' }, null, 2),
|
|
182
|
-
}],
|
|
183
|
-
};
|
|
184
|
-
}
|
|
185
|
-
catch (error) {
|
|
186
|
-
return errorResponse(error);
|
|
187
|
-
}
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
//# sourceMappingURL=board.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"board.js","sourceRoot":"","sources":["../../../../src/lib/mcp/tools/board.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP Category Tools
|
|
3
|
-
*/
|
|
4
|
-
import { z } from 'zod';
|
|
5
|
-
import { errorResponse, strictTool } from '../helpers.js';
|
|
6
|
-
export function registerCategoryTools(server, ctx) {
|
|
7
|
-
strictTool(server, 'category_list', 'List categories', { type: z.enum(['ticket', 'status']).optional() }, async (params) => {
|
|
8
|
-
try {
|
|
9
|
-
const categories = await ctx.storage.listCategories({ type: params.type });
|
|
10
|
-
return {
|
|
11
|
-
content: [{
|
|
12
|
-
type: 'text',
|
|
13
|
-
text: JSON.stringify({
|
|
14
|
-
success: true,
|
|
15
|
-
categories: categories.map((c) => ({
|
|
16
|
-
id: c.id,
|
|
17
|
-
name: c.name,
|
|
18
|
-
type: c.type,
|
|
19
|
-
isBuiltin: c.isBuiltin,
|
|
20
|
-
})),
|
|
21
|
-
}, null, 2),
|
|
22
|
-
}],
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
catch (error) {
|
|
26
|
-
return errorResponse(error);
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
strictTool(server, 'category_create', 'Create a category', {
|
|
30
|
-
name: z.string().describe('Category name'),
|
|
31
|
-
type: z.enum(['ticket', 'status']).describe('Category type'),
|
|
32
|
-
description: z.string().optional(),
|
|
33
|
-
color: z.string().optional(),
|
|
34
|
-
}, async (params) => {
|
|
35
|
-
try {
|
|
36
|
-
const category = await ctx.storage.createCategory({
|
|
37
|
-
name: params.name,
|
|
38
|
-
type: params.type,
|
|
39
|
-
description: params.description,
|
|
40
|
-
color: params.color,
|
|
41
|
-
});
|
|
42
|
-
return {
|
|
43
|
-
content: [{
|
|
44
|
-
type: 'text',
|
|
45
|
-
text: JSON.stringify({ success: true, category: { id: category.id, name: category.name } }, null, 2),
|
|
46
|
-
}],
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
catch (error) {
|
|
50
|
-
return errorResponse(error);
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
strictTool(server, 'category_rename', 'Rename a category', {
|
|
54
|
-
id: z.string().describe('Category ID'),
|
|
55
|
-
name: z.string().describe('New name'),
|
|
56
|
-
}, async (params) => {
|
|
57
|
-
try {
|
|
58
|
-
const category = await ctx.storage.renameCategory(params.id, params.name);
|
|
59
|
-
return {
|
|
60
|
-
content: [{
|
|
61
|
-
type: 'text',
|
|
62
|
-
text: JSON.stringify({ success: true, category: { id: category.id, name: category.name } }, null, 2),
|
|
63
|
-
}],
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
catch (error) {
|
|
67
|
-
return errorResponse(error);
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
strictTool(server, 'category_delete', 'Delete a category', { id: z.string().describe('Category ID') }, async (params) => {
|
|
71
|
-
try {
|
|
72
|
-
await ctx.storage.deleteCategory(params.id);
|
|
73
|
-
return {
|
|
74
|
-
content: [{
|
|
75
|
-
type: 'text',
|
|
76
|
-
text: JSON.stringify({ success: true, message: 'Category deleted' }, null, 2),
|
|
77
|
-
}],
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
catch (error) {
|
|
81
|
-
return errorResponse(error);
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
//# sourceMappingURL=category.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"category.js","sourceRoot":"","sources":["../../../../src/lib/mcp/tools/category.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP Epic Tools
|
|
3
|
-
*/
|
|
4
|
-
import { z } from 'zod';
|
|
5
|
-
import { errorResponse, strictTool } from '../helpers.js';
|
|
6
|
-
export function registerEpicTools(server, ctx) {
|
|
7
|
-
strictTool(server, 'epic_list', 'List epics', {
|
|
8
|
-
project: z.string().optional(),
|
|
9
|
-
status: z.enum(['active', 'draft', 'complete', 'dropped', 'future']).optional(),
|
|
10
|
-
search: z.string().optional(),
|
|
11
|
-
}, async (params) => {
|
|
12
|
-
try {
|
|
13
|
-
let projectId = params.project;
|
|
14
|
-
if (!projectId) {
|
|
15
|
-
const projects = await ctx.storage.listProjects();
|
|
16
|
-
if (projects.length === 0)
|
|
17
|
-
throw new Error('No projects');
|
|
18
|
-
projectId = projects[0].id;
|
|
19
|
-
}
|
|
20
|
-
const epics = await ctx.storage.listEpics(projectId, { status: params.status, search: params.search });
|
|
21
|
-
return {
|
|
22
|
-
content: [{
|
|
23
|
-
type: 'text',
|
|
24
|
-
text: JSON.stringify({
|
|
25
|
-
success: true,
|
|
26
|
-
count: epics.length,
|
|
27
|
-
epics: epics.map((e) => ({
|
|
28
|
-
id: e.id,
|
|
29
|
-
title: e.title,
|
|
30
|
-
status: e.status,
|
|
31
|
-
position: e.position,
|
|
32
|
-
projectId: e.projectId,
|
|
33
|
-
})),
|
|
34
|
-
}, null, 2),
|
|
35
|
-
}],
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
catch (error) {
|
|
39
|
-
return errorResponse(error);
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
strictTool(server, 'epic_create', 'Create an epic', {
|
|
43
|
-
title: z.string().describe('Epic title'),
|
|
44
|
-
project: z.string().optional(),
|
|
45
|
-
description: z.string().optional(),
|
|
46
|
-
status: z.enum(['active', 'draft', 'complete', 'dropped', 'future']).optional(),
|
|
47
|
-
spec_id: z.string().optional(),
|
|
48
|
-
}, async (params) => {
|
|
49
|
-
try {
|
|
50
|
-
let projectId = params.project;
|
|
51
|
-
if (!projectId) {
|
|
52
|
-
const projects = await ctx.storage.listProjects();
|
|
53
|
-
if (projects.length === 0)
|
|
54
|
-
throw new Error('No projects');
|
|
55
|
-
projectId = projects[0].id;
|
|
56
|
-
}
|
|
57
|
-
const epic = await ctx.storage.createEpic(projectId, {
|
|
58
|
-
title: params.title,
|
|
59
|
-
description: params.description,
|
|
60
|
-
status: params.status || 'draft',
|
|
61
|
-
specId: params.spec_id,
|
|
62
|
-
});
|
|
63
|
-
return {
|
|
64
|
-
content: [{
|
|
65
|
-
type: 'text',
|
|
66
|
-
text: JSON.stringify({ success: true, epic: { id: epic.id, title: epic.title, status: epic.status } }, null, 2),
|
|
67
|
-
}],
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
catch (error) {
|
|
71
|
-
return errorResponse(error);
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
strictTool(server, 'epic_view', 'Get epic details with tickets', { id: z.string().describe('Epic ID') }, async (params) => {
|
|
75
|
-
try {
|
|
76
|
-
const epic = await ctx.storage.getEpic(params.id);
|
|
77
|
-
if (!epic)
|
|
78
|
-
throw new Error(`Epic not found: ${params.id}`);
|
|
79
|
-
const tickets = await ctx.storage.getTicketsForEpic(epic.projectId, params.id);
|
|
80
|
-
return {
|
|
81
|
-
content: [{
|
|
82
|
-
type: 'text',
|
|
83
|
-
text: JSON.stringify({
|
|
84
|
-
success: true,
|
|
85
|
-
epic: {
|
|
86
|
-
id: epic.id,
|
|
87
|
-
projectId: epic.projectId,
|
|
88
|
-
title: epic.title,
|
|
89
|
-
status: epic.status,
|
|
90
|
-
position: epic.position,
|
|
91
|
-
specId: epic.specId,
|
|
92
|
-
ticketCount: tickets.length,
|
|
93
|
-
tickets: tickets.map((t) => ({ id: t.id, title: t.title, statusName: t.statusName, priority: t.priority, category: t.category })),
|
|
94
|
-
createdAt: epic.createdAt.toISOString(),
|
|
95
|
-
updatedAt: epic.updatedAt.toISOString(),
|
|
96
|
-
},
|
|
97
|
-
}, null, 2),
|
|
98
|
-
}],
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
catch (error) {
|
|
102
|
-
return errorResponse(error);
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
strictTool(server, 'epic_update', 'Update an epic', {
|
|
106
|
-
id: z.string().describe('Epic ID'),
|
|
107
|
-
title: z.string().optional(),
|
|
108
|
-
description: z.string().optional(),
|
|
109
|
-
status: z.enum(['active', 'draft', 'complete', 'dropped', 'future']).optional(),
|
|
110
|
-
}, async (params) => {
|
|
111
|
-
try {
|
|
112
|
-
const changes = {};
|
|
113
|
-
if (params.title)
|
|
114
|
-
changes.title = params.title;
|
|
115
|
-
if (params.description !== undefined)
|
|
116
|
-
changes.description = params.description;
|
|
117
|
-
if (params.status)
|
|
118
|
-
changes.status = params.status;
|
|
119
|
-
const epic = await ctx.storage.updateEpic(params.id, changes);
|
|
120
|
-
return {
|
|
121
|
-
content: [{
|
|
122
|
-
type: 'text',
|
|
123
|
-
text: JSON.stringify({ success: true, epic: { id: epic.id, title: epic.title, status: epic.status } }, null, 2),
|
|
124
|
-
}],
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
catch (error) {
|
|
128
|
-
return errorResponse(error);
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
strictTool(server, 'epic_delete', 'Delete an epic', { id: z.string().describe('Epic ID') }, async (params) => {
|
|
132
|
-
try {
|
|
133
|
-
await ctx.storage.deleteEpic(params.id);
|
|
134
|
-
return {
|
|
135
|
-
content: [{
|
|
136
|
-
type: 'text',
|
|
137
|
-
text: JSON.stringify({ success: true, message: `Deleted epic ${params.id}` }, null, 2),
|
|
138
|
-
}],
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
catch (error) {
|
|
142
|
-
return errorResponse(error);
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
strictTool(server, 'epic_reorder', 'Reorder an epic', {
|
|
146
|
-
id: z.string().describe('Epic ID'),
|
|
147
|
-
position: z.number().describe('New position'),
|
|
148
|
-
project: z.string().optional(),
|
|
149
|
-
}, async (params) => {
|
|
150
|
-
try {
|
|
151
|
-
const epic = await ctx.storage.getEpic(params.id);
|
|
152
|
-
if (!epic)
|
|
153
|
-
throw new Error(`Epic not found: ${params.id}`);
|
|
154
|
-
const reordered = await ctx.storage.reorderEpic(params.project || epic.projectId, params.id, params.position);
|
|
155
|
-
return {
|
|
156
|
-
content: [{
|
|
157
|
-
type: 'text',
|
|
158
|
-
text: JSON.stringify({ success: true, epic: { id: reordered.id, position: reordered.position } }, null, 2),
|
|
159
|
-
}],
|
|
160
|
-
};
|
|
161
|
-
}
|
|
162
|
-
catch (error) {
|
|
163
|
-
return errorResponse(error);
|
|
164
|
-
}
|
|
165
|
-
});
|
|
166
|
-
strictTool(server, 'epic_add_blocker', 'Add epic dependency', {
|
|
167
|
-
epic_id: z.string().describe('Epic that will be blocked'),
|
|
168
|
-
blocker_id: z.string().describe('Epic that blocks'),
|
|
169
|
-
}, async (params) => {
|
|
170
|
-
try {
|
|
171
|
-
await ctx.storage.createEpicDependency(params.epic_id, params.blocker_id, 'blocks');
|
|
172
|
-
return {
|
|
173
|
-
content: [{
|
|
174
|
-
type: 'text',
|
|
175
|
-
text: JSON.stringify({ success: true, message: 'Epic dependency added' }, null, 2),
|
|
176
|
-
}],
|
|
177
|
-
};
|
|
178
|
-
}
|
|
179
|
-
catch (error) {
|
|
180
|
-
return errorResponse(error);
|
|
181
|
-
}
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
//# sourceMappingURL=epic.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"epic.js","sourceRoot":"","sources":["../../../../src/lib/mcp/tools/epic.ts"],"names":[],"mappings":"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"}
|