@git.zone/cli 2.13.15 → 2.14.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 (39) hide show
  1. package/dist_ts/00_commitinfo_data.js +2 -2
  2. package/dist_ts/gitzone.cli.js +46 -35
  3. package/dist_ts/helpers.climode.d.ts +22 -0
  4. package/dist_ts/helpers.climode.js +158 -0
  5. package/dist_ts/helpers.smartconfig.d.ts +11 -0
  6. package/dist_ts/helpers.smartconfig.js +139 -0
  7. package/dist_ts/mod_commit/index.d.ts +2 -0
  8. package/dist_ts/mod_commit/index.js +204 -92
  9. package/dist_ts/mod_config/index.d.ts +7 -2
  10. package/dist_ts/mod_config/index.js +390 -176
  11. package/dist_ts/mod_format/classes.formatcontext.d.ts +11 -2
  12. package/dist_ts/mod_format/classes.formatcontext.js +14 -4
  13. package/dist_ts/mod_format/formatters/packagejson.formatter.js +1 -67
  14. package/dist_ts/mod_format/formatters/smartconfig.formatter.d.ts +2 -2
  15. package/dist_ts/mod_format/formatters/smartconfig.formatter.js +46 -39
  16. package/dist_ts/mod_format/index.d.ts +4 -1
  17. package/dist_ts/mod_format/index.js +221 -75
  18. package/dist_ts/mod_format/mod.plugins.d.ts +1 -2
  19. package/dist_ts/mod_format/mod.plugins.js +2 -3
  20. package/dist_ts/mod_services/index.d.ts +2 -0
  21. package/dist_ts/mod_services/index.js +366 -168
  22. package/dist_ts/mod_standard/index.d.ts +3 -1
  23. package/dist_ts/mod_standard/index.js +159 -59
  24. package/package.json +1 -1
  25. package/readme.hints.md +25 -32
  26. package/readme.md +87 -65
  27. package/ts/00_commitinfo_data.ts +1 -1
  28. package/ts/gitzone.cli.ts +50 -38
  29. package/ts/helpers.climode.ts +212 -0
  30. package/ts/helpers.smartconfig.ts +192 -0
  31. package/ts/mod_commit/index.ts +325 -98
  32. package/ts/mod_config/index.ts +490 -182
  33. package/ts/mod_format/classes.formatcontext.ts +20 -3
  34. package/ts/mod_format/formatters/packagejson.formatter.ts +0 -91
  35. package/ts/mod_format/formatters/smartconfig.formatter.ts +55 -39
  36. package/ts/mod_format/index.ts +279 -90
  37. package/ts/mod_format/mod.plugins.ts +0 -2
  38. package/ts/mod_services/index.ts +550 -183
  39. package/ts/mod_standard/index.ts +191 -58
@@ -1 +1,3 @@
1
- export declare let run: () => Promise<void>;
1
+ import type { ICliMode } from "../helpers.climode.js";
2
+ export declare let run: (argvArg?: any) => Promise<void>;
3
+ export declare function showHelp(mode: ICliMode, commandName?: string): Promise<void>;
@@ -1,86 +1,186 @@
1
1
  /* -----------------------------------------------
2
2
  * executes as standard task
3
3
  * ----------------------------------------------- */
4
- import * as plugins from './mod.plugins.js';
5
- import * as paths from '../paths.js';
6
- import { logger } from '../gitzone.logging.js';
7
- export let run = async () => {
8
- console.log('');
9
- console.log('╭─────────────────────────────────────────────────────────────╮');
10
- console.log('│ gitzone - Development Workflow CLI │');
11
- console.log('╰─────────────────────────────────────────────────────────────╯');
12
- console.log('');
4
+ import * as plugins from "./mod.plugins.js";
5
+ import * as paths from "../paths.js";
6
+ import { getCliMode, printJson } from "../helpers.climode.js";
7
+ import { logger } from "../gitzone.logging.js";
8
+ const commandSummaries = [
9
+ {
10
+ name: "commit",
11
+ description: "Create semantic commits or generate read-only commit recommendations",
12
+ },
13
+ { name: "format", description: "Plan or apply project formatting changes" },
14
+ { name: "config", description: "Read and change .smartconfig.json settings" },
15
+ { name: "services", description: "Manage or configure development services" },
16
+ { name: "template", description: "Create a project from a template" },
17
+ { name: "open", description: "Open project assets and CI pages" },
18
+ { name: "docker", description: "Run Docker-related maintenance tasks" },
19
+ {
20
+ name: "deprecate",
21
+ description: "Deprecate npm packages across registries",
22
+ },
23
+ { name: "meta", description: "Run meta-repository commands" },
24
+ { name: "start", description: "Prepare a project for local work" },
25
+ { name: "helpers", description: "Run helper utilities" },
26
+ ];
27
+ export let run = async (argvArg = {}) => {
28
+ const mode = await getCliMode(argvArg);
29
+ const requestedCommandHelp = argvArg._?.[0] === "help" ? argvArg._?.[1] : undefined;
30
+ if (mode.help || requestedCommandHelp) {
31
+ await showHelp(mode, requestedCommandHelp);
32
+ return;
33
+ }
34
+ if (!mode.interactive) {
35
+ await showHelp(mode);
36
+ return;
37
+ }
38
+ console.log("");
39
+ console.log("╭─────────────────────────────────────────────────────────────╮");
40
+ console.log("│ gitzone - Development Workflow CLI │");
41
+ console.log("╰─────────────────────────────────────────────────────────────╯");
42
+ console.log("");
13
43
  const interactInstance = new plugins.smartinteract.SmartInteract();
14
44
  const response = await interactInstance.askQuestion({
15
- type: 'list',
16
- name: 'action',
17
- message: 'What would you like to do?',
18
- default: 'commit',
45
+ type: "list",
46
+ name: "action",
47
+ message: "What would you like to do?",
48
+ default: "commit",
19
49
  choices: [
20
- { name: 'Commit changes (semantic versioning)', value: 'commit' },
21
- { name: 'Format project files', value: 'format' },
22
- { name: 'Configure release settings', value: 'config' },
23
- { name: 'Create from template', value: 'template' },
24
- { name: 'Manage dev services (MongoDB, S3)', value: 'services' },
25
- { name: 'Open project assets', value: 'open' },
26
- { name: 'Show help', value: 'help' },
50
+ { name: "Commit changes (semantic versioning)", value: "commit" },
51
+ { name: "Format project files", value: "format" },
52
+ { name: "Configure release settings", value: "config" },
53
+ { name: "Create from template", value: "template" },
54
+ { name: "Manage dev services (MongoDB, S3)", value: "services" },
55
+ { name: "Open project assets", value: "open" },
56
+ { name: "Show help", value: "help" },
27
57
  ],
28
58
  });
29
59
  const action = response.value;
30
60
  switch (action) {
31
- case 'commit': {
32
- const modCommit = await import('../mod_commit/index.js');
33
- await modCommit.run({ _: ['commit'] });
61
+ case "commit": {
62
+ const modCommit = await import("../mod_commit/index.js");
63
+ await modCommit.run({ _: ["commit"] });
34
64
  break;
35
65
  }
36
- case 'format': {
37
- const modFormat = await import('../mod_format/index.js');
66
+ case "format": {
67
+ const modFormat = await import("../mod_format/index.js");
38
68
  await modFormat.run({ interactive: true });
39
69
  break;
40
70
  }
41
- case 'config': {
42
- const modConfig = await import('../mod_config/index.js');
43
- await modConfig.run({ _: ['config'] });
71
+ case "config": {
72
+ const modConfig = await import("../mod_config/index.js");
73
+ await modConfig.run({ _: ["config"] });
44
74
  break;
45
75
  }
46
- case 'template': {
47
- const modTemplate = await import('../mod_template/index.js');
48
- await modTemplate.run({ _: ['template'] });
76
+ case "template": {
77
+ const modTemplate = await import("../mod_template/index.js");
78
+ await modTemplate.run({ _: ["template"] });
49
79
  break;
50
80
  }
51
- case 'services': {
52
- const modServices = await import('../mod_services/index.js');
53
- await modServices.run({ _: ['services'] });
81
+ case "services": {
82
+ const modServices = await import("../mod_services/index.js");
83
+ await modServices.run({ _: ["services"] });
54
84
  break;
55
85
  }
56
- case 'open': {
57
- const modOpen = await import('../mod_open/index.js');
58
- await modOpen.run({ _: ['open'] });
86
+ case "open": {
87
+ const modOpen = await import("../mod_open/index.js");
88
+ await modOpen.run({ _: ["open"] });
59
89
  break;
60
90
  }
61
- case 'help':
62
- showHelp();
91
+ case "help":
92
+ await showHelp(mode);
63
93
  break;
64
94
  }
65
95
  };
66
- function showHelp() {
67
- console.log('');
68
- console.log('Usage: gitzone <command> [options]');
69
- console.log('');
70
- console.log('Commands:');
71
- console.log(' commit Create a semantic commit with versioning');
72
- console.log(' format Format and standardize project files');
73
- console.log(' config Manage release registry configuration');
74
- console.log(' template Create a new project from template');
75
- console.log(' services Manage dev services (MongoDB, S3/MinIO)');
76
- console.log(' open Open project assets (GitLab, npm, etc.)');
77
- console.log(' docker Docker-related operations');
78
- console.log(' deprecate Deprecate a package on npm');
79
- console.log(' meta Run meta commands');
80
- console.log(' start Start working on a project');
81
- console.log(' helpers Run helper utilities');
82
- console.log('');
83
- console.log('Run gitzone <command> --help for more information on a command.');
84
- console.log('');
96
+ export async function showHelp(mode, commandName) {
97
+ if (commandName) {
98
+ const handled = await showCommandHelp(commandName, mode);
99
+ if (handled) {
100
+ return;
101
+ }
102
+ }
103
+ if (mode.json) {
104
+ printJson({
105
+ name: "gitzone",
106
+ usage: "gitzone <command> [options]",
107
+ commands: commandSummaries,
108
+ globalFlags: [
109
+ { flag: "--help, -h", description: "Show help output" },
110
+ {
111
+ flag: "--json",
112
+ description: "Emit machine-readable JSON when supported",
113
+ },
114
+ {
115
+ flag: "--plain",
116
+ description: "Use plain text output when supported",
117
+ },
118
+ {
119
+ flag: "--agent",
120
+ description: "Prefer non-interactive machine-friendly output",
121
+ },
122
+ {
123
+ flag: "--no-interactive",
124
+ description: "Disable prompts and interactive menus",
125
+ },
126
+ {
127
+ flag: "--no-check-updates",
128
+ description: "Skip the update check banner",
129
+ },
130
+ ],
131
+ });
132
+ return;
133
+ }
134
+ console.log("");
135
+ console.log("Usage: gitzone <command> [options]");
136
+ console.log("");
137
+ console.log("Commands:");
138
+ for (const commandSummary of commandSummaries) {
139
+ console.log(` ${commandSummary.name.padEnd(11)} ${commandSummary.description}`);
140
+ }
141
+ console.log("");
142
+ console.log("Global flags:");
143
+ console.log(" --help, -h Show help output");
144
+ console.log(" --json Emit machine-readable JSON when supported");
145
+ console.log(" --plain Use plain text output when supported");
146
+ console.log(" --agent Prefer non-interactive machine-friendly output");
147
+ console.log(" --no-interactive Disable prompts and interactive menus");
148
+ console.log(" --no-check-updates Skip the update check banner");
149
+ console.log("");
150
+ console.log("Examples:");
151
+ console.log(" gitzone help commit");
152
+ console.log(" gitzone config show --json");
153
+ console.log(" gitzone commit recommend --json");
154
+ console.log(" gitzone format plan --json");
155
+ console.log(" gitzone services set mongodb,minio");
156
+ console.log("");
157
+ console.log("Run gitzone <command> --help for command-specific usage.");
158
+ console.log("");
159
+ }
160
+ async function showCommandHelp(commandName, mode) {
161
+ switch (commandName) {
162
+ case "commit": {
163
+ const modCommit = await import("../mod_commit/index.js");
164
+ modCommit.showHelp(mode);
165
+ return true;
166
+ }
167
+ case "config": {
168
+ const modConfig = await import("../mod_config/index.js");
169
+ modConfig.showHelp(mode);
170
+ return true;
171
+ }
172
+ case "format": {
173
+ const modFormat = await import("../mod_format/index.js");
174
+ modFormat.showHelp(mode);
175
+ return true;
176
+ }
177
+ case "services": {
178
+ const modServices = await import("../mod_services/index.js");
179
+ modServices.showHelp(mode);
180
+ return true;
181
+ }
182
+ default:
183
+ return false;
184
+ }
85
185
  }
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2Rfc3RhbmRhcmQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O3FEQUVxRDtBQUNyRCxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxLQUFLLE1BQU0sYUFBYSxDQUFDO0FBRXJDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQyxNQUFNLENBQUMsSUFBSSxHQUFHLEdBQUcsS0FBSyxJQUFJLEVBQUU7SUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoQixPQUFPLENBQUMsR0FBRyxDQUFDLGlFQUFpRSxDQUFDLENBQUM7SUFDL0UsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpRUFBaUUsQ0FBQyxDQUFDO0lBQy9FLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUVBQWlFLENBQUMsQ0FBQztJQUMvRSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRWhCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ25FLE1BQU0sUUFBUSxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsV0FBVyxDQUFDO1FBQ2xELElBQUksRUFBRSxNQUFNO1FBQ1osSUFBSSxFQUFFLFFBQVE7UUFDZCxPQUFPLEVBQUUsNEJBQTRCO1FBQ3JDLE9BQU8sRUFBRSxRQUFRO1FBQ2pCLE9BQU8sRUFBRTtZQUNQLEVBQUUsSUFBSSxFQUFFLHNDQUFzQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDakUsRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtZQUNqRCxFQUFFLElBQUksRUFBRSw0QkFBNEIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO1lBQ3ZELEVBQUUsSUFBSSxFQUFFLHNCQUFzQixF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
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2Rfc3RhbmRhcmQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O3FEQUVxRDtBQUNyRCxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxLQUFLLE1BQU0sYUFBYSxDQUFDO0FBRXJDLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFOUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBTy9DLE1BQU0sZ0JBQWdCLEdBQTBCO0lBQzlDO1FBQ0UsSUFBSSxFQUFFLFFBQVE7UUFDZCxXQUFXLEVBQ1Qsc0VBQXNFO0tBQ3pFO0lBQ0QsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSwwQ0FBMEMsRUFBRTtJQUMzRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLDRDQUE0QyxFQUFFO0lBQzdFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsMENBQTBDLEVBQUU7SUFDN0UsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxrQ0FBa0MsRUFBRTtJQUNyRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLGtDQUFrQyxFQUFFO0lBQ2pFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsc0NBQXNDLEVBQUU7SUFDdkU7UUFDRSxJQUFJLEVBQUUsV0FBVztRQUNqQixXQUFXLEVBQUUsMENBQTBDO0tBQ3hEO0lBQ0QsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSw4QkFBOEIsRUFBRTtJQUM3RCxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGtDQUFrQyxFQUFFO0lBQ2xFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsc0JBQXNC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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@git.zone/cli",
3
3
  "private": false,
4
- "version": "2.13.15",
4
+ "version": "2.14.1",
5
5
  "description": "A comprehensive CLI tool for enhancing and managing local development workflows with gitzone utilities, focusing on project setup, version control, code formatting, and template management.",
6
6
  "main": "dist_ts/index.ts",
7
7
  "typings": "dist_ts/index.d.ts",
package/readme.hints.md CHANGED
@@ -23,10 +23,10 @@ Gitzone CLI (`@git.zone/cli`) is a comprehensive toolbelt for streamlining local
23
23
 
24
24
  ### Configuration Management
25
25
 
26
- - Uses `npmextra.json` for all tool configuration
27
- - Configuration stored under `gitzone` key in npmextra
28
- - No separate `.gitzonerc` file - everything in npmextra.json
29
- - Project type and module metadata also stored in npmextra
26
+ - Uses `.smartconfig.json` for tool configuration
27
+ - CLI settings live under the `@git.zone/cli` namespace
28
+ - Agent and non-interactive defaults now belong under `@git.zone/cli.cli`
29
+ - Project type, module metadata, release settings, commit defaults, and format settings live in the same file
30
30
 
31
31
  ### Format Module (`mod_format`) - SIGNIFICANTLY ENHANCED
32
32
 
@@ -84,7 +84,7 @@ The format module is responsible for project standardization:
84
84
 
85
85
  1. **Plan → Action Workflow**: Shows changes before applying them
86
86
  2. **Rollback Mechanism**: Full backup and restore on failures
87
- 3. **Enhanced Configuration**: Granular control via npmextra.json
87
+ 3. **Enhanced Configuration**: Granular control via `.smartconfig.json`
88
88
  4. **Better Error Handling**: Detailed errors with recovery options
89
89
  5. **Performance Optimizations**: Parallel execution and caching
90
90
  6. **Reporting**: Diff views, statistics, verbose logging
@@ -132,7 +132,7 @@ The commit module now supports `-y/--yes` flag for non-interactive commits:
132
132
  ## Development Tips
133
133
 
134
134
  - Always check readme.plan.md for ongoing improvement plans
135
- - Use npmextra.json for any new configuration options
135
+ - Use `.smartconfig.json` for any new configuration options
136
136
  - Keep modules focused and single-purpose
137
137
  - Maintain the existing plugin pattern for dependencies
138
138
  - Test format operations on sample projects before deploying
@@ -144,30 +144,18 @@ The commit module now supports `-y/--yes` flag for non-interactive commits:
144
144
 
145
145
  ```json
146
146
  {
147
- "gitzone": {
147
+ "@git.zone/cli": {
148
+ "cli": {
149
+ "interactive": true,
150
+ "output": "human",
151
+ "checkUpdates": true
152
+ },
148
153
  "format": {
149
154
  "interactive": true,
150
- "parallel": true,
151
155
  "showStats": true,
152
- "cache": {
153
- "enabled": true,
154
- "clean": true
155
- },
156
- "rollback": {
157
- "enabled": true,
158
- "autoRollbackOnError": true,
159
- "backupRetentionDays": 7
160
- },
161
156
  "modules": {
162
157
  "skip": ["prettier"],
163
- "only": [],
164
- "order": []
165
- },
166
- "licenses": {
167
- "allowed": ["MIT", "Apache-2.0"],
168
- "exceptions": {
169
- "some-package": "GPL-3.0"
170
- }
158
+ "only": []
171
159
  }
172
160
  }
173
161
  }
@@ -182,6 +170,9 @@ The commit module now supports `-y/--yes` flag for non-interactive commits:
182
170
  # Interactive commit (default)
183
171
  gitzone commit
184
172
 
173
+ # Read-only recommendation
174
+ gitzone commit recommend --json
175
+
185
176
  # Auto-accept AI recommendations (no prompts)
186
177
  gitzone commit -y
187
178
  gitzone commit --yes
@@ -201,11 +192,14 @@ gitzone commit --format
201
192
  # Basic format
202
193
  gitzone format
203
194
 
195
+ # Read-only JSON plan
196
+ gitzone format plan --json
197
+
204
198
  # Dry run to preview changes
205
199
  gitzone format --dry-run
206
200
 
207
- # Non-interactive mode
208
- gitzone format --yes
201
+ # Non-interactive apply
202
+ gitzone format --write --yes
209
203
 
210
204
  # Plan only (no execution)
211
205
  gitzone format --plan-only
@@ -222,11 +216,10 @@ gitzone format --verbose
222
216
  # Detailed diff views
223
217
  gitzone format --detailed
224
218
 
225
- # Rollback operations
226
- gitzone format --rollback
227
- gitzone format --rollback <operation-id>
228
- gitzone format --list-backups
229
- gitzone format --clean-backups
219
+ # Inspect config for agents and scripts
220
+ gitzone config show --json
221
+ gitzone config set cli.output json
222
+ gitzone config get release.accessLevel
230
223
  ```
231
224
 
232
225
  ## Common Issues (Now Resolved)
package/readme.md CHANGED
@@ -56,6 +56,9 @@ Create standardized commits with AI-powered suggestions that automatically handl
56
56
  # Interactive commit with AI recommendations
57
57
  gitzone commit
58
58
 
59
+ # Read-only recommendation for agents and scripts
60
+ gitzone commit recommend --json
61
+
59
62
  # Auto-accept AI recommendations (skipped for BREAKING CHANGEs)
60
63
  gitzone commit -y
61
64
 
@@ -65,14 +68,15 @@ gitzone commit -ypbr
65
68
 
66
69
  **Flags:**
67
70
 
68
- | Flag | Long Form | Description |
69
- |------|-----------|-------------|
70
- | `-y` | `--yes` | Auto-accept AI recommendations |
71
- | `-p` | `--push` | Push to remote after commit |
72
- | `-t` | `--test` | Run tests before committing |
73
- | `-b` | `--build` | Build after commit, verify clean tree |
74
- | `-r` | `--release` | Publish to configured npm registries |
75
- | | `--format` | Run format before committing |
71
+ | Flag | Long Form | Description |
72
+ | ---- | ----------- | ---------------------------------------- |
73
+ | `-y` | `--yes` | Auto-accept AI recommendations |
74
+ | `-p` | `--push` | Push to remote after commit |
75
+ | `-t` | `--test` | Run tests before committing |
76
+ | `-b` | `--build` | Build after commit, verify clean tree |
77
+ | `-r` | `--release` | Publish to configured npm registries |
78
+ | | `--format` | Run format before committing |
79
+ | | `--json` | Emit JSON for `gitzone commit recommend` |
76
80
 
77
81
  **Workflow steps:**
78
82
 
@@ -94,6 +98,9 @@ Automatically format and standardize your entire codebase. **Dry-run by default*
94
98
  # Preview what would change (default behavior)
95
99
  gitzone format
96
100
 
101
+ # Emit a machine-readable plan
102
+ gitzone format plan --json
103
+
97
104
  # Apply changes
98
105
  gitzone format --write
99
106
 
@@ -109,22 +116,22 @@ gitzone format --verbose
109
116
 
110
117
  **Flags:**
111
118
 
112
- | Flag | Description |
113
- |------|-------------|
114
- | `--write` / `-w` | Apply changes (default is dry-run) |
115
- | `--yes` | Auto-approve without interactive confirmation |
116
- | `--plan-only` | Only show what would be done |
117
- | `--save-plan <file>` | Save the format plan to a file |
118
- | `--from-plan <file>` | Load and execute a saved plan |
119
- | `--detailed` | Show detailed stats and save report |
120
- | `--parallel` / `--no-parallel` | Toggle parallel execution |
121
- | `--verbose` | Enable verbose logging |
122
- | `--diff` | Show file diffs |
119
+ | Flag | Description |
120
+ | -------------------- | --------------------------------------------- |
121
+ | `--write` / `-w` | Apply changes (default is dry-run) |
122
+ | `--yes` | Auto-approve without interactive confirmation |
123
+ | `--plan-only` | Only show what would be done |
124
+ | `--save-plan <file>` | Save the format plan to a file |
125
+ | `--from-plan <file>` | Load and execute a saved plan |
126
+ | `--detailed` | Show detailed stats and save report |
127
+ | `--verbose` | Enable verbose logging |
128
+ | `--diff` | Show file diffs |
129
+ | `--json` | Emit a read-only format plan as JSON |
123
130
 
124
131
  **Formatters (executed in order):**
125
132
 
126
133
  1. 🧹 **Cleanup** — removes obsolete files (yarn.lock, package-lock.json, tslint.json, etc.)
127
- 2. ⚙️ **Npmextra** — formats and standardizes `npmextra.json`
134
+ 2. ⚙️ **Smartconfig** — formats and standardizes `.smartconfig.json`
128
135
  3. 📜 **License** — ensures proper licensing and checks dependency licenses
129
136
  4. 📦 **Package.json** — standardizes package configuration
130
137
  5. 📋 **Templates** — applies project template updates
@@ -144,18 +151,21 @@ gitzone services [command]
144
151
 
145
152
  **Commands:**
146
153
 
147
- | Command | Description |
148
- |---------|-------------|
149
- | `start [service]` | Start services (`mongo`\|`s3`\|`elasticsearch`\|`all`) |
150
- | `stop [service]` | Stop services |
151
- | `restart [service]` | Restart services |
152
- | `status` | Show current service status |
153
- | `config` | Display configuration details |
154
- | `compass` | Get MongoDB Compass connection string with network IP |
155
- | `logs [service] [lines]` | View service logs (default: 20 lines) |
156
- | `reconfigure` | Reassign ports and restart all services |
157
- | `remove` | Remove containers (preserves data) |
158
- | `clean` | Remove containers AND data (⚠️ destructive) |
154
+ | Command | Description |
155
+ | ------------------------ | ------------------------------------------------------ |
156
+ | `start [service]` | Start services (`mongo`\|`s3`\|`elasticsearch`\|`all`) |
157
+ | `stop [service]` | Stop services |
158
+ | `restart [service]` | Restart services |
159
+ | `status` | Show current service status |
160
+ | `config` | Display configuration details |
161
+ | `set <csv>` | Set enabled services without prompts |
162
+ | `enable <service...>` | Enable one or more services |
163
+ | `disable <service...>` | Disable one or more services |
164
+ | `compass` | Get MongoDB Compass connection string with network IP |
165
+ | `logs [service] [lines]` | View service logs (default: 20 lines) |
166
+ | `reconfigure` | Reassign ports and restart all services |
167
+ | `remove` | Remove containers (preserves data) |
168
+ | `clean` | Remove containers AND data (⚠️ destructive) |
159
169
 
160
170
  **Service aliases:**
161
171
 
@@ -195,6 +205,9 @@ gitzone services cleanup -g
195
205
  # Start all services for your project
196
206
  gitzone services start
197
207
 
208
+ # Configure enabled services without prompts
209
+ gitzone services set mongodb,minio
210
+
198
211
  # Check what's running
199
212
  gitzone services status
200
213
 
@@ -217,18 +230,21 @@ Manage release registries and commit settings:
217
230
  gitzone config [subcommand]
218
231
  ```
219
232
 
220
- | Command | Description |
221
- |---------|-------------|
222
- | `show` | Display current release config (registries, access level) |
223
- | `add [url]` | Add a registry URL (default: `https://registry.npmjs.org`) |
224
- | `remove [url]` | Remove a registry URL (interactive selection if no URL) |
225
- | `clear` | Clear all registries (with confirmation) |
226
- | `access [public\|private]` | Set npm access level for publishing |
227
- | `commit alwaysTest [true\|false]` | Always run tests before commit |
228
- | `commit alwaysBuild [true\|false]` | Always build after commit |
229
- | `services` | Configure which services are enabled |
230
-
231
- Configuration is stored in `npmextra.json` under the `@git.zone/cli` key.
233
+ | Command | Description |
234
+ | ---------------------------------- | ---------------------------------------------------------- |
235
+ | `show` | Display current release config (registries, access level) |
236
+ | `get <path>` | Read a single value from `@git.zone/cli` |
237
+ | `set <path> <value>` | Write a single value to `@git.zone/cli` |
238
+ | `unset <path>` | Remove a single value from `@git.zone/cli` |
239
+ | `add [url]` | Add a registry URL (default: `https://registry.npmjs.org`) |
240
+ | `remove [url]` | Remove a registry URL (interactive selection if no URL) |
241
+ | `clear` | Clear all registries (with confirmation) |
242
+ | `access [public\|private]` | Set npm access level for publishing |
243
+ | `commit alwaysTest [true\|false]` | Always run tests before commit |
244
+ | `commit alwaysBuild [true\|false]` | Always build after commit |
245
+ | `services` | Configure which services are enabled |
246
+
247
+ Configuration is stored in `.smartconfig.json` under the `@git.zone/cli` key.
232
248
 
233
249
  ### 📦 Project Templates
234
250
 
@@ -323,44 +339,33 @@ gitzone helpers shortid
323
339
 
324
340
  ## 📋 Configuration
325
341
 
326
- ### npmextra.json
342
+ ### .smartconfig.json
327
343
 
328
- Customize gitzone behavior through `npmextra.json`:
344
+ Customize gitzone behavior through `.smartconfig.json`:
329
345
 
330
346
  ```json
331
347
  {
332
348
  "@git.zone/cli": {
333
349
  "projectType": "npm",
350
+ "cli": {
351
+ "interactive": true,
352
+ "output": "human",
353
+ "checkUpdates": true
354
+ },
334
355
  "release": {
335
- "registries": [
336
- "https://registry.npmjs.org"
337
- ],
356
+ "registries": ["https://registry.npmjs.org"],
338
357
  "accessLevel": "public"
339
358
  },
340
359
  "commit": {
341
360
  "alwaysTest": false,
342
361
  "alwaysBuild": false
343
- }
344
- },
345
- "gitzone": {
362
+ },
346
363
  "format": {
347
364
  "interactive": true,
348
- "parallel": true,
349
365
  "showStats": true,
350
- "cache": {
351
- "enabled": true,
352
- "clean": true
353
- },
354
366
  "modules": {
355
367
  "skip": ["prettier"],
356
- "only": [],
357
- "order": []
358
- },
359
- "licenses": {
360
- "allowed": ["MIT", "Apache-2.0"],
361
- "exceptions": {
362
- "some-package": "GPL-3.0"
363
- }
368
+ "only": []
364
369
  }
365
370
  }
366
371
  }
@@ -408,6 +413,23 @@ gitzone services stop
408
413
  gitzone commit -ytbpr
409
414
  ```
410
415
 
416
+ ### Agent-Friendly Inspection
417
+
418
+ ```bash
419
+ # Top-level machine-readable help
420
+ gitzone help config --json
421
+
422
+ # Read-only commit recommendation
423
+ gitzone commit recommend --json
424
+
425
+ # Read-only format plan
426
+ gitzone format plan --json
427
+
428
+ # Read or change config without prompts
429
+ gitzone config get release.accessLevel
430
+ gitzone config set cli.interactive false
431
+ ```
432
+
411
433
  ### Multi-Repository Management
412
434
 
413
435
  ```bash
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@git.zone/cli',
6
- version: '2.13.15',
6
+ version: '2.14.1',
7
7
  description: 'A comprehensive CLI tool for enhancing and managing local development workflows with gitzone utilities, focusing on project setup, version control, code formatting, and template management.'
8
8
  }