@brainfile/cli 0.13.2 → 0.13.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.
@@ -0,0 +1,198 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://brainfile.md/v1/board.json",
4
+ "title": "Brainfile Board Schema",
5
+ "description": "Schema for Kanban-style task boards with columns and tasks",
6
+ "x-brainfile-renderer": "kanban",
7
+ "x-brainfile-columns-path": "$.columns",
8
+ "x-brainfile-items-path": "$.columns[*].tasks",
9
+ "x-brainfile-title-field": "title",
10
+ "x-brainfile-status-field": "priority",
11
+ "allOf": [
12
+ {
13
+ "$ref": "https://brainfile.md/v1/base.json"
14
+ },
15
+ {
16
+ "type": "object",
17
+ "required": ["columns"],
18
+ "properties": {
19
+ "type": {
20
+ "const": "board"
21
+ },
22
+ "columns": {
23
+ "type": "array",
24
+ "description": "Task columns (e.g., To Do, In Progress, Done)",
25
+ "minItems": 1,
26
+ "items": {
27
+ "$ref": "#/definitions/column"
28
+ }
29
+ },
30
+ "statsConfig": {
31
+ "type": "object",
32
+ "description": "Configuration for statistics calculation",
33
+ "properties": {
34
+ "columns": {
35
+ "type": "array",
36
+ "description": "Column IDs to include in progress statistics",
37
+ "items": {
38
+ "type": "string"
39
+ }
40
+ }
41
+ },
42
+ "additionalProperties": false
43
+ },
44
+ "archive": {
45
+ "type": "array",
46
+ "description": "Archived tasks removed from active columns",
47
+ "items": {
48
+ "$ref": "#/definitions/task"
49
+ }
50
+ }
51
+ },
52
+ "additionalProperties": true
53
+ }
54
+ ],
55
+ "definitions": {
56
+ "column": {
57
+ "type": "object",
58
+ "required": ["id", "title", "tasks"],
59
+ "properties": {
60
+ "id": {
61
+ "type": "string",
62
+ "description": "Unique column identifier in kebab-case (e.g., 'todo', 'in-progress')",
63
+ "pattern": "^[a-z]+(-[a-z]+)*$",
64
+ "minLength": 1
65
+ },
66
+ "title": {
67
+ "type": "string",
68
+ "description": "Display title for the column",
69
+ "minLength": 1
70
+ },
71
+ "order": {
72
+ "type": "integer",
73
+ "description": "Display order for the column. Lower numbers appear first. Columns without order appear last.",
74
+ "minimum": 0
75
+ },
76
+ "completionColumn": {
77
+ "type": "boolean",
78
+ "description": "Marks this column as a completion column. When true, tasks moved to this column are considered complete. Enables explicit completion semantics for non-English column names and custom workflows.",
79
+ "default": false
80
+ },
81
+ "tasks": {
82
+ "type": "array",
83
+ "description": "Tasks in this column",
84
+ "items": {
85
+ "$ref": "#/definitions/task"
86
+ }
87
+ }
88
+ },
89
+ "additionalProperties": true
90
+ },
91
+ "task": {
92
+ "type": "object",
93
+ "required": ["id", "title"],
94
+ "properties": {
95
+ "id": {
96
+ "type": "string",
97
+ "description": "Unique task identifier following pattern 'task-N'",
98
+ "pattern": "^task-[0-9]+$"
99
+ },
100
+ "title": {
101
+ "type": "string",
102
+ "description": "Task title",
103
+ "minLength": 1
104
+ },
105
+ "description": {
106
+ "type": "string",
107
+ "description": "Optional detailed task description (supports Markdown)"
108
+ },
109
+ "assignee": {
110
+ "type": "string",
111
+ "description": "Optional task assignee"
112
+ },
113
+ "tags": {
114
+ "type": "array",
115
+ "description": "Optional task tags",
116
+ "items": {
117
+ "type": "string"
118
+ }
119
+ },
120
+ "priority": {
121
+ "type": "string",
122
+ "description": "Optional task priority",
123
+ "enum": ["low", "medium", "high", "critical"]
124
+ },
125
+ "effort": {
126
+ "type": "string",
127
+ "description": "Optional effort estimation for AI planning",
128
+ "enum": ["trivial", "small", "medium", "large", "xlarge"]
129
+ },
130
+ "blockedBy": {
131
+ "type": "array",
132
+ "description": "Optional list of task IDs that block this task",
133
+ "items": {
134
+ "type": "string",
135
+ "pattern": "^task-[0-9]+$"
136
+ }
137
+ },
138
+ "dueDate": {
139
+ "type": "string",
140
+ "description": "Optional due date in ISO 8601 format",
141
+ "format": "date"
142
+ },
143
+ "createdAt": {
144
+ "$ref": "https://brainfile.md/v1/base.json#/definitions/timestamp",
145
+ "description": "When the task was created"
146
+ },
147
+ "updatedAt": {
148
+ "$ref": "https://brainfile.md/v1/base.json#/definitions/timestamp",
149
+ "description": "When the task was last updated"
150
+ },
151
+ "relatedFiles": {
152
+ "type": "array",
153
+ "description": "Optional list of related file paths or code locations",
154
+ "items": {
155
+ "type": "string"
156
+ }
157
+ },
158
+ "subtasks": {
159
+ "type": "array",
160
+ "description": "Optional list of subtasks for tracking granular progress",
161
+ "items": {
162
+ "$ref": "#/definitions/subtask"
163
+ }
164
+ },
165
+ "template": {
166
+ "type": "string",
167
+ "description": "Optional task template type",
168
+ "enum": ["bug", "feature", "refactor"]
169
+ },
170
+ "contract": {
171
+ "$ref": "https://brainfile.md/v1/contract.json"
172
+ }
173
+ },
174
+ "additionalProperties": true
175
+ },
176
+ "subtask": {
177
+ "type": "object",
178
+ "required": ["id", "title", "completed"],
179
+ "properties": {
180
+ "id": {
181
+ "type": "string",
182
+ "description": "Unique subtask identifier, typically 'task-N-M' pattern",
183
+ "minLength": 1
184
+ },
185
+ "title": {
186
+ "type": "string",
187
+ "description": "Subtask title",
188
+ "minLength": 1
189
+ },
190
+ "completed": {
191
+ "type": "boolean",
192
+ "description": "Whether the subtask is completed"
193
+ }
194
+ },
195
+ "additionalProperties": true
196
+ }
197
+ }
198
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brainfile/cli",
3
- "version": "0.13.2",
3
+ "version": "0.13.3",
4
4
  "description": "Command-line interface for Brainfile task management",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -8,7 +8,8 @@
8
8
  "brainfile": "./dist/cli.js"
9
9
  },
10
10
  "scripts": {
11
- "build": "tsc",
11
+ "build": "tsc && npm run copy-schemas",
12
+ "copy-schemas": "mkdir -p dist/schemas && cp src/schemas/*.json dist/schemas/",
12
13
  "clean": "rm -rf dist",
13
14
  "dev": "tsc --watch",
14
15
  "test": "jest",