brainfile 0.21.2 → 0.22.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/README.md +1 -1
  2. package/dist/__tests__/helpers/mcp-wire.d.ts +2 -0
  3. package/dist/__tests__/helpers/mcp-wire.d.ts.map +1 -1
  4. package/dist/__tests__/helpers/mcp-wire.js +4 -2
  5. package/dist/__tests__/helpers/mcp-wire.js.map +1 -1
  6. package/dist/chunk-CWUTU5VV.mjs +5585 -0
  7. package/dist/chunk-L4WSDMK3.mjs +1973 -0
  8. package/dist/{chunk-7KU2R7QC.mjs → chunk-XFDTTLSW.mjs} +3230 -4322
  9. package/dist/cli.js +7 -1
  10. package/dist/cli.mjs +8078 -5357
  11. package/dist/commands/add.d.ts +4 -0
  12. package/dist/commands/add.d.ts.map +1 -1
  13. package/dist/commands/add.js +68 -72
  14. package/dist/commands/add.js.map +1 -1
  15. package/dist/commands/boards.d.ts +18 -0
  16. package/dist/commands/boards.d.ts.map +1 -0
  17. package/dist/commands/boards.js +166 -0
  18. package/dist/commands/boards.js.map +1 -0
  19. package/dist/commands/brief.d.ts +17 -11
  20. package/dist/commands/brief.d.ts.map +1 -1
  21. package/dist/commands/brief.js +38 -35
  22. package/dist/commands/brief.js.map +1 -1
  23. package/dist/commands/check.d.ts +47 -0
  24. package/dist/commands/check.d.ts.map +1 -0
  25. package/dist/commands/check.js +134 -0
  26. package/dist/commands/check.js.map +1 -0
  27. package/dist/commands/columns.d.ts +48 -0
  28. package/dist/commands/columns.d.ts.map +1 -0
  29. package/dist/commands/columns.js +132 -0
  30. package/dist/commands/columns.js.map +1 -0
  31. package/dist/commands/complete.js +9 -4
  32. package/dist/commands/complete.js.map +1 -1
  33. package/dist/commands/decide.d.ts +72 -0
  34. package/dist/commands/decide.d.ts.map +1 -0
  35. package/dist/commands/decide.js +264 -0
  36. package/dist/commands/decide.js.map +1 -0
  37. package/dist/commands/hooks.d.ts +5 -1
  38. package/dist/commands/hooks.d.ts.map +1 -1
  39. package/dist/commands/hooks.js +10 -11
  40. package/dist/commands/hooks.js.map +1 -1
  41. package/dist/commands/init.d.ts.map +1 -1
  42. package/dist/commands/init.js +8 -0
  43. package/dist/commands/init.js.map +1 -1
  44. package/dist/commands/lint.d.ts +27 -0
  45. package/dist/commands/lint.d.ts.map +1 -1
  46. package/dist/commands/lint.js +127 -20
  47. package/dist/commands/lint.js.map +1 -1
  48. package/dist/commands/list.d.ts +6 -0
  49. package/dist/commands/list.d.ts.map +1 -1
  50. package/dist/commands/list.js +216 -7
  51. package/dist/commands/list.js.map +1 -1
  52. package/dist/commands/log.d.ts +51 -0
  53. package/dist/commands/log.d.ts.map +1 -1
  54. package/dist/commands/log.js +113 -84
  55. package/dist/commands/log.js.map +1 -1
  56. package/dist/commands/mcp.d.ts +5 -2
  57. package/dist/commands/mcp.d.ts.map +1 -1
  58. package/dist/commands/mcp.js +44 -9
  59. package/dist/commands/mcp.js.map +1 -1
  60. package/dist/commands/memory-index.d.ts +34 -0
  61. package/dist/commands/memory-index.d.ts.map +1 -0
  62. package/dist/commands/memory-index.js +135 -0
  63. package/dist/commands/memory-index.js.map +1 -0
  64. package/dist/commands/merge-driver.d.ts +1 -15
  65. package/dist/commands/merge-driver.d.ts.map +1 -1
  66. package/dist/commands/merge-driver.js +8 -134
  67. package/dist/commands/merge-driver.js.map +1 -1
  68. package/dist/commands/migrate-tracked.d.ts +1 -1
  69. package/dist/commands/migrate-tracked.d.ts.map +1 -1
  70. package/dist/commands/migrate-tracked.js +21 -10
  71. package/dist/commands/migrate-tracked.js.map +1 -1
  72. package/dist/commands/patch.d.ts +23 -4
  73. package/dist/commands/patch.d.ts.map +1 -1
  74. package/dist/commands/patch.js +149 -91
  75. package/dist/commands/patch.js.map +1 -1
  76. package/dist/commands/plan.d.ts.map +1 -1
  77. package/dist/commands/plan.js +11 -5
  78. package/dist/commands/plan.js.map +1 -1
  79. package/dist/commands/schema.d.ts +12 -0
  80. package/dist/commands/schema.d.ts.map +1 -1
  81. package/dist/commands/schema.js +28 -10
  82. package/dist/commands/schema.js.map +1 -1
  83. package/dist/commands/search.d.ts +46 -12
  84. package/dist/commands/search.d.ts.map +1 -1
  85. package/dist/commands/search.js +89 -44
  86. package/dist/commands/search.js.map +1 -1
  87. package/dist/commands/show.d.ts.map +1 -1
  88. package/dist/commands/show.js +175 -10
  89. package/dist/commands/show.js.map +1 -1
  90. package/dist/commands/template.d.ts +2 -0
  91. package/dist/commands/template.d.ts.map +1 -1
  92. package/dist/commands/template.js +2 -1
  93. package/dist/commands/template.js.map +1 -1
  94. package/dist/commands/types.d.ts +31 -1
  95. package/dist/commands/types.d.ts.map +1 -1
  96. package/dist/commands/types.js +122 -22
  97. package/dist/commands/types.js.map +1 -1
  98. package/dist/commands/where.d.ts +20 -1
  99. package/dist/commands/where.d.ts.map +1 -1
  100. package/dist/commands/where.js +56 -6
  101. package/dist/commands/where.js.map +1 -1
  102. package/dist/hook.mjs +15 -0
  103. package/dist/hooks/session-start.d.ts +39 -0
  104. package/dist/hooks/session-start.d.ts.map +1 -0
  105. package/dist/hooks/session-start.js +181 -0
  106. package/dist/hooks/session-start.js.map +1 -0
  107. package/dist/lib/contractRunner.d.ts.map +1 -1
  108. package/dist/lib/contractRunner.js +8 -0
  109. package/dist/lib/contractRunner.js.map +1 -1
  110. package/dist/mcp/helpers.d.ts +29 -1
  111. package/dist/mcp/helpers.d.ts.map +1 -1
  112. package/dist/mcp/helpers.js +57 -2
  113. package/dist/mcp/helpers.js.map +1 -1
  114. package/dist/mcp/instructions.d.ts +5 -0
  115. package/dist/mcp/instructions.d.ts.map +1 -0
  116. package/dist/mcp/instructions.js +57 -0
  117. package/dist/mcp/instructions.js.map +1 -0
  118. package/dist/mcp/resources.d.ts +9 -0
  119. package/dist/mcp/resources.d.ts.map +1 -0
  120. package/dist/mcp/resources.js +29 -0
  121. package/dist/mcp/resources.js.map +1 -0
  122. package/dist/mcp/schemas.d.ts +600 -9
  123. package/dist/mcp/schemas.d.ts.map +1 -1
  124. package/dist/mcp/schemas.js +374 -12
  125. package/dist/mcp/schemas.js.map +1 -1
  126. package/dist/mcp/tools/adr_promote_tool.d.ts +7 -0
  127. package/dist/mcp/tools/adr_promote_tool.d.ts.map +1 -0
  128. package/dist/mcp/tools/adr_promote_tool.js +37 -0
  129. package/dist/mcp/tools/adr_promote_tool.js.map +1 -0
  130. package/dist/mcp/tools/board_tool.d.ts +7 -0
  131. package/dist/mcp/tools/board_tool.d.ts.map +1 -0
  132. package/dist/mcp/tools/board_tool.js +61 -0
  133. package/dist/mcp/tools/board_tool.js.map +1 -0
  134. package/dist/mcp/tools/brief_tool.d.ts.map +1 -1
  135. package/dist/mcp/tools/brief_tool.js +13 -5
  136. package/dist/mcp/tools/brief_tool.js.map +1 -1
  137. package/dist/mcp/tools/check_tool.d.ts +6 -0
  138. package/dist/mcp/tools/check_tool.d.ts.map +1 -0
  139. package/dist/mcp/tools/check_tool.js +54 -0
  140. package/dist/mcp/tools/check_tool.js.map +1 -0
  141. package/dist/mcp/tools/columns_tool.d.ts +7 -0
  142. package/dist/mcp/tools/columns_tool.d.ts.map +1 -0
  143. package/dist/mcp/tools/columns_tool.js +94 -0
  144. package/dist/mcp/tools/columns_tool.js.map +1 -0
  145. package/dist/mcp/tools/decide_tool.d.ts +91 -0
  146. package/dist/mcp/tools/decide_tool.d.ts.map +1 -0
  147. package/dist/mcp/tools/decide_tool.js +141 -0
  148. package/dist/mcp/tools/decide_tool.js.map +1 -0
  149. package/dist/mcp/tools/get_task_tool.d.ts.map +1 -1
  150. package/dist/mcp/tools/get_task_tool.js +62 -4
  151. package/dist/mcp/tools/get_task_tool.js.map +1 -1
  152. package/dist/mcp/tools/lint_tool.d.ts +7 -0
  153. package/dist/mcp/tools/lint_tool.d.ts.map +1 -0
  154. package/dist/mcp/tools/lint_tool.js +48 -0
  155. package/dist/mcp/tools/lint_tool.js.map +1 -0
  156. package/dist/mcp/tools/list_tasks_tool.d.ts.map +1 -1
  157. package/dist/mcp/tools/list_tasks_tool.js +132 -15
  158. package/dist/mcp/tools/list_tasks_tool.js.map +1 -1
  159. package/dist/mcp/tools/log_tool.d.ts +4 -0
  160. package/dist/mcp/tools/log_tool.d.ts.map +1 -0
  161. package/dist/mcp/tools/log_tool.js +52 -0
  162. package/dist/mcp/tools/log_tool.js.map +1 -0
  163. package/dist/mcp/tools/note_tool.d.ts +7 -0
  164. package/dist/mcp/tools/note_tool.d.ts.map +1 -0
  165. package/dist/mcp/tools/note_tool.js +39 -0
  166. package/dist/mcp/tools/note_tool.js.map +1 -0
  167. package/dist/mcp/tools/retire_tool.d.ts +4 -0
  168. package/dist/mcp/tools/retire_tool.d.ts.map +1 -0
  169. package/dist/mcp/tools/retire_tool.js +81 -0
  170. package/dist/mcp/tools/retire_tool.js.map +1 -0
  171. package/dist/mcp/tools/search_tool.d.ts.map +1 -1
  172. package/dist/mcp/tools/search_tool.js +36 -19
  173. package/dist/mcp/tools/search_tool.js.map +1 -1
  174. package/dist/mcp/tools/supersede_tool.d.ts +4 -0
  175. package/dist/mcp/tools/supersede_tool.d.ts.map +1 -0
  176. package/dist/mcp/tools/supersede_tool.js +72 -0
  177. package/dist/mcp/tools/supersede_tool.js.map +1 -0
  178. package/dist/mcp/tools/sync_tool.d.ts +9 -0
  179. package/dist/mcp/tools/sync_tool.d.ts.map +1 -0
  180. package/dist/mcp/tools/sync_tool.js +87 -0
  181. package/dist/mcp/tools/sync_tool.js.map +1 -0
  182. package/dist/mcp/tools/task_add_tool.d.ts.map +1 -1
  183. package/dist/mcp/tools/task_add_tool.js +39 -17
  184. package/dist/mcp/tools/task_add_tool.js.map +1 -1
  185. package/dist/mcp/tools/task_complete_tool.d.ts.map +1 -1
  186. package/dist/mcp/tools/task_complete_tool.js +3 -2
  187. package/dist/mcp/tools/task_complete_tool.js.map +1 -1
  188. package/dist/mcp/tools/task_patch_tool.d.ts.map +1 -1
  189. package/dist/mcp/tools/task_patch_tool.js +30 -5
  190. package/dist/mcp/tools/task_patch_tool.js.map +1 -1
  191. package/dist/mcp/tools/template_tool.d.ts +4 -0
  192. package/dist/mcp/tools/template_tool.d.ts.map +1 -0
  193. package/dist/mcp/tools/template_tool.js +70 -0
  194. package/dist/mcp/tools/template_tool.js.map +1 -0
  195. package/dist/mcp/tools/types_tool.d.ts +4 -0
  196. package/dist/mcp/tools/types_tool.d.ts.map +1 -0
  197. package/dist/mcp/tools/types_tool.js +61 -0
  198. package/dist/mcp/tools/types_tool.js.map +1 -0
  199. package/dist/mcp/tools/where_tool.d.ts +4 -0
  200. package/dist/mcp/tools/where_tool.d.ts.map +1 -0
  201. package/dist/mcp/tools/where_tool.js +73 -0
  202. package/dist/mcp/tools/where_tool.js.map +1 -0
  203. package/dist/schemas/board.json +29 -8
  204. package/dist/{tui-3Z7ZJV7M.mjs → tui-D6RMFL6X.mjs} +994 -315
  205. package/dist/utils/board-autosync.d.ts +1 -10
  206. package/dist/utils/board-autosync.d.ts.map +1 -1
  207. package/dist/utils/board-autosync.js +11 -29
  208. package/dist/utils/board-autosync.js.map +1 -1
  209. package/dist/utils/board-commit-hooks.d.ts +8 -0
  210. package/dist/utils/board-commit-hooks.d.ts.map +1 -1
  211. package/dist/utils/board-commit-hooks.js +45 -1
  212. package/dist/utils/board-commit-hooks.js.map +1 -1
  213. package/dist/utils/board-repo.d.ts +1 -119
  214. package/dist/utils/board-repo.d.ts.map +1 -1
  215. package/dist/utils/board-repo.js +43 -571
  216. package/dist/utils/board-repo.js.map +1 -1
  217. package/dist/utils/board-sync.d.ts +3 -123
  218. package/dist/utils/board-sync.d.ts.map +1 -1
  219. package/dist/utils/board-sync.js +34 -551
  220. package/dist/utils/board-sync.js.map +1 -1
  221. package/dist/utils/graph.d.ts +20 -0
  222. package/dist/utils/graph.d.ts.map +1 -0
  223. package/dist/utils/graph.js +61 -0
  224. package/dist/utils/graph.js.map +1 -0
  225. package/dist/utils/related.d.ts +21 -0
  226. package/dist/utils/related.d.ts.map +1 -0
  227. package/dist/utils/related.js +36 -0
  228. package/dist/utils/related.js.map +1 -0
  229. package/package.json +2 -2
  230. package/dist/tui/theme.d.ts +0 -98
  231. package/dist/tui/theme.d.ts.map +0 -1
  232. package/dist/tui/theme.js +0 -141
  233. package/dist/tui/theme.js.map +0 -1
@@ -13,6 +13,10 @@ export interface AddOptions {
13
13
  files?: string;
14
14
  type?: string;
15
15
  parent?: string;
16
+ /** Comma-separated IDs of tasks that come first. */
17
+ dependsOn?: string;
18
+ /** Comma-separated IDs of the decisions this work rests on. */
19
+ decisions?: string;
16
20
  child?: string | string[];
17
21
  withContract?: boolean;
18
22
  /** When true, created contract is status=ready instead of the default draft */
@@ -1 +1 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,iBAAiB,CAAC;AAY7D,eAAO,MAAM,gBAAgB,QA+BlB,CAAC;AAEZ,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAsDD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,GAAE,MAAsB,GAAG,SAAS,CAWzF"}
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,iBAAiB,CAAC;AAa7D,eAAO,MAAM,gBAAgB,QAwClB,CAAC;AAEZ,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAmDD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,GAAE,MAAsB,GAAG,SAAS,CAWzF"}
@@ -1,44 +1,10 @@
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
- })();
35
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
36
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
4
  };
38
5
  Object.defineProperty(exports, "__esModule", { value: true });
39
6
  exports.ADD_COMMAND_HELP = void 0;
40
7
  exports.addCommand = addCommand;
41
- const path = __importStar(require("path"));
42
8
  const core_1 = require("@brainfile/core");
43
9
  const chalk_1 = __importDefault(require("chalk"));
44
10
  const logger_1 = require("../utils/logger");
@@ -49,6 +15,7 @@ const v2_detect_1 = require("../utils/v2-detect");
49
15
  const v2_only_1 = require("../utils/v2-only");
50
16
  const core_3 = require("@brainfile/core");
51
17
  const command_lint_1 = require("../validation/command-lint");
18
+ const graph_1 = require("../utils/graph");
52
19
  exports.ADD_COMMAND_HELP = `
53
20
  Examples:
54
21
  brainfile add --title "Fix login bug" --column todo
@@ -70,8 +37,17 @@ Create a parent task and children in one shot:
70
37
  brainfile add -c todo -t "Auth epic" --type epic \
71
38
  --child "OAuth flow" --child "Session hardening"
72
39
 
73
- Attach to an existing parent:
74
- brainfile add -c todo -t "OAuth flow" --parent epic-1
40
+ Attach to an existing parent (the defaults: epic holds spec, plan and task;
41
+ spec holds plan and task; plan holds task; task holds task):
42
+ brainfile add -t "Token refresh" --type spec --parent epic-1
43
+ brainfile add -t "OAuth flow" --parent spec-1
44
+
45
+ Record a decision (no column, never completed) and work that rests on it:
46
+ brainfile add -t "Use SQLite for the index" --type decision
47
+ brainfile add -t "Build the index" --decisions decision-1
48
+
49
+ Types: epic, spec, plan, task (alias issue) and decision (alias adr) are built
50
+ in; see brainfile types for these and the board's own.
75
51
 
76
52
  Create a task from a template:
77
53
  brainfile template --list
@@ -81,19 +57,11 @@ Deliverable format:
81
57
  type:path:description
82
58
  type ∈ file | test | docs | design | research
83
59
  `.trimEnd();
84
- function findActiveTaskById(boardDir, taskId) {
85
- const direct = (0, core_1.readTaskFile)(path.join(boardDir, (0, core_1.taskFileName)(taskId)));
86
- if (direct && direct.task.id === taskId)
87
- return direct.task;
88
- const docs = (0, core_1.readTasksDir)(boardDir);
89
- const found = docs.find((doc) => doc.task.id === taskId);
90
- return found?.task || null;
91
- }
92
- function createV2TaskFile(dirs, input) {
60
+ function createV2TaskFile(dirs, types, input) {
93
61
  const result = (0, core_1.addTaskFile)(dirs.boardDir, {
94
62
  title: input.title,
95
63
  column: input.columnId,
96
- ...(input.type && input.type !== 'task' && { type: input.type }),
64
+ ...(input.type && { type: input.type }),
97
65
  priority: input.priority,
98
66
  tags: input.tags,
99
67
  assignee: input.assignee,
@@ -101,8 +69,10 @@ function createV2TaskFile(dirs, input) {
101
69
  relatedFiles: input.relatedFiles,
102
70
  subtasks: input.subtaskTitles?.map((t) => t.trim()).filter(Boolean),
103
71
  parentId: input.parentId,
72
+ dependsOn: input.dependsOn,
73
+ decisions: input.decisions,
104
74
  contract: input.contract,
105
- }, (0, v2_detect_1.composeBody)(input.description), dirs.logsDir);
75
+ }, (0, v2_detect_1.composeBody)(input.description), dirs.logsDir, { types });
106
76
  if (!result.success || !result.task) {
107
77
  throw (0, cli_error_1.operationFailed)(result.error || `Failed to create task: ${input.title}`);
108
78
  }
@@ -124,30 +94,44 @@ function addCommand(options, logger = logger_1.defaultLogger) {
124
94
  }
125
95
  function addCommandV2(options, filePath, logger) {
126
96
  const dirs = (0, v2_detect_1.ensureV2Dirs)(filePath);
127
- const boardFile = (0, core_3.readBoardConfig)(filePath);
128
- if (!boardFile) {
97
+ const boardGraph = (0, graph_1.readBoardGraph)(filePath);
98
+ const board = boardGraph.config;
99
+ if (!board) {
129
100
  throw (0, cli_error_1.operationFailed)(`Failed to parse brainfile: ${filePath}`);
130
101
  }
131
- const board = boardFile.config;
132
102
  const typeName = options.type || 'task';
133
103
  const typeValidation = (0, core_3.validateType)(board, typeName);
134
104
  if (!typeValidation.valid) {
135
105
  throw new cli_error_1.CLIError(typeValidation.error || `Invalid type: ${typeName}`);
136
106
  }
137
- // Find target column
138
- let targetColumn = board.columns.find(c => c.id === options.column);
139
- if (!targetColumn) {
107
+ const docType = (0, core_1.resolveDocType)(typeName, board.types);
108
+ const isDecision = docType.role === 'decision';
109
+ // Find target column. A decision has none (spec-12).
110
+ let targetColumn = isDecision ? undefined : board.columns.find(c => c.id === options.column);
111
+ if (!isDecision && !targetColumn) {
140
112
  targetColumn = board.columns.find(c => c.title.toLowerCase() === options.column.toLowerCase());
141
113
  }
142
- if (!targetColumn) {
114
+ if (!isDecision && !targetColumn) {
143
115
  const availableColumns = board.columns.map(col => `${col.id} (${col.title})`);
144
116
  throw (0, cli_error_1.columnNotFound)(options.column, availableColumns);
145
117
  }
146
- const parentId = options.parent?.trim();
147
- if (parentId) {
148
- const parentTask = findActiveTaskById(dirs.boardDir, parentId);
149
- if (!parentTask) {
150
- logger.warn(chalk_1.default.yellow(`Warning: parent task ${parentId} not found in board/. Creating task anyway.`));
118
+ const parentId = options.parent?.trim() || undefined;
119
+ const dependsOn = (0, graph_1.splitIds)(options.dependsOn);
120
+ const decisions = (0, graph_1.splitIds)(options.decisions);
121
+ (0, graph_1.checkLinks)(boardGraph, {
122
+ type: typeName,
123
+ ...(parentId && { parentId }),
124
+ ...(dependsOn.length > 0 && { dependsOn }),
125
+ ...(decisions.length > 0 && { decisions }),
126
+ }, logger);
127
+ const childTitles = (0, core_2.normalizeToArray)(options.child).map((title) => title.trim()).filter(Boolean);
128
+ if (childTitles.length > 0) {
129
+ const fit = (0, core_1.parentFit)('task', typeName, board.types);
130
+ if (!fit.fits) {
131
+ const message = `children of the new ${docType.name}: ${fit.reason}`;
132
+ if (board.strict === true)
133
+ throw new cli_error_1.CLIError(`${message} (refused on a strict board)`);
134
+ logger.warn(chalk_1.default.yellow(`Warning: ${message}`));
151
135
  }
152
136
  }
153
137
  // Build and attach contract if requested
@@ -175,9 +159,9 @@ function addCommandV2(options, filePath, logger) {
175
159
  throw (0, cli_error_1.validationError)(e.message);
176
160
  }
177
161
  }
178
- const parentTask = createV2TaskFile(dirs, {
162
+ const parentTask = createV2TaskFile(dirs, board.types, {
179
163
  title: options.title,
180
- columnId: targetColumn.id,
164
+ columnId: targetColumn?.id,
181
165
  type: options.type,
182
166
  description: options.description,
183
167
  priority: options.priority,
@@ -187,34 +171,46 @@ function addCommandV2(options, filePath, logger) {
187
171
  relatedFiles: options.files ? options.files.split(',').map((f) => f.trim()).filter(Boolean) : undefined,
188
172
  subtaskTitles: options.subtasks ? options.subtasks.split(',').map((title) => title.trim()) : undefined,
189
173
  parentId,
174
+ dependsOn,
175
+ decisions,
190
176
  contract,
191
177
  });
192
- const childTitles = (0, core_2.normalizeToArray)(options.child).map((title) => title.trim()).filter(Boolean);
193
178
  const createdChildren = [];
194
179
  for (const childTitle of childTitles) {
195
- const childTask = createV2TaskFile(dirs, {
180
+ const childTask = createV2TaskFile(dirs, board.types, {
196
181
  title: childTitle,
197
- columnId: targetColumn.id,
182
+ columnId: targetColumn?.id ?? board.columns[0]?.id,
198
183
  parentId: parentTask.id,
199
184
  });
200
185
  createdChildren.push(childTask);
201
186
  }
202
187
  // Success message
203
- logAddSuccess(options, parentTask.id, targetColumn.title, logger, createdChildren);
204
- return { success: true, taskId: parentTask.id, columnId: targetColumn.id };
188
+ logAddSuccess(options, parentTask, targetColumn?.title, logger, createdChildren);
189
+ return { success: true, taskId: parentTask.id, columnId: targetColumn?.id ?? '' };
205
190
  }
206
- function logAddSuccess(options, taskId, columnTitle, logger, createdChildren = []) {
207
- logger.log(chalk_1.default.green('Task added successfully!'));
191
+ function logAddSuccess(options, task, columnTitle, logger, createdChildren = []) {
192
+ logger.log(chalk_1.default.green(columnTitle === undefined ? 'Decision added successfully!' : 'Task added successfully!'));
208
193
  logger.log('');
209
- logger.log(chalk_1.default.gray(` ID: ${taskId}`));
194
+ logger.log(chalk_1.default.gray(` ID: ${task.id}`));
210
195
  logger.log(chalk_1.default.gray(` Title: ${options.title}`));
211
- logger.log(chalk_1.default.gray(` Column: ${columnTitle}`));
212
- if (options.type && options.type !== 'task') {
213
- logger.log(chalk_1.default.gray(` Type: ${options.type}`));
196
+ if (columnTitle !== undefined) {
197
+ logger.log(chalk_1.default.gray(` Column: ${columnTitle}`));
198
+ }
199
+ if (task.type && task.type !== 'task') {
200
+ logger.log(chalk_1.default.gray(` Type: ${task.type}`));
201
+ }
202
+ if (typeof task.status === 'string' && columnTitle === undefined) {
203
+ logger.log(chalk_1.default.gray(` Status: ${task.status}`));
214
204
  }
215
205
  if (options.parent) {
216
206
  logger.log(chalk_1.default.gray(` Parent: ${options.parent}`));
217
207
  }
208
+ if (task.dependsOn?.length) {
209
+ logger.log(chalk_1.default.gray(` Depends: ${task.dependsOn.join(', ')}`));
210
+ }
211
+ if (task.decisions?.length) {
212
+ logger.log(chalk_1.default.gray(` Rests on: ${task.decisions.join(', ')}`));
213
+ }
218
214
  if (options.description) {
219
215
  logger.log(chalk_1.default.gray(` Desc: ${options.description.substring(0, 50)}${options.description.length > 50 ? '...' : ''}`));
220
216
  }
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { type Logger } from '../utils/logger';
2
+ import { type BackupInfo, type MergeBoardsResult, type SettleResult } from '@brainfile/core/repo';
3
+ export interface BoardsOptions {
4
+ file?: string;
5
+ json?: boolean;
6
+ }
7
+ export declare function adoptCommand(options: BoardsOptions & {
8
+ ref: string;
9
+ }, logger?: Logger): SettleResult;
10
+ export declare function mergeBoardsCommand(options: BoardsOptions & {
11
+ ref: string;
12
+ }, logger?: Logger): MergeBoardsResult;
13
+ export interface BackupsOptions extends BoardsOptions {
14
+ action?: string;
15
+ name?: string;
16
+ }
17
+ export declare function backupsCommand(options: BackupsOptions, logger?: Logger): BackupInfo[] | SettleResult;
18
+ //# sourceMappingURL=boards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boards.d.ts","sourceRoot":"","sources":["../../src/commands/boards.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,iBAAiB,CAAC;AAI7D,OAAO,EACL,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAKlB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAsCD,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,GAAE,MAAsB,GAAG,YAAY,CAcnH;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,GAAE,MAAsB,GAAG,iBAAiB,CAwB9H;AAED,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,GAAE,MAAsB,GAAG,UAAU,EAAE,GAAG,YAAY,CA+BnH"}
@@ -0,0 +1,166 @@
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.adoptCommand = adoptCommand;
40
+ exports.mergeBoardsCommand = mergeBoardsCommand;
41
+ exports.backupsCommand = backupsCommand;
42
+ /**
43
+ * `brainfile adopt`, `brainfile merge-boards` and `brainfile backups`
44
+ * (spec-15): settle a repository that has two boards into one, with every
45
+ * board that is replaced saved first as a backup ref.
46
+ */
47
+ const fs = __importStar(require("fs"));
48
+ const path = __importStar(require("path"));
49
+ const chalk_1 = __importDefault(require("chalk"));
50
+ const logger_1 = require("../utils/logger");
51
+ const cli_error_1 = require("../utils/cli-error");
52
+ const brainfile_path_1 = require("../utils/brainfile-path");
53
+ const board_sync_1 = require("../utils/board-sync");
54
+ const repo_1 = require("@brainfile/core/repo");
55
+ function boardDir(file) {
56
+ const filePath = (0, brainfile_path_1.resolveCliBrainfilePath)(file);
57
+ if (!fs.existsSync(filePath))
58
+ throw (0, cli_error_1.fileNotFound)(filePath);
59
+ return path.dirname(filePath);
60
+ }
61
+ function shown(dir) {
62
+ const relative = path.relative(process.cwd(), dir);
63
+ return relative === '' ? '.' : relative.startsWith('..') ? dir : relative;
64
+ }
65
+ function run(action) {
66
+ try {
67
+ return action();
68
+ }
69
+ catch (error) {
70
+ if (error instanceof cli_error_1.CLIError)
71
+ throw error;
72
+ throw new cli_error_1.CLIError(error instanceof Error ? error.message : String(error));
73
+ }
74
+ }
75
+ /** What happened besides the headline: backups, removed checkouts, the code-branch commit, next steps. */
76
+ function printAftermath(result, logger) {
77
+ const say = (text) => logger.log(` ${text}`);
78
+ if (result.backups.length > 0) {
79
+ say(chalk_1.default.gray(`Saved first: ${result.backups.join(', ')}. Undo with brainfile backups restore <name>.`));
80
+ }
81
+ for (const removed of result.removedCheckouts) {
82
+ say(chalk_1.default.gray(`Removed the other checkout of the board at ${removed}; everything in it is on the branch.`));
83
+ }
84
+ if (result.untracked) {
85
+ say(`${result.untracked.branch} stopped tracking .brainfile/ and ignores it, in one commit (${result.untracked.commit.slice(0, 7)}).`);
86
+ say(chalk_1.default.gray(`Push it like any commit: git push (a pull request, if ${result.untracked.branch} is protected).`));
87
+ }
88
+ if ((0, board_sync_1.boardRemote)(result.dotDir))
89
+ say(chalk_1.default.gray('Share it: brainfile sync'));
90
+ }
91
+ function adoptCommand(options, logger = logger_1.defaultLogger) {
92
+ const dotDir = boardDir(options.file);
93
+ const result = run(() => (0, repo_1.adoptBoard)(dotDir, options.ref));
94
+ if (options.json) {
95
+ logger.log(JSON.stringify(result, null, 2));
96
+ return result;
97
+ }
98
+ if (result.unchanged) {
99
+ logger.log(chalk_1.default.green(`Already one board: ${result.source.label}, at ${shown(result.dotDir)}/.`));
100
+ return result;
101
+ }
102
+ logger.log(chalk_1.default.green(`Adopted ${result.source.label}: one board now, at ${shown(result.dotDir)}/.`));
103
+ printAftermath(result, logger);
104
+ return result;
105
+ }
106
+ function mergeBoardsCommand(options, logger = logger_1.defaultLogger) {
107
+ const dotDir = boardDir(options.file);
108
+ const result = run(() => (0, repo_1.mergeBoards)(dotDir, options.ref));
109
+ if (options.json) {
110
+ logger.log(JSON.stringify(result, null, 2));
111
+ return result;
112
+ }
113
+ const other = result.source.label;
114
+ if (result.adopted === 'other') {
115
+ logger.log(chalk_1.default.green(`${other[0].toUpperCase()}${other.slice(1)} already had everything this board had, so it was adopted as it is.`));
116
+ }
117
+ else if (result.adopted === 'this') {
118
+ logger.log(chalk_1.default.green(`This board already had everything ${other} had, so it was kept as it is.`));
119
+ }
120
+ else {
121
+ logger.log(chalk_1.default.green(`Merged ${other} into this board, document by document.`));
122
+ }
123
+ logger.log(` One board now, at ${shown(result.dotDir)}/.`);
124
+ for (const r of result.renumbered) {
125
+ logger.log(` ${r.from} was two different documents; ${r.side === 'other' ? `${other}'s` : "this board's"} "${r.title}" is now ${chalk_1.default.bold(r.to)} (references to it were rewritten).`);
126
+ }
127
+ if (result.keptOurs.length > 0) {
128
+ logger.log(chalk_1.default.gray(` Both had different versions of ${result.keptOurs.join(', ')}; this board's were kept (the other's are in the backup).`));
129
+ }
130
+ printAftermath(result, logger);
131
+ return result;
132
+ }
133
+ function backupsCommand(options, logger = logger_1.defaultLogger) {
134
+ const dotDir = boardDir(options.file);
135
+ const action = options.action ?? 'list';
136
+ if (action === 'restore') {
137
+ if (!options.name)
138
+ throw new cli_error_1.CLIError('Name the backup to restore.', undefined, 'brainfile backups lists them.');
139
+ const result = run(() => (0, repo_1.restoreBackup)(dotDir, options.name));
140
+ if (options.json) {
141
+ logger.log(JSON.stringify(result, null, 2));
142
+ return result;
143
+ }
144
+ logger.log(chalk_1.default.green(`Restored ${result.source.label}: one board, at ${shown(result.dotDir)}/.`));
145
+ printAftermath(result, logger);
146
+ return result;
147
+ }
148
+ if (action !== 'list')
149
+ throw new cli_error_1.CLIError(`Unknown action '${action}'.`, undefined, 'Use: brainfile backups, or brainfile backups restore <name>');
150
+ const backups = run(() => (0, repo_1.listBackups)(dotDir));
151
+ if (options.json) {
152
+ logger.log(JSON.stringify(backups, null, 2));
153
+ return backups;
154
+ }
155
+ if (backups.length === 0) {
156
+ logger.log('No backups. adopt, merge-boards and backups restore save one before they replace a board.');
157
+ return backups;
158
+ }
159
+ const width = Math.max(...backups.map((b) => b.name.length));
160
+ for (const b of backups) {
161
+ logger.log(`${chalk_1.default.bold(b.name.padEnd(width))} ${String(b.docs).padStart(3)} docs ${chalk_1.default.gray(b.note)}`);
162
+ }
163
+ logger.log(chalk_1.default.gray('\nKept on this machine as refs/brainfile/backups/<name>. Put one back: brainfile backups restore <name>'));
164
+ return backups;
165
+ }
166
+ //# sourceMappingURL=boards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boards.js","sourceRoot":"","sources":["../../src/commands/boards.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,24 @@
1
1
  /**
2
- * Brief command — per-agent "what changed that I should care about?".
2
+ * Brief command: the session-start block (spec-11, recoil's `wake`).
3
3
  *
4
- * brainfile brief --agent codex Delta since this agent's last brief
5
- * brainfile brief --agent codex --peek Same, without advancing the checkpoint
6
- * brainfile brief --agent codex --json Machine-readable envelope
4
+ * brainfile brief --agent codex Budgeted block (~1,600 chars)
5
+ * brainfile brief --agent codex --max-chars 0 Everything
6
+ * brainfile brief --agent codex --peek Same, without advancing the checkpoint
7
+ * brainfile brief --agent codex --json Machine-readable envelope
7
8
  *
8
- * The first brief for an agent is a full orientation (board rules, assigned
9
- * tasks, latest notes, recent completions). Every later brief is a delta.
9
+ * The block has lanes: heads up (work resting on a superseded decision,
10
+ * decisions whose predicates broke), current decisions, your tasks (or the
11
+ * work in flight), what changed since this agent's checkpoint, and the docs
12
+ * that bear on the tasks (from the local index, when there is one). The
13
+ * SessionStart hook injects the same block.
10
14
  *
11
- * Rendering is plain chalk, matching the rest of the non-TUI command surface.
12
- * It borrows only the dependency-free glyph vocabulary from the TUI theme so
13
- * the v3 design language stays consistent; no TUI file is modified.
15
+ * `--json` keeps the checkpoint lanes (`lanes`: a first brief's orientation,
16
+ * later the delta) and adds the block's `sections`, `text`, `maxChars` and
17
+ * `truncated`.
14
18
  *
15
19
  * @packageDocumentation
16
20
  */
17
- import { type BriefResult } from '@brainfile/core';
21
+ import { type ComposedBrief } from '@brainfile/core/memory';
18
22
  import { type Logger } from '../utils/logger';
19
23
  export interface BriefOptions {
20
24
  file?: string;
@@ -22,10 +26,12 @@ export interface BriefOptions {
22
26
  peek?: boolean;
23
27
  offline?: boolean;
24
28
  json?: boolean;
29
+ /** Character budget for the block (default 1,600; 0 for no limit). */
30
+ maxChars?: string | number;
25
31
  }
26
32
  /** `--json` envelope version. Bump only on a breaking payload change. */
27
33
  export declare const BRIEF_JSON_VERSION = "0.1";
28
- export interface BriefCommandResult extends BriefResult {
34
+ export interface BriefCommandResult extends ComposedBrief {
29
35
  peek: boolean;
30
36
  }
31
37
  export declare function briefCommand(options: BriefOptions, logger?: Logger): BriefCommandResult | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"brief.d.ts","sourceRoot":"","sources":["../../src/commands/brief.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,iBAAiB,CAAC;AAO7D,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,yEAAyE;AACzE,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAExC,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,YAAY,EACrB,MAAM,GAAE,MAAsB,GAC7B,kBAAkB,GAAG,SAAS,CAkChC"}
1
+ {"version":3,"file":"brief.d.ts","sourceRoot":"","sources":["../../src/commands/brief.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAQH,OAAO,EAAyC,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEnG,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,iBAAiB,CAAC;AAO7D,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B;AAED,yEAAyE;AACzE,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAExC,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,YAAY,EACrB,MAAM,GAAE,MAAsB,GAC7B,kBAAkB,GAAG,SAAS,CAkChC"}