@industry-theme/backlogmd-kanban-panel 0.2.2 → 1.0.1

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 (38) hide show
  1. package/README.md +4 -0
  2. package/dist/adapters/PanelFileSystemAdapter.d.ts +50 -0
  3. package/dist/adapters/PanelFileSystemAdapter.d.ts.map +1 -0
  4. package/dist/adapters/index.d.ts +6 -7
  5. package/dist/adapters/index.d.ts.map +1 -1
  6. package/dist/index.d.ts +5 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/mocks/panelContext.d.ts +14 -0
  9. package/dist/mocks/panelContext.d.ts.map +1 -1
  10. package/dist/panels/KanbanPanel.d.ts.map +1 -1
  11. package/dist/panels/KanbanPanel.stories.d.ts +2 -2
  12. package/dist/panels/KanbanPanel.stories.d.ts.map +1 -1
  13. package/dist/panels/kanban/backlog-utils/board.d.ts +3 -3
  14. package/dist/panels/kanban/backlog-utils/board.d.ts.map +1 -1
  15. package/dist/panels/kanban/components/EmptyState.d.ts +2 -0
  16. package/dist/panels/kanban/components/EmptyState.d.ts.map +1 -1
  17. package/dist/panels/kanban/components/KanbanColumn.d.ts +1 -1
  18. package/dist/panels/kanban/components/KanbanColumn.d.ts.map +1 -1
  19. package/dist/panels/kanban/hooks/useKanbanData.d.ts +2 -3
  20. package/dist/panels/kanban/hooks/useKanbanData.d.ts.map +1 -1
  21. package/dist/panels/kanban/mocks/mockData.d.ts +1 -1
  22. package/dist/panels/kanban/mocks/mockData.d.ts.map +1 -1
  23. package/dist/panels.bundle.js +1111 -7013
  24. package/dist/panels.bundle.js.map +1 -1
  25. package/dist/tools/index.d.ts +36 -0
  26. package/dist/tools/index.d.ts.map +1 -0
  27. package/dist/tools.bundle.js +130 -0
  28. package/package.json +29 -17
  29. package/dist/adapters/BacklogAdapter.d.ts +0 -50
  30. package/dist/adapters/BacklogAdapter.d.ts.map +0 -1
  31. package/dist/adapters/backlog-config-parser.d.ts +0 -25
  32. package/dist/adapters/backlog-config-parser.d.ts.map +0 -1
  33. package/dist/adapters/backlog-parser.d.ts +0 -24
  34. package/dist/adapters/backlog-parser.d.ts.map +0 -1
  35. package/dist/adapters/types.d.ts +0 -115
  36. package/dist/adapters/types.d.ts.map +0 -1
  37. package/dist/panels/kanban/backlog-types/index.d.ts +0 -196
  38. package/dist/panels/kanban/backlog-types/index.d.ts.map +0 -1
@@ -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,EACV,SAAS,EACT,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,SA8B1B,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,SAkC7B,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.2",
3
+ "version": "1.0.1",
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.2",
44
- "@principal-ade/panel-framework-core": "^0.1.2",
58
+ "@backlog-md/core": "0.1.1",
59
+ "@principal-ade/industry-theme": "^0.1.3",
60
+ "@principal-ade/panel-framework-core": "^0.1.5",
61
+ "@principal-ade/utcp-panel-event": "^0.1.0",
45
62
  "clsx": "^2.1.1",
46
- "lucide-react": "^0.552.0",
47
- "yaml": "^2.8.1"
63
+ "lucide-react": "^0.552.0"
48
64
  },
49
65
  "devDependencies": {
50
- "@chromatic-com/storybook": "^3.2.2",
66
+ "@chromatic-com/storybook": "^4.1.3",
51
67
  "@eslint/js": "^9.32.0",
52
- "@storybook/addon-essentials": "^8.5.0",
53
- "@storybook/addon-interactions": "^8.5.0",
54
- "@storybook/addon-links": "^8.5.0",
55
- "@storybook/addon-onboarding": "^8.5.0",
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": "^0.11.1",
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": "^8.5.0",
88
+ "storybook": "10.1.2",
77
89
  "typescript": "^5.0.4",
78
90
  "typescript-eslint": "^8.38.0",
79
91
  "vite": "^6.0.7"
@@ -1,50 +0,0 @@
1
- /**
2
- * BacklogAdapter
3
- *
4
- * Provides a clean interface for accessing Backlog.md data from a repository.
5
- * Encapsulates all Backlog.md-specific logic and file parsing.
6
- */
7
- import type { FileAccessFunctions, IBacklogAdapter, BacklogConfig, Task } from './types';
8
- export declare class BacklogAdapter implements IBacklogAdapter {
9
- private fileAccess;
10
- private configCache;
11
- private tasksCache;
12
- constructor(fileAccess: FileAccessFunctions);
13
- /**
14
- * Check if the repository is a Backlog.md project
15
- */
16
- isBacklogProject(): boolean;
17
- /**
18
- * Get the Backlog.md project configuration
19
- */
20
- getConfig(): Promise<BacklogConfig>;
21
- /**
22
- * Get the list of status columns from config
23
- */
24
- getStatuses(): Promise<string[]>;
25
- /**
26
- * Get all tasks from the backlog
27
- */
28
- getTasks(includeCompleted?: boolean): Promise<Task[]>;
29
- /**
30
- * Get tasks grouped by status
31
- */
32
- getTasksByStatus(includeCompleted?: boolean): Promise<Map<string, Task[]>>;
33
- /**
34
- * Clear all caches (useful for refresh)
35
- */
36
- clearCache(): void;
37
- /**
38
- * Find all task files in the repository
39
- */
40
- private findTaskFiles;
41
- /**
42
- * Check if a file path is a task file
43
- */
44
- private isTaskFile;
45
- }
46
- /**
47
- * Factory function to create a BacklogAdapter
48
- */
49
- export declare function createBacklogAdapter(fileAccess: FileAccessFunctions): IBacklogAdapter;
50
- //# sourceMappingURL=BacklogAdapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BacklogAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/BacklogAdapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,IAAI,EACL,MAAM,SAAS,CAAC;AAQjB,qBAAa,cAAe,YAAW,eAAe;IACpD,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,UAAU,CAAuB;gBAE7B,UAAU,EAAE,mBAAmB;IAI3C;;OAEG;IACI,gBAAgB,IAAI,OAAO;IAiBlC;;OAEG;IACU,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC;IAkDhD;;OAEG;IACU,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAK7C;;OAEG;IACU,QAAQ,CAAC,gBAAgB,UAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAmD/D;;OAEG;IACU,gBAAgB,CAC3B,gBAAgB,UAAO,GACtB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAwC/B;;OAEG;IACI,UAAU,IAAI,IAAI;IAKzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAwBrB;;OAEG;IACH,OAAO,CAAC,UAAU;CAUnB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,mBAAmB,GAC9B,eAAe,CAEjB"}
@@ -1,25 +0,0 @@
1
- /**
2
- * Backlog.md Config Parser
3
- *
4
- * This parser implementation is copied verbatim from the official Backlog.md project:
5
- * Source: https://github.com/MrLesk/Backlog.md/blob/main/src/file-system/operations.ts
6
- * License: MIT
7
- *
8
- * This is a temporary solution with precedent in this codebase. We hope the Backlog.md
9
- * maintainers will eventually publish this as a separate npm package that can be imported.
10
- *
11
- * The official Backlog.md project uses a custom line-by-line parser instead of a YAML library,
12
- * which handles their config format more reliably than standard YAML parsers.
13
- */
14
- import type { BacklogConfig } from './types';
15
- /**
16
- * Parse Backlog.md config.yml content using the official parser logic
17
- * Copied from: https://github.com/MrLesk/Backlog.md/blob/main/src/file-system/operations.ts
18
- */
19
- export declare function parseBacklogConfig(content: string): BacklogConfig;
20
- /**
21
- * Serialize BacklogConfig back to config.yml format
22
- * Copied from: https://github.com/MrLesk/Backlog.md/blob/main/src/file-system/operations.ts
23
- */
24
- export declare function serializeBacklogConfig(config: BacklogConfig): string;
25
- //# sourceMappingURL=backlog-config-parser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"backlog-config-parser.d.ts","sourceRoot":"","sources":["../../src/adapters/backlog-config-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI7C;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CA2GjE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAcpE"}
@@ -1,24 +0,0 @@
1
- /**
2
- * Backlog Parser Utilities
3
- *
4
- * Functions for parsing Backlog.md YAML frontmatter and markdown content.
5
- */
6
- import type { Task, BacklogConfig } from './types';
7
- /**
8
- * Parse YAML string using the yaml library (for task frontmatter only)
9
- */
10
- export declare function parseYaml(yamlString: string): Record<string, unknown>;
11
- /**
12
- * Parse Backlog.md config.yml file
13
- * Uses the official Backlog.md parser implementation
14
- */
15
- export declare function parseBacklogConfig(content: string): BacklogConfig;
16
- /**
17
- * Parse a Backlog.md task file
18
- */
19
- export declare function parseTaskFile(content: string, filepath: string): Task;
20
- /**
21
- * Sort tasks within a status column
22
- */
23
- export declare function sortTasks(tasks: Task[]): Task[];
24
- //# sourceMappingURL=backlog-parser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"backlog-parser.d.ts","sourceRoot":"","sources":["../../src/adapters/backlog-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,IAAI,EAEJ,aAAa,EAEd,MAAM,SAAS,CAAC;AAIjB;;GAEG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAErE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAkCjE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAwCrE;AAsGD;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAqB/C"}
@@ -1,115 +0,0 @@
1
- /**
2
- * Adapter Types
3
- *
4
- * Defines the interfaces and types used by the BacklogAdapter
5
- * to provide a clean abstraction over Backlog.md file access.
6
- */
7
- /**
8
- * File access functions provided to the adapter
9
- */
10
- export interface FileAccessFunctions {
11
- /**
12
- * Fetch the content of a file by path
13
- * @param path - Relative path from repository root (e.g., "backlog/config.yml")
14
- * @returns Promise resolving to file content as string
15
- */
16
- fetchFile: (path: string) => Promise<string>;
17
- /**
18
- * List all files in the repository
19
- * @returns Array of file paths relative to repository root
20
- */
21
- listFiles: () => string[];
22
- }
23
- /**
24
- * Backlog.md project configuration
25
- */
26
- export interface BacklogConfig {
27
- project_name: string;
28
- default_status: string;
29
- statuses: string[];
30
- labels?: string[];
31
- milestones?: string[];
32
- date_format?: string;
33
- default_editor?: string;
34
- auto_commit?: boolean;
35
- zero_padded_ids?: number;
36
- }
37
- /**
38
- * Task metadata from YAML frontmatter
39
- */
40
- export interface TaskMetadata {
41
- id: string;
42
- title: string;
43
- status: string;
44
- assignee: string[];
45
- created_date: string;
46
- updated_date?: string;
47
- labels: string[];
48
- dependencies: string[];
49
- priority?: 'low' | 'medium' | 'high';
50
- ordinal?: number;
51
- parent?: string;
52
- }
53
- /**
54
- * Complete task with parsed content
55
- */
56
- export interface Task extends TaskMetadata {
57
- createdDate: string;
58
- updatedDate?: string;
59
- parentTaskId?: string;
60
- body: string;
61
- rawContent?: string;
62
- description?: string;
63
- acceptanceCriteriaItems?: AcceptanceCriterion[];
64
- implementationPlan?: string;
65
- implementationNotes?: string;
66
- subtasks?: string[];
67
- reporter?: string;
68
- milestone?: string;
69
- branch?: string;
70
- filePath?: string;
71
- lastModified?: Date;
72
- source?: 'local' | 'remote' | 'completed';
73
- }
74
- /**
75
- * Acceptance criterion from task
76
- */
77
- export interface AcceptanceCriterion {
78
- index: number;
79
- text: string;
80
- checked: boolean;
81
- }
82
- /**
83
- * Main adapter interface
84
- */
85
- export interface IBacklogAdapter {
86
- /**
87
- * Get the Backlog.md project configuration
88
- */
89
- getConfig(): Promise<BacklogConfig>;
90
- /**
91
- * Get all tasks from the backlog
92
- * @param includeCompleted - Whether to include completed tasks (default: true)
93
- */
94
- getTasks(includeCompleted?: boolean): Promise<Task[]>;
95
- /**
96
- * Get the list of status columns from config
97
- */
98
- getStatuses(): Promise<string[]>;
99
- /**
100
- * Get tasks grouped by status
101
- * @param includeCompleted - Whether to include completed tasks (default: true)
102
- */
103
- getTasksByStatus(includeCompleted?: boolean): Promise<Map<string, Task[]>>;
104
- /**
105
- * Check if the repository is a Backlog.md project
106
- */
107
- isBacklogProject(): boolean;
108
- }
109
- /**
110
- * Error thrown when Backlog.md files are not found or invalid
111
- */
112
- export declare class BacklogAdapterError extends Error {
113
- constructor(message: string);
114
- }
115
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"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"}
@@ -1,196 +0,0 @@
1
- export type TaskStatus = string;
2
- export interface AcceptanceCriterion {
3
- index: number;
4
- text: string;
5
- checked: boolean;
6
- }
7
- export interface AcceptanceCriterionInput {
8
- text: string;
9
- checked?: boolean;
10
- }
11
- export interface Task {
12
- id: string;
13
- title: string;
14
- status: TaskStatus;
15
- assignee: string[];
16
- reporter?: string;
17
- createdDate: string;
18
- updatedDate?: string;
19
- labels: string[];
20
- milestone?: string;
21
- dependencies: string[];
22
- readonly rawContent?: string;
23
- description?: string;
24
- implementationPlan?: string;
25
- implementationNotes?: string;
26
- /** Structured acceptance criteria parsed from body (checked state + text + index) */
27
- acceptanceCriteriaItems?: AcceptanceCriterion[];
28
- parentTaskId?: string;
29
- subtasks?: string[];
30
- priority?: "high" | "medium" | "low";
31
- branch?: string;
32
- ordinal?: number;
33
- filePath?: string;
34
- lastModified?: Date;
35
- source?: "local" | "remote" | "completed";
36
- }
37
- export interface TaskCreateInput {
38
- title: string;
39
- description?: string;
40
- status?: TaskStatus;
41
- priority?: "high" | "medium" | "low";
42
- labels?: string[];
43
- assignee?: string[];
44
- dependencies?: string[];
45
- parentTaskId?: string;
46
- implementationPlan?: string;
47
- implementationNotes?: string;
48
- acceptanceCriteria?: AcceptanceCriterionInput[];
49
- rawContent?: string;
50
- }
51
- export interface TaskUpdateInput {
52
- title?: string;
53
- description?: string;
54
- status?: TaskStatus;
55
- priority?: "high" | "medium" | "low";
56
- labels?: string[];
57
- addLabels?: string[];
58
- removeLabels?: string[];
59
- assignee?: string[];
60
- ordinal?: number;
61
- dependencies?: string[];
62
- addDependencies?: string[];
63
- removeDependencies?: string[];
64
- implementationPlan?: string;
65
- appendImplementationPlan?: string[];
66
- clearImplementationPlan?: boolean;
67
- implementationNotes?: string;
68
- appendImplementationNotes?: string[];
69
- clearImplementationNotes?: boolean;
70
- acceptanceCriteria?: AcceptanceCriterionInput[];
71
- addAcceptanceCriteria?: Array<AcceptanceCriterionInput | string>;
72
- removeAcceptanceCriteria?: number[];
73
- checkAcceptanceCriteria?: number[];
74
- uncheckAcceptanceCriteria?: number[];
75
- rawContent?: string;
76
- }
77
- export interface TaskListFilter {
78
- status?: string;
79
- assignee?: string;
80
- priority?: "high" | "medium" | "low";
81
- parentTaskId?: string;
82
- }
83
- export interface Decision {
84
- id: string;
85
- title: string;
86
- date: string;
87
- status: "proposed" | "accepted" | "rejected" | "superseded";
88
- context: string;
89
- decision: string;
90
- consequences: string;
91
- alternatives?: string;
92
- readonly rawContent: string;
93
- }
94
- export interface Document {
95
- id: string;
96
- title: string;
97
- type: "readme" | "guide" | "specification" | "other";
98
- createdDate: string;
99
- updatedDate?: string;
100
- rawContent: string;
101
- tags?: string[];
102
- name?: string;
103
- path?: string;
104
- lastModified?: string;
105
- }
106
- export type SearchResultType = "task" | "document" | "decision";
107
- export type SearchPriorityFilter = "high" | "medium" | "low";
108
- export interface SearchMatch {
109
- key?: string;
110
- indices: Array<[number, number]>;
111
- value?: unknown;
112
- }
113
- export interface SearchFilters {
114
- status?: string | string[];
115
- priority?: SearchPriorityFilter | SearchPriorityFilter[];
116
- assignee?: string | string[];
117
- labels?: string | string[];
118
- }
119
- export interface SearchOptions {
120
- query?: string;
121
- limit?: number;
122
- types?: SearchResultType[];
123
- filters?: SearchFilters;
124
- }
125
- export interface TaskSearchResult {
126
- type: "task";
127
- score: number | null;
128
- task: Task;
129
- matches?: SearchMatch[];
130
- }
131
- export interface DocumentSearchResult {
132
- type: "document";
133
- score: number | null;
134
- document: Document;
135
- matches?: SearchMatch[];
136
- }
137
- export interface DecisionSearchResult {
138
- type: "decision";
139
- score: number | null;
140
- decision: Decision;
141
- matches?: SearchMatch[];
142
- }
143
- export type SearchResult = TaskSearchResult | DocumentSearchResult | DecisionSearchResult;
144
- export interface Sequence {
145
- /** 1-based sequence index */
146
- index: number;
147
- /** Tasks that can be executed in parallel within this sequence */
148
- tasks: Task[];
149
- }
150
- export interface BacklogConfig {
151
- projectName: string;
152
- defaultAssignee?: string;
153
- defaultReporter?: string;
154
- statuses: string[];
155
- labels: string[];
156
- milestones: string[];
157
- defaultStatus?: string;
158
- dateFormat: string;
159
- maxColumnWidth?: number;
160
- taskResolutionStrategy?: "most_recent" | "most_progressed";
161
- defaultEditor?: string;
162
- autoOpenBrowser?: boolean;
163
- defaultPort?: number;
164
- remoteOperations?: boolean;
165
- autoCommit?: boolean;
166
- zeroPaddedIds?: number;
167
- timezonePreference?: string;
168
- includeDateTimeInDates?: boolean;
169
- bypassGitHooks?: boolean;
170
- checkActiveBranches?: boolean;
171
- activeBranchDays?: number;
172
- mcp?: {
173
- http?: {
174
- host?: string;
175
- port?: number;
176
- auth?: {
177
- type?: "bearer" | "basic" | "none";
178
- token?: string;
179
- username?: string;
180
- password?: string;
181
- };
182
- cors?: {
183
- origin?: string | string[];
184
- credentials?: boolean;
185
- };
186
- enableDnsRebindingProtection?: boolean;
187
- allowedHosts?: string[];
188
- allowedOrigins?: string[];
189
- };
190
- };
191
- }
192
- export interface ParsedMarkdown {
193
- frontmatter: Record<string, unknown>;
194
- content: string;
195
- }
196
- //# sourceMappingURL=index.d.ts.map