brainfile 0.21.2 → 0.22.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 (233) hide show
  1. package/README.md +1 -1
  2. package/dist/__tests__/helpers/mcp-wire.d.ts +2 -0
  3. package/dist/__tests__/helpers/mcp-wire.d.ts.map +1 -1
  4. package/dist/__tests__/helpers/mcp-wire.js +4 -2
  5. package/dist/__tests__/helpers/mcp-wire.js.map +1 -1
  6. package/dist/chunk-CWUTU5VV.mjs +5585 -0
  7. package/dist/chunk-L4WSDMK3.mjs +1973 -0
  8. package/dist/{chunk-7KU2R7QC.mjs → chunk-XFDTTLSW.mjs} +3230 -4322
  9. package/dist/cli.js +7 -1
  10. package/dist/cli.mjs +8078 -5357
  11. package/dist/commands/add.d.ts +4 -0
  12. package/dist/commands/add.d.ts.map +1 -1
  13. package/dist/commands/add.js +68 -72
  14. package/dist/commands/add.js.map +1 -1
  15. package/dist/commands/boards.d.ts +18 -0
  16. package/dist/commands/boards.d.ts.map +1 -0
  17. package/dist/commands/boards.js +166 -0
  18. package/dist/commands/boards.js.map +1 -0
  19. package/dist/commands/brief.d.ts +17 -11
  20. package/dist/commands/brief.d.ts.map +1 -1
  21. package/dist/commands/brief.js +38 -35
  22. package/dist/commands/brief.js.map +1 -1
  23. package/dist/commands/check.d.ts +47 -0
  24. package/dist/commands/check.d.ts.map +1 -0
  25. package/dist/commands/check.js +134 -0
  26. package/dist/commands/check.js.map +1 -0
  27. package/dist/commands/columns.d.ts +48 -0
  28. package/dist/commands/columns.d.ts.map +1 -0
  29. package/dist/commands/columns.js +132 -0
  30. package/dist/commands/columns.js.map +1 -0
  31. package/dist/commands/complete.js +9 -4
  32. package/dist/commands/complete.js.map +1 -1
  33. package/dist/commands/decide.d.ts +72 -0
  34. package/dist/commands/decide.d.ts.map +1 -0
  35. package/dist/commands/decide.js +264 -0
  36. package/dist/commands/decide.js.map +1 -0
  37. package/dist/commands/hooks.d.ts +5 -1
  38. package/dist/commands/hooks.d.ts.map +1 -1
  39. package/dist/commands/hooks.js +10 -11
  40. package/dist/commands/hooks.js.map +1 -1
  41. package/dist/commands/init.d.ts.map +1 -1
  42. package/dist/commands/init.js +8 -0
  43. package/dist/commands/init.js.map +1 -1
  44. package/dist/commands/lint.d.ts +27 -0
  45. package/dist/commands/lint.d.ts.map +1 -1
  46. package/dist/commands/lint.js +127 -20
  47. package/dist/commands/lint.js.map +1 -1
  48. package/dist/commands/list.d.ts +6 -0
  49. package/dist/commands/list.d.ts.map +1 -1
  50. package/dist/commands/list.js +216 -7
  51. package/dist/commands/list.js.map +1 -1
  52. package/dist/commands/log.d.ts +51 -0
  53. package/dist/commands/log.d.ts.map +1 -1
  54. package/dist/commands/log.js +113 -84
  55. package/dist/commands/log.js.map +1 -1
  56. package/dist/commands/mcp.d.ts +5 -2
  57. package/dist/commands/mcp.d.ts.map +1 -1
  58. package/dist/commands/mcp.js +44 -9
  59. package/dist/commands/mcp.js.map +1 -1
  60. package/dist/commands/memory-index.d.ts +34 -0
  61. package/dist/commands/memory-index.d.ts.map +1 -0
  62. package/dist/commands/memory-index.js +135 -0
  63. package/dist/commands/memory-index.js.map +1 -0
  64. package/dist/commands/merge-driver.d.ts +1 -15
  65. package/dist/commands/merge-driver.d.ts.map +1 -1
  66. package/dist/commands/merge-driver.js +8 -134
  67. package/dist/commands/merge-driver.js.map +1 -1
  68. package/dist/commands/migrate-tracked.d.ts +1 -1
  69. package/dist/commands/migrate-tracked.d.ts.map +1 -1
  70. package/dist/commands/migrate-tracked.js +21 -10
  71. package/dist/commands/migrate-tracked.js.map +1 -1
  72. package/dist/commands/patch.d.ts +23 -4
  73. package/dist/commands/patch.d.ts.map +1 -1
  74. package/dist/commands/patch.js +149 -91
  75. package/dist/commands/patch.js.map +1 -1
  76. package/dist/commands/plan.d.ts.map +1 -1
  77. package/dist/commands/plan.js +11 -5
  78. package/dist/commands/plan.js.map +1 -1
  79. package/dist/commands/schema.d.ts +12 -0
  80. package/dist/commands/schema.d.ts.map +1 -1
  81. package/dist/commands/schema.js +28 -10
  82. package/dist/commands/schema.js.map +1 -1
  83. package/dist/commands/search.d.ts +46 -12
  84. package/dist/commands/search.d.ts.map +1 -1
  85. package/dist/commands/search.js +89 -44
  86. package/dist/commands/search.js.map +1 -1
  87. package/dist/commands/show.d.ts.map +1 -1
  88. package/dist/commands/show.js +175 -10
  89. package/dist/commands/show.js.map +1 -1
  90. package/dist/commands/template.d.ts +2 -0
  91. package/dist/commands/template.d.ts.map +1 -1
  92. package/dist/commands/template.js +2 -1
  93. package/dist/commands/template.js.map +1 -1
  94. package/dist/commands/types.d.ts +31 -1
  95. package/dist/commands/types.d.ts.map +1 -1
  96. package/dist/commands/types.js +122 -22
  97. package/dist/commands/types.js.map +1 -1
  98. package/dist/commands/where.d.ts +20 -1
  99. package/dist/commands/where.d.ts.map +1 -1
  100. package/dist/commands/where.js +56 -6
  101. package/dist/commands/where.js.map +1 -1
  102. package/dist/hook.mjs +15 -0
  103. package/dist/hooks/session-start.d.ts +39 -0
  104. package/dist/hooks/session-start.d.ts.map +1 -0
  105. package/dist/hooks/session-start.js +181 -0
  106. package/dist/hooks/session-start.js.map +1 -0
  107. package/dist/lib/contractRunner.d.ts.map +1 -1
  108. package/dist/lib/contractRunner.js +8 -0
  109. package/dist/lib/contractRunner.js.map +1 -1
  110. package/dist/mcp/helpers.d.ts +29 -1
  111. package/dist/mcp/helpers.d.ts.map +1 -1
  112. package/dist/mcp/helpers.js +57 -2
  113. package/dist/mcp/helpers.js.map +1 -1
  114. package/dist/mcp/instructions.d.ts +5 -0
  115. package/dist/mcp/instructions.d.ts.map +1 -0
  116. package/dist/mcp/instructions.js +57 -0
  117. package/dist/mcp/instructions.js.map +1 -0
  118. package/dist/mcp/resources.d.ts +9 -0
  119. package/dist/mcp/resources.d.ts.map +1 -0
  120. package/dist/mcp/resources.js +29 -0
  121. package/dist/mcp/resources.js.map +1 -0
  122. package/dist/mcp/schemas.d.ts +600 -9
  123. package/dist/mcp/schemas.d.ts.map +1 -1
  124. package/dist/mcp/schemas.js +374 -12
  125. package/dist/mcp/schemas.js.map +1 -1
  126. package/dist/mcp/tools/adr_promote_tool.d.ts +7 -0
  127. package/dist/mcp/tools/adr_promote_tool.d.ts.map +1 -0
  128. package/dist/mcp/tools/adr_promote_tool.js +37 -0
  129. package/dist/mcp/tools/adr_promote_tool.js.map +1 -0
  130. package/dist/mcp/tools/board_tool.d.ts +7 -0
  131. package/dist/mcp/tools/board_tool.d.ts.map +1 -0
  132. package/dist/mcp/tools/board_tool.js +61 -0
  133. package/dist/mcp/tools/board_tool.js.map +1 -0
  134. package/dist/mcp/tools/brief_tool.d.ts.map +1 -1
  135. package/dist/mcp/tools/brief_tool.js +13 -5
  136. package/dist/mcp/tools/brief_tool.js.map +1 -1
  137. package/dist/mcp/tools/check_tool.d.ts +6 -0
  138. package/dist/mcp/tools/check_tool.d.ts.map +1 -0
  139. package/dist/mcp/tools/check_tool.js +54 -0
  140. package/dist/mcp/tools/check_tool.js.map +1 -0
  141. package/dist/mcp/tools/columns_tool.d.ts +7 -0
  142. package/dist/mcp/tools/columns_tool.d.ts.map +1 -0
  143. package/dist/mcp/tools/columns_tool.js +94 -0
  144. package/dist/mcp/tools/columns_tool.js.map +1 -0
  145. package/dist/mcp/tools/decide_tool.d.ts +91 -0
  146. package/dist/mcp/tools/decide_tool.d.ts.map +1 -0
  147. package/dist/mcp/tools/decide_tool.js +141 -0
  148. package/dist/mcp/tools/decide_tool.js.map +1 -0
  149. package/dist/mcp/tools/get_task_tool.d.ts.map +1 -1
  150. package/dist/mcp/tools/get_task_tool.js +62 -4
  151. package/dist/mcp/tools/get_task_tool.js.map +1 -1
  152. package/dist/mcp/tools/lint_tool.d.ts +7 -0
  153. package/dist/mcp/tools/lint_tool.d.ts.map +1 -0
  154. package/dist/mcp/tools/lint_tool.js +48 -0
  155. package/dist/mcp/tools/lint_tool.js.map +1 -0
  156. package/dist/mcp/tools/list_tasks_tool.d.ts.map +1 -1
  157. package/dist/mcp/tools/list_tasks_tool.js +132 -15
  158. package/dist/mcp/tools/list_tasks_tool.js.map +1 -1
  159. package/dist/mcp/tools/log_tool.d.ts +4 -0
  160. package/dist/mcp/tools/log_tool.d.ts.map +1 -0
  161. package/dist/mcp/tools/log_tool.js +52 -0
  162. package/dist/mcp/tools/log_tool.js.map +1 -0
  163. package/dist/mcp/tools/note_tool.d.ts +7 -0
  164. package/dist/mcp/tools/note_tool.d.ts.map +1 -0
  165. package/dist/mcp/tools/note_tool.js +39 -0
  166. package/dist/mcp/tools/note_tool.js.map +1 -0
  167. package/dist/mcp/tools/retire_tool.d.ts +4 -0
  168. package/dist/mcp/tools/retire_tool.d.ts.map +1 -0
  169. package/dist/mcp/tools/retire_tool.js +81 -0
  170. package/dist/mcp/tools/retire_tool.js.map +1 -0
  171. package/dist/mcp/tools/search_tool.d.ts.map +1 -1
  172. package/dist/mcp/tools/search_tool.js +36 -19
  173. package/dist/mcp/tools/search_tool.js.map +1 -1
  174. package/dist/mcp/tools/supersede_tool.d.ts +4 -0
  175. package/dist/mcp/tools/supersede_tool.d.ts.map +1 -0
  176. package/dist/mcp/tools/supersede_tool.js +72 -0
  177. package/dist/mcp/tools/supersede_tool.js.map +1 -0
  178. package/dist/mcp/tools/sync_tool.d.ts +9 -0
  179. package/dist/mcp/tools/sync_tool.d.ts.map +1 -0
  180. package/dist/mcp/tools/sync_tool.js +87 -0
  181. package/dist/mcp/tools/sync_tool.js.map +1 -0
  182. package/dist/mcp/tools/task_add_tool.d.ts.map +1 -1
  183. package/dist/mcp/tools/task_add_tool.js +39 -17
  184. package/dist/mcp/tools/task_add_tool.js.map +1 -1
  185. package/dist/mcp/tools/task_complete_tool.d.ts.map +1 -1
  186. package/dist/mcp/tools/task_complete_tool.js +3 -2
  187. package/dist/mcp/tools/task_complete_tool.js.map +1 -1
  188. package/dist/mcp/tools/task_patch_tool.d.ts.map +1 -1
  189. package/dist/mcp/tools/task_patch_tool.js +30 -5
  190. package/dist/mcp/tools/task_patch_tool.js.map +1 -1
  191. package/dist/mcp/tools/template_tool.d.ts +4 -0
  192. package/dist/mcp/tools/template_tool.d.ts.map +1 -0
  193. package/dist/mcp/tools/template_tool.js +70 -0
  194. package/dist/mcp/tools/template_tool.js.map +1 -0
  195. package/dist/mcp/tools/types_tool.d.ts +4 -0
  196. package/dist/mcp/tools/types_tool.d.ts.map +1 -0
  197. package/dist/mcp/tools/types_tool.js +61 -0
  198. package/dist/mcp/tools/types_tool.js.map +1 -0
  199. package/dist/mcp/tools/where_tool.d.ts +4 -0
  200. package/dist/mcp/tools/where_tool.d.ts.map +1 -0
  201. package/dist/mcp/tools/where_tool.js +73 -0
  202. package/dist/mcp/tools/where_tool.js.map +1 -0
  203. package/dist/schemas/board.json +29 -8
  204. package/dist/{tui-3Z7ZJV7M.mjs → tui-D6RMFL6X.mjs} +994 -315
  205. package/dist/utils/board-autosync.d.ts +1 -10
  206. package/dist/utils/board-autosync.d.ts.map +1 -1
  207. package/dist/utils/board-autosync.js +11 -29
  208. package/dist/utils/board-autosync.js.map +1 -1
  209. package/dist/utils/board-commit-hooks.d.ts +8 -0
  210. package/dist/utils/board-commit-hooks.d.ts.map +1 -1
  211. package/dist/utils/board-commit-hooks.js +45 -1
  212. package/dist/utils/board-commit-hooks.js.map +1 -1
  213. package/dist/utils/board-repo.d.ts +1 -119
  214. package/dist/utils/board-repo.d.ts.map +1 -1
  215. package/dist/utils/board-repo.js +43 -571
  216. package/dist/utils/board-repo.js.map +1 -1
  217. package/dist/utils/board-sync.d.ts +3 -123
  218. package/dist/utils/board-sync.d.ts.map +1 -1
  219. package/dist/utils/board-sync.js +34 -551
  220. package/dist/utils/board-sync.js.map +1 -1
  221. package/dist/utils/graph.d.ts +20 -0
  222. package/dist/utils/graph.d.ts.map +1 -0
  223. package/dist/utils/graph.js +61 -0
  224. package/dist/utils/graph.js.map +1 -0
  225. package/dist/utils/related.d.ts +21 -0
  226. package/dist/utils/related.d.ts.map +1 -0
  227. package/dist/utils/related.js +36 -0
  228. package/dist/utils/related.js.map +1 -0
  229. package/package.json +2 -2
  230. package/dist/tui/theme.d.ts +0 -98
  231. package/dist/tui/theme.d.ts.map +0 -1
  232. package/dist/tui/theme.js +0 -141
  233. package/dist/tui/theme.js.map +0 -1
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+ /**
3
+ * The SessionStart hook (spec-11): inject the brief into a new agent session.
4
+ *
5
+ * Kept lean on purpose: it is also the body of `dist/hook.mjs`, the entry the
6
+ * launcher runs for `brainfile hooks session-start`, so it imports core and
7
+ * `@brainfile/core/memory` and nothing else from the CLI (no commander, no
8
+ * MCP server, no ink or react). It must never fail a session: every error is
9
+ * swallowed and the hook prints nothing.
10
+ *
11
+ * Output by caller:
12
+ * - Claude Code (`hook_event_name: SessionStart`): JSON with
13
+ * `hookSpecificOutput.additionalContext` set to the brief.
14
+ * - Cursor's `stop` event (installed against this command): the old one-line
15
+ * reminder, since a stop is not a session start.
16
+ * - Anything else (Cline's TaskStart script wraps stdout; a terminal): the
17
+ * brief as plain text.
18
+ *
19
+ * @packageDocumentation
20
+ */
21
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
22
+ if (k2 === undefined) k2 = k;
23
+ var desc = Object.getOwnPropertyDescriptor(m, k);
24
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
25
+ desc = { enumerable: true, get: function() { return m[k]; } };
26
+ }
27
+ Object.defineProperty(o, k2, desc);
28
+ }) : (function(o, m, k, k2) {
29
+ if (k2 === undefined) k2 = k;
30
+ o[k2] = m[k];
31
+ }));
32
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
33
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
34
+ }) : function(o, v) {
35
+ o["default"] = v;
36
+ });
37
+ var __importStar = (this && this.__importStar) || (function () {
38
+ var ownKeys = function(o) {
39
+ ownKeys = Object.getOwnPropertyNames || function (o) {
40
+ var ar = [];
41
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
42
+ return ar;
43
+ };
44
+ return ownKeys(o);
45
+ };
46
+ return function (mod) {
47
+ if (mod && mod.__esModule) return mod;
48
+ var result = {};
49
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
50
+ __setModuleDefault(result, mod);
51
+ return result;
52
+ };
53
+ })();
54
+ Object.defineProperty(exports, "__esModule", { value: true });
55
+ exports.HOOK_REFRESH_BUDGET_MS = void 0;
56
+ exports.hookCaller = hookCaller;
57
+ exports.hookAgent = hookAgent;
58
+ exports.sessionStartOutput = sessionStartOutput;
59
+ exports.readHookInput = readHookInput;
60
+ exports.runSessionStartHook = runSessionStartHook;
61
+ const path = __importStar(require("path"));
62
+ const core_1 = require("@brainfile/core");
63
+ const memory_1 = require("@brainfile/core/memory");
64
+ /** How long the hook may spend bringing the index up to date before it briefs. */
65
+ exports.HOOK_REFRESH_BUDGET_MS = 120;
66
+ function hookCaller(input) {
67
+ if (!input)
68
+ return 'unknown';
69
+ if (input.clineVersion && input.hookName)
70
+ return 'cline';
71
+ const event = typeof input.hook_event_name === 'string' ? input.hook_event_name : '';
72
+ if (event === 'SessionStart')
73
+ return 'claude-code';
74
+ if (event === 'stop')
75
+ return 'cursor';
76
+ return 'unknown';
77
+ }
78
+ function clean(name) {
79
+ return (name ?? '').replace(/[[\]<>\r\n]/g, '').trim();
80
+ }
81
+ /** Who the brief is for: BRAINFILE_AGENT, else the caller, else the agent's environment, else `agent`. */
82
+ function hookAgent(caller, env = process.env) {
83
+ const named = clean(env.BRAINFILE_AGENT);
84
+ if (named)
85
+ return named;
86
+ if (caller === 'claude-code')
87
+ return 'claude';
88
+ if (caller === 'cline')
89
+ return 'cline';
90
+ if (caller === 'cursor')
91
+ return 'cursor';
92
+ if (env.CODEX_THREAD_ID || env.CODEX_SESSION_ID)
93
+ return 'codex';
94
+ if (env.GEMINI_CLI === '1')
95
+ return 'gemini';
96
+ if (env.CLAUDECODE === '1')
97
+ return 'claude';
98
+ return 'agent';
99
+ }
100
+ function budget(env) {
101
+ const n = Number.parseInt(env.BRAINFILE_BRIEF_MAX_CHARS ?? '', 10);
102
+ return Number.isFinite(n) && n >= 0 ? n : memory_1.DEFAULT_BRIEF_MAX_CHARS;
103
+ }
104
+ /**
105
+ * What the hook prints for an input, or null for nothing (no board, or any
106
+ * trouble). Advances the agent's brief checkpoint: the session has seen it.
107
+ */
108
+ function sessionStartOutput(input, env = process.env) {
109
+ try {
110
+ const cwd = typeof input?.cwd === 'string' && input.cwd ? input.cwd : process.cwd();
111
+ const found = (0, core_1.findBrainfile)(cwd, { stopAtGitRoot: true });
112
+ if (!found || found.kind !== 'dotdir')
113
+ return null;
114
+ const caller = hookCaller(input);
115
+ if (caller === 'cursor') {
116
+ return `✅ Brainfile detected: @${path.basename(found.absolutePath)}\nRemember to update task status as you work.`;
117
+ }
118
+ if (!(0, core_1.isV2)(found.absolutePath))
119
+ return null;
120
+ const agent = hookAgent(caller, env);
121
+ const state = (0, core_1.readBriefState)(found.absolutePath, agent);
122
+ const brief = (0, memory_1.composeBrief)((0, core_1.getV2Dirs)(found.absolutePath), agent, {
123
+ lastBriefAt: state.lastBriefAt,
124
+ maxChars: budget(env),
125
+ refreshBudgetMs: exports.HOOK_REFRESH_BUDGET_MS,
126
+ });
127
+ try {
128
+ (0, core_1.writeBriefState)(found.absolutePath, agent, brief.generatedAt);
129
+ }
130
+ catch {
131
+ // A read-only checkout still gets its brief.
132
+ }
133
+ if (caller === 'claude-code') {
134
+ return JSON.stringify({ hookSpecificOutput: { hookEventName: 'SessionStart', additionalContext: brief.text } });
135
+ }
136
+ return brief.text;
137
+ }
138
+ catch {
139
+ return null;
140
+ }
141
+ }
142
+ /** Read the hook's JSON from stdin: `{}` for a terminal, empty or unreadable input, or after `timeoutMs`. */
143
+ function readHookInput(stdin = process.stdin, timeoutMs = 1500) {
144
+ if (stdin.isTTY)
145
+ return Promise.resolve({});
146
+ return new Promise((resolve) => {
147
+ let data = '';
148
+ let done = false;
149
+ const finish = () => {
150
+ if (done)
151
+ return;
152
+ done = true;
153
+ clearTimeout(timer);
154
+ try {
155
+ const parsed = JSON.parse(data);
156
+ resolve(parsed && typeof parsed === 'object' ? parsed : {});
157
+ }
158
+ catch {
159
+ resolve({});
160
+ }
161
+ };
162
+ const timer = setTimeout(finish, timeoutMs);
163
+ stdin.setEncoding?.('utf-8');
164
+ stdin.on('data', (chunk) => { data += String(chunk); });
165
+ stdin.on('end', finish);
166
+ stdin.on('error', finish);
167
+ });
168
+ }
169
+ /** The whole hook: read stdin, print the brief (or nothing). */
170
+ async function runSessionStartHook(stdin = process.stdin, write = (text) => process.stdout.write(text), env = process.env) {
171
+ const input = await readHookInput(stdin);
172
+ const out = sessionStartOutput(input, env);
173
+ if (out)
174
+ write(`${out}\n`);
175
+ // Input that never closed (we timed out) must not keep the process alive.
176
+ if (stdin === process.stdin) {
177
+ process.stdin.pause();
178
+ process.stdin.unref?.();
179
+ }
180
+ }
181
+ //# sourceMappingURL=session-start.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../src/hooks/session-start.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWH,gCAOC;AAOD,8BAUC;AAWD,gDA8BC;AAGD,sCAsBC;AAGD,kDAaC;AAnHD,2CAA6B;AAC7B,0CAAkG;AAClG,mDAA+E;AAE/E,kFAAkF;AACrE,QAAA,sBAAsB,GAAG,GAAG,CAAC;AAI1C,SAAgB,UAAU,CAAC,KAAiD;IAC1E,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,QAAQ;QAAE,OAAO,OAAO,CAAC;IACzD,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,IAAI,KAAK,KAAK,cAAc;QAAE,OAAO,aAAa,CAAC;IACnD,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,QAAQ,CAAC;IACtC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,KAAK,CAAC,IAAwB;IACrC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACzD,CAAC;AAED,0GAA0G;AAC1G,SAAgB,SAAS,CAAC,MAAkB,EAAE,MAAyB,OAAO,CAAC,GAAG;IAChF,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACzC,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,MAAM,KAAK,aAAa;QAAE,OAAO,QAAQ,CAAC;IAC9C,IAAI,MAAM,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IACvC,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACzC,IAAI,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,gBAAgB;QAAE,OAAO,OAAO,CAAC;IAChE,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG;QAAE,OAAO,QAAQ,CAAC;IAC5C,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG;QAAE,OAAO,QAAQ,CAAC;IAC5C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,MAAM,CAAC,GAAsB;IACpC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,yBAAyB,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACnE,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gCAAuB,CAAC;AACpE,CAAC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,KAAiD,EAAE,MAAyB,OAAO,CAAC,GAAG;IACxH,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,KAAK,EAAE,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACpF,MAAM,KAAK,GAAG,IAAA,oBAAa,EAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACnD,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,OAAO,0BAA0B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,+CAA+C,CAAC;QACpH,CAAC;QACD,IAAI,CAAC,IAAA,WAAI,EAAC,KAAK,CAAC,YAAY,CAAC;YAAE,OAAO,IAAI,CAAC;QAE3C,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,IAAA,qBAAc,EAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,IAAA,qBAAY,EAAC,IAAA,gBAAS,EAAC,KAAK,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE;YAC/D,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC;YACrB,eAAe,EAAE,8BAAsB;SACxC,CAAC,CAAC;QACH,IAAI,CAAC;YACH,IAAA,sBAAe,EAAC,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,6CAA6C;QAC/C,CAAC;QACD,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,kBAAkB,EAAE,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAClH,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,6GAA6G;AAC7G,SAAgB,aAAa,CAAC,QAAqD,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAChH,IAAI,KAAK,CAAC,KAAK;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,IAAI,IAAI;gBAAE,OAAO;YACjB,IAAI,GAAG,IAAI,CAAC;YACZ,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAChC,OAAO,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9D,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,EAAE,CAAC,CAAC;YACd,CAAC;QACH,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC5C,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC;QAC7B,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACxB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,gEAAgE;AACzD,KAAK,UAAU,mBAAmB,CACvC,QAAqD,OAAO,CAAC,KAAK,EAClE,QAAgC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EACpE,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC3C,IAAI,GAAG;QAAE,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IAC3B,0EAA0E;IAC1E,IAAI,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO,CAAC,KAA2C,CAAC,KAAK,EAAE,EAAE,CAAC;IACjE,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"contractRunner.d.ts","sourceRoot":"","sources":["../../src/lib/contractRunner.ts"],"names":[],"mappings":"AAGA,OAAO,EAOL,KAAK,KAAK,EACV,KAAK,QAAQ,EACb,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AASzB,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IACjC,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,iBAAiB,EAAE,KAAK,CAAC;QACvB,WAAW,EAAE,WAAW,CAAC;QACzB,EAAE,EAAE,OAAO,CAAC;QACZ,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,cAAc,EAAE,uBAAuB,EAAE,CAAC;IAC1C,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,EAAE,EAAE,OAAO,CAAC;CACb;AAwBD,MAAM,MAAM,oBAAoB,GAC5B,oBAAoB,GACpB,qBAAqB,GACrB,sBAAsB,CAAC;AAkB3B,wBAAgB,6BAA6B,CAAC,MAAM,EAAE;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,GAAG,MAAM,CA2ET;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,kBAAkB,GAAG,oBAAoB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAOhG;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,kBAAkB,GAAG,qBAAqB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAOlG;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,kBAAkB,GAAG,sBAAsB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAOpG"}
1
+ {"version":3,"file":"contractRunner.d.ts","sourceRoot":"","sources":["../../src/lib/contractRunner.ts"],"names":[],"mappings":"AAGA,OAAO,EAOL,KAAK,KAAK,EACV,KAAK,QAAQ,EACb,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAUzB,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IACjC,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,iBAAiB,EAAE,KAAK,CAAC;QACvB,WAAW,EAAE,WAAW,CAAC;QACzB,EAAE,EAAE,OAAO,CAAC;QACZ,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,cAAc,EAAE,uBAAuB,EAAE,CAAC;IAC1C,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,EAAE,EAAE,OAAO,CAAC;CACb;AAwBD,MAAM,MAAM,oBAAoB,GAC5B,oBAAoB,GACpB,qBAAqB,GACrB,sBAAsB,CAAC;AAkB3B,wBAAgB,6BAA6B,CAAC,MAAM,EAAE;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,GAAG,MAAM,CA2ET;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,kBAAkB,GAAG,oBAAoB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAOhG;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,kBAAkB,GAAG,qBAAqB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAOlG;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,kBAAkB,GAAG,sBAAsB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAOpG"}
@@ -41,6 +41,7 @@ const fs = __importStar(require("fs"));
41
41
  const path = __importStar(require("path"));
42
42
  const child_process_1 = require("child_process");
43
43
  const core_1 = require("@brainfile/core");
44
+ const repo_1 = require("@brainfile/core/repo");
44
45
  const v2_detect_1 = require("../utils/v2-detect");
45
46
  const v2_only_1 = require("../utils/v2-only");
46
47
  /**
@@ -189,6 +190,13 @@ function pickupContractV2(ctx, resolvedFilePath) {
189
190
  return { error: `Failed to read task file: ${taskPath}` };
190
191
  if (!taskDoc.task.contract)
191
192
  return { error: `Task ${ctx.taskId} has no contract` };
193
+ // spec-10: a task that depends on a task on a related board waits until
194
+ // that task is completed there. A board not on this machine counts as not done.
195
+ const blockers = (0, repo_1.relatedBoards)(resolvedFilePath).blockers(taskDoc.task);
196
+ if (blockers.length > 0) {
197
+ const waits = blockers.map((b) => `${b.ref} — ${(0, repo_1.describeTaskRefState)(b)}`).join('; ');
198
+ return { error: `Task ${ctx.taskId} is blocked by ${waits}. It can be picked up once ${blockers.length === 1 ? 'that task is' : 'those tasks are'} completed.` };
199
+ }
192
200
  const op = (0, core_1.pickupTaskContract)(taskPath);
193
201
  if (!op.success)
194
202
  return { error: op.error || 'Failed to update contract status' };
@@ -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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"}
@@ -13,6 +13,30 @@ export declare function requireV2(filePath: string): {
13
13
  }>;
14
14
  isError: true;
15
15
  } | null;
16
+ /** A plain MCP error result. */
17
+ export declare function mcpError(message: string): {
18
+ content: Array<{
19
+ type: 'text';
20
+ text: string;
21
+ }>;
22
+ isError: true;
23
+ };
24
+ /** An MCP error result from anything thrown (a CLIError keeps its hint). */
25
+ export declare function mcpErrorFrom(error: unknown): {
26
+ content: Array<{
27
+ type: 'text';
28
+ text: string;
29
+ }>;
30
+ isError: true;
31
+ };
32
+ /** A success result: a text block and the same payload as structuredContent. */
33
+ export declare function mcpResult<T extends Record<string, unknown>>(text: string, structuredContent: T): {
34
+ content: {
35
+ type: "text";
36
+ text: string;
37
+ }[];
38
+ structuredContent: T;
39
+ };
16
40
  export declare function mcpStructuredError(message: string, field: string, value: string): {
17
41
  content: {
18
42
  type: "text";
@@ -25,9 +49,13 @@ export declare function mcpStructuredError(message: string, field: string, value
25
49
  */
26
50
  export declare function findGitRoot(startDir: string): string | null;
27
51
  type ToolInput = Record<string, unknown>;
52
+ /** Will this call change the board? Tools that both read and write say so in their input. */
53
+ export declare function toolWrites(toolName: string, input: ToolInput): boolean;
28
54
  /**
29
55
  * Wrap a mutating tool handler so a successful call commits the board when it
30
- * is tracked. A failed commit never fails the tool. The commit is authored by
56
+ * is tracked. A call that would write while another board in the repository
57
+ * disagrees with this one (spec-15) is refused before it runs, naming the
58
+ * command that settles it. A failed commit never fails the tool. The commit is authored by
31
59
  * the git user and tagged with the agent (`BRAINFILE_AGENT`, else the MCP
32
60
  * host detected from the process tree).
33
61
  */
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/mcp/helpers.ts"],"names":[],"mappings":"AAMA,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,CAgBpH;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;AAOD,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAezC;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,EAAE,CAAC,EACvD,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAC1C,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAgBpC"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/mcp/helpers.ts"],"names":[],"mappings":"AAMA,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,CAgBpH;AAED,gCAAgC;AAChC,wBAAgB,QAAQ,CAAC,OAAO,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,CAE3G;AAED,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,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,CAM9G;AAED,gFAAgF;AAChF,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;;;;;;EAE9F;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;AAQD,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAiBzC,6FAA6F;AAC7F,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAetE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,EAAE,CAAC,EACvD,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAC1C,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CA2BpC"}
@@ -35,8 +35,12 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.resolveBrainfile = resolveBrainfile;
37
37
  exports.requireV2 = requireV2;
38
+ exports.mcpError = mcpError;
39
+ exports.mcpErrorFrom = mcpErrorFrom;
40
+ exports.mcpResult = mcpResult;
38
41
  exports.mcpStructuredError = mcpStructuredError;
39
42
  exports.findGitRoot = findGitRoot;
43
+ exports.toolWrites = toolWrites;
40
44
  exports.withBoardCommit = withBoardCommit;
41
45
  const fs = __importStar(require("fs"));
42
46
  const path = __importStar(require("path"));
@@ -63,6 +67,22 @@ function requireV2(filePath) {
63
67
  (0, board_autosync_1.fetchBeforeRead)(path.dirname(resolvedPath));
64
68
  return null;
65
69
  }
70
+ /** A plain MCP error result. */
71
+ function mcpError(message) {
72
+ return { content: [{ type: 'text', text: `Error: ${message}` }], isError: true };
73
+ }
74
+ /** An MCP error result from anything thrown (a CLIError keeps its hint). */
75
+ function mcpErrorFrom(error) {
76
+ if (error instanceof Error) {
77
+ const details = error.details;
78
+ return mcpError(typeof details === 'string' && details ? `${error.message}\n${details}` : error.message);
79
+ }
80
+ return mcpError(String(error));
81
+ }
82
+ /** A success result: a text block and the same payload as structuredContent. */
83
+ function mcpResult(text, structuredContent) {
84
+ return { content: [{ type: 'text', text }], structuredContent };
85
+ }
66
86
  function mcpStructuredError(message, field, value) {
67
87
  return {
68
88
  content: [{
@@ -92,6 +112,7 @@ function findGitRoot(startDir) {
92
112
  }
93
113
  // ── Board-on-a-branch (spec-9): one commit per mutating tool call ─────────
94
114
  const board_repo_1 = require("../utils/board-repo");
115
+ const board_sync_1 = require("../utils/board-sync");
95
116
  const actor_1 = require("../utils/actor");
96
117
  function isErrorResult(result) {
97
118
  return typeof result === 'object' && result !== null && result.isError === true;
@@ -100,18 +121,52 @@ function describeToolCall(toolName, input) {
100
121
  const action = typeof input.action === 'string' ? ` ${input.action}` : '';
101
122
  const rawId = input.taskId ?? input.task;
102
123
  const id = Array.isArray(rawId) ? ` ${rawId.join(',')}` : typeof rawId === 'string' ? ` ${rawId}` : '';
103
- const detail = [input.title, input.column]
124
+ const detail = [input.title, input.column, input.claimKey, input.name, input.template]
104
125
  .find((v) => typeof v === 'string' && v.length > 0);
105
126
  return `${toolName}${action}${id}${detail ? `: ${detail}` : ''}`;
106
127
  }
128
+ const BOARD_SETTINGS = ['title', 'instructions', 'addInstructions', 'removeInstructions', 'addRelated', 'removeRelated'];
129
+ /** Will this call change the board? Tools that both read and write say so in their input. */
130
+ function toolWrites(toolName, input) {
131
+ switch (toolName) {
132
+ case 'template':
133
+ return input.action === 'use';
134
+ case 'types':
135
+ return input.action === 'add';
136
+ case 'columns':
137
+ return input.action !== undefined && input.action !== 'list';
138
+ case 'lint':
139
+ return input.fix === true;
140
+ case 'board':
141
+ return BOARD_SETTINGS.some((key) => input[key] !== undefined);
142
+ default:
143
+ return true;
144
+ }
145
+ }
107
146
  /**
108
147
  * Wrap a mutating tool handler so a successful call commits the board when it
109
- * is tracked. A failed commit never fails the tool. The commit is authored by
148
+ * is tracked. A call that would write while another board in the repository
149
+ * disagrees with this one (spec-15) is refused before it runs, naming the
150
+ * command that settles it. A failed commit never fails the tool. The commit is authored by
110
151
  * the git user and tagged with the agent (`BRAINFILE_AGENT`, else the MCP
111
152
  * host detected from the process tree).
112
153
  */
113
154
  function withBoardCommit(toolName, defaultFile, handler) {
114
155
  return async (input, extra) => {
156
+ if (toolWrites(toolName, input)) {
157
+ let conflict = null;
158
+ try {
159
+ const filePath = typeof input.file === 'string' && input.file ? input.file : defaultFile;
160
+ const resolved = resolveBrainfile(filePath);
161
+ if (fs.existsSync(resolved))
162
+ conflict = (0, board_sync_1.boardConflict)(path.dirname(resolved));
163
+ }
164
+ catch {
165
+ /* no board to guard */
166
+ }
167
+ if (conflict)
168
+ return mcpError((0, board_sync_1.boardConflictError)(conflict));
169
+ }
115
170
  const result = await handler(input, extra);
116
171
  try {
117
172
  if (!isErrorResult(result)) {
@@ -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":"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"}
@@ -0,0 +1,5 @@
1
+ /** Every tool, in the order the server registers them, and what it is for. */
2
+ export declare const TOOL_PURPOSES: ReadonlyArray<readonly [string, string]>;
3
+ /** The server instructions `brainfile mcp` sends in its handshake. */
4
+ export declare function serverInstructions(): string;
5
+ //# sourceMappingURL=instructions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../src/mcp/instructions.ts"],"names":[],"mappings":"AASA,8EAA8E;AAC9E,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CA0BlE,CAAC;AAEF,sEAAsE;AACtE,wBAAgB,kBAAkB,IAAI,MAAM,CAc3C"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TOOL_PURPOSES = void 0;
4
+ exports.serverInstructions = serverInstructions;
5
+ /**
6
+ * What `brainfile mcp` tells a client about itself (the MCP `instructions`):
7
+ * use these tools for every board change, never edit `.brainfile/` by hand,
8
+ * and one line per tool on what it is for. The parity test holds this list
9
+ * to the tools actually registered.
10
+ */
11
+ const schema_1 = require("../commands/schema");
12
+ const resources_1 = require("./resources");
13
+ /** Every tool, in the order the server registers them, and what it is for. */
14
+ exports.TOOL_PURPOSES = [
15
+ ['list_tasks', 'the board\'s documents by column, tag, type or status; tree for the outline, related for other repos\' boards'],
16
+ ['get_task', 'one document in full, with its parent, children and the decisions it rests on'],
17
+ ['search', 'the board, its history and the project\'s docs in one search; recent completions; one log entry'],
18
+ ['brief', 'what this agent should know now: current decisions, its tasks, what changed since it last looked, the docs that bear on them'],
19
+ ['check', 'whether a decision speaks to an action and still holds: use, review, use_replacement or no_decision'],
20
+ ['task_add', 'create a document (task, epic, spec, plan, decision or one of the board\'s types) with its parent, dependencies and a contract'],
21
+ ['task_patch', 'change fields on one task or many, parentId, dependsOn and decisions included'],
22
+ ['task_move', 'move one task or many to another column'],
23
+ ['task_complete', 'finish a task (it moves to logs/ and the ledger), or export it to GitHub or Linear'],
24
+ ['task_delete', 'remove a task for good'],
25
+ ['subtask', 'add, toggle, update or delete a task\'s subtasks'],
26
+ ['contract', 'attach, pick up, deliver, validate, graph or activate a task\'s contract'],
27
+ ['note', 'append a line to a task\'s log: what you found, decided or did'],
28
+ ['log', 'read completed work: one task\'s log, a search, or the most recent'],
29
+ ['decide', 'record a decision in its claim family; the family\'s current one is superseded'],
30
+ ['supersede', 'replace one decision with a new one by hand'],
31
+ ['retire', 'mark a decision rejected or stale; it moves to logs/'],
32
+ ['adr_promote', 'accept a legacy type: adr document and move it to logs/'],
33
+ ['columns', 'list, add, rename, reorder or remove the board\'s columns'],
34
+ ['board', 'read or set the board\'s title, agent instructions and related boards'],
35
+ ['types', 'every document type and its place in the graph; add one'],
36
+ ['template', 'list the task templates; add a task from one'],
37
+ ['lint', 'check the board and fix what can be fixed'],
38
+ ['sync', 'fetch, merge and push a shared board now'],
39
+ ['where', 'where the board lives, how it is stored and how fresh it is'],
40
+ ];
41
+ /** The server instructions `brainfile mcp` sends in its handshake. */
42
+ function serverInstructions() {
43
+ const schemas = schema_1.BUNDLED_SCHEMAS.map((s) => (0, resources_1.schemaResourceUri)(s.id)).join(' and ');
44
+ return [
45
+ 'Brainfile is this project\'s board: tasks, epics, specs, plans and decisions in .brainfile/, one Markdown file each, with completed work in logs/ and the ledger.',
46
+ '',
47
+ 'Use these tools for every board change. Never create, edit, move or delete files under .brainfile/ by hand, and do not shell out to the brainfile CLI for what a tool here does: the tools keep IDs, the ledger, the graph and the board\'s git history right, and commit each change.',
48
+ '',
49
+ 'Start a session with brief. Leave a note on the task you are working on as you go. Before acting on something a decision may cover, check it; when you settle something, decide it.',
50
+ '',
51
+ 'Tools (each takes file to point at another board):',
52
+ ...exports.TOOL_PURPOSES.map(([name, purpose]) => `- ${name}: ${purpose}`),
53
+ '',
54
+ `The board's JSON Schemas are resources: ${schemas}.`,
55
+ ].join('\n');
56
+ }
57
+ //# sourceMappingURL=instructions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/mcp/instructions.ts"],"names":[],"mappings":";;;AAuCA,gDAcC;AArDD;;;;;GAKG;AACH,+CAAqD;AACrD,2CAAgD;AAEhD,8EAA8E;AACjE,QAAA,aAAa,GAA6C;IACrE,CAAC,YAAY,EAAE,+GAA+G,CAAC;IAC/H,CAAC,UAAU,EAAE,+EAA+E,CAAC;IAC7F,CAAC,QAAQ,EAAE,iGAAiG,CAAC;IAC7G,CAAC,OAAO,EAAE,8HAA8H,CAAC;IACzI,CAAC,OAAO,EAAE,qGAAqG,CAAC;IAChH,CAAC,UAAU,EAAE,gIAAgI,CAAC;IAC9I,CAAC,YAAY,EAAE,+EAA+E,CAAC;IAC/F,CAAC,WAAW,EAAE,yCAAyC,CAAC;IACxD,CAAC,eAAe,EAAE,oFAAoF,CAAC;IACvG,CAAC,aAAa,EAAE,wBAAwB,CAAC;IACzC,CAAC,SAAS,EAAE,kDAAkD,CAAC;IAC/D,CAAC,UAAU,EAAE,0EAA0E,CAAC;IACxF,CAAC,MAAM,EAAE,gEAAgE,CAAC;IAC1E,CAAC,KAAK,EAAE,oEAAoE,CAAC;IAC7E,CAAC,QAAQ,EAAE,gFAAgF,CAAC;IAC5F,CAAC,WAAW,EAAE,6CAA6C,CAAC;IAC5D,CAAC,QAAQ,EAAE,sDAAsD,CAAC;IAClE,CAAC,aAAa,EAAE,yDAAyD,CAAC;IAC1E,CAAC,SAAS,EAAE,2DAA2D,CAAC;IACxE,CAAC,OAAO,EAAE,uEAAuE,CAAC;IAClF,CAAC,OAAO,EAAE,yDAAyD,CAAC;IACpE,CAAC,UAAU,EAAE,8CAA8C,CAAC;IAC5D,CAAC,MAAM,EAAE,2CAA2C,CAAC;IACrD,CAAC,MAAM,EAAE,0CAA0C,CAAC;IACpD,CAAC,OAAO,EAAE,6DAA6D,CAAC;CACzE,CAAC;AAEF,sEAAsE;AACtE,SAAgB,kBAAkB;IAChC,MAAM,OAAO,GAAG,wBAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,6BAAiB,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClF,OAAO;QACL,mKAAmK;QACnK,EAAE;QACF,wRAAwR;QACxR,EAAE;QACF,qLAAqL;QACrL,EAAE;QACF,oDAAoD;QACpD,GAAG,qBAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,KAAK,OAAO,EAAE,CAAC;QAClE,EAAE;QACF,2CAA2C,OAAO,GAAG;KACtD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { McpServer } from "@modelcontextprotocol/server";
2
+ /** The URI an MCP client reads a bundled schema at. */
3
+ export declare function schemaResourceUri(name: string): string;
4
+ /**
5
+ * The CLI's bundled JSON Schemas as MCP resources, `brainfile://schema/<name>`:
6
+ * what `brainfile schema <name>` prints, served as data rather than a tool.
7
+ */
8
+ export declare function registerSchemaResources(server: McpServer): void;
9
+ //# sourceMappingURL=resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../src/mcp/resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAG9D,uDAAuD;AACvD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkB/D"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.schemaResourceUri = schemaResourceUri;
4
+ exports.registerSchemaResources = registerSchemaResources;
5
+ const schema_1 = require("../commands/schema");
6
+ /** The URI an MCP client reads a bundled schema at. */
7
+ function schemaResourceUri(name) {
8
+ return `brainfile://schema/${name}`;
9
+ }
10
+ /**
11
+ * The CLI's bundled JSON Schemas as MCP resources, `brainfile://schema/<name>`:
12
+ * what `brainfile schema <name>` prints, served as data rather than a tool.
13
+ */
14
+ function registerSchemaResources(server) {
15
+ for (const info of schema_1.BUNDLED_SCHEMAS) {
16
+ const uri = schemaResourceUri(info.id);
17
+ server.registerResource(`schema-${info.id}`, uri, {
18
+ title: `Brainfile ${info.id} schema`,
19
+ description: `JSON Schema: ${info.description}`,
20
+ mimeType: 'application/schema+json',
21
+ }, async (requested) => {
22
+ const text = (0, schema_1.readBundledSchema)(info.id);
23
+ if (text === null)
24
+ throw new Error(`Schema file not found: ${info.file}`);
25
+ return { contents: [{ uri: requested.href, mimeType: 'application/schema+json', text }] };
26
+ });
27
+ }
28
+ }
29
+ //# sourceMappingURL=resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/mcp/resources.ts"],"names":[],"mappings":";;AAIA,8CAEC;AAMD,0DAkBC;AA7BD,+CAAwE;AAExE,uDAAuD;AACvD,SAAgB,iBAAiB,CAAC,IAAY;IAC5C,OAAO,sBAAsB,IAAI,EAAE,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,SAAgB,uBAAuB,CAAC,MAAiB;IACvD,KAAK,MAAM,IAAI,IAAI,wBAAe,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvC,MAAM,CAAC,gBAAgB,CACrB,UAAU,IAAI,CAAC,EAAE,EAAE,EACnB,GAAG,EACH;YACE,KAAK,EAAE,aAAa,IAAI,CAAC,EAAE,SAAS;YACpC,WAAW,EAAE,gBAAgB,IAAI,CAAC,WAAW,EAAE;YAC/C,QAAQ,EAAE,yBAAyB;SACpC,EACD,KAAK,EAAE,SAAS,EAAE,EAAE;YAClB,MAAM,IAAI,GAAG,IAAA,0BAAiB,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,IAAI,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1E,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC5F,CAAC,CACF,CAAC;IACJ,CAAC;AACH,CAAC"}