brainfile 0.19.0 → 0.20.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 (82) hide show
  1. package/README.md +18 -24
  2. package/dist/__tests__/helpers/mcp-wire.d.ts +45 -0
  3. package/dist/__tests__/helpers/mcp-wire.d.ts.map +1 -0
  4. package/dist/__tests__/helpers/mcp-wire.js +133 -0
  5. package/dist/__tests__/helpers/mcp-wire.js.map +1 -0
  6. package/dist/{chunk-YTFLC673.mjs → chunk-UOCQBEEW.mjs} +1486 -992
  7. package/dist/cli.mjs +916 -776
  8. package/dist/commands/adr.d.ts +1 -9
  9. package/dist/commands/adr.d.ts.map +1 -1
  10. package/dist/commands/adr.js +11 -88
  11. package/dist/commands/adr.js.map +1 -1
  12. package/dist/commands/archive.d.ts +2 -5
  13. package/dist/commands/archive.d.ts.map +1 -1
  14. package/dist/commands/archive.js +43 -11
  15. package/dist/commands/archive.js.map +1 -1
  16. package/dist/commands/brief.d.ts +31 -0
  17. package/dist/commands/brief.d.ts.map +1 -0
  18. package/dist/commands/brief.js +151 -0
  19. package/dist/commands/brief.js.map +1 -0
  20. package/dist/commands/complete.js +1 -1
  21. package/dist/commands/complete.js.map +1 -1
  22. package/dist/commands/log.js +31 -18
  23. package/dist/commands/log.js.map +1 -1
  24. package/dist/commands/mcp.d.ts +9 -0
  25. package/dist/commands/mcp.d.ts.map +1 -1
  26. package/dist/commands/mcp.js +28 -17
  27. package/dist/commands/mcp.js.map +1 -1
  28. package/dist/commands/migrate.js +10 -12
  29. package/dist/commands/migrate.js.map +1 -1
  30. package/dist/mcp/schemas.d.ts +297 -0
  31. package/dist/mcp/schemas.d.ts.map +1 -0
  32. package/dist/mcp/schemas.js +328 -0
  33. package/dist/mcp/schemas.js.map +1 -0
  34. package/dist/mcp/tools/brief_tool.d.ts +14 -0
  35. package/dist/mcp/tools/brief_tool.d.ts.map +1 -0
  36. package/dist/mcp/tools/brief_tool.js +58 -0
  37. package/dist/mcp/tools/brief_tool.js.map +1 -0
  38. package/dist/mcp/tools/contract_tool.d.ts.map +1 -1
  39. package/dist/mcp/tools/contract_tool.js +37 -13
  40. package/dist/mcp/tools/contract_tool.js.map +1 -1
  41. package/dist/mcp/tools/get_task_tool.d.ts.map +1 -1
  42. package/dist/mcp/tools/get_task_tool.js +7 -2
  43. package/dist/mcp/tools/get_task_tool.js.map +1 -1
  44. package/dist/mcp/tools/list_tasks_tool.d.ts.map +1 -1
  45. package/dist/mcp/tools/list_tasks_tool.js +9 -3
  46. package/dist/mcp/tools/list_tasks_tool.js.map +1 -1
  47. package/dist/mcp/tools/search_tool.d.ts.map +1 -1
  48. package/dist/mcp/tools/search_tool.js +17 -4
  49. package/dist/mcp/tools/search_tool.js.map +1 -1
  50. package/dist/mcp/tools/subtask_tool.d.ts.map +1 -1
  51. package/dist/mcp/tools/subtask_tool.js +47 -13
  52. package/dist/mcp/tools/subtask_tool.js.map +1 -1
  53. package/dist/mcp/tools/task_add_tool.d.ts.map +1 -1
  54. package/dist/mcp/tools/task_add_tool.js +7 -2
  55. package/dist/mcp/tools/task_add_tool.js.map +1 -1
  56. package/dist/mcp/tools/task_complete_tool.d.ts.map +1 -1
  57. package/dist/mcp/tools/task_complete_tool.js +34 -6
  58. package/dist/mcp/tools/task_complete_tool.js.map +1 -1
  59. package/dist/mcp/tools/task_delete_tool.d.ts.map +1 -1
  60. package/dist/mcp/tools/task_delete_tool.js +7 -2
  61. package/dist/mcp/tools/task_delete_tool.js.map +1 -1
  62. package/dist/mcp/tools/task_move_tool.d.ts.map +1 -1
  63. package/dist/mcp/tools/task_move_tool.js +15 -6
  64. package/dist/mcp/tools/task_move_tool.js.map +1 -1
  65. package/dist/mcp/tools/task_patch_tool.d.ts.map +1 -1
  66. package/dist/mcp/tools/task_patch_tool.js +18 -6
  67. package/dist/mcp/tools/task_patch_tool.js.map +1 -1
  68. package/dist/schemas/board.json +1 -1
  69. package/dist/tui/theme.d.ts +98 -0
  70. package/dist/tui/theme.d.ts.map +1 -0
  71. package/dist/tui/theme.js +141 -0
  72. package/dist/tui/theme.js.map +1 -0
  73. package/dist/{tui-P56H4X7N.mjs → tui-H3RI22S4.mjs} +1593 -1934
  74. package/dist/utils/cli-error.d.ts +20 -0
  75. package/dist/utils/cli-error.d.ts.map +1 -1
  76. package/dist/utils/cli-error.js +36 -0
  77. package/dist/utils/cli-error.js.map +1 -1
  78. package/package.json +3 -3
  79. package/dist/commands/rules.d.ts +0 -68
  80. package/dist/commands/rules.d.ts.map +0 -1
  81. package/dist/commands/rules.js +0 -322
  82. package/dist/commands/rules.js.map +0 -1
@@ -0,0 +1,328 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.briefOutputSchema = exports.taskCompleteOutputSchema = exports.contractOutputSchema = exports.subtaskOutputSchema = exports.taskDeleteOutputSchema = exports.taskPatchOutputSchema = exports.taskMoveOutputSchema = exports.taskAddOutputSchema = exports.searchOutputSchema = exports.getTaskOutputSchema = exports.listTasksOutputSchema = void 0;
4
+ /**
5
+ * Output schemas for the 11 consolidated MCP tools.
6
+ *
7
+ * Each tool declares one of these as `outputSchema`, and every non-error
8
+ * success path returns the matching object as `structuredContent` alongside
9
+ * the `content` text block it already emitted. The text block is never
10
+ * removed, so clients that read only `content` are unaffected.
11
+ *
12
+ * Three SDK behaviours (v2.0.0) shape everything here — all verified against
13
+ * the installed `@modelcontextprotocol/server` runtime:
14
+ *
15
+ * 1. Declaring `outputSchema` makes `structuredContent` MANDATORY on every
16
+ * result that is not `isError: true`. `McpServer.validateToolOutput`
17
+ * throws `Output validation error: … no structured content was provided`
18
+ * otherwise. Adding a schema to a tool therefore means auditing *every*
19
+ * success `return` in that tool, not just the main one.
20
+ *
21
+ * 2. Output validation is SKIPPED when `isError: true`, so error paths need
22
+ * neither `structuredContent` nor schema conformance. Error returns are
23
+ * left exactly as they were.
24
+ *
25
+ * 3. Root shape decides whether the two protocol eras agree. The 2025-era
26
+ * wire codec re-wraps `structuredContent` as `{result: …}` whenever the
27
+ * ADVERTISED schema root is not `type: "object"`, while the 2026-era codec
28
+ * is identity — so a non-object root would hand the two eras different
29
+ * bytes. Unions are still safe: the SDK's `standardSchemaToJsonSchema`
30
+ * injects `type: "object"` for any `oneOf`/`anyOf` whose members are all
31
+ * object-shaped (`isProvablyObjectShapedRoot`). Every union below is a
32
+ * union of objects for exactly that reason — adding a non-object member
33
+ * (a bare `z.string()`, say) would silently split the eras apart.
34
+ *
35
+ * Enum-ish fields that originate in hand-editable YAML (notably `priority`)
36
+ * are typed `z.string()` rather than `z.enum([...])`. A board carrying
37
+ * `priority: urgent` would otherwise fail output validation and turn a
38
+ * working call into an error result.
39
+ */
40
+ const zod_1 = require("zod");
41
+ // ── shared fragments ───────────────────────────────────────────────────────
42
+ /** A task as projected into list/search results (never the raw task file). */
43
+ const taskSummaryShape = {
44
+ id: zod_1.z.string(),
45
+ title: zod_1.z.string(),
46
+ priority: zod_1.z.string().optional(),
47
+ tags: zod_1.z.array(zod_1.z.string()).optional(),
48
+ assignee: zod_1.z.string().optional(),
49
+ };
50
+ // `column` is the column *id* (same as `get_task`), so a subsequent `task_move`
51
+ // can pass the value back without resolving titles.
52
+ const subtaskSchema = zod_1.z.looseObject({
53
+ id: zod_1.z.string(),
54
+ title: zod_1.z.string(),
55
+ completed: zod_1.z.boolean().optional(),
56
+ });
57
+ // ── list_tasks ─────────────────────────────────────────────────────────────
58
+ exports.listTasksOutputSchema = zod_1.z.object({
59
+ tasks: zod_1.z.array(zod_1.z.object({ ...taskSummaryShape, column: zod_1.z.string() })),
60
+ count: zod_1.z.number(),
61
+ });
62
+ // ── get_task ───────────────────────────────────────────────────────────────
63
+ /**
64
+ * `get_task` spreads the raw `Task`, whose TypeScript type carries an open
65
+ * `[key: string]: unknown` index signature so extension fields (`x-otto`,
66
+ * `x-cursor`, …) round-trip. Modelled with `z.looseObject` so the advertised
67
+ * JSON Schema says `additionalProperties: {}` instead of `false` — a closed
68
+ * object would advertise those extension fields as illegal.
69
+ *
70
+ * `id` and `title` are required because `parseTaskContent` returns null for
71
+ * any task file missing either, so a task that reached this point has both.
72
+ * `column` is always set by the handler.
73
+ */
74
+ exports.getTaskOutputSchema = zod_1.z.looseObject({
75
+ id: zod_1.z.string(),
76
+ title: zod_1.z.string(),
77
+ column: zod_1.z.string(),
78
+ type: zod_1.z.string().optional(),
79
+ description: zod_1.z.string().optional(),
80
+ parentId: zod_1.z.string().optional(),
81
+ dependsOn: zod_1.z.array(zod_1.z.string()).optional(),
82
+ blockedBy: zod_1.z.array(zod_1.z.string()).optional(),
83
+ relatedFiles: zod_1.z.array(zod_1.z.string()).optional(),
84
+ assignee: zod_1.z.string().optional(),
85
+ tags: zod_1.z.array(zod_1.z.string()).optional(),
86
+ priority: zod_1.z.string().optional(),
87
+ dueDate: zod_1.z.string().optional(),
88
+ subtasks: zod_1.z.array(subtaskSchema).optional(),
89
+ contract: zod_1.z.looseObject({}).optional(),
90
+ createdAt: zod_1.z.string().optional(),
91
+ updatedAt: zod_1.z.string().optional(),
92
+ completedAt: zod_1.z.string().optional(),
93
+ position: zod_1.z.number().optional(),
94
+ archived: zod_1.z.boolean().optional(),
95
+ });
96
+ // ── search ─────────────────────────────────────────────────────────────────
97
+ /** `task:` — a single task/log entry rendered with its description and log. */
98
+ const searchTaskViewSchema = zod_1.z.object({
99
+ id: zod_1.z.string(),
100
+ title: zod_1.z.string(),
101
+ completedAt: zod_1.z.string().optional(),
102
+ isLog: zod_1.z.boolean(),
103
+ description: zod_1.z.string().optional(),
104
+ log: zod_1.z.string().optional(),
105
+ });
106
+ /** `recent: true` — the most recently completed tasks. */
107
+ const searchRecentSchema = zod_1.z.object({
108
+ logs: zod_1.z.array(zod_1.z.object({
109
+ id: zod_1.z.string(),
110
+ title: zod_1.z.string(),
111
+ completedAt: zod_1.z.string().optional(),
112
+ })),
113
+ count: zod_1.z.number(),
114
+ });
115
+ /** `query:` — ranked matches across board and logs. */
116
+ const searchResultsSchema = zod_1.z.object({
117
+ results: zod_1.z.array(zod_1.z.object({
118
+ ...taskSummaryShape,
119
+ column: zod_1.z.string().optional(),
120
+ score: zod_1.z.number(),
121
+ isLog: zod_1.z.boolean().optional(),
122
+ })),
123
+ count: zod_1.z.number(),
124
+ });
125
+ /**
126
+ * Three genuinely different payloads selected by which input was supplied.
127
+ * The variants' required-field sets don't overlap (`isLog` scalar vs `logs`
128
+ * array vs `results` array), so an untagged union discriminates structurally
129
+ * and no payload had to change to add a tag.
130
+ */
131
+ exports.searchOutputSchema = zod_1.z.union([
132
+ searchTaskViewSchema,
133
+ searchRecentSchema,
134
+ searchResultsSchema,
135
+ ]);
136
+ // ── task_add ───────────────────────────────────────────────────────────────
137
+ /** New payload: `task_add` previously returned only a prose confirmation. */
138
+ exports.taskAddOutputSchema = zod_1.z.object({
139
+ id: zod_1.z.string(),
140
+ title: zod_1.z.string(),
141
+ });
142
+ // ── task_move / task_patch ─────────────────────────────────────────────────
143
+ /**
144
+ * Both tools branch their TEXT on single-vs-batch, but the structured payload
145
+ * is always the batch shape (a one-element `results` array for a single move),
146
+ * so agents parse one shape regardless of how many IDs they passed.
147
+ */
148
+ exports.taskMoveOutputSchema = zod_1.z.object({
149
+ success: zod_1.z.boolean(),
150
+ successCount: zod_1.z.number(),
151
+ failureCount: zod_1.z.number(),
152
+ results: zod_1.z.array(zod_1.z.object({
153
+ taskId: zod_1.z.string(),
154
+ success: zod_1.z.boolean(),
155
+ message: zod_1.z.string().optional(),
156
+ warning: zod_1.z.string().optional(),
157
+ error: zod_1.z.string().optional(),
158
+ })),
159
+ });
160
+ exports.taskPatchOutputSchema = zod_1.z.object({
161
+ success: zod_1.z.boolean(),
162
+ successCount: zod_1.z.number(),
163
+ failureCount: zod_1.z.number(),
164
+ results: zod_1.z.array(zod_1.z.object({
165
+ taskId: zod_1.z.string(),
166
+ success: zod_1.z.boolean(),
167
+ error: zod_1.z.string().optional(),
168
+ })),
169
+ });
170
+ // ── task_delete ────────────────────────────────────────────────────────────
171
+ /** New payload: `task_delete` previously returned only a prose confirmation. */
172
+ exports.taskDeleteOutputSchema = zod_1.z.object({
173
+ id: zod_1.z.string(),
174
+ deleted: zod_1.z.literal(true),
175
+ });
176
+ // ── subtask ────────────────────────────────────────────────────────────────
177
+ /**
178
+ * `toggle` and `update` both key their payload `updated` but carry different
179
+ * item shapes (`{id, completed}` vs `{id, title}`), which is ambiguous without
180
+ * a tag. The tool's own `action` input is echoed into the output to
181
+ * discriminate — an added field, nothing renamed.
182
+ *
183
+ * The singular paths (which used to emit prose only) now emit the same plural
184
+ * array shape, so item count never changes the structure.
185
+ */
186
+ exports.subtaskOutputSchema = zod_1.z.discriminatedUnion('action', [
187
+ zod_1.z.object({
188
+ action: zod_1.z.literal('add'),
189
+ added: zod_1.z.array(zod_1.z.object({ id: zod_1.z.string(), title: zod_1.z.string() })),
190
+ count: zod_1.z.number(),
191
+ }),
192
+ zod_1.z.object({
193
+ action: zod_1.z.literal('delete'),
194
+ deleted: zod_1.z.array(zod_1.z.string()),
195
+ missing: zod_1.z.array(zod_1.z.string()),
196
+ count: zod_1.z.number(),
197
+ }),
198
+ zod_1.z.object({
199
+ action: zod_1.z.literal('toggle'),
200
+ updated: zod_1.z.array(zod_1.z.object({ id: zod_1.z.string(), completed: zod_1.z.boolean().optional() })),
201
+ count: zod_1.z.number(),
202
+ }),
203
+ zod_1.z.object({
204
+ action: zod_1.z.literal('update'),
205
+ updated: zod_1.z.array(zod_1.z.object({ id: zod_1.z.string(), title: zod_1.z.string() })),
206
+ count: zod_1.z.number(),
207
+ }),
208
+ ]);
209
+ // ── contract ───────────────────────────────────────────────────────────────
210
+ const deliverableSchema = zod_1.z.looseObject({
211
+ // Hand-edited YAML often omits `type` (path-only deliverables). Required here
212
+ // would fail output validation on a successful validate after the task was
213
+ // already completed.
214
+ type: zod_1.z.string().optional(),
215
+ path: zod_1.z.string(),
216
+ description: zod_1.z.string().optional(),
217
+ });
218
+ /**
219
+ * Six heterogeneous actions, tagged by the `action` input the caller already
220
+ * supplied. `pickup`'s payload is genuinely free-text agent-context markdown,
221
+ * so its variant is deliberately thin — an output schema does not have to
222
+ * invent structure that the payload does not have.
223
+ */
224
+ exports.contractOutputSchema = zod_1.z.discriminatedUnion('action', [
225
+ zod_1.z.object({
226
+ action: zod_1.z.literal('attach'),
227
+ task: zod_1.z.string(),
228
+ status: zod_1.z.string(),
229
+ }),
230
+ zod_1.z.object({
231
+ action: zod_1.z.literal('pickup'),
232
+ task: zod_1.z.string(),
233
+ markdown: zod_1.z.string(),
234
+ }),
235
+ zod_1.z.object({
236
+ action: zod_1.z.literal('deliver'),
237
+ task: zod_1.z.string(),
238
+ }),
239
+ zod_1.z.object({
240
+ action: zod_1.z.literal('validate'),
241
+ ok: zod_1.z.boolean(),
242
+ status: zod_1.z.string(),
243
+ deliverables: zod_1.z.array(zod_1.z.looseObject({
244
+ deliverable: deliverableSchema,
245
+ ok: zod_1.z.boolean(),
246
+ resolvedPath: zod_1.z.string().optional(),
247
+ error: zod_1.z.string().optional(),
248
+ })),
249
+ commands: zod_1.z.array(zod_1.z.looseObject({
250
+ command: zod_1.z.string(),
251
+ exitCode: zod_1.z.number(),
252
+ stdout: zod_1.z.string(),
253
+ stderr: zod_1.z.string(),
254
+ })),
255
+ warnings: zod_1.z.array(zod_1.z.looseObject({
256
+ command: zod_1.z.string(),
257
+ message: zod_1.z.string(),
258
+ })),
259
+ }),
260
+ zod_1.z.object({
261
+ action: zod_1.z.literal('graph'),
262
+ attached: zod_1.z.array(zod_1.z.string()),
263
+ count: zod_1.z.number(),
264
+ order: zod_1.z.array(zod_1.z.string()),
265
+ graph: zod_1.z.string(),
266
+ }),
267
+ zod_1.z.object({
268
+ action: zod_1.z.literal('activate'),
269
+ activated: zod_1.z.array(zod_1.z.string()),
270
+ count: zod_1.z.number(),
271
+ }),
272
+ ]);
273
+ // ── task_complete ──────────────────────────────────────────────────────────
274
+ /**
275
+ * New payload: every success path previously returned prose only, with the
276
+ * interesting values (`completedAt`, issue number/id, issue URL) interpolated
277
+ * into the message. They are now also returned as real fields.
278
+ *
279
+ * Tagged by the `destination` input. The default path (no `destination`) and
280
+ * `destination: 'local'` share the `local` variant and are told apart by
281
+ * `archived`.
282
+ */
283
+ exports.taskCompleteOutputSchema = zod_1.z.discriminatedUnion('destination', [
284
+ zod_1.z.object({
285
+ destination: zod_1.z.literal('local'),
286
+ taskId: zod_1.z.string(),
287
+ completedAt: zod_1.z.string().optional(),
288
+ archived: zod_1.z.boolean(),
289
+ }),
290
+ zod_1.z.object({
291
+ destination: zod_1.z.literal('github'),
292
+ taskId: zod_1.z.string(),
293
+ issueNumber: zod_1.z.number().optional(),
294
+ issueUrl: zod_1.z.string().optional(),
295
+ }),
296
+ zod_1.z.object({
297
+ destination: zod_1.z.literal('linear'),
298
+ taskId: zod_1.z.string(),
299
+ issueId: zod_1.z.string().optional(),
300
+ issueUrl: zod_1.z.string().optional(),
301
+ }),
302
+ ]);
303
+ /**
304
+ * `brief` — per-agent attention digest.
305
+ *
306
+ * Object root (not a bare array of lanes) so both protocol eras hand clients
307
+ * identical bytes, per note 3 above. `lastBriefAt` is nullable rather than
308
+ * optional: "this agent has never briefed" is a meaningful state a client must
309
+ * be able to distinguish from an omitted field.
310
+ */
311
+ exports.briefOutputSchema = zod_1.z.object({
312
+ agent: zod_1.z.string(),
313
+ mode: zod_1.z.enum(['full', 'delta']),
314
+ generatedAt: zod_1.z.string(),
315
+ lastBriefAt: zod_1.z.string().nullable(),
316
+ peek: zod_1.z.boolean(),
317
+ lanes: zod_1.z.array(zod_1.z.object({
318
+ id: zod_1.z.string(),
319
+ label: zod_1.z.string(),
320
+ items: zod_1.z.array(zod_1.z.object({
321
+ taskId: zod_1.z.string().optional(),
322
+ text: zod_1.z.string(),
323
+ why: zod_1.z.string(),
324
+ at: zod_1.z.string().optional(),
325
+ })),
326
+ })),
327
+ });
328
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/mcp/schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { McpServer } from "@modelcontextprotocol/server";
2
+ /**
3
+ * `brief` — "what changed that I should care about?" for one agent.
4
+ *
5
+ * The first call for an agent returns a full orientation; later calls return a
6
+ * delta against that agent's stored checkpoint in `.brainfile/state/`. `peek`
7
+ * reads without advancing the checkpoint, so a client can inspect pending work
8
+ * without consuming it.
9
+ *
10
+ * Note that `buildBrief` itself is read-only — advancing the checkpoint is this
11
+ * handler's decision, which is what makes `peek` a no-op on the write step.
12
+ */
13
+ export declare function registerBriefTool(server: McpServer, defaultFile: string): void;
14
+ //# sourceMappingURL=brief_tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brief_tool.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/brief_tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAO9D;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAgD9E"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerBriefTool = registerBriefTool;
4
+ const zod_1 = require("zod");
5
+ const core_1 = require("@brainfile/core");
6
+ const v2_detect_1 = require("../../utils/v2-detect");
7
+ const helpers_1 = require("../helpers");
8
+ const schemas_1 = require("../schemas");
9
+ /**
10
+ * `brief` — "what changed that I should care about?" for one agent.
11
+ *
12
+ * The first call for an agent returns a full orientation; later calls return a
13
+ * delta against that agent's stored checkpoint in `.brainfile/state/`. `peek`
14
+ * reads without advancing the checkpoint, so a client can inspect pending work
15
+ * without consuming it.
16
+ *
17
+ * Note that `buildBrief` itself is read-only — advancing the checkpoint is this
18
+ * handler's decision, which is what makes `peek` a no-op on the write step.
19
+ */
20
+ function registerBriefTool(server, defaultFile) {
21
+ server.registerTool('brief', {
22
+ title: 'Agent Brief',
23
+ description: 'Get a per-agent brief: what changed on the board since this agent last checked in. '
24
+ + 'First call returns a full orientation; later calls return only what is new.',
25
+ inputSchema: zod_1.z.object({
26
+ file: zod_1.z.string().optional().describe('Path to brainfile.md (default: brainfile.md)'),
27
+ agent: zod_1.z.string().describe('Agent identifier (required — brief state is per-agent)'),
28
+ peek: zod_1.z.boolean().optional().describe('Read the brief without marking it as seen'),
29
+ }),
30
+ outputSchema: schemas_1.briefOutputSchema,
31
+ }, async ({ file, agent, peek }) => {
32
+ const filePath = file || defaultFile;
33
+ const guard = (0, helpers_1.requireV2)(filePath);
34
+ if (guard)
35
+ return guard;
36
+ const agentName = agent?.trim();
37
+ if (!agentName) {
38
+ return {
39
+ content: [{ type: 'text', text: 'Error: agent is required' }],
40
+ isError: true,
41
+ };
42
+ }
43
+ const resolvedPath = (0, helpers_1.resolveBrainfile)(filePath);
44
+ const dirs = (0, v2_detect_1.getV2Dirs)(resolvedPath);
45
+ const isPeek = peek === true;
46
+ const state = (0, core_1.readBriefState)(resolvedPath, agentName);
47
+ const result = (0, core_1.buildBrief)(dirs, agentName, { lastBriefAt: state.lastBriefAt });
48
+ if (!isPeek) {
49
+ (0, core_1.writeBriefState)(resolvedPath, agentName, result.generatedAt);
50
+ }
51
+ const output = { ...result, peek: isPeek };
52
+ return {
53
+ content: [{ type: 'text', text: JSON.stringify(output, null, 2) }],
54
+ structuredContent: output,
55
+ };
56
+ });
57
+ }
58
+ //# sourceMappingURL=brief_tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brief_tool.js","sourceRoot":"","sources":["../../../src/mcp/tools/brief_tool.ts"],"names":[],"mappings":";;AAkBA,8CAgDC;AAjED,6BAAwB;AACxB,0CAA8E;AAC9E,qDAAkD;AAClD,wCAAyD;AACzD,wCAA+C;AAE/C;;;;;;;;;;GAUG;AACH,SAAgB,iBAAiB,CAAC,MAAiB,EAAE,WAAmB;IACtE,MAAM,CAAC,YAAY,CACjB,OAAO,EACP;QACE,KAAK,EAAE,aAAa;QACpB,WAAW,EACT,qFAAqF;cACnF,6EAA6E;QACjF,WAAW,EAAE,OAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;YACpF,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;YACpF,IAAI,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;SACnF,CAAC;QACF,YAAY,EAAE,2BAAiB;KAChC,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;QAC9B,MAAM,QAAQ,GAAG,IAAI,IAAI,WAAW,CAAC;QAErC,MAAM,KAAK,GAAG,IAAA,mBAAS,EAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QAExB,MAAM,SAAS,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC;gBACtE,OAAO,EAAE,IAAa;aACvB,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,IAAA,0BAAgB,EAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,IAAA,qBAAS,EAAC,YAAY,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;QAE7B,MAAM,KAAK,GAAG,IAAA,qBAAc,EAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,IAAI,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QAE/E,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAA,sBAAe,EAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAE3C,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAC3E,iBAAiB,EAAE,MAAM;SAC1B,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -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,8BAA8B,CAAC;AAY9D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAmLjF"}
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;AAa9D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CA0MjF"}
@@ -7,6 +7,7 @@ const v2_detect_1 = require("../../utils/v2-detect");
7
7
  const contractRunner_1 = require("../../lib/contractRunner");
8
8
  const contract_1 = require("./contract");
9
9
  const helpers_1 = require("../helpers");
10
+ const schemas_1 = require("../schemas");
10
11
  function registerContractTool(server, defaultFile) {
11
12
  server.registerTool('contract', {
12
13
  title: 'Contract',
@@ -40,7 +41,8 @@ function registerContractTool(server, defaultFile) {
40
41
  dependsOn: zod_1.z.array(zod_1.z.string()).optional(),
41
42
  })).optional().describe('graph only: array of contract graph task specs'),
42
43
  activate: zod_1.z.boolean().optional().describe('graph only: when true, attached contracts start in ready instead of draft'),
43
- })
44
+ }),
45
+ outputSchema: schemas_1.contractOutputSchema
44
46
  }, async ({ action, file, task, parentId, ready: attachReady, deliverables, validation_commands, constraints, tasks, activate }) => {
45
47
  const filePath = file || defaultFile;
46
48
  // ── attach ─────────────────────────────────────────────────────────────
@@ -66,7 +68,11 @@ function registerContractTool(server, defaultFile) {
66
68
  if (!result.success || !result.task) {
67
69
  return { content: [{ type: 'text', text: `Error: ${result.error || 'Failed to attach contract'}` }], isError: true };
68
70
  }
69
- return { content: [{ type: 'text', text: `Contract attached (${result.task.contract.status}): ${task}` }] };
71
+ const status = result.task.contract.status;
72
+ return {
73
+ content: [{ type: 'text', text: `Contract attached (${status}): ${task}` }],
74
+ structuredContent: { action: 'attach', task, status },
75
+ };
70
76
  }
71
77
  catch (e) {
72
78
  return { content: [{ type: 'text', text: `Error: ${e.message}` }], isError: true };
@@ -81,7 +87,12 @@ function registerContractTool(server, defaultFile) {
81
87
  if ('error' in result) {
82
88
  return { content: [{ type: 'text', text: `Error: ${result.error}` }], isError: true };
83
89
  }
84
- return { content: [{ type: 'text', text: result.markdown }] };
90
+ // The payload is genuinely free-text agent-context markdown, so the
91
+ // structured variant just carries it verbatim.
92
+ return {
93
+ content: [{ type: 'text', text: result.markdown }],
94
+ structuredContent: { action: 'pickup', task, markdown: result.markdown },
95
+ };
85
96
  }
86
97
  // ── deliver ────────────────────────────────────────────────────────────
87
98
  if (action === 'deliver') {
@@ -92,7 +103,10 @@ function registerContractTool(server, defaultFile) {
92
103
  if ('error' in result) {
93
104
  return { content: [{ type: 'text', text: `Error: ${result.error}` }], isError: true };
94
105
  }
95
- return { content: [{ type: 'text', text: `Contract delivered: ${task}` }] };
106
+ return {
107
+ content: [{ type: 'text', text: `Contract delivered: ${task}` }],
108
+ structuredContent: { action: 'deliver', task },
109
+ };
96
110
  }
97
111
  // ── validate ───────────────────────────────────────────────────────────
98
112
  if (action === 'validate') {
@@ -104,15 +118,19 @@ function registerContractTool(server, defaultFile) {
104
118
  return { content: [{ type: 'text', text: `Error: ${result.error}` }], isError: true };
105
119
  }
106
120
  const output = {
121
+ action: 'validate',
107
122
  ok: result.ok,
108
123
  status: result.ok ? 'done' : 'failed',
109
124
  deliverables: result.deliverableChecks,
110
125
  commands: result.commandResults,
111
126
  warnings: result.warnings,
112
127
  };
128
+ // Failed validation is a successful tool result (`ok: false`), not a
129
+ // tool error. `isError: true` would skip outputSchema checks and hide
130
+ // deliverable/command details from clients that drop error payloads.
113
131
  return {
114
132
  content: [{ type: 'text', text: JSON.stringify(output, null, 2) }],
115
- isError: !result.ok,
133
+ structuredContent: output,
116
134
  };
117
135
  }
118
136
  // ── graph ──────────────────────────────────────────────────────────────
@@ -126,13 +144,16 @@ function registerContractTool(server, defaultFile) {
126
144
  tasks,
127
145
  activate,
128
146
  });
147
+ const output = {
148
+ action: 'graph',
149
+ attached: result.attached,
150
+ count: result.count,
151
+ order: result.order,
152
+ graph: result.graph,
153
+ };
129
154
  return {
130
- content: [{ type: 'text', text: JSON.stringify({
131
- attached: result.attached,
132
- count: result.count,
133
- order: result.order,
134
- graph: result.graph,
135
- }, null, 2) }],
155
+ content: [{ type: 'text', text: JSON.stringify(output, null, 2) }],
156
+ structuredContent: output,
136
157
  };
137
158
  }
138
159
  catch (error) {
@@ -167,8 +188,11 @@ function registerContractTool(server, defaultFile) {
167
188
  // Bulk by parentId
168
189
  activated.push(...(0, core_1.activateTaskContractsByParent)(dirs.boardDir, parentId).activated);
169
190
  }
170
- const output = { activated, count: activated.length };
171
- return { content: [{ type: 'text', text: JSON.stringify(output, null, 2) }] };
191
+ const output = { action: 'activate', activated, count: activated.length };
192
+ return {
193
+ content: [{ type: 'text', text: JSON.stringify(output, null, 2) }],
194
+ structuredContent: output,
195
+ };
172
196
  }
173
197
  return { content: [{ type: 'text', text: `Error: Unknown action: ${action}` }], isError: true };
174
198
  });
@@ -1 +1 @@
1
- {"version":3,"file":"contract_tool.js","sourceRoot":"","sources":["../../../src/mcp/tools/contract_tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract_tool.js","sourceRoot":"","sources":["../../../src/mcp/tools/contract_tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"get_task_tool.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/get_task_tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAK9D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAiChF"}
1
+ {"version":3,"file":"get_task_tool.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/get_task_tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAM9D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAqChF"}
@@ -4,6 +4,7 @@ exports.registerGetTaskTool = registerGetTaskTool;
4
4
  const zod_1 = require("zod");
5
5
  const v2_detect_1 = require("../../utils/v2-detect");
6
6
  const helpers_1 = require("../helpers");
7
+ const schemas_1 = require("../schemas");
7
8
  function registerGetTaskTool(server, defaultFile) {
8
9
  server.registerTool('get_task', {
9
10
  title: 'Get Task',
@@ -11,7 +12,8 @@ function registerGetTaskTool(server, defaultFile) {
11
12
  inputSchema: zod_1.z.object({
12
13
  file: zod_1.z.string().optional().describe('Path to brainfile.md (default: brainfile.md)'),
13
14
  task: zod_1.z.string().describe('Task ID to retrieve')
14
- })
15
+ }),
16
+ outputSchema: schemas_1.getTaskOutputSchema
15
17
  }, async ({ file, task }) => {
16
18
  const filePath = file || defaultFile;
17
19
  const guard = (0, helpers_1.requireV2)(filePath);
@@ -30,7 +32,10 @@ function registerGetTaskTool(server, defaultFile) {
30
32
  column: isLog ? 'Completed' : (doc.task.column || 'unknown'),
31
33
  ...(isLog && { archived: true }),
32
34
  };
33
- return { content: [{ type: 'text', text: JSON.stringify(output, null, 2) }] };
35
+ return {
36
+ content: [{ type: 'text', text: JSON.stringify(output, null, 2) }],
37
+ structuredContent: output,
38
+ };
34
39
  });
35
40
  }
36
41
  //# sourceMappingURL=get_task_tool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get_task_tool.js","sourceRoot":"","sources":["../../../src/mcp/tools/get_task_tool.ts"],"names":[],"mappings":";;AAKA,kDAiCC;AArCD,6BAAwB;AACxB,qDAAkF;AAClF,wCAAuC;AAEvC,SAAgB,mBAAmB,CAAC,MAAiB,EAAE,WAAmB;IACxE,MAAM,CAAC,YAAY,CACjB,UAAU,EACV;QACE,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,sDAAsD;QACnE,WAAW,EAAE,OAAC,CAAC,MAAM,CAAC;YACd,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;YACpF,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;SACjD,CAAC;KACT,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,IAAI,IAAI,WAAW,CAAC;QAErC,MAAM,KAAK,GAAG,IAAA,mBAAS,EAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QAExB,MAAM,IAAI,GAAG,IAAA,qBAAS,EAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,IAAA,sBAAU,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,0BAA0B,IAAI,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzG,CAAC;QACD,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;QAC7B,MAAM,WAAW,GAAG,IAAA,8BAAkB,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG;YACb,GAAG,GAAG,CAAC,IAAI;YACX,GAAG,CAAC,WAAW,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,CAAC;YAC5D,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC;YAC5D,GAAG,CAAC,KAAK,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;SACjC,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACzF,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get_task_tool.js","sourceRoot":"","sources":["../../../src/mcp/tools/get_task_tool.ts"],"names":[],"mappings":";;AAMA,kDAqCC;AA1CD,6BAAwB;AACxB,qDAAkF;AAClF,wCAAuC;AACvC,wCAAiD;AAEjD,SAAgB,mBAAmB,CAAC,MAAiB,EAAE,WAAmB;IACxE,MAAM,CAAC,YAAY,CACjB,UAAU,EACV;QACE,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,sDAAsD;QACnE,WAAW,EAAE,OAAC,CAAC,MAAM,CAAC;YACd,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;YACpF,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;SACjD,CAAC;QACR,YAAY,EAAE,6BAAmB;KAClC,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,IAAI,IAAI,WAAW,CAAC;QAErC,MAAM,KAAK,GAAG,IAAA,mBAAS,EAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QAExB,MAAM,IAAI,GAAG,IAAA,qBAAS,EAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,IAAA,sBAAU,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,0BAA0B,IAAI,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzG,CAAC;QACD,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;QAC7B,MAAM,WAAW,GAAG,IAAA,8BAAkB,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG;YACb,GAAG,GAAG,CAAC,IAAI;YACX,GAAG,CAAC,WAAW,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,CAAC;YAC5D,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC;YAC5D,GAAG,CAAC,KAAK,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;SACjC,CAAC;QACF,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAC3E,iBAAiB,EAAE,MAAM;SAC1B,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"list_tasks_tool.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/list_tasks_tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAK9D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAuClF"}
1
+ {"version":3,"file":"list_tasks_tool.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/list_tasks_tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAM9D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CA4ClF"}