specweave 2.2.1 → 2.2.3

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 (114) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CLAUDE.md +21 -36
  3. package/dist/src/cli/dispatcher.d.ts +1 -1
  4. package/dist/src/cli/dispatcher.js +1 -1
  5. package/dist/src/cli/helpers/init/instruction-file-merger.js +2 -2
  6. package/dist/src/cli/helpers/init/instruction-file-merger.js.map +1 -1
  7. package/dist/src/core/auto/completion-evaluator.d.ts +1 -1
  8. package/dist/src/core/auto/completion-evaluator.js +1 -1
  9. package/dist/src/core/fabric/security-judge.d.ts.map +1 -1
  10. package/dist/src/core/fabric/security-judge.js +37 -5
  11. package/dist/src/core/fabric/security-judge.js.map +1 -1
  12. package/dist/src/core/jev/browse.d.ts +2 -2
  13. package/dist/src/core/jev/browse.d.ts.map +1 -1
  14. package/dist/src/core/jev/browse.js +57 -11
  15. package/dist/src/core/jev/browse.js.map +1 -1
  16. package/dist/src/core/jev/client.d.ts.map +1 -1
  17. package/dist/src/core/jev/client.js +49 -20
  18. package/dist/src/core/jev/client.js.map +1 -1
  19. package/dist/src/core/jev/decide.d.ts.map +1 -1
  20. package/dist/src/core/jev/decide.js +12 -7
  21. package/dist/src/core/jev/decide.js.map +1 -1
  22. package/dist/src/core/llm/index.d.ts +1 -1
  23. package/dist/src/core/llm/index.js +1 -1
  24. package/dist/src/core/llm/model-capabilities.d.ts +79 -0
  25. package/dist/src/core/llm/model-capabilities.d.ts.map +1 -0
  26. package/dist/src/core/llm/model-capabilities.js +157 -0
  27. package/dist/src/core/llm/model-capabilities.js.map +1 -0
  28. package/dist/src/core/llm/provider-factory.js +1 -1
  29. package/dist/src/core/llm/providers/anthropic-provider.d.ts +1 -0
  30. package/dist/src/core/llm/providers/anthropic-provider.d.ts.map +1 -1
  31. package/dist/src/core/llm/providers/anthropic-provider.js +38 -11
  32. package/dist/src/core/llm/providers/anthropic-provider.js.map +1 -1
  33. package/dist/src/core/llm/providers/bedrock-provider.d.ts.map +1 -1
  34. package/dist/src/core/llm/providers/bedrock-provider.js +10 -5
  35. package/dist/src/core/llm/providers/bedrock-provider.js.map +1 -1
  36. package/dist/src/core/llm/providers/claude-code-provider.js +1 -1
  37. package/dist/src/core/llm/types.d.ts +20 -1
  38. package/dist/src/core/llm/types.d.ts.map +1 -1
  39. package/dist/src/core/llm/types.js.map +1 -1
  40. package/dist/src/core/session/handoff-secret-scrub.d.ts.map +1 -1
  41. package/dist/src/core/session/handoff-secret-scrub.js +2 -1
  42. package/dist/src/core/session/handoff-secret-scrub.js.map +1 -1
  43. package/dist/src/core/skill-gen/signal-collector.js +1 -1
  44. package/dist/src/core/skill-gen/signal-collector.js.map +1 -1
  45. package/dist/src/core/skill-gen/suggestion-engine.js +1 -1
  46. package/dist/src/core/skill-gen/suggestion-engine.js.map +1 -1
  47. package/dist/src/core/skill-gen/types.d.ts +1 -1
  48. package/dist/src/core/skill-gen/types.d.ts.map +1 -1
  49. package/dist/src/core/skill-refine/haiku-diff.d.ts +25 -2
  50. package/dist/src/core/skill-refine/haiku-diff.d.ts.map +1 -1
  51. package/dist/src/core/skill-refine/haiku-diff.js +18 -5
  52. package/dist/src/core/skill-refine/haiku-diff.js.map +1 -1
  53. package/dist/src/core/skills/skill-judge.d.ts +16 -17
  54. package/dist/src/core/skills/skill-judge.d.ts.map +1 -1
  55. package/dist/src/core/skills/skill-judge.js +39 -36
  56. package/dist/src/core/skills/skill-judge.js.map +1 -1
  57. package/dist/src/dashboard/server/data/cost-aggregator.d.ts.map +1 -1
  58. package/dist/src/dashboard/server/data/cost-aggregator.js +2 -0
  59. package/dist/src/dashboard/server/data/cost-aggregator.js.map +1 -1
  60. package/dist/src/utils/pricing-constants.d.ts +1 -1
  61. package/dist/src/utils/pricing-constants.d.ts.map +1 -1
  62. package/dist/src/utils/pricing-constants.js +3 -1
  63. package/dist/src/utils/pricing-constants.js.map +1 -1
  64. package/package.json +2 -2
  65. package/plugins/specweave/.claude-plugin/plugin.json +1 -1
  66. package/plugins/specweave/.lint/skill-lint.test.ts +104 -92
  67. package/plugins/specweave/skills/team/agents/_protocol.md +8 -52
  68. package/plugins/specweave/skills/team/agents/backend.md +2 -5
  69. package/plugins/specweave/skills/team/agents/brainstorm-advocate.md +4 -2
  70. package/plugins/specweave/skills/team/agents/brainstorm-critic.md +4 -2
  71. package/plugins/specweave/skills/team/agents/brainstorm-pragmatist.md +4 -2
  72. package/plugins/specweave/skills/team/agents/database.md +0 -2
  73. package/plugins/specweave/skills/team/agents/testing.md +0 -2
  74. package/dist/src/cli/helpers/init/ado-repo-cloning.d.ts +0 -32
  75. package/dist/src/cli/helpers/init/ado-repo-cloning.d.ts.map +0 -1
  76. package/dist/src/cli/helpers/init/ado-repo-cloning.js +0 -157
  77. package/dist/src/cli/helpers/init/ado-repo-cloning.js.map +0 -1
  78. package/dist/src/cli/helpers/init/api-docs-config.d.ts +0 -67
  79. package/dist/src/cli/helpers/init/api-docs-config.d.ts.map +0 -1
  80. package/dist/src/cli/helpers/init/api-docs-config.js +0 -426
  81. package/dist/src/cli/helpers/init/api-docs-config.js.map +0 -1
  82. package/dist/src/cli/helpers/init/bitbucket-repo-cloning.d.ts +0 -42
  83. package/dist/src/cli/helpers/init/bitbucket-repo-cloning.d.ts.map +0 -1
  84. package/dist/src/cli/helpers/init/bitbucket-repo-cloning.js +0 -261
  85. package/dist/src/cli/helpers/init/bitbucket-repo-cloning.js.map +0 -1
  86. package/dist/src/cli/helpers/init/brownfield-analysis.d.ts +0 -45
  87. package/dist/src/cli/helpers/init/brownfield-analysis.d.ts.map +0 -1
  88. package/dist/src/cli/helpers/init/brownfield-analysis.js +0 -431
  89. package/dist/src/cli/helpers/init/brownfield-analysis.js.map +0 -1
  90. package/dist/src/cli/helpers/init/claude-settings-lsp.d.ts +0 -55
  91. package/dist/src/cli/helpers/init/claude-settings-lsp.d.ts.map +0 -1
  92. package/dist/src/cli/helpers/init/claude-settings-lsp.js +0 -270
  93. package/dist/src/cli/helpers/init/claude-settings-lsp.js.map +0 -1
  94. package/dist/src/cli/helpers/init/multi-project-folders.d.ts +0 -15
  95. package/dist/src/cli/helpers/init/multi-project-folders.d.ts.map +0 -1
  96. package/dist/src/cli/helpers/init/multi-project-folders.js +0 -43
  97. package/dist/src/cli/helpers/init/multi-project-folders.js.map +0 -1
  98. package/dist/src/cli/helpers/init/plugin-install-flags.d.ts +0 -114
  99. package/dist/src/cli/helpers/init/plugin-install-flags.d.ts.map +0 -1
  100. package/dist/src/cli/helpers/init/plugin-install-flags.js +0 -202
  101. package/dist/src/cli/helpers/init/plugin-install-flags.js.map +0 -1
  102. package/dist/src/cli/helpers/init/prompt-flow.d.ts +0 -59
  103. package/dist/src/cli/helpers/init/prompt-flow.d.ts.map +0 -1
  104. package/dist/src/cli/helpers/init/prompt-flow.js +0 -127
  105. package/dist/src/cli/helpers/init/prompt-flow.js.map +0 -1
  106. package/dist/src/cli/helpers/init/testing-config.d.ts +0 -69
  107. package/dist/src/cli/helpers/init/testing-config.d.ts.map +0 -1
  108. package/dist/src/cli/helpers/init/testing-config.js +0 -433
  109. package/dist/src/cli/helpers/init/testing-config.js.map +0 -1
  110. package/dist/src/cli/helpers/init/umbrella-cloning.d.ts +0 -39
  111. package/dist/src/cli/helpers/init/umbrella-cloning.d.ts.map +0 -1
  112. package/dist/src/cli/helpers/init/umbrella-cloning.js +0 -121
  113. package/dist/src/cli/helpers/init/umbrella-cloning.js.map +0 -1
  114. package/plugins/specweave/.lint/skill-lint.ts +0 -51
@@ -1,426 +0,0 @@
1
- /**
2
- * API Documentation configuration prompts
3
- * Handles OpenAPI and Postman collection settings for API projects
4
- *
5
- * @module api-docs-config
6
- * @since v1.0.58
7
- */
8
- import * as fs from '../../../utils/fs-native.js';
9
- import * as path from 'path';
10
- import chalk from 'chalk';
11
- import { select, confirm, input } from '@inquirer/prompts';
12
- import { WIZARD_BACK, createGoBackChoice } from './wizard-navigation.js';
13
- /**
14
- * Get translated strings for API docs configuration
15
- */
16
- function getApiDocsStrings(language) {
17
- const strings = {
18
- en: {
19
- header: '📡 API Documentation Configuration',
20
- subheader: 'Configure OpenAPI and Postman collection generation',
21
- apiDetected: '✅ Detected API framework:',
22
- noApiDetected: 'No API framework detected',
23
- enableApiDocs: 'Enable API documentation (OpenAPI + Postman)?',
24
- skipApiDocs: 'Skip - this project has no APIs',
25
- selectTiming: 'When should API docs be regenerated?',
26
- timingIncrement: 'On increment close (recommended)',
27
- timingChange: 'On API file changes (hook-based)',
28
- timingManual: 'Manual only)',
29
- enterBaseUrl: 'Enter API base URL:',
30
- generatePostman: 'Generate Postman collection from OpenAPI?',
31
- configComplete: '✔ API Documentation configured',
32
- skipped: '✔ API Documentation skipped (no APIs)',
33
- },
34
- ru: {
35
- header: '📡 Конфигурация документации API',
36
- subheader: 'Настройка генерации OpenAPI и коллекции Postman',
37
- apiDetected: '✅ Обнаружен API фреймворк:',
38
- noApiDetected: 'API фреймворк не обнаружен',
39
- enableApiDocs: 'Включить документацию API (OpenAPI + Postman)?',
40
- skipApiDocs: 'Пропустить - в проекте нет API',
41
- selectTiming: 'Когда следует обновлять документацию API?',
42
- timingIncrement: 'При закрытии инкремента (рекомендуется)',
43
- timingChange: 'При изменении файлов API (через хуки)',
44
- timingManual: 'Только вручную)',
45
- enterBaseUrl: 'Введите базовый URL API:',
46
- generatePostman: 'Генерировать коллекцию Postman из OpenAPI?',
47
- configComplete: '✔ Документация API настроена',
48
- skipped: '✔ Документация API пропущена (нет API)',
49
- },
50
- es: {
51
- header: '📡 Configuración de documentación API',
52
- subheader: 'Configure la generación de OpenAPI y colección Postman',
53
- apiDetected: '✅ Framework API detectado:',
54
- noApiDetected: 'No se detectó framework API',
55
- enableApiDocs: '¿Habilitar documentación API (OpenAPI + Postman)?',
56
- skipApiDocs: 'Omitir - este proyecto no tiene APIs',
57
- selectTiming: '¿Cuándo se debe regenerar la documentación API?',
58
- timingIncrement: 'Al cerrar incremento (recomendado)',
59
- timingChange: 'Al cambiar archivos API (basado en hooks)',
60
- timingManual: 'Solo manual)',
61
- enterBaseUrl: 'Ingrese URL base de API:',
62
- generatePostman: '¿Generar colección Postman desde OpenAPI?',
63
- configComplete: '✔ Documentación API configurada',
64
- skipped: '✔ Documentación API omitida (sin APIs)',
65
- },
66
- zh: {
67
- header: '📡 API文档配置',
68
- subheader: '配置OpenAPI和Postman集合生成',
69
- apiDetected: '✅ 检测到API框架:',
70
- noApiDetected: '未检测到API框架',
71
- enableApiDocs: '启用API文档(OpenAPI + Postman)?',
72
- skipApiDocs: '跳过 - 此项目没有API',
73
- selectTiming: '何时应该重新生成API文档?',
74
- timingIncrement: '关闭增量时(推荐)',
75
- timingChange: 'API文件更改时(基于钩子)',
76
- timingManual: '仅手动(sw:api-docs)',
77
- enterBaseUrl: '输入API基础URL:',
78
- generatePostman: '从OpenAPI生成Postman集合?',
79
- configComplete: '✔ API文档已配置',
80
- skipped: '✔ API文档已跳过(无API)',
81
- },
82
- de: {
83
- header: '📡 API-Dokumentation Konfiguration',
84
- subheader: 'Konfigurieren Sie die OpenAPI- und Postman-Collection-Generierung',
85
- apiDetected: '✅ API-Framework erkannt:',
86
- noApiDetected: 'Kein API-Framework erkannt',
87
- enableApiDocs: 'API-Dokumentation aktivieren (OpenAPI + Postman)?',
88
- skipApiDocs: 'Überspringen - dieses Projekt hat keine APIs',
89
- selectTiming: 'Wann soll die API-Dokumentation neu generiert werden?',
90
- timingIncrement: 'Beim Inkrement-Abschluss (empfohlen)',
91
- timingChange: 'Bei API-Dateiänderungen (hook-basiert)',
92
- timingManual: 'Nur manuell)',
93
- enterBaseUrl: 'API-Basis-URL eingeben:',
94
- generatePostman: 'Postman-Collection aus OpenAPI generieren?',
95
- configComplete: '✔ API-Dokumentation konfiguriert',
96
- skipped: '✔ API-Dokumentation übersprungen (keine APIs)',
97
- },
98
- fr: {
99
- header: '📡 Configuration de la documentation API',
100
- subheader: 'Configurer la génération OpenAPI et collection Postman',
101
- apiDetected: '✅ Framework API détecté :',
102
- noApiDetected: 'Aucun framework API détecté',
103
- enableApiDocs: 'Activer la documentation API (OpenAPI + Postman) ?',
104
- skipApiDocs: 'Ignorer - ce projet n\'a pas d\'APIs',
105
- selectTiming: 'Quand la documentation API doit-elle être régénérée ?',
106
- timingIncrement: 'À la clôture de l\'incrément (recommandé)',
107
- timingChange: 'Lors des modifications de fichiers API (basé sur hooks)',
108
- timingManual: 'Manuel uniquement)',
109
- enterBaseUrl: 'Entrez l\'URL de base de l\'API :',
110
- generatePostman: 'Générer la collection Postman depuis OpenAPI ?',
111
- configComplete: '✔ Documentation API configurée',
112
- skipped: '✔ Documentation API ignorée (pas d\'APIs)',
113
- },
114
- ja: {
115
- header: '📡 APIドキュメント設定',
116
- subheader: 'OpenAPIとPostmanコレクションの生成を設定',
117
- apiDetected: '✅ 検出されたAPIフレームワーク:',
118
- noApiDetected: 'APIフレームワークが検出されませんでした',
119
- enableApiDocs: 'APIドキュメントを有効化(OpenAPI + Postman)?',
120
- skipApiDocs: 'スキップ - このプロジェクトにはAPIがありません',
121
- selectTiming: 'APIドキュメントをいつ再生成しますか?',
122
- timingIncrement: 'インクリメント完了時(推奨)',
123
- timingChange: 'APIファイル変更時(フックベース)',
124
- timingManual: '手動のみ(sw:api-docs)',
125
- enterBaseUrl: 'APIベースURLを入力:',
126
- generatePostman: 'OpenAPIからPostmanコレクションを生成?',
127
- configComplete: '✔ APIドキュメント設定完了',
128
- skipped: '✔ APIドキュメントスキップ(APIなし)',
129
- },
130
- ko: {
131
- header: '📡 API 문서 구성',
132
- subheader: 'OpenAPI 및 Postman 컬렉션 생성 구성',
133
- apiDetected: '✅ 감지된 API 프레임워크:',
134
- noApiDetected: 'API 프레임워크를 감지하지 못했습니다',
135
- enableApiDocs: 'API 문서 활성화 (OpenAPI + Postman)?',
136
- skipApiDocs: '건너뛰기 - 이 프로젝트에는 API가 없습니다',
137
- selectTiming: 'API 문서를 언제 재생성해야 합니까?',
138
- timingIncrement: '증분 완료 시 (권장)',
139
- timingChange: 'API 파일 변경 시 (훅 기반)',
140
- timingManual: '수동만)',
141
- enterBaseUrl: 'API 기본 URL 입력:',
142
- generatePostman: 'OpenAPI에서 Postman 컬렉션 생성?',
143
- configComplete: '✔ API 문서 구성 완료',
144
- skipped: '✔ API 문서 건너뜀 (API 없음)',
145
- },
146
- pt: {
147
- header: '📡 Configuração de Documentação API',
148
- subheader: 'Configure a geração de OpenAPI e coleção Postman',
149
- apiDetected: '✅ Framework API detectado:',
150
- noApiDetected: 'Nenhum framework API detectado',
151
- enableApiDocs: 'Habilitar documentação API (OpenAPI + Postman)?',
152
- skipApiDocs: 'Pular - este projeto não tem APIs',
153
- selectTiming: 'Quando a documentação API deve ser regenerada?',
154
- timingIncrement: 'Ao fechar incremento (recomendado)',
155
- timingChange: 'Ao alterar arquivos API (baseado em hooks)',
156
- timingManual: 'Apenas manual)',
157
- enterBaseUrl: 'Digite URL base da API:',
158
- generatePostman: 'Gerar coleção Postman do OpenAPI?',
159
- configComplete: '✔ Documentação API configurada',
160
- skipped: '✔ Documentação API pulada (sem APIs)',
161
- },
162
- };
163
- return strings[language] || strings.en;
164
- }
165
- /**
166
- * Detect API framework from project files
167
- */
168
- export function detectApiFramework(targetDir) {
169
- const packageJsonPath = path.join(targetDir, 'package.json');
170
- const requirementsTxtPath = path.join(targetDir, 'requirements.txt');
171
- const pyprojectPath = path.join(targetDir, 'pyproject.toml');
172
- const goModPath = path.join(targetDir, 'go.mod');
173
- const pomXmlPath = path.join(targetDir, 'pom.xml');
174
- const buildGradlePath = path.join(targetDir, 'build.gradle');
175
- // Check package.json for JS/TS frameworks
176
- if (fs.existsSync(packageJsonPath)) {
177
- try {
178
- const pkg = fs.readJsonSync(packageJsonPath);
179
- const deps = { ...pkg.dependencies, ...pkg.devDependencies };
180
- if (deps['@nestjs/core'] || deps['@nestjs/common']) {
181
- return {
182
- name: 'NestJS',
183
- openApiSupport: 'plugin',
184
- setupInstructions: 'npm install @nestjs/swagger swagger-ui-express',
185
- };
186
- }
187
- if (deps['express']) {
188
- return {
189
- name: 'Express',
190
- openApiSupport: 'plugin',
191
- setupInstructions: 'npm install swagger-jsdoc swagger-ui-express',
192
- };
193
- }
194
- if (deps['fastify']) {
195
- return {
196
- name: 'Fastify',
197
- openApiSupport: 'plugin',
198
- setupInstructions: 'npm install @fastify/swagger @fastify/swagger-ui',
199
- };
200
- }
201
- if (deps['hono']) {
202
- return {
203
- name: 'Hono',
204
- openApiSupport: 'plugin',
205
- setupInstructions: 'npm install @hono/zod-openapi',
206
- };
207
- }
208
- if (deps['next']) {
209
- // Next.js API routes
210
- return {
211
- name: 'Next.js API Routes',
212
- openApiSupport: 'manual',
213
- setupInstructions: 'npm install next-swagger-doc swagger-ui-react',
214
- };
215
- }
216
- }
217
- catch {
218
- // Ignore JSON parse errors
219
- }
220
- }
221
- // Check Python frameworks
222
- if (fs.existsSync(requirementsTxtPath) || fs.existsSync(pyprojectPath)) {
223
- try {
224
- let content = '';
225
- if (fs.existsSync(requirementsTxtPath)) {
226
- content = fs.readFileSync(requirementsTxtPath, 'utf-8');
227
- }
228
- else if (fs.existsSync(pyprojectPath)) {
229
- content = fs.readFileSync(pyprojectPath, 'utf-8');
230
- }
231
- if (content.includes('fastapi')) {
232
- return {
233
- name: 'FastAPI',
234
- openApiSupport: 'built-in',
235
- setupInstructions: 'Built-in: Access at /openapi.json',
236
- };
237
- }
238
- if (content.includes('django')) {
239
- return {
240
- name: 'Django REST Framework',
241
- openApiSupport: 'plugin',
242
- setupInstructions: 'pip install drf-spectacular',
243
- };
244
- }
245
- if (content.includes('flask')) {
246
- return {
247
- name: 'Flask',
248
- openApiSupport: 'plugin',
249
- setupInstructions: 'pip install flask-openapi3',
250
- };
251
- }
252
- }
253
- catch {
254
- // Ignore read errors
255
- }
256
- }
257
- // Check Go frameworks
258
- if (fs.existsSync(goModPath)) {
259
- try {
260
- const content = fs.readFileSync(goModPath, 'utf-8');
261
- if (content.includes('gin-gonic/gin')) {
262
- return {
263
- name: 'Gin',
264
- openApiSupport: 'plugin',
265
- setupInstructions: 'go install github.com/swaggo/swag/cmd/swag@latest',
266
- };
267
- }
268
- if (content.includes('labstack/echo')) {
269
- return {
270
- name: 'Echo',
271
- openApiSupport: 'plugin',
272
- setupInstructions: 'go install github.com/swaggo/swag/cmd/swag@latest',
273
- };
274
- }
275
- }
276
- catch {
277
- // Ignore read errors
278
- }
279
- }
280
- // Check Java/Kotlin frameworks
281
- if (fs.existsSync(pomXmlPath) || fs.existsSync(buildGradlePath)) {
282
- try {
283
- let content = '';
284
- if (fs.existsSync(pomXmlPath)) {
285
- content = fs.readFileSync(pomXmlPath, 'utf-8');
286
- }
287
- else {
288
- content = fs.readFileSync(buildGradlePath, 'utf-8');
289
- }
290
- if (content.includes('spring-boot') || content.includes('springframework')) {
291
- return {
292
- name: 'Spring Boot',
293
- openApiSupport: 'plugin',
294
- setupInstructions: 'Add springdoc-openapi-starter-webmvc-ui dependency',
295
- };
296
- }
297
- }
298
- catch {
299
- // Ignore read errors
300
- }
301
- }
302
- return null;
303
- }
304
- /**
305
- * Prompt user for API documentation configuration
306
- *
307
- * @param targetDir - Project directory
308
- * @param language - Language for translations
309
- * @returns API docs configuration or null if skipped
310
- */
311
- export async function promptApiDocsConfig(targetDir, language = 'en') {
312
- const strings = getApiDocsStrings(language);
313
- const detectedFramework = detectApiFramework(targetDir);
314
- console.log('');
315
- console.log(chalk.cyan.bold(strings.header));
316
- console.log(chalk.gray(' ' + strings.subheader));
317
- console.log('');
318
- // Show detected framework
319
- if (detectedFramework) {
320
- console.log(chalk.green(` ${strings.apiDetected} ${detectedFramework.name}`));
321
- console.log(chalk.gray(` Setup: ${detectedFramework.setupInstructions}`));
322
- console.log('');
323
- }
324
- else {
325
- console.log(chalk.gray(` ${strings.noApiDetected}`));
326
- console.log('');
327
- }
328
- // Ask if user wants to enable API docs
329
- const enableChoice = await select({
330
- message: strings.enableApiDocs,
331
- choices: [
332
- {
333
- name: detectedFramework
334
- ? `✅ Yes - Configure for ${detectedFramework.name}`
335
- : '✅ Yes - Enable API documentation',
336
- value: 'enable',
337
- },
338
- {
339
- name: strings.skipApiDocs,
340
- value: 'skip',
341
- },
342
- createGoBackChoice(language),
343
- ],
344
- default: detectedFramework ? 'enable' : 'skip',
345
- });
346
- if (enableChoice === 'back') {
347
- return { config: null, goBack: WIZARD_BACK };
348
- }
349
- if (enableChoice === 'skip') {
350
- console.log('');
351
- console.log(chalk.gray(` ${strings.skipped}`));
352
- console.log('');
353
- return { config: null };
354
- }
355
- // Ask for timing
356
- const generateOn = await select({
357
- message: strings.selectTiming,
358
- choices: [
359
- {
360
- name: strings.timingIncrement,
361
- value: 'on-increment-done',
362
- },
363
- {
364
- name: strings.timingChange,
365
- value: 'on-api-change',
366
- },
367
- {
368
- name: strings.timingManual,
369
- value: 'manual',
370
- },
371
- ],
372
- default: 'on-increment-done',
373
- });
374
- // Ask for base URL
375
- const baseUrl = await input({
376
- message: strings.enterBaseUrl,
377
- default: 'http://localhost:3000',
378
- });
379
- // Ask if Postman should be generated
380
- const generatePostman = await confirm({
381
- message: strings.generatePostman,
382
- default: true,
383
- });
384
- const config = {
385
- enabled: true,
386
- openApiPath: 'openapi.yaml',
387
- autoGenerateOpenApi: detectedFramework?.openApiSupport === 'built-in',
388
- generatePostman,
389
- postmanPath: 'postman-collection.json',
390
- generateOn,
391
- watchPatterns: [
392
- '**/routes/**',
393
- '**/controllers/**',
394
- '**/api/**',
395
- '**/endpoints/**',
396
- ],
397
- baseUrl,
398
- };
399
- console.log('');
400
- console.log(chalk.green(` ${strings.configComplete}`));
401
- console.log(chalk.gray(` OpenAPI: ${config.openApiPath}`));
402
- if (generatePostman) {
403
- console.log(chalk.gray(` Postman: ${config.postmanPath}`));
404
- }
405
- console.log(chalk.gray(` Generate: ${config.generateOn}`));
406
- console.log('');
407
- return { config };
408
- }
409
- /**
410
- * Update config.json with API docs configuration
411
- *
412
- * @param targetDir - Project directory
413
- * @param config - API docs configuration
414
- * @param language - Language for translations
415
- */
416
- export function updateConfigWithApiDocs(targetDir, config, language = 'en') {
417
- const configPath = path.join(targetDir, '.specweave', 'config.json');
418
- if (!fs.existsSync(configPath)) {
419
- console.error(chalk.red('⚠️ config.json not found, cannot update API docs configuration'));
420
- return;
421
- }
422
- const existingConfig = fs.readJsonSync(configPath);
423
- existingConfig.apiDocs = config;
424
- fs.writeJsonSync(configPath, existingConfig, { spaces: 2 });
425
- }
426
- //# sourceMappingURL=api-docs-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-docs-config.js","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/api-docs-config.ts"],"names":[],"mappings":"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"}
@@ -1,42 +0,0 @@
1
- /**
2
- * Bitbucket Repository Cloning
3
- *
4
- * Handles fetching and cloning Bitbucket repositories during init.
5
- * Cloning runs in background (non-blocking) via job manager.
6
- *
7
- * Provides parity with ADO multi-repo cloning:
8
- * - Fetches repos from Bitbucket workspace via API v2.0
9
- * - Filters by user-selected pattern (all/glob/regex)
10
- * - Creates background clone jobs
11
- * - Tracks progress via sw:jobs
12
- *
13
- * @module cli/helpers/init/bitbucket-repo-cloning
14
- */
15
- import { type ClonePatternResult } from '../selection-strategy.js';
16
- /**
17
- * Bitbucket repository selection (from init flow)
18
- */
19
- export interface BitbucketRepoSelection {
20
- /** Bitbucket workspace slug */
21
- workspace: string;
22
- /** Bitbucket username */
23
- username: string;
24
- /** Bitbucket App Password */
25
- appPassword: string;
26
- }
27
- /**
28
- * Trigger Bitbucket repository cloning during init
29
- *
30
- * This function:
31
- * 1. Fetches repository list from Bitbucket workspace
32
- * 2. Filters repositories by clone pattern (glob/regex)
33
- * 3. Creates a background job for cloning
34
- * 4. Starts cloning asynchronously (non-blocking)
35
- *
36
- * @param projectPath - Target directory for cloning
37
- * @param bitbucketRepoSelection - Bitbucket workspace and credentials
38
- * @param clonePattern - Clone pattern configuration
39
- * @returns Job ID for dependency tracking, or undefined if skipped/failed
40
- */
41
- export declare function triggerBitbucketRepoCloning(projectPath: string, bitbucketRepoSelection: BitbucketRepoSelection, clonePattern: ClonePatternResult): Promise<string | undefined>;
42
- //# sourceMappingURL=bitbucket-repo-cloning.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bitbucket-repo-cloning.d.ts","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/bitbucket-repo-cloning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAA+B,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAIhG;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;CACrB;AAqND;;;;;;;;;;;;;GAaG;AACH,wBAAsB,2BAA2B,CAC/C,WAAW,EAAE,MAAM,EACnB,sBAAsB,EAAE,sBAAsB,EAC9C,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAuG7B"}