brainfile 0.18.0 → 0.19.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 (245) hide show
  1. package/README.md +4 -4
  2. package/dist/__tests__/helpers/mcp.d.ts +34 -0
  3. package/dist/__tests__/helpers/mcp.d.ts.map +1 -0
  4. package/dist/__tests__/helpers/mcp.js +37 -0
  5. package/dist/__tests__/helpers/mcp.js.map +1 -0
  6. package/dist/chunk-I5SJHUZK.mjs +52 -0
  7. package/dist/chunk-YTFLC673.mjs +12089 -0
  8. package/dist/cli.js +8 -479
  9. package/dist/cli.mjs +41194 -0
  10. package/dist/commands/add.d.ts.map +1 -1
  11. package/dist/commands/add.js +28 -37
  12. package/dist/commands/add.js.map +1 -1
  13. package/dist/commands/archive.d.ts +3 -2
  14. package/dist/commands/archive.d.ts.map +1 -1
  15. package/dist/commands/archive.js +16 -205
  16. package/dist/commands/archive.js.map +1 -1
  17. package/dist/commands/complete.d.ts +0 -4
  18. package/dist/commands/complete.d.ts.map +1 -1
  19. package/dist/commands/complete.js +14 -168
  20. package/dist/commands/complete.js.map +1 -1
  21. package/dist/commands/contract.d.ts.map +1 -1
  22. package/dist/commands/contract.js +66 -331
  23. package/dist/commands/contract.js.map +1 -1
  24. package/dist/commands/delete.d.ts.map +1 -1
  25. package/dist/commands/delete.js +13 -55
  26. package/dist/commands/delete.js.map +1 -1
  27. package/dist/commands/init.d.ts.map +1 -1
  28. package/dist/commands/init.js +3 -2
  29. package/dist/commands/init.js.map +1 -1
  30. package/dist/commands/list.d.ts.map +1 -1
  31. package/dist/commands/list.js +3 -54
  32. package/dist/commands/list.js.map +1 -1
  33. package/dist/commands/log.js +2 -8
  34. package/dist/commands/log.js.map +1 -1
  35. package/dist/commands/mcp.d.ts.map +1 -1
  36. package/dist/commands/mcp.js +22 -17
  37. package/dist/commands/mcp.js.map +1 -1
  38. package/dist/commands/migrate.d.ts.map +1 -1
  39. package/dist/commands/migrate.js +4 -3
  40. package/dist/commands/migrate.js.map +1 -1
  41. package/dist/commands/move.d.ts.map +1 -1
  42. package/dist/commands/move.js +31 -126
  43. package/dist/commands/move.js.map +1 -1
  44. package/dist/commands/patch.d.ts.map +1 -1
  45. package/dist/commands/patch.js +22 -92
  46. package/dist/commands/patch.js.map +1 -1
  47. package/dist/commands/plan.d.ts +61 -0
  48. package/dist/commands/plan.d.ts.map +1 -0
  49. package/dist/commands/plan.js +205 -0
  50. package/dist/commands/plan.js.map +1 -0
  51. package/dist/commands/search.d.ts.map +1 -1
  52. package/dist/commands/search.js +20 -146
  53. package/dist/commands/search.js.map +1 -1
  54. package/dist/commands/show.d.ts.map +1 -1
  55. package/dist/commands/show.js +5 -126
  56. package/dist/commands/show.js.map +1 -1
  57. package/dist/commands/subtask.d.ts.map +1 -1
  58. package/dist/commands/subtask.js +19 -135
  59. package/dist/commands/subtask.js.map +1 -1
  60. package/dist/commands/types.d.ts +2 -2
  61. package/dist/commands/types.d.ts.map +1 -1
  62. package/dist/commands/types.js +8 -30
  63. package/dist/commands/types.js.map +1 -1
  64. package/dist/devtools-NE5M3KPM.mjs +92 -0
  65. package/dist/lib/contractRunner.d.ts.map +1 -1
  66. package/dist/lib/contractRunner.js +19 -205
  67. package/dist/lib/contractRunner.js.map +1 -1
  68. package/dist/mcp/helpers.d.ts +11 -16
  69. package/dist/mcp/helpers.d.ts.map +1 -1
  70. package/dist/mcp/helpers.js +9 -46
  71. package/dist/mcp/helpers.js.map +1 -1
  72. package/dist/mcp/tools/contract_tool.d.ts +1 -1
  73. package/dist/mcp/tools/contract_tool.d.ts.map +1 -1
  74. package/dist/mcp/tools/contract_tool.js +23 -175
  75. package/dist/mcp/tools/contract_tool.js.map +1 -1
  76. package/dist/mcp/tools/get_task_tool.d.ts +1 -1
  77. package/dist/mcp/tools/get_task_tool.d.ts.map +1 -1
  78. package/dist/mcp/tools/get_task_tool.js +15 -34
  79. package/dist/mcp/tools/get_task_tool.js.map +1 -1
  80. package/dist/mcp/tools/list_tasks_tool.d.ts +1 -1
  81. package/dist/mcp/tools/list_tasks_tool.d.ts.map +1 -1
  82. package/dist/mcp/tools/list_tasks_tool.js +11 -48
  83. package/dist/mcp/tools/list_tasks_tool.js.map +1 -1
  84. package/dist/mcp/tools/search_tool.d.ts +1 -1
  85. package/dist/mcp/tools/search_tool.d.ts.map +1 -1
  86. package/dist/mcp/tools/search_tool.js +17 -98
  87. package/dist/mcp/tools/search_tool.js.map +1 -1
  88. package/dist/mcp/tools/subtask_tool.d.ts +1 -1
  89. package/dist/mcp/tools/subtask_tool.d.ts.map +1 -1
  90. package/dist/mcp/tools/subtask_tool.js +49 -224
  91. package/dist/mcp/tools/subtask_tool.js.map +1 -1
  92. package/dist/mcp/tools/task_add_tool.d.ts +1 -1
  93. package/dist/mcp/tools/task_add_tool.d.ts.map +1 -1
  94. package/dist/mcp/tools/task_add_tool.js +58 -154
  95. package/dist/mcp/tools/task_add_tool.js.map +1 -1
  96. package/dist/mcp/tools/task_complete_tool.d.ts +1 -1
  97. package/dist/mcp/tools/task_complete_tool.d.ts.map +1 -1
  98. package/dist/mcp/tools/task_complete_tool.js +28 -124
  99. package/dist/mcp/tools/task_complete_tool.js.map +1 -1
  100. package/dist/mcp/tools/task_delete_tool.d.ts +1 -1
  101. package/dist/mcp/tools/task_delete_tool.d.ts.map +1 -1
  102. package/dist/mcp/tools/task_delete_tool.js +14 -33
  103. package/dist/mcp/tools/task_delete_tool.js.map +1 -1
  104. package/dist/mcp/tools/task_move_tool.d.ts +1 -1
  105. package/dist/mcp/tools/task_move_tool.d.ts.map +1 -1
  106. package/dist/mcp/tools/task_move_tool.js +44 -150
  107. package/dist/mcp/tools/task_move_tool.js.map +1 -1
  108. package/dist/mcp/tools/task_patch_tool.d.ts +1 -1
  109. package/dist/mcp/tools/task_patch_tool.d.ts.map +1 -1
  110. package/dist/mcp/tools/task_patch_tool.js +37 -113
  111. package/dist/mcp/tools/task_patch_tool.js.map +1 -1
  112. package/dist/open-ZGSQIGEH.mjs +542 -0
  113. package/dist/tui-P56H4X7N.mjs +23715 -0
  114. package/dist/utils/dot-brainfile.d.ts +0 -4
  115. package/dist/utils/dot-brainfile.d.ts.map +1 -1
  116. package/dist/utils/dot-brainfile.js +0 -17
  117. package/dist/utils/dot-brainfile.js.map +1 -1
  118. package/dist/utils/errorHandler.d.ts +7 -11
  119. package/dist/utils/errorHandler.d.ts.map +1 -1
  120. package/dist/utils/errorHandler.js +8 -19
  121. package/dist/utils/errorHandler.js.map +1 -1
  122. package/package.json +24 -16
  123. package/dist/cli.d.ts +0 -3
  124. package/dist/cli.d.ts.map +0 -1
  125. package/dist/cli.js.map +0 -1
  126. package/dist/commands/tui.d.ts +0 -6
  127. package/dist/commands/tui.d.ts.map +0 -1
  128. package/dist/commands/tui.js +0 -79
  129. package/dist/commands/tui.js.map +0 -1
  130. package/dist/tui/BrainfileTUI.d.ts +0 -4
  131. package/dist/tui/BrainfileTUI.d.ts.map +0 -1
  132. package/dist/tui/BrainfileTUI.js +0 -272
  133. package/dist/tui/BrainfileTUI.js.map +0 -1
  134. package/dist/tui/actions.d.ts +0 -84
  135. package/dist/tui/actions.d.ts.map +0 -1
  136. package/dist/tui/actions.js +0 -1251
  137. package/dist/tui/actions.js.map +0 -1
  138. package/dist/tui/components/ColumnTabs.d.ts +0 -9
  139. package/dist/tui/components/ColumnTabs.d.ts.map +0 -1
  140. package/dist/tui/components/ColumnTabs.js +0 -34
  141. package/dist/tui/components/ColumnTabs.js.map +0 -1
  142. package/dist/tui/components/Header.d.ts +0 -15
  143. package/dist/tui/components/Header.d.ts.map +0 -1
  144. package/dist/tui/components/Header.js +0 -48
  145. package/dist/tui/components/Header.js.map +0 -1
  146. package/dist/tui/components/HelpOverlay.d.ts +0 -9
  147. package/dist/tui/components/HelpOverlay.d.ts.map +0 -1
  148. package/dist/tui/components/HelpOverlay.js +0 -116
  149. package/dist/tui/components/HelpOverlay.js.map +0 -1
  150. package/dist/tui/components/LogsPanel.d.ts +0 -16
  151. package/dist/tui/components/LogsPanel.d.ts.map +0 -1
  152. package/dist/tui/components/LogsPanel.js +0 -115
  153. package/dist/tui/components/LogsPanel.js.map +0 -1
  154. package/dist/tui/components/MainPanelTabs.d.ts +0 -10
  155. package/dist/tui/components/MainPanelTabs.d.ts.map +0 -1
  156. package/dist/tui/components/MainPanelTabs.js +0 -56
  157. package/dist/tui/components/MainPanelTabs.js.map +0 -1
  158. package/dist/tui/components/ManualBorder.d.ts +0 -42
  159. package/dist/tui/components/ManualBorder.d.ts.map +0 -1
  160. package/dist/tui/components/ManualBorder.js +0 -56
  161. package/dist/tui/components/ManualBorder.js.map +0 -1
  162. package/dist/tui/components/Overlays.d.ts +0 -41
  163. package/dist/tui/components/Overlays.d.ts.map +0 -1
  164. package/dist/tui/components/Overlays.js +0 -127
  165. package/dist/tui/components/Overlays.js.map +0 -1
  166. package/dist/tui/components/ProgressBar.d.ts +0 -8
  167. package/dist/tui/components/ProgressBar.d.ts.map +0 -1
  168. package/dist/tui/components/ProgressBar.js +0 -35
  169. package/dist/tui/components/ProgressBar.js.map +0 -1
  170. package/dist/tui/components/RulesPanel.d.ts +0 -25
  171. package/dist/tui/components/RulesPanel.d.ts.map +0 -1
  172. package/dist/tui/components/RulesPanel.js +0 -139
  173. package/dist/tui/components/RulesPanel.js.map +0 -1
  174. package/dist/tui/components/SearchBar.d.ts +0 -8
  175. package/dist/tui/components/SearchBar.d.ts.map +0 -1
  176. package/dist/tui/components/SearchBar.js +0 -38
  177. package/dist/tui/components/SearchBar.js.map +0 -1
  178. package/dist/tui/components/StackedTaskList.d.ts +0 -27
  179. package/dist/tui/components/StackedTaskList.d.ts.map +0 -1
  180. package/dist/tui/components/StackedTaskList.js +0 -120
  181. package/dist/tui/components/StackedTaskList.js.map +0 -1
  182. package/dist/tui/components/StatusBar.d.ts +0 -14
  183. package/dist/tui/components/StatusBar.d.ts.map +0 -1
  184. package/dist/tui/components/StatusBar.js +0 -42
  185. package/dist/tui/components/StatusBar.js.map +0 -1
  186. package/dist/tui/components/TaskCard.d.ts +0 -25
  187. package/dist/tui/components/TaskCard.d.ts.map +0 -1
  188. package/dist/tui/components/TaskCard.js +0 -221
  189. package/dist/tui/components/TaskCard.js.map +0 -1
  190. package/dist/tui/components/TaskCardMeasure.d.ts +0 -31
  191. package/dist/tui/components/TaskCardMeasure.d.ts.map +0 -1
  192. package/dist/tui/components/TaskCardMeasure.js +0 -133
  193. package/dist/tui/components/TaskCardMeasure.js.map +0 -1
  194. package/dist/tui/components/TaskDetail.d.ts +0 -13
  195. package/dist/tui/components/TaskDetail.d.ts.map +0 -1
  196. package/dist/tui/components/TaskDetail.js +0 -64
  197. package/dist/tui/components/TaskDetail.js.map +0 -1
  198. package/dist/tui/components/TaskList.d.ts +0 -12
  199. package/dist/tui/components/TaskList.d.ts.map +0 -1
  200. package/dist/tui/components/TaskList.js +0 -75
  201. package/dist/tui/components/TaskList.js.map +0 -1
  202. package/dist/tui/components/index.d.ts +0 -31
  203. package/dist/tui/components/index.d.ts.map +0 -1
  204. package/dist/tui/components/index.js +0 -43
  205. package/dist/tui/components/index.js.map +0 -1
  206. package/dist/tui/hooks/index.d.ts +0 -3
  207. package/dist/tui/hooks/index.d.ts.map +0 -1
  208. package/dist/tui/hooks/index.js +0 -8
  209. package/dist/tui/hooks/index.js.map +0 -1
  210. package/dist/tui/hooks/useBrainfileLoader.d.ts +0 -5
  211. package/dist/tui/hooks/useBrainfileLoader.d.ts.map +0 -1
  212. package/dist/tui/hooks/useBrainfileLoader.js +0 -237
  213. package/dist/tui/hooks/useBrainfileLoader.js.map +0 -1
  214. package/dist/tui/hooks/useKeyboardNavigation.d.ts +0 -20
  215. package/dist/tui/hooks/useKeyboardNavigation.d.ts.map +0 -1
  216. package/dist/tui/hooks/useKeyboardNavigation.js +0 -806
  217. package/dist/tui/hooks/useKeyboardNavigation.js.map +0 -1
  218. package/dist/tui/index.d.ts +0 -10
  219. package/dist/tui/index.d.ts.map +0 -1
  220. package/dist/tui/index.js +0 -38
  221. package/dist/tui/index.js.map +0 -1
  222. package/dist/tui/theme.d.ts +0 -119
  223. package/dist/tui/theme.d.ts.map +0 -1
  224. package/dist/tui/theme.js +0 -138
  225. package/dist/tui/theme.js.map +0 -1
  226. package/dist/tui/types.d.ts +0 -53
  227. package/dist/tui/types.d.ts.map +0 -1
  228. package/dist/tui/types.js +0 -12
  229. package/dist/tui/types.js.map +0 -1
  230. package/dist/tui/utils.d.ts +0 -24
  231. package/dist/tui/utils.d.ts.map +0 -1
  232. package/dist/tui/utils.js +0 -161
  233. package/dist/tui/utils.js.map +0 -1
  234. package/dist/utils/board-types.d.ts +0 -13
  235. package/dist/utils/board-types.d.ts.map +0 -1
  236. package/dist/utils/board-types.js +0 -7
  237. package/dist/utils/board-types.js.map +0 -1
  238. package/dist/utils/contractSpec.d.ts +0 -13
  239. package/dist/utils/contractSpec.d.ts.map +0 -1
  240. package/dist/utils/contractSpec.js +0 -61
  241. package/dist/utils/contractSpec.js.map +0 -1
  242. package/dist/utils/strict-validation.d.ts +0 -8
  243. package/dist/utils/strict-validation.d.ts.map +0 -1
  244. package/dist/utils/strict-validation.js +0 -41
  245. package/dist/utils/strict-validation.js.map +0 -1
@@ -1,133 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.wrapText = wrapText;
4
- exports.safeTruncate = safeTruncate;
5
- exports.measureTaskCard = measureTaskCard;
6
- exports.getTaskCardHeight = getTaskCardHeight;
7
- /**
8
- * Wrap text to a maximum width, returning an array of lines.
9
- * Each line is guaranteed to fit within maxWidth characters.
10
- */
11
- function wrapText(text, maxWidth) {
12
- if (!text || maxWidth <= 0)
13
- return [];
14
- const words = text.split(/\s+/);
15
- const lines = [];
16
- let currentLine = '';
17
- for (const word of words) {
18
- if (word.length > maxWidth) {
19
- // Word is longer than line - split it
20
- if (currentLine) {
21
- lines.push(currentLine);
22
- currentLine = '';
23
- }
24
- for (let i = 0; i < word.length; i += maxWidth) {
25
- lines.push(word.slice(i, i + maxWidth));
26
- }
27
- }
28
- else if (currentLine.length + 1 + word.length <= maxWidth) {
29
- // Word fits on current line
30
- currentLine = currentLine ? `${currentLine} ${word}` : word;
31
- }
32
- else {
33
- // Start new line
34
- if (currentLine)
35
- lines.push(currentLine);
36
- currentLine = word;
37
- }
38
- }
39
- if (currentLine)
40
- lines.push(currentLine);
41
- return lines.length > 0 ? lines : [''];
42
- }
43
- /**
44
- * Safe truncation that always returns a non-empty string.
45
- * Ink requires non-empty strings to avoid rendering errors.
46
- */
47
- function safeTruncate(text, maxWidth) {
48
- if (!text)
49
- return ' ';
50
- if (maxWidth <= 0)
51
- return ' ';
52
- if (maxWidth <= 3)
53
- return text.slice(0, maxWidth);
54
- if (text.length <= maxWidth)
55
- return text;
56
- return text.slice(0, maxWidth - 1) + '…';
57
- }
58
- /**
59
- * Calculate exact height dimensions for a TaskCard.
60
- */
61
- function measureTaskCard(task, contentWidth, allTasks = []) {
62
- // Collapsed is ALWAYS 3 lines (2 content + 1 margin)
63
- const collapsed = 3;
64
- // Expanded builds on top of collapsed base
65
- let expanded = 3;
66
- // marginTop before expanded content
67
- expanded += 1;
68
- // Description section (if present)
69
- if (task.description) {
70
- const descLines = wrapText(task.description, contentWidth - 4);
71
- expanded += Math.min(descLines.length, 3);
72
- if (descLines.length > 3) {
73
- expanded += 1; // "…" overflow indicator
74
- }
75
- }
76
- // Subtasks section (if present)
77
- if (task.subtasks && task.subtasks.length > 0) {
78
- if (task.description) {
79
- expanded += 1; // marginTop={1} only if description present
80
- }
81
- expanded += Math.min(task.subtasks.length, 5);
82
- if (task.subtasks.length > 5) {
83
- expanded += 1; // "+N more" line
84
- }
85
- }
86
- // Related files section (if present)
87
- if (task.relatedFiles && task.relatedFiles.length > 0) {
88
- expanded += 1; // marginTop={1}
89
- expanded += Math.min(task.relatedFiles.length, 3);
90
- if (task.relatedFiles.length > 3) {
91
- expanded += 1; // "+N more" line
92
- }
93
- }
94
- const hasPreviousSections = Boolean(task.description) ||
95
- Boolean(task.subtasks && task.subtasks.length > 0) ||
96
- Boolean(task.relatedFiles && task.relatedFiles.length > 0);
97
- const childrenCount = allTasks.filter(t => {
98
- const parentId = t.parentId;
99
- return parentId === task.id && t.id !== task.id;
100
- }).length;
101
- const isAdr = (task.type || 'task').toLowerCase() === 'adr';
102
- const hasAdrStatus = Boolean(task.status) && isAdr;
103
- const hasContract = Boolean(task.contract);
104
- const parentId = task.parentId;
105
- const hasDetailBlock = Boolean(parentId) || childrenCount > 0 || hasAdrStatus || hasContract;
106
- if (hasDetailBlock) {
107
- if (hasPreviousSections) {
108
- expanded += 1; // marginTop before TaskDetail block
109
- }
110
- if (parentId)
111
- expanded += 1; // Parent row
112
- if (childrenCount > 0)
113
- expanded += 1; // Children row
114
- if (hasAdrStatus)
115
- expanded += 1; // ADR status row
116
- if (hasContract) {
117
- if (parentId || childrenCount > 0 || hasAdrStatus) {
118
- expanded += 1; // spacer before Contract header
119
- }
120
- expanded += 3; // Contract header + status + deliverables
121
- }
122
- }
123
- return { collapsed, expanded };
124
- }
125
- /**
126
- * Get the height for a task card based on expanded state.
127
- * Convenience wrapper for TaskList viewport calculations.
128
- */
129
- function getTaskCardHeight(task, isExpanded, contentWidth, allTasks = []) {
130
- const dims = measureTaskCard(task, contentWidth, allTasks);
131
- return isExpanded ? dims.expanded : dims.collapsed;
132
- }
133
- //# sourceMappingURL=TaskCardMeasure.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TaskCardMeasure.js","sourceRoot":"","sources":["../../../src/tui/components/TaskCardMeasure.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import React from 'react';
2
- import type { Task } from '@brainfile/core';
3
- export interface TaskDetailProps {
4
- task: Task;
5
- allTasks?: Task[];
6
- /** Optional top spacing before the detail block */
7
- marginTop?: number;
8
- }
9
- /**
10
- * TaskDetail - detail sections shown when a task card is expanded.
11
- */
12
- export declare function TaskDetail({ task, allTasks, marginTop }: TaskDetailProps): React.JSX.Element | null;
13
- //# sourceMappingURL=TaskDetail.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TaskDetail.d.ts","sourceRoot":"","sources":["../../../src/tui/components/TaskDetail.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAgB5C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;IAClB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,QAAa,EAAE,SAAa,EAAE,EAAE,eAAe,4BA2DjF"}
@@ -1,64 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TaskDetail = TaskDetail;
7
- const react_1 = __importDefault(require("react"));
8
- const ink_1 = require("ink");
9
- const theme_js_1 = require("../theme.js");
10
- function getContractStatusColor(status) {
11
- switch (status) {
12
- case 'done':
13
- return theme_js_1.PALETTE.success;
14
- case 'in_progress':
15
- return theme_js_1.PALETTE.warning;
16
- case 'failed':
17
- return theme_js_1.PALETTE.error;
18
- default:
19
- return theme_js_1.PALETTE.textMuted;
20
- }
21
- }
22
- /**
23
- * TaskDetail - detail sections shown when a task card is expanded.
24
- */
25
- function TaskDetail({ task, allTasks = [], marginTop = 0 }) {
26
- const parentId = task.parentId;
27
- const children = allTasks.filter(t => {
28
- const candidateParentId = t.parentId;
29
- return candidateParentId === task.id && t.id !== task.id;
30
- });
31
- const isAdr = (task.type || 'task').toLowerCase() === 'adr';
32
- const adrStatus = isAdr ? task.status : undefined;
33
- const hasParentOrChildren = Boolean(parentId) || children.length > 0;
34
- const hasContract = Boolean(task.contract);
35
- const hasAdrStatus = Boolean(adrStatus);
36
- if (!hasParentOrChildren && !hasContract && !hasAdrStatus) {
37
- return null;
38
- }
39
- const status = task.contract?.status;
40
- const deliverablesCount = task.contract?.deliverables?.length ?? 0;
41
- return (react_1.default.createElement(ink_1.Box, { flexDirection: "column", marginTop: marginTop },
42
- parentId && (react_1.default.createElement(ink_1.Text, null,
43
- react_1.default.createElement(ink_1.Text, { color: theme_js_1.PALETTE.textDim }, "Parent: "),
44
- react_1.default.createElement(ink_1.Text, { color: theme_js_1.PALETTE.textSecondary }, parentId))),
45
- children.length > 0 && (react_1.default.createElement(ink_1.Text, null,
46
- react_1.default.createElement(ink_1.Text, { color: theme_js_1.PALETTE.textDim }, "Children: "),
47
- react_1.default.createElement(ink_1.Text, { color: theme_js_1.PALETTE.textSecondary },
48
- "[",
49
- children.map(c => c.id).join(', '),
50
- "]"))),
51
- hasAdrStatus && (react_1.default.createElement(ink_1.Text, null,
52
- react_1.default.createElement(ink_1.Text, { color: theme_js_1.PALETTE.textDim }, "Status: "),
53
- react_1.default.createElement(ink_1.Text, { color: theme_js_1.PALETTE.textSecondary }, adrStatus))),
54
- hasContract && (react_1.default.createElement(react_1.default.Fragment, null,
55
- (parentId || children.length > 0 || hasAdrStatus) && react_1.default.createElement(ink_1.Box, { marginTop: 1 }),
56
- react_1.default.createElement(ink_1.Text, { color: theme_js_1.PALETTE.textDim, bold: true }, "Contract"),
57
- react_1.default.createElement(ink_1.Text, null,
58
- react_1.default.createElement(ink_1.Text, { color: theme_js_1.PALETTE.textDim }, "Status: "),
59
- react_1.default.createElement(ink_1.Text, { color: getContractStatusColor(status), bold: true }, status)),
60
- react_1.default.createElement(ink_1.Text, null,
61
- react_1.default.createElement(ink_1.Text, { color: theme_js_1.PALETTE.textDim }, "Deliverables: "),
62
- react_1.default.createElement(ink_1.Text, { color: theme_js_1.PALETTE.textSecondary }, deliverablesCount))))));
63
- }
64
- //# sourceMappingURL=TaskDetail.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TaskDetail.js","sourceRoot":"","sources":["../../../src/tui/components/TaskDetail.tsx"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import React from 'react';
2
- import type { Task } from '@brainfile/core';
3
- export interface TaskListProps {
4
- tasks: Task[];
5
- allTasks?: Task[];
6
- selectedIndex: number;
7
- expandedIds: Set<string>;
8
- viewportHeight: number;
9
- termWidth: number;
10
- }
11
- export declare function TaskList({ tasks, allTasks, selectedIndex, expandedIds, viewportHeight, termWidth }: TaskListProps): React.JSX.Element;
12
- //# sourceMappingURL=TaskList.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TaskList.d.ts","sourceRoot":"","sources":["../../../src/tui/components/TaskList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAK5C,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAa,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,aAAa,qBA0FtH"}
@@ -1,75 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TaskList = TaskList;
7
- const react_1 = __importDefault(require("react"));
8
- const ink_1 = require("ink");
9
- const theme_js_1 = require("../theme.js");
10
- const TaskCard_js_1 = require("./TaskCard.js");
11
- const TaskCardMeasure_js_1 = require("./TaskCardMeasure.js");
12
- function TaskList({ tasks, allTasks = [], selectedIndex, expandedIds, viewportHeight, termWidth }) {
13
- const cardWidth = termWidth - 4;
14
- const contentWidth = cardWidth - 6; // indicator (4) + right padding (2) = 6
15
- // Calculate scroll offset - ensure selected task is visible
16
- // Start from selected task and work backwards to find scroll position
17
- let scrollOffset = 0;
18
- let heightBeforeSelected = 0;
19
- for (let i = 0; i < selectedIndex; i++) {
20
- const task = tasks[i];
21
- const isExpanded = expandedIds.has(task.id);
22
- heightBeforeSelected += (0, TaskCardMeasure_js_1.getTaskCardHeight)(task, isExpanded, contentWidth, allTasks);
23
- }
24
- // If selected task would be off screen, adjust scroll
25
- const selectedTask = tasks[selectedIndex];
26
- const selectedHeight = selectedTask
27
- ? (0, TaskCardMeasure_js_1.getTaskCardHeight)(selectedTask, expandedIds.has(selectedTask.id), contentWidth, allTasks)
28
- : 5;
29
- if (heightBeforeSelected + selectedHeight > viewportHeight) {
30
- // Need to scroll - start from selected task
31
- scrollOffset = selectedIndex;
32
- }
33
- else if (heightBeforeSelected > viewportHeight * 0.6) {
34
- // Selected is in lower part of viewport, scroll to center it a bit
35
- scrollOffset = Math.max(0, selectedIndex - 2);
36
- }
37
- // Build visible items starting from scrollOffset
38
- const visibleItems = [];
39
- let linesUsed = 0;
40
- for (let i = scrollOffset; i < tasks.length; i++) {
41
- const task = tasks[i];
42
- const isSelected = i === selectedIndex;
43
- const isExpanded = expandedIds.has(task.id);
44
- const taskLines = (0, TaskCardMeasure_js_1.getTaskCardHeight)(task, isExpanded, contentWidth, allTasks);
45
- // Always include the selected task, even if it's tall
46
- if (isSelected) {
47
- visibleItems.push({ task, isSelected, isExpanded });
48
- linesUsed += taskLines;
49
- continue;
50
- }
51
- // For non-selected tasks, check if they fit
52
- if (linesUsed + taskLines <= viewportHeight) {
53
- visibleItems.push({ task, isSelected, isExpanded });
54
- linesUsed += taskLines;
55
- }
56
- else if (linesUsed > 0) {
57
- // We have items and this one doesn't fit, stop
58
- break;
59
- }
60
- }
61
- // Calculate remaining empty lines to fill viewport
62
- const emptyLines = Math.max(0, viewportHeight - linesUsed);
63
- if (tasks.length === 0) {
64
- return (react_1.default.createElement(ink_1.Box, { flexDirection: "column", paddingLeft: 2, height: viewportHeight },
65
- react_1.default.createElement(ink_1.Text, { color: theme_js_1.PALETTE.textMuted, dimColor: true }, "No tasks in this column"),
66
- Array.from({ length: viewportHeight - 1 }).map((_, i) => (react_1.default.createElement(ink_1.Box, { key: `empty-${i}` },
67
- react_1.default.createElement(ink_1.Text, null, ' '))))));
68
- }
69
- return (react_1.default.createElement(ink_1.Box, { flexDirection: "column", paddingLeft: 1, height: viewportHeight },
70
- visibleItems.map(({ task, isSelected, isExpanded }, index) => (react_1.default.createElement(react_1.default.Fragment, { key: task.id },
71
- index > 0 && react_1.default.createElement(ink_1.Box, { height: 1 }),
72
- react_1.default.createElement(TaskCard_js_1.TaskCard, { task: task, allTasks: allTasks, isSelected: isSelected, isExpanded: isExpanded, width: cardWidth, showContractBadge: true })))),
73
- emptyLines > 0 && react_1.default.createElement(ink_1.Box, { height: emptyLines })));
74
- }
75
- //# sourceMappingURL=TaskList.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TaskList.js","sourceRoot":"","sources":["../../../src/tui/components/TaskList.tsx"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- export { Header } from './Header.js';
2
- export type { HeaderProps } from './Header.js';
3
- export { ProgressBar } from './ProgressBar.js';
4
- export type { ProgressBarProps } from './ProgressBar.js';
5
- export { SearchBar } from './SearchBar.js';
6
- export type { SearchBarProps } from './SearchBar.js';
7
- export { ColumnTabs } from './ColumnTabs.js';
8
- export type { ColumnTabsProps } from './ColumnTabs.js';
9
- export { TaskCard } from './TaskCard.js';
10
- export type { TaskCardProps } from './TaskCard.js';
11
- export { TaskList } from './TaskList.js';
12
- export type { TaskListProps } from './TaskList.js';
13
- export { StackedTaskList, flattenTasks } from './StackedTaskList.js';
14
- export type { StackedTaskListProps, FlatTask } from './StackedTaskList.js';
15
- export { StatusBar } from './StatusBar.js';
16
- export type { StatusBarProps } from './StatusBar.js';
17
- export { HelpOverlay } from './HelpOverlay.js';
18
- export type { HelpOverlayProps } from './HelpOverlay.js';
19
- export { StatusMessageDisplay, MoveOverlay, DeleteConfirmOverlay, SubtaskOverlay, NewTaskOverlay, } from './Overlays.js';
20
- export type { StatusMessageProps, MoveOverlayProps, DeleteConfirmOverlayProps, SubtaskOverlayProps, NewTaskOverlayProps, } from './Overlays.js';
21
- export { MainPanelTabs } from './MainPanelTabs.js';
22
- export type { MainPanelTabsProps } from './MainPanelTabs.js';
23
- export { RulesPanel } from './RulesPanel.js';
24
- export type { RulesPanelProps } from './RulesPanel.js';
25
- export { LogsPanel } from './LogsPanel.js';
26
- export type { LogsPanelProps } from './LogsPanel.js';
27
- export { ManualBorder, BorderRow } from './ManualBorder.js';
28
- export type { ManualBorderProps, BorderRowProps } from './ManualBorder.js';
29
- export { measureTaskCard, getTaskCardHeight, wrapText, safeTruncate } from './TaskCardMeasure.js';
30
- export type { TaskCardDimensions } from './TaskCardMeasure.js';
31
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tui/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,YAAY,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE3E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,oBAAoB,EACpB,cAAc,EACd,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,yBAAyB,EACzB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC5D,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE3E,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClG,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.safeTruncate = exports.wrapText = exports.getTaskCardHeight = exports.measureTaskCard = exports.BorderRow = exports.ManualBorder = exports.LogsPanel = exports.RulesPanel = exports.MainPanelTabs = exports.NewTaskOverlay = exports.SubtaskOverlay = exports.DeleteConfirmOverlay = exports.MoveOverlay = exports.StatusMessageDisplay = exports.HelpOverlay = exports.StatusBar = exports.flattenTasks = exports.StackedTaskList = exports.TaskList = exports.TaskCard = exports.ColumnTabs = exports.SearchBar = exports.ProgressBar = exports.Header = void 0;
4
- var Header_js_1 = require("./Header.js");
5
- Object.defineProperty(exports, "Header", { enumerable: true, get: function () { return Header_js_1.Header; } });
6
- var ProgressBar_js_1 = require("./ProgressBar.js");
7
- Object.defineProperty(exports, "ProgressBar", { enumerable: true, get: function () { return ProgressBar_js_1.ProgressBar; } });
8
- var SearchBar_js_1 = require("./SearchBar.js");
9
- Object.defineProperty(exports, "SearchBar", { enumerable: true, get: function () { return SearchBar_js_1.SearchBar; } });
10
- var ColumnTabs_js_1 = require("./ColumnTabs.js");
11
- Object.defineProperty(exports, "ColumnTabs", { enumerable: true, get: function () { return ColumnTabs_js_1.ColumnTabs; } });
12
- var TaskCard_js_1 = require("./TaskCard.js");
13
- Object.defineProperty(exports, "TaskCard", { enumerable: true, get: function () { return TaskCard_js_1.TaskCard; } });
14
- var TaskList_js_1 = require("./TaskList.js");
15
- Object.defineProperty(exports, "TaskList", { enumerable: true, get: function () { return TaskList_js_1.TaskList; } });
16
- var StackedTaskList_js_1 = require("./StackedTaskList.js");
17
- Object.defineProperty(exports, "StackedTaskList", { enumerable: true, get: function () { return StackedTaskList_js_1.StackedTaskList; } });
18
- Object.defineProperty(exports, "flattenTasks", { enumerable: true, get: function () { return StackedTaskList_js_1.flattenTasks; } });
19
- var StatusBar_js_1 = require("./StatusBar.js");
20
- Object.defineProperty(exports, "StatusBar", { enumerable: true, get: function () { return StatusBar_js_1.StatusBar; } });
21
- var HelpOverlay_js_1 = require("./HelpOverlay.js");
22
- Object.defineProperty(exports, "HelpOverlay", { enumerable: true, get: function () { return HelpOverlay_js_1.HelpOverlay; } });
23
- var Overlays_js_1 = require("./Overlays.js");
24
- Object.defineProperty(exports, "StatusMessageDisplay", { enumerable: true, get: function () { return Overlays_js_1.StatusMessageDisplay; } });
25
- Object.defineProperty(exports, "MoveOverlay", { enumerable: true, get: function () { return Overlays_js_1.MoveOverlay; } });
26
- Object.defineProperty(exports, "DeleteConfirmOverlay", { enumerable: true, get: function () { return Overlays_js_1.DeleteConfirmOverlay; } });
27
- Object.defineProperty(exports, "SubtaskOverlay", { enumerable: true, get: function () { return Overlays_js_1.SubtaskOverlay; } });
28
- Object.defineProperty(exports, "NewTaskOverlay", { enumerable: true, get: function () { return Overlays_js_1.NewTaskOverlay; } });
29
- var MainPanelTabs_js_1 = require("./MainPanelTabs.js");
30
- Object.defineProperty(exports, "MainPanelTabs", { enumerable: true, get: function () { return MainPanelTabs_js_1.MainPanelTabs; } });
31
- var RulesPanel_js_1 = require("./RulesPanel.js");
32
- Object.defineProperty(exports, "RulesPanel", { enumerable: true, get: function () { return RulesPanel_js_1.RulesPanel; } });
33
- var LogsPanel_js_1 = require("./LogsPanel.js");
34
- Object.defineProperty(exports, "LogsPanel", { enumerable: true, get: function () { return LogsPanel_js_1.LogsPanel; } });
35
- var ManualBorder_js_1 = require("./ManualBorder.js");
36
- Object.defineProperty(exports, "ManualBorder", { enumerable: true, get: function () { return ManualBorder_js_1.ManualBorder; } });
37
- Object.defineProperty(exports, "BorderRow", { enumerable: true, get: function () { return ManualBorder_js_1.BorderRow; } });
38
- var TaskCardMeasure_js_1 = require("./TaskCardMeasure.js");
39
- Object.defineProperty(exports, "measureTaskCard", { enumerable: true, get: function () { return TaskCardMeasure_js_1.measureTaskCard; } });
40
- Object.defineProperty(exports, "getTaskCardHeight", { enumerable: true, get: function () { return TaskCardMeasure_js_1.getTaskCardHeight; } });
41
- Object.defineProperty(exports, "wrapText", { enumerable: true, get: function () { return TaskCardMeasure_js_1.wrapText; } });
42
- Object.defineProperty(exports, "safeTruncate", { enumerable: true, get: function () { return TaskCardMeasure_js_1.safeTruncate; } });
43
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tui/components/index.ts"],"names":[],"mappings":";;;AAAA,yCAAqC;AAA5B,mGAAA,MAAM,OAAA;AAGf,mDAA+C;AAAtC,6GAAA,WAAW,OAAA;AAGpB,+CAA2C;AAAlC,yGAAA,SAAS,OAAA;AAGlB,iDAA6C;AAApC,2GAAA,UAAU,OAAA;AAGnB,6CAAyC;AAAhC,uGAAA,QAAQ,OAAA;AAGjB,6CAAyC;AAAhC,uGAAA,QAAQ,OAAA;AAGjB,2DAAqE;AAA5D,qHAAA,eAAe,OAAA;AAAE,kHAAA,YAAY,OAAA;AAGtC,+CAA2C;AAAlC,yGAAA,SAAS,OAAA;AAGlB,mDAA+C;AAAtC,6GAAA,WAAW,OAAA;AAGpB,6CAMuB;AALrB,mHAAA,oBAAoB,OAAA;AACpB,0GAAA,WAAW,OAAA;AACX,mHAAA,oBAAoB,OAAA;AACpB,6GAAA,cAAc,OAAA;AACd,6GAAA,cAAc,OAAA;AAUhB,uDAAmD;AAA1C,iHAAA,aAAa,OAAA;AAGtB,iDAA6C;AAApC,2GAAA,UAAU,OAAA;AAGnB,+CAA2C;AAAlC,yGAAA,SAAS,OAAA;AAGlB,qDAA4D;AAAnD,+GAAA,YAAY,OAAA;AAAE,4GAAA,SAAS,OAAA;AAGhC,2DAAkG;AAAzF,qHAAA,eAAe,OAAA;AAAE,uHAAA,iBAAiB,OAAA;AAAE,8GAAA,QAAQ,OAAA;AAAE,kHAAA,YAAY,OAAA"}
@@ -1,3 +0,0 @@
1
- export { useBrainfileLoader } from './useBrainfileLoader.js';
2
- export { useKeyboardNavigation } from './useKeyboardNavigation.js';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tui/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useKeyboardNavigation = exports.useBrainfileLoader = void 0;
4
- var useBrainfileLoader_js_1 = require("./useBrainfileLoader.js");
5
- Object.defineProperty(exports, "useBrainfileLoader", { enumerable: true, get: function () { return useBrainfileLoader_js_1.useBrainfileLoader; } });
6
- var useKeyboardNavigation_js_1 = require("./useKeyboardNavigation.js");
7
- Object.defineProperty(exports, "useKeyboardNavigation", { enumerable: true, get: function () { return useKeyboardNavigation_js_1.useKeyboardNavigation; } });
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tui/hooks/index.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAApD,2HAAA,kBAAkB,OAAA;AAC3B,uEAAmE;AAA1D,iIAAA,qBAAqB,OAAA"}
@@ -1,5 +0,0 @@
1
- import type { AppState } from '../types.js';
2
- export declare function useBrainfileLoader(filePath: string, state: AppState, setState: React.Dispatch<React.SetStateAction<AppState>>): {
3
- loadBrainfile: (forceRefresh?: any) => void;
4
- };
5
- //# sourceMappingURL=useBrainfileLoader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useBrainfileLoader.d.ts","sourceRoot":"","sources":["../../../src/tui/hooks/useBrainfileLoader.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA6C5C,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;;EAqKzD"}