maxsim-flutter 1.12.0 → 1.14.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.
@@ -2,10 +2,20 @@ import type { ProjectContext } from '../core/context.js';
2
2
  export interface ClaudeSetupResult {
3
3
  filesWritten: string[];
4
4
  }
5
+ /**
6
+ * Options for runClaudeSetup. All fields optional for backward compatibility.
7
+ */
8
+ export interface ClaudeSetupOptions {
9
+ /**
10
+ * If true, skip regenerating prd.json.
11
+ * Use this for the upgrade command since users may have marked stories complete.
12
+ */
13
+ skipPrd?: boolean;
14
+ }
5
15
  /**
6
16
  * Runs the full Claude setup for a scaffolded Flutter project.
7
17
  * Generates CLAUDE.md, agent definitions, skills, hooks, MCP config,
8
18
  * slash commands, and prd.json.
9
19
  */
10
- export declare function runClaudeSetup(context: ProjectContext, outputPath: string): Promise<ClaudeSetupResult>;
20
+ export declare function runClaudeSetup(context: ProjectContext, outputPath: string, options?: ClaudeSetupOptions): Promise<ClaudeSetupResult>;
11
21
  //# sourceMappingURL=setup-orchestrator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup-orchestrator.d.ts","sourceRoot":"","sources":["../../src/claude-setup/setup-orchestrator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AASzD,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,CAAC,CA+C5B"}
1
+ {"version":3,"file":"setup-orchestrator.d.ts","sourceRoot":"","sources":["../../src/claude-setup/setup-orchestrator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AASzD,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,iBAAiB,CAAC,CAiD5B"}
@@ -12,7 +12,7 @@ import { generatePrd } from './prd-generator.js';
12
12
  * Generates CLAUDE.md, agent definitions, skills, hooks, MCP config,
13
13
  * slash commands, and prd.json.
14
14
  */
15
- export async function runClaudeSetup(context, outputPath) {
15
+ export async function runClaudeSetup(context, outputPath, options) {
16
16
  const filesWritten = [];
17
17
  // Ensure .claude directory exists
18
18
  await mkdir(join(outputPath, '.claude'), { recursive: true });
@@ -36,11 +36,13 @@ export async function runClaudeSetup(context, outputPath) {
36
36
  // 6. Write slash commands (.claude/commands/)
37
37
  await writeCommands(context, outputPath);
38
38
  filesWritten.push(join(outputPath, '.claude', 'commands', 'add-feature.md'), join(outputPath, '.claude', 'commands', 'analyze.md'));
39
- // 7. Generate and write prd.json
40
- const prdContent = generatePrd(context);
41
- const prdPath = join(outputPath, 'prd.json');
42
- await writeFile(prdPath, prdContent, 'utf-8');
43
- filesWritten.push(prdPath);
39
+ // 7. Generate and write prd.json (skipped when skipPrd is true)
40
+ if (!options?.skipPrd) {
41
+ const prdContent = generatePrd(context);
42
+ const prdPath = join(outputPath, 'prd.json');
43
+ await writeFile(prdPath, prdContent, 'utf-8');
44
+ filesWritten.push(prdPath);
45
+ }
44
46
  return { filesWritten };
45
47
  }
46
48
  //# sourceMappingURL=setup-orchestrator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup-orchestrator.js","sourceRoot":"","sources":["../../src/claude-setup/setup-orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAMjD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAuB,EACvB,UAAkB;IAElB,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,kCAAkC;IAClC,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE9D,kCAAkC;IAClC,MAAM,eAAe,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACnD,MAAM,SAAS,CAAC,YAAY,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;IACxD,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAEhC,oDAAoD;IACpD,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC1D,YAAY,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IAEjC,yCAAyC;IACzC,MAAM,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACvC,YAAY,CAAC,IAAI,CACf,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,qBAAqB,CAAC,EAC5D,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,uBAAuB,CAAC,EAC9D,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,uBAAuB,CAAC,EAC9D,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAChD,CAAC;IAEF,sDAAsD;IACtD,MAAM,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACtC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAEtE,yCAAyC;IACzC,MAAM,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC1C,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IAEjD,8CAA8C;IAC9C,MAAM,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACzC,YAAY,CAAC,IAAI,CACf,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,CAAC,EACzD,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,CAAC,CACtD,CAAC;IAEF,iCAAiC;IACjC,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC7C,MAAM,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC9C,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE3B,OAAO,EAAE,YAAY,EAAE,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"setup-orchestrator.js","sourceRoot":"","sources":["../../src/claude-setup/setup-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Back up existing agent markdown files in a .claude/agents/ directory.
4
+ * Each *.md file is copied to *.md.bak (overwriting any previous backup).
5
+ * Only .md files are backed up — subdirectories and non-.md files are ignored.
6
+ * If the agents directory does not exist, returns an empty array (no-op).
7
+ *
8
+ * @param agentsDir - Absolute path to the .claude/agents/ directory
9
+ * @returns Absolute paths of the .bak files created
10
+ */
11
+ export declare function backupAgentFiles(agentsDir: string): Promise<string[]>;
12
+ /**
13
+ * Commander command factory for the upgrade command.
14
+ * Usage: maxsim-flutter upgrade [path] [--yes] [--dry-run] [--regenerate-prd]
15
+ */
16
+ export declare function createUpgradeCommand(): Command;
17
+ //# sourceMappingURL=upgrade.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAwB3E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAmB9C"}
@@ -0,0 +1,137 @@
1
+ import { copyFile, readdir, stat } from 'node:fs/promises';
2
+ import { join } from 'node:path';
3
+ import { Command } from 'commander';
4
+ import * as p from '@clack/prompts';
5
+ import { loadConfig } from '../../core/config/loader.js';
6
+ import { parseConfig } from '../../core/config/loader.js';
7
+ import { createProjectContext } from '../../core/context.js';
8
+ import { runClaudeSetup } from '../../claude-setup/setup-orchestrator.js';
9
+ import { findProjectRoot } from './add.js';
10
+ /**
11
+ * Back up existing agent markdown files in a .claude/agents/ directory.
12
+ * Each *.md file is copied to *.md.bak (overwriting any previous backup).
13
+ * Only .md files are backed up — subdirectories and non-.md files are ignored.
14
+ * If the agents directory does not exist, returns an empty array (no-op).
15
+ *
16
+ * @param agentsDir - Absolute path to the .claude/agents/ directory
17
+ * @returns Absolute paths of the .bak files created
18
+ */
19
+ export async function backupAgentFiles(agentsDir) {
20
+ let entries;
21
+ try {
22
+ entries = await readdir(agentsDir);
23
+ }
24
+ catch {
25
+ // Directory doesn't exist — nothing to backup
26
+ return [];
27
+ }
28
+ const bakPaths = [];
29
+ for (const entry of entries) {
30
+ if (!entry.endsWith('.md'))
31
+ continue;
32
+ const filePath = join(agentsDir, entry);
33
+ const fileStat = await stat(filePath);
34
+ if (!fileStat.isFile())
35
+ continue;
36
+ const bakPath = `${filePath}.bak`;
37
+ await copyFile(filePath, bakPath);
38
+ bakPaths.push(bakPath);
39
+ }
40
+ return bakPaths;
41
+ }
42
+ /**
43
+ * Commander command factory for the upgrade command.
44
+ * Usage: maxsim-flutter upgrade [path] [--yes] [--dry-run] [--regenerate-prd]
45
+ */
46
+ export function createUpgradeCommand() {
47
+ const cmd = new Command('upgrade');
48
+ cmd
49
+ .description('Upgrade and refresh the .claude/ directory with latest templates')
50
+ .argument('[path]', 'Path to the project root (default: current directory)')
51
+ .option('--yes', 'Skip confirmation prompt')
52
+ .option('--dry-run', 'Show what would change without writing files')
53
+ .option('--regenerate-prd', 'Also regenerate prd.json (default: preserve existing)')
54
+ .action(async (pathArg, options) => {
55
+ try {
56
+ await runUpgrade(pathArg, options);
57
+ }
58
+ catch (err) {
59
+ p.log.error(err instanceof Error ? err.message : String(err));
60
+ process.exit(1);
61
+ }
62
+ });
63
+ return cmd;
64
+ }
65
+ async function runUpgrade(pathArg, options) {
66
+ const dryRun = options.dryRun === true;
67
+ const yes = options.yes === true;
68
+ const regeneratePrd = options.regeneratePrd === true;
69
+ p.intro(`maxsim-flutter — Upgrade .claude/ directory${dryRun ? ' (dry run)' : ''}`);
70
+ // 1. Resolve project root
71
+ const searchDir = pathArg ?? process.cwd();
72
+ const projectRoot = await findProjectRoot(searchDir);
73
+ if (!projectRoot) {
74
+ throw new Error(`No maxsim.config.yaml found in ${searchDir} or its parent directories.\n` +
75
+ 'Run this command from inside a maxsim-flutter project, or pass the path as an argument.');
76
+ }
77
+ const configPath = join(projectRoot, 'maxsim.config.yaml');
78
+ p.log.info(`Found project at: ${projectRoot}`);
79
+ // 2. Load config
80
+ const rawConfig = await loadConfig(configPath);
81
+ const config = parseConfig(rawConfig);
82
+ const context = createProjectContext(config, projectRoot);
83
+ const agentsDir = join(projectRoot, '.claude', 'agents');
84
+ // 3. Dry-run mode — show what would change, write nothing
85
+ if (dryRun) {
86
+ p.log.info('Files that would be regenerated:');
87
+ p.log.step(' CLAUDE.md');
88
+ p.log.step(' .claude/agents/*.md (5 agent files)');
89
+ p.log.step(' .claude/skills/*.md');
90
+ p.log.step(' .claude/settings.local.json');
91
+ p.log.step(' .mcp.json');
92
+ p.log.step(' .claude/commands/*.md');
93
+ if (regeneratePrd) {
94
+ p.log.step(' prd.json');
95
+ }
96
+ p.log.info('Agent files that would be backed up (→ .bak):');
97
+ let bakEntries = [];
98
+ try {
99
+ const entries = await readdir(agentsDir);
100
+ bakEntries = entries.filter((e) => e.endsWith('.md'));
101
+ }
102
+ catch {
103
+ // agents dir doesn't exist — nothing to backup
104
+ }
105
+ if (bakEntries.length > 0) {
106
+ for (const e of bakEntries) {
107
+ p.log.step(` ${e} → ${e}.bak`);
108
+ }
109
+ }
110
+ else {
111
+ p.log.step(' (no existing agent files found)');
112
+ }
113
+ p.outro('Dry run complete — no changes made.');
114
+ return;
115
+ }
116
+ // 4. Confirm prompt (unless --yes)
117
+ if (!yes) {
118
+ const confirmed = await p.confirm({
119
+ message: 'This will regenerate .claude/ files and back up existing agents. Continue?',
120
+ initialValue: true,
121
+ });
122
+ if (p.isCancel(confirmed) || !confirmed) {
123
+ p.cancel('Upgrade cancelled.');
124
+ process.exit(0);
125
+ }
126
+ }
127
+ // 5. Back up existing agent files BEFORE regenerating
128
+ const backedUp = await backupAgentFiles(agentsDir);
129
+ if (backedUp.length > 0) {
130
+ p.log.info(`Backed up ${backedUp.length} agent file(s) to .bak`);
131
+ }
132
+ // 6. Re-run Claude setup (skipPrd unless --regenerate-prd)
133
+ const result = await runClaudeSetup(context, projectRoot, { skipPrd: !regeneratePrd });
134
+ p.log.success(`Regenerated ${result.filesWritten.length} file(s)`);
135
+ p.outro('Upgrade complete!');
136
+ }
137
+ //# sourceMappingURL=upgrade.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -5,6 +5,7 @@ import { createCreateCommand } from './commands/create.js';
5
5
  import { createAddCommand } from './commands/add.js';
6
6
  import { createMigrateCommand } from './commands/migrate.js';
7
7
  import { createListCommand } from './commands/list.js';
8
+ import { createUpgradeCommand } from './commands/upgrade.js';
8
9
  import { checkForUpdate } from './version-check.js';
9
10
  const program = new Command();
10
11
  program
@@ -16,6 +17,7 @@ program.addCommand(createCreateCommand());
16
17
  program.addCommand(createAddCommand());
17
18
  program.addCommand(createMigrateCommand());
18
19
  program.addCommand(createListCommand());
20
+ program.addCommand(createUpgradeCommand());
19
21
  program.parse();
20
22
  // Non-blocking update nudge (fires after the command completes)
21
23
  const opts = program.opts();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,gBAAgB,CAAC;KACtB,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,4GAA4G,CAAC;KACzH,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,CAAC,CAAC;AAE5D,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAExC,OAAO,CAAC,KAAK,EAAE,CAAC;AAEhB,gEAAgE;AAChE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAA4B,CAAC;AACtD,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;IAC/B,cAAc,EAAE;SACb,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE;QACtB,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC;YAC7C,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,uBAAuB,OAAO,MAAM,aAAa,gDAAgD,CAClG,CACF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,EAAE;QACV,kBAAkB;IACpB,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,gBAAgB,CAAC;KACtB,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,4GAA4G,CAAC;KACzH,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,CAAC,CAAC;AAE5D,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAE3C,OAAO,CAAC,KAAK,EAAE,CAAC;AAEhB,gEAAgE;AAChE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAA4B,CAAC;AACtD,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;IAC/B,cAAc,EAAE;SACb,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE;QACtB,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC;YAC7C,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,uBAAuB,OAAO,MAAM,aAAa,gDAAgD,CAClG,CACF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,EAAE;QACV,kBAAkB;IACpB,CAAC,CAAC,CAAC;AACP,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "maxsim-flutter",
3
- "version": "1.12.0",
3
+ "version": "1.14.0",
4
4
  "description": "AI-powered Flutter app scaffolding with Clean Architecture, Riverpod, and autonomous development via Ralph",
5
5
  "type": "module",
6
6
  "bin": {