maxsimcli 2.5.6 → 3.0.1

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 (141) hide show
  1. package/README.md +4 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/adapters/base.d.ts +34 -0
  4. package/dist/adapters/base.d.ts.map +1 -0
  5. package/dist/adapters/base.js +116 -0
  6. package/dist/adapters/base.js.map +1 -0
  7. package/dist/adapters/claude.d.ts +21 -0
  8. package/dist/adapters/claude.d.ts.map +1 -0
  9. package/dist/adapters/claude.js +104 -0
  10. package/dist/adapters/claude.js.map +1 -0
  11. package/dist/adapters/codex.d.ts +19 -0
  12. package/dist/adapters/codex.d.ts.map +1 -0
  13. package/dist/adapters/codex.js +94 -0
  14. package/dist/adapters/codex.js.map +1 -0
  15. package/dist/adapters/gemini.d.ts +19 -0
  16. package/dist/adapters/gemini.d.ts.map +1 -0
  17. package/dist/adapters/gemini.js +96 -0
  18. package/dist/adapters/gemini.js.map +1 -0
  19. package/dist/adapters/index.d.ts +20 -0
  20. package/dist/adapters/index.d.ts.map +1 -0
  21. package/dist/adapters/index.js +56 -0
  22. package/dist/adapters/index.js.map +1 -0
  23. package/dist/adapters/opencode.d.ts +17 -0
  24. package/dist/adapters/opencode.d.ts.map +1 -0
  25. package/dist/adapters/opencode.js +111 -0
  26. package/dist/adapters/opencode.js.map +1 -0
  27. package/dist/adapters/transforms/content.d.ts +39 -0
  28. package/dist/adapters/transforms/content.d.ts.map +1 -0
  29. package/dist/adapters/transforms/content.js +125 -0
  30. package/dist/adapters/transforms/content.js.map +1 -0
  31. package/dist/adapters/transforms/frontmatter.d.ts +42 -0
  32. package/dist/adapters/transforms/frontmatter.d.ts.map +1 -0
  33. package/dist/adapters/transforms/frontmatter.js +204 -0
  34. package/dist/adapters/transforms/frontmatter.js.map +1 -0
  35. package/dist/adapters/transforms/tool-maps.d.ts +20 -0
  36. package/dist/adapters/transforms/tool-maps.d.ts.map +1 -0
  37. package/dist/adapters/transforms/tool-maps.js +64 -0
  38. package/dist/adapters/transforms/tool-maps.js.map +1 -0
  39. package/dist/adapters/types.d.ts +10 -0
  40. package/dist/adapters/types.d.ts.map +1 -0
  41. package/dist/adapters/types.js +6 -0
  42. package/dist/adapters/types.js.map +1 -0
  43. package/dist/assets/CHANGELOG.md +26 -0
  44. package/dist/assets/dashboard/client/assets/{index-DnL8rwuQ.js → index-1nmhAN7y.js} +2 -1
  45. package/dist/assets/dashboard/client/assets/index-DXau7xRM.css +32 -0
  46. package/dist/assets/dashboard/client/index.html +2 -2
  47. package/dist/assets/dashboard/server.js +27732 -12013
  48. package/dist/assets/hooks/maxsim-check-update.cjs +2 -2
  49. package/dist/assets/hooks/maxsim-check-update.cjs.map +1 -0
  50. package/dist/assets/hooks/maxsim-context-monitor.cjs +2 -2
  51. package/dist/assets/hooks/maxsim-context-monitor.cjs.map +1 -0
  52. package/dist/assets/hooks/maxsim-statusline.cjs +2 -2
  53. package/dist/assets/hooks/maxsim-statusline.cjs.map +1 -0
  54. package/dist/cli.cjs +15316 -5348
  55. package/dist/cli.cjs.map +1 -1
  56. package/dist/cli.d.ts +0 -6
  57. package/dist/cli.d.ts.map +1 -1
  58. package/dist/cli.js +282 -443
  59. package/dist/cli.js.map +1 -1
  60. package/dist/core/commands.d.ts +19 -0
  61. package/dist/core/commands.d.ts.map +1 -0
  62. package/dist/core/commands.js +560 -0
  63. package/dist/core/commands.js.map +1 -0
  64. package/dist/core/config.d.ts +9 -0
  65. package/dist/core/config.d.ts.map +1 -0
  66. package/dist/core/config.js +147 -0
  67. package/dist/core/config.js.map +1 -0
  68. package/dist/core/core.d.ts +39 -0
  69. package/dist/core/core.d.ts.map +1 -0
  70. package/dist/core/core.js +411 -0
  71. package/dist/core/core.js.map +1 -0
  72. package/dist/core/frontmatter.d.ts +33 -0
  73. package/dist/core/frontmatter.d.ts.map +1 -0
  74. package/dist/core/frontmatter.js +192 -0
  75. package/dist/core/frontmatter.js.map +1 -0
  76. package/dist/core/index.d.ts +20 -0
  77. package/dist/core/index.d.ts.map +1 -0
  78. package/dist/core/index.js +126 -0
  79. package/dist/core/index.js.map +1 -0
  80. package/dist/core/init.d.ts +252 -0
  81. package/dist/core/init.d.ts.map +1 -0
  82. package/dist/core/init.js +578 -0
  83. package/dist/core/init.js.map +1 -0
  84. package/dist/core/milestone.d.ts +9 -0
  85. package/dist/core/milestone.d.ts.map +1 -0
  86. package/dist/core/milestone.js +191 -0
  87. package/dist/core/milestone.js.map +1 -0
  88. package/dist/core/phase.d.ts +17 -0
  89. package/dist/core/phase.d.ts.map +1 -0
  90. package/dist/core/phase.js +610 -0
  91. package/dist/core/phase.js.map +1 -0
  92. package/dist/core/roadmap.d.ts +9 -0
  93. package/dist/core/roadmap.d.ts.map +1 -0
  94. package/dist/core/roadmap.js +228 -0
  95. package/dist/core/roadmap.js.map +1 -0
  96. package/dist/core/state.d.ts +21 -0
  97. package/dist/core/state.d.ts.map +1 -0
  98. package/dist/core/state.js +507 -0
  99. package/dist/core/state.js.map +1 -0
  100. package/dist/core/template.d.ts +30 -0
  101. package/dist/core/template.d.ts.map +1 -0
  102. package/dist/core/template.js +225 -0
  103. package/dist/core/template.js.map +1 -0
  104. package/dist/core/types.d.ts +374 -0
  105. package/dist/core/types.d.ts.map +1 -0
  106. package/dist/core/types.js +53 -0
  107. package/dist/core/types.js.map +1 -0
  108. package/dist/core/verify.d.ts +127 -0
  109. package/dist/core/verify.d.ts.map +1 -0
  110. package/dist/core/verify.js +783 -0
  111. package/dist/core/verify.js.map +1 -0
  112. package/dist/hooks/index.d.ts +11 -0
  113. package/dist/hooks/index.d.ts.map +1 -0
  114. package/dist/hooks/index.js +18 -0
  115. package/dist/hooks/index.js.map +1 -0
  116. package/dist/hooks/maxsim-check-update.d.ts +17 -0
  117. package/dist/hooks/maxsim-check-update.d.ts.map +1 -0
  118. package/dist/hooks/maxsim-check-update.js +101 -0
  119. package/dist/hooks/maxsim-check-update.js.map +1 -0
  120. package/dist/hooks/maxsim-context-monitor.d.ts +21 -0
  121. package/dist/hooks/maxsim-context-monitor.d.ts.map +1 -0
  122. package/dist/hooks/maxsim-context-monitor.js +131 -0
  123. package/dist/hooks/maxsim-context-monitor.js.map +1 -0
  124. package/dist/hooks/maxsim-statusline.d.ts +19 -0
  125. package/dist/hooks/maxsim-statusline.d.ts.map +1 -0
  126. package/dist/hooks/maxsim-statusline.js +146 -0
  127. package/dist/hooks/maxsim-statusline.js.map +1 -0
  128. package/dist/hooks/shared.d.ts +11 -0
  129. package/dist/hooks/shared.d.ts.map +1 -0
  130. package/dist/hooks/shared.js +29 -0
  131. package/dist/hooks/shared.js.map +1 -0
  132. package/dist/install.cjs +2807 -1211
  133. package/dist/install.cjs.map +1 -1
  134. package/dist/install.js +34 -85
  135. package/dist/install.js.map +1 -1
  136. package/package.json +10 -7
  137. package/dist/assets/dashboard/client/assets/index-SwFemGUT.css +0 -32
  138. package/dist/assets/hooks/index.cjs +0 -239
  139. package/dist/assets/templates/CLAUDE.md +0 -22
  140. package/dist/assets/templates/package.json +0 -5
  141. package/dist/assets/templates/project.json +0 -5
@@ -0,0 +1,560 @@
1
+ "use strict";
2
+ /**
3
+ * Commands — Standalone utility commands
4
+ *
5
+ * Ported from maxsim/bin/lib/commands.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.cmdGenerateSlug = cmdGenerateSlug;
12
+ exports.cmdCurrentTimestamp = cmdCurrentTimestamp;
13
+ exports.cmdListTodos = cmdListTodos;
14
+ exports.cmdVerifyPathExists = cmdVerifyPathExists;
15
+ exports.cmdHistoryDigest = cmdHistoryDigest;
16
+ exports.cmdResolveModel = cmdResolveModel;
17
+ exports.cmdCommit = cmdCommit;
18
+ exports.cmdSummaryExtract = cmdSummaryExtract;
19
+ exports.cmdWebsearch = cmdWebsearch;
20
+ exports.cmdProgressRender = cmdProgressRender;
21
+ exports.cmdTodoComplete = cmdTodoComplete;
22
+ exports.cmdScaffold = cmdScaffold;
23
+ const node_fs_1 = __importDefault(require("node:fs"));
24
+ const node_path_1 = __importDefault(require("node:path"));
25
+ const chalk_1 = __importDefault(require("chalk"));
26
+ const core_js_1 = require("./core.js");
27
+ const frontmatter_js_1 = require("./frontmatter.js");
28
+ // ─── Slug generation ────────────────────────────────────────────────────────
29
+ function cmdGenerateSlug(text, raw) {
30
+ if (!text) {
31
+ (0, core_js_1.error)('text required for slug generation');
32
+ }
33
+ const slug = text
34
+ .toLowerCase()
35
+ .replace(/[^a-z0-9]+/g, '-')
36
+ .replace(/^-+|-+$/g, '');
37
+ const result = { slug };
38
+ (0, core_js_1.output)(result, raw, slug);
39
+ }
40
+ // ─── Timestamp ──────────────────────────────────────────────────────────────
41
+ function cmdCurrentTimestamp(format, raw) {
42
+ const now = new Date();
43
+ let result;
44
+ switch (format) {
45
+ case 'date':
46
+ result = now.toISOString().split('T')[0];
47
+ break;
48
+ case 'filename':
49
+ result = now.toISOString().replace(/:/g, '-').replace(/\..+/, '');
50
+ break;
51
+ case 'full':
52
+ default:
53
+ result = now.toISOString();
54
+ break;
55
+ }
56
+ (0, core_js_1.output)({ timestamp: result }, raw, result);
57
+ }
58
+ // ─── Todos ──────────────────────────────────────────────────────────────────
59
+ function cmdListTodos(cwd, area, raw) {
60
+ const pendingDir = node_path_1.default.join(cwd, '.planning', 'todos', 'pending');
61
+ let count = 0;
62
+ const todos = [];
63
+ try {
64
+ const files = node_fs_1.default.readdirSync(pendingDir).filter(f => f.endsWith('.md'));
65
+ for (const file of files) {
66
+ try {
67
+ const content = node_fs_1.default.readFileSync(node_path_1.default.join(pendingDir, file), 'utf-8');
68
+ const createdMatch = content.match(/^created:\s*(.+)$/m);
69
+ const titleMatch = content.match(/^title:\s*(.+)$/m);
70
+ const areaMatch = content.match(/^area:\s*(.+)$/m);
71
+ const todoArea = areaMatch ? areaMatch[1].trim() : 'general';
72
+ // Apply area filter if specified
73
+ if (area && todoArea !== area)
74
+ continue;
75
+ count++;
76
+ todos.push({
77
+ file,
78
+ created: createdMatch ? createdMatch[1].trim() : 'unknown',
79
+ title: titleMatch ? titleMatch[1].trim() : 'Untitled',
80
+ area: todoArea,
81
+ path: node_path_1.default.join('.planning', 'todos', 'pending', file),
82
+ });
83
+ }
84
+ catch (e) {
85
+ /* optional op, ignore */
86
+ if (process.env.MAXSIM_DEBUG)
87
+ console.error(e);
88
+ }
89
+ }
90
+ }
91
+ catch (e) {
92
+ /* optional op, ignore */
93
+ if (process.env.MAXSIM_DEBUG)
94
+ console.error(e);
95
+ }
96
+ const result = { count, todos };
97
+ (0, core_js_1.output)(result, raw, count.toString());
98
+ }
99
+ // ─── Path verification ──────────────────────────────────────────────────────
100
+ function cmdVerifyPathExists(cwd, targetPath, raw) {
101
+ if (!targetPath) {
102
+ (0, core_js_1.error)('path required for verification');
103
+ }
104
+ const fullPath = node_path_1.default.isAbsolute(targetPath) ? targetPath : node_path_1.default.join(cwd, targetPath);
105
+ try {
106
+ const stats = node_fs_1.default.statSync(fullPath);
107
+ const type = stats.isDirectory() ? 'directory' : stats.isFile() ? 'file' : 'other';
108
+ const result = { exists: true, type };
109
+ (0, core_js_1.output)(result, raw, 'true');
110
+ }
111
+ catch {
112
+ const result = { exists: false, type: null };
113
+ (0, core_js_1.output)(result, raw, 'false');
114
+ }
115
+ }
116
+ // ─── History digest ─────────────────────────────────────────────────────────
117
+ function cmdHistoryDigest(cwd, raw) {
118
+ const phasesDir = node_path_1.default.join(cwd, '.planning', 'phases');
119
+ const digest = { phases: {}, decisions: [], tech_stack: new Set() };
120
+ // Collect all phase directories: archived + current
121
+ const allPhaseDirs = [];
122
+ // Add archived phases first (oldest milestones first)
123
+ const archived = (0, core_js_1.getArchivedPhaseDirs)(cwd);
124
+ for (const a of archived) {
125
+ allPhaseDirs.push({ name: a.name, fullPath: a.fullPath, milestone: a.milestone });
126
+ }
127
+ // Add current phases
128
+ if (node_fs_1.default.existsSync(phasesDir)) {
129
+ try {
130
+ const currentDirs = node_fs_1.default.readdirSync(phasesDir, { withFileTypes: true })
131
+ .filter(e => e.isDirectory())
132
+ .map(e => e.name)
133
+ .sort();
134
+ for (const dir of currentDirs) {
135
+ allPhaseDirs.push({ name: dir, fullPath: node_path_1.default.join(phasesDir, dir), milestone: null });
136
+ }
137
+ }
138
+ catch (e) {
139
+ /* optional op, ignore */
140
+ if (process.env.MAXSIM_DEBUG)
141
+ console.error(e);
142
+ }
143
+ }
144
+ if (allPhaseDirs.length === 0) {
145
+ const emptyDigest = { phases: {}, decisions: [], tech_stack: [] };
146
+ (0, core_js_1.output)(emptyDigest, raw);
147
+ return;
148
+ }
149
+ try {
150
+ for (const { name: dir, fullPath: dirPath } of allPhaseDirs) {
151
+ const summaries = node_fs_1.default.readdirSync(dirPath).filter(f => f.endsWith('-SUMMARY.md') || f === 'SUMMARY.md');
152
+ for (const summary of summaries) {
153
+ try {
154
+ const content = node_fs_1.default.readFileSync(node_path_1.default.join(dirPath, summary), 'utf-8');
155
+ const fm = (0, frontmatter_js_1.extractFrontmatter)(content);
156
+ const phaseNum = fm.phase || dir.split('-')[0];
157
+ if (!digest.phases[phaseNum]) {
158
+ digest.phases[phaseNum] = {
159
+ name: fm.name || dir.split('-').slice(1).join(' ') || 'Unknown',
160
+ provides: new Set(),
161
+ affects: new Set(),
162
+ patterns: new Set(),
163
+ };
164
+ }
165
+ // Merge provides
166
+ const depGraph = fm['dependency-graph'];
167
+ if (depGraph && depGraph.provides) {
168
+ depGraph.provides.forEach(p => digest.phases[phaseNum].provides.add(p));
169
+ }
170
+ else if (fm.provides) {
171
+ fm.provides.forEach(p => digest.phases[phaseNum].provides.add(p));
172
+ }
173
+ // Merge affects
174
+ if (depGraph && depGraph.affects) {
175
+ depGraph.affects.forEach(a => digest.phases[phaseNum].affects.add(a));
176
+ }
177
+ // Merge patterns
178
+ if (fm['patterns-established']) {
179
+ fm['patterns-established'].forEach(p => digest.phases[phaseNum].patterns.add(p));
180
+ }
181
+ // Merge decisions
182
+ if (fm['key-decisions']) {
183
+ fm['key-decisions'].forEach(d => {
184
+ digest.decisions.push({ phase: phaseNum, decision: d });
185
+ });
186
+ }
187
+ // Merge tech stack
188
+ const techStack = fm['tech-stack'];
189
+ if (techStack && techStack.added) {
190
+ techStack.added.forEach(t => digest.tech_stack.add(typeof t === 'string' ? t : t.name));
191
+ }
192
+ }
193
+ catch (e) {
194
+ /* optional op, ignore */
195
+ if (process.env.MAXSIM_DEBUG)
196
+ console.error(e);
197
+ }
198
+ }
199
+ }
200
+ // Convert Sets to Arrays for JSON output
201
+ const outputDigest = {
202
+ phases: {},
203
+ decisions: digest.decisions,
204
+ tech_stack: [...digest.tech_stack],
205
+ };
206
+ for (const [p, data] of Object.entries(digest.phases)) {
207
+ outputDigest.phases[p] = {
208
+ name: data.name,
209
+ provides: [...data.provides],
210
+ affects: [...data.affects],
211
+ patterns: [...data.patterns],
212
+ };
213
+ }
214
+ (0, core_js_1.output)(outputDigest, raw);
215
+ }
216
+ catch (e) {
217
+ (0, core_js_1.error)('Failed to generate history digest: ' + e.message);
218
+ }
219
+ }
220
+ // ─── Model resolution ───────────────────────────────────────────────────────
221
+ function cmdResolveModel(cwd, agentType, raw) {
222
+ if (!agentType) {
223
+ (0, core_js_1.error)('agent-type required');
224
+ }
225
+ const config = (0, core_js_1.loadConfig)(cwd);
226
+ const profile = config.model_profile || 'balanced';
227
+ const agentModels = core_js_1.MODEL_PROFILES[agentType];
228
+ if (!agentModels) {
229
+ const result = { model: 'sonnet', profile, unknown_agent: true };
230
+ (0, core_js_1.output)(result, raw, 'sonnet');
231
+ return;
232
+ }
233
+ const resolved = agentModels[profile] || agentModels['balanced'] || 'sonnet';
234
+ const model = resolved === 'opus' ? 'inherit' : resolved;
235
+ const result = { model, profile };
236
+ (0, core_js_1.output)(result, raw, model);
237
+ }
238
+ // ─── Commit ─────────────────────────────────────────────────────────────────
239
+ async function cmdCommit(cwd, message, files, raw, amend) {
240
+ if (!message && !amend) {
241
+ (0, core_js_1.error)('commit message required');
242
+ }
243
+ const config = (0, core_js_1.loadConfig)(cwd);
244
+ // Check commit_docs config
245
+ if (!config.commit_docs) {
246
+ const result = { committed: false, hash: null, reason: 'skipped_commit_docs_false' };
247
+ (0, core_js_1.output)(result, raw, 'skipped');
248
+ return;
249
+ }
250
+ // Check if .planning is gitignored
251
+ if (await (0, core_js_1.isGitIgnored)(cwd, '.planning')) {
252
+ const result = { committed: false, hash: null, reason: 'skipped_gitignored' };
253
+ (0, core_js_1.output)(result, raw, 'skipped');
254
+ return;
255
+ }
256
+ // Stage files
257
+ const filesToStage = files && files.length > 0 ? files : ['.planning/'];
258
+ for (const file of filesToStage) {
259
+ await (0, core_js_1.execGit)(cwd, ['add', file]);
260
+ }
261
+ // Commit
262
+ const commitArgs = amend ? ['commit', '--amend', '--no-edit'] : ['commit', '-m', message];
263
+ const commitResult = await (0, core_js_1.execGit)(cwd, commitArgs);
264
+ if (commitResult.exitCode !== 0) {
265
+ if (commitResult.stdout.includes('nothing to commit') || commitResult.stderr.includes('nothing to commit')) {
266
+ const result = { committed: false, hash: null, reason: 'nothing_to_commit' };
267
+ (0, core_js_1.output)(result, raw, 'nothing');
268
+ return;
269
+ }
270
+ const result = { committed: false, hash: null, reason: 'nothing_to_commit', error: commitResult.stderr };
271
+ (0, core_js_1.output)(result, raw, 'nothing');
272
+ return;
273
+ }
274
+ // Get short hash
275
+ const hashResult = await (0, core_js_1.execGit)(cwd, ['rev-parse', '--short', 'HEAD']);
276
+ const hash = hashResult.exitCode === 0 ? hashResult.stdout : null;
277
+ const result = { committed: true, hash, reason: 'committed' };
278
+ (0, core_js_1.output)(result, raw, hash || 'committed');
279
+ }
280
+ // ─── Summary extract ────────────────────────────────────────────────────────
281
+ function cmdSummaryExtract(cwd, summaryPath, fields, raw) {
282
+ if (!summaryPath) {
283
+ (0, core_js_1.error)('summary-path required for summary-extract');
284
+ }
285
+ const fullPath = node_path_1.default.join(cwd, summaryPath);
286
+ if (!node_fs_1.default.existsSync(fullPath)) {
287
+ (0, core_js_1.output)({ error: 'File not found', path: summaryPath }, raw);
288
+ return;
289
+ }
290
+ const content = node_fs_1.default.readFileSync(fullPath, 'utf-8');
291
+ const fm = (0, frontmatter_js_1.extractFrontmatter)(content);
292
+ // Parse key-decisions into structured format
293
+ const parseDecisions = (decisionsList) => {
294
+ if (!decisionsList || !Array.isArray(decisionsList))
295
+ return [];
296
+ return decisionsList.map((d) => {
297
+ const colonIdx = d.indexOf(':');
298
+ if (colonIdx > 0) {
299
+ return {
300
+ summary: d.substring(0, colonIdx).trim(),
301
+ rationale: d.substring(colonIdx + 1).trim(),
302
+ };
303
+ }
304
+ return { summary: d, rationale: null };
305
+ });
306
+ };
307
+ const techStack = fm['tech-stack'];
308
+ // Build full result
309
+ const fullResult = {
310
+ path: summaryPath,
311
+ one_liner: fm['one-liner'] || null,
312
+ key_files: fm['key-files'] || [],
313
+ tech_added: (techStack && techStack.added) || [],
314
+ patterns: fm['patterns-established'] || [],
315
+ decisions: parseDecisions(fm['key-decisions']),
316
+ requirements_completed: fm['requirements-completed'] || [],
317
+ };
318
+ // If fields specified, filter to only those fields
319
+ if (fields && fields.length > 0) {
320
+ const filtered = { path: summaryPath };
321
+ for (const field of fields) {
322
+ if (fullResult[field] !== undefined) {
323
+ filtered[field] = fullResult[field];
324
+ }
325
+ }
326
+ (0, core_js_1.output)(filtered, raw);
327
+ return;
328
+ }
329
+ (0, core_js_1.output)(fullResult, raw);
330
+ }
331
+ // ─── Web search ─────────────────────────────────────────────────────────────
332
+ async function cmdWebsearch(query, options, raw) {
333
+ const apiKey = process.env.BRAVE_API_KEY;
334
+ if (!apiKey) {
335
+ (0, core_js_1.output)({ available: false, reason: 'BRAVE_API_KEY not set' }, raw, '');
336
+ return;
337
+ }
338
+ if (!query) {
339
+ (0, core_js_1.output)({ available: false, error: 'Query required' }, raw, '');
340
+ return;
341
+ }
342
+ const params = new URLSearchParams({
343
+ q: query,
344
+ count: String(options.limit || 10),
345
+ country: 'us',
346
+ search_lang: 'en',
347
+ text_decorations: 'false',
348
+ });
349
+ if (options.freshness) {
350
+ params.set('freshness', options.freshness);
351
+ }
352
+ try {
353
+ const response = await fetch(`https://api.search.brave.com/res/v1/web/search?${params}`, {
354
+ headers: {
355
+ Accept: 'application/json',
356
+ 'X-Subscription-Token': apiKey,
357
+ },
358
+ });
359
+ if (!response.ok) {
360
+ (0, core_js_1.output)({ available: false, error: `API error: ${response.status}` }, raw, '');
361
+ return;
362
+ }
363
+ const data = (await response.json());
364
+ const results = (data.web?.results || []).map(r => ({
365
+ title: r.title,
366
+ url: r.url,
367
+ description: r.description,
368
+ age: r.age || null,
369
+ }));
370
+ (0, core_js_1.output)({
371
+ available: true,
372
+ query,
373
+ count: results.length,
374
+ results,
375
+ }, raw, results.map(r => `${r.title}\n${r.url}\n${r.description}`).join('\n\n'));
376
+ }
377
+ catch (err) {
378
+ (0, core_js_1.output)({ available: false, error: err.message }, raw, '');
379
+ }
380
+ }
381
+ // ─── Progress render ────────────────────────────────────────────────────────
382
+ function cmdProgressRender(cwd, format, raw) {
383
+ const phasesDir = node_path_1.default.join(cwd, '.planning', 'phases');
384
+ const milestone = (0, core_js_1.getMilestoneInfo)(cwd);
385
+ const phases = [];
386
+ let totalPlans = 0;
387
+ let totalSummaries = 0;
388
+ try {
389
+ const entries = node_fs_1.default.readdirSync(phasesDir, { withFileTypes: true });
390
+ const dirs = entries
391
+ .filter(e => e.isDirectory())
392
+ .map(e => e.name)
393
+ .sort((a, b) => {
394
+ const aNum = parseFloat(a.match(/^(\d+(?:\.\d+)?)/)?.[1] || '0');
395
+ const bNum = parseFloat(b.match(/^(\d+(?:\.\d+)?)/)?.[1] || '0');
396
+ return aNum - bNum;
397
+ });
398
+ for (const dir of dirs) {
399
+ const dm = dir.match(/^(\d+(?:\.\d+)?)-?(.*)/);
400
+ const phaseNum = dm ? dm[1] : dir;
401
+ const phaseName = dm && dm[2] ? dm[2].replace(/-/g, ' ') : '';
402
+ const phaseFiles = node_fs_1.default.readdirSync(node_path_1.default.join(phasesDir, dir));
403
+ const planCount = phaseFiles.filter(f => f.endsWith('-PLAN.md') || f === 'PLAN.md').length;
404
+ const summaryCount = phaseFiles.filter(f => f.endsWith('-SUMMARY.md') || f === 'SUMMARY.md').length;
405
+ totalPlans += planCount;
406
+ totalSummaries += summaryCount;
407
+ let status;
408
+ if (planCount === 0)
409
+ status = 'Pending';
410
+ else if (summaryCount >= planCount)
411
+ status = 'Complete';
412
+ else if (summaryCount > 0)
413
+ status = 'In Progress';
414
+ else
415
+ status = 'Planned';
416
+ phases.push({ number: phaseNum, name: phaseName, plans: planCount, summaries: summaryCount, status });
417
+ }
418
+ }
419
+ catch (e) {
420
+ /* optional op, ignore */
421
+ if (process.env.MAXSIM_DEBUG)
422
+ console.error(e);
423
+ }
424
+ const percent = totalPlans > 0 ? Math.min(100, Math.round((totalSummaries / totalPlans) * 100)) : 0;
425
+ if (format === 'table') {
426
+ const barWidth = 10;
427
+ const filled = Math.round((percent / 100) * barWidth);
428
+ const bar = '\u2588'.repeat(filled) + '\u2591'.repeat(barWidth - filled);
429
+ let out = `# ${milestone.version} ${milestone.name}\n\n`;
430
+ out += `**Progress:** [${bar}] ${totalSummaries}/${totalPlans} plans (${percent}%)\n\n`;
431
+ out += `| Phase | Name | Plans | Status |\n`;
432
+ out += `|-------|------|-------|--------|\n`;
433
+ for (const p of phases) {
434
+ out += `| ${p.number} | ${p.name} | ${p.summaries}/${p.plans} | ${p.status} |\n`;
435
+ }
436
+ (0, core_js_1.output)({ rendered: out }, raw, out);
437
+ }
438
+ else if (format === 'bar') {
439
+ const barWidth = 20;
440
+ const filled = Math.round((percent / 100) * barWidth);
441
+ const bar = '\u2588'.repeat(filled) + '\u2591'.repeat(barWidth - filled);
442
+ const text = `[${bar}] ${totalSummaries}/${totalPlans} plans (${percent}%)`;
443
+ (0, core_js_1.output)({ bar: text, percent, completed: totalSummaries, total: totalPlans }, raw, text);
444
+ }
445
+ else if (format === 'phase-bars') {
446
+ const doneCount = phases.filter(p => p.status === 'Complete').length;
447
+ const inProgressCount = phases.filter(p => p.status === 'In Progress').length;
448
+ const totalCount = phases.length;
449
+ const header = chalk_1.default.bold(`Milestone: ${milestone.name} — ${doneCount}/${totalCount} phases complete (${percent}%)`);
450
+ const lines = [header, ''];
451
+ for (const p of phases) {
452
+ const pPercent = p.plans > 0 ? Math.min(100, Math.round((p.summaries / p.plans) * 100)) : 0;
453
+ const barWidth = 10;
454
+ const filled = Math.round((pPercent / 100) * barWidth);
455
+ const bar = '\u2588'.repeat(filled) + '\u2591'.repeat(barWidth - filled);
456
+ const phaseLabel = `Phase ${p.number.padStart(2, '0')}`;
457
+ const statusLabel = p.status === 'Complete'
458
+ ? 'DONE'
459
+ : p.status === 'In Progress'
460
+ ? 'IN PROGRESS'
461
+ : 'PLANNED';
462
+ let line = `${phaseLabel} [${bar}] ${String(pPercent).padStart(3, ' ')}% — ${statusLabel}`;
463
+ if (p.status === 'Complete')
464
+ line = chalk_1.default.green(line);
465
+ else if (p.status === 'In Progress')
466
+ line = chalk_1.default.yellow(line);
467
+ else
468
+ line = chalk_1.default.dim(line);
469
+ lines.push(line);
470
+ }
471
+ const rendered = lines.join('\n');
472
+ (0, core_js_1.output)({ rendered, done: doneCount, in_progress: inProgressCount, total: totalCount, percent }, raw, rendered);
473
+ }
474
+ else {
475
+ (0, core_js_1.output)({
476
+ milestone_version: milestone.version,
477
+ milestone_name: milestone.name,
478
+ phases,
479
+ total_plans: totalPlans,
480
+ total_summaries: totalSummaries,
481
+ percent,
482
+ }, raw);
483
+ }
484
+ }
485
+ // ─── Todo complete ──────────────────────────────────────────────────────────
486
+ function cmdTodoComplete(cwd, filename, raw) {
487
+ if (!filename) {
488
+ (0, core_js_1.error)('filename required for todo complete');
489
+ }
490
+ const pendingDir = node_path_1.default.join(cwd, '.planning', 'todos', 'pending');
491
+ const completedDir = node_path_1.default.join(cwd, '.planning', 'todos', 'completed');
492
+ const sourcePath = node_path_1.default.join(pendingDir, filename);
493
+ if (!node_fs_1.default.existsSync(sourcePath)) {
494
+ (0, core_js_1.error)(`Todo not found: ${filename}`);
495
+ }
496
+ // Ensure completed directory exists
497
+ node_fs_1.default.mkdirSync(completedDir, { recursive: true });
498
+ // Read, add completion timestamp, move
499
+ let content = node_fs_1.default.readFileSync(sourcePath, 'utf-8');
500
+ const today = new Date().toISOString().split('T')[0];
501
+ content = `completed: ${today}\n` + content;
502
+ node_fs_1.default.writeFileSync(node_path_1.default.join(completedDir, filename), content, 'utf-8');
503
+ node_fs_1.default.unlinkSync(sourcePath);
504
+ (0, core_js_1.output)({ completed: true, file: filename, date: today }, raw, 'completed');
505
+ }
506
+ // ─── Scaffold ───────────────────────────────────────────────────────────────
507
+ function cmdScaffold(cwd, type, options, raw) {
508
+ const { phase, name } = options;
509
+ const padded = phase ? (0, core_js_1.normalizePhaseName)(phase) : '00';
510
+ const today = new Date().toISOString().split('T')[0];
511
+ // Find phase directory
512
+ const phaseInfo = phase ? (0, core_js_1.findPhaseInternal)(cwd, phase) : null;
513
+ const phaseDir = phaseInfo ? node_path_1.default.join(cwd, phaseInfo.directory) : null;
514
+ if (phase && !phaseDir && type !== 'phase-dir') {
515
+ (0, core_js_1.error)(`Phase ${phase} directory not found`);
516
+ }
517
+ let filePath;
518
+ let content;
519
+ switch (type) {
520
+ case 'context': {
521
+ filePath = node_path_1.default.join(phaseDir, `${padded}-CONTEXT.md`);
522
+ content = `---\nphase: "${padded}"\nname: "${name || phaseInfo?.phase_name || 'Unnamed'}"\ncreated: ${today}\n---\n\n# Phase ${phase}: ${name || phaseInfo?.phase_name || 'Unnamed'} — Context\n\n## Decisions\n\n_Decisions will be captured during /maxsim:discuss-phase ${phase}_\n\n## Discretion Areas\n\n_Areas where the executor can use judgment_\n\n## Deferred Ideas\n\n_Ideas to consider later_\n`;
523
+ break;
524
+ }
525
+ case 'uat': {
526
+ filePath = node_path_1.default.join(phaseDir, `${padded}-UAT.md`);
527
+ content = `---\nphase: "${padded}"\nname: "${name || phaseInfo?.phase_name || 'Unnamed'}"\ncreated: ${today}\nstatus: pending\n---\n\n# Phase ${phase}: ${name || phaseInfo?.phase_name || 'Unnamed'} — User Acceptance Testing\n\n## Test Results\n\n| # | Test | Status | Notes |\n|---|------|--------|-------|\n\n## Summary\n\n_Pending UAT_\n`;
528
+ break;
529
+ }
530
+ case 'verification': {
531
+ filePath = node_path_1.default.join(phaseDir, `${padded}-VERIFICATION.md`);
532
+ content = `---\nphase: "${padded}"\nname: "${name || phaseInfo?.phase_name || 'Unnamed'}"\ncreated: ${today}\nstatus: pending\n---\n\n# Phase ${phase}: ${name || phaseInfo?.phase_name || 'Unnamed'} — Verification\n\n## Goal-Backward Verification\n\n**Phase Goal:** [From ROADMAP.md]\n\n## Checks\n\n| # | Requirement | Status | Evidence |\n|---|------------|--------|----------|\n\n## Result\n\n_Pending verification_\n`;
533
+ break;
534
+ }
535
+ case 'phase-dir': {
536
+ if (!phase || !name) {
537
+ (0, core_js_1.error)('phase and name required for phase-dir scaffold');
538
+ }
539
+ const slug = (0, core_js_1.generateSlugInternal)(name);
540
+ const dirName = `${padded}-${slug}`;
541
+ const phasesParent = node_path_1.default.join(cwd, '.planning', 'phases');
542
+ node_fs_1.default.mkdirSync(phasesParent, { recursive: true });
543
+ const dirPath = node_path_1.default.join(phasesParent, dirName);
544
+ node_fs_1.default.mkdirSync(dirPath, { recursive: true });
545
+ (0, core_js_1.output)({ created: true, directory: `.planning/phases/${dirName}`, path: dirPath }, raw, dirPath);
546
+ return;
547
+ }
548
+ default:
549
+ (0, core_js_1.error)(`Unknown scaffold type: ${type}. Available: context, uat, verification, phase-dir`);
550
+ return; // unreachable but satisfies TS
551
+ }
552
+ if (node_fs_1.default.existsSync(filePath)) {
553
+ (0, core_js_1.output)({ created: false, reason: 'already_exists', path: filePath }, raw, 'exists');
554
+ return;
555
+ }
556
+ node_fs_1.default.writeFileSync(filePath, content, 'utf-8');
557
+ const relPath = node_path_1.default.relative(cwd, filePath);
558
+ (0, core_js_1.output)({ created: true, path: relPath }, raw, relPath);
559
+ }
560
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/core/commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Config — Planning config CRUD operations
3
+ *
4
+ * Ported from maxsim/bin/lib/config.cjs
5
+ */
6
+ export declare function cmdConfigEnsureSection(cwd: string, raw: boolean): void;
7
+ export declare function cmdConfigSet(cwd: string, keyPath: string | undefined, value: string | undefined, raw: boolean): void;
8
+ export declare function cmdConfigGet(cwd: string, keyPath: string | undefined, raw: boolean): void;
9
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAuDtE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CA0CpH;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAiCzF"}