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.
- package/dist/{chunk-UOCQBEEW.mjs → chunk-FOLBAGJS.mjs} +1232 -318
- package/dist/cli.mjs +2048 -1318
- package/dist/commands/brief.d.ts +1 -0
- package/dist/commands/brief.d.ts.map +1 -1
- package/dist/commands/brief.js +10 -0
- package/dist/commands/brief.js.map +1 -1
- package/dist/commands/init.d.ts +14 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +115 -15
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +44 -0
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/merge-driver.d.ts +26 -0
- package/dist/commands/merge-driver.d.ts.map +1 -0
- package/dist/commands/merge-driver.js +195 -0
- package/dist/commands/merge-driver.js.map +1 -0
- package/dist/commands/migrate-tracked.d.ts +8 -0
- package/dist/commands/migrate-tracked.d.ts.map +1 -0
- package/dist/commands/migrate-tracked.js +428 -0
- package/dist/commands/migrate-tracked.js.map +1 -0
- package/dist/commands/migrate.d.ts +6 -0
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +9 -0
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/sync.d.ts +16 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +152 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/where.d.ts +21 -0
- package/dist/commands/where.d.ts.map +1 -0
- package/dist/commands/where.js +135 -0
- package/dist/commands/where.js.map +1 -0
- package/dist/mcp/helpers.d.ts +8 -0
- package/dist/mcp/helpers.d.ts.map +1 -1
- package/dist/mcp/helpers.js +44 -0
- package/dist/mcp/helpers.js.map +1 -1
- package/dist/mcp/tools/brief_tool.d.ts.map +1 -1
- package/dist/mcp/tools/brief_tool.js +39 -1
- package/dist/mcp/tools/brief_tool.js.map +1 -1
- package/dist/mcp/tools/contract_tool.d.ts.map +1 -1
- package/dist/mcp/tools/contract_tool.js +6 -5
- package/dist/mcp/tools/contract_tool.js.map +1 -1
- package/dist/mcp/tools/subtask_tool.d.ts.map +1 -1
- package/dist/mcp/tools/subtask_tool.js +5 -4
- package/dist/mcp/tools/subtask_tool.js.map +1 -1
- package/dist/mcp/tools/task_add_tool.d.ts.map +1 -1
- package/dist/mcp/tools/task_add_tool.js +6 -5
- package/dist/mcp/tools/task_add_tool.js.map +1 -1
- package/dist/mcp/tools/task_complete_tool.d.ts.map +1 -1
- package/dist/mcp/tools/task_complete_tool.js +5 -4
- package/dist/mcp/tools/task_complete_tool.js.map +1 -1
- package/dist/mcp/tools/task_delete_tool.d.ts.map +1 -1
- package/dist/mcp/tools/task_delete_tool.js +5 -4
- package/dist/mcp/tools/task_delete_tool.js.map +1 -1
- package/dist/mcp/tools/task_move_tool.d.ts.map +1 -1
- package/dist/mcp/tools/task_move_tool.js +6 -5
- package/dist/mcp/tools/task_move_tool.js.map +1 -1
- package/dist/mcp/tools/task_patch_tool.d.ts.map +1 -1
- package/dist/mcp/tools/task_patch_tool.js +5 -4
- package/dist/mcp/tools/task_patch_tool.js.map +1 -1
- package/dist/{tui-H3RI22S4.mjs → tui-M2KWIG2E.mjs} +295 -253
- package/dist/utils/board-autosync.d.ts +22 -0
- package/dist/utils/board-autosync.d.ts.map +1 -0
- package/dist/utils/board-autosync.js +166 -0
- package/dist/utils/board-autosync.js.map +1 -0
- package/dist/utils/board-commit-hooks.d.ts +12 -0
- package/dist/utils/board-commit-hooks.d.ts.map +1 -0
- package/dist/utils/board-commit-hooks.js +51 -0
- package/dist/utils/board-commit-hooks.js.map +1 -0
- package/dist/utils/board-repo.d.ts +108 -0
- package/dist/utils/board-repo.d.ts.map +1 -0
- package/dist/utils/board-repo.js +501 -0
- package/dist/utils/board-repo.js.map +1 -0
- package/dist/utils/board-sync.d.ts +111 -0
- package/dist/utils/board-sync.d.ts.map +1 -0
- package/dist/utils/board-sync.js +469 -0
- package/dist/utils/board-sync.js.map +1 -0
- package/dist/utils/brainfile-path.d.ts +11 -1
- package/dist/utils/brainfile-path.d.ts.map +1 -1
- package/dist/utils/brainfile-path.js +39 -2
- package/dist/utils/brainfile-path.js.map +1 -1
- 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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"}
|
package/dist/mcp/helpers.d.ts
CHANGED
|
@@ -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":"
|
|
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"}
|
package/dist/mcp/helpers.js
CHANGED
|
@@ -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
|
package/dist/mcp/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/mcp/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
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;
|
|
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":"
|
|
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;
|
|
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
|
|
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,
|
|
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,
|
|
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":";;
|
|
1
|
+
{"version":3,"file":"contract_tool.js","sourceRoot":"","sources":["../../../src/mcp/tools/contract_tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subtask_tool.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/subtask_tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;
|
|
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"}
|