maxsimcli 4.0.2 → 4.1.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/.tsbuildinfo +1 -1
- package/dist/assets/CHANGELOG.md +8 -0
- package/dist/backend/index.d.ts +4 -0
- package/dist/backend/index.d.ts.map +1 -0
- package/dist/backend/index.js +12 -0
- package/dist/backend/index.js.map +1 -0
- package/dist/backend/lifecycle.d.ts +13 -0
- package/dist/backend/lifecycle.d.ts.map +1 -0
- package/dist/backend/lifecycle.js +168 -0
- package/dist/backend/lifecycle.js.map +1 -0
- package/dist/backend/server.d.ts +13 -0
- package/dist/backend/server.d.ts.map +1 -0
- package/dist/backend/server.js +1013 -0
- package/dist/backend/server.js.map +1 -0
- package/dist/backend/terminal.d.ts +49 -0
- package/dist/backend/terminal.d.ts.map +1 -0
- package/dist/backend/terminal.js +209 -0
- package/dist/backend/terminal.js.map +1 -0
- package/dist/backend/types.d.ts +77 -0
- package/dist/backend/types.d.ts.map +1 -0
- package/dist/backend/types.js +6 -0
- package/dist/backend/types.js.map +1 -0
- package/dist/backend-server.cjs +80513 -0
- package/dist/backend-server.cjs.map +1 -0
- package/dist/backend-server.d.cts +2 -0
- package/dist/backend-server.d.ts +11 -0
- package/dist/backend-server.d.ts.map +1 -0
- package/dist/backend-server.js +43 -0
- package/dist/backend-server.js.map +1 -0
- package/dist/cli.cjs +71 -29
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +23 -3
- package/dist/cli.js.map +1 -1
- package/dist/core/skills.d.ts +4 -3
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +14 -15
- package/dist/core/skills.js.map +1 -1
- package/dist/{core-TFSlUjV1.cjs → core-RRjCSt0G.cjs} +1 -9
- package/dist/{core-TFSlUjV1.cjs.map → core-RRjCSt0G.cjs.map} +1 -1
- package/dist/esm-iIOBzmdz.cjs +1561 -0
- package/dist/esm-iIOBzmdz.cjs.map +1 -0
- package/dist/install.cjs +2 -2
- package/dist/lifecycle-D4E9yP6E.cjs +136 -0
- package/dist/lifecycle-D4E9yP6E.cjs.map +1 -0
- package/dist/mcp/config-tools.d.ts +13 -0
- package/dist/mcp/config-tools.d.ts.map +1 -0
- package/dist/mcp/config-tools.js +66 -0
- package/dist/mcp/config-tools.js.map +1 -0
- package/dist/mcp/context-tools.d.ts +13 -0
- package/dist/mcp/context-tools.d.ts.map +1 -0
- package/dist/mcp/context-tools.js +172 -0
- package/dist/mcp/context-tools.js.map +1 -0
- package/dist/mcp/index.d.ts +0 -1
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +6 -1
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/roadmap-tools.d.ts +13 -0
- package/dist/mcp/roadmap-tools.d.ts.map +1 -0
- package/dist/mcp/roadmap-tools.js +79 -0
- package/dist/mcp/roadmap-tools.js.map +1 -0
- package/dist/mcp-server.cjs +641 -3
- package/dist/mcp-server.cjs.map +1 -1
- package/dist/server-pvY2WbKj.cjs +2980 -0
- package/dist/server-pvY2WbKj.cjs.map +1 -0
- package/dist/{skills-BOSxYUzf.cjs → skills-MYlMkYNt.cjs} +41 -29
- package/dist/skills-MYlMkYNt.cjs.map +1 -0
- package/package.json +7 -1
- package/dist/skills-BOSxYUzf.cjs.map +0 -1
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MAXSIM Backend Server — Entry point
|
|
3
|
+
*
|
|
4
|
+
* Starts the unified backend server (Express + WS + MCP + Terminal).
|
|
5
|
+
* Environment: MAXSIM_PORT, MAXSIM_PROJECT_CWD
|
|
6
|
+
*
|
|
7
|
+
* CRITICAL: Never import output() or error() from core — they call process.exit().
|
|
8
|
+
* CRITICAL: Never write to stdout directly — stdout may be reserved for protocol use.
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=backend-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend-server.d.ts","sourceRoot":"","sources":["../src/backend-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MAXSIM Backend Server — Entry point
|
|
4
|
+
*
|
|
5
|
+
* Starts the unified backend server (Express + WS + MCP + Terminal).
|
|
6
|
+
* Environment: MAXSIM_PORT, MAXSIM_PROJECT_CWD
|
|
7
|
+
*
|
|
8
|
+
* CRITICAL: Never import output() or error() from core — they call process.exit().
|
|
9
|
+
* CRITICAL: Never write to stdout directly — stdout may be reserved for protocol use.
|
|
10
|
+
*/
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
16
|
+
const server_js_1 = require("./backend/server.js");
|
|
17
|
+
const port = parseInt(process.env.MAXSIM_PORT || '3142', 10);
|
|
18
|
+
const cwd = process.env.MAXSIM_PROJECT_CWD || process.cwd();
|
|
19
|
+
const config = {
|
|
20
|
+
port,
|
|
21
|
+
host: '127.0.0.1',
|
|
22
|
+
projectCwd: cwd,
|
|
23
|
+
enableTerminal: true,
|
|
24
|
+
enableFileWatcher: true,
|
|
25
|
+
enableMcp: true,
|
|
26
|
+
logDir: node_path_1.default.join(cwd, '.planning', 'logs'),
|
|
27
|
+
};
|
|
28
|
+
const server = (0, server_js_1.createBackendServer)(config);
|
|
29
|
+
process.on('SIGTERM', async () => {
|
|
30
|
+
await server.stop();
|
|
31
|
+
process.exit(0);
|
|
32
|
+
});
|
|
33
|
+
process.on('SIGINT', async () => {
|
|
34
|
+
await server.stop();
|
|
35
|
+
process.exit(0);
|
|
36
|
+
});
|
|
37
|
+
server.start().then(() => {
|
|
38
|
+
console.error(`MAXSIM backend running on port ${server.getPort()} for ${cwd}`);
|
|
39
|
+
}).catch((err) => {
|
|
40
|
+
console.error('Backend server error:', err);
|
|
41
|
+
process.exitCode = 1;
|
|
42
|
+
});
|
|
43
|
+
//# sourceMappingURL=backend-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend-server.js","sourceRoot":"","sources":["../src/backend-server.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;AAEH,0DAA6B;AAC7B,mDAA0D;AAG1D,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;AAC7D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AAE5D,MAAM,MAAM,GAAkB;IAC5B,IAAI;IACJ,IAAI,EAAE,WAAW;IACjB,UAAU,EAAE,GAAG;IACf,cAAc,EAAE,IAAI;IACpB,iBAAiB,EAAE,IAAI;IACvB,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,GAAG,IAAA,+BAAmB,EAAC,MAAM,CAAC,CAAC;AAE3C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;IAC/B,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;IAC9B,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;IACvB,OAAO,CAAC,KAAK,CAAC,kCAAkC,MAAM,CAAC,OAAO,EAAE,QAAQ,GAAG,EAAE,CAAC,CAAC;AACjF,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACf,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;IAC5C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
|
package/dist/cli.cjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
3
|
//#region \0rolldown/runtime.js
|
|
3
4
|
var __create = Object.create;
|
|
4
5
|
var __defProp$1 = Object.defineProperty;
|
|
@@ -15372,12 +15373,12 @@ function readSkillInfo(skillDir, dirName) {
|
|
|
15372
15373
|
/**
|
|
15373
15374
|
* List all installed skills from `.claude/skills/`.
|
|
15374
15375
|
*/
|
|
15375
|
-
function cmdSkillList(cwd
|
|
15376
|
+
function cmdSkillList(cwd) {
|
|
15376
15377
|
const dir = skillsDir(cwd);
|
|
15377
|
-
if (!node_fs.default.existsSync(dir))
|
|
15378
|
+
if (!node_fs.default.existsSync(dir)) return cmdOk({
|
|
15378
15379
|
skills: [],
|
|
15379
15380
|
count: 0
|
|
15380
|
-
},
|
|
15381
|
+
}, "No skills installed.");
|
|
15381
15382
|
const entries = node_fs.default.readdirSync(dir, { withFileTypes: true });
|
|
15382
15383
|
const skills = [];
|
|
15383
15384
|
for (const entry of entries) {
|
|
@@ -15385,56 +15386,52 @@ function cmdSkillList(cwd, raw) {
|
|
|
15385
15386
|
const info = readSkillInfo(node_path.default.join(dir, entry.name), entry.name);
|
|
15386
15387
|
if (info) skills.push(info);
|
|
15387
15388
|
}
|
|
15388
|
-
|
|
15389
|
+
return cmdOk({
|
|
15389
15390
|
skills,
|
|
15390
15391
|
count: skills.length
|
|
15391
|
-
},
|
|
15392
|
+
}, skills.map((s) => `${s.name}: ${s.description}`).join("\n"));
|
|
15392
15393
|
}
|
|
15393
15394
|
/**
|
|
15394
15395
|
* Install a specific skill from the templates directory.
|
|
15395
15396
|
*/
|
|
15396
|
-
function cmdSkillInstall(cwd, skillName
|
|
15397
|
-
if (!skillName)
|
|
15397
|
+
function cmdSkillInstall(cwd, skillName) {
|
|
15398
|
+
if (!skillName) return cmdErr("skill name required. Usage: skill-install <name>");
|
|
15398
15399
|
const srcFile = node_path.default.join(skillsTemplateDir(), skillName, "SKILL.md");
|
|
15399
|
-
if (!node_fs.default.existsSync(srcFile))
|
|
15400
|
+
if (!node_fs.default.existsSync(srcFile)) return cmdErr(`Skill "${skillName}" not found in templates. Available: ${listAvailableTemplates().join(", ")}`);
|
|
15400
15401
|
const destDir = node_path.default.join(skillsDir(cwd), skillName);
|
|
15401
15402
|
const destFile = node_path.default.join(destDir, "SKILL.md");
|
|
15402
15403
|
node_fs.default.mkdirSync(destDir, { recursive: true });
|
|
15403
15404
|
node_fs.default.copyFileSync(srcFile, destFile);
|
|
15404
|
-
|
|
15405
|
+
return cmdOk({
|
|
15405
15406
|
installed: true,
|
|
15406
15407
|
skill: skillName,
|
|
15407
15408
|
path: node_path.default.relative(cwd, destFile)
|
|
15408
|
-
},
|
|
15409
|
+
}, `Installed skill: ${skillName}`);
|
|
15409
15410
|
}
|
|
15410
15411
|
/**
|
|
15411
15412
|
* Update one or all installed skills from the templates source.
|
|
15412
15413
|
*/
|
|
15413
|
-
function cmdSkillUpdate(cwd, skillName
|
|
15414
|
+
function cmdSkillUpdate(cwd, skillName) {
|
|
15414
15415
|
const dir = skillsDir(cwd);
|
|
15415
15416
|
const templateDir = skillsTemplateDir();
|
|
15416
15417
|
if (skillName) {
|
|
15417
15418
|
const srcFile = node_path.default.join(templateDir, skillName, "SKILL.md");
|
|
15418
|
-
if (!node_fs.default.existsSync(srcFile))
|
|
15419
|
+
if (!node_fs.default.existsSync(srcFile)) return cmdErr(`Skill template "${skillName}" not found.`);
|
|
15419
15420
|
const destDir = node_path.default.join(dir, skillName);
|
|
15420
|
-
if (!node_fs.default.existsSync(destDir))
|
|
15421
|
+
if (!node_fs.default.existsSync(destDir)) return cmdErr(`Skill "${skillName}" is not installed. Use skill-install first.`);
|
|
15421
15422
|
const destFile = node_path.default.join(destDir, "SKILL.md");
|
|
15422
15423
|
node_fs.default.copyFileSync(srcFile, destFile);
|
|
15423
|
-
|
|
15424
|
+
return cmdOk({
|
|
15424
15425
|
updated: [skillName],
|
|
15425
15426
|
skipped: [],
|
|
15426
15427
|
not_found: []
|
|
15427
|
-
},
|
|
15428
|
-
return;
|
|
15429
|
-
}
|
|
15430
|
-
if (!node_fs.default.existsSync(dir)) {
|
|
15431
|
-
output({
|
|
15432
|
-
updated: [],
|
|
15433
|
-
skipped: [],
|
|
15434
|
-
not_found: []
|
|
15435
|
-
}, raw, "No skills installed.");
|
|
15436
|
-
return;
|
|
15428
|
+
}, `Updated skill: ${skillName}`);
|
|
15437
15429
|
}
|
|
15430
|
+
if (!node_fs.default.existsSync(dir)) return cmdOk({
|
|
15431
|
+
updated: [],
|
|
15432
|
+
skipped: [],
|
|
15433
|
+
not_found: []
|
|
15434
|
+
}, "No skills installed.");
|
|
15438
15435
|
const entries = node_fs.default.readdirSync(dir, { withFileTypes: true });
|
|
15439
15436
|
const updated = [];
|
|
15440
15437
|
const skipped = [];
|
|
@@ -15451,10 +15448,10 @@ function cmdSkillUpdate(cwd, skillName, raw) {
|
|
|
15451
15448
|
updated.push(name);
|
|
15452
15449
|
}
|
|
15453
15450
|
const summary = updated.length > 0 ? `Updated ${updated.length} skill(s): ${updated.join(", ")}` : "No skills updated.";
|
|
15454
|
-
|
|
15451
|
+
return cmdOk({
|
|
15455
15452
|
updated,
|
|
15456
15453
|
skipped
|
|
15457
|
-
},
|
|
15454
|
+
}, summary);
|
|
15458
15455
|
}
|
|
15459
15456
|
function listAvailableTemplates() {
|
|
15460
15457
|
const dir = skillsTemplateDir();
|
|
@@ -16501,9 +16498,9 @@ const COMMANDS = {
|
|
|
16501
16498
|
"artefakte-append": (args, cwd, raw) => handleResult(cmdArtefakteAppend(cwd, args[1], getFlag(args, "--entry") ?? void 0, getFlag(args, "--phase") ?? void 0, raw), raw),
|
|
16502
16499
|
"artefakte-list": (args, cwd, raw) => handleResult(cmdArtefakteList(cwd, getFlag(args, "--phase") ?? void 0, raw), raw),
|
|
16503
16500
|
"context-load": (args, cwd, raw) => handleResult(cmdContextLoad(cwd, getFlag(args, "--phase") ?? void 0, getFlag(args, "--topic") ?? void 0, hasFlag(args, "include-history")), raw),
|
|
16504
|
-
"skill-list": (_args, cwd, raw) => cmdSkillList(cwd, raw),
|
|
16505
|
-
"skill-install": (args, cwd, raw) => cmdSkillInstall(cwd, args[1], raw),
|
|
16506
|
-
"skill-update": (args, cwd, raw) => cmdSkillUpdate(cwd, args[1], raw),
|
|
16501
|
+
"skill-list": (_args, cwd, raw) => handleResult(cmdSkillList(cwd), raw),
|
|
16502
|
+
"skill-install": (args, cwd, raw) => handleResult(cmdSkillInstall(cwd, args[1]), raw),
|
|
16503
|
+
"skill-update": (args, cwd, raw) => handleResult(cmdSkillUpdate(cwd, args[1]), raw),
|
|
16507
16504
|
"start": async (args, cwd, raw) => handleResult(await cmdStart(cwd, {
|
|
16508
16505
|
noBrowser: hasFlag(args, "no-browser"),
|
|
16509
16506
|
networkMode: hasFlag(args, "network")
|
|
@@ -16512,6 +16509,23 @@ const COMMANDS = {
|
|
|
16512
16509
|
"start-server": async () => {
|
|
16513
16510
|
const serverPath = node_path.join(__dirname, "mcp-server.cjs");
|
|
16514
16511
|
(0, node_child_process.spawn)(process.execPath, [serverPath], { stdio: "inherit" }).on("exit", (code) => process.exit(code ?? 0));
|
|
16512
|
+
},
|
|
16513
|
+
"backend-start": async (args, cwd, raw) => {
|
|
16514
|
+
const { startBackend } = await Promise.resolve().then(() => require("./lifecycle-D4E9yP6E.cjs"));
|
|
16515
|
+
const portFlag = args.find((a) => a.startsWith("--port="))?.split("=")[1];
|
|
16516
|
+
const background = !args.includes("--foreground");
|
|
16517
|
+
output(await startBackend(cwd, {
|
|
16518
|
+
port: portFlag ? parseInt(portFlag, 10) : void 0,
|
|
16519
|
+
background
|
|
16520
|
+
}), raw);
|
|
16521
|
+
},
|
|
16522
|
+
"backend-stop": async (_args, cwd, raw) => {
|
|
16523
|
+
const { stopBackend } = await Promise.resolve().then(() => require("./lifecycle-D4E9yP6E.cjs"));
|
|
16524
|
+
output({ stopped: await stopBackend(cwd) }, raw);
|
|
16525
|
+
},
|
|
16526
|
+
"backend-status": async (_args, cwd, raw) => {
|
|
16527
|
+
const { getBackendStatus } = await Promise.resolve().then(() => require("./lifecycle-D4E9yP6E.cjs"));
|
|
16528
|
+
output(await getBackendStatus(cwd) || { running: false }, raw);
|
|
16515
16529
|
}
|
|
16516
16530
|
};
|
|
16517
16531
|
async function main() {
|
|
@@ -16604,4 +16618,32 @@ async function handleDashboard(args) {
|
|
|
16604
16618
|
main();
|
|
16605
16619
|
|
|
16606
16620
|
//#endregion
|
|
16621
|
+
exports.__commonJSMin = __commonJSMin;
|
|
16622
|
+
exports.__toESM = __toESM;
|
|
16623
|
+
exports.appendToStateSection = appendToStateSection;
|
|
16624
|
+
exports.cmdConfigGet = cmdConfigGet;
|
|
16625
|
+
exports.cmdConfigSet = cmdConfigSet;
|
|
16626
|
+
exports.cmdContextLoad = cmdContextLoad;
|
|
16627
|
+
exports.cmdRoadmapAnalyze = cmdRoadmapAnalyze;
|
|
16628
|
+
exports.comparePhaseNum = comparePhaseNum;
|
|
16629
|
+
exports.escapeStringRegexp = escapeStringRegexp;
|
|
16630
|
+
exports.extractFrontmatter = extractFrontmatter;
|
|
16631
|
+
exports.findPhaseInternal = findPhaseInternal;
|
|
16632
|
+
exports.generateSlugInternal = generateSlugInternal;
|
|
16633
|
+
exports.getArchivedPhaseDirs = getArchivedPhaseDirs;
|
|
16634
|
+
exports.getPhasePattern = getPhasePattern;
|
|
16635
|
+
exports.listSubDirs = listSubDirs;
|
|
16636
|
+
exports.loadConfig = loadConfig;
|
|
16637
|
+
exports.normalizePhaseName = normalizePhaseName;
|
|
16638
|
+
exports.parseTodoFrontmatter = parseTodoFrontmatter;
|
|
16639
|
+
exports.phaseAddCore = phaseAddCore;
|
|
16640
|
+
exports.phaseCompleteCore = phaseCompleteCore;
|
|
16641
|
+
exports.phaseInsertCore = phaseInsertCore;
|
|
16642
|
+
exports.phasesPath = phasesPath;
|
|
16643
|
+
exports.planningPath = planningPath;
|
|
16644
|
+
exports.safeReadFile = safeReadFile;
|
|
16645
|
+
exports.stateExtractField = stateExtractField;
|
|
16646
|
+
exports.statePath = statePath;
|
|
16647
|
+
exports.stateReplaceField = stateReplaceField;
|
|
16648
|
+
exports.todayISO = todayISO;
|
|
16607
16649
|
//# sourceMappingURL=cli.cjs.map
|