@zeyue0329/xiaoma-cli 1.0.36 → 1.0.38

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 (89) hide show
  1. package/.idea/workspace.xml +27 -26
  2. package/JAVA-BACKEND-COMMANDS-REFERENCE.md +62 -52
  3. package/JAVA-BACKEND-ITERATION-GUIDE.md +125 -18
  4. package/README.md +1 -1
  5. package/common/utils/bmad-doc-template.md +5 -5
  6. package/dist/agents/analyst.txt +35 -5
  7. package/dist/agents/architect.txt +217 -31
  8. package/dist/agents/automation-orchestrator.txt +4 -4
  9. package/dist/agents/dev.txt +3 -3
  10. package/dist/agents/full-requirement-orchestrator.txt +11 -11
  11. package/dist/agents/qa.txt +102 -102
  12. package/dist/agents/sm.txt +6 -6
  13. package/dist/agents/ux-expert.txt +6 -1
  14. package/dist/agents/workflow-executor.txt +879 -0
  15. package/dist/agents/xiaoma-master.txt +258 -37
  16. package/dist/teams/team-all.txt +1223 -445
  17. package/dist/teams/team-fullstack-with-database.txt +384 -446
  18. package/dist/teams/team-fullstack.txt +258 -37
  19. package/dist/teams/team-ide-minimal.txt +111 -111
  20. package/dist/teams/team-no-ui.txt +252 -36
  21. package/docs/architecture-sharding-modification.md +623 -0
  22. package/docs/automated-requirements-analysis-outputs.md +896 -0
  23. package/package.json +1 -1
  24. package/tools/builders/web-builder.js +292 -142
  25. package/tools/bump-all-versions.js +50 -32
  26. package/tools/cli.js +52 -47
  27. package/tools/flattener/aggregate.js +30 -12
  28. package/tools/flattener/binary.js +46 -43
  29. package/tools/flattener/discovery.js +23 -15
  30. package/tools/flattener/files.js +6 -6
  31. package/tools/flattener/ignoreRules.js +122 -121
  32. package/tools/flattener/main.js +249 -144
  33. package/tools/flattener/projectRoot.js +74 -69
  34. package/tools/flattener/prompts.js +12 -10
  35. package/tools/flattener/stats.helpers.js +90 -61
  36. package/tools/flattener/stats.js +1 -1
  37. package/tools/flattener/test-matrix.js +225 -170
  38. package/tools/flattener/xml.js +31 -23
  39. package/tools/installer/bin/xiaoma.js +199 -153
  40. package/tools/installer/lib/config-loader.js +76 -47
  41. package/tools/installer/lib/file-manager.js +101 -44
  42. package/tools/installer/lib/ide-base-setup.js +49 -39
  43. package/tools/installer/lib/ide-setup.js +694 -380
  44. package/tools/installer/lib/installer.js +802 -469
  45. package/tools/installer/lib/memory-profiler.js +22 -12
  46. package/tools/installer/lib/module-manager.js +16 -14
  47. package/tools/installer/lib/resource-locator.js +61 -35
  48. package/tools/lib/dependency-resolver.js +34 -23
  49. package/tools/lib/yaml-utils.js +7 -2
  50. package/tools/preview-release-notes.js +33 -25
  51. package/tools/shared/bannerArt.js +3 -3
  52. package/tools/sync-installer-version.js +16 -7
  53. package/tools/upgraders/v3-to-v4-upgrader.js +244 -163
  54. package/tools/version-bump.js +24 -18
  55. package/tools/xiaoma-npx-wrapper.js +15 -10
  56. package/tools/yaml-format.js +60 -36
  57. package/xiaoma-core/agent-teams/team-fullstack-with-database.yaml +0 -1
  58. package/xiaoma-core/agents/automated-fix-validator.yaml +2 -1
  59. package/xiaoma-core/agents/automated-quality-validator.yaml +10 -5
  60. package/xiaoma-core/agents/automation-orchestrator.md +4 -4
  61. package/xiaoma-core/agents/dev.md +4 -4
  62. package/xiaoma-core/agents/enhanced-workflow-orchestrator.yaml +2 -1
  63. package/xiaoma-core/agents/full-requirement-orchestrator.md +11 -11
  64. package/xiaoma-core/agents/global-requirements-auditor.yaml +11 -3
  65. package/xiaoma-core/agents/intelligent-template-adapter.yaml +19 -5
  66. package/xiaoma-core/agents/master-execution-engine.yaml +19 -5
  67. package/xiaoma-core/agents/workflow-executor.md +126 -18
  68. package/xiaoma-core/agents/xiaoma-master.md +1 -1
  69. package/xiaoma-core/data/test-levels-framework.md +12 -12
  70. package/xiaoma-core/tasks/analyze-existing-database.md +1 -1
  71. package/xiaoma-core/tasks/apply-qa-fixes.md +3 -3
  72. package/xiaoma-core/tasks/batch-story-generation.md +22 -22
  73. package/xiaoma-core/tasks/create-enhanced-story-with-database.md +6 -6
  74. package/xiaoma-core/tasks/nfr-assess.md +6 -6
  75. package/xiaoma-core/tasks/project-integration-testing.md +42 -42
  76. package/xiaoma-core/tasks/qa-gate.md +23 -23
  77. package/xiaoma-core/tasks/review-story.md +18 -18
  78. package/xiaoma-core/tasks/risk-profile.md +25 -25
  79. package/xiaoma-core/tasks/serial-development-orchestration.md +51 -51
  80. package/xiaoma-core/tasks/test-design.md +9 -9
  81. package/xiaoma-core/tasks/trace-requirements.md +21 -21
  82. package/xiaoma-core/templates/competitor-analysis-tmpl.yaml +35 -5
  83. package/xiaoma-core/templates/front-end-architecture-tmpl.yaml +77 -11
  84. package/xiaoma-core/templates/front-end-spec-tmpl.yaml +6 -1
  85. package/xiaoma-core/templates/fullstack-architecture-tmpl.yaml +140 -20
  86. package/xiaoma-core/templates/global-qa-monitoring-tmpl.yaml +2 -1
  87. package/xiaoma-core/templates/requirements-coverage-audit.yaml +2 -1
  88. package/xiaoma-core/workflows/automated-requirements-analysis.yaml +4 -4
  89. package/dist/agents/database-architect.txt +0 -322
@@ -1,146 +1,146 @@
1
- const fs = require('fs-extra');
2
- const path = require('node:path');
3
- const ignore = require('ignore');
1
+ const fs = require("fs-extra");
2
+ const path = require("node:path");
3
+ const ignore = require("ignore");
4
4
 
5
5
  // Central default ignore patterns for discovery and filtering.
6
6
  // These complement .gitignore and are applied regardless of VCS presence.
7
7
  const DEFAULT_PATTERNS = [
8
8
  // Project/VCS
9
- '**/.xiaoma-core/**',
10
- '**/.git/**',
11
- '**/.svn/**',
12
- '**/.hg/**',
13
- '**/.bzr/**',
9
+ "**/.xiaoma-core/**",
10
+ "**/.git/**",
11
+ "**/.svn/**",
12
+ "**/.hg/**",
13
+ "**/.bzr/**",
14
14
  // Package/build outputs
15
- '**/node_modules/**',
16
- '**/bower_components/**',
17
- '**/vendor/**',
18
- '**/packages/**',
19
- '**/build/**',
20
- '**/dist/**',
21
- '**/out/**',
22
- '**/target/**',
23
- '**/bin/**',
24
- '**/obj/**',
25
- '**/release/**',
26
- '**/debug/**',
15
+ "**/node_modules/**",
16
+ "**/bower_components/**",
17
+ "**/vendor/**",
18
+ "**/packages/**",
19
+ "**/build/**",
20
+ "**/dist/**",
21
+ "**/out/**",
22
+ "**/target/**",
23
+ "**/bin/**",
24
+ "**/obj/**",
25
+ "**/release/**",
26
+ "**/debug/**",
27
27
  // Environments
28
- '**/.venv/**',
29
- '**/venv/**',
30
- '**/.virtualenv/**',
31
- '**/virtualenv/**',
32
- '**/env/**',
28
+ "**/.venv/**",
29
+ "**/venv/**",
30
+ "**/.virtualenv/**",
31
+ "**/virtualenv/**",
32
+ "**/env/**",
33
33
  // Logs & coverage
34
- '**/*.log',
35
- '**/npm-debug.log*',
36
- '**/yarn-debug.log*',
37
- '**/yarn-error.log*',
38
- '**/lerna-debug.log*',
39
- '**/coverage/**',
40
- '**/.nyc_output/**',
41
- '**/.coverage/**',
42
- '**/test-results/**',
34
+ "**/*.log",
35
+ "**/npm-debug.log*",
36
+ "**/yarn-debug.log*",
37
+ "**/yarn-error.log*",
38
+ "**/lerna-debug.log*",
39
+ "**/coverage/**",
40
+ "**/.nyc_output/**",
41
+ "**/.coverage/**",
42
+ "**/test-results/**",
43
43
  // Caches & temp
44
- '**/.cache/**',
45
- '**/.tmp/**',
46
- '**/.temp/**',
47
- '**/tmp/**',
48
- '**/temp/**',
49
- '**/.sass-cache/**',
44
+ "**/.cache/**",
45
+ "**/.tmp/**",
46
+ "**/.temp/**",
47
+ "**/tmp/**",
48
+ "**/temp/**",
49
+ "**/.sass-cache/**",
50
50
  // IDE/editor
51
- '**/.vscode/**',
52
- '**/.idea/**',
53
- '**/*.swp',
54
- '**/*.swo',
55
- '**/*~',
56
- '**/.project',
57
- '**/.classpath',
58
- '**/.settings/**',
59
- '**/*.sublime-project',
60
- '**/*.sublime-workspace',
51
+ "**/.vscode/**",
52
+ "**/.idea/**",
53
+ "**/*.swp",
54
+ "**/*.swo",
55
+ "**/*~",
56
+ "**/.project",
57
+ "**/.classpath",
58
+ "**/.settings/**",
59
+ "**/*.sublime-project",
60
+ "**/*.sublime-workspace",
61
61
  // Lockfiles
62
- '**/package-lock.json',
63
- '**/yarn.lock',
64
- '**/pnpm-lock.yaml',
65
- '**/composer.lock',
66
- '**/Pipfile.lock',
62
+ "**/package-lock.json",
63
+ "**/yarn.lock",
64
+ "**/pnpm-lock.yaml",
65
+ "**/composer.lock",
66
+ "**/Pipfile.lock",
67
67
  // Python/Java/compiled artifacts
68
- '**/*.pyc',
69
- '**/*.pyo',
70
- '**/*.pyd',
71
- '**/__pycache__/**',
72
- '**/*.class',
73
- '**/*.jar',
74
- '**/*.war',
75
- '**/*.ear',
76
- '**/*.o',
77
- '**/*.so',
78
- '**/*.dll',
79
- '**/*.exe',
68
+ "**/*.pyc",
69
+ "**/*.pyo",
70
+ "**/*.pyd",
71
+ "**/__pycache__/**",
72
+ "**/*.class",
73
+ "**/*.jar",
74
+ "**/*.war",
75
+ "**/*.ear",
76
+ "**/*.o",
77
+ "**/*.so",
78
+ "**/*.dll",
79
+ "**/*.exe",
80
80
  // System junk
81
- '**/lib64/**',
82
- '**/.venv/lib64/**',
83
- '**/venv/lib64/**',
84
- '**/_site/**',
85
- '**/.jekyll-cache/**',
86
- '**/.jekyll-metadata',
87
- '**/.DS_Store',
88
- '**/.DS_Store?',
89
- '**/._*',
90
- '**/.Spotlight-V100/**',
91
- '**/.Trashes/**',
92
- '**/ehthumbs.db',
93
- '**/Thumbs.db',
94
- '**/desktop.ini',
81
+ "**/lib64/**",
82
+ "**/.venv/lib64/**",
83
+ "**/venv/lib64/**",
84
+ "**/_site/**",
85
+ "**/.jekyll-cache/**",
86
+ "**/.jekyll-metadata",
87
+ "**/.DS_Store",
88
+ "**/.DS_Store?",
89
+ "**/._*",
90
+ "**/.Spotlight-V100/**",
91
+ "**/.Trashes/**",
92
+ "**/ehthumbs.db",
93
+ "**/Thumbs.db",
94
+ "**/desktop.ini",
95
95
  // XML outputs
96
- '**/flattened-codebase.xml',
97
- '**/repomix-output.xml',
96
+ "**/flattened-codebase.xml",
97
+ "**/repomix-output.xml",
98
98
  // Images, media, fonts, archives, docs, dylibs
99
- '**/*.jpg',
100
- '**/*.jpeg',
101
- '**/*.png',
102
- '**/*.gif',
103
- '**/*.bmp',
104
- '**/*.ico',
105
- '**/*.svg',
106
- '**/*.pdf',
107
- '**/*.doc',
108
- '**/*.docx',
109
- '**/*.xls',
110
- '**/*.xlsx',
111
- '**/*.ppt',
112
- '**/*.pptx',
113
- '**/*.zip',
114
- '**/*.tar',
115
- '**/*.gz',
116
- '**/*.rar',
117
- '**/*.7z',
118
- '**/*.dylib',
119
- '**/*.mp3',
120
- '**/*.mp4',
121
- '**/*.avi',
122
- '**/*.mov',
123
- '**/*.wav',
124
- '**/*.ttf',
125
- '**/*.otf',
126
- '**/*.woff',
127
- '**/*.woff2',
99
+ "**/*.jpg",
100
+ "**/*.jpeg",
101
+ "**/*.png",
102
+ "**/*.gif",
103
+ "**/*.bmp",
104
+ "**/*.ico",
105
+ "**/*.svg",
106
+ "**/*.pdf",
107
+ "**/*.doc",
108
+ "**/*.docx",
109
+ "**/*.xls",
110
+ "**/*.xlsx",
111
+ "**/*.ppt",
112
+ "**/*.pptx",
113
+ "**/*.zip",
114
+ "**/*.tar",
115
+ "**/*.gz",
116
+ "**/*.rar",
117
+ "**/*.7z",
118
+ "**/*.dylib",
119
+ "**/*.mp3",
120
+ "**/*.mp4",
121
+ "**/*.avi",
122
+ "**/*.mov",
123
+ "**/*.wav",
124
+ "**/*.ttf",
125
+ "**/*.otf",
126
+ "**/*.woff",
127
+ "**/*.woff2",
128
128
  // Env files
129
- '**/.env',
130
- '**/.env.*',
131
- '**/*.env',
129
+ "**/.env",
130
+ "**/.env.*",
131
+ "**/*.env",
132
132
  // Misc
133
- '**/junit.xml',
133
+ "**/junit.xml",
134
134
  ];
135
135
 
136
136
  async function readIgnoreFile(filePath) {
137
137
  try {
138
138
  if (!(await fs.pathExists(filePath))) return [];
139
- const content = await fs.readFile(filePath, 'utf8');
139
+ const content = await fs.readFile(filePath, "utf8");
140
140
  return content
141
- .split('\n')
141
+ .split("\n")
142
142
  .map((l) => l.trim())
143
- .filter((l) => l && !l.startsWith('#'));
143
+ .filter((l) => l && !l.startsWith("#"));
144
144
  } catch {
145
145
  return [];
146
146
  }
@@ -153,7 +153,7 @@ async function parseGitignore(gitignorePath) {
153
153
 
154
154
  async function loadIgnore(rootDir, extraPatterns = []) {
155
155
  const ig = ignore();
156
- const gitignorePath = path.join(rootDir, '.gitignore');
156
+ const gitignorePath = path.join(rootDir, ".gitignore");
157
157
  const patterns = [
158
158
  ...(await readIgnoreFile(gitignorePath)),
159
159
  ...DEFAULT_PATTERNS,
@@ -164,7 +164,8 @@ async function loadIgnore(rootDir, extraPatterns = []) {
164
164
  ig.add(unique);
165
165
 
166
166
  // Include-only filter: return true if path should be included
167
- const filter = (relativePath) => !ig.ignores(relativePath.replaceAll('\\', '/'));
167
+ const filter = (relativePath) =>
168
+ !ig.ignores(relativePath.replaceAll("\\", "/"));
168
169
 
169
170
  return { ig, filter, patterns: unique };
170
171
  }