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,582 +0,0 @@
1
- "use strict";
2
- /**
3
- * State — STATE.md operations and progression engine
4
- *
5
- * Ported from maxsim/bin/lib/state.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.stateExtractField = stateExtractField;
12
- exports.stateReplaceField = stateReplaceField;
13
- exports.appendToStateSection = appendToStateSection;
14
- exports.cmdStateLoad = cmdStateLoad;
15
- exports.cmdStateGet = cmdStateGet;
16
- exports.cmdStatePatch = cmdStatePatch;
17
- exports.cmdStateUpdate = cmdStateUpdate;
18
- exports.cmdStateAdvancePlan = cmdStateAdvancePlan;
19
- exports.cmdStateRecordMetric = cmdStateRecordMetric;
20
- exports.cmdStateUpdateProgress = cmdStateUpdateProgress;
21
- exports.cmdStateAddDecision = cmdStateAddDecision;
22
- exports.cmdStateAddBlocker = cmdStateAddBlocker;
23
- exports.cmdStateResolveBlocker = cmdStateResolveBlocker;
24
- exports.cmdStateRecordSession = cmdStateRecordSession;
25
- exports.cmdStateSnapshot = cmdStateSnapshot;
26
- exports.cmdDetectStaleContext = cmdDetectStaleContext;
27
- const node_fs_1 = require("node:fs");
28
- const node_path_1 = __importDefault(require("node:path"));
29
- const escape_string_regexp_1 = __importDefault(require("escape-string-regexp"));
30
- const core_js_1 = require("./core.js");
31
- const types_js_1 = require("./types.js");
32
- // ─── Internal helpers ────────────────────────────────────────────────────────
33
- /**
34
- * Parse a markdown table row into cells, handling escaped pipes (`\|`) within cell content.
35
- * Strips leading/trailing pipe characters and trims each cell.
36
- */
37
- function parseTableRow(row) {
38
- // Replace escaped pipes with a placeholder, split, then restore
39
- const placeholder = '\x00PIPE\x00';
40
- const safe = row.replace(/\\\|/g, placeholder);
41
- return safe.split('|').map(c => c.replaceAll(placeholder, '|').trim()).filter(Boolean);
42
- }
43
- function stateExtractField(content, fieldName) {
44
- const escaped = (0, escape_string_regexp_1.default)(fieldName);
45
- // Match **fieldName:** with optional extra whitespace around the name and colon
46
- const boldPattern = new RegExp(`\\*\\*\\s*${escaped}\\s*:\\s*\\*\\*\\s*(.+)`, 'i');
47
- const boldMatch = content.match(boldPattern);
48
- if (boldMatch)
49
- return boldMatch[1].trim();
50
- // Fallback: match plain "fieldName: value" (no bold markers)
51
- const plainPattern = new RegExp(`^\\s*${escaped}\\s*:\\s*(.+)`, 'im');
52
- const plainMatch = content.match(plainPattern);
53
- return plainMatch ? plainMatch[1].trim() : null;
54
- }
55
- function stateReplaceField(content, fieldName, newValue) {
56
- const escaped = (0, escape_string_regexp_1.default)(fieldName);
57
- // Match **fieldName:** with optional extra whitespace
58
- const boldPattern = new RegExp(`(\\*\\*\\s*${escaped}\\s*:\\s*\\*\\*\\s*)(.*)`, 'i');
59
- let replaced = content.replace(boldPattern, (_match, prefix) => `${prefix}${newValue}`);
60
- if (replaced !== content)
61
- return replaced;
62
- // Fallback: plain "fieldName: value"
63
- const plainPattern = new RegExp(`(^[ \\t]*${escaped}\\s*:\\s*)(.*)`, 'im');
64
- replaced = content.replace(plainPattern, (_match, prefix) => `${prefix}${newValue}`);
65
- return replaced !== content ? replaced : null;
66
- }
67
- async function readTextArgOrFile(cwd, value, filePath, label) {
68
- if (!filePath)
69
- return value;
70
- const resolvedPath = node_path_1.default.isAbsolute(filePath) ? filePath : node_path_1.default.join(cwd, filePath);
71
- try {
72
- return (await node_fs_1.promises.readFile(resolvedPath, 'utf-8')).trimEnd();
73
- }
74
- catch {
75
- throw new Error(`${label} file not found: ${filePath}`);
76
- }
77
- }
78
- /**
79
- * Append an entry to a section in STATE.md content, removing placeholder text.
80
- * Returns updated content or null if section not found.
81
- */
82
- function appendToStateSection(content, sectionPattern, entry, placeholderPatterns) {
83
- const match = content.match(sectionPattern);
84
- if (!match)
85
- return null;
86
- let sectionBody = match[2];
87
- const defaults = [/None yet\.?\s*\n?/gi, /No decisions yet\.?\s*\n?/gi, /None\.?\s*\n?/gi];
88
- for (const pat of placeholderPatterns || defaults) {
89
- sectionBody = sectionBody.replace(pat, '');
90
- }
91
- sectionBody = sectionBody.trimEnd() + '\n' + entry + '\n';
92
- return content.replace(sectionPattern, (_m, header) => `${header}${sectionBody}`);
93
- }
94
- // ─── State commands ──────────────────────────────────────────────────────────
95
- async function cmdStateLoad(cwd, raw) {
96
- const config = (0, core_js_1.loadConfig)(cwd);
97
- const [stateContent, configExists, roadmapExists] = await Promise.all([
98
- (0, core_js_1.safeReadFileAsync)((0, core_js_1.statePath)(cwd)),
99
- (0, core_js_1.pathExistsAsync)((0, core_js_1.configPath)(cwd)),
100
- (0, core_js_1.pathExistsAsync)((0, core_js_1.roadmapPath)(cwd)),
101
- ]);
102
- const stateRaw = stateContent ?? '';
103
- const stateExists = stateRaw.length > 0;
104
- const result = {
105
- config,
106
- state_raw: stateRaw,
107
- state_exists: stateExists,
108
- roadmap_exists: roadmapExists,
109
- config_exists: configExists,
110
- };
111
- if (raw) {
112
- const c = config;
113
- const lines = [
114
- `model_profile=${c.model_profile}`,
115
- `commit_docs=${c.commit_docs}`,
116
- `branching_strategy=${c.branching_strategy}`,
117
- `phase_branch_template=${c.phase_branch_template}`,
118
- `milestone_branch_template=${c.milestone_branch_template}`,
119
- `parallelization=${c.parallelization}`,
120
- `research=${c.research}`,
121
- `plan_checker=${c.plan_checker}`,
122
- `verifier=${c.verifier}`,
123
- `config_exists=${configExists}`,
124
- `roadmap_exists=${roadmapExists}`,
125
- `state_exists=${stateExists}`,
126
- ];
127
- return (0, types_js_1.cmdOk)(result, lines.join('\n'));
128
- }
129
- return (0, types_js_1.cmdOk)(result);
130
- }
131
- async function cmdStateGet(cwd, section, raw) {
132
- const statePath = (0, core_js_1.statePath)(cwd);
133
- try {
134
- const content = await node_fs_1.promises.readFile(statePath, 'utf-8');
135
- if (!section) {
136
- return (0, types_js_1.cmdOk)({ content }, raw ? content : undefined);
137
- }
138
- // Check for **field:** value (reuse stateExtractField for format tolerance)
139
- const fieldValue = stateExtractField(content, section);
140
- if (fieldValue !== null) {
141
- return (0, types_js_1.cmdOk)({ [section]: fieldValue }, raw ? fieldValue : undefined);
142
- }
143
- // Check for ## or ### Section, tolerating extra blank lines after header
144
- const fieldEscaped = (0, escape_string_regexp_1.default)(section);
145
- const sectionPattern = new RegExp(`#{2,3}\\s*${fieldEscaped}\\s*\\n\\s*\\n?([\\s\\S]*?)(?=\\n#{2,3}\\s|$)`, 'i');
146
- const sectionMatch = content.match(sectionPattern);
147
- if (sectionMatch) {
148
- return (0, types_js_1.cmdOk)({ [section]: sectionMatch[1].trim() }, raw ? sectionMatch[1].trim() : undefined);
149
- }
150
- return (0, types_js_1.cmdOk)({ error: `Section or field "${section}" not found` }, raw ? '' : undefined);
151
- }
152
- catch (e) {
153
- (0, core_js_1.rethrowCliSignals)(e);
154
- return (0, types_js_1.cmdErr)('STATE.md not found');
155
- }
156
- }
157
- async function cmdStatePatch(cwd, patches, raw) {
158
- const statePath = (0, core_js_1.statePath)(cwd);
159
- try {
160
- let content = await node_fs_1.promises.readFile(statePath, 'utf-8');
161
- const results = { updated: [], failed: [] };
162
- for (const [field, value] of Object.entries(patches)) {
163
- const result = stateReplaceField(content, field, value);
164
- if (result) {
165
- content = result;
166
- results.updated.push(field);
167
- }
168
- else {
169
- results.failed.push(field);
170
- }
171
- }
172
- if (results.updated.length > 0) {
173
- await node_fs_1.promises.writeFile(statePath, content, 'utf-8');
174
- }
175
- return (0, types_js_1.cmdOk)(results, raw ? (results.updated.length > 0 ? 'true' : 'false') : undefined);
176
- }
177
- catch (e) {
178
- (0, core_js_1.rethrowCliSignals)(e);
179
- return (0, types_js_1.cmdErr)('STATE.md not found');
180
- }
181
- }
182
- async function cmdStateUpdate(cwd, field, value) {
183
- if (!field || value === undefined) {
184
- return (0, types_js_1.cmdErr)('field and value required for state update');
185
- }
186
- const statePath = (0, core_js_1.statePath)(cwd);
187
- try {
188
- const content = await node_fs_1.promises.readFile(statePath, 'utf-8');
189
- const result = stateReplaceField(content, field, value);
190
- if (result) {
191
- await node_fs_1.promises.writeFile(statePath, result, 'utf-8');
192
- return (0, types_js_1.cmdOk)({ updated: true });
193
- }
194
- else {
195
- return (0, types_js_1.cmdOk)({ updated: false, reason: `Field "${field}" not found in STATE.md` });
196
- }
197
- }
198
- catch (e) {
199
- (0, core_js_1.rethrowCliSignals)(e);
200
- return (0, types_js_1.cmdOk)({ updated: false, reason: 'STATE.md not found' });
201
- }
202
- }
203
- // ─── State Progression Engine ────────────────────────────────────────────────
204
- async function cmdStateAdvancePlan(cwd, raw) {
205
- const statePath = (0, core_js_1.statePath)(cwd);
206
- if (!(await (0, core_js_1.pathExistsAsync)(statePath))) {
207
- return (0, types_js_1.cmdOk)({ error: 'STATE.md not found' });
208
- }
209
- let content = await node_fs_1.promises.readFile(statePath, 'utf-8');
210
- const currentPlan = parseInt(stateExtractField(content, 'Current Plan') ?? '', 10);
211
- const totalPlans = parseInt(stateExtractField(content, 'Total Plans in Phase') ?? '', 10);
212
- const today = (0, core_js_1.todayISO)();
213
- if (isNaN(currentPlan) || isNaN(totalPlans)) {
214
- return (0, types_js_1.cmdOk)({ error: 'Cannot parse Current Plan or Total Plans in Phase from STATE.md' });
215
- }
216
- if (currentPlan >= totalPlans) {
217
- content = stateReplaceField(content, 'Status', 'Phase complete — ready for verification') || content;
218
- content = stateReplaceField(content, 'Last Activity', today) || content;
219
- await node_fs_1.promises.writeFile(statePath, content, 'utf-8');
220
- return (0, types_js_1.cmdOk)({ advanced: false, reason: 'last_plan', current_plan: currentPlan, total_plans: totalPlans, status: 'ready_for_verification' }, raw ? 'false' : undefined);
221
- }
222
- else {
223
- const newPlan = currentPlan + 1;
224
- content = stateReplaceField(content, 'Current Plan', String(newPlan)) || content;
225
- content = stateReplaceField(content, 'Status', 'Ready to execute') || content;
226
- content = stateReplaceField(content, 'Last Activity', today) || content;
227
- await node_fs_1.promises.writeFile(statePath, content, 'utf-8');
228
- return (0, types_js_1.cmdOk)({ advanced: true, previous_plan: currentPlan, current_plan: newPlan, total_plans: totalPlans }, raw ? 'true' : undefined);
229
- }
230
- }
231
- async function cmdStateRecordMetric(cwd, options, raw) {
232
- const statePath = (0, core_js_1.statePath)(cwd);
233
- if (!(await (0, core_js_1.pathExistsAsync)(statePath))) {
234
- return (0, types_js_1.cmdOk)({ error: 'STATE.md not found' });
235
- }
236
- let content = await node_fs_1.promises.readFile(statePath, 'utf-8');
237
- const { phase, plan, duration, tasks, files } = options;
238
- if (!phase || !plan || !duration) {
239
- return (0, types_js_1.cmdOk)({ error: 'phase, plan, and duration required' });
240
- }
241
- // Flexible: tolerate varying heading levels (##/###), flexible separator lines (|---|, | --- |, |:---|)
242
- const metricsPattern = /(#{2,3}\s*Performance Metrics[\s\S]*?\n\|[^\n]+\n\|[\s:|\-]+\n)([\s\S]*?)(?=\n#{2,3}\s|\n$|$)/i;
243
- const metricsMatch = content.match(metricsPattern);
244
- if (metricsMatch) {
245
- let tableBody = metricsMatch[2].trimEnd();
246
- const newRow = `| Phase ${phase} P${plan} | ${duration} | ${tasks || '-'} tasks | ${files || '-'} files |`;
247
- if (tableBody.trim() === '' || tableBody.includes('None yet')) {
248
- tableBody = newRow;
249
- }
250
- else {
251
- tableBody = tableBody + '\n' + newRow;
252
- }
253
- content = content.replace(metricsPattern, (_match, header) => `${header}${tableBody}\n`);
254
- await node_fs_1.promises.writeFile(statePath, content, 'utf-8');
255
- return (0, types_js_1.cmdOk)({ recorded: true, phase, plan, duration }, raw ? 'true' : undefined);
256
- }
257
- else {
258
- return (0, types_js_1.cmdOk)({ recorded: false, reason: 'Performance Metrics section not found in STATE.md' }, raw ? 'false' : undefined);
259
- }
260
- }
261
- async function cmdStateUpdateProgress(cwd, raw) {
262
- const statePath = (0, core_js_1.statePath)(cwd);
263
- if (!(await (0, core_js_1.pathExistsAsync)(statePath))) {
264
- return (0, types_js_1.cmdOk)({ error: 'STATE.md not found' });
265
- }
266
- let content = await node_fs_1.promises.readFile(statePath, 'utf-8');
267
- const phasesDir = (0, core_js_1.phasesPath)(cwd);
268
- let totalPlans = 0;
269
- let totalSummaries = 0;
270
- if (await (0, core_js_1.pathExistsAsync)(phasesDir)) {
271
- const phaseDirs = (await node_fs_1.promises.readdir(phasesDir, { withFileTypes: true }))
272
- .filter(e => e.isDirectory()).map(e => e.name);
273
- const counts = await Promise.all(phaseDirs.map(async (dir) => {
274
- const files = await node_fs_1.promises.readdir(node_path_1.default.join(phasesDir, dir));
275
- return {
276
- plans: files.filter(f => (0, core_js_1.isPlanFile)(f)).length,
277
- summaries: files.filter(f => (0, core_js_1.isSummaryFile)(f)).length,
278
- };
279
- }));
280
- for (const c of counts) {
281
- totalPlans += c.plans;
282
- totalSummaries += c.summaries;
283
- }
284
- }
285
- const percent = totalPlans > 0 ? Math.min(100, Math.round(totalSummaries / totalPlans * 100)) : 0;
286
- const barWidth = 10;
287
- const filled = Math.round(percent / 100 * barWidth);
288
- const bar = '\u2588'.repeat(filled) + '\u2591'.repeat(barWidth - filled);
289
- const progressStr = `[${bar}] ${percent}%`;
290
- const result = stateReplaceField(content, 'Progress', progressStr);
291
- if (result) {
292
- await node_fs_1.promises.writeFile(statePath, result, 'utf-8');
293
- return (0, types_js_1.cmdOk)({ updated: true, percent, completed: totalSummaries, total: totalPlans, bar: progressStr }, raw ? progressStr : undefined);
294
- }
295
- else {
296
- return (0, types_js_1.cmdOk)({ updated: false, reason: 'Progress field not found in STATE.md' }, raw ? 'false' : undefined);
297
- }
298
- }
299
- async function cmdStateAddDecision(cwd, options, raw) {
300
- const statePath = (0, core_js_1.statePath)(cwd);
301
- if (!(await (0, core_js_1.pathExistsAsync)(statePath))) {
302
- return (0, types_js_1.cmdOk)({ error: 'STATE.md not found' });
303
- }
304
- const { phase, summary, summary_file, rationale, rationale_file } = options;
305
- let summaryText;
306
- let rationaleText = '';
307
- try {
308
- summaryText = await readTextArgOrFile(cwd, summary, summary_file, 'summary');
309
- rationaleText = (await readTextArgOrFile(cwd, rationale || '', rationale_file, 'rationale')) || '';
310
- }
311
- catch (thrown) {
312
- const e = thrown;
313
- return (0, types_js_1.cmdOk)({ added: false, reason: e.message }, raw ? 'false' : undefined);
314
- }
315
- if (!summaryText) {
316
- return (0, types_js_1.cmdOk)({ error: 'summary required' });
317
- }
318
- const content = await node_fs_1.promises.readFile(statePath, 'utf-8');
319
- const entry = `- [Phase ${phase || '?'}]: ${summaryText}${rationaleText ? ` — ${rationaleText}` : ''}`;
320
- const sectionPattern = /(###?\s*(?:Decisions|Decisions Made|Accumulated.*Decisions)\s*\n)([\s\S]*?)(?=\n###?|\n##[^#]|$)/i;
321
- const updated = appendToStateSection(content, sectionPattern, entry, [/None yet\.?\s*\n?/gi, /No decisions yet\.?\s*\n?/gi]);
322
- if (updated) {
323
- await node_fs_1.promises.writeFile(statePath, updated, 'utf-8');
324
- return (0, types_js_1.cmdOk)({ added: true, decision: entry }, raw ? 'true' : undefined);
325
- }
326
- else {
327
- return (0, types_js_1.cmdOk)({ added: false, reason: 'Decisions section not found in STATE.md' }, raw ? 'false' : undefined);
328
- }
329
- }
330
- async function cmdStateAddBlocker(cwd, text, raw) {
331
- const statePath = (0, core_js_1.statePath)(cwd);
332
- if (!(await (0, core_js_1.pathExistsAsync)(statePath))) {
333
- return (0, types_js_1.cmdOk)({ error: 'STATE.md not found' });
334
- }
335
- const blockerOptions = typeof text === 'object' && text !== null ? text : { text: text };
336
- let blockerText;
337
- try {
338
- blockerText = await readTextArgOrFile(cwd, blockerOptions.text, blockerOptions.text_file, 'blocker');
339
- }
340
- catch (thrown) {
341
- const e = thrown;
342
- return (0, types_js_1.cmdOk)({ added: false, reason: e.message }, raw ? 'false' : undefined);
343
- }
344
- if (!blockerText) {
345
- return (0, types_js_1.cmdOk)({ error: 'text required' });
346
- }
347
- const content = await node_fs_1.promises.readFile(statePath, 'utf-8');
348
- const entry = `- ${blockerText}`;
349
- const sectionPattern = /(###?\s*(?:Blockers|Blockers\/Concerns|Concerns)\s*\n)([\s\S]*?)(?=\n###?|\n##[^#]|$)/i;
350
- const updated = appendToStateSection(content, sectionPattern, entry, [/None\.?\s*\n?/gi, /None yet\.?\s*\n?/gi]);
351
- if (updated) {
352
- await node_fs_1.promises.writeFile(statePath, updated, 'utf-8');
353
- return (0, types_js_1.cmdOk)({ added: true, blocker: blockerText }, raw ? 'true' : undefined);
354
- }
355
- else {
356
- return (0, types_js_1.cmdOk)({ added: false, reason: 'Blockers section not found in STATE.md' }, raw ? 'false' : undefined);
357
- }
358
- }
359
- async function cmdStateResolveBlocker(cwd, text, raw) {
360
- const statePath = (0, core_js_1.statePath)(cwd);
361
- if (!(await (0, core_js_1.pathExistsAsync)(statePath))) {
362
- return (0, types_js_1.cmdOk)({ error: 'STATE.md not found' });
363
- }
364
- if (!text) {
365
- return (0, types_js_1.cmdOk)({ error: 'text required' });
366
- }
367
- let content = await node_fs_1.promises.readFile(statePath, 'utf-8');
368
- const sectionPattern = /(#{2,3}\s*(?:Blockers|Blockers\/Concerns|Concerns)\s*\n\s*\n?)([\s\S]*?)(?=\n#{2,3}\s|$)/i;
369
- const match = content.match(sectionPattern);
370
- if (match) {
371
- const sectionBody = match[2];
372
- const lines = sectionBody.split('\n');
373
- const filtered = lines.filter(line => {
374
- // Match - or * bullets, optionally indented
375
- if (!/^\s*[-*]\s+/.test(line))
376
- return true;
377
- return !line.toLowerCase().includes(text.toLowerCase());
378
- });
379
- let newBody = filtered.join('\n');
380
- if (!newBody.trim() || !/^\s*[-*]\s+/m.test(newBody)) {
381
- newBody = 'None\n';
382
- }
383
- content = content.replace(sectionPattern, (_match, header) => `${header}${newBody}`);
384
- await node_fs_1.promises.writeFile(statePath, content, 'utf-8');
385
- return (0, types_js_1.cmdOk)({ resolved: true, blocker: text }, raw ? 'true' : undefined);
386
- }
387
- else {
388
- return (0, types_js_1.cmdOk)({ resolved: false, reason: 'Blockers section not found in STATE.md' }, raw ? 'false' : undefined);
389
- }
390
- }
391
- async function cmdStateRecordSession(cwd, options, raw) {
392
- const statePath = (0, core_js_1.statePath)(cwd);
393
- if (!(await (0, core_js_1.pathExistsAsync)(statePath))) {
394
- return (0, types_js_1.cmdOk)({ error: 'STATE.md not found' });
395
- }
396
- let content = await node_fs_1.promises.readFile(statePath, 'utf-8');
397
- const now = new Date().toISOString();
398
- const updated = [];
399
- let result = stateReplaceField(content, 'Last session', now);
400
- if (result) {
401
- content = result;
402
- updated.push('Last session');
403
- }
404
- result = stateReplaceField(content, 'Last Date', now);
405
- if (result) {
406
- content = result;
407
- updated.push('Last Date');
408
- }
409
- if (options.stopped_at) {
410
- result = stateReplaceField(content, 'Stopped At', options.stopped_at);
411
- if (!result)
412
- result = stateReplaceField(content, 'Stopped at', options.stopped_at);
413
- if (result) {
414
- content = result;
415
- updated.push('Stopped At');
416
- }
417
- }
418
- const resumeFile = options.resume_file || 'None';
419
- result = stateReplaceField(content, 'Resume File', resumeFile);
420
- if (!result)
421
- result = stateReplaceField(content, 'Resume file', resumeFile);
422
- if (result) {
423
- content = result;
424
- updated.push('Resume File');
425
- }
426
- if (updated.length > 0) {
427
- await node_fs_1.promises.writeFile(statePath, content, 'utf-8');
428
- return (0, types_js_1.cmdOk)({ recorded: true, updated }, raw ? 'true' : undefined);
429
- }
430
- else {
431
- return (0, types_js_1.cmdOk)({ recorded: false, reason: 'No session fields found in STATE.md' }, raw ? 'false' : undefined);
432
- }
433
- }
434
- async function cmdStateSnapshot(cwd, raw) {
435
- const statePath = (0, core_js_1.statePath)(cwd);
436
- if (!(await (0, core_js_1.pathExistsAsync)(statePath))) {
437
- return (0, types_js_1.cmdOk)({ error: 'STATE.md not found' });
438
- }
439
- const content = await node_fs_1.promises.readFile(statePath, 'utf-8');
440
- const extractField = (fieldName) => stateExtractField(content, fieldName);
441
- const currentPhase = extractField('Current Phase');
442
- const currentPhaseName = extractField('Current Phase Name');
443
- const totalPhasesRaw = extractField('Total Phases');
444
- const currentPlan = extractField('Current Plan');
445
- const totalPlansRaw = extractField('Total Plans in Phase');
446
- const status = extractField('Status');
447
- const progressRaw = extractField('Progress');
448
- const lastActivity = extractField('Last Activity');
449
- const lastActivityDesc = extractField('Last Activity Description');
450
- const pausedAt = extractField('Paused At');
451
- const totalPhases = totalPhasesRaw ? parseInt(totalPhasesRaw, 10) : null;
452
- const totalPlansInPhase = totalPlansRaw ? parseInt(totalPlansRaw, 10) : null;
453
- const progressPercent = progressRaw ? parseInt(progressRaw.replace('%', ''), 10) : null;
454
- const decisions = [];
455
- // Tolerate ##/### heading levels and flexible separator lines (|---|, | --- |, |:---|)
456
- const decisionsMatch = content.match(/#{2,3}\s*Decisions Made[\s\S]*?\n\|[^\n]+\n\|[\s:|\-]+\n([\s\S]*?)(?=\n#{2,3}\s|\n$|$)/i);
457
- if (decisionsMatch) {
458
- const tableBody = decisionsMatch[1];
459
- const rows = tableBody.trim().split('\n').filter(r => r.includes('|') && !r.match(/^\s*$/));
460
- for (const row of rows) {
461
- // Skip separator lines that snuck through
462
- if (/^\s*\|[\s:\-|]+\|\s*$/.test(row))
463
- continue;
464
- const cells = parseTableRow(row);
465
- if (cells.length >= 3) {
466
- decisions.push({
467
- phase: cells[0],
468
- summary: cells[1],
469
- rationale: cells[2],
470
- });
471
- }
472
- }
473
- }
474
- const blockers = [];
475
- // Tolerate ##/### heading levels
476
- const blockersMatch = content.match(/#{2,3}\s*Blockers\s*\n([\s\S]*?)(?=\n#{2,3}\s|$)/i);
477
- if (blockersMatch) {
478
- const blockersSection = blockersMatch[1];
479
- // Match - or * bullets, optionally indented
480
- const items = blockersSection.match(/^\s*[-*]\s+(.+)$/gm) || [];
481
- for (const item of items) {
482
- blockers.push(item.replace(/^\s*[-*]\s+/, '').trim());
483
- }
484
- }
485
- const session = {
486
- last_date: null,
487
- stopped_at: null,
488
- resume_file: null,
489
- };
490
- const sessionMatch = content.match(/#{2,3}\s*Session\s*\n\s*\n?([\s\S]*?)(?=\n#{2,3}\s|$)/i);
491
- if (sessionMatch) {
492
- const sessionSection = sessionMatch[1];
493
- session.last_date = stateExtractField(sessionSection, 'Last Date');
494
- session.stopped_at = stateExtractField(sessionSection, 'Stopped At') || stateExtractField(sessionSection, 'Stopped at');
495
- session.resume_file = stateExtractField(sessionSection, 'Resume File') || stateExtractField(sessionSection, 'Resume file');
496
- }
497
- const snapshot = {
498
- current_phase: currentPhase,
499
- current_phase_name: currentPhaseName,
500
- total_phases: totalPhases,
501
- current_plan: currentPlan,
502
- total_plans_in_phase: totalPlansInPhase,
503
- status,
504
- progress_percent: progressPercent,
505
- last_activity: lastActivity,
506
- last_activity_desc: lastActivityDesc,
507
- decisions,
508
- blockers,
509
- paused_at: pausedAt,
510
- session,
511
- };
512
- return (0, types_js_1.cmdOk)(snapshot);
513
- }
514
- async function cmdDetectStaleContext(cwd) {
515
- const rmPath = (0, core_js_1.roadmapPath)(cwd);
516
- const stPath = (0, core_js_1.statePath)(cwd);
517
- const [roadmapContent, stateContent] = await Promise.all([
518
- (0, core_js_1.safeReadFileAsync)(rmPath),
519
- (0, core_js_1.safeReadFileAsync)(stPath),
520
- ]);
521
- if (!roadmapContent) {
522
- return (0, types_js_1.cmdErr)('ROADMAP.md not found');
523
- }
524
- if (!stateContent) {
525
- return (0, types_js_1.cmdErr)('STATE.md not found');
526
- }
527
- // Identify completed phases from ROADMAP.md (lines matching `- [x]` with Phase N)
528
- const completedPhases = [];
529
- const checkboxPattern = /^-\s*\[x\]\s*.*Phase\s+(\d+[A-Z]?(?:\.\d+)?)/gim;
530
- let match;
531
- while ((match = checkboxPattern.exec(roadmapContent)) !== null) {
532
- completedPhases.push(match[1]);
533
- }
534
- if (completedPhases.length === 0) {
535
- return (0, types_js_1.cmdOk)({
536
- stale_references: [],
537
- completed_phases: [],
538
- clean: true,
539
- message: 'No completed phases found in ROADMAP.md',
540
- });
541
- }
542
- // Scan STATE.md decisions and blockers sections for references to completed phases
543
- const staleReferences = [];
544
- const decisionsPattern = /(#{2,3}\s*(?:Decisions|Decisions Made|Accumulated.*Decisions)\s*\n)([\s\S]*?)(?=\n#{2,3}\s|\n##[^#]|$)/i;
545
- const blockersPattern = /(#{2,3}\s*(?:Blockers|Blockers\/Concerns|Concerns)\s*\n\s*\n?)([\s\S]*?)(?=\n#{2,3}\s|$)/i;
546
- const sections = [
547
- { name: 'Decisions', pattern: decisionsPattern },
548
- { name: 'Blockers', pattern: blockersPattern },
549
- ];
550
- for (const section of sections) {
551
- const sectionMatch = stateContent.match(section.pattern);
552
- if (!sectionMatch || !sectionMatch[2])
553
- continue;
554
- const lines = sectionMatch[2].split('\n');
555
- for (const line of lines) {
556
- if (!line.trim())
557
- continue;
558
- for (const phase of completedPhases) {
559
- const escaped = (0, core_js_1.escapePhaseNum)(phase);
560
- // Match `- [Phase N]:` tagged lines or free-text `Phase N` mentions
561
- const tagPattern = new RegExp(`\\bPhase\\s+${escaped}\\b`, 'i');
562
- if (tagPattern.test(line)) {
563
- staleReferences.push({
564
- section: section.name,
565
- line: line.trim(),
566
- phase,
567
- });
568
- break; // Don't double-count same line for multiple phases
569
- }
570
- }
571
- }
572
- }
573
- return (0, types_js_1.cmdOk)({
574
- stale_references: staleReferences,
575
- completed_phases: completedPhases,
576
- clean: staleReferences.length === 0,
577
- message: staleReferences.length === 0
578
- ? 'No stale references found — STATE.md is clean'
579
- : `Found ${staleReferences.length} stale reference(s) to completed phases`,
580
- });
581
- }
582
- //# sourceMappingURL=state.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/core/state.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- /**
2
- * Template — Template selection and fill operations
3
- *
4
- * Ported from maxsim/bin/lib/template.cjs
5
- */
6
- import type { FrontmatterData, CmdResult } from './types.js';
7
- export interface TemplateSelectResult {
8
- template: string;
9
- type: 'minimal' | 'standard' | 'complex';
10
- taskCount: number;
11
- fileCount: number;
12
- hasDecisions: boolean;
13
- error?: string;
14
- }
15
- export interface TemplateFillOptions {
16
- phase: string;
17
- name?: string;
18
- plan?: string;
19
- type?: string;
20
- wave?: string;
21
- fields?: FrontmatterData;
22
- }
23
- export interface TemplateFillResult {
24
- created: boolean;
25
- path: string;
26
- template: string;
27
- }
28
- export declare function cmdTemplateSelect(cwd: string, planPath: string | null): CmdResult;
29
- export declare function cmdTemplateFill(cwd: string, templateType: string | null, options: TemplateFillOptions): CmdResult;
30
- //# sourceMappingURL=template.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/core/template.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAK7D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CA6CjF;AAID,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,OAAO,EAAE,mBAAmB,GAC3B,SAAS,CA2KX"}