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,143 +0,0 @@
1
- "use strict";
2
- /**
3
- * Config — Planning config CRUD operations
4
- *
5
- * Ported from maxsim/bin/lib/config.cjs
6
- */
7
- var __importDefault = (this && this.__importDefault) || function (mod) {
8
- return (mod && mod.__esModule) ? mod : { "default": mod };
9
- };
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.cmdConfigEnsureSection = cmdConfigEnsureSection;
12
- exports.cmdConfigSet = cmdConfigSet;
13
- exports.cmdConfigGet = cmdConfigGet;
14
- const node_fs_1 = __importDefault(require("node:fs"));
15
- const node_path_1 = __importDefault(require("node:path"));
16
- const node_os_1 = __importDefault(require("node:os"));
17
- const types_js_1 = require("./types.js");
18
- // ─── Config CRUD commands ───────────────────────────────────────────────────
19
- function cmdConfigEnsureSection(cwd, raw) {
20
- const configPath = node_path_1.default.join(cwd, '.planning', 'config.json');
21
- const planningDir = node_path_1.default.join(cwd, '.planning');
22
- try {
23
- if (!node_fs_1.default.existsSync(planningDir)) {
24
- node_fs_1.default.mkdirSync(planningDir, { recursive: true });
25
- }
26
- }
27
- catch (err) {
28
- return (0, types_js_1.cmdErr)('Failed to create .planning directory: ' + err.message);
29
- }
30
- if (node_fs_1.default.existsSync(configPath)) {
31
- const result = { created: false, reason: 'already_exists' };
32
- return (0, types_js_1.cmdOk)(result, raw ? 'exists' : undefined);
33
- }
34
- // Detect Brave Search API key availability
35
- const homedir = node_os_1.default.homedir();
36
- const braveKeyFile = node_path_1.default.join(homedir, '.maxsim', 'brave_api_key');
37
- const hasBraveSearch = !!(process.env.BRAVE_API_KEY || node_fs_1.default.existsSync(braveKeyFile));
38
- // Load user-level defaults from ~/.maxsim/defaults.json if available
39
- const globalDefaultsPath = node_path_1.default.join(homedir, '.maxsim', 'defaults.json');
40
- let userDefaults = {};
41
- try {
42
- if (node_fs_1.default.existsSync(globalDefaultsPath)) {
43
- userDefaults = JSON.parse(node_fs_1.default.readFileSync(globalDefaultsPath, 'utf-8'));
44
- }
45
- }
46
- catch {
47
- // Ignore malformed global defaults, fall back to hardcoded
48
- }
49
- const hardcoded = {
50
- ...types_js_1.PLANNING_CONFIG_DEFAULTS,
51
- brave_search: hasBraveSearch,
52
- };
53
- const defaults = {
54
- ...hardcoded,
55
- ...userDefaults,
56
- workflow: {
57
- ...hardcoded.workflow,
58
- ...(userDefaults.workflow || {}),
59
- },
60
- };
61
- try {
62
- node_fs_1.default.writeFileSync(configPath, JSON.stringify(defaults, null, 2), 'utf-8');
63
- const result = { created: true, path: '.planning/config.json' };
64
- return (0, types_js_1.cmdOk)(result, raw ? 'created' : undefined);
65
- }
66
- catch (err) {
67
- return (0, types_js_1.cmdErr)('Failed to create config.json: ' + err.message);
68
- }
69
- }
70
- function cmdConfigSet(cwd, keyPath, value, raw) {
71
- const configPath = node_path_1.default.join(cwd, '.planning', 'config.json');
72
- if (!keyPath) {
73
- return (0, types_js_1.cmdErr)('Usage: config-set <key.path> <value>');
74
- }
75
- // Parse value (handle booleans and numbers)
76
- let parsedValue = value;
77
- if (value === 'true')
78
- parsedValue = true;
79
- else if (value === 'false')
80
- parsedValue = false;
81
- else if (value !== undefined && !isNaN(Number(value)) && value !== '')
82
- parsedValue = Number(value);
83
- // Load existing config or start with empty object
84
- let config = {};
85
- try {
86
- if (node_fs_1.default.existsSync(configPath)) {
87
- config = JSON.parse(node_fs_1.default.readFileSync(configPath, 'utf-8'));
88
- }
89
- }
90
- catch (err) {
91
- return (0, types_js_1.cmdErr)('Failed to read config.json: ' + err.message);
92
- }
93
- // Set nested value using dot notation
94
- const keys = keyPath.split('.');
95
- let current = config;
96
- for (let i = 0; i < keys.length - 1; i++) {
97
- const key = keys[i];
98
- if (current[key] === undefined || typeof current[key] !== 'object') {
99
- current[key] = {};
100
- }
101
- current = current[key];
102
- }
103
- current[keys[keys.length - 1]] = parsedValue;
104
- try {
105
- node_fs_1.default.writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
106
- const result = { updated: true, key: keyPath, value: parsedValue };
107
- return (0, types_js_1.cmdOk)(result, raw ? `${keyPath}=${parsedValue}` : undefined);
108
- }
109
- catch (err) {
110
- return (0, types_js_1.cmdErr)('Failed to write config.json: ' + err.message);
111
- }
112
- }
113
- function cmdConfigGet(cwd, keyPath, raw) {
114
- const configPath = node_path_1.default.join(cwd, '.planning', 'config.json');
115
- if (!keyPath) {
116
- return (0, types_js_1.cmdErr)('Usage: config-get <key.path>');
117
- }
118
- let config = {};
119
- try {
120
- if (node_fs_1.default.existsSync(configPath)) {
121
- config = JSON.parse(node_fs_1.default.readFileSync(configPath, 'utf-8'));
122
- }
123
- else {
124
- return (0, types_js_1.cmdErr)('No config.json found at ' + configPath);
125
- }
126
- }
127
- catch (err) {
128
- return (0, types_js_1.cmdErr)('Failed to read config.json: ' + err.message);
129
- }
130
- const keys = keyPath.split('.');
131
- let current = config;
132
- for (const key of keys) {
133
- if (current === undefined || current === null || typeof current !== 'object') {
134
- return (0, types_js_1.cmdErr)(`Key not found: ${keyPath}`);
135
- }
136
- current = current[key];
137
- }
138
- if (current === undefined) {
139
- return (0, types_js_1.cmdErr)(`Key not found: ${keyPath}`);
140
- }
141
- return (0, types_js_1.cmdOk)(current, raw ? String(current) : undefined);
142
- }
143
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- /**
2
- * Context Loader — Intelligent file selection for workflow context assembly
3
- *
4
- * Selects relevant planning files based on the current task/phase domain,
5
- * preventing context overload by loading only what matters.
6
- */
7
- import type { CmdResult } from './types.js';
8
- export interface ContextFile {
9
- path: string;
10
- role: string;
11
- size: number;
12
- }
13
- export interface ContextLoadResult {
14
- files: ContextFile[];
15
- total_size: number;
16
- phase: string | null;
17
- topic: string | null;
18
- codebase_docs_selected: string[];
19
- }
20
- export declare function cmdContextLoad(cwd: string, phase: string | undefined, topic: string | undefined, includeHistory: boolean): CmdResult;
21
- //# sourceMappingURL=context-loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context-loader.d.ts","sourceRoot":"","sources":["../../src/core/context-loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiBH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAK5C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,sBAAsB,EAAE,MAAM,EAAE,CAAC;CAClC;AAiLD,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,cAAc,EAAE,OAAO,GACtB,SAAS,CA2CX"}
@@ -1,212 +0,0 @@
1
- "use strict";
2
- /**
3
- * Context Loader — Intelligent file selection for workflow context assembly
4
- *
5
- * Selects relevant planning files based on the current task/phase domain,
6
- * preventing context overload by loading only what matters.
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.cmdContextLoad = cmdContextLoad;
13
- const node_fs_1 = __importDefault(require("node:fs"));
14
- const node_path_1 = __importDefault(require("node:path"));
15
- const core_js_1 = require("./core.js");
16
- const types_js_1 = require("./types.js");
17
- // ─── Internal helpers ────────────────────────────────────────────────────────
18
- function fileEntry(cwd, relPath, role) {
19
- const fullPath = node_path_1.default.join(cwd, relPath);
20
- try {
21
- const stats = node_fs_1.default.statSync(fullPath);
22
- return { path: relPath, role, size: stats.size };
23
- }
24
- catch {
25
- return null;
26
- }
27
- }
28
- function addIfExists(files, cwd, relPath, role) {
29
- const entry = fileEntry(cwd, relPath, role);
30
- if (entry)
31
- files.push(entry);
32
- }
33
- // ─── Topic-based codebase doc selection ──────────────────────────────────────
34
- const TOPIC_TO_CODEBASE_DOCS = {
35
- ui: ['CONVENTIONS.md', 'STRUCTURE.md'],
36
- frontend: ['CONVENTIONS.md', 'STRUCTURE.md'],
37
- component: ['CONVENTIONS.md', 'STRUCTURE.md'],
38
- api: ['ARCHITECTURE.md', 'CONVENTIONS.md'],
39
- backend: ['ARCHITECTURE.md', 'CONVENTIONS.md'],
40
- server: ['ARCHITECTURE.md', 'CONVENTIONS.md'],
41
- database: ['ARCHITECTURE.md', 'STACK.md'],
42
- schema: ['ARCHITECTURE.md', 'STACK.md'],
43
- data: ['ARCHITECTURE.md', 'STACK.md'],
44
- testing: ['TESTING.md', 'CONVENTIONS.md'],
45
- test: ['TESTING.md', 'CONVENTIONS.md'],
46
- integration: ['INTEGRATIONS.md', 'STACK.md'],
47
- deploy: ['INTEGRATIONS.md', 'STACK.md'],
48
- refactor: ['CONCERNS.md', 'ARCHITECTURE.md'],
49
- cleanup: ['CONCERNS.md', 'ARCHITECTURE.md'],
50
- setup: ['STACK.md', 'STRUCTURE.md'],
51
- config: ['STACK.md', 'STRUCTURE.md'],
52
- auth: ['ARCHITECTURE.md', 'INTEGRATIONS.md'],
53
- performance: ['ARCHITECTURE.md', 'STACK.md'],
54
- install: ['STACK.md', 'STRUCTURE.md'],
55
- };
56
- const DEFAULT_CODEBASE_DOCS = ['STACK.md', 'ARCHITECTURE.md'];
57
- function selectCodebaseDocs(topic) {
58
- if (!topic)
59
- return DEFAULT_CODEBASE_DOCS;
60
- const topicLower = topic.toLowerCase();
61
- const matched = new Set();
62
- for (const [keyword, docs] of Object.entries(TOPIC_TO_CODEBASE_DOCS)) {
63
- if (topicLower.includes(keyword)) {
64
- for (const doc of docs)
65
- matched.add(doc);
66
- }
67
- }
68
- return matched.size > 0 ? Array.from(matched) : DEFAULT_CODEBASE_DOCS;
69
- }
70
- // ─── Context loading strategies ──────────────────────────────────────────────
71
- function loadProjectContext(cwd) {
72
- const files = [];
73
- addIfExists(files, cwd, '.planning/PROJECT.md', 'project-vision');
74
- addIfExists(files, cwd, '.planning/REQUIREMENTS.md', 'requirements');
75
- addIfExists(files, cwd, '.planning/STATE.md', 'state');
76
- addIfExists(files, cwd, '.planning/config.json', 'config');
77
- return files;
78
- }
79
- function loadRoadmapContext(cwd) {
80
- const files = [];
81
- addIfExists(files, cwd, '.planning/ROADMAP.md', 'roadmap');
82
- return files;
83
- }
84
- function loadPhaseContext(cwd, phase) {
85
- const files = [];
86
- const phaseInfo = (0, core_js_1.findPhaseInternal)(cwd, phase);
87
- if (!phaseInfo?.directory)
88
- return files;
89
- const phaseDir = phaseInfo.directory;
90
- // Add phase-specific files
91
- try {
92
- const phaseFiles = node_fs_1.default.readdirSync(node_path_1.default.join(cwd, phaseDir));
93
- for (const f of phaseFiles) {
94
- const relPath = node_path_1.default.join(phaseDir, f);
95
- if (f.endsWith('-CONTEXT.md') || f === 'CONTEXT.md') {
96
- addIfExists(files, cwd, relPath, 'phase-context');
97
- }
98
- else if (f.endsWith('-RESEARCH.md') || f === 'RESEARCH.md') {
99
- addIfExists(files, cwd, relPath, 'phase-research');
100
- }
101
- else if (f.endsWith('-PLAN.md')) {
102
- addIfExists(files, cwd, relPath, 'phase-plan');
103
- }
104
- else if (f.endsWith('-SUMMARY.md')) {
105
- addIfExists(files, cwd, relPath, 'phase-summary');
106
- }
107
- else if (f.endsWith('-VERIFICATION.md') || f === 'VERIFICATION.md') {
108
- addIfExists(files, cwd, relPath, 'phase-verification');
109
- }
110
- }
111
- }
112
- catch (e) {
113
- (0, core_js_1.debugLog)('context-loader-phase-files-failed', e);
114
- }
115
- return files;
116
- }
117
- function loadArtefakteContext(cwd, phase) {
118
- const files = [];
119
- const artefakte = ['DECISIONS.md', 'ACCEPTANCE-CRITERIA.md', 'NO-GOS.md'];
120
- for (const filename of artefakte) {
121
- if (phase) {
122
- const phaseInfo = (0, core_js_1.findPhaseInternal)(cwd, phase);
123
- if (phaseInfo?.directory) {
124
- addIfExists(files, cwd, node_path_1.default.join(phaseInfo.directory, filename), `artefakt-${filename.toLowerCase()}`);
125
- }
126
- }
127
- // Always include project-level artefakte
128
- addIfExists(files, cwd, `.planning/${filename}`, `artefakt-${filename.toLowerCase()}`);
129
- }
130
- return files;
131
- }
132
- function loadCodebaseContext(cwd, topic) {
133
- const files = [];
134
- const codebaseDir = (0, core_js_1.planningPath)(cwd, 'codebase');
135
- try {
136
- const existing = node_fs_1.default.readdirSync(codebaseDir).filter(f => f.endsWith('.md'));
137
- const selected = selectCodebaseDocs(topic);
138
- for (const filename of selected) {
139
- if (existing.includes(filename)) {
140
- addIfExists(files, cwd, `.planning/codebase/${filename}`, `codebase-${filename.replace('.md', '').toLowerCase()}`);
141
- }
142
- }
143
- }
144
- catch {
145
- // No codebase directory — skip silently
146
- }
147
- return files;
148
- }
149
- function loadHistoryContext(cwd, currentPhase) {
150
- const files = [];
151
- const pd = (0, core_js_1.phasesPath)(cwd);
152
- try {
153
- const dirs = (0, core_js_1.listSubDirs)(pd, true);
154
- for (const dir of dirs) {
155
- // Skip current phase — it's loaded separately
156
- if (currentPhase) {
157
- const dirPhase = dir.match(/^(\d+[A-Z]?(?:\.\d+)?)/i)?.[1];
158
- if (dirPhase === currentPhase)
159
- continue;
160
- }
161
- const dirPath = node_path_1.default.join(pd, dir);
162
- const phaseFiles = node_fs_1.default.readdirSync(dirPath);
163
- // Only load summaries from completed phases (lightweight history)
164
- const summaries = phaseFiles.filter(f => (0, core_js_1.isSummaryFile)(f));
165
- for (const s of summaries) {
166
- addIfExists(files, cwd, node_path_1.default.join('.planning', 'phases', dir, s), 'history-summary');
167
- }
168
- }
169
- }
170
- catch (e) {
171
- (0, core_js_1.debugLog)('context-loader-history-failed', e);
172
- }
173
- return files;
174
- }
175
- // ─── Commands ────────────────────────────────────────────────────────────────
176
- function cmdContextLoad(cwd, phase, topic, includeHistory) {
177
- const allFiles = [];
178
- // Always load core project context
179
- allFiles.push(...loadProjectContext(cwd));
180
- allFiles.push(...loadRoadmapContext(cwd));
181
- // Load artefakte
182
- allFiles.push(...loadArtefakteContext(cwd, phase));
183
- // Load relevant codebase docs based on topic
184
- const selectedDocs = selectCodebaseDocs(topic);
185
- allFiles.push(...loadCodebaseContext(cwd, topic));
186
- // Phase-specific context
187
- if (phase) {
188
- allFiles.push(...loadPhaseContext(cwd, phase));
189
- }
190
- // History from completed phases
191
- if (includeHistory) {
192
- allFiles.push(...loadHistoryContext(cwd, phase));
193
- }
194
- // Deduplicate by path
195
- const seen = new Set();
196
- const deduped = allFiles.filter(f => {
197
- if (seen.has(f.path))
198
- return false;
199
- seen.add(f.path);
200
- return true;
201
- });
202
- const totalSize = deduped.reduce((sum, f) => sum + f.size, 0);
203
- const result = {
204
- files: deduped,
205
- total_size: totalSize,
206
- phase: phase ?? null,
207
- topic: topic ?? null,
208
- codebase_docs_selected: selectedDocs,
209
- };
210
- return (0, types_js_1.cmdOk)(result);
211
- }
212
- //# sourceMappingURL=context-loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context-loader.js","sourceRoot":"","sources":["../../src/core/context-loader.ts"],"names":[],"mappings":"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"}
@@ -1,91 +0,0 @@
1
- /**
2
- * Core — Shared utilities, constants, and internal helpers
3
- *
4
- * Ported from maxsim/bin/lib/core.cjs
5
- */
6
- import type { ModelProfiles, ModelResolution, AgentType, PhaseSearchResult, RoadmapPhaseInfo, ArchivedPhaseDir, GitResult, MilestoneInfo, AppConfig } from './types.js';
7
- export declare const MODEL_PROFILES: ModelProfiles;
8
- /** Thrown by output() to signal successful command completion. */
9
- export declare class CliOutput {
10
- readonly result: unknown;
11
- readonly raw: boolean;
12
- readonly rawValue: unknown;
13
- constructor(result: unknown, raw?: boolean, rawValue?: unknown);
14
- }
15
- /** Thrown by error() to signal a command error. */
16
- export declare class CliError {
17
- readonly message: string;
18
- constructor(message: string);
19
- }
20
- export declare function output(result: unknown, raw?: boolean, rawValue?: unknown): never;
21
- export declare function error(message: string): never;
22
- /** Re-throw CliOutput/CliError signals so catch blocks don't intercept them */
23
- export declare function rethrowCliSignals(e: unknown): void;
24
- /**
25
- * Handle a CliOutput by writing to stdout. Extracted so cli.ts can use it.
26
- */
27
- export declare function writeOutput(out: CliOutput): void;
28
- /** Today's date as YYYY-MM-DD. */
29
- export declare function todayISO(): string;
30
- /** Canonical .planning/ sub-paths. */
31
- export declare function planningPath(cwd: string, ...segments: string[]): string;
32
- export declare function statePath(cwd: string): string;
33
- export declare function roadmapPath(cwd: string): string;
34
- export declare function configPath(cwd: string): string;
35
- export declare function phasesPath(cwd: string): string;
36
- /** Phase-file predicates. */
37
- export declare const isPlanFile: (f: string) => boolean;
38
- export declare const isSummaryFile: (f: string) => boolean;
39
- /** Strip suffix to get plan/summary ID. */
40
- export declare const planId: (f: string) => string;
41
- export declare const summaryId: (f: string) => string;
42
- /** List subdirectory names, optionally sorted by phase number. */
43
- export declare function listSubDirs(dir: string, sortByPhase?: boolean): string[];
44
- /** Async version of listSubDirs using fs.promises. */
45
- export declare function listSubDirsAsync(dir: string, sortByPhase?: boolean): Promise<string[]>;
46
- /** Async version of safeReadFile using fs.promises. */
47
- export declare function safeReadFileAsync(filePath: string): Promise<string | null>;
48
- /** Extract a human-readable message from an unknown thrown value. */
49
- export declare function errorMsg(e: unknown): string;
50
- /** Log only when MAXSIM_DEBUG is set. Accepts an optional context label. */
51
- export declare function debugLog(contextOrError: unknown, error?: unknown): void;
52
- /** Escape a phase number for use in regex. */
53
- export declare function escapePhaseNum(phase: string | number): string;
54
- export declare function safeReadFile(filePath: string): string | null;
55
- export declare function loadConfig(cwd: string): AppConfig;
56
- export declare function isGitIgnored(cwd: string, targetPath: string): Promise<boolean>;
57
- export declare function execGit(cwd: string, args: string[]): Promise<GitResult>;
58
- export declare function normalizePhaseName(phase: string): string;
59
- export declare function comparePhaseNum(a: string | number, b: string | number): number;
60
- /**
61
- * Returns the canonical regex for matching Phase heading lines in ROADMAP.md.
62
- *
63
- * General form (no escapedPhaseNum):
64
- * Matches: ## Phase 03: Name Here
65
- * Group 1: phase number string (e.g. "03", "3A", "2.1")
66
- * Group 2: phase name string (e.g. "Name Here")
67
- *
68
- * Specific form (with escapedPhaseNum):
69
- * Matches: ## Phase 03: Name Here
70
- * Group 1: phase name string only
71
- *
72
- * @param escapedPhaseNum - regex-escaped phase number string to match a specific phase
73
- * @param flags - regex flags (default: 'gi')
74
- */
75
- export declare function getPhasePattern(escapedPhaseNum?: string, flags?: string): RegExp;
76
- export declare function findPhaseInternal(cwd: string, phase: string): PhaseSearchResult | null;
77
- export declare function getArchivedPhaseDirs(cwd: string): ArchivedPhaseDir[];
78
- export declare function getRoadmapPhaseInternal(cwd: string, phaseNum: string | number): RoadmapPhaseInfo | null;
79
- export declare function resolveModelInternal(cwd: string, agentType: AgentType, config?: AppConfig): ModelResolution;
80
- export declare function pathExistsInternal(cwd: string, targetPath: string): boolean;
81
- export declare function generateSlugInternal(text: string | null | undefined): string | null;
82
- export declare function getMilestoneInfo(cwd: string): MilestoneInfo;
83
- export declare function pathExistsAsync(p: string): Promise<boolean>;
84
- export declare function loadConfigAsync(cwd: string): Promise<AppConfig>;
85
- export declare function findPhaseInternalAsync(cwd: string, phase: string): Promise<PhaseSearchResult | null>;
86
- export declare function getArchivedPhaseDirsAsync(cwd: string): Promise<ArchivedPhaseDir[]>;
87
- export declare function getRoadmapPhaseInternalAsync(cwd: string, phaseNum: string | number): Promise<RoadmapPhaseInfo | null>;
88
- export declare function archivePath(cwd: string, milestone?: string): string;
89
- export declare function archivePathAsync(cwd: string, milestone?: string): Promise<string>;
90
- export declare function getMilestoneInfoAsync(cwd: string): Promise<MilestoneInfo>;
91
- //# sourceMappingURL=core.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/core/core.ts"],"names":[],"mappings":"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"}