maxsimcli 4.5.0 → 4.7.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 (221) hide show
  1. package/dist/assets/CHANGELOG.md +38 -0
  2. package/dist/backend-server.cjs +2739 -41
  3. package/dist/backend-server.cjs.map +1 -1
  4. package/dist/cli.cjs +3 -3
  5. package/dist/{lifecycle-DxCru7rk.cjs → lifecycle-D8mcsEjy.cjs} +2 -2
  6. package/dist/{lifecycle-DxCru7rk.cjs.map → lifecycle-D8mcsEjy.cjs.map} +1 -1
  7. package/dist/mcp-server.cjs +2715 -16
  8. package/dist/mcp-server.cjs.map +1 -1
  9. package/dist/{server-By0TN-nC.cjs → server-BAHfh_vw.cjs} +2716 -17
  10. package/dist/server-BAHfh_vw.cjs.map +1 -0
  11. package/package.json +1 -1
  12. package/dist/.tsbuildinfo +0 -1
  13. package/dist/backend/index.d.ts +0 -4
  14. package/dist/backend/index.d.ts.map +0 -1
  15. package/dist/backend/index.js +0 -12
  16. package/dist/backend/index.js.map +0 -1
  17. package/dist/backend/lifecycle.d.ts +0 -13
  18. package/dist/backend/lifecycle.d.ts.map +0 -1
  19. package/dist/backend/lifecycle.js +0 -168
  20. package/dist/backend/lifecycle.js.map +0 -1
  21. package/dist/backend/server.d.ts +0 -13
  22. package/dist/backend/server.d.ts.map +0 -1
  23. package/dist/backend/server.js +0 -1013
  24. package/dist/backend/server.js.map +0 -1
  25. package/dist/backend/terminal.d.ts +0 -49
  26. package/dist/backend/terminal.d.ts.map +0 -1
  27. package/dist/backend/terminal.js +0 -209
  28. package/dist/backend/terminal.js.map +0 -1
  29. package/dist/backend/types.d.ts +0 -77
  30. package/dist/backend/types.d.ts.map +0 -1
  31. package/dist/backend/types.js +0 -6
  32. package/dist/backend/types.js.map +0 -1
  33. package/dist/backend-server.d.cts +0 -2
  34. package/dist/backend-server.d.ts +0 -11
  35. package/dist/backend-server.d.ts.map +0 -1
  36. package/dist/backend-server.js +0 -43
  37. package/dist/backend-server.js.map +0 -1
  38. package/dist/cli.d.cts +0 -2
  39. package/dist/cli.d.ts +0 -7
  40. package/dist/cli.d.ts.map +0 -1
  41. package/dist/cli.js +0 -510
  42. package/dist/cli.js.map +0 -1
  43. package/dist/core/artefakte.d.ts +0 -12
  44. package/dist/core/artefakte.d.ts.map +0 -1
  45. package/dist/core/artefakte.js +0 -152
  46. package/dist/core/artefakte.js.map +0 -1
  47. package/dist/core/commands.d.ts +0 -26
  48. package/dist/core/commands.d.ts.map +0 -1
  49. package/dist/core/commands.js +0 -550
  50. package/dist/core/commands.js.map +0 -1
  51. package/dist/core/config.d.ts +0 -10
  52. package/dist/core/config.d.ts.map +0 -1
  53. package/dist/core/config.js +0 -143
  54. package/dist/core/config.js.map +0 -1
  55. package/dist/core/context-loader.d.ts +0 -21
  56. package/dist/core/context-loader.d.ts.map +0 -1
  57. package/dist/core/context-loader.js +0 -212
  58. package/dist/core/context-loader.js.map +0 -1
  59. package/dist/core/core.d.ts +0 -91
  60. package/dist/core/core.d.ts.map +0 -1
  61. package/dist/core/core.js +0 -823
  62. package/dist/core/core.js.map +0 -1
  63. package/dist/core/dashboard-launcher.d.ts +0 -56
  64. package/dist/core/dashboard-launcher.d.ts.map +0 -1
  65. package/dist/core/dashboard-launcher.js +0 -246
  66. package/dist/core/dashboard-launcher.js.map +0 -1
  67. package/dist/core/drift.d.ts +0 -37
  68. package/dist/core/drift.d.ts.map +0 -1
  69. package/dist/core/drift.js +0 -213
  70. package/dist/core/drift.js.map +0 -1
  71. package/dist/core/frontmatter.d.ts +0 -33
  72. package/dist/core/frontmatter.d.ts.map +0 -1
  73. package/dist/core/frontmatter.js +0 -193
  74. package/dist/core/frontmatter.js.map +0 -1
  75. package/dist/core/index.d.ts +0 -28
  76. package/dist/core/index.d.ts.map +0 -1
  77. package/dist/core/index.js +0 -189
  78. package/dist/core/index.js.map +0 -1
  79. package/dist/core/init.d.ts +0 -287
  80. package/dist/core/init.d.ts.map +0 -1
  81. package/dist/core/init.js +0 -816
  82. package/dist/core/init.js.map +0 -1
  83. package/dist/core/milestone.d.ts +0 -9
  84. package/dist/core/milestone.d.ts.map +0 -1
  85. package/dist/core/milestone.js +0 -230
  86. package/dist/core/milestone.js.map +0 -1
  87. package/dist/core/phase.d.ts +0 -53
  88. package/dist/core/phase.d.ts.map +0 -1
  89. package/dist/core/phase.js +0 -891
  90. package/dist/core/phase.js.map +0 -1
  91. package/dist/core/roadmap.d.ts +0 -10
  92. package/dist/core/roadmap.d.ts.map +0 -1
  93. package/dist/core/roadmap.js +0 -165
  94. package/dist/core/roadmap.js.map +0 -1
  95. package/dist/core/skills.d.ts +0 -20
  96. package/dist/core/skills.d.ts.map +0 -1
  97. package/dist/core/skills.js +0 -144
  98. package/dist/core/skills.js.map +0 -1
  99. package/dist/core/start.d.ts +0 -15
  100. package/dist/core/start.d.ts.map +0 -1
  101. package/dist/core/start.js +0 -80
  102. package/dist/core/start.js.map +0 -1
  103. package/dist/core/state.d.ts +0 -32
  104. package/dist/core/state.d.ts.map +0 -1
  105. package/dist/core/state.js +0 -582
  106. package/dist/core/state.js.map +0 -1
  107. package/dist/core/template.d.ts +0 -30
  108. package/dist/core/template.d.ts.map +0 -1
  109. package/dist/core/template.js +0 -223
  110. package/dist/core/template.js.map +0 -1
  111. package/dist/core/types.d.ts +0 -519
  112. package/dist/core/types.d.ts.map +0 -1
  113. package/dist/core/types.js +0 -60
  114. package/dist/core/types.js.map +0 -1
  115. package/dist/core/verify.d.ts +0 -128
  116. package/dist/core/verify.d.ts.map +0 -1
  117. package/dist/core/verify.js +0 -754
  118. package/dist/core/verify.js.map +0 -1
  119. package/dist/hooks/index.d.ts +0 -11
  120. package/dist/hooks/index.d.ts.map +0 -1
  121. package/dist/hooks/index.js +0 -18
  122. package/dist/hooks/index.js.map +0 -1
  123. package/dist/hooks/maxsim-check-update.d.ts +0 -17
  124. package/dist/hooks/maxsim-check-update.d.ts.map +0 -1
  125. package/dist/hooks/maxsim-check-update.js +0 -101
  126. package/dist/hooks/maxsim-check-update.js.map +0 -1
  127. package/dist/hooks/maxsim-context-monitor.d.ts +0 -21
  128. package/dist/hooks/maxsim-context-monitor.d.ts.map +0 -1
  129. package/dist/hooks/maxsim-context-monitor.js +0 -131
  130. package/dist/hooks/maxsim-context-monitor.js.map +0 -1
  131. package/dist/hooks/maxsim-statusline.d.ts +0 -19
  132. package/dist/hooks/maxsim-statusline.d.ts.map +0 -1
  133. package/dist/hooks/maxsim-statusline.js +0 -146
  134. package/dist/hooks/maxsim-statusline.js.map +0 -1
  135. package/dist/hooks/shared.d.ts +0 -11
  136. package/dist/hooks/shared.d.ts.map +0 -1
  137. package/dist/hooks/shared.js +0 -29
  138. package/dist/hooks/shared.js.map +0 -1
  139. package/dist/index.d.ts +0 -2
  140. package/dist/index.d.ts.map +0 -1
  141. package/dist/index.js +0 -3
  142. package/dist/index.js.map +0 -1
  143. package/dist/install/adapters.d.ts +0 -6
  144. package/dist/install/adapters.d.ts.map +0 -1
  145. package/dist/install/adapters.js +0 -65
  146. package/dist/install/adapters.js.map +0 -1
  147. package/dist/install/copy.d.ts +0 -6
  148. package/dist/install/copy.d.ts.map +0 -1
  149. package/dist/install/copy.js +0 -71
  150. package/dist/install/copy.js.map +0 -1
  151. package/dist/install/dashboard.d.ts +0 -16
  152. package/dist/install/dashboard.d.ts.map +0 -1
  153. package/dist/install/dashboard.js +0 -273
  154. package/dist/install/dashboard.js.map +0 -1
  155. package/dist/install/hooks.d.ts +0 -31
  156. package/dist/install/hooks.d.ts.map +0 -1
  157. package/dist/install/hooks.js +0 -260
  158. package/dist/install/hooks.js.map +0 -1
  159. package/dist/install/index.d.ts +0 -2
  160. package/dist/install/index.d.ts.map +0 -1
  161. package/dist/install/index.js +0 -534
  162. package/dist/install/index.js.map +0 -1
  163. package/dist/install/manifest.d.ts +0 -23
  164. package/dist/install/manifest.d.ts.map +0 -1
  165. package/dist/install/manifest.js +0 -133
  166. package/dist/install/manifest.js.map +0 -1
  167. package/dist/install/patches.d.ts +0 -10
  168. package/dist/install/patches.d.ts.map +0 -1
  169. package/dist/install/patches.js +0 -124
  170. package/dist/install/patches.js.map +0 -1
  171. package/dist/install/shared.d.ts +0 -56
  172. package/dist/install/shared.d.ts.map +0 -1
  173. package/dist/install/shared.js +0 -181
  174. package/dist/install/shared.js.map +0 -1
  175. package/dist/install/uninstall.d.ts +0 -5
  176. package/dist/install/uninstall.d.ts.map +0 -1
  177. package/dist/install/uninstall.js +0 -222
  178. package/dist/install/uninstall.js.map +0 -1
  179. package/dist/install/utils.d.ts +0 -27
  180. package/dist/install/utils.d.ts.map +0 -1
  181. package/dist/install/utils.js +0 -99
  182. package/dist/install/utils.js.map +0 -1
  183. package/dist/install.d.cts +0 -2
  184. package/dist/mcp/config-tools.d.ts +0 -13
  185. package/dist/mcp/config-tools.d.ts.map +0 -1
  186. package/dist/mcp/config-tools.js +0 -66
  187. package/dist/mcp/config-tools.js.map +0 -1
  188. package/dist/mcp/context-tools.d.ts +0 -13
  189. package/dist/mcp/context-tools.d.ts.map +0 -1
  190. package/dist/mcp/context-tools.js +0 -176
  191. package/dist/mcp/context-tools.js.map +0 -1
  192. package/dist/mcp/index.d.ts +0 -11
  193. package/dist/mcp/index.d.ts.map +0 -1
  194. package/dist/mcp/index.js +0 -26
  195. package/dist/mcp/index.js.map +0 -1
  196. package/dist/mcp/phase-tools.d.ts +0 -13
  197. package/dist/mcp/phase-tools.d.ts.map +0 -1
  198. package/dist/mcp/phase-tools.js +0 -177
  199. package/dist/mcp/phase-tools.js.map +0 -1
  200. package/dist/mcp/roadmap-tools.d.ts +0 -13
  201. package/dist/mcp/roadmap-tools.d.ts.map +0 -1
  202. package/dist/mcp/roadmap-tools.js +0 -79
  203. package/dist/mcp/roadmap-tools.js.map +0 -1
  204. package/dist/mcp/state-tools.d.ts +0 -13
  205. package/dist/mcp/state-tools.d.ts.map +0 -1
  206. package/dist/mcp/state-tools.js +0 -185
  207. package/dist/mcp/state-tools.js.map +0 -1
  208. package/dist/mcp/todo-tools.d.ts +0 -13
  209. package/dist/mcp/todo-tools.d.ts.map +0 -1
  210. package/dist/mcp/todo-tools.js +0 -143
  211. package/dist/mcp/todo-tools.js.map +0 -1
  212. package/dist/mcp/utils.d.ts +0 -27
  213. package/dist/mcp/utils.d.ts.map +0 -1
  214. package/dist/mcp/utils.js +0 -82
  215. package/dist/mcp/utils.js.map +0 -1
  216. package/dist/mcp-server.d.cts +0 -2
  217. package/dist/mcp-server.d.ts +0 -12
  218. package/dist/mcp-server.d.ts.map +0 -1
  219. package/dist/mcp-server.js +0 -31
  220. package/dist/mcp-server.js.map +0 -1
  221. 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"}