brainfile 0.18.0 → 0.19.0

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 (245) hide show
  1. package/README.md +4 -4
  2. package/dist/__tests__/helpers/mcp.d.ts +34 -0
  3. package/dist/__tests__/helpers/mcp.d.ts.map +1 -0
  4. package/dist/__tests__/helpers/mcp.js +37 -0
  5. package/dist/__tests__/helpers/mcp.js.map +1 -0
  6. package/dist/chunk-I5SJHUZK.mjs +52 -0
  7. package/dist/chunk-YTFLC673.mjs +12089 -0
  8. package/dist/cli.js +8 -479
  9. package/dist/cli.mjs +41194 -0
  10. package/dist/commands/add.d.ts.map +1 -1
  11. package/dist/commands/add.js +28 -37
  12. package/dist/commands/add.js.map +1 -1
  13. package/dist/commands/archive.d.ts +3 -2
  14. package/dist/commands/archive.d.ts.map +1 -1
  15. package/dist/commands/archive.js +16 -205
  16. package/dist/commands/archive.js.map +1 -1
  17. package/dist/commands/complete.d.ts +0 -4
  18. package/dist/commands/complete.d.ts.map +1 -1
  19. package/dist/commands/complete.js +14 -168
  20. package/dist/commands/complete.js.map +1 -1
  21. package/dist/commands/contract.d.ts.map +1 -1
  22. package/dist/commands/contract.js +66 -331
  23. package/dist/commands/contract.js.map +1 -1
  24. package/dist/commands/delete.d.ts.map +1 -1
  25. package/dist/commands/delete.js +13 -55
  26. package/dist/commands/delete.js.map +1 -1
  27. package/dist/commands/init.d.ts.map +1 -1
  28. package/dist/commands/init.js +3 -2
  29. package/dist/commands/init.js.map +1 -1
  30. package/dist/commands/list.d.ts.map +1 -1
  31. package/dist/commands/list.js +3 -54
  32. package/dist/commands/list.js.map +1 -1
  33. package/dist/commands/log.js +2 -8
  34. package/dist/commands/log.js.map +1 -1
  35. package/dist/commands/mcp.d.ts.map +1 -1
  36. package/dist/commands/mcp.js +22 -17
  37. package/dist/commands/mcp.js.map +1 -1
  38. package/dist/commands/migrate.d.ts.map +1 -1
  39. package/dist/commands/migrate.js +4 -3
  40. package/dist/commands/migrate.js.map +1 -1
  41. package/dist/commands/move.d.ts.map +1 -1
  42. package/dist/commands/move.js +31 -126
  43. package/dist/commands/move.js.map +1 -1
  44. package/dist/commands/patch.d.ts.map +1 -1
  45. package/dist/commands/patch.js +22 -92
  46. package/dist/commands/patch.js.map +1 -1
  47. package/dist/commands/plan.d.ts +61 -0
  48. package/dist/commands/plan.d.ts.map +1 -0
  49. package/dist/commands/plan.js +205 -0
  50. package/dist/commands/plan.js.map +1 -0
  51. package/dist/commands/search.d.ts.map +1 -1
  52. package/dist/commands/search.js +20 -146
  53. package/dist/commands/search.js.map +1 -1
  54. package/dist/commands/show.d.ts.map +1 -1
  55. package/dist/commands/show.js +5 -126
  56. package/dist/commands/show.js.map +1 -1
  57. package/dist/commands/subtask.d.ts.map +1 -1
  58. package/dist/commands/subtask.js +19 -135
  59. package/dist/commands/subtask.js.map +1 -1
  60. package/dist/commands/types.d.ts +2 -2
  61. package/dist/commands/types.d.ts.map +1 -1
  62. package/dist/commands/types.js +8 -30
  63. package/dist/commands/types.js.map +1 -1
  64. package/dist/devtools-NE5M3KPM.mjs +92 -0
  65. package/dist/lib/contractRunner.d.ts.map +1 -1
  66. package/dist/lib/contractRunner.js +19 -205
  67. package/dist/lib/contractRunner.js.map +1 -1
  68. package/dist/mcp/helpers.d.ts +11 -16
  69. package/dist/mcp/helpers.d.ts.map +1 -1
  70. package/dist/mcp/helpers.js +9 -46
  71. package/dist/mcp/helpers.js.map +1 -1
  72. package/dist/mcp/tools/contract_tool.d.ts +1 -1
  73. package/dist/mcp/tools/contract_tool.d.ts.map +1 -1
  74. package/dist/mcp/tools/contract_tool.js +23 -175
  75. package/dist/mcp/tools/contract_tool.js.map +1 -1
  76. package/dist/mcp/tools/get_task_tool.d.ts +1 -1
  77. package/dist/mcp/tools/get_task_tool.d.ts.map +1 -1
  78. package/dist/mcp/tools/get_task_tool.js +15 -34
  79. package/dist/mcp/tools/get_task_tool.js.map +1 -1
  80. package/dist/mcp/tools/list_tasks_tool.d.ts +1 -1
  81. package/dist/mcp/tools/list_tasks_tool.d.ts.map +1 -1
  82. package/dist/mcp/tools/list_tasks_tool.js +11 -48
  83. package/dist/mcp/tools/list_tasks_tool.js.map +1 -1
  84. package/dist/mcp/tools/search_tool.d.ts +1 -1
  85. package/dist/mcp/tools/search_tool.d.ts.map +1 -1
  86. package/dist/mcp/tools/search_tool.js +17 -98
  87. package/dist/mcp/tools/search_tool.js.map +1 -1
  88. package/dist/mcp/tools/subtask_tool.d.ts +1 -1
  89. package/dist/mcp/tools/subtask_tool.d.ts.map +1 -1
  90. package/dist/mcp/tools/subtask_tool.js +49 -224
  91. package/dist/mcp/tools/subtask_tool.js.map +1 -1
  92. package/dist/mcp/tools/task_add_tool.d.ts +1 -1
  93. package/dist/mcp/tools/task_add_tool.d.ts.map +1 -1
  94. package/dist/mcp/tools/task_add_tool.js +58 -154
  95. package/dist/mcp/tools/task_add_tool.js.map +1 -1
  96. package/dist/mcp/tools/task_complete_tool.d.ts +1 -1
  97. package/dist/mcp/tools/task_complete_tool.d.ts.map +1 -1
  98. package/dist/mcp/tools/task_complete_tool.js +28 -124
  99. package/dist/mcp/tools/task_complete_tool.js.map +1 -1
  100. package/dist/mcp/tools/task_delete_tool.d.ts +1 -1
  101. package/dist/mcp/tools/task_delete_tool.d.ts.map +1 -1
  102. package/dist/mcp/tools/task_delete_tool.js +14 -33
  103. package/dist/mcp/tools/task_delete_tool.js.map +1 -1
  104. package/dist/mcp/tools/task_move_tool.d.ts +1 -1
  105. package/dist/mcp/tools/task_move_tool.d.ts.map +1 -1
  106. package/dist/mcp/tools/task_move_tool.js +44 -150
  107. package/dist/mcp/tools/task_move_tool.js.map +1 -1
  108. package/dist/mcp/tools/task_patch_tool.d.ts +1 -1
  109. package/dist/mcp/tools/task_patch_tool.d.ts.map +1 -1
  110. package/dist/mcp/tools/task_patch_tool.js +37 -113
  111. package/dist/mcp/tools/task_patch_tool.js.map +1 -1
  112. package/dist/open-ZGSQIGEH.mjs +542 -0
  113. package/dist/tui-P56H4X7N.mjs +23715 -0
  114. package/dist/utils/dot-brainfile.d.ts +0 -4
  115. package/dist/utils/dot-brainfile.d.ts.map +1 -1
  116. package/dist/utils/dot-brainfile.js +0 -17
  117. package/dist/utils/dot-brainfile.js.map +1 -1
  118. package/dist/utils/errorHandler.d.ts +7 -11
  119. package/dist/utils/errorHandler.d.ts.map +1 -1
  120. package/dist/utils/errorHandler.js +8 -19
  121. package/dist/utils/errorHandler.js.map +1 -1
  122. package/package.json +24 -16
  123. package/dist/cli.d.ts +0 -3
  124. package/dist/cli.d.ts.map +0 -1
  125. package/dist/cli.js.map +0 -1
  126. package/dist/commands/tui.d.ts +0 -6
  127. package/dist/commands/tui.d.ts.map +0 -1
  128. package/dist/commands/tui.js +0 -79
  129. package/dist/commands/tui.js.map +0 -1
  130. package/dist/tui/BrainfileTUI.d.ts +0 -4
  131. package/dist/tui/BrainfileTUI.d.ts.map +0 -1
  132. package/dist/tui/BrainfileTUI.js +0 -272
  133. package/dist/tui/BrainfileTUI.js.map +0 -1
  134. package/dist/tui/actions.d.ts +0 -84
  135. package/dist/tui/actions.d.ts.map +0 -1
  136. package/dist/tui/actions.js +0 -1251
  137. package/dist/tui/actions.js.map +0 -1
  138. package/dist/tui/components/ColumnTabs.d.ts +0 -9
  139. package/dist/tui/components/ColumnTabs.d.ts.map +0 -1
  140. package/dist/tui/components/ColumnTabs.js +0 -34
  141. package/dist/tui/components/ColumnTabs.js.map +0 -1
  142. package/dist/tui/components/Header.d.ts +0 -15
  143. package/dist/tui/components/Header.d.ts.map +0 -1
  144. package/dist/tui/components/Header.js +0 -48
  145. package/dist/tui/components/Header.js.map +0 -1
  146. package/dist/tui/components/HelpOverlay.d.ts +0 -9
  147. package/dist/tui/components/HelpOverlay.d.ts.map +0 -1
  148. package/dist/tui/components/HelpOverlay.js +0 -116
  149. package/dist/tui/components/HelpOverlay.js.map +0 -1
  150. package/dist/tui/components/LogsPanel.d.ts +0 -16
  151. package/dist/tui/components/LogsPanel.d.ts.map +0 -1
  152. package/dist/tui/components/LogsPanel.js +0 -115
  153. package/dist/tui/components/LogsPanel.js.map +0 -1
  154. package/dist/tui/components/MainPanelTabs.d.ts +0 -10
  155. package/dist/tui/components/MainPanelTabs.d.ts.map +0 -1
  156. package/dist/tui/components/MainPanelTabs.js +0 -56
  157. package/dist/tui/components/MainPanelTabs.js.map +0 -1
  158. package/dist/tui/components/ManualBorder.d.ts +0 -42
  159. package/dist/tui/components/ManualBorder.d.ts.map +0 -1
  160. package/dist/tui/components/ManualBorder.js +0 -56
  161. package/dist/tui/components/ManualBorder.js.map +0 -1
  162. package/dist/tui/components/Overlays.d.ts +0 -41
  163. package/dist/tui/components/Overlays.d.ts.map +0 -1
  164. package/dist/tui/components/Overlays.js +0 -127
  165. package/dist/tui/components/Overlays.js.map +0 -1
  166. package/dist/tui/components/ProgressBar.d.ts +0 -8
  167. package/dist/tui/components/ProgressBar.d.ts.map +0 -1
  168. package/dist/tui/components/ProgressBar.js +0 -35
  169. package/dist/tui/components/ProgressBar.js.map +0 -1
  170. package/dist/tui/components/RulesPanel.d.ts +0 -25
  171. package/dist/tui/components/RulesPanel.d.ts.map +0 -1
  172. package/dist/tui/components/RulesPanel.js +0 -139
  173. package/dist/tui/components/RulesPanel.js.map +0 -1
  174. package/dist/tui/components/SearchBar.d.ts +0 -8
  175. package/dist/tui/components/SearchBar.d.ts.map +0 -1
  176. package/dist/tui/components/SearchBar.js +0 -38
  177. package/dist/tui/components/SearchBar.js.map +0 -1
  178. package/dist/tui/components/StackedTaskList.d.ts +0 -27
  179. package/dist/tui/components/StackedTaskList.d.ts.map +0 -1
  180. package/dist/tui/components/StackedTaskList.js +0 -120
  181. package/dist/tui/components/StackedTaskList.js.map +0 -1
  182. package/dist/tui/components/StatusBar.d.ts +0 -14
  183. package/dist/tui/components/StatusBar.d.ts.map +0 -1
  184. package/dist/tui/components/StatusBar.js +0 -42
  185. package/dist/tui/components/StatusBar.js.map +0 -1
  186. package/dist/tui/components/TaskCard.d.ts +0 -25
  187. package/dist/tui/components/TaskCard.d.ts.map +0 -1
  188. package/dist/tui/components/TaskCard.js +0 -221
  189. package/dist/tui/components/TaskCard.js.map +0 -1
  190. package/dist/tui/components/TaskCardMeasure.d.ts +0 -31
  191. package/dist/tui/components/TaskCardMeasure.d.ts.map +0 -1
  192. package/dist/tui/components/TaskCardMeasure.js +0 -133
  193. package/dist/tui/components/TaskCardMeasure.js.map +0 -1
  194. package/dist/tui/components/TaskDetail.d.ts +0 -13
  195. package/dist/tui/components/TaskDetail.d.ts.map +0 -1
  196. package/dist/tui/components/TaskDetail.js +0 -64
  197. package/dist/tui/components/TaskDetail.js.map +0 -1
  198. package/dist/tui/components/TaskList.d.ts +0 -12
  199. package/dist/tui/components/TaskList.d.ts.map +0 -1
  200. package/dist/tui/components/TaskList.js +0 -75
  201. package/dist/tui/components/TaskList.js.map +0 -1
  202. package/dist/tui/components/index.d.ts +0 -31
  203. package/dist/tui/components/index.d.ts.map +0 -1
  204. package/dist/tui/components/index.js +0 -43
  205. package/dist/tui/components/index.js.map +0 -1
  206. package/dist/tui/hooks/index.d.ts +0 -3
  207. package/dist/tui/hooks/index.d.ts.map +0 -1
  208. package/dist/tui/hooks/index.js +0 -8
  209. package/dist/tui/hooks/index.js.map +0 -1
  210. package/dist/tui/hooks/useBrainfileLoader.d.ts +0 -5
  211. package/dist/tui/hooks/useBrainfileLoader.d.ts.map +0 -1
  212. package/dist/tui/hooks/useBrainfileLoader.js +0 -237
  213. package/dist/tui/hooks/useBrainfileLoader.js.map +0 -1
  214. package/dist/tui/hooks/useKeyboardNavigation.d.ts +0 -20
  215. package/dist/tui/hooks/useKeyboardNavigation.d.ts.map +0 -1
  216. package/dist/tui/hooks/useKeyboardNavigation.js +0 -806
  217. package/dist/tui/hooks/useKeyboardNavigation.js.map +0 -1
  218. package/dist/tui/index.d.ts +0 -10
  219. package/dist/tui/index.d.ts.map +0 -1
  220. package/dist/tui/index.js +0 -38
  221. package/dist/tui/index.js.map +0 -1
  222. package/dist/tui/theme.d.ts +0 -119
  223. package/dist/tui/theme.d.ts.map +0 -1
  224. package/dist/tui/theme.js +0 -138
  225. package/dist/tui/theme.js.map +0 -1
  226. package/dist/tui/types.d.ts +0 -53
  227. package/dist/tui/types.d.ts.map +0 -1
  228. package/dist/tui/types.js +0 -12
  229. package/dist/tui/types.js.map +0 -1
  230. package/dist/tui/utils.d.ts +0 -24
  231. package/dist/tui/utils.d.ts.map +0 -1
  232. package/dist/tui/utils.js +0 -161
  233. package/dist/tui/utils.js.map +0 -1
  234. package/dist/utils/board-types.d.ts +0 -13
  235. package/dist/utils/board-types.d.ts.map +0 -1
  236. package/dist/utils/board-types.js +0 -7
  237. package/dist/utils/board-types.js.map +0 -1
  238. package/dist/utils/contractSpec.d.ts +0 -13
  239. package/dist/utils/contractSpec.d.ts.map +0 -1
  240. package/dist/utils/contractSpec.js +0 -61
  241. package/dist/utils/contractSpec.js.map +0 -1
  242. package/dist/utils/strict-validation.d.ts +0 -8
  243. package/dist/utils/strict-validation.d.ts.map +0 -1
  244. package/dist/utils/strict-validation.js +0 -41
  245. package/dist/utils/strict-validation.js.map +0 -1
@@ -42,6 +42,7 @@ const path = __importStar(require("path"));
42
42
  const child_process_1 = require("child_process");
43
43
  const core_1 = require("@brainfile/core");
44
44
  const v2_detect_1 = require("../utils/v2-detect");
45
+ const v2_only_1 = require("../utils/v2-only");
45
46
  /**
46
47
  * Detects if a command changes directories, which can cause brainfile resolution issues.
47
48
  * Returns a warning message if detected, undefined otherwise.
@@ -62,21 +63,14 @@ function detectDirectoryChangeWarning(command) {
62
63
  }
63
64
  return undefined;
64
65
  }
65
- function readBoardFromFile(filePath) {
66
- const resolvedPath = path.resolve(filePath);
67
- if (!fs.existsSync(resolvedPath)) {
68
- return { error: `File not found: ${resolvedPath}` };
66
+ function requireV2Runner(resolvedFilePath) {
67
+ if (!fs.existsSync(resolvedFilePath)) {
68
+ return { error: `File not found: ${resolvedFilePath}` };
69
69
  }
70
- const content = fs.readFileSync(resolvedPath, 'utf-8');
71
- const parsed = core_1.Brainfile.parseWithErrors(content);
72
- if (!parsed.board) {
73
- return { error: parsed.error || 'Failed to parse brainfile' };
70
+ if (!(0, v2_detect_1.isV2)(resolvedFilePath)) {
71
+ return { error: v2_only_1.V1_UNSUPPORTED_MESSAGE };
74
72
  }
75
- return { board: parsed.board, content };
76
- }
77
- function writeBoardToFile(filePath, board) {
78
- const resolvedPath = path.resolve(filePath);
79
- fs.writeFileSync(resolvedPath, core_1.Brainfile.serialize(board), 'utf-8');
73
+ return null;
80
74
  }
81
75
  function normalizeNonEmpty(input, errorMessage) {
82
76
  const trimmed = input.trim();
@@ -84,36 +78,6 @@ function normalizeNonEmpty(input, errorMessage) {
84
78
  return { ok: false, error: errorMessage };
85
79
  return { ok: true, value: trimmed };
86
80
  }
87
- function getContractOrError(taskId, contract) {
88
- if (!contract)
89
- return { ok: false, error: `Task ${taskId} has no contract` };
90
- return { ok: true, contract };
91
- }
92
- function applyPickupMetrics(contract, at = new Date()) {
93
- const withMetrics = contract;
94
- const metrics = { ...(withMetrics.metrics ?? {}) };
95
- metrics.pickedUpAt = at.toISOString();
96
- if (typeof metrics.reworkCount === 'number' && Number.isFinite(metrics.reworkCount)) {
97
- metrics.reworkCount = Math.max(0, Math.round(metrics.reworkCount)) + 1;
98
- }
99
- else {
100
- metrics.reworkCount = 0;
101
- }
102
- withMetrics.metrics = metrics;
103
- }
104
- function applyDeliverMetrics(contract, at = new Date()) {
105
- const withMetrics = contract;
106
- const metrics = { ...(withMetrics.metrics ?? {}) };
107
- metrics.deliveredAt = at.toISOString();
108
- if (typeof metrics.pickedUpAt === 'string') {
109
- const pickedUpMs = Date.parse(metrics.pickedUpAt);
110
- const deliveredMs = at.getTime();
111
- if (Number.isFinite(pickedUpMs)) {
112
- metrics.duration = Math.max(0, Math.round((deliveredMs - pickedUpMs) / 1000));
113
- }
114
- }
115
- withMetrics.metrics = metrics;
116
- }
117
81
  function formatContractContextMarkdown(params) {
118
82
  const { taskId, taskTitle, description, columnTitle, contract, relatedFiles } = params;
119
83
  const deliverables = contract.deliverables ?? [];
@@ -192,174 +156,24 @@ function formatContractContextMarkdown(params) {
192
156
  }
193
157
  function pickupContract(ctx) {
194
158
  const resolvedFilePath = (0, core_1.resolveBrainfilePath)({ filePath: ctx.filePath, startDir: process.cwd() });
195
- // V2 per-task file architecture
196
- if ((0, v2_detect_1.isV2)(resolvedFilePath)) {
197
- return pickupContractV2(ctx, resolvedFilePath);
198
- }
199
- const read = readBoardFromFile(resolvedFilePath);
200
- if ('error' in read)
201
- return { error: read.error };
202
- const { board } = read;
203
- const taskInfo = (0, core_1.findTaskById)(board, ctx.taskId);
204
- if (!taskInfo)
205
- return { error: `Task not found: ${ctx.taskId}` };
206
- const contract = getContractOrError(ctx.taskId, taskInfo.task.contract);
207
- if (!contract.ok)
208
- return { error: contract.error };
209
- applyPickupMetrics(taskInfo.task.contract);
210
- const updatedTaskInfo = (0, core_1.findTaskById)(board, ctx.taskId);
211
- if (!updatedTaskInfo?.task.contract) {
212
- return { error: `Task ${ctx.taskId} has no contract` };
213
- }
214
- updatedTaskInfo.task.contract.status = 'in_progress';
215
- writeBoardToFile(resolvedFilePath, board);
216
- const updatedContract = updatedTaskInfo.task.contract;
217
- const markdown = formatContractContextMarkdown({
218
- taskId: updatedTaskInfo.task.id,
219
- taskTitle: updatedTaskInfo.task.title,
220
- description: updatedTaskInfo.task.description,
221
- columnTitle: updatedTaskInfo.column.title,
222
- contract: updatedContract,
223
- relatedFiles: updatedTaskInfo.task.relatedFiles,
224
- });
225
- return { action: 'pickup', board, markdown };
159
+ const guard = requireV2Runner(resolvedFilePath);
160
+ if (guard)
161
+ return guard;
162
+ return pickupContractV2(ctx, resolvedFilePath);
226
163
  }
227
164
  function deliverContract(ctx) {
228
165
  const resolvedFilePath = (0, core_1.resolveBrainfilePath)({ filePath: ctx.filePath, startDir: process.cwd() });
229
- if ((0, v2_detect_1.isV2)(resolvedFilePath)) {
230
- return deliverContractV2(ctx, resolvedFilePath);
231
- }
232
- const read = readBoardFromFile(resolvedFilePath);
233
- if ('error' in read)
234
- return { error: read.error };
235
- const { board } = read;
236
- const taskInfo = (0, core_1.findTaskById)(board, ctx.taskId);
237
- if (!taskInfo)
238
- return { error: `Task not found: ${ctx.taskId}` };
239
- const contract = getContractOrError(ctx.taskId, taskInfo.task.contract);
240
- if (!contract.ok)
241
- return { error: contract.error };
242
- applyDeliverMetrics(taskInfo.task.contract);
243
- const updatedTaskInfo = (0, core_1.findTaskById)(board, ctx.taskId);
244
- if (!updatedTaskInfo?.task.contract) {
245
- return { error: `Task ${ctx.taskId} has no contract` };
246
- }
247
- updatedTaskInfo.task.contract.status = 'delivered';
248
- writeBoardToFile(resolvedFilePath, board);
249
- return { action: 'deliver', board };
166
+ const guard = requireV2Runner(resolvedFilePath);
167
+ if (guard)
168
+ return guard;
169
+ return deliverContractV2(ctx, resolvedFilePath);
250
170
  }
251
171
  function validateContract(ctx) {
252
172
  const resolvedFilePath = (0, core_1.resolveBrainfilePath)({ filePath: ctx.filePath, startDir: process.cwd() });
253
- if ((0, v2_detect_1.isV2)(resolvedFilePath)) {
254
- return validateContractV2(ctx, resolvedFilePath);
255
- }
256
- const read = readBoardFromFile(resolvedFilePath);
257
- if ('error' in read)
258
- return { error: read.error };
259
- const { board } = read;
260
- const taskInfo = (0, core_1.findTaskById)(board, ctx.taskId);
261
- if (!taskInfo)
262
- return { error: `Task not found: ${ctx.taskId}` };
263
- const contractInfo = getContractOrError(ctx.taskId, taskInfo.task.contract);
264
- if (!contractInfo.ok)
265
- return { error: contractInfo.error };
266
- const contract = contractInfo.contract;
267
- const brainfileAbs = path.resolve(resolvedFilePath);
268
- const brainfileDir = path.dirname(brainfileAbs);
269
- // If brainfile is inside .brainfile/, use parent as project root
270
- // This ensures paths like "cli/src/file.ts" resolve from project root, not .brainfile/
271
- const baseDir = path.basename(brainfileDir) === '.brainfile'
272
- ? path.dirname(brainfileDir)
273
- : brainfileDir;
274
- const deliverables = contract.deliverables ?? [];
275
- const deliverableChecks = [];
276
- // Check file deliverables exist
277
- for (const d of deliverables) {
278
- if (d.type !== 'file') {
279
- deliverableChecks.push({ deliverable: d, ok: true });
280
- continue;
281
- }
282
- const normalized = normalizeNonEmpty(d.path, 'Deliverable path is required');
283
- if (!normalized.ok) {
284
- deliverableChecks.push({ deliverable: d, ok: false, error: normalized.error });
285
- continue;
286
- }
287
- const resolved = path.isAbsolute(normalized.value)
288
- ? normalized.value
289
- : path.join(baseDir, normalized.value);
290
- if (!fs.existsSync(resolved)) {
291
- deliverableChecks.push({ deliverable: d, ok: false, resolvedPath: resolved, error: 'File not found' });
292
- }
293
- else {
294
- deliverableChecks.push({ deliverable: d, ok: true, resolvedPath: resolved });
295
- }
296
- }
297
- // If any deliverable failed, fail fast (and do not run commands)
298
- const deliverablesOk = deliverableChecks.every((c) => c.ok);
299
- const commandResults = [];
300
- const warnings = [];
301
- let ok = deliverablesOk;
302
- if (ok) {
303
- const commands = contract.validation?.commands ?? [];
304
- for (const raw of commands) {
305
- const normalized = normalizeNonEmpty(raw, 'Validation command is required');
306
- if (!normalized.ok) {
307
- commandResults.push({ command: raw, exitCode: 1, stdout: '', stderr: normalized.error });
308
- ok = false;
309
- break;
310
- }
311
- // Check for directory-changing commands that may cause issues
312
- const dirWarning = detectDirectoryChangeWarning(normalized.value);
313
- if (dirWarning) {
314
- warnings.push({ command: normalized.value, message: dirWarning });
315
- }
316
- const res = (0, child_process_1.spawnSync)(normalized.value, {
317
- shell: true,
318
- cwd: baseDir,
319
- encoding: 'utf-8',
320
- });
321
- const exitCode = typeof res.status === 'number' ? res.status : 1;
322
- commandResults.push({
323
- command: normalized.value,
324
- exitCode,
325
- stdout: res.stdout ?? '',
326
- stderr: res.stderr ?? '',
327
- });
328
- if (exitCode !== 0) {
329
- ok = false;
330
- break;
331
- }
332
- }
333
- }
334
- const failureFeedback = !deliverablesOk
335
- ? deliverableChecks
336
- .filter((check) => !check.ok)
337
- .map((check) => {
338
- const location = check.resolvedPath ? ` (${check.resolvedPath})` : '';
339
- return `${check.deliverable.path}${location}: ${check.error || 'Validation failed'}`;
340
- })
341
- .join('\n')
342
- : commandResults.at(-1)?.stderr || commandResults.at(-1)?.stdout || 'Validation failed';
343
- const updatedTaskInfo = (0, core_1.findTaskById)(board, ctx.taskId);
344
- if (!updatedTaskInfo?.task.contract) {
345
- return { error: `Task ${ctx.taskId} has no contract` };
346
- }
347
- if (ok && updatedTaskInfo.task.contract.status !== 'done') {
348
- updatedTaskInfo.task.contract.status = 'done';
349
- }
350
- else if (!ok) {
351
- updatedTaskInfo.task.contract.status = 'failed';
352
- updatedTaskInfo.task.contract.feedback = failureFeedback.trim() || undefined;
353
- }
354
- writeBoardToFile(resolvedFilePath, board);
355
- return {
356
- action: 'validate',
357
- board,
358
- deliverableChecks,
359
- commandResults,
360
- warnings,
361
- ok,
362
- };
173
+ const guard = requireV2Runner(resolvedFilePath);
174
+ if (guard)
175
+ return guard;
176
+ return validateContractV2(ctx, resolvedFilePath);
363
177
  }
364
178
  // ============================================================================
365
179
  // V2 Contract Operations (per-task files)
@@ -1 +1 @@
1
- {"version":3,"file":"contractRunner.js","sourceRoot":"","sources":["../../src/lib/contractRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contractRunner.js","sourceRoot":"","sources":["../../src/lib/contractRunner.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,18 @@
1
- import { type Board } from '@brainfile/core';
2
1
  export interface McpOptions {
3
2
  file: string;
4
3
  }
5
- export interface TypeEntry {
6
- idPrefix: string;
7
- completable?: boolean;
8
- schema?: string;
9
- }
10
- export type TypesConfig = Record<string, TypeEntry>;
11
- export declare function sanitizeTypesConfig(raw: unknown): TypesConfig;
12
- export declare function isTaskCompletable(taskType: string | undefined, rawTypes: unknown): boolean;
13
4
  export declare function resolveBrainfile(filePath: string): string;
14
- export declare function readBoard(filePath: string): {
15
- board: Board;
16
- content: string;
17
- } | {
18
- error: string;
19
- };
20
- export declare function writeBoard(filePath: string, board: Board): void;
5
+ /**
6
+ * Guard for MCP tool handlers: returns an MCP error result when the target
7
+ * brainfile is missing or not in v2 per-task file layout, null otherwise.
8
+ */
9
+ export declare function requireV2(filePath: string): {
10
+ content: Array<{
11
+ type: 'text';
12
+ text: string;
13
+ }>;
14
+ isError: true;
15
+ } | null;
21
16
  export declare function mcpStructuredError(message: string, field: string, value: string): {
22
17
  content: {
23
18
  type: "text";
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/mcp/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,KAAK,EAA0B,MAAM,iBAAiB,CAAC;AAGhF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAEpD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,CAwB7D;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAS1F;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAcjG;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAI/D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;;;;;;EAY/E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAe3D"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/mcp/helpers.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,GAAG,IAAI,CAYpH;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;;;;;;EAY/E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAe3D"}
@@ -33,67 +33,30 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.sanitizeTypesConfig = sanitizeTypesConfig;
37
- exports.isTaskCompletable = isTaskCompletable;
38
36
  exports.resolveBrainfile = resolveBrainfile;
39
- exports.readBoard = readBoard;
40
- exports.writeBoard = writeBoard;
37
+ exports.requireV2 = requireV2;
41
38
  exports.mcpStructuredError = mcpStructuredError;
42
39
  exports.findGitRoot = findGitRoot;
43
40
  const fs = __importStar(require("fs"));
44
41
  const path = __importStar(require("path"));
45
42
  const core_1 = require("@brainfile/core");
46
43
  const v2_only_1 = require("../utils/v2-only");
47
- function sanitizeTypesConfig(raw) {
48
- if (!raw || typeof raw !== 'object' || Array.isArray(raw)) {
49
- return {};
50
- }
51
- const out = {};
52
- for (const [name, value] of Object.entries(raw)) {
53
- if (!value || typeof value !== 'object' || Array.isArray(value)) {
54
- continue;
55
- }
56
- const entry = value;
57
- const idPrefix = typeof entry.idPrefix === 'string' && entry.idPrefix.trim()
58
- ? entry.idPrefix.trim()
59
- : name;
60
- const normalized = { idPrefix };
61
- if (typeof entry.completable === 'boolean')
62
- normalized.completable = entry.completable;
63
- if (typeof entry.schema === 'string' && entry.schema.trim())
64
- normalized.schema = entry.schema.trim();
65
- out[name] = normalized;
66
- }
67
- return out;
68
- }
69
- function isTaskCompletable(taskType, rawTypes) {
70
- const resolvedType = taskType || 'task';
71
- if (resolvedType === 'task') {
72
- return true;
73
- }
74
- const types = sanitizeTypesConfig(rawTypes);
75
- const typeConfig = types[resolvedType];
76
- return typeConfig?.completable !== false;
77
- }
78
44
  function resolveBrainfile(filePath) {
79
45
  return path.resolve(filePath);
80
46
  }
81
- function readBoard(filePath) {
47
+ /**
48
+ * Guard for MCP tool handlers: returns an MCP error result when the target
49
+ * brainfile is missing or not in v2 per-task file layout, null otherwise.
50
+ */
51
+ function requireV2(filePath) {
82
52
  const resolvedPath = resolveBrainfile(filePath);
83
53
  if (!fs.existsSync(resolvedPath)) {
84
- return { error: `File not found: ${resolvedPath}` };
54
+ return { content: [{ type: 'text', text: `Error: File not found: ${resolvedPath}` }], isError: true };
85
55
  }
86
56
  if (!(0, core_1.isV2)(resolvedPath)) {
87
- return { error: v2_only_1.V1_UNSUPPORTED_MESSAGE };
57
+ return { content: [{ type: 'text', text: `Error: ${v2_only_1.V1_UNSUPPORTED_MESSAGE}` }], isError: true };
88
58
  }
89
- const board = (0, core_1.buildBoardFromV2)(resolvedPath);
90
- const content = fs.readFileSync(resolvedPath, 'utf-8');
91
- return { board, content };
92
- }
93
- function writeBoard(filePath, board) {
94
- const resolvedPath = resolveBrainfile(filePath);
95
- const content = core_1.Brainfile.serialize(board);
96
- fs.writeFileSync(resolvedPath, content, 'utf-8');
59
+ return null;
97
60
  }
98
61
  function mcpStructuredError(message, field, value) {
99
62
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/mcp/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/mcp/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,4CAEC;AAMD,8BAYC;AAED,gDAYC;AAKD,kCAeC;AA/DD,uCAAyB;AACzB,2CAA6B;AAC7B,0CAAuC;AACvC,8CAA0D;AAM1D,SAAgB,gBAAgB,CAAC,QAAgB;IAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,SAAgB,SAAS,CAAC,QAAgB;IACxC,MAAM,YAAY,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAEhD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,0BAA0B,YAAY,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACjH,CAAC;IAED,IAAI,CAAC,IAAA,WAAI,EAAC,YAAY,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,gCAAsB,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3G,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,kBAAkB,CAAC,OAAe,EAAE,KAAa,EAAE,KAAa;IAC9E,OAAO;QACL,OAAO,EAAE,CAAC;gBACR,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAC9D,IAAI,EACJ,CAAC,CACF;aACF,CAAC;QACF,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,QAAgB;IAC1C,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;IAEzC,OAAO,UAAU,KAAK,IAAI,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,SAAS,KAAK,UAAU;YAAE,MAAM;QACpC,UAAU,GAAG,SAAS,CAAC;IACzB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
1
+ import type { McpServer } from "@modelcontextprotocol/server";
2
2
  export declare function registerContractTool(server: McpServer, defaultFile: string): void;
3
3
  //# sourceMappingURL=contract_tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract_tool.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/contract_tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiBzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAuSjF"}
1
+ {"version":3,"file":"contract_tool.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/contract_tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAY9D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAmLjF"}