maxsimcli 4.6.0 → 4.7.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 (234) hide show
  1. package/dist/assets/CHANGELOG.md +39 -0
  2. package/dist/cli.cjs +470 -961
  3. package/dist/cli.cjs.map +1 -1
  4. package/dist/{core-RRjCSt0G.cjs → core-D5zUr9cb.cjs} +4 -3
  5. package/dist/core-D5zUr9cb.cjs.map +1 -0
  6. package/dist/install.cjs +3 -195
  7. package/dist/install.cjs.map +1 -1
  8. package/dist/mcp-server.cjs +2853 -217
  9. package/dist/mcp-server.cjs.map +1 -1
  10. package/dist/{skills-MYlMkYNt.cjs → skills-CjFWZIGM.cjs} +6 -6
  11. package/dist/{skills-MYlMkYNt.cjs.map → skills-CjFWZIGM.cjs.map} +1 -1
  12. package/package.json +1 -7
  13. package/dist/.tsbuildinfo +0 -1
  14. package/dist/assets/dashboard/client/assets/index-C199D4Eb.css +0 -32
  15. package/dist/assets/dashboard/client/assets/index-nAXJLp0_.js +0 -233
  16. package/dist/assets/dashboard/client/index.html +0 -19
  17. package/dist/assets/dashboard/server.js +0 -78813
  18. package/dist/backend/index.d.ts +0 -4
  19. package/dist/backend/index.d.ts.map +0 -1
  20. package/dist/backend/index.js +0 -12
  21. package/dist/backend/index.js.map +0 -1
  22. package/dist/backend/lifecycle.d.ts +0 -13
  23. package/dist/backend/lifecycle.d.ts.map +0 -1
  24. package/dist/backend/lifecycle.js +0 -168
  25. package/dist/backend/lifecycle.js.map +0 -1
  26. package/dist/backend/server.d.ts +0 -13
  27. package/dist/backend/server.d.ts.map +0 -1
  28. package/dist/backend/server.js +0 -1013
  29. package/dist/backend/server.js.map +0 -1
  30. package/dist/backend/terminal.d.ts +0 -49
  31. package/dist/backend/terminal.d.ts.map +0 -1
  32. package/dist/backend/terminal.js +0 -209
  33. package/dist/backend/terminal.js.map +0 -1
  34. package/dist/backend/types.d.ts +0 -77
  35. package/dist/backend/types.d.ts.map +0 -1
  36. package/dist/backend/types.js +0 -6
  37. package/dist/backend/types.js.map +0 -1
  38. package/dist/backend-server.cjs +0 -80672
  39. package/dist/backend-server.cjs.map +0 -1
  40. package/dist/backend-server.d.cts +0 -2
  41. package/dist/backend-server.d.ts +0 -11
  42. package/dist/backend-server.d.ts.map +0 -1
  43. package/dist/backend-server.js +0 -43
  44. package/dist/backend-server.js.map +0 -1
  45. package/dist/cli.d.cts +0 -2
  46. package/dist/cli.d.ts +0 -7
  47. package/dist/cli.d.ts.map +0 -1
  48. package/dist/cli.js +0 -510
  49. package/dist/cli.js.map +0 -1
  50. package/dist/core/artefakte.d.ts +0 -12
  51. package/dist/core/artefakte.d.ts.map +0 -1
  52. package/dist/core/artefakte.js +0 -152
  53. package/dist/core/artefakte.js.map +0 -1
  54. package/dist/core/commands.d.ts +0 -26
  55. package/dist/core/commands.d.ts.map +0 -1
  56. package/dist/core/commands.js +0 -550
  57. package/dist/core/commands.js.map +0 -1
  58. package/dist/core/config.d.ts +0 -10
  59. package/dist/core/config.d.ts.map +0 -1
  60. package/dist/core/config.js +0 -143
  61. package/dist/core/config.js.map +0 -1
  62. package/dist/core/context-loader.d.ts +0 -21
  63. package/dist/core/context-loader.d.ts.map +0 -1
  64. package/dist/core/context-loader.js +0 -212
  65. package/dist/core/context-loader.js.map +0 -1
  66. package/dist/core/core.d.ts +0 -91
  67. package/dist/core/core.d.ts.map +0 -1
  68. package/dist/core/core.js +0 -823
  69. package/dist/core/core.js.map +0 -1
  70. package/dist/core/dashboard-launcher.d.ts +0 -56
  71. package/dist/core/dashboard-launcher.d.ts.map +0 -1
  72. package/dist/core/dashboard-launcher.js +0 -246
  73. package/dist/core/dashboard-launcher.js.map +0 -1
  74. package/dist/core/drift.d.ts +0 -37
  75. package/dist/core/drift.d.ts.map +0 -1
  76. package/dist/core/drift.js +0 -213
  77. package/dist/core/drift.js.map +0 -1
  78. package/dist/core/frontmatter.d.ts +0 -33
  79. package/dist/core/frontmatter.d.ts.map +0 -1
  80. package/dist/core/frontmatter.js +0 -193
  81. package/dist/core/frontmatter.js.map +0 -1
  82. package/dist/core/index.d.ts +0 -28
  83. package/dist/core/index.d.ts.map +0 -1
  84. package/dist/core/index.js +0 -189
  85. package/dist/core/index.js.map +0 -1
  86. package/dist/core/init.d.ts +0 -287
  87. package/dist/core/init.d.ts.map +0 -1
  88. package/dist/core/init.js +0 -816
  89. package/dist/core/init.js.map +0 -1
  90. package/dist/core/milestone.d.ts +0 -9
  91. package/dist/core/milestone.d.ts.map +0 -1
  92. package/dist/core/milestone.js +0 -230
  93. package/dist/core/milestone.js.map +0 -1
  94. package/dist/core/phase.d.ts +0 -53
  95. package/dist/core/phase.d.ts.map +0 -1
  96. package/dist/core/phase.js +0 -891
  97. package/dist/core/phase.js.map +0 -1
  98. package/dist/core/roadmap.d.ts +0 -10
  99. package/dist/core/roadmap.d.ts.map +0 -1
  100. package/dist/core/roadmap.js +0 -165
  101. package/dist/core/roadmap.js.map +0 -1
  102. package/dist/core/skills.d.ts +0 -20
  103. package/dist/core/skills.d.ts.map +0 -1
  104. package/dist/core/skills.js +0 -144
  105. package/dist/core/skills.js.map +0 -1
  106. package/dist/core/start.d.ts +0 -15
  107. package/dist/core/start.d.ts.map +0 -1
  108. package/dist/core/start.js +0 -80
  109. package/dist/core/start.js.map +0 -1
  110. package/dist/core/state.d.ts +0 -32
  111. package/dist/core/state.d.ts.map +0 -1
  112. package/dist/core/state.js +0 -582
  113. package/dist/core/state.js.map +0 -1
  114. package/dist/core/template.d.ts +0 -30
  115. package/dist/core/template.d.ts.map +0 -1
  116. package/dist/core/template.js +0 -223
  117. package/dist/core/template.js.map +0 -1
  118. package/dist/core/types.d.ts +0 -519
  119. package/dist/core/types.d.ts.map +0 -1
  120. package/dist/core/types.js +0 -60
  121. package/dist/core/types.js.map +0 -1
  122. package/dist/core/verify.d.ts +0 -128
  123. package/dist/core/verify.d.ts.map +0 -1
  124. package/dist/core/verify.js +0 -754
  125. package/dist/core/verify.js.map +0 -1
  126. package/dist/core-RRjCSt0G.cjs.map +0 -1
  127. package/dist/esm-iIOBzmdz.cjs +0 -1561
  128. package/dist/esm-iIOBzmdz.cjs.map +0 -1
  129. package/dist/hooks/index.d.ts +0 -11
  130. package/dist/hooks/index.d.ts.map +0 -1
  131. package/dist/hooks/index.js +0 -18
  132. package/dist/hooks/index.js.map +0 -1
  133. package/dist/hooks/maxsim-check-update.d.ts +0 -17
  134. package/dist/hooks/maxsim-check-update.d.ts.map +0 -1
  135. package/dist/hooks/maxsim-check-update.js +0 -101
  136. package/dist/hooks/maxsim-check-update.js.map +0 -1
  137. package/dist/hooks/maxsim-context-monitor.d.ts +0 -21
  138. package/dist/hooks/maxsim-context-monitor.d.ts.map +0 -1
  139. package/dist/hooks/maxsim-context-monitor.js +0 -131
  140. package/dist/hooks/maxsim-context-monitor.js.map +0 -1
  141. package/dist/hooks/maxsim-statusline.d.ts +0 -19
  142. package/dist/hooks/maxsim-statusline.d.ts.map +0 -1
  143. package/dist/hooks/maxsim-statusline.js +0 -146
  144. package/dist/hooks/maxsim-statusline.js.map +0 -1
  145. package/dist/hooks/shared.d.ts +0 -11
  146. package/dist/hooks/shared.d.ts.map +0 -1
  147. package/dist/hooks/shared.js +0 -29
  148. package/dist/hooks/shared.js.map +0 -1
  149. package/dist/index.d.ts +0 -2
  150. package/dist/index.d.ts.map +0 -1
  151. package/dist/index.js +0 -3
  152. package/dist/index.js.map +0 -1
  153. package/dist/install/adapters.d.ts +0 -6
  154. package/dist/install/adapters.d.ts.map +0 -1
  155. package/dist/install/adapters.js +0 -65
  156. package/dist/install/adapters.js.map +0 -1
  157. package/dist/install/copy.d.ts +0 -6
  158. package/dist/install/copy.d.ts.map +0 -1
  159. package/dist/install/copy.js +0 -71
  160. package/dist/install/copy.js.map +0 -1
  161. package/dist/install/dashboard.d.ts +0 -16
  162. package/dist/install/dashboard.d.ts.map +0 -1
  163. package/dist/install/dashboard.js +0 -273
  164. package/dist/install/dashboard.js.map +0 -1
  165. package/dist/install/hooks.d.ts +0 -31
  166. package/dist/install/hooks.d.ts.map +0 -1
  167. package/dist/install/hooks.js +0 -260
  168. package/dist/install/hooks.js.map +0 -1
  169. package/dist/install/index.d.ts +0 -2
  170. package/dist/install/index.d.ts.map +0 -1
  171. package/dist/install/index.js +0 -534
  172. package/dist/install/index.js.map +0 -1
  173. package/dist/install/manifest.d.ts +0 -23
  174. package/dist/install/manifest.d.ts.map +0 -1
  175. package/dist/install/manifest.js +0 -133
  176. package/dist/install/manifest.js.map +0 -1
  177. package/dist/install/patches.d.ts +0 -10
  178. package/dist/install/patches.d.ts.map +0 -1
  179. package/dist/install/patches.js +0 -124
  180. package/dist/install/patches.js.map +0 -1
  181. package/dist/install/shared.d.ts +0 -56
  182. package/dist/install/shared.d.ts.map +0 -1
  183. package/dist/install/shared.js +0 -181
  184. package/dist/install/shared.js.map +0 -1
  185. package/dist/install/uninstall.d.ts +0 -5
  186. package/dist/install/uninstall.d.ts.map +0 -1
  187. package/dist/install/uninstall.js +0 -222
  188. package/dist/install/uninstall.js.map +0 -1
  189. package/dist/install/utils.d.ts +0 -27
  190. package/dist/install/utils.d.ts.map +0 -1
  191. package/dist/install/utils.js +0 -99
  192. package/dist/install/utils.js.map +0 -1
  193. package/dist/install.d.cts +0 -2
  194. package/dist/lifecycle-DxCru7rk.cjs +0 -136
  195. package/dist/lifecycle-DxCru7rk.cjs.map +0 -1
  196. package/dist/mcp/config-tools.d.ts +0 -13
  197. package/dist/mcp/config-tools.d.ts.map +0 -1
  198. package/dist/mcp/config-tools.js +0 -66
  199. package/dist/mcp/config-tools.js.map +0 -1
  200. package/dist/mcp/context-tools.d.ts +0 -13
  201. package/dist/mcp/context-tools.d.ts.map +0 -1
  202. package/dist/mcp/context-tools.js +0 -176
  203. package/dist/mcp/context-tools.js.map +0 -1
  204. package/dist/mcp/index.d.ts +0 -11
  205. package/dist/mcp/index.d.ts.map +0 -1
  206. package/dist/mcp/index.js +0 -26
  207. package/dist/mcp/index.js.map +0 -1
  208. package/dist/mcp/phase-tools.d.ts +0 -13
  209. package/dist/mcp/phase-tools.d.ts.map +0 -1
  210. package/dist/mcp/phase-tools.js +0 -177
  211. package/dist/mcp/phase-tools.js.map +0 -1
  212. package/dist/mcp/roadmap-tools.d.ts +0 -13
  213. package/dist/mcp/roadmap-tools.d.ts.map +0 -1
  214. package/dist/mcp/roadmap-tools.js +0 -79
  215. package/dist/mcp/roadmap-tools.js.map +0 -1
  216. package/dist/mcp/state-tools.d.ts +0 -13
  217. package/dist/mcp/state-tools.d.ts.map +0 -1
  218. package/dist/mcp/state-tools.js +0 -185
  219. package/dist/mcp/state-tools.js.map +0 -1
  220. package/dist/mcp/todo-tools.d.ts +0 -13
  221. package/dist/mcp/todo-tools.d.ts.map +0 -1
  222. package/dist/mcp/todo-tools.js +0 -143
  223. package/dist/mcp/todo-tools.js.map +0 -1
  224. package/dist/mcp/utils.d.ts +0 -27
  225. package/dist/mcp/utils.d.ts.map +0 -1
  226. package/dist/mcp/utils.js +0 -82
  227. package/dist/mcp/utils.js.map +0 -1
  228. package/dist/mcp-server.d.cts +0 -2
  229. package/dist/mcp-server.d.ts +0 -12
  230. package/dist/mcp-server.d.ts.map +0 -1
  231. package/dist/mcp-server.js +0 -31
  232. package/dist/mcp-server.js.map +0 -1
  233. package/dist/server-By0TN-nC.cjs +0 -2995
  234. package/dist/server-By0TN-nC.cjs.map +0 -1
@@ -1,185 +0,0 @@
1
- "use strict";
2
- /**
3
- * State Management MCP Tools — STATE.md operations exposed as MCP tools
4
- *
5
- * CRITICAL: Never import output() or error() from core — they call process.exit().
6
- * CRITICAL: Never write to stdout — it is reserved for MCP JSON-RPC protocol.
7
- * CRITICAL: Never call process.exit() — the server must stay alive after every tool call.
8
- */
9
- var __importDefault = (this && this.__importDefault) || function (mod) {
10
- return (mod && mod.__esModule) ? mod : { "default": mod };
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.registerStateTools = registerStateTools;
14
- const node_fs_1 = __importDefault(require("node:fs"));
15
- const zod_1 = require("zod");
16
- const escape_string_regexp_1 = __importDefault(require("escape-string-regexp"));
17
- const core_js_1 = require("../core/core.js");
18
- const state_js_1 = require("../core/state.js");
19
- const utils_js_1 = require("./utils.js");
20
- /**
21
- * Register all state management tools on the MCP server.
22
- */
23
- function registerStateTools(server) {
24
- // ── mcp_get_state ───────────────────────────────────────────────────────────
25
- server.tool('mcp_get_state', 'Read STATE.md content — full file, a specific **field:** value, or a ## section.', {
26
- field: zod_1.z
27
- .string()
28
- .optional()
29
- .describe('Specific field or section name, or omit for full STATE.md'),
30
- }, async ({ field }) => {
31
- try {
32
- const cwd = (0, utils_js_1.detectProjectRoot)();
33
- if (!cwd) {
34
- return (0, utils_js_1.mcpError)('No .planning/ directory found', 'Project not detected');
35
- }
36
- const stPath = (0, core_js_1.statePath)(cwd);
37
- if (!node_fs_1.default.existsSync(stPath)) {
38
- return (0, utils_js_1.mcpError)('STATE.md not found', 'STATE.md missing');
39
- }
40
- const content = node_fs_1.default.readFileSync(stPath, 'utf-8');
41
- if (!field) {
42
- return (0, utils_js_1.mcpSuccess)({ content }, 'Full STATE.md retrieved');
43
- }
44
- // Try **field:** value pattern first
45
- const fieldValue = (0, state_js_1.stateExtractField)(content, field);
46
- if (fieldValue) {
47
- return (0, utils_js_1.mcpSuccess)({ content: fieldValue, field }, `State field retrieved: ${field}`);
48
- }
49
- // Try ## Section pattern
50
- const fieldEscaped = (0, escape_string_regexp_1.default)(field);
51
- const sectionPattern = new RegExp(`##\\s*${fieldEscaped}\\s*\n([\\s\\S]*?)(?=\\n##|$)`, 'i');
52
- const sectionMatch = content.match(sectionPattern);
53
- if (sectionMatch) {
54
- return (0, utils_js_1.mcpSuccess)({ content: sectionMatch[1].trim(), field }, `State section retrieved: ${field}`);
55
- }
56
- return (0, utils_js_1.mcpError)(`Section or field "${field}" not found in STATE.md`, 'Field not found');
57
- }
58
- catch (e) {
59
- return (0, utils_js_1.mcpError)(e.message, 'Operation failed');
60
- }
61
- });
62
- // ── mcp_update_state ────────────────────────────────────────────────────────
63
- server.tool('mcp_update_state', 'Update a **field:** value in STATE.md (e.g., "Status", "Current focus").', {
64
- field: zod_1.z.string().describe('Field name (e.g., "Status", "Current focus")'),
65
- value: zod_1.z.string().describe('New value for the field'),
66
- }, async ({ field, value }) => {
67
- try {
68
- const cwd = (0, utils_js_1.detectProjectRoot)();
69
- if (!cwd) {
70
- return (0, utils_js_1.mcpError)('No .planning/ directory found', 'Project not detected');
71
- }
72
- const stPath = (0, core_js_1.statePath)(cwd);
73
- if (!node_fs_1.default.existsSync(stPath)) {
74
- return (0, utils_js_1.mcpError)('STATE.md not found', 'STATE.md missing');
75
- }
76
- const content = node_fs_1.default.readFileSync(stPath, 'utf-8');
77
- const updated = (0, state_js_1.stateReplaceField)(content, field, value);
78
- if (!updated) {
79
- return (0, utils_js_1.mcpError)(`Field "${field}" not found in STATE.md`, 'Field not found');
80
- }
81
- node_fs_1.default.writeFileSync(stPath, updated, 'utf-8');
82
- return (0, utils_js_1.mcpSuccess)({ updated: true, field, value }, `State updated: ${field}`);
83
- }
84
- catch (e) {
85
- return (0, utils_js_1.mcpError)(e.message, 'Operation failed');
86
- }
87
- });
88
- // ── mcp_add_decision ────────────────────────────────────────────────────────
89
- server.tool('mcp_add_decision', 'Record a decision in the Decisions section of STATE.md.', {
90
- summary: zod_1.z.string().describe('Decision summary'),
91
- rationale: zod_1.z.string().optional().describe('Optional rationale'),
92
- phase: zod_1.z.string().optional().describe('Associated phase number'),
93
- }, async ({ summary, rationale, phase }) => {
94
- try {
95
- const cwd = (0, utils_js_1.detectProjectRoot)();
96
- if (!cwd) {
97
- return (0, utils_js_1.mcpError)('No .planning/ directory found', 'Project not detected');
98
- }
99
- const stPath = (0, core_js_1.statePath)(cwd);
100
- if (!node_fs_1.default.existsSync(stPath)) {
101
- return (0, utils_js_1.mcpError)('STATE.md not found', 'STATE.md missing');
102
- }
103
- const content = node_fs_1.default.readFileSync(stPath, 'utf-8');
104
- const entry = `- [Phase ${phase || '?'}]: ${summary}${rationale ? ` -- ${rationale}` : ''}`;
105
- const sectionPattern = /(###?\s*(?:Decisions|Decisions Made|Accumulated.*Decisions)\s*\n)([\s\S]*?)(?=\n###?|\n##[^#]|$)/i;
106
- const updated = (0, state_js_1.appendToStateSection)(content, sectionPattern, entry, [/None yet\.?\s*\n?/gi, /No decisions yet\.?\s*\n?/gi]);
107
- if (!updated) {
108
- return (0, utils_js_1.mcpError)('Decisions section not found in STATE.md', 'Section not found');
109
- }
110
- node_fs_1.default.writeFileSync(stPath, updated, 'utf-8');
111
- return (0, utils_js_1.mcpSuccess)({ added: true, decision: entry }, 'Decision recorded');
112
- }
113
- catch (e) {
114
- return (0, utils_js_1.mcpError)(e.message, 'Operation failed');
115
- }
116
- });
117
- // ── mcp_add_blocker ─────────────────────────────────────────────────────────
118
- server.tool('mcp_add_blocker', 'Add a blocker entry to the Blockers section of STATE.md.', {
119
- text: zod_1.z.string().describe('Blocker description'),
120
- }, async ({ text }) => {
121
- try {
122
- const cwd = (0, utils_js_1.detectProjectRoot)();
123
- if (!cwd) {
124
- return (0, utils_js_1.mcpError)('No .planning/ directory found', 'Project not detected');
125
- }
126
- const stPath = (0, core_js_1.statePath)(cwd);
127
- if (!node_fs_1.default.existsSync(stPath)) {
128
- return (0, utils_js_1.mcpError)('STATE.md not found', 'STATE.md missing');
129
- }
130
- const content = node_fs_1.default.readFileSync(stPath, 'utf-8');
131
- const entry = `- ${text}`;
132
- const sectionPattern = /(###?\s*(?:Blockers|Blockers\/Concerns|Concerns)\s*\n)([\s\S]*?)(?=\n###?|\n##[^#]|$)/i;
133
- const updated = (0, state_js_1.appendToStateSection)(content, sectionPattern, entry, [/None\.?\s*\n?/gi, /None yet\.?\s*\n?/gi]);
134
- if (!updated) {
135
- return (0, utils_js_1.mcpError)('Blockers section not found in STATE.md', 'Section not found');
136
- }
137
- node_fs_1.default.writeFileSync(stPath, updated, 'utf-8');
138
- return (0, utils_js_1.mcpSuccess)({ added: true, blocker: text }, 'Blocker added');
139
- }
140
- catch (e) {
141
- return (0, utils_js_1.mcpError)(e.message, 'Operation failed');
142
- }
143
- });
144
- // ── mcp_resolve_blocker ─────────────────────────────────────────────────────
145
- server.tool('mcp_resolve_blocker', 'Remove a blocker from STATE.md by matching text (case-insensitive partial match).', {
146
- text: zod_1.z
147
- .string()
148
- .describe('Text to match against blocker entries (case-insensitive partial match)'),
149
- }, async ({ text }) => {
150
- try {
151
- const cwd = (0, utils_js_1.detectProjectRoot)();
152
- if (!cwd) {
153
- return (0, utils_js_1.mcpError)('No .planning/ directory found', 'Project not detected');
154
- }
155
- const stPath = (0, core_js_1.statePath)(cwd);
156
- if (!node_fs_1.default.existsSync(stPath)) {
157
- return (0, utils_js_1.mcpError)('STATE.md not found', 'STATE.md missing');
158
- }
159
- let content = node_fs_1.default.readFileSync(stPath, 'utf-8');
160
- const sectionPattern = /(###?\s*(?:Blockers|Blockers\/Concerns|Concerns)\s*\n)([\s\S]*?)(?=\n###?|\n##[^#]|$)/i;
161
- const match = content.match(sectionPattern);
162
- if (!match) {
163
- return (0, utils_js_1.mcpError)('Blockers section not found in STATE.md', 'Section not found');
164
- }
165
- const sectionBody = match[2];
166
- const lines = sectionBody.split('\n');
167
- const filtered = lines.filter((line) => {
168
- if (!line.startsWith('- '))
169
- return true;
170
- return !line.toLowerCase().includes(text.toLowerCase());
171
- });
172
- let newBody = filtered.join('\n');
173
- if (!newBody.trim() || !newBody.includes('- ')) {
174
- newBody = 'None\n';
175
- }
176
- content = content.replace(sectionPattern, (_match, header) => `${header}${newBody}`);
177
- node_fs_1.default.writeFileSync(stPath, content, 'utf-8');
178
- return (0, utils_js_1.mcpSuccess)({ resolved: true, blocker: text }, 'Blocker resolved');
179
- }
180
- catch (e) {
181
- return (0, utils_js_1.mcpError)(e.message, 'Operation failed');
182
- }
183
- });
184
- }
185
- //# sourceMappingURL=state-tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state-tools.js","sourceRoot":"","sources":["../../src/mcp/state-tools.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Todo CRUD MCP Tools — Todo operations exposed as MCP tools
3
- *
4
- * CRITICAL: Never import output() or error() from core — they call process.exit().
5
- * CRITICAL: Never write to stdout — it is reserved for MCP JSON-RPC protocol.
6
- * CRITICAL: Never call process.exit() — the server must stay alive after every tool call.
7
- */
8
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
9
- /**
10
- * Register all todo CRUD tools on the MCP server.
11
- */
12
- export declare function registerTodoTools(server: McpServer): void;
13
- //# sourceMappingURL=todo-tools.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"todo-tools.d.ts","sourceRoot":"","sources":["../../src/mcp/todo-tools.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyKzD"}
@@ -1,143 +0,0 @@
1
- "use strict";
2
- /**
3
- * Todo CRUD MCP Tools — Todo operations exposed as MCP tools
4
- *
5
- * CRITICAL: Never import output() or error() from core — they call process.exit().
6
- * CRITICAL: Never write to stdout — it is reserved for MCP JSON-RPC protocol.
7
- * CRITICAL: Never call process.exit() — the server must stay alive after every tool call.
8
- */
9
- var __importDefault = (this && this.__importDefault) || function (mod) {
10
- return (mod && mod.__esModule) ? mod : { "default": mod };
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.registerTodoTools = registerTodoTools;
14
- const node_fs_1 = __importDefault(require("node:fs"));
15
- const node_path_1 = __importDefault(require("node:path"));
16
- const zod_1 = require("zod");
17
- const core_js_1 = require("../core/core.js");
18
- const commands_js_1 = require("../core/commands.js");
19
- const utils_js_1 = require("./utils.js");
20
- /**
21
- * Register all todo CRUD tools on the MCP server.
22
- */
23
- function registerTodoTools(server) {
24
- // ── mcp_add_todo ────────────────────────────────────────────────────────────
25
- server.tool('mcp_add_todo', 'Create a new todo item in .planning/todos/pending/ with frontmatter metadata.', {
26
- title: zod_1.z.string().describe('Title of the todo item'),
27
- description: zod_1.z.string().optional().describe('Optional description body'),
28
- area: zod_1.z.string().optional().default('general').describe('Area/category (default: general)'),
29
- phase: zod_1.z.string().optional().describe('Associated phase number'),
30
- }, async ({ title, description, area, phase }) => {
31
- try {
32
- const cwd = (0, utils_js_1.detectProjectRoot)();
33
- if (!cwd) {
34
- return (0, utils_js_1.mcpError)('No .planning/ directory found', 'Project not detected');
35
- }
36
- const pendingDir = (0, core_js_1.planningPath)(cwd, 'todos', 'pending');
37
- node_fs_1.default.mkdirSync(pendingDir, { recursive: true });
38
- const today = (0, core_js_1.todayISO)();
39
- const slug = (0, core_js_1.generateSlugInternal)(title) || 'untitled';
40
- const timestamp = Date.now();
41
- const filename = `${timestamp}-${slug}.md`;
42
- const filePath = node_path_1.default.join(pendingDir, filename);
43
- const content = `---\ncreated: ${today}\ntitle: ${title}\narea: ${area || 'general'}\nphase: ${phase || 'unassigned'}\n---\n${description || ''}\n`;
44
- node_fs_1.default.writeFileSync(filePath, content, 'utf-8');
45
- return (0, utils_js_1.mcpSuccess)({
46
- file: filename,
47
- path: `.planning/todos/pending/${filename}`,
48
- title,
49
- area: area || 'general',
50
- }, `Todo created: ${title}`);
51
- }
52
- catch (e) {
53
- return (0, utils_js_1.mcpError)(e.message, 'Operation failed');
54
- }
55
- });
56
- // ── mcp_complete_todo ───────────────────────────────────────────────────────
57
- server.tool('mcp_complete_todo', 'Mark a pending todo as completed by moving it from pending/ to completed/ with a completion timestamp.', {
58
- todo_id: zod_1.z.string().describe('Filename of the todo (e.g., 1234567890-my-task.md)'),
59
- }, async ({ todo_id }) => {
60
- try {
61
- const cwd = (0, utils_js_1.detectProjectRoot)();
62
- if (!cwd) {
63
- return (0, utils_js_1.mcpError)('No .planning/ directory found', 'Project not detected');
64
- }
65
- const pendingDir = (0, core_js_1.planningPath)(cwd, 'todos', 'pending');
66
- const completedDir = (0, core_js_1.planningPath)(cwd, 'todos', 'completed');
67
- const sourcePath = node_path_1.default.join(pendingDir, todo_id);
68
- if (!node_fs_1.default.existsSync(sourcePath)) {
69
- return (0, utils_js_1.mcpError)(`Todo not found in pending: ${todo_id}`, 'Todo not found');
70
- }
71
- node_fs_1.default.mkdirSync(completedDir, { recursive: true });
72
- let content = node_fs_1.default.readFileSync(sourcePath, 'utf-8');
73
- const today = (0, core_js_1.todayISO)();
74
- content = `completed: ${today}\n` + content;
75
- node_fs_1.default.writeFileSync(node_path_1.default.join(completedDir, todo_id), content, 'utf-8');
76
- node_fs_1.default.unlinkSync(sourcePath);
77
- return (0, utils_js_1.mcpSuccess)({ completed: true, file: todo_id, date: today }, `Todo completed: ${todo_id}`);
78
- }
79
- catch (e) {
80
- return (0, utils_js_1.mcpError)(e.message, 'Operation failed');
81
- }
82
- });
83
- // ── mcp_list_todos ──────────────────────────────────────────────────────────
84
- server.tool('mcp_list_todos', 'List todo items, optionally filtered by area and status (pending, completed, or all).', {
85
- area: zod_1.z.string().optional().describe('Filter by area/category'),
86
- status: zod_1.z
87
- .enum(['pending', 'completed', 'all'])
88
- .optional()
89
- .default('pending')
90
- .describe('Which todos to list (default: pending)'),
91
- }, async ({ area, status }) => {
92
- try {
93
- const cwd = (0, utils_js_1.detectProjectRoot)();
94
- if (!cwd) {
95
- return (0, utils_js_1.mcpError)('No .planning/ directory found', 'Project not detected');
96
- }
97
- const todosBase = (0, core_js_1.planningPath)(cwd, 'todos');
98
- const dirs = [];
99
- if (status === 'pending' || status === 'all') {
100
- dirs.push(node_path_1.default.join(todosBase, 'pending'));
101
- }
102
- if (status === 'completed' || status === 'all') {
103
- dirs.push(node_path_1.default.join(todosBase, 'completed'));
104
- }
105
- const todos = [];
106
- for (const dir of dirs) {
107
- const dirStatus = dir.endsWith('pending') ? 'pending' : 'completed';
108
- let files = [];
109
- try {
110
- files = node_fs_1.default.readdirSync(dir).filter((f) => f.endsWith('.md'));
111
- }
112
- catch {
113
- // Directory may not exist
114
- continue;
115
- }
116
- for (const file of files) {
117
- try {
118
- const content = node_fs_1.default.readFileSync(node_path_1.default.join(dir, file), 'utf-8');
119
- const fm = (0, commands_js_1.parseTodoFrontmatter)(content);
120
- if (area && fm.area !== area)
121
- continue;
122
- todos.push({
123
- file,
124
- created: fm.created,
125
- title: fm.title,
126
- area: fm.area,
127
- status: dirStatus,
128
- path: `.planning/todos/${dirStatus}/${file}`,
129
- });
130
- }
131
- catch {
132
- // Skip unreadable files
133
- }
134
- }
135
- }
136
- return (0, utils_js_1.mcpSuccess)({ count: todos.length, todos }, `${todos.length} todos found`);
137
- }
138
- catch (e) {
139
- return (0, utils_js_1.mcpError)(e.message, 'Operation failed');
140
- }
141
- });
142
- }
143
- //# sourceMappingURL=todo-tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"todo-tools.js","sourceRoot":"","sources":["../../src/mcp/todo-tools.ts"],"names":[],"mappings":"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"}
@@ -1,27 +0,0 @@
1
- /**
2
- * MCP Utilities — Shared helpers for MCP tools
3
- *
4
- * CRITICAL: Never import output() or error() from core — they call process.exit().
5
- * CRITICAL: Never write to stdout — it is reserved for MCP JSON-RPC protocol.
6
- */
7
- export declare function detectProjectRoot(startDir?: string): string | null;
8
- /**
9
- * Return a structured MCP success response.
10
- */
11
- export declare function mcpSuccess(data: Record<string, unknown>, summary: string): {
12
- content: {
13
- type: "text";
14
- text: string;
15
- }[];
16
- };
17
- /**
18
- * Return a structured MCP error response.
19
- */
20
- export declare function mcpError(error: string, summary: string): {
21
- content: {
22
- type: "text";
23
- text: string;
24
- }[];
25
- isError: true;
26
- };
27
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/mcp/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,wBAAgB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgClE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM;;;;;EASxE;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;;;;;;EAUtD"}
package/dist/mcp/utils.js DELETED
@@ -1,82 +0,0 @@
1
- "use strict";
2
- /**
3
- * MCP Utilities — Shared helpers for MCP tools
4
- *
5
- * CRITICAL: Never import output() or error() from core — they call process.exit().
6
- * CRITICAL: Never write to stdout — it is reserved for MCP JSON-RPC protocol.
7
- */
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.detectProjectRoot = detectProjectRoot;
13
- exports.mcpSuccess = mcpSuccess;
14
- exports.mcpError = mcpError;
15
- const node_fs_1 = __importDefault(require("node:fs"));
16
- const node_path_1 = __importDefault(require("node:path"));
17
- /**
18
- * Walk up from startDir to find a directory containing `.planning/`.
19
- * Returns the directory containing `.planning/` or null if not found.
20
- */
21
- let _cachedRoot;
22
- function detectProjectRoot(startDir) {
23
- // Only cache when using default startDir (cwd)
24
- if (startDir === undefined && _cachedRoot !== undefined) {
25
- return _cachedRoot;
26
- }
27
- let dir = startDir || process.cwd();
28
- // Safety limit to prevent infinite loops
29
- for (let i = 0; i < 100; i++) {
30
- const planningDir = node_path_1.default.join(dir, '.planning');
31
- try {
32
- const stat = node_fs_1.default.statSync(planningDir);
33
- if (stat.isDirectory()) {
34
- if (startDir === undefined)
35
- _cachedRoot = dir;
36
- return dir;
37
- }
38
- }
39
- catch {
40
- // Not found here, walk up
41
- }
42
- const parent = node_path_1.default.dirname(dir);
43
- if (parent === dir) {
44
- // Reached filesystem root
45
- if (startDir === undefined)
46
- _cachedRoot = null;
47
- return null;
48
- }
49
- dir = parent;
50
- }
51
- if (startDir === undefined)
52
- _cachedRoot = null;
53
- return null;
54
- }
55
- /**
56
- * Return a structured MCP success response.
57
- */
58
- function mcpSuccess(data, summary) {
59
- return {
60
- content: [
61
- {
62
- type: 'text',
63
- text: JSON.stringify({ success: true, data, summary }, null, 2),
64
- },
65
- ],
66
- };
67
- }
68
- /**
69
- * Return a structured MCP error response.
70
- */
71
- function mcpError(error, summary) {
72
- return {
73
- content: [
74
- {
75
- type: 'text',
76
- text: JSON.stringify({ success: false, error, summary }, null, 2),
77
- },
78
- ],
79
- isError: true,
80
- };
81
- }
82
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/mcp/utils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;AAWH,8CAgCC;AAKD,gCASC;AAKD,4BAUC;AAtED,sDAAyB;AACzB,0DAA6B;AAE7B;;;GAGG;AACH,IAAI,WAAsC,CAAC;AAE3C,SAAgB,iBAAiB,CAAC,QAAiB;IACjD,+CAA+C;IAC/C,IAAI,QAAQ,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QACxD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,IAAI,GAAG,GAAG,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEpC,yCAAyC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,iBAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACtC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvB,IAAI,QAAQ,KAAK,SAAS;oBAAE,WAAW,GAAG,GAAG,CAAC;gBAC9C,OAAO,GAAG,CAAC;YACb,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;QAED,MAAM,MAAM,GAAG,mBAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,0BAA0B;YAC1B,IAAI,QAAQ,KAAK,SAAS;gBAAE,WAAW,GAAG,IAAI,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IAED,IAAI,QAAQ,KAAK,SAAS;QAAE,WAAW,GAAG,IAAI,CAAC;IAC/C,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,IAA6B,EAAE,OAAe;IACvE,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;aAChE;SACF;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,QAAQ,CAAC,KAAa,EAAE,OAAe;IACrD,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;aAClE;SACF;QACD,OAAO,EAAE,IAAa;KACvB,CAAC;AACJ,CAAC"}
@@ -1,2 +0,0 @@
1
-
2
- export { };
@@ -1,12 +0,0 @@
1
- /**
2
- * MAXSIM MCP Server — Entry point
3
- *
4
- * Provides MCP tools for phase operations, state management, and more.
5
- * Communicates over stdio using the MCP JSON-RPC protocol.
6
- *
7
- * CRITICAL: Never write to stdout directly — stdout is reserved for MCP protocol.
8
- * All logging must go to stderr.
9
- * CRITICAL: Never import output() or error() from core — they call process.exit().
10
- */
11
- export {};
12
- //# sourceMappingURL=mcp-server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
@@ -1,31 +0,0 @@
1
- "use strict";
2
- /**
3
- * MAXSIM MCP Server — Entry point
4
- *
5
- * Provides MCP tools for phase operations, state management, and more.
6
- * Communicates over stdio using the MCP JSON-RPC protocol.
7
- *
8
- * CRITICAL: Never write to stdout directly — stdout is reserved for MCP protocol.
9
- * All logging must go to stderr.
10
- * CRITICAL: Never import output() or error() from core — they call process.exit().
11
- */
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
14
- const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
15
- const index_js_1 = require("./mcp/index.js");
16
- async function main() {
17
- const server = new mcp_js_1.McpServer({
18
- name: 'maxsim',
19
- version: '1.0.0',
20
- });
21
- (0, index_js_1.registerAllTools)(server);
22
- const transport = new stdio_js_1.StdioServerTransport();
23
- await server.connect(transport);
24
- // Log to stderr ONLY — stdout is reserved for MCP JSON-RPC protocol
25
- process.stderr.write('MAXSIM MCP server started\n');
26
- }
27
- main().catch((err) => {
28
- process.stderr.write(`MAXSIM MCP server error: ${err}\n`);
29
- process.exitCode = 1;
30
- });
31
- //# sourceMappingURL=mcp-server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AAEH,oEAAoE;AACpE,wEAAiF;AACjF,6CAAkD;AAElD,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,IAAI,kBAAS,CAAC;QAC3B,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,IAAA,2BAAgB,EAAC,MAAM,CAAC,CAAC;IAEzB,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,oEAAoE;IACpE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;AACtD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,GAAG,IAAI,CAAC,CAAC;IAC1D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}