@nahisaho/musubix-core 1.0.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.
Files changed (214) hide show
  1. package/bin/musubix.js +18 -0
  2. package/dist/__tests__/index.test.d.ts +2 -0
  3. package/dist/__tests__/index.test.d.ts.map +1 -0
  4. package/dist/__tests__/index.test.js +27 -0
  5. package/dist/__tests__/index.test.js.map +1 -0
  6. package/dist/auth/auth-manager.d.ts +320 -0
  7. package/dist/auth/auth-manager.d.ts.map +1 -0
  8. package/dist/auth/auth-manager.js +580 -0
  9. package/dist/auth/auth-manager.js.map +1 -0
  10. package/dist/cli/base.d.ts +58 -0
  11. package/dist/cli/base.d.ts.map +1 -0
  12. package/dist/cli/base.js +93 -0
  13. package/dist/cli/base.js.map +1 -0
  14. package/dist/cli/commands/help.d.ts +17 -0
  15. package/dist/cli/commands/help.d.ts.map +1 -0
  16. package/dist/cli/commands/help.js +228 -0
  17. package/dist/cli/commands/help.js.map +1 -0
  18. package/dist/cli/commands/index.d.ts +14 -0
  19. package/dist/cli/commands/index.d.ts.map +1 -0
  20. package/dist/cli/commands/index.js +25 -0
  21. package/dist/cli/commands/index.js.map +1 -0
  22. package/dist/cli/commands/init.d.ts +38 -0
  23. package/dist/cli/commands/init.d.ts.map +1 -0
  24. package/dist/cli/commands/init.js +258 -0
  25. package/dist/cli/commands/init.js.map +1 -0
  26. package/dist/cli/index.d.ts +9 -0
  27. package/dist/cli/index.d.ts.map +1 -0
  28. package/dist/cli/index.js +9 -0
  29. package/dist/cli/index.js.map +1 -0
  30. package/dist/codegen/coding-standards.d.ts +250 -0
  31. package/dist/codegen/coding-standards.d.ts.map +1 -0
  32. package/dist/codegen/coding-standards.js +976 -0
  33. package/dist/codegen/coding-standards.js.map +1 -0
  34. package/dist/codegen/coverage-reporter.d.ts +264 -0
  35. package/dist/codegen/coverage-reporter.d.ts.map +1 -0
  36. package/dist/codegen/coverage-reporter.js +697 -0
  37. package/dist/codegen/coverage-reporter.js.map +1 -0
  38. package/dist/codegen/dependency-analyzer.d.ts +271 -0
  39. package/dist/codegen/dependency-analyzer.d.ts.map +1 -0
  40. package/dist/codegen/dependency-analyzer.js +661 -0
  41. package/dist/codegen/dependency-analyzer.js.map +1 -0
  42. package/dist/codegen/generator.d.ts +275 -0
  43. package/dist/codegen/generator.d.ts.map +1 -0
  44. package/dist/codegen/generator.js +781 -0
  45. package/dist/codegen/generator.js.map +1 -0
  46. package/dist/codegen/index.d.ts +18 -0
  47. package/dist/codegen/index.d.ts.map +1 -0
  48. package/dist/codegen/index.js +27 -0
  49. package/dist/codegen/index.js.map +1 -0
  50. package/dist/codegen/integration-test-generator.d.ts +312 -0
  51. package/dist/codegen/integration-test-generator.d.ts.map +1 -0
  52. package/dist/codegen/integration-test-generator.js +765 -0
  53. package/dist/codegen/integration-test-generator.js.map +1 -0
  54. package/dist/codegen/pattern-conformance.d.ts +309 -0
  55. package/dist/codegen/pattern-conformance.d.ts.map +1 -0
  56. package/dist/codegen/pattern-conformance.js +590 -0
  57. package/dist/codegen/pattern-conformance.js.map +1 -0
  58. package/dist/codegen/quality-metrics.d.ts +235 -0
  59. package/dist/codegen/quality-metrics.d.ts.map +1 -0
  60. package/dist/codegen/quality-metrics.js +439 -0
  61. package/dist/codegen/quality-metrics.js.map +1 -0
  62. package/dist/codegen/security-scanner.d.ts +179 -0
  63. package/dist/codegen/security-scanner.d.ts.map +1 -0
  64. package/dist/codegen/security-scanner.js +495 -0
  65. package/dist/codegen/security-scanner.js.map +1 -0
  66. package/dist/codegen/static-analyzer.d.ts +188 -0
  67. package/dist/codegen/static-analyzer.d.ts.map +1 -0
  68. package/dist/codegen/static-analyzer.js +490 -0
  69. package/dist/codegen/static-analyzer.js.map +1 -0
  70. package/dist/codegen/unit-test-generator.d.ts +289 -0
  71. package/dist/codegen/unit-test-generator.d.ts.map +1 -0
  72. package/dist/codegen/unit-test-generator.js +634 -0
  73. package/dist/codegen/unit-test-generator.js.map +1 -0
  74. package/dist/design/adr-generator.d.ts +227 -0
  75. package/dist/design/adr-generator.d.ts.map +1 -0
  76. package/dist/design/adr-generator.js +423 -0
  77. package/dist/design/adr-generator.js.map +1 -0
  78. package/dist/design/c4-generator.d.ts +267 -0
  79. package/dist/design/c4-generator.d.ts.map +1 -0
  80. package/dist/design/c4-generator.js +453 -0
  81. package/dist/design/c4-generator.js.map +1 -0
  82. package/dist/design/framework-optimizer.d.ts +190 -0
  83. package/dist/design/framework-optimizer.d.ts.map +1 -0
  84. package/dist/design/framework-optimizer.js +589 -0
  85. package/dist/design/framework-optimizer.js.map +1 -0
  86. package/dist/design/index.d.ts +12 -0
  87. package/dist/design/index.d.ts.map +1 -0
  88. package/dist/design/index.js +13 -0
  89. package/dist/design/index.js.map +1 -0
  90. package/dist/design/pattern-detector.d.ts +270 -0
  91. package/dist/design/pattern-detector.d.ts.map +1 -0
  92. package/dist/design/pattern-detector.js +621 -0
  93. package/dist/design/pattern-detector.js.map +1 -0
  94. package/dist/design/solid-validator.d.ts +188 -0
  95. package/dist/design/solid-validator.d.ts.map +1 -0
  96. package/dist/design/solid-validator.js +579 -0
  97. package/dist/design/solid-validator.js.map +1 -0
  98. package/dist/error/data-persistence.d.ts +311 -0
  99. package/dist/error/data-persistence.d.ts.map +1 -0
  100. package/dist/error/data-persistence.js +586 -0
  101. package/dist/error/data-persistence.js.map +1 -0
  102. package/dist/error/graceful-degradation.d.ts +309 -0
  103. package/dist/error/graceful-degradation.d.ts.map +1 -0
  104. package/dist/error/graceful-degradation.js +510 -0
  105. package/dist/error/graceful-degradation.js.map +1 -0
  106. package/dist/error/index.d.ts +11 -0
  107. package/dist/error/index.d.ts.map +1 -0
  108. package/dist/error/index.js +19 -0
  109. package/dist/error/index.js.map +1 -0
  110. package/dist/explanation/explanation-generator.d.ts +228 -0
  111. package/dist/explanation/explanation-generator.d.ts.map +1 -0
  112. package/dist/explanation/explanation-generator.js +662 -0
  113. package/dist/explanation/explanation-generator.js.map +1 -0
  114. package/dist/explanation/index.d.ts +11 -0
  115. package/dist/explanation/index.d.ts.map +1 -0
  116. package/dist/explanation/index.js +19 -0
  117. package/dist/explanation/index.js.map +1 -0
  118. package/dist/explanation/reasoning-chain.d.ts +314 -0
  119. package/dist/explanation/reasoning-chain.d.ts.map +1 -0
  120. package/dist/explanation/reasoning-chain.js +414 -0
  121. package/dist/explanation/reasoning-chain.js.map +1 -0
  122. package/dist/explanation/visual-explanation.d.ts +315 -0
  123. package/dist/explanation/visual-explanation.d.ts.map +1 -0
  124. package/dist/explanation/visual-explanation.js +667 -0
  125. package/dist/explanation/visual-explanation.js.map +1 -0
  126. package/dist/index.d.ts +33 -0
  127. package/dist/index.d.ts.map +1 -0
  128. package/dist/index.js +47 -0
  129. package/dist/index.js.map +1 -0
  130. package/dist/requirements/decomposer.d.ts +235 -0
  131. package/dist/requirements/decomposer.d.ts.map +1 -0
  132. package/dist/requirements/decomposer.js +587 -0
  133. package/dist/requirements/decomposer.js.map +1 -0
  134. package/dist/requirements/related-finder.d.ts +261 -0
  135. package/dist/requirements/related-finder.d.ts.map +1 -0
  136. package/dist/requirements/related-finder.js +629 -0
  137. package/dist/requirements/related-finder.js.map +1 -0
  138. package/dist/traceability/impact.d.ts +196 -0
  139. package/dist/traceability/impact.d.ts.map +1 -0
  140. package/dist/traceability/impact.js +438 -0
  141. package/dist/traceability/impact.js.map +1 -0
  142. package/dist/traceability/index.d.ts +9 -0
  143. package/dist/traceability/index.d.ts.map +1 -0
  144. package/dist/traceability/index.js +10 -0
  145. package/dist/traceability/index.js.map +1 -0
  146. package/dist/traceability/manager.d.ts +266 -0
  147. package/dist/traceability/manager.d.ts.map +1 -0
  148. package/dist/traceability/manager.js +412 -0
  149. package/dist/traceability/manager.js.map +1 -0
  150. package/dist/types/common.d.ts +294 -0
  151. package/dist/types/common.d.ts.map +1 -0
  152. package/dist/types/common.js +15 -0
  153. package/dist/types/common.js.map +1 -0
  154. package/dist/types/ears.d.ts +158 -0
  155. package/dist/types/ears.d.ts.map +1 -0
  156. package/dist/types/ears.js +33 -0
  157. package/dist/types/ears.js.map +1 -0
  158. package/dist/types/errors.d.ts +176 -0
  159. package/dist/types/errors.d.ts.map +1 -0
  160. package/dist/types/errors.js +55 -0
  161. package/dist/types/errors.js.map +1 -0
  162. package/dist/types/index.d.ts +10 -0
  163. package/dist/types/index.d.ts.map +1 -0
  164. package/dist/types/index.js +10 -0
  165. package/dist/types/index.js.map +1 -0
  166. package/dist/utils/data-protector.d.ts +122 -0
  167. package/dist/utils/data-protector.d.ts.map +1 -0
  168. package/dist/utils/data-protector.js +275 -0
  169. package/dist/utils/data-protector.js.map +1 -0
  170. package/dist/utils/error-handler.d.ts +101 -0
  171. package/dist/utils/error-handler.d.ts.map +1 -0
  172. package/dist/utils/error-handler.js +324 -0
  173. package/dist/utils/error-handler.js.map +1 -0
  174. package/dist/utils/i18n-manager.d.ts +259 -0
  175. package/dist/utils/i18n-manager.d.ts.map +1 -0
  176. package/dist/utils/i18n-manager.js +554 -0
  177. package/dist/utils/i18n-manager.js.map +1 -0
  178. package/dist/utils/index.d.ts +10 -0
  179. package/dist/utils/index.d.ts.map +1 -0
  180. package/dist/utils/index.js +10 -0
  181. package/dist/utils/index.js.map +1 -0
  182. package/dist/utils/logger.d.ts +120 -0
  183. package/dist/utils/logger.d.ts.map +1 -0
  184. package/dist/utils/logger.js +237 -0
  185. package/dist/utils/logger.js.map +1 -0
  186. package/dist/utils/performance-profiler.d.ts +251 -0
  187. package/dist/utils/performance-profiler.d.ts.map +1 -0
  188. package/dist/utils/performance-profiler.js +458 -0
  189. package/dist/utils/performance-profiler.js.map +1 -0
  190. package/dist/utils/scalability-optimizer.d.ts +294 -0
  191. package/dist/utils/scalability-optimizer.d.ts.map +1 -0
  192. package/dist/utils/scalability-optimizer.js +606 -0
  193. package/dist/utils/scalability-optimizer.js.map +1 -0
  194. package/dist/utils/structured-logger.d.ts +294 -0
  195. package/dist/utils/structured-logger.d.ts.map +1 -0
  196. package/dist/utils/structured-logger.js +630 -0
  197. package/dist/utils/structured-logger.js.map +1 -0
  198. package/dist/utils/version-compatibility.d.ts +217 -0
  199. package/dist/utils/version-compatibility.d.ts.map +1 -0
  200. package/dist/utils/version-compatibility.js +443 -0
  201. package/dist/utils/version-compatibility.js.map +1 -0
  202. package/dist/validators/ears-validator.d.ts +182 -0
  203. package/dist/validators/ears-validator.d.ts.map +1 -0
  204. package/dist/validators/ears-validator.js +357 -0
  205. package/dist/validators/ears-validator.js.map +1 -0
  206. package/dist/validators/index.d.ts +8 -0
  207. package/dist/validators/index.d.ts.map +1 -0
  208. package/dist/validators/index.js +9 -0
  209. package/dist/validators/index.js.map +1 -0
  210. package/dist/version.d.ts +8 -0
  211. package/dist/version.d.ts.map +1 -0
  212. package/dist/version.js +8 -0
  213. package/dist/version.js.map +1 -0
  214. package/package.json +100 -0
@@ -0,0 +1,258 @@
1
+ /**
2
+ * Init Command
3
+ *
4
+ * Initializes a new MUSUBIX project
5
+ *
6
+ * @packageDocumentation
7
+ * @module cli/commands/init
8
+ *
9
+ * @see REQ-ARC-002 - CLI Interface
10
+ * @see DES-MUSUBIX-001 Section 3.2.2 - CLI Commands
11
+ */
12
+ import { mkdir, writeFile, access } from 'fs/promises';
13
+ import { join } from 'path';
14
+ import { ExitCode, getGlobalOptions, outputResult } from '../base.js';
15
+ import { VERSION } from '../../version.js';
16
+ /**
17
+ * Default project configuration template
18
+ */
19
+ const DEFAULT_CONFIG = {
20
+ version: VERSION,
21
+ project: 'my-project',
22
+ steeringDir: './steering',
23
+ storageDir: './storage',
24
+ llm: {
25
+ provider: 'anthropic',
26
+ model: 'claude-sonnet-4-20250514',
27
+ maxTokens: 4096,
28
+ temperature: 0.7,
29
+ },
30
+ yata: {
31
+ transport: 'stdio',
32
+ server: 'yata-mcp',
33
+ timeout: 30000,
34
+ },
35
+ integration: {
36
+ neuralThreshold: 0.7,
37
+ symbolicThreshold: 0.8,
38
+ defaultStrategy: 'neural-validated',
39
+ gracefulDegradation: true,
40
+ },
41
+ };
42
+ /**
43
+ * Directory structure to create
44
+ */
45
+ const DIRECTORY_STRUCTURE = [
46
+ 'steering',
47
+ 'steering/rules',
48
+ 'storage',
49
+ 'storage/specs',
50
+ 'storage/archive',
51
+ 'storage/changes',
52
+ ];
53
+ /**
54
+ * Register init command
55
+ */
56
+ export function registerInitCommand(program) {
57
+ program
58
+ .command('init')
59
+ .description('Initialize a new MUSUBIX project')
60
+ .argument('[path]', 'Project directory (default: current directory)', '.')
61
+ .option('-n, --name <name>', 'Project name')
62
+ .option('-t, --template <template>', 'Project template', 'default')
63
+ .option('-f, --force', 'Overwrite existing files', false)
64
+ .action(async (path, options) => {
65
+ const globalOpts = getGlobalOptions(program);
66
+ try {
67
+ const result = await executeInit(path, options);
68
+ outputResult(result, globalOpts);
69
+ process.exit(result.success ? ExitCode.SUCCESS : ExitCode.GENERAL_ERROR);
70
+ }
71
+ catch (error) {
72
+ if (globalOpts.json) {
73
+ console.error(JSON.stringify({
74
+ success: false,
75
+ error: error instanceof Error ? error.message : String(error),
76
+ }));
77
+ }
78
+ else {
79
+ console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
80
+ }
81
+ process.exit(ExitCode.GENERAL_ERROR);
82
+ }
83
+ });
84
+ }
85
+ /**
86
+ * Execute init command
87
+ */
88
+ export async function executeInit(targetPath, options) {
89
+ const projectPath = join(process.cwd(), targetPath);
90
+ const projectName = options.name ?? getProjectNameFromPath(projectPath);
91
+ const filesCreated = [];
92
+ // Check if directory exists and has files
93
+ if (!options.force) {
94
+ const configPath = join(projectPath, 'musubix.config.json');
95
+ try {
96
+ await access(configPath);
97
+ return {
98
+ success: false,
99
+ projectPath,
100
+ filesCreated: [],
101
+ message: 'Project already initialized. Use --force to overwrite.',
102
+ };
103
+ }
104
+ catch {
105
+ // Config doesn't exist, continue
106
+ }
107
+ }
108
+ // Create directory structure
109
+ for (const dir of DIRECTORY_STRUCTURE) {
110
+ const dirPath = join(projectPath, dir);
111
+ await mkdir(dirPath, { recursive: true });
112
+ filesCreated.push(dir + '/');
113
+ }
114
+ // Create configuration file
115
+ const config = {
116
+ ...DEFAULT_CONFIG,
117
+ project: projectName,
118
+ };
119
+ const configPath = join(projectPath, 'musubix.config.json');
120
+ await writeFile(configPath, JSON.stringify(config, null, 2) + '\n');
121
+ filesCreated.push('musubix.config.json');
122
+ // Create steering documents
123
+ await createSteeringDocuments(projectPath, projectName, filesCreated);
124
+ // Create .gitkeep files
125
+ await writeFile(join(projectPath, 'storage/archive/.gitkeep'), '');
126
+ await writeFile(join(projectPath, 'storage/changes/.gitkeep'), '');
127
+ filesCreated.push('storage/archive/.gitkeep', 'storage/changes/.gitkeep');
128
+ return {
129
+ success: true,
130
+ projectPath,
131
+ filesCreated,
132
+ message: `MUSUBIX project '${projectName}' initialized successfully!`,
133
+ };
134
+ }
135
+ /**
136
+ * Create steering documents
137
+ */
138
+ async function createSteeringDocuments(projectPath, projectName, filesCreated) {
139
+ // Constitution
140
+ const constitution = `# ${projectName} Constitution
141
+
142
+ ## 9つの憲法条項
143
+
144
+ 本プロジェクトは以下の憲法条項に準拠します。
145
+
146
+ ### Article I: Library-First Architecture
147
+ すべての機能はライブラリとして分離すること。
148
+
149
+ ### Article II: CLI Interface Mandate
150
+ すべてのライブラリにCLIエントリーポイントを設けること。
151
+
152
+ ### Article III: Test-First Development
153
+ テスト駆動開発を実践すること。
154
+
155
+ ### Article IV: Project Memory
156
+ steering/配下にプロジェクトメモリを維持すること。
157
+
158
+ ### Article V: Traceability
159
+ 要件からコードまでの追跡可能性を確保すること。
160
+
161
+ ### Article VI: Agent Memory Format
162
+ MUSUBI SDD形式でメモリを管理すること。
163
+
164
+ ### Article VII: Simplicity Gate
165
+ 初期は3プロジェクト以内に抑えること。
166
+
167
+ ### Article VIII: Anti-Abstraction
168
+ フレームワークAPIを直接使用すること。
169
+
170
+ ### Article IX: Integration Testing
171
+ 実サービスでテストを行うこと。
172
+
173
+ ---
174
+
175
+ **生成日**: ${new Date().toISOString().split('T')[0]}
176
+ **MUSUBIX Version**: ${VERSION}
177
+ `;
178
+ await writeFile(join(projectPath, 'steering/rules/constitution.md'), constitution);
179
+ filesCreated.push('steering/rules/constitution.md');
180
+ // Product context
181
+ const product = `# ${projectName} - Product Context
182
+
183
+ ## 概要
184
+
185
+ [プロジェクトの概要を記述]
186
+
187
+ ## 目的
188
+
189
+ [プロジェクトの目的を記述]
190
+
191
+ ## ステークホルダー
192
+
193
+ - [ステークホルダー1]
194
+ - [ステークホルダー2]
195
+
196
+ ---
197
+
198
+ **生成日**: ${new Date().toISOString().split('T')[0]}
199
+ `;
200
+ await writeFile(join(projectPath, 'steering/product.md'), product);
201
+ filesCreated.push('steering/product.md');
202
+ // Tech stack
203
+ const tech = `# ${projectName} - Technology Stack
204
+
205
+ ## 言語
206
+
207
+ - TypeScript 5.3+
208
+ - Node.js 20+
209
+
210
+ ## フレームワーク
211
+
212
+ - [使用するフレームワーク]
213
+
214
+ ## ツール
215
+
216
+ - Vitest (テスト)
217
+ - ESLint (リント)
218
+
219
+ ---
220
+
221
+ **生成日**: ${new Date().toISOString().split('T')[0]}
222
+ `;
223
+ await writeFile(join(projectPath, 'steering/tech.md'), tech);
224
+ filesCreated.push('steering/tech.md');
225
+ // Structure
226
+ const structure = `# ${projectName} - Project Structure
227
+
228
+ ## ディレクトリ構成
229
+
230
+ \`\`\`
231
+ ${projectName}/
232
+ ├── steering/ # プロジェクトメモリ
233
+ │ ├── rules/ # 憲法・ルール
234
+ │ ├── product.md # プロダクトコンテキスト
235
+ │ ├── tech.md # 技術スタック
236
+ │ └── structure.md # 構造定義
237
+ ├── storage/ # データストレージ
238
+ │ ├── specs/ # 仕様書
239
+ │ ├── archive/ # アーカイブ
240
+ │ └── changes/ # 変更履歴
241
+ └── musubix.config.json # 設定ファイル
242
+ \`\`\`
243
+
244
+ ---
245
+
246
+ **生成日**: ${new Date().toISOString().split('T')[0]}
247
+ `;
248
+ await writeFile(join(projectPath, 'steering/structure.md'), structure);
249
+ filesCreated.push('steering/structure.md');
250
+ }
251
+ /**
252
+ * Extract project name from path
253
+ */
254
+ function getProjectNameFromPath(projectPath) {
255
+ const parts = projectPath.split(/[/\\]/);
256
+ return parts[parts.length - 1] || 'my-project';
257
+ }
258
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * CLI Index
3
+ *
4
+ * @packageDocumentation
5
+ * @module cli
6
+ */
7
+ export * from './base.js';
8
+ export * from './commands/index.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * CLI Index
3
+ *
4
+ * @packageDocumentation
5
+ * @module cli
6
+ */
7
+ export * from './base.js';
8
+ export * from './commands/index.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,250 @@
1
+ /**
2
+ * Coding Standards Checker
3
+ *
4
+ * Checks and enforces coding standards
5
+ *
6
+ * @packageDocumentation
7
+ * @module codegen/coding-standards
8
+ *
9
+ * @see REQ-COD-005 - Coding Standards Enforcement
10
+ * @see Article III - Bidirectional Traceability
11
+ */
12
+ /**
13
+ * Severity level
14
+ */
15
+ export type Severity = 'error' | 'warning' | 'info' | 'hint';
16
+ /**
17
+ * Standard category
18
+ */
19
+ export type StandardCategory = 'naming' | 'formatting' | 'structure' | 'documentation' | 'complexity' | 'security' | 'performance' | 'testing' | 'style';
20
+ /**
21
+ * Coding standard rule
22
+ */
23
+ export interface CodingRule {
24
+ /** Rule ID */
25
+ id: string;
26
+ /** Rule name */
27
+ name: string;
28
+ /** Description */
29
+ description: string;
30
+ /** Category */
31
+ category: StandardCategory;
32
+ /** Severity */
33
+ severity: Severity;
34
+ /** Enabled */
35
+ enabled: boolean;
36
+ /** Configurable options */
37
+ options?: Record<string, unknown>;
38
+ /** Auto-fix available */
39
+ autoFixable: boolean;
40
+ }
41
+ /**
42
+ * Rule violation
43
+ */
44
+ export interface RuleViolation {
45
+ /** Rule ID */
46
+ ruleId: string;
47
+ /** Rule name */
48
+ ruleName: string;
49
+ /** Severity */
50
+ severity: Severity;
51
+ /** Message */
52
+ message: string;
53
+ /** File path */
54
+ file: string;
55
+ /** Line number */
56
+ line: number;
57
+ /** Column number */
58
+ column: number;
59
+ /** End line */
60
+ endLine?: number;
61
+ /** End column */
62
+ endColumn?: number;
63
+ /** Suggestion */
64
+ suggestion?: string;
65
+ /** Auto-fix available */
66
+ autoFixable: boolean;
67
+ /** Fix function */
68
+ fix?: () => string;
69
+ }
70
+ /**
71
+ * Check result
72
+ */
73
+ export interface CheckResult {
74
+ /** File checked */
75
+ file: string;
76
+ /** Violations found */
77
+ violations: RuleViolation[];
78
+ /** Error count */
79
+ errorCount: number;
80
+ /** Warning count */
81
+ warningCount: number;
82
+ /** Info count */
83
+ infoCount: number;
84
+ /** Passed */
85
+ passed: boolean;
86
+ /** Check duration (ms) */
87
+ duration: number;
88
+ }
89
+ /**
90
+ * Standards report
91
+ */
92
+ export interface StandardsReport {
93
+ /** Timestamp */
94
+ timestamp: Date;
95
+ /** Files checked */
96
+ filesChecked: number;
97
+ /** Files passed */
98
+ filesPassed: number;
99
+ /** Files failed */
100
+ filesFailed: number;
101
+ /** Total violations */
102
+ totalViolations: number;
103
+ /** Violations by severity */
104
+ bySeverity: Record<Severity, number>;
105
+ /** Violations by category */
106
+ byCategory: Record<StandardCategory, number>;
107
+ /** Results by file */
108
+ results: CheckResult[];
109
+ /** Duration (ms) */
110
+ duration: number;
111
+ /** Pass rate */
112
+ passRate: number;
113
+ }
114
+ /**
115
+ * Standards config
116
+ */
117
+ export interface CodingStandardsConfig {
118
+ /** Language */
119
+ language: 'typescript' | 'javascript' | 'python' | 'java';
120
+ /** Enabled categories */
121
+ enabledCategories: StandardCategory[];
122
+ /** Min severity to report */
123
+ minSeverity: Severity;
124
+ /** Fail on warning */
125
+ failOnWarning: boolean;
126
+ /** Ignore patterns */
127
+ ignorePatterns: string[];
128
+ /** Custom rules */
129
+ customRules: CodingRule[];
130
+ }
131
+ /**
132
+ * Default configuration
133
+ */
134
+ export declare const DEFAULT_STANDARDS_CONFIG: CodingStandardsConfig;
135
+ /**
136
+ * Built-in rules
137
+ */
138
+ export declare const BUILTIN_RULES: CodingRule[];
139
+ /**
140
+ * Coding Standards Checker
141
+ */
142
+ export declare class CodingStandardsChecker {
143
+ private config;
144
+ private rules;
145
+ constructor(config?: Partial<CodingStandardsConfig>);
146
+ /**
147
+ * Initialize rules
148
+ */
149
+ private initializeRules;
150
+ /**
151
+ * Check file content
152
+ */
153
+ check(content: string, filePath: string): CheckResult;
154
+ /**
155
+ * Check multiple files
156
+ */
157
+ checkFiles(files: Array<{
158
+ path: string;
159
+ content: string;
160
+ }>): StandardsReport;
161
+ /**
162
+ * Run a specific rule
163
+ */
164
+ private runRule;
165
+ /**
166
+ * Check camelCase naming
167
+ */
168
+ private checkCamelCase;
169
+ /**
170
+ * Check PascalCase for classes
171
+ */
172
+ private checkPascalCaseClass;
173
+ /**
174
+ * Check UPPER_CASE for constants
175
+ */
176
+ private checkUpperCaseConstants;
177
+ /**
178
+ * Check meaningful names
179
+ */
180
+ private checkMeaningfulNames;
181
+ /**
182
+ * Check max line length
183
+ */
184
+ private checkMaxLineLength;
185
+ /**
186
+ * Check indentation
187
+ */
188
+ private checkIndentation;
189
+ /**
190
+ * Check max file lines
191
+ */
192
+ private checkMaxFileLines;
193
+ /**
194
+ * Check max function lines
195
+ */
196
+ private checkMaxFunctionLines;
197
+ /**
198
+ * Check max parameters
199
+ */
200
+ private checkMaxParameters;
201
+ /**
202
+ * Check JSDoc required
203
+ */
204
+ private checkJSDocRequired;
205
+ /**
206
+ * Check cyclomatic complexity
207
+ */
208
+ private checkCyclomaticComplexity;
209
+ /**
210
+ * Check max nesting level
211
+ */
212
+ private checkMaxNesting;
213
+ /**
214
+ * Check for eval usage
215
+ */
216
+ private checkNoEval;
217
+ /**
218
+ * Check for hardcoded secrets
219
+ */
220
+ private checkNoHardcodedSecrets;
221
+ /**
222
+ * Check if severity should be reported
223
+ */
224
+ private shouldReport;
225
+ /**
226
+ * Check if file should be ignored
227
+ */
228
+ private shouldIgnore;
229
+ /**
230
+ * Get enabled rules
231
+ */
232
+ getEnabledRules(): CodingRule[];
233
+ /**
234
+ * Enable/disable rule
235
+ */
236
+ setRuleEnabled(ruleId: string, enabled: boolean): void;
237
+ /**
238
+ * Add custom rule
239
+ */
240
+ addRule(rule: CodingRule): void;
241
+ /**
242
+ * Format report as string
243
+ */
244
+ formatReport(report: StandardsReport): string;
245
+ }
246
+ /**
247
+ * Create coding standards checker instance
248
+ */
249
+ export declare function createCodingStandardsChecker(config?: Partial<CodingStandardsConfig>): CodingStandardsChecker;
250
+ //# sourceMappingURL=coding-standards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coding-standards.d.ts","sourceRoot":"","sources":["../../src/codegen/coding-standards.ts"],"names":[],"mappings":"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"}