maiass 5.9.53 → 5.9.56
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/README.md +10 -10
- package/lib/changelog.js +2 -2
- package/lib/git-info.js +13 -6
- package/lib/maiass-command.js +0 -11
- package/package.json +10 -3
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
**Modular AI-Augmented Semantic Scribe** — intelligent Git workflow automation
|
|
5
5
|
|
|
6
6
|
[](https://www.npmjs.com/package/maiass)
|
|
7
|
-
[](https://nodejs.org/)
|
|
8
8
|
[](LICENSE)
|
|
9
9
|
|
|
10
10
|
---
|
|
@@ -21,7 +21,7 @@ MAIASS automates the repetitive parts of your Git workflow: staging, AI-powered
|
|
|
21
21
|
npm install -g maiass
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
-
Requires Node.js
|
|
24
|
+
Requires Node.js 20+.
|
|
25
25
|
|
|
26
26
|
---
|
|
27
27
|
|
|
@@ -60,9 +60,9 @@ maiass config set MAIASS_AI_TOKEN your_api_key
|
|
|
60
60
|
AI mode is configured per-project in `.env.maiass`:
|
|
61
61
|
|
|
62
62
|
```bash
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
MAIASS_AI_MODE=ask # ask each time (default)
|
|
64
|
+
MAIASS_AI_MODE=autosuggest # always use AI
|
|
65
|
+
MAIASS_AI_MODE=off # disable AI
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
---
|
|
@@ -73,7 +73,7 @@ MAIASS_AI_COMMITS=off # disable AI
|
|
|
73
73
|
- **Version management** — detects and bumps `package.json`, `composer.json`, `VERSION`, `.pbxproj` (Swift/Xcode), and more
|
|
74
74
|
- **Changelog generation** — user-facing `CHANGELOG.md` and internal developer changelog
|
|
75
75
|
- **Branch workflow** — feature → develop → staging → main with merge handling
|
|
76
|
-
- **
|
|
76
|
+
- **Ticket integration** — ticket numbers auto-detected from branch names (Jira `ABC-123`, GitHub/Trello `#123` or `123`)
|
|
77
77
|
- **First-run friendly** — works immediately with sensible defaults, no blocking setup
|
|
78
78
|
|
|
79
79
|
---
|
|
@@ -92,10 +92,10 @@ Run `maiass --setup` to configure a project interactively, or edit `.env.maiass`
|
|
|
92
92
|
Common variables:
|
|
93
93
|
|
|
94
94
|
```bash
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
95
|
+
MAIASS_AI_MODE=ask
|
|
96
|
+
MAIASS_MAINBRANCH=main
|
|
97
|
+
MAIASS_DEVELOPBRANCH=develop
|
|
98
|
+
MAIASS_STAGINGBRANCH=staging
|
|
99
99
|
MAIASS_VERSION_PRIMARY_FILE=package.json
|
|
100
100
|
MAIASS_DEBUG=true # verbose output
|
|
101
101
|
```
|
package/lib/changelog.js
CHANGED
|
@@ -82,8 +82,8 @@ export async function updateChangelog(changelogPath = '.', version) {
|
|
|
82
82
|
});
|
|
83
83
|
|
|
84
84
|
const formattedCommits = commits.map(commit => {
|
|
85
|
-
// Remove
|
|
86
|
-
const cleaned = commit.replace(/^\[?[A-Z]+-[0-9]
|
|
85
|
+
// Remove ticket prefix from start of each line: ABC-123, #123, 123
|
|
86
|
+
const cleaned = commit.replace(/^\[?(?:[A-Z]+-[0-9]+|#?\d+)\]?[\s:—-]+/gm, '');
|
|
87
87
|
const lines = cleaned.split('\n').filter(l => l.trim());
|
|
88
88
|
|
|
89
89
|
if (lines.length === 0) return '';
|
package/lib/git-info.js
CHANGED
|
@@ -88,13 +88,20 @@ export function getGitAuthor() {
|
|
|
88
88
|
export function extractJiraTicket(branchName) {
|
|
89
89
|
if (!branchName) return null;
|
|
90
90
|
|
|
91
|
-
//
|
|
92
|
-
const
|
|
93
|
-
if (
|
|
91
|
+
// Jira: ABC-123 — after last slash or at branch root
|
|
92
|
+
const jiraAfterSlash = branchName.match(/.*\/([A-Z]+-[0-9]+)/);
|
|
93
|
+
if (jiraAfterSlash) return jiraAfterSlash[1];
|
|
94
94
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
95
|
+
const jiraAtStart = branchName.match(/^([A-Z]+-[0-9]+)/);
|
|
96
|
+
if (jiraAtStart) return jiraAtStart[1];
|
|
97
|
+
|
|
98
|
+
// Numeric with optional hash prefix: #123 or 123 — after last slash or at branch root
|
|
99
|
+
// Requires a dash/underscore after the number to avoid matching version segments (e.g. release/1.2.3)
|
|
100
|
+
const numericAfterSlash = branchName.match(/.*\/(#?\d+)[-_]/);
|
|
101
|
+
if (numericAfterSlash) return numericAfterSlash[1];
|
|
102
|
+
|
|
103
|
+
const numericAtStart = branchName.match(/^(#?\d+)[-_]/);
|
|
104
|
+
if (numericAtStart) return numericAtStart[1];
|
|
98
105
|
|
|
99
106
|
return null;
|
|
100
107
|
}
|
package/lib/maiass-command.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { log, logger } from './logger.js';
|
|
2
2
|
import { SYMBOLS } from './symbols.js';
|
|
3
3
|
import { runMaiassPipeline } from './maiass-pipeline.js';
|
|
4
|
-
import { createAnonymousSubscriptionIfNeeded } from './commit.js';
|
|
5
4
|
import colors from './colors.js';
|
|
6
5
|
|
|
7
6
|
/**
|
|
@@ -37,16 +36,6 @@ export async function handleMaiassCommand(args) {
|
|
|
37
36
|
logger.header('', 'MAIASS - Modular AI-Assisted Semantic Scribe');
|
|
38
37
|
|
|
39
38
|
try {
|
|
40
|
-
// Create anonymous subscription if needed (matches bashmaiass behavior).
|
|
41
|
-
// Skip in CI environments (GitHub Actions / any env with CI=true) — each runner
|
|
42
|
-
// has a different virtual MAC/disk, so every run would generate a new machine
|
|
43
|
-
// fingerprint and burn an anonymous subscription slot.
|
|
44
|
-
const aiMode = process.env.MAIASS_AI_MODE || 'ask';
|
|
45
|
-
const isCI = process.env.CI === 'true' || process.env.CI === '1';
|
|
46
|
-
if (aiMode !== 'off' && !isCI) {
|
|
47
|
-
await createAnonymousSubscriptionIfNeeded();
|
|
48
|
-
}
|
|
49
|
-
|
|
50
39
|
// Run the complete MAIASS pipeline
|
|
51
40
|
const result = await runMaiassPipeline({
|
|
52
41
|
commitsOnly,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "maiass",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "5.9.
|
|
4
|
+
"version": "5.9.56",
|
|
5
5
|
"description": "AI commit message generator, semantic versioning, and changelog automation for Git. One command stages, commits with AI, bumps version, and merges branches. Free credits on install — no sign-up needed.",
|
|
6
6
|
"main": "maiass.mjs",
|
|
7
7
|
"bin": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"LICENSE"
|
|
27
27
|
],
|
|
28
28
|
"engines": {
|
|
29
|
-
"node": ">=
|
|
29
|
+
"node": ">=20.0.0"
|
|
30
30
|
},
|
|
31
31
|
"keywords": [
|
|
32
32
|
"ai-commit",
|
|
@@ -69,11 +69,18 @@
|
|
|
69
69
|
"build:nexe": "./scripts/advanced-build.sh nexe",
|
|
70
70
|
"build:source": "./scripts/advanced-build.sh source",
|
|
71
71
|
"build:legacy": "node build.js",
|
|
72
|
-
"test": "node test/test-runner.js"
|
|
72
|
+
"test": "node test/test-runner.js",
|
|
73
|
+
"test:unit": "vitest run",
|
|
74
|
+
"test:unit:watch": "vitest",
|
|
75
|
+
"test:coverage": "vitest run --coverage"
|
|
73
76
|
},
|
|
74
77
|
"dependencies": {
|
|
75
78
|
"chalk": "^5.4.1",
|
|
76
79
|
"dotenv": "^16.4.5",
|
|
77
80
|
"yargs": "^17.7.2"
|
|
81
|
+
},
|
|
82
|
+
"devDependencies": {
|
|
83
|
+
"@vitest/coverage-v8": "^4.1.4",
|
|
84
|
+
"vitest": "^4.1.4"
|
|
78
85
|
}
|
|
79
86
|
}
|