brainfile 0.18.1 → 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.
- package/README.md +18 -24
- package/dist/__tests__/helpers/mcp-wire.d.ts +45 -0
- package/dist/__tests__/helpers/mcp-wire.d.ts.map +1 -0
- package/dist/__tests__/helpers/mcp-wire.js +133 -0
- package/dist/__tests__/helpers/mcp-wire.js.map +1 -0
- package/dist/__tests__/helpers/mcp.d.ts +34 -0
- package/dist/__tests__/helpers/mcp.d.ts.map +1 -0
- package/dist/__tests__/helpers/mcp.js +37 -0
- package/dist/__tests__/helpers/mcp.js.map +1 -0
- package/dist/chunk-I5SJHUZK.mjs +52 -0
- package/dist/chunk-UOCQBEEW.mjs +12583 -0
- package/dist/cli.js +8 -479
- package/dist/cli.mjs +41334 -0
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +28 -37
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/adr.d.ts +1 -9
- package/dist/commands/adr.d.ts.map +1 -1
- package/dist/commands/adr.js +11 -88
- package/dist/commands/adr.js.map +1 -1
- package/dist/commands/archive.d.ts +2 -4
- package/dist/commands/archive.d.ts.map +1 -1
- package/dist/commands/archive.js +55 -212
- package/dist/commands/archive.js.map +1 -1
- package/dist/commands/brief.d.ts +31 -0
- package/dist/commands/brief.d.ts.map +1 -0
- package/dist/commands/brief.js +151 -0
- package/dist/commands/brief.js.map +1 -0
- package/dist/commands/complete.d.ts +0 -4
- package/dist/commands/complete.d.ts.map +1 -1
- package/dist/commands/complete.js +14 -168
- package/dist/commands/complete.js.map +1 -1
- package/dist/commands/contract.d.ts.map +1 -1
- package/dist/commands/contract.js +66 -331
- package/dist/commands/contract.js.map +1 -1
- package/dist/commands/delete.d.ts.map +1 -1
- package/dist/commands/delete.js +13 -55
- package/dist/commands/delete.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +3 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +3 -54
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/log.js +33 -26
- package/dist/commands/log.js.map +1 -1
- package/dist/commands/mcp.d.ts +9 -0
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +34 -18
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +14 -15
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/move.d.ts.map +1 -1
- package/dist/commands/move.js +31 -126
- package/dist/commands/move.js.map +1 -1
- package/dist/commands/patch.d.ts.map +1 -1
- package/dist/commands/patch.js +22 -92
- package/dist/commands/patch.js.map +1 -1
- package/dist/commands/plan.d.ts +61 -0
- package/dist/commands/plan.d.ts.map +1 -0
- package/dist/commands/plan.js +205 -0
- package/dist/commands/plan.js.map +1 -0
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +20 -146
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/show.d.ts.map +1 -1
- package/dist/commands/show.js +5 -126
- package/dist/commands/show.js.map +1 -1
- package/dist/commands/subtask.d.ts.map +1 -1
- package/dist/commands/subtask.js +19 -135
- package/dist/commands/subtask.js.map +1 -1
- package/dist/commands/types.d.ts +2 -2
- package/dist/commands/types.d.ts.map +1 -1
- package/dist/commands/types.js +8 -30
- package/dist/commands/types.js.map +1 -1
- package/dist/devtools-NE5M3KPM.mjs +92 -0
- package/dist/lib/contractRunner.d.ts.map +1 -1
- package/dist/lib/contractRunner.js +19 -205
- package/dist/lib/contractRunner.js.map +1 -1
- package/dist/mcp/helpers.d.ts +11 -16
- package/dist/mcp/helpers.d.ts.map +1 -1
- package/dist/mcp/helpers.js +9 -46
- package/dist/mcp/helpers.js.map +1 -1
- package/dist/mcp/schemas.d.ts +297 -0
- package/dist/mcp/schemas.d.ts.map +1 -0
- package/dist/mcp/schemas.js +328 -0
- package/dist/mcp/schemas.js.map +1 -0
- package/dist/mcp/tools/brief_tool.d.ts +14 -0
- package/dist/mcp/tools/brief_tool.d.ts.map +1 -0
- package/dist/mcp/tools/brief_tool.js +58 -0
- package/dist/mcp/tools/brief_tool.js.map +1 -0
- package/dist/mcp/tools/contract_tool.d.ts +1 -1
- package/dist/mcp/tools/contract_tool.d.ts.map +1 -1
- package/dist/mcp/tools/contract_tool.js +58 -186
- package/dist/mcp/tools/contract_tool.js.map +1 -1
- package/dist/mcp/tools/get_task_tool.d.ts +1 -1
- package/dist/mcp/tools/get_task_tool.d.ts.map +1 -1
- package/dist/mcp/tools/get_task_tool.js +18 -32
- package/dist/mcp/tools/get_task_tool.js.map +1 -1
- package/dist/mcp/tools/list_tasks_tool.d.ts +1 -1
- package/dist/mcp/tools/list_tasks_tool.d.ts.map +1 -1
- package/dist/mcp/tools/list_tasks_tool.js +14 -45
- package/dist/mcp/tools/list_tasks_tool.js.map +1 -1
- package/dist/mcp/tools/search_tool.d.ts +1 -1
- package/dist/mcp/tools/search_tool.d.ts.map +1 -1
- package/dist/mcp/tools/search_tool.js +33 -101
- package/dist/mcp/tools/search_tool.js.map +1 -1
- package/dist/mcp/tools/subtask_tool.d.ts +1 -1
- package/dist/mcp/tools/subtask_tool.d.ts.map +1 -1
- package/dist/mcp/tools/subtask_tool.js +95 -236
- package/dist/mcp/tools/subtask_tool.js.map +1 -1
- package/dist/mcp/tools/task_add_tool.d.ts +1 -1
- package/dist/mcp/tools/task_add_tool.d.ts.map +1 -1
- package/dist/mcp/tools/task_add_tool.js +63 -154
- package/dist/mcp/tools/task_add_tool.js.map +1 -1
- package/dist/mcp/tools/task_complete_tool.d.ts +1 -1
- package/dist/mcp/tools/task_complete_tool.d.ts.map +1 -1
- package/dist/mcp/tools/task_complete_tool.js +59 -127
- package/dist/mcp/tools/task_complete_tool.js.map +1 -1
- package/dist/mcp/tools/task_delete_tool.d.ts +1 -1
- package/dist/mcp/tools/task_delete_tool.d.ts.map +1 -1
- package/dist/mcp/tools/task_delete_tool.js +19 -33
- package/dist/mcp/tools/task_delete_tool.js.map +1 -1
- package/dist/mcp/tools/task_move_tool.d.ts +1 -1
- package/dist/mcp/tools/task_move_tool.d.ts.map +1 -1
- package/dist/mcp/tools/task_move_tool.js +53 -150
- package/dist/mcp/tools/task_move_tool.js.map +1 -1
- package/dist/mcp/tools/task_patch_tool.d.ts +1 -1
- package/dist/mcp/tools/task_patch_tool.d.ts.map +1 -1
- package/dist/mcp/tools/task_patch_tool.js +49 -113
- package/dist/mcp/tools/task_patch_tool.js.map +1 -1
- package/dist/open-ZGSQIGEH.mjs +542 -0
- package/dist/schemas/board.json +1 -1
- package/dist/tui/theme.d.ts +74 -95
- package/dist/tui/theme.d.ts.map +1 -1
- package/dist/tui/theme.js +113 -110
- package/dist/tui/theme.js.map +1 -1
- package/dist/tui-H3RI22S4.mjs +23374 -0
- package/dist/utils/cli-error.d.ts +20 -0
- package/dist/utils/cli-error.d.ts.map +1 -1
- package/dist/utils/cli-error.js +36 -0
- package/dist/utils/cli-error.js.map +1 -1
- package/dist/utils/dot-brainfile.d.ts +0 -4
- package/dist/utils/dot-brainfile.d.ts.map +1 -1
- package/dist/utils/dot-brainfile.js +0 -17
- package/dist/utils/dot-brainfile.js.map +1 -1
- package/dist/utils/errorHandler.d.ts +7 -11
- package/dist/utils/errorHandler.d.ts.map +1 -1
- package/dist/utils/errorHandler.js +8 -19
- package/dist/utils/errorHandler.js.map +1 -1
- package/package.json +24 -16
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/commands/rules.d.ts +0 -68
- package/dist/commands/rules.d.ts.map +0 -1
- package/dist/commands/rules.js +0 -322
- package/dist/commands/rules.js.map +0 -1
- package/dist/commands/tui.d.ts +0 -6
- package/dist/commands/tui.d.ts.map +0 -1
- package/dist/commands/tui.js +0 -79
- package/dist/commands/tui.js.map +0 -1
- package/dist/tui/BrainfileTUI.d.ts +0 -4
- package/dist/tui/BrainfileTUI.d.ts.map +0 -1
- package/dist/tui/BrainfileTUI.js +0 -272
- package/dist/tui/BrainfileTUI.js.map +0 -1
- package/dist/tui/actions.d.ts +0 -84
- package/dist/tui/actions.d.ts.map +0 -1
- package/dist/tui/actions.js +0 -1251
- package/dist/tui/actions.js.map +0 -1
- package/dist/tui/components/ColumnTabs.d.ts +0 -9
- package/dist/tui/components/ColumnTabs.d.ts.map +0 -1
- package/dist/tui/components/ColumnTabs.js +0 -34
- package/dist/tui/components/ColumnTabs.js.map +0 -1
- package/dist/tui/components/Header.d.ts +0 -15
- package/dist/tui/components/Header.d.ts.map +0 -1
- package/dist/tui/components/Header.js +0 -48
- package/dist/tui/components/Header.js.map +0 -1
- package/dist/tui/components/HelpOverlay.d.ts +0 -9
- package/dist/tui/components/HelpOverlay.d.ts.map +0 -1
- package/dist/tui/components/HelpOverlay.js +0 -116
- package/dist/tui/components/HelpOverlay.js.map +0 -1
- package/dist/tui/components/LogsPanel.d.ts +0 -16
- package/dist/tui/components/LogsPanel.d.ts.map +0 -1
- package/dist/tui/components/LogsPanel.js +0 -115
- package/dist/tui/components/LogsPanel.js.map +0 -1
- package/dist/tui/components/MainPanelTabs.d.ts +0 -10
- package/dist/tui/components/MainPanelTabs.d.ts.map +0 -1
- package/dist/tui/components/MainPanelTabs.js +0 -56
- package/dist/tui/components/MainPanelTabs.js.map +0 -1
- package/dist/tui/components/ManualBorder.d.ts +0 -42
- package/dist/tui/components/ManualBorder.d.ts.map +0 -1
- package/dist/tui/components/ManualBorder.js +0 -56
- package/dist/tui/components/ManualBorder.js.map +0 -1
- package/dist/tui/components/Overlays.d.ts +0 -41
- package/dist/tui/components/Overlays.d.ts.map +0 -1
- package/dist/tui/components/Overlays.js +0 -127
- package/dist/tui/components/Overlays.js.map +0 -1
- package/dist/tui/components/ProgressBar.d.ts +0 -8
- package/dist/tui/components/ProgressBar.d.ts.map +0 -1
- package/dist/tui/components/ProgressBar.js +0 -35
- package/dist/tui/components/ProgressBar.js.map +0 -1
- package/dist/tui/components/RulesPanel.d.ts +0 -25
- package/dist/tui/components/RulesPanel.d.ts.map +0 -1
- package/dist/tui/components/RulesPanel.js +0 -139
- package/dist/tui/components/RulesPanel.js.map +0 -1
- package/dist/tui/components/SearchBar.d.ts +0 -8
- package/dist/tui/components/SearchBar.d.ts.map +0 -1
- package/dist/tui/components/SearchBar.js +0 -38
- package/dist/tui/components/SearchBar.js.map +0 -1
- package/dist/tui/components/StackedTaskList.d.ts +0 -27
- package/dist/tui/components/StackedTaskList.d.ts.map +0 -1
- package/dist/tui/components/StackedTaskList.js +0 -120
- package/dist/tui/components/StackedTaskList.js.map +0 -1
- package/dist/tui/components/StatusBar.d.ts +0 -14
- package/dist/tui/components/StatusBar.d.ts.map +0 -1
- package/dist/tui/components/StatusBar.js +0 -42
- package/dist/tui/components/StatusBar.js.map +0 -1
- package/dist/tui/components/TaskCard.d.ts +0 -25
- package/dist/tui/components/TaskCard.d.ts.map +0 -1
- package/dist/tui/components/TaskCard.js +0 -221
- package/dist/tui/components/TaskCard.js.map +0 -1
- package/dist/tui/components/TaskCardMeasure.d.ts +0 -31
- package/dist/tui/components/TaskCardMeasure.d.ts.map +0 -1
- package/dist/tui/components/TaskCardMeasure.js +0 -133
- package/dist/tui/components/TaskCardMeasure.js.map +0 -1
- package/dist/tui/components/TaskDetail.d.ts +0 -13
- package/dist/tui/components/TaskDetail.d.ts.map +0 -1
- package/dist/tui/components/TaskDetail.js +0 -64
- package/dist/tui/components/TaskDetail.js.map +0 -1
- package/dist/tui/components/TaskList.d.ts +0 -12
- package/dist/tui/components/TaskList.d.ts.map +0 -1
- package/dist/tui/components/TaskList.js +0 -75
- package/dist/tui/components/TaskList.js.map +0 -1
- package/dist/tui/components/index.d.ts +0 -31
- package/dist/tui/components/index.d.ts.map +0 -1
- package/dist/tui/components/index.js +0 -43
- package/dist/tui/components/index.js.map +0 -1
- package/dist/tui/hooks/index.d.ts +0 -3
- package/dist/tui/hooks/index.d.ts.map +0 -1
- package/dist/tui/hooks/index.js +0 -8
- package/dist/tui/hooks/index.js.map +0 -1
- package/dist/tui/hooks/useBrainfileLoader.d.ts +0 -5
- package/dist/tui/hooks/useBrainfileLoader.d.ts.map +0 -1
- package/dist/tui/hooks/useBrainfileLoader.js +0 -237
- package/dist/tui/hooks/useBrainfileLoader.js.map +0 -1
- package/dist/tui/hooks/useKeyboardNavigation.d.ts +0 -20
- package/dist/tui/hooks/useKeyboardNavigation.d.ts.map +0 -1
- package/dist/tui/hooks/useKeyboardNavigation.js +0 -806
- package/dist/tui/hooks/useKeyboardNavigation.js.map +0 -1
- package/dist/tui/index.d.ts +0 -10
- package/dist/tui/index.d.ts.map +0 -1
- package/dist/tui/index.js +0 -38
- package/dist/tui/index.js.map +0 -1
- package/dist/tui/types.d.ts +0 -53
- package/dist/tui/types.d.ts.map +0 -1
- package/dist/tui/types.js +0 -12
- package/dist/tui/types.js.map +0 -1
- package/dist/tui/utils.d.ts +0 -24
- package/dist/tui/utils.d.ts.map +0 -1
- package/dist/tui/utils.js +0 -161
- package/dist/tui/utils.js.map +0 -1
- package/dist/utils/board-types.d.ts +0 -13
- package/dist/utils/board-types.d.ts.map +0 -1
- package/dist/utils/board-types.js +0 -7
- package/dist/utils/board-types.js.map +0 -1
- package/dist/utils/contractSpec.d.ts +0 -13
- package/dist/utils/contractSpec.d.ts.map +0 -1
- package/dist/utils/contractSpec.js +0 -61
- package/dist/utils/contractSpec.js.map +0 -1
- package/dist/utils/strict-validation.d.ts +0 -8
- package/dist/utils/strict-validation.d.ts.map +0 -1
- package/dist/utils/strict-validation.js +0 -41
- package/dist/utils/strict-validation.js.map +0 -1
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output schemas for the 11 consolidated MCP tools.
|
|
3
|
+
*
|
|
4
|
+
* Each tool declares one of these as `outputSchema`, and every non-error
|
|
5
|
+
* success path returns the matching object as `structuredContent` alongside
|
|
6
|
+
* the `content` text block it already emitted. The text block is never
|
|
7
|
+
* removed, so clients that read only `content` are unaffected.
|
|
8
|
+
*
|
|
9
|
+
* Three SDK behaviours (v2.0.0) shape everything here — all verified against
|
|
10
|
+
* the installed `@modelcontextprotocol/server` runtime:
|
|
11
|
+
*
|
|
12
|
+
* 1. Declaring `outputSchema` makes `structuredContent` MANDATORY on every
|
|
13
|
+
* result that is not `isError: true`. `McpServer.validateToolOutput`
|
|
14
|
+
* throws `Output validation error: … no structured content was provided`
|
|
15
|
+
* otherwise. Adding a schema to a tool therefore means auditing *every*
|
|
16
|
+
* success `return` in that tool, not just the main one.
|
|
17
|
+
*
|
|
18
|
+
* 2. Output validation is SKIPPED when `isError: true`, so error paths need
|
|
19
|
+
* neither `structuredContent` nor schema conformance. Error returns are
|
|
20
|
+
* left exactly as they were.
|
|
21
|
+
*
|
|
22
|
+
* 3. Root shape decides whether the two protocol eras agree. The 2025-era
|
|
23
|
+
* wire codec re-wraps `structuredContent` as `{result: …}` whenever the
|
|
24
|
+
* ADVERTISED schema root is not `type: "object"`, while the 2026-era codec
|
|
25
|
+
* is identity — so a non-object root would hand the two eras different
|
|
26
|
+
* bytes. Unions are still safe: the SDK's `standardSchemaToJsonSchema`
|
|
27
|
+
* injects `type: "object"` for any `oneOf`/`anyOf` whose members are all
|
|
28
|
+
* object-shaped (`isProvablyObjectShapedRoot`). Every union below is a
|
|
29
|
+
* union of objects for exactly that reason — adding a non-object member
|
|
30
|
+
* (a bare `z.string()`, say) would silently split the eras apart.
|
|
31
|
+
*
|
|
32
|
+
* Enum-ish fields that originate in hand-editable YAML (notably `priority`)
|
|
33
|
+
* are typed `z.string()` rather than `z.enum([...])`. A board carrying
|
|
34
|
+
* `priority: urgent` would otherwise fail output validation and turn a
|
|
35
|
+
* working call into an error result.
|
|
36
|
+
*/
|
|
37
|
+
import { z } from 'zod';
|
|
38
|
+
export declare const listTasksOutputSchema: z.ZodObject<{
|
|
39
|
+
tasks: z.ZodArray<z.ZodObject<{
|
|
40
|
+
column: z.ZodString;
|
|
41
|
+
id: z.ZodString;
|
|
42
|
+
title: z.ZodString;
|
|
43
|
+
priority: z.ZodOptional<z.ZodString>;
|
|
44
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
45
|
+
assignee: z.ZodOptional<z.ZodString>;
|
|
46
|
+
}, z.core.$strip>>;
|
|
47
|
+
count: z.ZodNumber;
|
|
48
|
+
}, z.core.$strip>;
|
|
49
|
+
/**
|
|
50
|
+
* `get_task` spreads the raw `Task`, whose TypeScript type carries an open
|
|
51
|
+
* `[key: string]: unknown` index signature so extension fields (`x-otto`,
|
|
52
|
+
* `x-cursor`, …) round-trip. Modelled with `z.looseObject` so the advertised
|
|
53
|
+
* JSON Schema says `additionalProperties: {}` instead of `false` — a closed
|
|
54
|
+
* object would advertise those extension fields as illegal.
|
|
55
|
+
*
|
|
56
|
+
* `id` and `title` are required because `parseTaskContent` returns null for
|
|
57
|
+
* any task file missing either, so a task that reached this point has both.
|
|
58
|
+
* `column` is always set by the handler.
|
|
59
|
+
*/
|
|
60
|
+
export declare const getTaskOutputSchema: z.ZodObject<{
|
|
61
|
+
id: z.ZodString;
|
|
62
|
+
title: z.ZodString;
|
|
63
|
+
column: z.ZodString;
|
|
64
|
+
type: z.ZodOptional<z.ZodString>;
|
|
65
|
+
description: z.ZodOptional<z.ZodString>;
|
|
66
|
+
parentId: z.ZodOptional<z.ZodString>;
|
|
67
|
+
dependsOn: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
68
|
+
blockedBy: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
69
|
+
relatedFiles: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
70
|
+
assignee: z.ZodOptional<z.ZodString>;
|
|
71
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
72
|
+
priority: z.ZodOptional<z.ZodString>;
|
|
73
|
+
dueDate: z.ZodOptional<z.ZodString>;
|
|
74
|
+
subtasks: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
75
|
+
id: z.ZodString;
|
|
76
|
+
title: z.ZodString;
|
|
77
|
+
completed: z.ZodOptional<z.ZodBoolean>;
|
|
78
|
+
}, z.core.$loose>>>;
|
|
79
|
+
contract: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
|
|
80
|
+
createdAt: z.ZodOptional<z.ZodString>;
|
|
81
|
+
updatedAt: z.ZodOptional<z.ZodString>;
|
|
82
|
+
completedAt: z.ZodOptional<z.ZodString>;
|
|
83
|
+
position: z.ZodOptional<z.ZodNumber>;
|
|
84
|
+
archived: z.ZodOptional<z.ZodBoolean>;
|
|
85
|
+
}, z.core.$loose>;
|
|
86
|
+
/**
|
|
87
|
+
* Three genuinely different payloads selected by which input was supplied.
|
|
88
|
+
* The variants' required-field sets don't overlap (`isLog` scalar vs `logs`
|
|
89
|
+
* array vs `results` array), so an untagged union discriminates structurally
|
|
90
|
+
* and no payload had to change to add a tag.
|
|
91
|
+
*/
|
|
92
|
+
export declare const searchOutputSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
93
|
+
id: z.ZodString;
|
|
94
|
+
title: z.ZodString;
|
|
95
|
+
completedAt: z.ZodOptional<z.ZodString>;
|
|
96
|
+
isLog: z.ZodBoolean;
|
|
97
|
+
description: z.ZodOptional<z.ZodString>;
|
|
98
|
+
log: z.ZodOptional<z.ZodString>;
|
|
99
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
100
|
+
logs: z.ZodArray<z.ZodObject<{
|
|
101
|
+
id: z.ZodString;
|
|
102
|
+
title: z.ZodString;
|
|
103
|
+
completedAt: z.ZodOptional<z.ZodString>;
|
|
104
|
+
}, z.core.$strip>>;
|
|
105
|
+
count: z.ZodNumber;
|
|
106
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
107
|
+
results: z.ZodArray<z.ZodObject<{
|
|
108
|
+
column: z.ZodOptional<z.ZodString>;
|
|
109
|
+
score: z.ZodNumber;
|
|
110
|
+
isLog: z.ZodOptional<z.ZodBoolean>;
|
|
111
|
+
id: z.ZodString;
|
|
112
|
+
title: z.ZodString;
|
|
113
|
+
priority: z.ZodOptional<z.ZodString>;
|
|
114
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
115
|
+
assignee: z.ZodOptional<z.ZodString>;
|
|
116
|
+
}, z.core.$strip>>;
|
|
117
|
+
count: z.ZodNumber;
|
|
118
|
+
}, z.core.$strip>]>;
|
|
119
|
+
/** New payload: `task_add` previously returned only a prose confirmation. */
|
|
120
|
+
export declare const taskAddOutputSchema: z.ZodObject<{
|
|
121
|
+
id: z.ZodString;
|
|
122
|
+
title: z.ZodString;
|
|
123
|
+
}, z.core.$strip>;
|
|
124
|
+
/**
|
|
125
|
+
* Both tools branch their TEXT on single-vs-batch, but the structured payload
|
|
126
|
+
* is always the batch shape (a one-element `results` array for a single move),
|
|
127
|
+
* so agents parse one shape regardless of how many IDs they passed.
|
|
128
|
+
*/
|
|
129
|
+
export declare const taskMoveOutputSchema: z.ZodObject<{
|
|
130
|
+
success: z.ZodBoolean;
|
|
131
|
+
successCount: z.ZodNumber;
|
|
132
|
+
failureCount: z.ZodNumber;
|
|
133
|
+
results: z.ZodArray<z.ZodObject<{
|
|
134
|
+
taskId: z.ZodString;
|
|
135
|
+
success: z.ZodBoolean;
|
|
136
|
+
message: z.ZodOptional<z.ZodString>;
|
|
137
|
+
warning: z.ZodOptional<z.ZodString>;
|
|
138
|
+
error: z.ZodOptional<z.ZodString>;
|
|
139
|
+
}, z.core.$strip>>;
|
|
140
|
+
}, z.core.$strip>;
|
|
141
|
+
export declare const taskPatchOutputSchema: z.ZodObject<{
|
|
142
|
+
success: z.ZodBoolean;
|
|
143
|
+
successCount: z.ZodNumber;
|
|
144
|
+
failureCount: z.ZodNumber;
|
|
145
|
+
results: z.ZodArray<z.ZodObject<{
|
|
146
|
+
taskId: z.ZodString;
|
|
147
|
+
success: z.ZodBoolean;
|
|
148
|
+
error: z.ZodOptional<z.ZodString>;
|
|
149
|
+
}, z.core.$strip>>;
|
|
150
|
+
}, z.core.$strip>;
|
|
151
|
+
/** New payload: `task_delete` previously returned only a prose confirmation. */
|
|
152
|
+
export declare const taskDeleteOutputSchema: z.ZodObject<{
|
|
153
|
+
id: z.ZodString;
|
|
154
|
+
deleted: z.ZodLiteral<true>;
|
|
155
|
+
}, z.core.$strip>;
|
|
156
|
+
/**
|
|
157
|
+
* `toggle` and `update` both key their payload `updated` but carry different
|
|
158
|
+
* item shapes (`{id, completed}` vs `{id, title}`), which is ambiguous without
|
|
159
|
+
* a tag. The tool's own `action` input is echoed into the output to
|
|
160
|
+
* discriminate — an added field, nothing renamed.
|
|
161
|
+
*
|
|
162
|
+
* The singular paths (which used to emit prose only) now emit the same plural
|
|
163
|
+
* array shape, so item count never changes the structure.
|
|
164
|
+
*/
|
|
165
|
+
export declare const subtaskOutputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
166
|
+
action: z.ZodLiteral<"add">;
|
|
167
|
+
added: z.ZodArray<z.ZodObject<{
|
|
168
|
+
id: z.ZodString;
|
|
169
|
+
title: z.ZodString;
|
|
170
|
+
}, z.core.$strip>>;
|
|
171
|
+
count: z.ZodNumber;
|
|
172
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
173
|
+
action: z.ZodLiteral<"delete">;
|
|
174
|
+
deleted: z.ZodArray<z.ZodString>;
|
|
175
|
+
missing: z.ZodArray<z.ZodString>;
|
|
176
|
+
count: z.ZodNumber;
|
|
177
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
178
|
+
action: z.ZodLiteral<"toggle">;
|
|
179
|
+
updated: z.ZodArray<z.ZodObject<{
|
|
180
|
+
id: z.ZodString;
|
|
181
|
+
completed: z.ZodOptional<z.ZodBoolean>;
|
|
182
|
+
}, z.core.$strip>>;
|
|
183
|
+
count: z.ZodNumber;
|
|
184
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
185
|
+
action: z.ZodLiteral<"update">;
|
|
186
|
+
updated: z.ZodArray<z.ZodObject<{
|
|
187
|
+
id: z.ZodString;
|
|
188
|
+
title: z.ZodString;
|
|
189
|
+
}, z.core.$strip>>;
|
|
190
|
+
count: z.ZodNumber;
|
|
191
|
+
}, z.core.$strip>], "action">;
|
|
192
|
+
/**
|
|
193
|
+
* Six heterogeneous actions, tagged by the `action` input the caller already
|
|
194
|
+
* supplied. `pickup`'s payload is genuinely free-text agent-context markdown,
|
|
195
|
+
* so its variant is deliberately thin — an output schema does not have to
|
|
196
|
+
* invent structure that the payload does not have.
|
|
197
|
+
*/
|
|
198
|
+
export declare const contractOutputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
199
|
+
action: z.ZodLiteral<"attach">;
|
|
200
|
+
task: z.ZodString;
|
|
201
|
+
status: z.ZodString;
|
|
202
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
203
|
+
action: z.ZodLiteral<"pickup">;
|
|
204
|
+
task: z.ZodString;
|
|
205
|
+
markdown: z.ZodString;
|
|
206
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
207
|
+
action: z.ZodLiteral<"deliver">;
|
|
208
|
+
task: z.ZodString;
|
|
209
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
210
|
+
action: z.ZodLiteral<"validate">;
|
|
211
|
+
ok: z.ZodBoolean;
|
|
212
|
+
status: z.ZodString;
|
|
213
|
+
deliverables: z.ZodArray<z.ZodObject<{
|
|
214
|
+
deliverable: z.ZodObject<{
|
|
215
|
+
type: z.ZodOptional<z.ZodString>;
|
|
216
|
+
path: z.ZodString;
|
|
217
|
+
description: z.ZodOptional<z.ZodString>;
|
|
218
|
+
}, z.core.$loose>;
|
|
219
|
+
ok: z.ZodBoolean;
|
|
220
|
+
resolvedPath: z.ZodOptional<z.ZodString>;
|
|
221
|
+
error: z.ZodOptional<z.ZodString>;
|
|
222
|
+
}, z.core.$loose>>;
|
|
223
|
+
commands: z.ZodArray<z.ZodObject<{
|
|
224
|
+
command: z.ZodString;
|
|
225
|
+
exitCode: z.ZodNumber;
|
|
226
|
+
stdout: z.ZodString;
|
|
227
|
+
stderr: z.ZodString;
|
|
228
|
+
}, z.core.$loose>>;
|
|
229
|
+
warnings: z.ZodArray<z.ZodObject<{
|
|
230
|
+
command: z.ZodString;
|
|
231
|
+
message: z.ZodString;
|
|
232
|
+
}, z.core.$loose>>;
|
|
233
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
234
|
+
action: z.ZodLiteral<"graph">;
|
|
235
|
+
attached: z.ZodArray<z.ZodString>;
|
|
236
|
+
count: z.ZodNumber;
|
|
237
|
+
order: z.ZodArray<z.ZodString>;
|
|
238
|
+
graph: z.ZodString;
|
|
239
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
240
|
+
action: z.ZodLiteral<"activate">;
|
|
241
|
+
activated: z.ZodArray<z.ZodString>;
|
|
242
|
+
count: z.ZodNumber;
|
|
243
|
+
}, z.core.$strip>], "action">;
|
|
244
|
+
/**
|
|
245
|
+
* New payload: every success path previously returned prose only, with the
|
|
246
|
+
* interesting values (`completedAt`, issue number/id, issue URL) interpolated
|
|
247
|
+
* into the message. They are now also returned as real fields.
|
|
248
|
+
*
|
|
249
|
+
* Tagged by the `destination` input. The default path (no `destination`) and
|
|
250
|
+
* `destination: 'local'` share the `local` variant and are told apart by
|
|
251
|
+
* `archived`.
|
|
252
|
+
*/
|
|
253
|
+
export declare const taskCompleteOutputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
254
|
+
destination: z.ZodLiteral<"local">;
|
|
255
|
+
taskId: z.ZodString;
|
|
256
|
+
completedAt: z.ZodOptional<z.ZodString>;
|
|
257
|
+
archived: z.ZodBoolean;
|
|
258
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
259
|
+
destination: z.ZodLiteral<"github">;
|
|
260
|
+
taskId: z.ZodString;
|
|
261
|
+
issueNumber: z.ZodOptional<z.ZodNumber>;
|
|
262
|
+
issueUrl: z.ZodOptional<z.ZodString>;
|
|
263
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
264
|
+
destination: z.ZodLiteral<"linear">;
|
|
265
|
+
taskId: z.ZodString;
|
|
266
|
+
issueId: z.ZodOptional<z.ZodString>;
|
|
267
|
+
issueUrl: z.ZodOptional<z.ZodString>;
|
|
268
|
+
}, z.core.$strip>], "destination">;
|
|
269
|
+
/**
|
|
270
|
+
* `brief` — per-agent attention digest.
|
|
271
|
+
*
|
|
272
|
+
* Object root (not a bare array of lanes) so both protocol eras hand clients
|
|
273
|
+
* identical bytes, per note 3 above. `lastBriefAt` is nullable rather than
|
|
274
|
+
* optional: "this agent has never briefed" is a meaningful state a client must
|
|
275
|
+
* be able to distinguish from an omitted field.
|
|
276
|
+
*/
|
|
277
|
+
export declare const briefOutputSchema: z.ZodObject<{
|
|
278
|
+
agent: z.ZodString;
|
|
279
|
+
mode: z.ZodEnum<{
|
|
280
|
+
full: "full";
|
|
281
|
+
delta: "delta";
|
|
282
|
+
}>;
|
|
283
|
+
generatedAt: z.ZodString;
|
|
284
|
+
lastBriefAt: z.ZodNullable<z.ZodString>;
|
|
285
|
+
peek: z.ZodBoolean;
|
|
286
|
+
lanes: z.ZodArray<z.ZodObject<{
|
|
287
|
+
id: z.ZodString;
|
|
288
|
+
label: z.ZodString;
|
|
289
|
+
items: z.ZodArray<z.ZodObject<{
|
|
290
|
+
taskId: z.ZodOptional<z.ZodString>;
|
|
291
|
+
text: z.ZodString;
|
|
292
|
+
why: z.ZodString;
|
|
293
|
+
at: z.ZodOptional<z.ZodString>;
|
|
294
|
+
}, z.core.$strip>>;
|
|
295
|
+
}, z.core.$strip>>;
|
|
296
|
+
}, z.core.$strip>;
|
|
297
|
+
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/mcp/schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAwBxB,eAAO,MAAM,qBAAqB;;;;;;;;;;iBAGhC,CAAC;AAIH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;iBAqB9B,CAAC;AAmCH;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;mBAI7B,CAAC;AAIH,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB;;;iBAG9B,CAAC;AAIH;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;iBAW/B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;iBAShC,CAAC;AAIH,gFAAgF;AAChF,eAAO,MAAM,sBAAsB;;;iBAGjC,CAAC;AAIH;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;6BAsB9B,CAAC;AAaH;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAgD/B,CAAC;AAIH;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;kCAmBnC,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;iBAgB5B,CAAC"}
|
|
@@ -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"}
|