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.
- package/dist/assets/CHANGELOG.md +38 -0
- package/dist/backend-server.cjs +2739 -41
- package/dist/backend-server.cjs.map +1 -1
- package/dist/cli.cjs +3 -3
- package/dist/{lifecycle-DxCru7rk.cjs → lifecycle-D8mcsEjy.cjs} +2 -2
- package/dist/{lifecycle-DxCru7rk.cjs.map → lifecycle-D8mcsEjy.cjs.map} +1 -1
- package/dist/mcp-server.cjs +2715 -16
- package/dist/mcp-server.cjs.map +1 -1
- package/dist/{server-By0TN-nC.cjs → server-BAHfh_vw.cjs} +2716 -17
- package/dist/server-BAHfh_vw.cjs.map +1 -0
- package/package.json +1 -1
- package/dist/.tsbuildinfo +0 -1
- package/dist/backend/index.d.ts +0 -4
- package/dist/backend/index.d.ts.map +0 -1
- package/dist/backend/index.js +0 -12
- package/dist/backend/index.js.map +0 -1
- package/dist/backend/lifecycle.d.ts +0 -13
- package/dist/backend/lifecycle.d.ts.map +0 -1
- package/dist/backend/lifecycle.js +0 -168
- package/dist/backend/lifecycle.js.map +0 -1
- package/dist/backend/server.d.ts +0 -13
- package/dist/backend/server.d.ts.map +0 -1
- package/dist/backend/server.js +0 -1013
- package/dist/backend/server.js.map +0 -1
- package/dist/backend/terminal.d.ts +0 -49
- package/dist/backend/terminal.d.ts.map +0 -1
- package/dist/backend/terminal.js +0 -209
- package/dist/backend/terminal.js.map +0 -1
- package/dist/backend/types.d.ts +0 -77
- package/dist/backend/types.d.ts.map +0 -1
- package/dist/backend/types.js +0 -6
- package/dist/backend/types.js.map +0 -1
- package/dist/backend-server.d.cts +0 -2
- package/dist/backend-server.d.ts +0 -11
- package/dist/backend-server.d.ts.map +0 -1
- package/dist/backend-server.js +0 -43
- package/dist/backend-server.js.map +0 -1
- package/dist/cli.d.cts +0 -2
- package/dist/cli.d.ts +0 -7
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -510
- package/dist/cli.js.map +0 -1
- package/dist/core/artefakte.d.ts +0 -12
- package/dist/core/artefakte.d.ts.map +0 -1
- package/dist/core/artefakte.js +0 -152
- package/dist/core/artefakte.js.map +0 -1
- package/dist/core/commands.d.ts +0 -26
- package/dist/core/commands.d.ts.map +0 -1
- package/dist/core/commands.js +0 -550
- package/dist/core/commands.js.map +0 -1
- package/dist/core/config.d.ts +0 -10
- package/dist/core/config.d.ts.map +0 -1
- package/dist/core/config.js +0 -143
- package/dist/core/config.js.map +0 -1
- package/dist/core/context-loader.d.ts +0 -21
- package/dist/core/context-loader.d.ts.map +0 -1
- package/dist/core/context-loader.js +0 -212
- package/dist/core/context-loader.js.map +0 -1
- package/dist/core/core.d.ts +0 -91
- package/dist/core/core.d.ts.map +0 -1
- package/dist/core/core.js +0 -823
- package/dist/core/core.js.map +0 -1
- package/dist/core/dashboard-launcher.d.ts +0 -56
- package/dist/core/dashboard-launcher.d.ts.map +0 -1
- package/dist/core/dashboard-launcher.js +0 -246
- package/dist/core/dashboard-launcher.js.map +0 -1
- package/dist/core/drift.d.ts +0 -37
- package/dist/core/drift.d.ts.map +0 -1
- package/dist/core/drift.js +0 -213
- package/dist/core/drift.js.map +0 -1
- package/dist/core/frontmatter.d.ts +0 -33
- package/dist/core/frontmatter.d.ts.map +0 -1
- package/dist/core/frontmatter.js +0 -193
- package/dist/core/frontmatter.js.map +0 -1
- package/dist/core/index.d.ts +0 -28
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -189
- package/dist/core/index.js.map +0 -1
- package/dist/core/init.d.ts +0 -287
- package/dist/core/init.d.ts.map +0 -1
- package/dist/core/init.js +0 -816
- package/dist/core/init.js.map +0 -1
- package/dist/core/milestone.d.ts +0 -9
- package/dist/core/milestone.d.ts.map +0 -1
- package/dist/core/milestone.js +0 -230
- package/dist/core/milestone.js.map +0 -1
- package/dist/core/phase.d.ts +0 -53
- package/dist/core/phase.d.ts.map +0 -1
- package/dist/core/phase.js +0 -891
- package/dist/core/phase.js.map +0 -1
- package/dist/core/roadmap.d.ts +0 -10
- package/dist/core/roadmap.d.ts.map +0 -1
- package/dist/core/roadmap.js +0 -165
- package/dist/core/roadmap.js.map +0 -1
- package/dist/core/skills.d.ts +0 -20
- package/dist/core/skills.d.ts.map +0 -1
- package/dist/core/skills.js +0 -144
- package/dist/core/skills.js.map +0 -1
- package/dist/core/start.d.ts +0 -15
- package/dist/core/start.d.ts.map +0 -1
- package/dist/core/start.js +0 -80
- package/dist/core/start.js.map +0 -1
- package/dist/core/state.d.ts +0 -32
- package/dist/core/state.d.ts.map +0 -1
- package/dist/core/state.js +0 -582
- package/dist/core/state.js.map +0 -1
- package/dist/core/template.d.ts +0 -30
- package/dist/core/template.d.ts.map +0 -1
- package/dist/core/template.js +0 -223
- package/dist/core/template.js.map +0 -1
- package/dist/core/types.d.ts +0 -519
- package/dist/core/types.d.ts.map +0 -1
- package/dist/core/types.js +0 -60
- package/dist/core/types.js.map +0 -1
- package/dist/core/verify.d.ts +0 -128
- package/dist/core/verify.d.ts.map +0 -1
- package/dist/core/verify.js +0 -754
- package/dist/core/verify.js.map +0 -1
- package/dist/hooks/index.d.ts +0 -11
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/hooks/index.js +0 -18
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/maxsim-check-update.d.ts +0 -17
- package/dist/hooks/maxsim-check-update.d.ts.map +0 -1
- package/dist/hooks/maxsim-check-update.js +0 -101
- package/dist/hooks/maxsim-check-update.js.map +0 -1
- package/dist/hooks/maxsim-context-monitor.d.ts +0 -21
- package/dist/hooks/maxsim-context-monitor.d.ts.map +0 -1
- package/dist/hooks/maxsim-context-monitor.js +0 -131
- package/dist/hooks/maxsim-context-monitor.js.map +0 -1
- package/dist/hooks/maxsim-statusline.d.ts +0 -19
- package/dist/hooks/maxsim-statusline.d.ts.map +0 -1
- package/dist/hooks/maxsim-statusline.js +0 -146
- package/dist/hooks/maxsim-statusline.js.map +0 -1
- package/dist/hooks/shared.d.ts +0 -11
- package/dist/hooks/shared.d.ts.map +0 -1
- package/dist/hooks/shared.js +0 -29
- package/dist/hooks/shared.js.map +0 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -3
- package/dist/index.js.map +0 -1
- package/dist/install/adapters.d.ts +0 -6
- package/dist/install/adapters.d.ts.map +0 -1
- package/dist/install/adapters.js +0 -65
- package/dist/install/adapters.js.map +0 -1
- package/dist/install/copy.d.ts +0 -6
- package/dist/install/copy.d.ts.map +0 -1
- package/dist/install/copy.js +0 -71
- package/dist/install/copy.js.map +0 -1
- package/dist/install/dashboard.d.ts +0 -16
- package/dist/install/dashboard.d.ts.map +0 -1
- package/dist/install/dashboard.js +0 -273
- package/dist/install/dashboard.js.map +0 -1
- package/dist/install/hooks.d.ts +0 -31
- package/dist/install/hooks.d.ts.map +0 -1
- package/dist/install/hooks.js +0 -260
- package/dist/install/hooks.js.map +0 -1
- package/dist/install/index.d.ts +0 -2
- package/dist/install/index.d.ts.map +0 -1
- package/dist/install/index.js +0 -534
- package/dist/install/index.js.map +0 -1
- package/dist/install/manifest.d.ts +0 -23
- package/dist/install/manifest.d.ts.map +0 -1
- package/dist/install/manifest.js +0 -133
- package/dist/install/manifest.js.map +0 -1
- package/dist/install/patches.d.ts +0 -10
- package/dist/install/patches.d.ts.map +0 -1
- package/dist/install/patches.js +0 -124
- package/dist/install/patches.js.map +0 -1
- package/dist/install/shared.d.ts +0 -56
- package/dist/install/shared.d.ts.map +0 -1
- package/dist/install/shared.js +0 -181
- package/dist/install/shared.js.map +0 -1
- package/dist/install/uninstall.d.ts +0 -5
- package/dist/install/uninstall.d.ts.map +0 -1
- package/dist/install/uninstall.js +0 -222
- package/dist/install/uninstall.js.map +0 -1
- package/dist/install/utils.d.ts +0 -27
- package/dist/install/utils.d.ts.map +0 -1
- package/dist/install/utils.js +0 -99
- package/dist/install/utils.js.map +0 -1
- package/dist/install.d.cts +0 -2
- package/dist/mcp/config-tools.d.ts +0 -13
- package/dist/mcp/config-tools.d.ts.map +0 -1
- package/dist/mcp/config-tools.js +0 -66
- package/dist/mcp/config-tools.js.map +0 -1
- package/dist/mcp/context-tools.d.ts +0 -13
- package/dist/mcp/context-tools.d.ts.map +0 -1
- package/dist/mcp/context-tools.js +0 -176
- package/dist/mcp/context-tools.js.map +0 -1
- package/dist/mcp/index.d.ts +0 -11
- package/dist/mcp/index.d.ts.map +0 -1
- package/dist/mcp/index.js +0 -26
- package/dist/mcp/index.js.map +0 -1
- package/dist/mcp/phase-tools.d.ts +0 -13
- package/dist/mcp/phase-tools.d.ts.map +0 -1
- package/dist/mcp/phase-tools.js +0 -177
- package/dist/mcp/phase-tools.js.map +0 -1
- package/dist/mcp/roadmap-tools.d.ts +0 -13
- package/dist/mcp/roadmap-tools.d.ts.map +0 -1
- package/dist/mcp/roadmap-tools.js +0 -79
- package/dist/mcp/roadmap-tools.js.map +0 -1
- package/dist/mcp/state-tools.d.ts +0 -13
- package/dist/mcp/state-tools.d.ts.map +0 -1
- package/dist/mcp/state-tools.js +0 -185
- package/dist/mcp/state-tools.js.map +0 -1
- package/dist/mcp/todo-tools.d.ts +0 -13
- package/dist/mcp/todo-tools.d.ts.map +0 -1
- package/dist/mcp/todo-tools.js +0 -143
- package/dist/mcp/todo-tools.js.map +0 -1
- package/dist/mcp/utils.d.ts +0 -27
- package/dist/mcp/utils.d.ts.map +0 -1
- package/dist/mcp/utils.js +0 -82
- package/dist/mcp/utils.js.map +0 -1
- package/dist/mcp-server.d.cts +0 -2
- package/dist/mcp-server.d.ts +0 -12
- package/dist/mcp-server.d.ts.map +0 -1
- package/dist/mcp-server.js +0 -31
- package/dist/mcp-server.js.map +0 -1
- package/dist/server-By0TN-nC.cjs.map +0 -1
package/dist/mcp/state-tools.js
DELETED
|
@@ -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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"}
|
package/dist/mcp/todo-tools.d.ts
DELETED
|
@@ -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"}
|
package/dist/mcp/todo-tools.js
DELETED
|
@@ -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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"}
|
package/dist/mcp/utils.d.ts
DELETED
|
@@ -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
|
package/dist/mcp/utils.d.ts.map
DELETED
|
@@ -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
|
package/dist/mcp/utils.js.map
DELETED
|
@@ -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"}
|
package/dist/mcp-server.d.cts
DELETED
package/dist/mcp-server.d.ts
DELETED
|
@@ -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
|
package/dist/mcp-server.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|
package/dist/mcp-server.js
DELETED
|
@@ -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
|
package/dist/mcp-server.js.map
DELETED
|
@@ -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"}
|