brainfile 0.20.0 → 0.21.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 (83) hide show
  1. package/dist/{chunk-UOCQBEEW.mjs → chunk-FOLBAGJS.mjs} +1232 -318
  2. package/dist/cli.mjs +2048 -1318
  3. package/dist/commands/brief.d.ts +1 -0
  4. package/dist/commands/brief.d.ts.map +1 -1
  5. package/dist/commands/brief.js +10 -0
  6. package/dist/commands/brief.js.map +1 -1
  7. package/dist/commands/init.d.ts +14 -0
  8. package/dist/commands/init.d.ts.map +1 -1
  9. package/dist/commands/init.js +115 -15
  10. package/dist/commands/init.js.map +1 -1
  11. package/dist/commands/mcp.d.ts.map +1 -1
  12. package/dist/commands/mcp.js +44 -0
  13. package/dist/commands/mcp.js.map +1 -1
  14. package/dist/commands/merge-driver.d.ts +26 -0
  15. package/dist/commands/merge-driver.d.ts.map +1 -0
  16. package/dist/commands/merge-driver.js +195 -0
  17. package/dist/commands/merge-driver.js.map +1 -0
  18. package/dist/commands/migrate-tracked.d.ts +8 -0
  19. package/dist/commands/migrate-tracked.d.ts.map +1 -0
  20. package/dist/commands/migrate-tracked.js +428 -0
  21. package/dist/commands/migrate-tracked.js.map +1 -0
  22. package/dist/commands/migrate.d.ts +6 -0
  23. package/dist/commands/migrate.d.ts.map +1 -1
  24. package/dist/commands/migrate.js +9 -0
  25. package/dist/commands/migrate.js.map +1 -1
  26. package/dist/commands/sync.d.ts +16 -0
  27. package/dist/commands/sync.d.ts.map +1 -0
  28. package/dist/commands/sync.js +152 -0
  29. package/dist/commands/sync.js.map +1 -0
  30. package/dist/commands/where.d.ts +21 -0
  31. package/dist/commands/where.d.ts.map +1 -0
  32. package/dist/commands/where.js +135 -0
  33. package/dist/commands/where.js.map +1 -0
  34. package/dist/mcp/helpers.d.ts +8 -0
  35. package/dist/mcp/helpers.d.ts.map +1 -1
  36. package/dist/mcp/helpers.js +44 -0
  37. package/dist/mcp/helpers.js.map +1 -1
  38. package/dist/mcp/tools/brief_tool.d.ts.map +1 -1
  39. package/dist/mcp/tools/brief_tool.js +39 -1
  40. package/dist/mcp/tools/brief_tool.js.map +1 -1
  41. package/dist/mcp/tools/contract_tool.d.ts.map +1 -1
  42. package/dist/mcp/tools/contract_tool.js +6 -5
  43. package/dist/mcp/tools/contract_tool.js.map +1 -1
  44. package/dist/mcp/tools/subtask_tool.d.ts.map +1 -1
  45. package/dist/mcp/tools/subtask_tool.js +5 -4
  46. package/dist/mcp/tools/subtask_tool.js.map +1 -1
  47. package/dist/mcp/tools/task_add_tool.d.ts.map +1 -1
  48. package/dist/mcp/tools/task_add_tool.js +6 -5
  49. package/dist/mcp/tools/task_add_tool.js.map +1 -1
  50. package/dist/mcp/tools/task_complete_tool.d.ts.map +1 -1
  51. package/dist/mcp/tools/task_complete_tool.js +5 -4
  52. package/dist/mcp/tools/task_complete_tool.js.map +1 -1
  53. package/dist/mcp/tools/task_delete_tool.d.ts.map +1 -1
  54. package/dist/mcp/tools/task_delete_tool.js +5 -4
  55. package/dist/mcp/tools/task_delete_tool.js.map +1 -1
  56. package/dist/mcp/tools/task_move_tool.d.ts.map +1 -1
  57. package/dist/mcp/tools/task_move_tool.js +6 -5
  58. package/dist/mcp/tools/task_move_tool.js.map +1 -1
  59. package/dist/mcp/tools/task_patch_tool.d.ts.map +1 -1
  60. package/dist/mcp/tools/task_patch_tool.js +5 -4
  61. package/dist/mcp/tools/task_patch_tool.js.map +1 -1
  62. package/dist/{tui-H3RI22S4.mjs → tui-M2KWIG2E.mjs} +295 -253
  63. package/dist/utils/board-autosync.d.ts +22 -0
  64. package/dist/utils/board-autosync.d.ts.map +1 -0
  65. package/dist/utils/board-autosync.js +166 -0
  66. package/dist/utils/board-autosync.js.map +1 -0
  67. package/dist/utils/board-commit-hooks.d.ts +12 -0
  68. package/dist/utils/board-commit-hooks.d.ts.map +1 -0
  69. package/dist/utils/board-commit-hooks.js +51 -0
  70. package/dist/utils/board-commit-hooks.js.map +1 -0
  71. package/dist/utils/board-repo.d.ts +108 -0
  72. package/dist/utils/board-repo.d.ts.map +1 -0
  73. package/dist/utils/board-repo.js +501 -0
  74. package/dist/utils/board-repo.js.map +1 -0
  75. package/dist/utils/board-sync.d.ts +111 -0
  76. package/dist/utils/board-sync.d.ts.map +1 -0
  77. package/dist/utils/board-sync.js +469 -0
  78. package/dist/utils/board-sync.js.map +1 -0
  79. package/dist/utils/brainfile-path.d.ts +11 -1
  80. package/dist/utils/brainfile-path.d.ts.map +1 -1
  81. package/dist/utils/brainfile-path.js +39 -2
  82. package/dist/utils/brainfile-path.js.map +1 -1
  83. package/package.json +2 -2
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.SYNC_COMMAND_HELP = void 0;
40
+ exports.syncCommand = syncCommand;
41
+ /**
42
+ * `brainfile sync` — share a tracked board through a git remote (spec-9).
43
+ *
44
+ * brainfile sync fetch, merge, push
45
+ * brainfile sync --pull | --push one direction only
46
+ * brainfile sync --set-remote <name|url> [--remote-branch <name>]
47
+ * brainfile sync --autosync off|push|full
48
+ *
49
+ * With `--set-remote` in a repository that has no board yet, the board is
50
+ * fetched from that remote and materialized as the board worktree.
51
+ */
52
+ const fs = __importStar(require("fs"));
53
+ const path = __importStar(require("path"));
54
+ const chalk_1 = __importDefault(require("chalk"));
55
+ const core_1 = require("@brainfile/core");
56
+ const logger_1 = require("../utils/logger");
57
+ const cli_error_1 = require("../utils/cli-error");
58
+ const brainfile_path_1 = require("../utils/brainfile-path");
59
+ const board_repo_1 = require("../utils/board-repo");
60
+ const board_autosync_1 = require("../utils/board-autosync");
61
+ const board_sync_1 = require("../utils/board-sync");
62
+ exports.SYNC_COMMAND_HELP = `
63
+ Examples:
64
+ brainfile sync Fetch, merge and push the board branch
65
+ brainfile sync --pull Bring in other machines' changes only
66
+ brainfile sync --set-remote origin Share the board through the code remote
67
+ brainfile sync --set-remote git@host:me/boards.git --remote-branch myproject
68
+ brainfile sync --autosync full Also fetch before reads (default: push after writes)
69
+
70
+ Nothing leaves this machine until you choose a remote. \`brainfile where\` shows
71
+ where the board lives and who has it.`;
72
+ function describe(result) {
73
+ const message = (0, board_sync_1.syncMessage)(result);
74
+ const text = message.tone === 'ok' ? chalk_1.default.green(message.text) : chalk_1.default.yellow(message.text);
75
+ return message.detail ? `${text}\n${chalk_1.default.gray(` (${message.detail})`)}` : text;
76
+ }
77
+ function sleep(ms) {
78
+ if (ms > 0)
79
+ Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
80
+ }
81
+ function syncCommand(options, logger = logger_1.defaultLogger) {
82
+ const wait = options.wait !== undefined ? Number(options.wait) : 0;
83
+ if (Number.isFinite(wait) && wait > 0)
84
+ sleep(wait);
85
+ let dotDir = (0, brainfile_path_1.tryResolveBoardDir)(options.file);
86
+ // The autosync child owns the pending-push lock; release it however we end.
87
+ if (dotDir && options.wait !== undefined)
88
+ (0, board_autosync_1.clearPushLock)(dotDir);
89
+ if (options.setRemote !== undefined) {
90
+ const cwd = dotDir ?? (0, board_repo_1.gitToplevel)(process.cwd());
91
+ if (!cwd) {
92
+ throw (0, cli_error_1.operationFailed)('No board here and not inside a git repository. Run: brainfile init');
93
+ }
94
+ let setting;
95
+ try {
96
+ setting = (0, board_sync_1.setBoardRemote)(cwd, options.setRemote, options.remoteBranch);
97
+ }
98
+ catch (error) {
99
+ throw (0, cli_error_1.validationError)(error instanceof Error ? error.message : String(error));
100
+ }
101
+ logger.log(chalk_1.default.green(`This board is now shared through ${setting.remote}${setting.url ? ` (${setting.url})` : ''}, branch '${setting.remoteBranch}'.`));
102
+ logger.log(chalk_1.default.gray(` Changes are sent automatically after each edit. Anyone who can read ${setting.remote} can read the board.`));
103
+ if (!dotDir) {
104
+ dotDir = (0, board_repo_1.materializeBoardWorktree)(cwd);
105
+ if (!dotDir) {
106
+ logger.log(chalk_1.default.yellow(`There is no board on ${setting.remote} yet (looked for branch '${setting.remoteBranch}').`) + chalk_1.default.gray(' Start one with: brainfile init'));
107
+ return undefined;
108
+ }
109
+ }
110
+ }
111
+ else if (options.remoteBranch !== undefined) {
112
+ throw (0, cli_error_1.validationError)('--remote-branch needs --set-remote');
113
+ }
114
+ if (!dotDir) {
115
+ // Let the resolver raise the standard "not found" error.
116
+ const resolved = (0, brainfile_path_1.resolveCliBrainfilePath)(options.file);
117
+ if (!fs.existsSync(resolved))
118
+ throw (0, cli_error_1.operationFailed)(`No board found (looked for ${path.join('.brainfile', core_1.BRAINFILE_BASENAME)}). Run: brainfile init`);
119
+ dotDir = path.dirname(resolved);
120
+ }
121
+ if (options.autosync !== undefined) {
122
+ const mode = options.autosync;
123
+ if (!['off', 'push', 'full'].includes(mode))
124
+ throw (0, cli_error_1.validationError)('--autosync must be off, push or full');
125
+ if (!(0, board_repo_1.isTrackedBoard)(dotDir))
126
+ throw (0, cli_error_1.operationFailed)('Autosync needs a tracked board. Run: brainfile migrate --to-branch');
127
+ (0, board_sync_1.setBoardAutosync)(dotDir, mode);
128
+ logger.log(chalk_1.default.green(`Autosync: ${mode}.`));
129
+ }
130
+ const pullOnly = options.pull === true && options.push !== true;
131
+ const pushOnly = options.push === true && options.pull !== true;
132
+ const result = (0, board_sync_1.syncBoard)(dotDir, {
133
+ pull: !pushOnly,
134
+ push: !pullOnly,
135
+ agent: (0, board_repo_1.resolveAgentName)(),
136
+ });
137
+ if (options.json) {
138
+ logger.log(JSON.stringify({
139
+ ...result,
140
+ remote: result.remote ?? (0, board_sync_1.boardRemote)(dotDir),
141
+ remoteBranch: result.remoteBranch ?? (0, board_sync_1.boardRemoteBranch)(dotDir),
142
+ autosync: (0, board_sync_1.boardAutosync)(dotDir),
143
+ }, null, 2));
144
+ }
145
+ else {
146
+ logger.log(describe(result));
147
+ }
148
+ if (result.conflicts.length > 0)
149
+ process.exitCode = 1;
150
+ return result;
151
+ }
152
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { type Logger } from '../utils/logger';
2
+ export interface WhereOptions {
3
+ file?: string;
4
+ json?: boolean;
5
+ }
6
+ export interface WhereReport {
7
+ path: string;
8
+ storage: 'plain' | 'branch' | 'repository';
9
+ branch: string | null;
10
+ repository: string | null;
11
+ remote: string | null;
12
+ remoteUrl: string | null;
13
+ remoteBranch: string | null;
14
+ autosync: 'off' | 'push' | 'full' | null;
15
+ lastSyncSecondsAgo: number | null;
16
+ lastSyncOk: boolean | null;
17
+ pendingChanges: number;
18
+ }
19
+ export declare function whereReport(dotDir: string): WhereReport;
20
+ export declare function whereCommand(options: WhereOptions, logger?: Logger): WhereReport;
21
+ //# sourceMappingURL=where.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"where.d.ts","sourceRoot":"","sources":["../../src/commands/where.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,iBAAiB,CAAC;AAa7D,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,YAAY,CAAC;IAC3C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACzC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;CACxB;AASD,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAkBvD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,GAAE,MAAsB,GAAG,WAAW,CAqD/F"}
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.whereReport = whereReport;
40
+ exports.whereCommand = whereCommand;
41
+ /**
42
+ * `brainfile where` — where the board lives, how it is stored, and who else
43
+ * has it. Read-only and offline: it never fetches or pushes, so it is always
44
+ * safe to run when you are unsure what happened to your board.
45
+ */
46
+ const fs = __importStar(require("fs"));
47
+ const path = __importStar(require("path"));
48
+ const chalk_1 = __importDefault(require("chalk"));
49
+ const logger_1 = require("../utils/logger");
50
+ const cli_error_1 = require("../utils/cli-error");
51
+ const brainfile_path_1 = require("../utils/brainfile-path");
52
+ const board_repo_1 = require("../utils/board-repo");
53
+ const board_autosync_1 = require("../utils/board-autosync");
54
+ const board_sync_1 = require("../utils/board-sync");
55
+ function ago(seconds) {
56
+ if (seconds < 60)
57
+ return `${seconds}s ago`;
58
+ if (seconds < 3600)
59
+ return `${Math.round(seconds / 60)}m ago`;
60
+ if (seconds < 86400)
61
+ return `${Math.round(seconds / 3600)}h ago`;
62
+ return `${Math.round(seconds / 86400)}d ago`;
63
+ }
64
+ function whereReport(dotDir) {
65
+ const kind = (0, board_repo_1.boardRepoKind)(dotDir);
66
+ const storage = kind === 'linked' ? 'branch' : kind === 'standalone' ? 'repository' : 'plain';
67
+ const remote = kind ? (0, board_sync_1.boardRemote)(dotDir) : null;
68
+ const state = remote ? (0, board_sync_1.readSyncState)(dotDir) : null;
69
+ return {
70
+ path: dotDir,
71
+ storage,
72
+ branch: kind === 'linked' ? (0, board_repo_1.boardBranch)(dotDir) : null,
73
+ repository: kind === 'linked' ? (0, board_repo_1.gitToplevel)(path.dirname(dotDir)) : null,
74
+ remote,
75
+ remoteUrl: remote ? (0, board_repo_1.git)(['remote', 'get-url', remote], dotDir).stdout || null : null,
76
+ remoteBranch: remote ? (0, board_sync_1.boardRemoteBranch)(dotDir) : null,
77
+ autosync: remote ? (0, board_autosync_1.effectiveAutosync)(dotDir) : null,
78
+ lastSyncSecondsAgo: remote ? (0, board_sync_1.secondsSinceSync)(dotDir) : null,
79
+ lastSyncOk: state ? state.ok : null,
80
+ pendingChanges: remote ? (0, board_sync_1.pendingChanges)(dotDir) : 0,
81
+ };
82
+ }
83
+ function whereCommand(options, logger = logger_1.defaultLogger) {
84
+ const filePath = (0, brainfile_path_1.resolveCliBrainfilePath)(options.file);
85
+ if (!fs.existsSync(filePath))
86
+ throw (0, cli_error_1.fileNotFound)(filePath);
87
+ const dotDir = path.dirname(filePath);
88
+ const report = whereReport(dotDir);
89
+ if (options.json) {
90
+ logger.log(JSON.stringify(report, null, 2));
91
+ return report;
92
+ }
93
+ const label = (name) => chalk_1.default.bold(name.padEnd(8));
94
+ const more = (text) => logger.log(`${' '.repeat(8)} ${text}`);
95
+ const shown = path.relative(process.cwd(), dotDir) || '.';
96
+ const isHome = path.resolve(dotDir) === path.resolve((0, board_repo_1.homeBoardDir)());
97
+ logger.log(`${label('Board')} ${shown}/${isHome ? chalk_1.default.gray(' (your home board)') : ''}`);
98
+ if (report.storage === 'plain') {
99
+ logger.log(`${label('Stored')} as plain files, not tracked by git`);
100
+ }
101
+ else if (report.storage === 'branch') {
102
+ logger.log(`${label('Stored')} as commits on the '${report.branch}' branch of this repository`);
103
+ more(chalk_1.default.gray('Kept out of your code branch, its commits and pull requests.'));
104
+ }
105
+ else {
106
+ logger.log(`${label('Stored')} as commits in its own git repository inside ${shown}/`);
107
+ }
108
+ if (!report.remote) {
109
+ logger.log(`${label('Shared')} nowhere: this board is only on this machine`);
110
+ more(chalk_1.default.gray('To share it: ') + chalk_1.default.cyan(report.storage === 'plain' ? 'brainfile migrate --to-branch' : 'brainfile sync --set-remote origin'));
111
+ return report;
112
+ }
113
+ const url = report.remoteUrl ? ` (${report.remoteUrl})` : '';
114
+ logger.log(`${label('Shared')} through ${report.remote}${url}, branch '${report.remoteBranch}'`);
115
+ const last = report.lastSyncSecondsAgo === null
116
+ ? ''
117
+ : report.lastSyncOk === false
118
+ ? chalk_1.default.yellow(`Last sync failed ${ago(report.lastSyncSecondsAgo)}; your changes are safe on this machine.`)
119
+ : `Last synced ${ago(report.lastSyncSecondsAgo)}.`;
120
+ const waiting = report.pendingChanges > 0
121
+ ? `${report.pendingChanges} change${report.pendingChanges === 1 ? '' : 's'} waiting to be sent.`
122
+ : 'Nothing waiting to be sent.';
123
+ more([last, waiting].filter(Boolean).join(' '));
124
+ if (report.autosync === 'off') {
125
+ more(chalk_1.default.gray('Automatic sharing is off; run brainfile sync to send and receive.'));
126
+ }
127
+ else {
128
+ more(chalk_1.default.gray(report.autosync === 'full'
129
+ ? 'Changes are sent after each edit and fetched before reading.'
130
+ : 'Changes are sent automatically after each edit.'));
131
+ }
132
+ more(chalk_1.default.gray(`Anyone who can read ${report.remote} can read this board.`));
133
+ return report;
134
+ }
135
+ //# sourceMappingURL=where.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"where.js","sourceRoot":"","sources":["../../src/commands/where.ts"],"names":[],"mappings":"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"}
@@ -24,4 +24,12 @@ export declare function mcpStructuredError(message: string, field: string, value
24
24
  * Find git repository root by walking up directory tree
25
25
  */
26
26
  export declare function findGitRoot(startDir: string): string | null;
27
+ type ToolInput = Record<string, unknown>;
28
+ /**
29
+ * 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 acting agent comes
31
+ * from `BRAINFILE_AGENT`, which the MCP host sets per agent.
32
+ */
33
+ export declare function withBoardCommit<I extends ToolInput, R, E>(toolName: string, defaultFile: string, handler: (input: I, extra: E) => Promise<R>): (input: I, extra: E) => Promise<R>;
34
+ export {};
27
35
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/mcp/helpers.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,GAAG,IAAI,CAYpH;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;;;;;;EAY/E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAe3D"}
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;AAMD,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAezC;;;;GAIG;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,CAmBpC"}
@@ -37,10 +37,12 @@ exports.resolveBrainfile = resolveBrainfile;
37
37
  exports.requireV2 = requireV2;
38
38
  exports.mcpStructuredError = mcpStructuredError;
39
39
  exports.findGitRoot = findGitRoot;
40
+ exports.withBoardCommit = withBoardCommit;
40
41
  const fs = __importStar(require("fs"));
41
42
  const path = __importStar(require("path"));
42
43
  const core_1 = require("@brainfile/core");
43
44
  const v2_only_1 = require("../utils/v2-only");
45
+ const board_autosync_1 = require("../utils/board-autosync");
44
46
  function resolveBrainfile(filePath) {
45
47
  return path.resolve(filePath);
46
48
  }
@@ -56,6 +58,9 @@ function requireV2(filePath) {
56
58
  if (!(0, core_1.isV2)(resolvedPath)) {
57
59
  return { content: [{ type: 'text', text: `Error: ${v2_only_1.V1_UNSUPPORTED_MESSAGE}` }], isError: true };
58
60
  }
61
+ // A shared board in autosync=full mode fetches before stale reads.
62
+ (0, board_autosync_1.installAutosync)();
63
+ (0, board_autosync_1.fetchBeforeRead)(path.dirname(resolvedPath));
59
64
  return null;
60
65
  }
61
66
  function mcpStructuredError(message, field, value) {
@@ -85,4 +90,43 @@ function findGitRoot(startDir) {
85
90
  }
86
91
  return null;
87
92
  }
93
+ // ── Board-on-a-branch (spec-9): one commit per mutating tool call ─────────
94
+ const board_repo_1 = require("../utils/board-repo");
95
+ function isErrorResult(result) {
96
+ return typeof result === 'object' && result !== null && result.isError === true;
97
+ }
98
+ function describeToolCall(toolName, input) {
99
+ const action = typeof input.action === 'string' ? ` ${input.action}` : '';
100
+ const rawId = input.taskId ?? input.task;
101
+ const id = Array.isArray(rawId) ? ` ${rawId.join(',')}` : typeof rawId === 'string' ? ` ${rawId}` : '';
102
+ const detail = [input.title, input.column]
103
+ .find((v) => typeof v === 'string' && v.length > 0);
104
+ return `${toolName}${action}${id}${detail ? `: ${detail}` : ''}`;
105
+ }
106
+ /**
107
+ * Wrap a mutating tool handler so a successful call commits the board when it
108
+ * is tracked. A failed commit never fails the tool. The acting agent comes
109
+ * from `BRAINFILE_AGENT`, which the MCP host sets per agent.
110
+ */
111
+ function withBoardCommit(toolName, defaultFile, handler) {
112
+ return async (input, extra) => {
113
+ const result = await handler(input, extra);
114
+ try {
115
+ if (!isErrorResult(result)) {
116
+ const filePath = typeof input.file === 'string' && input.file ? input.file : defaultFile;
117
+ const dotDir = path.dirname(resolveBrainfile(filePath));
118
+ if ((0, board_repo_1.isTrackedBoard)(dotDir)) {
119
+ (0, board_repo_1.commitBoard)(dotDir, {
120
+ message: describeToolCall(toolName, input),
121
+ agent: process.env.BRAINFILE_AGENT ?? null,
122
+ });
123
+ }
124
+ }
125
+ }
126
+ catch {
127
+ /* recording is best-effort */
128
+ }
129
+ return result;
130
+ };
131
+ }
88
132
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/mcp/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,4CAEC;AAMD,8BAYC;AAED,gDAYC;AAKD,kCAeC;AA/DD,uCAAyB;AACzB,2CAA6B;AAC7B,0CAAuC;AACvC,8CAA0D;AAM1D,SAAgB,gBAAgB,CAAC,QAAgB;IAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,SAAgB,SAAS,CAAC,QAAgB;IACxC,MAAM,YAAY,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAEhD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,0BAA0B,YAAY,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACjH,CAAC;IAED,IAAI,CAAC,IAAA,WAAI,EAAC,YAAY,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,gCAAsB,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3G,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,kBAAkB,CAAC,OAAe,EAAE,KAAa,EAAE,KAAa;IAC9E,OAAO;QACL,OAAO,EAAE,CAAC;gBACR,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAC9D,IAAI,EACJ,CAAC,CACF;aACF,CAAC;QACF,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,QAAgB;IAC1C,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;IAEzC,OAAO,UAAU,KAAK,IAAI,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,SAAS,KAAK,UAAU;YAAE,MAAM;QACpC,UAAU,GAAG,SAAS,CAAC;IACzB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/mcp/helpers.ts"],"names":[],"mappings":"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"}
@@ -1 +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"}
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;AAS9D;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAmD9E"}
@@ -1,4 +1,37 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.registerBriefTool = registerBriefTool;
4
37
  const zod_1 = require("zod");
@@ -6,6 +39,8 @@ const core_1 = require("@brainfile/core");
6
39
  const v2_detect_1 = require("../../utils/v2-detect");
7
40
  const helpers_1 = require("../helpers");
8
41
  const schemas_1 = require("../schemas");
42
+ const board_sync_1 = require("../../utils/board-sync");
43
+ const path = __importStar(require("path"));
9
44
  /**
10
45
  * `brief` — "what changed that I should care about?" for one agent.
11
46
  *
@@ -26,9 +61,10 @@ function registerBriefTool(server, defaultFile) {
26
61
  file: zod_1.z.string().optional().describe('Path to brainfile.md (default: brainfile.md)'),
27
62
  agent: zod_1.z.string().describe('Agent identifier (required — brief state is per-agent)'),
28
63
  peek: zod_1.z.boolean().optional().describe('Read the brief without marking it as seen'),
64
+ offline: zod_1.z.boolean().optional().describe('Skip syncing a shared board before the brief'),
29
65
  }),
30
66
  outputSchema: schemas_1.briefOutputSchema,
31
- }, async ({ file, agent, peek }) => {
67
+ }, async ({ file, agent, peek, offline }) => {
32
68
  const filePath = file || defaultFile;
33
69
  const guard = (0, helpers_1.requireV2)(filePath);
34
70
  if (guard)
@@ -41,6 +77,8 @@ function registerBriefTool(server, defaultFile) {
41
77
  };
42
78
  }
43
79
  const resolvedPath = (0, helpers_1.resolveBrainfile)(filePath);
80
+ if (!offline)
81
+ (0, board_sync_1.syncBoard)(path.dirname(resolvedPath), { agent: agentName });
44
82
  const dirs = (0, v2_detect_1.getV2Dirs)(resolvedPath);
45
83
  const isPeek = peek === true;
46
84
  const state = (0, core_1.readBriefState)(resolvedPath, agentName);
@@ -1 +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
+ {"version":3,"file":"brief_tool.js","sourceRoot":"","sources":["../../../src/mcp/tools/brief_tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,8CAmDC;AAtED,6BAAwB;AACxB,0CAA8E;AAC9E,qDAAkD;AAClD,wCAAyD;AACzD,wCAA+C;AAC/C,uDAAmD;AACnD,2CAA6B;AAE7B;;;;;;;;;;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;YAClF,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;SACzF,CAAC;QACF,YAAY,EAAE,2BAAiB;KAChC,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;QACvC,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,IAAI,CAAC,OAAO;YAAE,IAAA,sBAAS,EAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAE1E,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;AAa9D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CA0MjF"}
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;AAc9D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CA0MjF"}
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.registerContractTool = registerContractTool;
4
+ const helpers_1 = require("../helpers");
4
5
  const zod_1 = require("zod");
5
6
  const core_1 = require("@brainfile/core");
6
7
  const v2_detect_1 = require("../../utils/v2-detect");
7
8
  const contractRunner_1 = require("../../lib/contractRunner");
8
9
  const contract_1 = require("./contract");
9
- const helpers_1 = require("../helpers");
10
+ const helpers_2 = require("../helpers");
10
11
  const schemas_1 = require("../schemas");
11
12
  function registerContractTool(server, defaultFile) {
12
13
  server.registerTool('contract', {
@@ -43,14 +44,14 @@ function registerContractTool(server, defaultFile) {
43
44
  activate: zod_1.z.boolean().optional().describe('graph only: when true, attached contracts start in ready instead of draft'),
44
45
  }),
45
46
  outputSchema: schemas_1.contractOutputSchema
46
- }, async ({ action, file, task, parentId, ready: attachReady, deliverables, validation_commands, constraints, tasks, activate }) => {
47
+ }, (0, helpers_1.withBoardCommit)('contract', defaultFile, async ({ action, file, task, parentId, ready: attachReady, deliverables, validation_commands, constraints, tasks, activate }) => {
47
48
  const filePath = file || defaultFile;
48
49
  // ── attach ─────────────────────────────────────────────────────────────
49
50
  if (action === 'attach') {
50
51
  if (!task) {
51
52
  return { content: [{ type: 'text', text: 'Error: task is required for action=attach' }], isError: true };
52
53
  }
53
- const guard = (0, helpers_1.requireV2)(filePath);
54
+ const guard = (0, helpers_2.requireV2)(filePath);
54
55
  if (guard)
55
56
  return guard;
56
57
  const dirs = (0, v2_detect_1.getV2Dirs)(filePath);
@@ -168,7 +169,7 @@ function registerContractTool(server, defaultFile) {
168
169
  if (!task && !parentId) {
169
170
  return { content: [{ type: 'text', text: 'Error: task or parentId is required for action=activate' }], isError: true };
170
171
  }
171
- const guard = (0, helpers_1.requireV2)(filePath);
172
+ const guard = (0, helpers_2.requireV2)(filePath);
172
173
  if (guard)
173
174
  return guard;
174
175
  const activated = [];
@@ -195,6 +196,6 @@ function registerContractTool(server, defaultFile) {
195
196
  };
196
197
  }
197
198
  return { content: [{ type: 'text', text: `Error: Unknown action: ${action}` }], isError: true };
198
- });
199
+ }));
199
200
  }
200
201
  //# sourceMappingURL=contract_tool.js.map
@@ -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":";;AAcA,oDA0MC;AAvND,wCAA6C;AAC7C,6BAAwB;AACxB,0CAIyB;AACzB,qDAA8D;AAC9D,6DAA6F;AAC7F,yCAA2D;AAC3D,wCAAuC;AACvC,wCAAkD;AAElD,SAAgB,oBAAoB,CAAC,MAAiB,EAAE,WAAmB;IACzE,MAAM,CAAC,YAAY,CACjB,UAAU,EACV;QACE,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE;YACX,qCAAqC;YACrC,kHAAkH;YAClH,2FAA2F;YAC3F,mEAAmE;YACnE,2EAA2E;YAC3E,6GAA6G;YAC7G,6GAA6G;SAC9G,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,WAAW,EAAE,OAAC,CAAC,MAAM,CAAC;YACd,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAC5G,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;YACpF,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oFAAoF,CAAC;YAC1H,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8EAA8E,CAAC;YACxH,KAAK,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;YAC/F,YAAY,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YAC3F,mBAAmB,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YACtG,WAAW,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;YACvF,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,CAAC;gBACtB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;gBAChB,YAAY,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,CAAC;oBAC7B,IAAI,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;oBAC5D,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;oBAChB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;iBACnC,CAAC,CAAC,CAAC,QAAQ,EAAE;gBACd,mBAAmB,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;gBACnD,WAAW,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;gBAC3C,SAAS,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;aAC1C,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;YACzE,QAAQ,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2EAA2E,CAAC;SACvH,CAAC;QACR,YAAY,EAAE,8BAAoB;KACnC,EACD,IAAA,yBAAe,EAAC,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;QACvK,MAAM,QAAQ,GAAG,IAAI,IAAI,WAAW,CAAC;QAErC,0EAA0E;QAC1E,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,2CAA2C,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACpH,CAAC;YAED,MAAM,KAAK,GAAG,IAAA,mBAAS,EAAC,QAAQ,CAAC,CAAC;YAClC,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;YAExB,MAAM,IAAI,GAAG,IAAA,qBAAS,EAAC,QAAQ,CAAC,CAAC;YACjC,MAAM,KAAK,GAAG,IAAA,sBAAU,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACrC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,0BAA0B,IAAI,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACzG,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAA,yBAAkB,EAAC,KAAK,CAAC,QAAQ,EAAE;oBAChD,gBAAgB,EAAE,YAAY;oBAC9B,kBAAkB,EAAE,mBAAmB;oBACvC,WAAW;oBACX,KAAK,EAAE,WAAW,KAAK,IAAI;iBAC5B,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;oBACpC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,IAAI,2BAA2B,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAChI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAS,CAAC,MAAM,CAAC;gBAC5C,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,sBAAsB,MAAM,MAAM,IAAI,EAAE,EAAE,CAAC;oBACpF,iBAAiB,EAAE,EAAE,MAAM,EAAE,QAAiB,EAAE,IAAI,EAAE,MAAM,EAAE;iBAC/D,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAW,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACzG,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,2CAA2C,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACpH,CAAC;YACD,MAAM,MAAM,GAAG,IAAA,+BAAc,EAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;gBACtB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACjG,CAAC;YACD,oEAAoE;YACpE,+CAA+C;YAC/C,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC3D,iBAAiB,EAAE,EAAE,MAAM,EAAE,QAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;aAClF,CAAC;QACJ,CAAC;QAED,0EAA0E;QAC1E,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,4CAA4C,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACrH,CAAC;YACD,MAAM,MAAM,GAAG,IAAA,gCAAe,EAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3D,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;gBACtB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACjG,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,uBAAuB,IAAI,EAAE,EAAE,CAAC;gBACzE,iBAAiB,EAAE,EAAE,MAAM,EAAE,SAAkB,EAAE,IAAI,EAAE;aACxD,CAAC;QACJ,CAAC;QAED,0EAA0E;QAC1E,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,6CAA6C,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACtH,CAAC;YACD,MAAM,MAAM,GAAG,IAAA,iCAAgB,EAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;gBACtB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACjG,CAAC;YACD,MAAM,MAAM,GAAG;gBACb,MAAM,EAAE,UAAmB;gBAC3B,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;gBACrC,YAAY,EAAE,MAAM,CAAC,iBAAiB;gBACtC,QAAQ,EAAE,MAAM,CAAC,cAAc;gBAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC;YACF,qEAAqE;YACrE,sEAAsE;YACtE,qEAAqE;YACrE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC3E,iBAAiB,EAAE,MAAM;aAC1B,CAAC;QACJ,CAAC;QAED,0EAA0E;QAC1E,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,yEAAyE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAClJ,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAA,wCAA6B,EAAC;oBAC3C,IAAI,EAAE,QAAQ;oBACd,KAAK;oBACL,QAAQ;iBACT,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG;oBACb,MAAM,EAAE,OAAgB;oBACxB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB,CAAC;gBACF,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;oBAC3E,iBAAiB,EAAE,MAAM;iBAC1B,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;oBAC9G,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACvB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,yDAAyD,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAClI,CAAC;YAED,MAAM,KAAK,GAAG,IAAA,mBAAS,EAAC,QAAQ,CAAC,CAAC;YAClC,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;YAExB,MAAM,SAAS,GAAa,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAA,qBAAS,EAAC,QAAQ,CAAC,CAAC;YAEjC,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,KAAK,GAAG,IAAA,sBAAU,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC5C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAC1B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,0BAA0B,IAAI,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBACzG,CAAC;gBACD,MAAM,MAAM,GAAG,IAAA,2BAAoB,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,IAAI,gCAAgC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAC3I,CAAC;gBACD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,mBAAmB;gBACnB,SAAS,CAAC,IAAI,CAAC,GAAG,IAAA,oCAA6B,EAAC,IAAI,CAAC,QAAQ,EAAE,QAAS,CAAC,CAAC,SAAS,CAAC,CAAC;YACvF,CAAC;YAED,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,UAAmB,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;YACnF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC3E,iBAAiB,EAAE,MAAM;aAC1B,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,0BAA0B,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3G,CAAC,CACF,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"subtask_tool.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/subtask_tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAY9D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAmMhF"}
1
+ {"version":3,"file":"subtask_tool.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/subtask_tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAa9D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAmMhF"}