@industry-theme/backlogmd-kanban-panel 0.2.1 → 0.2.3
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/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/panels/KanbanPanel.stories.d.ts +2 -2
- package/dist/panels/KanbanPanel.stories.d.ts.map +1 -1
- package/dist/panels/kanban/components/KanbanColumn.d.ts.map +1 -1
- package/dist/panels.bundle.js +130 -3
- package/dist/panels.bundle.js.map +1 -1
- package/dist/tools/index.d.ts +36 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools.bundle.js +130 -0
- package/package.json +27 -15
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kanban Panel Tools
|
|
3
|
+
*
|
|
4
|
+
* UTCP-compatible tools for the Kanban panel extension.
|
|
5
|
+
* These tools can be invoked by AI agents and emit events that panels listen for.
|
|
6
|
+
*
|
|
7
|
+
* IMPORTANT: This file should NOT import any React components to ensure
|
|
8
|
+
* it can be imported server-side without pulling in React dependencies.
|
|
9
|
+
* Use the './tools' subpath export for server-safe imports.
|
|
10
|
+
*/
|
|
11
|
+
import type { PanelTool, PanelToolsMetadata } from '@principal-ade/utcp-panel-event';
|
|
12
|
+
/**
|
|
13
|
+
* Tool: Move Task
|
|
14
|
+
*/
|
|
15
|
+
export declare const moveTaskTool: PanelTool;
|
|
16
|
+
/**
|
|
17
|
+
* Tool: Select Task
|
|
18
|
+
*/
|
|
19
|
+
export declare const selectTaskTool: PanelTool;
|
|
20
|
+
/**
|
|
21
|
+
* Tool: Refresh Board
|
|
22
|
+
*/
|
|
23
|
+
export declare const refreshBoardTool: PanelTool;
|
|
24
|
+
/**
|
|
25
|
+
* Tool: Filter Tasks
|
|
26
|
+
*/
|
|
27
|
+
export declare const filterTasksTool: PanelTool;
|
|
28
|
+
/**
|
|
29
|
+
* All tools exported as an array.
|
|
30
|
+
*/
|
|
31
|
+
export declare const kanbanPanelTools: PanelTool[];
|
|
32
|
+
/**
|
|
33
|
+
* Panel tools metadata for registration with PanelToolRegistry.
|
|
34
|
+
*/
|
|
35
|
+
export declare const kanbanPanelToolsMetadata: PanelToolsMetadata;
|
|
36
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,SA6B1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,SAyB5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAkB9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,SAiC7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,EAKvC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,kBAKtC,CAAC"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
// src/tools/index.ts
|
|
2
|
+
var moveTaskTool = {
|
|
3
|
+
name: "move_task",
|
|
4
|
+
description: "Moves a task to a different status column on the kanban board",
|
|
5
|
+
inputs: {
|
|
6
|
+
type: "object",
|
|
7
|
+
properties: {
|
|
8
|
+
taskId: {
|
|
9
|
+
type: "string",
|
|
10
|
+
description: "The ID of the task to move"
|
|
11
|
+
},
|
|
12
|
+
targetStatus: {
|
|
13
|
+
type: "string",
|
|
14
|
+
description: 'The target status column (e.g., "To Do", "In Progress", "Done")'
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
required: ["taskId", "targetStatus"]
|
|
18
|
+
},
|
|
19
|
+
outputs: {
|
|
20
|
+
type: "object",
|
|
21
|
+
properties: {
|
|
22
|
+
success: { type: "boolean" },
|
|
23
|
+
message: { type: "string" }
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
tags: ["kanban", "task", "move", "status"],
|
|
27
|
+
tool_call_template: {
|
|
28
|
+
call_template_type: "panel_event",
|
|
29
|
+
event_type: "industry-theme.kanban-panel:move-task"
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
var selectTaskTool = {
|
|
33
|
+
name: "select_task",
|
|
34
|
+
description: "Selects a task to view its details",
|
|
35
|
+
inputs: {
|
|
36
|
+
type: "object",
|
|
37
|
+
properties: {
|
|
38
|
+
taskId: {
|
|
39
|
+
type: "string",
|
|
40
|
+
description: "The ID of the task to select"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
required: ["taskId"]
|
|
44
|
+
},
|
|
45
|
+
outputs: {
|
|
46
|
+
type: "object",
|
|
47
|
+
properties: {
|
|
48
|
+
success: { type: "boolean" },
|
|
49
|
+
task: { type: "object" }
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
tags: ["kanban", "task", "select", "view"],
|
|
53
|
+
tool_call_template: {
|
|
54
|
+
call_template_type: "panel_event",
|
|
55
|
+
event_type: "industry-theme.kanban-panel:select-task"
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
var refreshBoardTool = {
|
|
59
|
+
name: "refresh_board",
|
|
60
|
+
description: "Refreshes the kanban board to reload tasks from the backlog",
|
|
61
|
+
inputs: {
|
|
62
|
+
type: "object",
|
|
63
|
+
properties: {}
|
|
64
|
+
},
|
|
65
|
+
outputs: {
|
|
66
|
+
type: "object",
|
|
67
|
+
properties: {
|
|
68
|
+
success: { type: "boolean" }
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
tags: ["kanban", "board", "refresh"],
|
|
72
|
+
tool_call_template: {
|
|
73
|
+
call_template_type: "panel_event",
|
|
74
|
+
event_type: "industry-theme.kanban-panel:refresh-board"
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
var filterTasksTool = {
|
|
78
|
+
name: "filter_tasks",
|
|
79
|
+
description: "Filters tasks on the kanban board by labels, assignee, or priority",
|
|
80
|
+
inputs: {
|
|
81
|
+
type: "object",
|
|
82
|
+
properties: {
|
|
83
|
+
labels: {
|
|
84
|
+
type: "array",
|
|
85
|
+
items: { type: "string" },
|
|
86
|
+
description: "Filter by task labels"
|
|
87
|
+
},
|
|
88
|
+
assignee: {
|
|
89
|
+
type: "string",
|
|
90
|
+
description: "Filter by assignee name"
|
|
91
|
+
},
|
|
92
|
+
priority: {
|
|
93
|
+
type: "string",
|
|
94
|
+
description: "Filter by priority level"
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
outputs: {
|
|
99
|
+
type: "object",
|
|
100
|
+
properties: {
|
|
101
|
+
success: { type: "boolean" },
|
|
102
|
+
count: { type: "number" }
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
tags: ["kanban", "task", "filter", "search"],
|
|
106
|
+
tool_call_template: {
|
|
107
|
+
call_template_type: "panel_event",
|
|
108
|
+
event_type: "industry-theme.kanban-panel:filter-tasks"
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
var kanbanPanelTools = [
|
|
112
|
+
moveTaskTool,
|
|
113
|
+
selectTaskTool,
|
|
114
|
+
refreshBoardTool,
|
|
115
|
+
filterTasksTool
|
|
116
|
+
];
|
|
117
|
+
var kanbanPanelToolsMetadata = {
|
|
118
|
+
id: "industry-theme.kanban-panel",
|
|
119
|
+
name: "Kanban Panel",
|
|
120
|
+
description: "Tools provided by the backlogmd kanban panel extension",
|
|
121
|
+
tools: kanbanPanelTools
|
|
122
|
+
};
|
|
123
|
+
export {
|
|
124
|
+
selectTaskTool,
|
|
125
|
+
refreshBoardTool,
|
|
126
|
+
moveTaskTool,
|
|
127
|
+
kanbanPanelToolsMetadata,
|
|
128
|
+
kanbanPanelTools,
|
|
129
|
+
filterTasksTool
|
|
130
|
+
};
|
package/package.json
CHANGED
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@industry-theme/backlogmd-kanban-panel",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "Kanban board panel for visualizing Backlog.md tasks in the industry-themed panel framework",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/panels.bundle.js",
|
|
7
7
|
"module": "dist/panels.bundle.js",
|
|
8
8
|
"types": "dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/panels.bundle.js",
|
|
13
|
+
"require": "./dist/panels.bundle.js",
|
|
14
|
+
"default": "./dist/panels.bundle.js"
|
|
15
|
+
},
|
|
16
|
+
"./tools": {
|
|
17
|
+
"types": "./dist/tools/index.d.ts",
|
|
18
|
+
"import": "./dist/tools.bundle.js",
|
|
19
|
+
"require": "./dist/tools.bundle.js",
|
|
20
|
+
"default": "./dist/tools.bundle.js"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
9
23
|
"keywords": [
|
|
10
24
|
"panel-extension",
|
|
11
25
|
"kanban",
|
|
@@ -15,8 +29,9 @@
|
|
|
15
29
|
"author": "Industry Theme",
|
|
16
30
|
"license": "MIT",
|
|
17
31
|
"scripts": {
|
|
18
|
-
"build": "bun run clean && bun run build:panel && bun run build:types",
|
|
32
|
+
"build": "bun run clean && bun run build:panel && bun run build:tools && bun run build:types",
|
|
19
33
|
"build:panel": "vite build",
|
|
34
|
+
"build:tools": "bun build ./src/tools/index.ts --outfile ./dist/tools.bundle.js --format esm --target browser",
|
|
20
35
|
"build:types": "tsc --project tsconfig.build.json --emitDeclarationOnly --declaration --declarationMap",
|
|
21
36
|
"dev": "vite build --watch",
|
|
22
37
|
"clean": "rm -rf dist",
|
|
@@ -40,23 +55,20 @@
|
|
|
40
55
|
}
|
|
41
56
|
},
|
|
42
57
|
"dependencies": {
|
|
43
|
-
"@principal-ade/industry-theme": "^0.1.
|
|
44
|
-
"@principal-ade/panel-framework-core": "^0.1.
|
|
58
|
+
"@principal-ade/industry-theme": "^0.1.3",
|
|
59
|
+
"@principal-ade/panel-framework-core": "^0.1.5",
|
|
60
|
+
"@principal-ade/utcp-panel-event": "^0.1.0",
|
|
45
61
|
"clsx": "^2.1.1",
|
|
46
62
|
"lucide-react": "^0.552.0",
|
|
47
63
|
"yaml": "^2.8.1"
|
|
48
64
|
},
|
|
49
65
|
"devDependencies": {
|
|
50
|
-
"@chromatic-com/storybook": "^
|
|
66
|
+
"@chromatic-com/storybook": "^4.1.3",
|
|
51
67
|
"@eslint/js": "^9.32.0",
|
|
52
|
-
"@storybook/addon-
|
|
53
|
-
"@storybook/addon-
|
|
54
|
-
"@storybook/addon-
|
|
55
|
-
"@storybook/
|
|
56
|
-
"@storybook/blocks": "^8.5.0",
|
|
57
|
-
"@storybook/react": "^8.5.0",
|
|
58
|
-
"@storybook/react-vite": "^8.5.0",
|
|
59
|
-
"@storybook/test": "^8.5.0",
|
|
68
|
+
"@storybook/addon-docs": "10.1.2",
|
|
69
|
+
"@storybook/addon-links": "10.1.2",
|
|
70
|
+
"@storybook/addon-onboarding": "10.1.2",
|
|
71
|
+
"@storybook/react-vite": "10.1.2",
|
|
60
72
|
"@types/bun": "latest",
|
|
61
73
|
"@types/node": "^22.15.26",
|
|
62
74
|
"@types/react": "^19.0.0",
|
|
@@ -69,11 +81,11 @@
|
|
|
69
81
|
"eslint-config-prettier": "^10.1.8",
|
|
70
82
|
"eslint-plugin-react": "^7.37.2",
|
|
71
83
|
"eslint-plugin-react-hooks": "^5.0.0",
|
|
72
|
-
"eslint-plugin-storybook": "
|
|
84
|
+
"eslint-plugin-storybook": "10.1.2",
|
|
73
85
|
"prettier": "^3.6.2",
|
|
74
86
|
"react": "^19.0.0",
|
|
75
87
|
"react-dom": "^19.0.0",
|
|
76
|
-
"storybook": "
|
|
88
|
+
"storybook": "10.1.2",
|
|
77
89
|
"typescript": "^5.0.4",
|
|
78
90
|
"typescript-eslint": "^8.38.0",
|
|
79
91
|
"vite": "^6.0.7"
|