mindforge-cc 1.0.3 → 1.0.4
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/CHANGELOG.md +5 -0
- package/README.md +5 -0
- package/bin/install.js +3 -2
- package/bin/installer-core.js +16 -10
- package/bin/wizard/setup-wizard.js +14 -3
- package/docs/user-guide.md +5 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
All notable changes to MindForge are documented here.
|
|
4
4
|
Format follows [Keep a Changelog](https://keepachangelog.com).
|
|
5
5
|
|
|
6
|
+
## [1.0.4] — v1.0.4 Antigravity Install Fix — 2026-03-22
|
|
7
|
+
|
|
8
|
+
### Fixed
|
|
9
|
+
- Antigravity local install now correctly copies commands and CLAUDE.md into `agents/`.
|
|
10
|
+
|
|
6
11
|
## [1.0.3] — v1.0.3 Antigravity Agents Folder — 2026-03-22
|
|
7
12
|
|
|
8
13
|
### Changed
|
package/README.md
CHANGED
|
@@ -42,6 +42,11 @@ npx mindforge-cc@latest --antigravity --global
|
|
|
42
42
|
|
|
43
43
|
Local installs use `agents/` by default. Legacy `.agent/` is supported for existing projects.
|
|
44
44
|
|
|
45
|
+
Optional: add bin utilities on local install
|
|
46
|
+
```bash
|
|
47
|
+
npx mindforge-cc@latest --claude --local --with-utils
|
|
48
|
+
```
|
|
49
|
+
|
|
45
50
|
### Both runtimes
|
|
46
51
|
```bash
|
|
47
52
|
npx mindforge-cc@latest --all --global
|
package/bin/install.js
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* Runtime flags: --claude | --antigravity | --all
|
|
16
16
|
* Scope flags: --global (-g) | --local (-l)
|
|
17
17
|
* Action flags: --install (default) | --update | --uninstall | --check
|
|
18
|
-
* Control flags: --skip-wizard | --dry-run | --verbose | --force
|
|
18
|
+
* Control flags: --skip-wizard | --dry-run | --verbose | --force | --with-utils
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
21
|
'use strict';
|
|
@@ -53,7 +53,7 @@ const NON_INTERACTIVE_FLAGS = [
|
|
|
53
53
|
'--claude', '--antigravity', '--all',
|
|
54
54
|
'--global', '-g', '--local', '-l',
|
|
55
55
|
'--uninstall', '--update', '--check',
|
|
56
|
-
'--skip-wizard', '--dry-run',
|
|
56
|
+
'--skip-wizard', '--dry-run', '--with-utils',
|
|
57
57
|
];
|
|
58
58
|
|
|
59
59
|
const IS_NON_INTERACTIVE =
|
|
@@ -102,6 +102,7 @@ function printHelp() {
|
|
|
102
102
|
--dry-run Show what would happen without making changes
|
|
103
103
|
--force Override existing installation without backup
|
|
104
104
|
--skip-wizard Skip interactive wizard even in TTY
|
|
105
|
+
--with-utils Install local bin/ utilities (optional)
|
|
105
106
|
--verbose Detailed output
|
|
106
107
|
--version, -v Print version
|
|
107
108
|
--help, -h Print this help
|
package/bin/installer-core.js
CHANGED
|
@@ -147,7 +147,7 @@ function verifyInstall(baseDir, cmdsDir, runtime, scope) {
|
|
|
147
147
|
|
|
148
148
|
// ── Install single runtime ────────────────────────────────────────────────────
|
|
149
149
|
async function install(runtime, scope, options = {}) {
|
|
150
|
-
const { dryRun = false, force = false, verbose = false } = options;
|
|
150
|
+
const { dryRun = false, force = false, verbose = false, withUtils = false } = options;
|
|
151
151
|
const cfg = RUNTIMES[runtime];
|
|
152
152
|
const baseDir = resolveBaseDir(runtime, scope);
|
|
153
153
|
const cmdsDir = norm(path.join(baseDir, cfg.commandsSubdir));
|
|
@@ -168,7 +168,7 @@ async function install(runtime, scope, options = {}) {
|
|
|
168
168
|
// ── 1. Install CLAUDE.md ────────────────────────────────────────────────────
|
|
169
169
|
const claudeSrc = runtime === 'claude'
|
|
170
170
|
? src('.claude', 'CLAUDE.md')
|
|
171
|
-
: src('.
|
|
171
|
+
: src('.agent', 'CLAUDE.md');
|
|
172
172
|
|
|
173
173
|
if (fsu.exists(claudeSrc)) {
|
|
174
174
|
safeCopyClaude(claudeSrc, path.join(baseDir, 'CLAUDE.md'), { force, verbose });
|
|
@@ -178,7 +178,7 @@ async function install(runtime, scope, options = {}) {
|
|
|
178
178
|
// ── 2. Install commands ─────────────────────────────────────────────────────
|
|
179
179
|
const cmdSrc = runtime === 'claude'
|
|
180
180
|
? src('.claude', 'commands', 'mindforge')
|
|
181
|
-
: src('.
|
|
181
|
+
: src('.agent', 'mindforge');
|
|
182
182
|
|
|
183
183
|
if (fsu.exists(cmdSrc)) {
|
|
184
184
|
fsu.ensureDir(cmdsDir);
|
|
@@ -217,13 +217,18 @@ async function install(runtime, scope, options = {}) {
|
|
|
217
217
|
console.log(` ✅ MINDFORGE.md (project constitution)`);
|
|
218
218
|
}
|
|
219
219
|
|
|
220
|
-
// bin/ utilities (
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
fsu.
|
|
225
|
-
|
|
220
|
+
// bin/ utilities (optional)
|
|
221
|
+
if (withUtils) {
|
|
222
|
+
const binDst = path.join(process.cwd(), 'bin');
|
|
223
|
+
const binSrc = src('bin');
|
|
224
|
+
if (fsu.exists(binSrc) && !fsu.exists(binDst)) {
|
|
225
|
+
fsu.copyDir(binSrc, binDst, { excludePatterns: SENSITIVE_EXCLUDE });
|
|
226
|
+
console.log(` ✅ bin/ (utilities)`);
|
|
227
|
+
} else if (fsu.exists(binDst)) {
|
|
228
|
+
console.log(` ⏭️ bin/ already exists — preserved`);
|
|
229
|
+
}
|
|
226
230
|
}
|
|
231
|
+
|
|
227
232
|
}
|
|
228
233
|
|
|
229
234
|
// ── 4. Verify installation ──────────────────────────────────────────────────
|
|
@@ -273,10 +278,11 @@ async function run(args) {
|
|
|
273
278
|
const dryRun = args.includes('--dry-run');
|
|
274
279
|
const force = args.includes('--force');
|
|
275
280
|
const verbose = args.includes('--verbose');
|
|
281
|
+
const withUtils = args.includes('--with-utils');
|
|
276
282
|
const isUninstall = args.includes('--uninstall');
|
|
277
283
|
const isUpdate = args.includes('--update');
|
|
278
284
|
const isCheck = args.includes('--check');
|
|
279
|
-
const options = { dryRun, force, verbose };
|
|
285
|
+
const options = { dryRun, force, verbose, withUtils };
|
|
280
286
|
|
|
281
287
|
console.log(`\n⚡ MindForge v${VERSION} — Enterprise Agentic Framework\n`);
|
|
282
288
|
|
|
@@ -48,6 +48,16 @@ function askChoice(rl, q, choices, defaultIdx = 0) {
|
|
|
48
48
|
});
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
+
function askYesNo(rl, q, defaultYes = false) {
|
|
52
|
+
const def = defaultYes ? 'y' : 'n';
|
|
53
|
+
return new Promise((resolve) => {
|
|
54
|
+
rl.question(`${q} [${def}]: `, (answer) => {
|
|
55
|
+
const val = (answer.trim() || def).toLowerCase();
|
|
56
|
+
resolve(val === 'y' || val === 'yes');
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
|
|
51
61
|
function askMultiChoice(rl, q, choices) {
|
|
52
62
|
console.log(`\n${q}`);
|
|
53
63
|
choices.forEach((choice, i) => console.log(` ${i + 1}) ${choice}`));
|
|
@@ -149,11 +159,11 @@ async function configureFeatures(rl) {
|
|
|
149
159
|
return { config, credGuidance };
|
|
150
160
|
}
|
|
151
161
|
|
|
152
|
-
async function install(runtimes, scope) {
|
|
162
|
+
async function install(runtimes, scope, options = {}) {
|
|
153
163
|
const installer = require('../installer-core');
|
|
154
164
|
if (!installer || typeof installer.install !== 'function') return;
|
|
155
165
|
for (const runtime of runtimes) {
|
|
156
|
-
await installer.install(runtime, scope);
|
|
166
|
+
await installer.install(runtime, scope, options);
|
|
157
167
|
}
|
|
158
168
|
}
|
|
159
169
|
|
|
@@ -222,9 +232,10 @@ async function main() {
|
|
|
222
232
|
const runtimes = await selectRuntime(rl, env.runtimes);
|
|
223
233
|
const scope = await selectScope(rl);
|
|
224
234
|
const { config, credGuidance } = await configureFeatures(rl);
|
|
235
|
+
const withUtils = await askYesNo(rl, 'Install optional bin/ utilities?', false);
|
|
225
236
|
rl.close();
|
|
226
237
|
|
|
227
|
-
await install(runtimes, scope);
|
|
238
|
+
await install(runtimes, scope, { withUtils });
|
|
228
239
|
await generator.writeIntegrationsConfig(config);
|
|
229
240
|
printNextSteps(runtimes, scope, credGuidance);
|
|
230
241
|
} catch (err) {
|
package/docs/user-guide.md
CHANGED
|
@@ -15,6 +15,11 @@ npx mindforge-cc@latest --claude --global
|
|
|
15
15
|
npx mindforge-cc@latest --claude --local
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
+
Optional utilities:
|
|
19
|
+
```bash
|
|
20
|
+
npx mindforge-cc@latest --claude --local --with-utils
|
|
21
|
+
```
|
|
22
|
+
|
|
18
23
|
### Antigravity
|
|
19
24
|
```bash
|
|
20
25
|
npx mindforge-cc@latest --antigravity --global
|