@shxd/mmit 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Chitransh Sharma
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -4,9 +4,9 @@
4
4
  ██ ██ ██ ██ ██ ██ ██ ▀██▄
5
5
  ```
6
6
 
7
- # mmit
7
+ AI-powered git workflow tool.
8
8
 
9
- AI-powered conventional commit message generator. Works with OpenAI, Anthropic, Gemini, and OpenRouter.
9
+ ![mmit workflow](assets/screenshot-workflow.png)
10
10
 
11
11
  ```
12
12
  mmit
@@ -53,14 +53,51 @@ mmit --dry-run # preview without committing
53
53
  mmit --auto # skip the interactive prompt
54
54
  ```
55
55
 
56
- ## Options
56
+ ### Options
57
57
 
58
- - `-p, --provider <name>` — Use a specific provider (openai, anthropic, gemini, openrouter)
59
- - `-m, --model <name>` Override the default model
60
- - `--dry-run` Generate the message without committing
61
- - `--auto` — Skip the interactive review prompt
62
- - `--diff-only` — Print the staged diff and exit
63
- - `--config` — Print the current config
58
+ ```
59
+ -p, --provider <name> AI provider (openai, anthropic, gemini, openrouter)
60
+ -m, --model <name> Override the default model
61
+ -V, --version Print version
62
+ --dry-run Generate without committing
63
+ --auto Skip the interactive prompt
64
+ --diff-only Print the staged diff and exit
65
+ --config Print the current config
66
+ ```
67
+
68
+ ## Changelog
69
+
70
+ ```bash
71
+ mmit changelog # commits since last tag
72
+ mmit changelog --all # full changelog for all tags
73
+ mmit changelog --write # prepend to CHANGELOG.md
74
+ mmit changelog --verbose # include internal types (chore, ci, etc.)
75
+ mmit changelog --from v0.1.0 --to v0.2.0 # custom range
76
+ mmit changelog --output RELEASES.md # custom output path
77
+ ```
78
+
79
+ Groups commits into **Added**, **Fixed**, **Changed**, **Documentation**, and **Breaking Changes** sections. Body bullet points appear as sub-items.
80
+
81
+ ![mmit changelog --all output](assets/screenshot-changelog.png)
82
+
83
+ ## Release
84
+
85
+ ```bash
86
+ mmit release # auto-detect bump from commits
87
+ mmit release patch # force patch bump
88
+ mmit release --dry-run # preview without making changes
89
+ mmit release --no-tag # skip git tag
90
+ ```
91
+
92
+ Auto-detects the bump type from commits since the last tag:
93
+
94
+ - Breaking changes (`!` or `BREAKING CHANGE:`) → **major**
95
+ - New features (`feat`) → **minor**
96
+ - Everything else → **patch**
97
+
98
+ The flow: writes the changelog, bumps `package.json`, commits as `chore(release): v<version>`, and creates a git tag.
99
+
100
+ ![mmit release --dry-run output](assets/screenshot-release.png)
64
101
 
65
102
  ## Configuration
66
103
 
@@ -82,3 +119,7 @@ Project: `.mmit.json` in the project root (overrides global)
82
119
  3. Parses the response into a subject and optional body
83
120
  4. Presents the message for review, editing, or regeneration
84
121
  5. Commits when you confirm
122
+
123
+ ## License
124
+
125
+ [MIT](LICENSE)
@@ -0,0 +1,11 @@
1
+ export interface ChangelogOptions {
2
+ all?: boolean;
3
+ verbose?: boolean;
4
+ write?: boolean;
5
+ output?: string;
6
+ from?: string;
7
+ to?: string;
8
+ version?: string;
9
+ }
10
+ export declare function generateChangelog(options: ChangelogOptions): Promise<string>;
11
+ //# sourceMappingURL=changelog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changelog.d.ts","sourceRoot":"","sources":["../src/changelog.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAiLD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4ClF"}
@@ -0,0 +1,195 @@
1
+ import { execSync } from 'node:child_process';
2
+ import { readFileSync, existsSync, writeFileSync } from 'node:fs';
3
+ const GIT_OPTS = { encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024, stdio: 'pipe' };
4
+ function git(args) {
5
+ try {
6
+ return execSync(`git ${args}`, GIT_OPTS).trim();
7
+ }
8
+ catch {
9
+ return '';
10
+ }
11
+ }
12
+ function getLastTag() {
13
+ const tag = git('describe --tags --abbrev=0 2>/dev/null');
14
+ return tag || null;
15
+ }
16
+ function getAllTags() {
17
+ const tags = git('tag --sort=-v:refname');
18
+ return tags ? tags.split('\n').filter(Boolean) : [];
19
+ }
20
+ const COMMIT_PARSE = /^([a-zA-Z]+)(\([a-zA-Z0-9_.\-,/]+\))?!?:\s(.+)/;
21
+ function parseSubject(subject) {
22
+ const m = subject.match(COMMIT_PARSE);
23
+ if (!m)
24
+ return null;
25
+ const type = m[1];
26
+ const scope = m[2] ? m[2].slice(1, -1) : undefined;
27
+ const full = m[0];
28
+ const breaking = full.includes('!');
29
+ const description = m[3];
30
+ return { type, scope, breaking, description };
31
+ }
32
+ const BREAKING_FOOTER = /^BREAKING[-\s]CHANGE:/m;
33
+ function extractBullets(body) {
34
+ if (!body)
35
+ return [];
36
+ return body.split('\n')
37
+ .map(l => l.trim())
38
+ .filter(l => /^[-*]\s/.test(l))
39
+ .map(l => l.replace(/^[-*]\s*/, ''))
40
+ .filter(Boolean);
41
+ }
42
+ function getCommits(from, to = 'HEAD', verbose = false) {
43
+ const range = from === '--root' ? to : `${from}..${to}`;
44
+ const raw = git(`log --format="<<<COMMIT>>>%n%H%n%s%n%b" ${range}`);
45
+ if (!raw)
46
+ return [];
47
+ const blocks = raw.split('<<<COMMIT>>>\n').filter(Boolean);
48
+ const commits = [];
49
+ const skipTypes = verbose ? new Set() : new Set(['chore', 'ci', 'build', 'test', 'style']);
50
+ for (const block of blocks) {
51
+ const lines = block.split('\n');
52
+ if (lines.length < 2)
53
+ continue;
54
+ const hash = lines[0].trim();
55
+ const subject = lines[1].trim();
56
+ const body = lines.slice(2).join('\n').trim();
57
+ const parsed = parseSubject(subject);
58
+ if (!parsed)
59
+ continue;
60
+ if (skipTypes.has(parsed.type))
61
+ continue;
62
+ const breaking = parsed.breaking || BREAKING_FOOTER.test(body);
63
+ const scope = parsed.scope?.replace(/^\(|\)$/g, '');
64
+ const entry = parsed.description;
65
+ const bullets = extractBullets(body);
66
+ commits.push({
67
+ hash,
68
+ subject,
69
+ type: parsed.type,
70
+ scope,
71
+ breaking,
72
+ entry,
73
+ bullets,
74
+ });
75
+ }
76
+ return commits;
77
+ }
78
+ function capitalize(s) {
79
+ return s.charAt(0).toUpperCase() + s.slice(1);
80
+ }
81
+ function formatEntry(entry, scope) {
82
+ const s = capitalize(entry);
83
+ return scope ? `**${scope}:** ${s}` : s;
84
+ }
85
+ function groupCommits(commits) {
86
+ const groups = new Map();
87
+ for (const c of commits) {
88
+ const item = { entry: formatEntry(c.entry, c.scope), bullets: c.bullets };
89
+ if (c.breaking) {
90
+ const items = groups.get('breaking') || [];
91
+ items.push(item);
92
+ groups.set('breaking', items);
93
+ continue;
94
+ }
95
+ let section;
96
+ switch (c.type) {
97
+ case 'feat':
98
+ section = 'added';
99
+ break;
100
+ case 'fix':
101
+ section = 'fixed';
102
+ break;
103
+ case 'refactor':
104
+ case 'perf':
105
+ section = 'changed';
106
+ break;
107
+ case 'docs':
108
+ section = 'docs';
109
+ break;
110
+ default: continue;
111
+ }
112
+ const items = groups.get(section) || [];
113
+ items.push(item);
114
+ groups.set(section, items);
115
+ }
116
+ return groups;
117
+ }
118
+ const SECTION_ORDER = ['breaking', 'added', 'fixed', 'changed', 'docs'];
119
+ const SECTION_LABELS = {
120
+ breaking: 'Breaking Changes',
121
+ added: 'Added',
122
+ fixed: 'Fixed',
123
+ changed: 'Changed',
124
+ docs: 'Documentation',
125
+ };
126
+ function formatDate() {
127
+ return new Date().toISOString().slice(0, 10);
128
+ }
129
+ function generateMarkdown(groups, version) {
130
+ const date = formatDate();
131
+ const lines = [];
132
+ lines.push(`## ${version} (${date})`);
133
+ lines.push('');
134
+ for (const key of SECTION_ORDER) {
135
+ const items = groups.get(key);
136
+ if (!items || items.length === 0)
137
+ continue;
138
+ lines.push(`### ${SECTION_LABELS[key]}`);
139
+ lines.push('');
140
+ for (const item of items) {
141
+ lines.push(`- ${item.entry}`);
142
+ for (const bullet of item.bullets) {
143
+ lines.push(` - ${bullet}`);
144
+ }
145
+ }
146
+ lines.push('');
147
+ }
148
+ return lines.join('\n').trimEnd() + '\n';
149
+ }
150
+ export async function generateChangelog(options) {
151
+ const to = options.to || 'HEAD';
152
+ const verbose = options.verbose || false;
153
+ let sections = [];
154
+ if (options.all) {
155
+ const tags = getAllTags();
156
+ if (tags.length === 0) {
157
+ const commits = getCommits('--root', to, verbose);
158
+ const groups = groupCommits(commits);
159
+ if (groups.size > 0)
160
+ sections.push(generateMarkdown(groups, '0.1.0'));
161
+ }
162
+ else {
163
+ for (let i = 0; i < tags.length; i++) {
164
+ const from = i < tags.length - 1 ? tags[i + 1] : '--root';
165
+ const commits = getCommits(from, tags[i], verbose);
166
+ const groups = groupCommits(commits);
167
+ if (groups.size > 0)
168
+ sections.push(generateMarkdown(groups, tags[i]));
169
+ }
170
+ const lastTag = tags[0];
171
+ const unreleased = getCommits(lastTag, to, verbose);
172
+ if (unreleased.length > 0) {
173
+ const groups = groupCommits(unreleased);
174
+ sections.splice(0, 0, generateMarkdown(groups, 'Unreleased'));
175
+ }
176
+ }
177
+ }
178
+ else {
179
+ const from = options.from || getLastTag() || '--root';
180
+ const commits = getCommits(from, to, verbose);
181
+ if (commits.length === 0)
182
+ return '';
183
+ const versionLabel = options.version || (from === '--root' ? '0.1.0' : 'Unreleased');
184
+ const groups = groupCommits(commits);
185
+ sections.push(generateMarkdown(groups, versionLabel));
186
+ }
187
+ const result = sections.join('\n');
188
+ if (options.write || options.output) {
189
+ const filePath = options.output || 'CHANGELOG.md';
190
+ const existing = existsSync(filePath) ? readFileSync(filePath, 'utf-8') : '';
191
+ writeFileSync(filePath, result + existing);
192
+ }
193
+ return result;
194
+ }
195
+ //# sourceMappingURL=changelog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changelog.js","sourceRoot":"","sources":["../src/changelog.ts"],"names":[],"mappings":"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"}
package/dist/git.d.ts CHANGED
@@ -8,9 +8,16 @@ export interface DiffStats {
8
8
  insertions: number;
9
9
  deletions: number;
10
10
  }
11
+ export interface UnstagedStats {
12
+ files: number;
13
+ names: string[];
14
+ diffs: string[];
15
+ }
11
16
  export declare function isGitRepo(): boolean;
12
17
  export declare function getGitDiff(maxTokens?: number): DiffResult;
13
18
  export declare function stageAllAndDiff(): DiffResult;
14
19
  export declare function getDiffStats(): DiffStats;
15
20
  export declare function createCommit(subject: string, body?: string): string;
21
+ export declare function hasUnstagedChanges(): boolean;
22
+ export declare function getUnstagedStats(): UnstagedStats;
16
23
  //# sourceMappingURL=git.d.ts.map
package/dist/git.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,wBAAgB,SAAS,IAAI,OAAO,CAOnC;AAUD,wBAAgB,UAAU,CAAC,SAAS,GAAE,MAAa,GAAG,UAAU,CA6B/D;AAoBD,wBAAgB,eAAe,IAAI,UAAU,CAG5C;AAED,wBAAgB,YAAY,IAAI,SAAS,CAcxC;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAUnE"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAID,wBAAgB,SAAS,IAAI,OAAO,CAOnC;AAUD,wBAAgB,UAAU,CAAC,SAAS,GAAE,MAAa,GAAG,UAAU,CAmB/D;AAoBD,wBAAgB,eAAe,IAAI,UAAU,CAG5C;AAED,wBAAgB,YAAY,IAAI,SAAS,CAaxC;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAUnE;AAED,wBAAgB,kBAAkB,IAAI,OAAO,CAQ5C;AAED,wBAAgB,gBAAgB,IAAI,aAAa,CA2BhD"}
package/dist/git.js CHANGED
@@ -22,13 +22,6 @@ export function getGitDiff(maxTokens = 8000) {
22
22
  return { staged: false, diff: '', truncated: false };
23
23
  }
24
24
  let diff = git('diff --cached');
25
- let staged = !!diff;
26
- if (!diff) {
27
- diff = git('diff HEAD');
28
- }
29
- if (!diff) {
30
- diff = git('diff');
31
- }
32
25
  if (!diff) {
33
26
  return { staged: false, diff: '', truncated: false };
34
27
  }
@@ -38,7 +31,7 @@ export function getGitDiff(maxTokens = 8000) {
38
31
  diff = truncateDiff(diff, maxTokens);
39
32
  truncated = true;
40
33
  }
41
- return { staged, diff, truncated };
34
+ return { staged: true, diff, truncated };
42
35
  }
43
36
  function truncateDiff(diff, maxTokens) {
44
37
  const chars = maxTokens * 4;
@@ -60,8 +53,7 @@ export function stageAllAndDiff() {
60
53
  return getGitDiff();
61
54
  }
62
55
  export function getDiffStats() {
63
- const staged = !!git('diff --cached --stat');
64
- const numstat = staged ? git('diff --cached --numstat') : git('diff HEAD --numstat') || git('diff --numstat');
56
+ const numstat = git('diff --cached --numstat');
65
57
  if (!numstat)
66
58
  return { files: 0, insertions: 0, deletions: 0 };
67
59
  const lines = numstat.split('\n').filter(Boolean);
@@ -87,4 +79,46 @@ export function createCommit(subject, body) {
87
79
  });
88
80
  return git('rev-parse --short HEAD');
89
81
  }
82
+ export function hasUnstagedChanges() {
83
+ const status = git('status --porcelain');
84
+ if (!status)
85
+ return false;
86
+ return status.split('\n').some(line => {
87
+ if (line.startsWith('??'))
88
+ return true;
89
+ if (line.length >= 2 && line[1] !== ' ')
90
+ return true;
91
+ return false;
92
+ });
93
+ }
94
+ export function getUnstagedStats() {
95
+ const status = git('status --porcelain');
96
+ if (!status)
97
+ return { files: 0, names: [], diffs: [] };
98
+ const lines = status.split('\n').filter(line => {
99
+ if (line.startsWith('??'))
100
+ return true;
101
+ if (line.length >= 2 && line[1] !== ' ')
102
+ return true;
103
+ return false;
104
+ });
105
+ const names = lines.map(l => l.slice(3));
106
+ const isUntracked = (n) => status.split('\n').some(l => l.startsWith('??') && l.slice(3) === n);
107
+ const numstatRaw = git('diff --numstat');
108
+ const numstat = {};
109
+ for (const line of numstatRaw.split('\n').filter(Boolean)) {
110
+ const [ins, del, ...fileParts] = line.split('\t');
111
+ const file = fileParts.join('\t');
112
+ numstat[file] = { ins: parseInt(ins, 10) || 0, del: parseInt(del, 10) || 0 };
113
+ }
114
+ const diffs = names.map(n => {
115
+ if (isUntracked(n))
116
+ return '(new)';
117
+ const s = numstat[n];
118
+ if (!s)
119
+ return '';
120
+ return `+${s.ins} -${s.del}`;
121
+ });
122
+ return { files: names.length, names, diffs };
123
+ }
90
124
  //# sourceMappingURL=git.js.map
package/dist/git.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AA0BA,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CA4NzC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAYA,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CA6QzC"}
package/dist/index.js CHANGED
@@ -4,37 +4,35 @@ import * as p from '@clack/prompts';
4
4
  import pico from 'picocolors';
5
5
  import { loadConfig, saveGlobalConfig, detectProviderFromEnv } from './config.js';
6
6
  import { generateCommitMessage } from './engine.js';
7
- import { getGitDiff, stageAllAndDiff, createCommit, getDiffStats, isGitRepo } from './git.js';
8
- const LOGO = `\
9
- █▓ █▓▄
10
- ██▀██▀▓▄ ██▀██▀▓▄ ▄▄▄ ██
11
- ██ ██ ██ ██ ██ ██ ██ ▀██▄`;
12
- function renderHeader(version) {
13
- const lines = LOGO.split('\n');
14
- const maxWidth = Math.max(...lines.map(l => l.length));
15
- const v = pico.dim(`v${version}`);
16
- return pico.dim(lines.map((l, i) => {
17
- if (i === 0)
18
- return l + ' '.repeat(maxWidth - l.length + 2) + v;
19
- return l;
20
- }).join('\n'));
21
- }
22
- const VERSION = '0.1.0';
7
+ import { generateChangelog } from './changelog.js';
8
+ import { handleRelease } from './release.js';
9
+ import { getGitDiff, stageAllAndDiff, createCommit, getDiffStats, isGitRepo, hasUnstagedChanges, getUnstagedStats } from './git.js';
10
+ import { renderHeader, VERSION } from './logo.js';
23
11
  export async function run() {
24
12
  // Handle `mmit init` before commander parsing
25
13
  if (process.argv.includes('init')) {
26
14
  await handleInit();
27
15
  return;
28
16
  }
17
+ // Handle `mmit changelog` before commander parsing
18
+ if (process.argv.includes('changelog')) {
19
+ await handleChangelog();
20
+ return;
21
+ }
22
+ // Handle `mmit release` before commander parsing
23
+ if (process.argv.includes('release')) {
24
+ await handleRelease();
25
+ return;
26
+ }
29
27
  if (!isGitRepo()) {
30
- process.stderr.write(renderHeader(VERSION) + '\n');
28
+ process.stderr.write(renderHeader() + '\n');
31
29
  p.intro('');
32
30
  p.outro(pico.red('Not a git repository'));
33
31
  process.exit(1);
34
32
  }
35
33
  program
36
34
  .name('mmit')
37
- .description('AI-powered git commit message generator')
35
+ .description('AI-powered git workflow tool')
38
36
  .version(VERSION)
39
37
  .option('-p, --provider <name>', 'AI provider (openai, anthropic, gemini, openrouter)')
40
38
  .option('-m, --model <name>', 'Model name override')
@@ -66,7 +64,7 @@ export async function run() {
66
64
  }
67
65
  const provider = opts.provider || loadConfig().provider || detectProviderFromEnv();
68
66
  const model = opts.model;
69
- process.stderr.write(renderHeader(VERSION) + '\n');
67
+ process.stderr.write(renderHeader() + '\n');
70
68
  p.intro('');
71
69
  const diffResult = getGitDiff();
72
70
  let diff = diffResult.diff;
@@ -88,6 +86,39 @@ export async function run() {
88
86
  return;
89
87
  }
90
88
  }
89
+ if (staged && hasUnstagedChanges()) {
90
+ const unstaged = getUnstagedStats();
91
+ const files = unstaged.files;
92
+ const what = `file${files !== 1 ? 's' : ''}`;
93
+ p.log.warn(`${files} untracked or modified ${what} are not staged`);
94
+ p.log.message(unstaged.names.map((n, i) => {
95
+ const dim = pico.dim;
96
+ const stat = unstaged.diffs[i];
97
+ const statStr = stat ? dim(` ${stat}`) : '';
98
+ return ` ${n}${statStr}`;
99
+ }).join('\n'));
100
+ const action = await p.select({
101
+ message: 'What do you want to do?',
102
+ options: [
103
+ { value: 'stage', label: 'Stage all and proceed', hint: 'git add -A' },
104
+ { value: 'staged', label: 'Commit staged only', hint: 'ignore unstaged changes' },
105
+ { value: 'cancel', label: 'Cancel' },
106
+ ],
107
+ });
108
+ if (p.isCancel(action) || action === 'cancel') {
109
+ p.outro('Cancelled.');
110
+ return;
111
+ }
112
+ if (action === 'stage') {
113
+ const result = stageAllAndDiff();
114
+ diff = result.diff;
115
+ staged = result.staged;
116
+ if (!diff) {
117
+ p.outro(pico.red('No diff to commit.'));
118
+ return;
119
+ }
120
+ }
121
+ }
91
122
  // Detect if we need a provider setup
92
123
  if (!provider) {
93
124
  p.log.warn('No API key found.');
@@ -216,7 +247,7 @@ const PROVIDER_INFO = {
216
247
  openrouter: { env: 'OPENROUTER_API_KEY', defaultModel: 'openrouter/free' },
217
248
  };
218
249
  async function handleInit() {
219
- process.stderr.write(renderHeader(VERSION) + '\n');
250
+ process.stderr.write(renderHeader() + '\n');
220
251
  p.intro('');
221
252
  const provider = await p.select({
222
253
  message: 'AI provider',
@@ -267,4 +298,40 @@ async function handleInit() {
267
298
  saveGlobalConfig(config);
268
299
  p.outro(pico.green(`Config saved to ~/.mmit.json`));
269
300
  }
301
+ async function handleChangelog() {
302
+ process.stderr.write(renderHeader() + '\n');
303
+ const hasAll = process.argv.includes('--all') || process.argv.includes('-a');
304
+ const hasWrite = process.argv.includes('--write') || process.argv.includes('-w');
305
+ const hasVerbose = process.argv.includes('--verbose') || process.argv.includes('-v');
306
+ let output = '';
307
+ let from = '';
308
+ let to = '';
309
+ for (let i = 0; i < process.argv.length; i++) {
310
+ const arg = process.argv[i];
311
+ if ((arg === '--output' || arg === '-o') && i + 1 < process.argv.length) {
312
+ output = process.argv[++i];
313
+ }
314
+ if (arg === '--from' && i + 1 < process.argv.length) {
315
+ from = process.argv[++i];
316
+ }
317
+ if (arg === '--to' && i + 1 < process.argv.length) {
318
+ to = process.argv[++i];
319
+ }
320
+ }
321
+ const result = await generateChangelog({
322
+ all: hasAll,
323
+ verbose: hasVerbose,
324
+ write: hasWrite,
325
+ output: output || undefined,
326
+ from: from || undefined,
327
+ to: to || undefined,
328
+ });
329
+ if (!result) {
330
+ console.log('No commits found.');
331
+ return;
332
+ }
333
+ if (!hasWrite && !output) {
334
+ console.log(result);
335
+ }
336
+ }
270
337
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/logo.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export declare const VERSION = "0.1.0";
2
+ export declare function renderHeader(): string;
3
+ //# sourceMappingURL=logo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logo.d.ts","sourceRoot":"","sources":["../src/logo.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,wBAAgB,YAAY,IAAI,MAAM,CAQrC"}
package/dist/logo.js ADDED
@@ -0,0 +1,17 @@
1
+ import pico from 'picocolors';
2
+ const LOGO = `\
3
+ █▓ █▓▄
4
+ ██▀██▀▓▄ ██▀██▀▓▄ ▄▄▄ ██
5
+ ██ ██ ██ ██ ██ ██ ██ ▀██▄`;
6
+ export const VERSION = '0.1.0';
7
+ export function renderHeader() {
8
+ const lines = LOGO.split('\n');
9
+ const maxWidth = Math.max(...lines.map(l => l.length));
10
+ const v = pico.dim(`v${VERSION}`);
11
+ return pico.dim(lines.map((l, i) => {
12
+ if (i === 0)
13
+ return l + ' '.repeat(maxWidth - l.length + 2) + v;
14
+ return l;
15
+ }).join('\n'));
16
+ }
17
+ //# sourceMappingURL=logo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logo.js","sourceRoot":"","sources":["../src/logo.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,YAAY,CAAC;AAE9B,MAAM,IAAI,GAAG;;;4BAGe,CAAC;AAE7B,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,MAAM,UAAU,YAAY;IAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACvD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;IAClC,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACjC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAChE,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function handleRelease(): Promise<void>;
2
+ //# sourceMappingURL=release.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../src/release.ts"],"names":[],"mappings":"AAgEA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CA+GnD"}
@@ -0,0 +1,148 @@
1
+ import { execSync } from 'node:child_process';
2
+ import { readFileSync, existsSync, writeFileSync } from 'node:fs';
3
+ import * as p from '@clack/prompts';
4
+ import pico from 'picocolors';
5
+ import { generateChangelog } from './changelog.js';
6
+ import { isGitRepo } from './git.js';
7
+ import { renderHeader } from './logo.js';
8
+ const GIT_OPTS = { encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024, stdio: 'pipe' };
9
+ function git(args) {
10
+ try {
11
+ return execSync(`git ${args}`, GIT_OPTS).trim();
12
+ }
13
+ catch {
14
+ return '';
15
+ }
16
+ }
17
+ function getLastTag() {
18
+ const tag = git('describe --tags --abbrev=0 2>/dev/null');
19
+ return tag || null;
20
+ }
21
+ const COMMIT_PARSE = /^([a-zA-Z]+)(\([a-zA-Z0-9_.\-,/]+\))?!?:\s(.+)/;
22
+ const BREAKING_FOOTER = /^BREAKING[-\s]CHANGE:/m;
23
+ function detectBump(lastTag) {
24
+ const range = lastTag ? `${lastTag}..HEAD` : 'HEAD';
25
+ const raw = git(`log --format="%s###BODY###%b###END###" ${range}`);
26
+ if (!raw)
27
+ return 'patch';
28
+ const blocks = raw.split('###END###\n').filter(Boolean);
29
+ let hasFeat = false;
30
+ for (const block of blocks) {
31
+ const [subjectLine, ...rest] = block.split('###BODY###');
32
+ const subject = subjectLine.trim();
33
+ const body = rest.join('###BODY###').trim();
34
+ const m = subject.match(COMMIT_PARSE);
35
+ if (!m)
36
+ continue;
37
+ const full = m[0];
38
+ const type = m[1];
39
+ if (full.includes('!') || BREAKING_FOOTER.test(body))
40
+ return 'major';
41
+ if (type === 'feat')
42
+ hasFeat = true;
43
+ }
44
+ return hasFeat ? 'minor' : 'patch';
45
+ }
46
+ function bumpVersion(version, bump) {
47
+ const parts = version.split('.').map(Number);
48
+ if (parts.length !== 3 || parts.some(isNaN)) {
49
+ throw new Error(`Invalid version: ${version}`);
50
+ }
51
+ switch (bump) {
52
+ case 'patch': return `${parts[0]}.${parts[1]}.${parts[2] + 1}`;
53
+ case 'minor': return `${parts[0]}.${parts[1] + 1}.0`;
54
+ case 'major': return `${parts[0] + 1}.0.0`;
55
+ }
56
+ }
57
+ export async function handleRelease() {
58
+ process.stderr.write(renderHeader() + '\n');
59
+ const argv = process.argv;
60
+ const bumpArg = argv[argv.indexOf('release') + 1];
61
+ const explicitBump = bumpArg && !bumpArg.startsWith('-') ? bumpArg : undefined;
62
+ if (explicitBump && !['patch', 'minor', 'major'].includes(explicitBump)) {
63
+ console.error('Usage: mmit release [patch|minor|major] [--dry-run] [--no-tag]');
64
+ process.exit(1);
65
+ return;
66
+ }
67
+ const dryRun = argv.includes('--dry-run');
68
+ const noTag = argv.includes('--no-tag');
69
+ if (!isGitRepo()) {
70
+ p.outro(pico.red('Not a git repository'));
71
+ process.exit(1);
72
+ return;
73
+ }
74
+ if (!dryRun) {
75
+ const status = git('status --porcelain');
76
+ if (status) {
77
+ p.outro(pico.red('Working directory is not clean. Commit or stash changes first.'));
78
+ process.exit(1);
79
+ return;
80
+ }
81
+ }
82
+ const pkgPath = process.cwd() + '/package.json';
83
+ if (!existsSync(pkgPath)) {
84
+ p.outro(pico.red('No package.json found in current directory'));
85
+ process.exit(1);
86
+ return;
87
+ }
88
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
89
+ const currentVersion = pkg.version;
90
+ if (!currentVersion) {
91
+ p.outro(pico.red('No version field in package.json'));
92
+ process.exit(1);
93
+ return;
94
+ }
95
+ const lastTag = getLastTag();
96
+ const bump = explicitBump || detectBump(lastTag);
97
+ const newVersion = bumpVersion(currentVersion, bump);
98
+ p.log.step(`Release: ${pico.dim(currentVersion)} ${pico.dim('→')} ${pico.green(`v${newVersion}`)} ${pico.dim(`(${bump})`)}`);
99
+ const changelog = await generateChangelog({
100
+ from: lastTag || undefined,
101
+ to: 'HEAD',
102
+ version: `v${newVersion}`,
103
+ });
104
+ if (!changelog) {
105
+ p.outro(pico.red('No commits to release'));
106
+ process.exit(1);
107
+ return;
108
+ }
109
+ p.log.message(changelog);
110
+ if (dryRun) {
111
+ p.log.step(`${pico.dim('git add -A')}`);
112
+ p.log.step(`${pico.dim(`git commit -m "chore(release): v${newVersion}"`)}`);
113
+ if (!noTag)
114
+ p.log.step(`${pico.dim(`git tag v${newVersion}`)}`);
115
+ p.outro(pico.green('Dry-run — no changes made'));
116
+ return;
117
+ }
118
+ const confirm = await p.confirm({
119
+ message: `Release v${newVersion}?`,
120
+ initialValue: true,
121
+ });
122
+ if (p.isCancel(confirm) || !confirm) {
123
+ p.outro('Cancelled.');
124
+ return;
125
+ }
126
+ p.log.step('Writing changelog...');
127
+ const changelogPath = process.cwd() + '/CHANGELOG.md';
128
+ const existing = existsSync(changelogPath) ? readFileSync(changelogPath, 'utf-8') : '';
129
+ writeFileSync(changelogPath, changelog + '\n' + existing);
130
+ p.log.step('Bumping version...');
131
+ pkg.version = newVersion;
132
+ writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n');
133
+ p.log.step('Committing...');
134
+ git('add -A');
135
+ git(`commit -m "chore(release): v${newVersion}"`);
136
+ const hash = git('rev-parse --short HEAD');
137
+ if (!hash) {
138
+ p.outro(pico.red('Commit failed'));
139
+ process.exit(1);
140
+ return;
141
+ }
142
+ if (!noTag) {
143
+ p.log.step('Tagging...');
144
+ git(`tag v${newVersion}`);
145
+ }
146
+ p.outro(pico.green(`Released v${newVersion} (${hash})${noTag ? '' : ' · tagged'} `));
147
+ }
148
+ //# sourceMappingURL=release.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release.js","sourceRoot":"","sources":["../src/release.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=test-unstaged.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-unstaged.d.ts","sourceRoot":"","sources":["../src/test-unstaged.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // test
3
+ //# sourceMappingURL=test-unstaged.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-unstaged.js","sourceRoot":"","sources":["../src/test-unstaged.ts"],"names":[],"mappings":";AAAA,OAAO"}
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "@shxd/mmit",
3
- "version": "0.1.0",
4
- "description": "AI-powered git commit message generator",
3
+ "version": "0.2.0",
4
+ "description": "AI-powered git workflow tool",
5
+ "license": "MIT",
5
6
  "bin": {
6
7
  "mmit": "./bin/mmit"
7
8
  },