@c8y/websdk 1023.81.3 → 1023.82.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 (32) hide show
  1. package/README.md +111 -0
  2. package/dist/ng-add/ai-tools-configure.d.ts +10 -0
  3. package/dist/ng-add/ai-tools-configure.js +318 -0
  4. package/dist/ng-add/ai-tools-configure.js.map +1 -0
  5. package/dist/ng-add/index.js +60 -0
  6. package/dist/ng-add/index.js.map +1 -1
  7. package/dist/ng-add/ng-add.model.d.ts +1 -0
  8. package/dist/templates/ai-configs/claude/CLAUDE.md +98 -0
  9. package/dist/templates/ai-configs/claude/rules/e2e-tests.instructions.md +187 -0
  10. package/dist/templates/ai-configs/claude/rules/frontend.instructions.md +251 -0
  11. package/dist/templates/ai-configs/claude/rules/unit-tests.instructions.md +172 -0
  12. package/dist/templates/ai-configs/cursor/cursor.mdc +98 -0
  13. package/dist/templates/ai-configs/cursor/rules/e2e-tests.instructions.md +187 -0
  14. package/dist/templates/ai-configs/cursor/rules/frontend.instructions.md +251 -0
  15. package/dist/templates/ai-configs/cursor/rules/unit-tests.instructions.md +172 -0
  16. package/dist/templates/ai-configs/gemini/GEMINI.md +98 -0
  17. package/dist/templates/ai-configs/gemini/rules/e2e-tests.instructions.md +181 -0
  18. package/dist/templates/ai-configs/gemini/rules/frontend.instructions.md +247 -0
  19. package/dist/templates/ai-configs/gemini/rules/unit-tests.instructions.md +166 -0
  20. package/dist/templates/ai-configs/github/copilot-instructions.md +98 -0
  21. package/dist/templates/ai-configs/github/instructions/e2e-tests.instructions.md +187 -0
  22. package/dist/templates/ai-configs/github/instructions/frontend.instructions.md +251 -0
  23. package/dist/templates/ai-configs/github/instructions/unit-tests.instructions.md +172 -0
  24. package/dist/templates/ai-configs/jetbrains/guidelines.md +98 -0
  25. package/dist/templates/ai-configs/jetbrains/rules/e2e-tests.instructions.md +181 -0
  26. package/dist/templates/ai-configs/jetbrains/rules/frontend.instructions.md +247 -0
  27. package/dist/templates/ai-configs/jetbrains/rules/unit-tests.instructions.md +166 -0
  28. package/dist/templates/ai-configs/windsurf/guidelines.md +98 -0
  29. package/dist/templates/ai-configs/windsurf/rules/e2e-tests.instructions.md +187 -0
  30. package/dist/templates/ai-configs/windsurf/rules/frontend.instructions.md +251 -0
  31. package/dist/templates/ai-configs/windsurf/rules/unit-tests.instructions.md +172 -0
  32. package/package.json +3 -2
package/README.md CHANGED
@@ -39,6 +39,117 @@ ng add @c8y/websdk --application=@c8y/<appName>@<version> --skip-confirmation
39
39
  > - `<appName>` must be one of the following: administration, application, cockpit, codex, devicemanagement, hybrid, package-blueprint, tutorial, sample-plugin.
40
40
  > - `<version>` denotes the specific package version listed in the npm registry.
41
41
 
42
+ ## AI Tools Configuration
43
+
44
+ During the `ng add` process, you will be prompted to configure AI coding assistants with Cumulocity Web SDK best practices. This setup provides your AI tools with context about Angular patterns, TypeScript conventions, accessibility requirements, and Cumulocity-specific guidelines.
45
+
46
+ ### Configuration Modes
47
+
48
+ **Interactive Mode (default)**
49
+
50
+ When running `ng add @c8y/websdk` without the `--skip-confirmation` flag, you'll be prompted to select which AI tools to configure:
51
+
52
+ ```bash
53
+ ng add @c8y/websdk
54
+ # Prompts for base project, version, and AI tools selection
55
+ ```
56
+
57
+ **Non-Interactive Mode**
58
+
59
+ Skip AI tools configuration entirely using `--skip-confirmation`:
60
+
61
+ ```bash
62
+ ng add @c8y/websdk --application=@c8y/cockpit@1.0.0 --skip-confirmation
63
+ # No AI tools configured
64
+ ```
65
+
66
+ **Explicit AI Tools Selection**
67
+
68
+ Use the `--ai-tools` flag to specify tools without interactive prompts:
69
+
70
+ ```bash
71
+ # Configure specific tools (comma-separated)
72
+ ng add @c8y/websdk --ai-tools=claude,github-copilot,gemini
73
+
74
+ # Explicitly skip AI tools configuration
75
+ ng add @c8y/websdk --ai-tools=none
76
+ ```
77
+
78
+ Valid tool names: `claude`, `github-copilot`, `cursor`, `jetbrains-ai`, `windsurf`, `gemini`
79
+
80
+ > **Note**: The `--ai-tools` flag takes precedence over `--skip-confirmation`. If both are provided, only the tools specified in `--ai-tools` will be configured.
81
+
82
+ ### Supported AI Tools
83
+
84
+ - **Claude** — [Documentation](https://docs.anthropic.com/en/docs/claude-code/memory)
85
+ - **Cursor** — [Documentation](https://cursor.com/docs/rules)
86
+ - **Gemini** — [Documentation](https://geminicli.com/docs/cli/gemini-md)
87
+ - **GitHub Copilot** — [Documentation](https://code.visualstudio.com/docs/copilot/copilot-customization)
88
+ - **JetBrains AI** — [Documentation](https://www.jetbrains.com/help/junie/customize-guidelines.html)
89
+ - **Windsurf** — [Documentation](https://docs.windsurf.com/windsurf/cascade/memories)
90
+
91
+ You can select multiple tools during setup or skip configuration entirely by choosing "None".
92
+
93
+ ### What Gets Configured
94
+
95
+ The schematic copies curated instruction files to your project, based on official Cumulocity Web SDK guidelines adapted for standalone Angular applications. Each tool receives the same core content, tailored to its specific configuration format:
96
+
97
+ #### Claude
98
+ - **Main file**: `.claude/CLAUDE.md` — Web SDK project identity and core best practices
99
+ - **Rules**: `.claude/rules/*.instructions.md` — Specialized guidelines (frontend, testing, etc.)
100
+ - **Frontmatter**: Preserved with `name`, `description` fields; `applyTo`/`paths` removed from frontend rules (applies universally)
101
+
102
+ #### GitHub Copilot
103
+ - **Main file**: `.github/copilot-instructions.md` — Project-wide Web SDK instructions
104
+ - **Rules**: `.github/instructions/*.instructions.md` — Domain-specific instructions
105
+ - **Frontmatter**: Preserved with `name`, `description` fields; `applyTo`/`paths` removed from frontend rules (applies universally)
106
+
107
+ #### Cursor
108
+ - **Main file**: `.cursor/rules/cursor.mdc` — Project context with high priority
109
+ - **Rules**: `.cursor/rules/*.mdc` — Transformed from `.instructions.md` to `.mdc` format
110
+ - **Frontmatter**: Transformed to Cursor format (`description`, `globs`, `alwaysApply`)
111
+ - Frontend rules: `alwaysApply: false` (universal application)
112
+ - Test rules: `globs` array for file pattern matching
113
+
114
+ #### Windsurf
115
+ - **Main file**: `.windsurf/rules/guidelines.md` — Always-on project guidelines
116
+ - **Rules**: `.windsurf/rules/*.md` — Specialized guidelines
117
+ - **Frontmatter**: Transformed to Windsurf format (`trigger`, `globs`)
118
+ - Frontend rules: `trigger: always_on`
119
+ - Test rules: `trigger: glob` with file patterns
120
+
121
+ #### JetBrains AI
122
+ - **Single file**: `.junie/guidelines.md` — All guidelines merged into one document
123
+ - **Structure**: Main content followed by section headers for each rule type
124
+ - **Frontmatter**: Completely stripped (JetBrains doesn't use frontmatter)
125
+
126
+ #### Gemini
127
+ - **Main file**: `.gemini/GEMINI.md` — Core guidelines with import references
128
+ - **Rules**: `.gemini/rules/*.instructions.md` — Imported rule files
129
+ - **Frontmatter**: Completely stripped (Gemini doesn't use frontmatter)
130
+ - **Imports**: Main file includes `@./.gemini/rules/<filename>` references
131
+
132
+ ### Base Content
133
+
134
+ All configurations are adapted from official Cumulocity guidelines, customized for standalone Angular applications:
135
+
136
+ - **MAIN_INSTRUCTIONS.md** — Project overview tailored for Web SDK apps, TypeScript rules, Angular patterns, accessibility requirements, references to public [Cumulocity tutorial repository](https://github.com/Cumulocity-IoT/tutorial)
137
+ - **rules/frontend.instructions.md** — Angular/TypeScript UI development guidelines (no monorepo-specific references)
138
+ - **rules/e2e-tests.instructions.md** — Cypress end-to-end testing patterns (simplified for app development)
139
+ - **rules/unit-tests.instructions.md** — Jest unit testing conventions
140
+
141
+ These files are specifically designed for developers building custom Cumulocity applications with `ng add @c8y/websdk`, with all monorepo and internal tooling references removed. They are stored in `packages/websdk/ai-instructions/` and they are based on `.claude/` files but context of monorepo is removed.
142
+
143
+ ### File Updates
144
+
145
+ The schematic intelligently handles existing files:
146
+
147
+ - **Matching filenames**: Overwrites with latest guidelines (e.g., `CLAUDE.md`, `frontend.instructions.md`)
148
+ - **Custom files**: Preserves any files that don't match the standard template names
149
+ - **Directories**: Creates if missing; never deletes existing directories or unrecognized files
150
+
151
+ This approach allows you to maintain custom AI instructions alongside the official Cumulocity guidelines.
152
+
42
153
  ## Run development server & build
43
154
 
44
155
  Launch the development server:
@@ -0,0 +1,10 @@
1
+ import { SchematicContext, Tree } from '@angular-devkit/schematics';
2
+ declare const validAiTools: readonly ["claude", "github-copilot", "cursor", "jetbrains-ai", "windsurf", "gemini"];
3
+ export type AiTool = (typeof validAiTools)[number];
4
+ /**
5
+ * Parse the --ai-tools flag value
6
+ * Supports: --ai-tools=none or --ai-tools=claude,github-copilot,gemini
7
+ */
8
+ export declare function parseAiToolsFlag(aiToolsFlag: string, context: SchematicContext): AiTool[];
9
+ export declare function configureAiTools(selectedTools: AiTool[], tree: Tree, context: SchematicContext): Promise<void>;
10
+ export {};
@@ -0,0 +1,318 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseAiToolsFlag = parseAiToolsFlag;
4
+ exports.configureAiTools = configureAiTools;
5
+ const fs_extra_1 = require("fs-extra");
6
+ const path_1 = require("path");
7
+ const validAiTools = [
8
+ 'claude',
9
+ 'github-copilot',
10
+ 'cursor',
11
+ 'jetbrains-ai',
12
+ 'windsurf',
13
+ 'gemini'
14
+ ];
15
+ /**
16
+ * Parse the --ai-tools flag value
17
+ * Supports: --ai-tools=none or --ai-tools=claude,github-copilot,gemini
18
+ */
19
+ function parseAiToolsFlag(aiToolsFlag, context) {
20
+ const trimmed = aiToolsFlag.trim().toLowerCase();
21
+ // Handle --ai-tools=none
22
+ if (trimmed === 'none' || trimmed === '') {
23
+ context.logger.info('No AI tools will be configured (--ai-tools=none)');
24
+ return [];
25
+ }
26
+ const requestedTools = trimmed.split(',').map(t => t.trim());
27
+ const selectedTools = [];
28
+ const invalidTools = [];
29
+ for (const tool of requestedTools) {
30
+ if (validAiTools.includes(tool)) {
31
+ selectedTools.push(tool);
32
+ }
33
+ else if (tool) {
34
+ invalidTools.push(tool);
35
+ }
36
+ }
37
+ if (invalidTools.length > 0) {
38
+ context.logger.warn(`Invalid AI tools specified: ${invalidTools.join(', ')}. Valid options: ${validAiTools.join(', ')}`);
39
+ }
40
+ if (selectedTools.length > 0) {
41
+ context.logger.info(`Configuring AI tools: ${selectedTools.join(', ')}`);
42
+ }
43
+ return selectedTools;
44
+ }
45
+ async function configureAiTools(selectedTools, tree, context) {
46
+ if (selectedTools.length === 0) {
47
+ context.logger.info('Skipping AI tools configuration.');
48
+ return;
49
+ }
50
+ const templatesPath = (0, path_1.join)(__dirname, '../templates/ai-configs');
51
+ for (const tool of selectedTools) {
52
+ try {
53
+ if (tool === 'claude') {
54
+ await configureClaude(templatesPath, tree, context);
55
+ }
56
+ else if (tool === 'github-copilot') {
57
+ await configureGitHubCopilot(templatesPath, tree, context);
58
+ }
59
+ else if (tool === 'cursor') {
60
+ await configureCursor(templatesPath, tree, context);
61
+ }
62
+ else if (tool === 'jetbrains-ai') {
63
+ await configureJetBrainsAI(templatesPath, tree, context);
64
+ }
65
+ else if (tool === 'windsurf') {
66
+ await configureWindsurf(templatesPath, tree, context);
67
+ }
68
+ else if (tool === 'gemini') {
69
+ await configureGemini(templatesPath, tree, context);
70
+ }
71
+ }
72
+ catch (error) {
73
+ const errorMessage = error instanceof Error ? error.message : String(error);
74
+ context.logger.warn(`Failed to configure ${tool}: ${errorMessage}`);
75
+ }
76
+ }
77
+ }
78
+ async function configureClaude(templatesPath, tree, context) {
79
+ context.logger.info('Configuring Claude with Cumulocity Web SDK best practices...');
80
+ const claudePath = (0, path_1.join)(templatesPath, 'claude');
81
+ // Copy CLAUDE.md (overwrite if exists)
82
+ const claudeMdPath = '.claude/CLAUDE.md';
83
+ const claudeMdContent = await (0, fs_extra_1.readFile)((0, path_1.join)(claudePath, 'CLAUDE.md'), 'utf-8');
84
+ if (tree.exists(claudeMdPath)) {
85
+ tree.overwrite(claudeMdPath, claudeMdContent);
86
+ context.logger.info(' → Updated existing CLAUDE.md');
87
+ }
88
+ else {
89
+ tree.create(claudeMdPath, claudeMdContent);
90
+ context.logger.info(' → Created CLAUDE.md');
91
+ }
92
+ // Copy rules files (add/overwrite without clearing existing folder)
93
+ const rulesPath = (0, path_1.join)(claudePath, 'rules');
94
+ const rulesFiles = await (0, fs_extra_1.readdir)(rulesPath);
95
+ for (const file of rulesFiles) {
96
+ const rulePath = `.claude/rules/${file}`;
97
+ const content = await (0, fs_extra_1.readFile)((0, path_1.join)(rulesPath, file), 'utf-8');
98
+ if (tree.exists(rulePath)) {
99
+ tree.overwrite(rulePath, content);
100
+ context.logger.info(` → Updated ${file}`);
101
+ }
102
+ else {
103
+ tree.create(rulePath, content);
104
+ context.logger.info(` → Created ${file}`);
105
+ }
106
+ }
107
+ context.logger.info('✓ Claude configuration completed in .claude/');
108
+ }
109
+ async function configureGitHubCopilot(templatesPath, tree, context) {
110
+ context.logger.info('Configuring GitHub Copilot with Cumulocity Web SDK best practices...');
111
+ const githubPath = (0, path_1.join)(templatesPath, 'github');
112
+ // Copy copilot-instructions.md (overwrite if exists)
113
+ const copilotInstructionsPath = '.github/copilot-instructions.md';
114
+ const copilotInstructionsContent = await (0, fs_extra_1.readFile)((0, path_1.join)(githubPath, 'copilot-instructions.md'), 'utf-8');
115
+ if (tree.exists(copilotInstructionsPath)) {
116
+ tree.overwrite(copilotInstructionsPath, copilotInstructionsContent);
117
+ context.logger.info(' → Updated existing copilot-instructions.md');
118
+ }
119
+ else {
120
+ tree.create(copilotInstructionsPath, copilotInstructionsContent);
121
+ context.logger.info(' → Created copilot-instructions.md');
122
+ }
123
+ // Copy instructions files (add/overwrite without clearing existing folder)
124
+ const instructionsPath = (0, path_1.join)(githubPath, 'instructions');
125
+ const instructionsFiles = await (0, fs_extra_1.readdir)(instructionsPath);
126
+ for (const file of instructionsFiles) {
127
+ const instructionPath = `.github/instructions/${file}`;
128
+ const content = await (0, fs_extra_1.readFile)((0, path_1.join)(instructionsPath, file), 'utf-8');
129
+ if (tree.exists(instructionPath)) {
130
+ tree.overwrite(instructionPath, content);
131
+ context.logger.info(` → Updated ${file}`);
132
+ }
133
+ else {
134
+ tree.create(instructionPath, content);
135
+ context.logger.info(` → Created ${file}`);
136
+ }
137
+ }
138
+ context.logger.info('✓ GitHub Copilot configuration completed in .github/');
139
+ }
140
+ /**
141
+ * Transform frontmatter from Claude format to Cursor format
142
+ * Converts applyTo/paths to globs array
143
+ */
144
+ function transformFrontmatterToCursor(content) {
145
+ // More robust regex to handle different line endings and spacing
146
+ const frontmatterMatch = content.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n+([\s\S]*)$/);
147
+ if (!frontmatterMatch) {
148
+ return content;
149
+ }
150
+ const [, frontmatterContent, bodyContent] = frontmatterMatch;
151
+ const applyToMatch = frontmatterContent.match(/applyTo:\s*"([^"]+)"/);
152
+ // Extract description (handle both single and double quotes)
153
+ const descriptionMatch = frontmatterContent.match(/description:\s*["']([^"']+)["']/);
154
+ const description = descriptionMatch ? descriptionMatch[1] : '';
155
+ if (!applyToMatch) {
156
+ // No applyTo, use description for intelligent application
157
+ return `---\ndescription: "${description}"\nalwaysApply: false\n---\n\n${bodyContent}`;
158
+ }
159
+ const globs = applyToMatch[1].split(',').map(g => g.trim());
160
+ const globsYaml = globs.map(g => ` - "${g}"`).join('\n');
161
+ return `---\ndescription: "${description}"\nglobs:\n${globsYaml}\nalwaysApply: false\n---\n\n${bodyContent}`;
162
+ }
163
+ /**
164
+ * Transform frontmatter from Claude format to Windsurf format
165
+ * Converts applyTo/paths to trigger: glob + globs array
166
+ */
167
+ function transformFrontmatterToWindsurf(content) {
168
+ // More robust regex to handle different line endings
169
+ const frontmatterMatch = content.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n+([\s\S]*)$/);
170
+ if (!frontmatterMatch) {
171
+ return content;
172
+ }
173
+ const [, frontmatterContent, bodyContent] = frontmatterMatch;
174
+ const applyToMatch = frontmatterContent.match(/applyTo:\s*"([^"]+)"/);
175
+ if (!applyToMatch) {
176
+ // No applyTo, make it always on
177
+ return `---\ntrigger: always_on\n---\n\n${bodyContent}`;
178
+ }
179
+ const globs = applyToMatch[1].split(',').map(g => g.trim());
180
+ const globsYaml = globs.map(g => ` - "${g}"`).join('\n');
181
+ return `---\ntrigger: glob\nglobs:\n${globsYaml}\n---\n\n${bodyContent}`;
182
+ }
183
+ async function configureCursor(templatesPath, tree, context) {
184
+ context.logger.info('Configuring Cursor with Cumulocity Web SDK best practices...');
185
+ const cursorPath = (0, path_1.join)(templatesPath, 'cursor');
186
+ // Copy main file as .mdc (overwrite if exists)
187
+ const mainFilePath = '.cursor/rules/cursor.mdc';
188
+ const mainContent = await (0, fs_extra_1.readFile)((0, path_1.join)(cursorPath, 'cursor.mdc'), 'utf-8');
189
+ // Add Cursor-specific frontmatter
190
+ const contentWithFrontmatter = `---
191
+ description: "Cumulocity project-wide rules and workflows"
192
+ alwaysApply: true
193
+ ---
194
+
195
+ ${mainContent}`;
196
+ if (tree.exists(mainFilePath)) {
197
+ tree.overwrite(mainFilePath, contentWithFrontmatter);
198
+ context.logger.info(' → Updated existing cursor.mdc');
199
+ }
200
+ else {
201
+ tree.create(mainFilePath, contentWithFrontmatter);
202
+ context.logger.info(' → Created cursor.mdc');
203
+ }
204
+ // Copy rules files with transformed frontmatter
205
+ const rulesPath = (0, path_1.join)(cursorPath, 'rules');
206
+ const rulesFiles = await (0, fs_extra_1.readdir)(rulesPath);
207
+ for (const file of rulesFiles) {
208
+ const rulePath = `.cursor/rules/${file.replace('.md', '.mdc')}`;
209
+ const content = await (0, fs_extra_1.readFile)((0, path_1.join)(rulesPath, file), 'utf-8');
210
+ const transformedContent = transformFrontmatterToCursor(content);
211
+ if (tree.exists(rulePath)) {
212
+ tree.overwrite(rulePath, transformedContent);
213
+ context.logger.info(` → Updated ${file.replace('.md', '.mdc')}`);
214
+ }
215
+ else {
216
+ tree.create(rulePath, transformedContent);
217
+ context.logger.info(` → Created ${file.replace('.md', '.mdc')}`);
218
+ }
219
+ }
220
+ context.logger.info('✓ Cursor configuration completed in .cursor/rules/');
221
+ }
222
+ async function configureJetBrainsAI(templatesPath, tree, context) {
223
+ context.logger.info('Configuring JetBrains AI with Cumulocity Web SDK best practices...');
224
+ const jetbrainsPath = (0, path_1.join)(templatesPath, 'jetbrains');
225
+ // Read main content
226
+ const mainContent = await (0, fs_extra_1.readFile)((0, path_1.join)(jetbrainsPath, 'guidelines.md'), 'utf-8');
227
+ // Read and append all rules (already without frontmatter in template)
228
+ const rulesPath = (0, path_1.join)(jetbrainsPath, 'rules');
229
+ const rulesFiles = await (0, fs_extra_1.readdir)(rulesPath);
230
+ const ruleSections = [];
231
+ for (const file of rulesFiles) {
232
+ const content = await (0, fs_extra_1.readFile)((0, path_1.join)(rulesPath, file), 'utf-8');
233
+ // Content already has frontmatter stripped in the template
234
+ const sectionName = file.replace('.instructions.md', '').replace(/-/g, ' ');
235
+ ruleSections.push(`\n\n# ${sectionName.charAt(0).toUpperCase() + sectionName.slice(1)} Guidelines\n\n${content}`);
236
+ }
237
+ const fullContent = mainContent + ruleSections.join('');
238
+ const guidelinesPath = '.junie/guidelines.md';
239
+ if (tree.exists(guidelinesPath)) {
240
+ tree.overwrite(guidelinesPath, fullContent);
241
+ context.logger.info(' → Updated existing guidelines.md');
242
+ }
243
+ else {
244
+ tree.create(guidelinesPath, fullContent);
245
+ context.logger.info(' → Created guidelines.md');
246
+ }
247
+ context.logger.info('✓ JetBrains AI configuration completed in .junie/');
248
+ }
249
+ async function configureWindsurf(templatesPath, tree, context) {
250
+ context.logger.info('Configuring Windsurf with Cumulocity Web SDK best practices...');
251
+ const windsurfPath = (0, path_1.join)(templatesPath, 'windsurf');
252
+ // Copy main file with always_on trigger
253
+ const mainFilePath = '.windsurf/rules/guidelines.md';
254
+ const mainContent = await (0, fs_extra_1.readFile)((0, path_1.join)(windsurfPath, 'guidelines.md'), 'utf-8');
255
+ const contentWithFrontmatter = `---\ntrigger: always_on\n---\n\n${mainContent}`;
256
+ if (tree.exists(mainFilePath)) {
257
+ tree.overwrite(mainFilePath, contentWithFrontmatter);
258
+ context.logger.info(' → Updated existing guidelines.md');
259
+ }
260
+ else {
261
+ tree.create(mainFilePath, contentWithFrontmatter);
262
+ context.logger.info(' → Created guidelines.md');
263
+ }
264
+ // Copy rules files with transformed frontmatter
265
+ const rulesPath = (0, path_1.join)(windsurfPath, 'rules');
266
+ const rulesFiles = await (0, fs_extra_1.readdir)(rulesPath);
267
+ for (const file of rulesFiles) {
268
+ const rulePath = `.windsurf/rules/${file}`;
269
+ const content = await (0, fs_extra_1.readFile)((0, path_1.join)(rulesPath, file), 'utf-8');
270
+ const transformedContent = transformFrontmatterToWindsurf(content);
271
+ if (tree.exists(rulePath)) {
272
+ tree.overwrite(rulePath, transformedContent);
273
+ context.logger.info(` → Updated ${file}`);
274
+ }
275
+ else {
276
+ tree.create(rulePath, transformedContent);
277
+ context.logger.info(` → Created ${file}`);
278
+ }
279
+ }
280
+ context.logger.info('✓ Windsurf configuration completed in .windsurf/rules/');
281
+ }
282
+ async function configureGemini(templatesPath, tree, context) {
283
+ context.logger.info('Configuring Gemini with Cumulocity Web SDK best practices...');
284
+ const geminiPath = (0, path_1.join)(templatesPath, 'gemini');
285
+ // Read main content
286
+ const mainContent = await (0, fs_extra_1.readFile)((0, path_1.join)(geminiPath, 'GEMINI.md'), 'utf-8');
287
+ // Copy rules files first (already without frontmatter in template)
288
+ const rulesPath = (0, path_1.join)(geminiPath, 'rules');
289
+ const rulesFiles = await (0, fs_extra_1.readdir)(rulesPath);
290
+ const imports = [];
291
+ for (const file of rulesFiles) {
292
+ const content = await (0, fs_extra_1.readFile)((0, path_1.join)(rulesPath, file), 'utf-8');
293
+ // Content already has frontmatter stripped in the template
294
+ const rulePath = `.gemini/rules/${file}`;
295
+ if (tree.exists(rulePath)) {
296
+ tree.overwrite(rulePath, content);
297
+ context.logger.info(` → Updated ${file}`);
298
+ }
299
+ else {
300
+ tree.create(rulePath, content);
301
+ context.logger.info(` → Created ${file}`);
302
+ }
303
+ imports.push(`@./.gemini/rules/${file}`);
304
+ }
305
+ // Create main file with imports
306
+ const fullContent = `${mainContent}\n\n## Additional Guidelines\n\n${imports.join('\n\n')}`;
307
+ const geminiFilePath = '.gemini/GEMINI.md';
308
+ if (tree.exists(geminiFilePath)) {
309
+ tree.overwrite(geminiFilePath, fullContent);
310
+ context.logger.info(' → Updated existing GEMINI.md');
311
+ }
312
+ else {
313
+ tree.create(geminiFilePath, fullContent);
314
+ context.logger.info(' → Created GEMINI.md');
315
+ }
316
+ context.logger.info('✓ Gemini configuration completed with imports in .gemini/GEMINI.md');
317
+ }
318
+ //# sourceMappingURL=ai-tools-configure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-tools-configure.js","sourceRoot":"","sources":["../../ng-add/ai-tools-configure.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ const npmConfig = require("@npmcli/config");
12
12
  const definitions_1 = require("@npmcli/config/lib/definitions");
13
13
  const prompts_1 = require("@inquirer/prompts");
14
14
  const semver_1 = require("semver");
15
+ const ai_tools_configure_1 = require("./ai-tools-configure");
15
16
  /**
16
17
  * This function adds a rule to the tree using the provided commandline options, predefined
17
18
  * application options and module definitions.
@@ -25,7 +26,24 @@ function ngAdd(options) {
25
26
  return async (tree, context) => {
26
27
  const argv = await yargs((0, helpers_1.hideBin)(process.argv)).argv;
27
28
  const registry = argv.registry;
29
+ const skipConfirmation = argv['skip-confirmation'];
30
+ const aiToolsFlag = options.aiTools || argv['ai-tools'];
28
31
  const { appName, selectedVersion } = await getApplicationNameAndVersion(options.application, registry);
32
+ // Determine AI tools configuration based on flags
33
+ let selectedAiTools = [];
34
+ if (aiToolsFlag !== undefined) {
35
+ // Explicit --ai-tools flag provided
36
+ selectedAiTools = (0, ai_tools_configure_1.parseAiToolsFlag)(aiToolsFlag, context);
37
+ }
38
+ else if (skipConfirmation) {
39
+ // --skip-confirmation without --ai-tools: skip AI tools
40
+ context.logger.info('Skipping AI tools configuration (--skip-confirmation provided)');
41
+ }
42
+ else {
43
+ // No flags: interactive mode
44
+ selectedAiTools = await selectAiToolsConfiguration();
45
+ }
46
+ await (0, ai_tools_configure_1.configureAiTools)(selectedAiTools, tree, context);
29
47
  triggerDevkitNgAdd(appName, selectedVersion, tree, context, options);
30
48
  };
31
49
  }
@@ -182,4 +200,46 @@ async function getAllRelevantVersions(appName, registry) {
182
200
  ...versionList.map(version => ({ name: version, value: version }))
183
201
  ];
184
202
  }
203
+ async function selectAiToolsConfiguration() {
204
+ const choices = [
205
+ {
206
+ name: 'None',
207
+ value: 'none'
208
+ },
209
+ {
210
+ name: 'Claude [ https://docs.anthropic.com/en/docs/claude-code/memory ]',
211
+ value: 'claude'
212
+ },
213
+ {
214
+ name: 'Cursor [ https://cursor.com/docs/rules ]',
215
+ value: 'cursor'
216
+ },
217
+ {
218
+ name: 'Gemini [ https://geminicli.com/docs/cli/gemini-md ]',
219
+ value: 'gemini'
220
+ },
221
+ {
222
+ name: 'GitHub Copilot [ https://code.visualstudio.com/docs/copilot/copilot-customization ]',
223
+ value: 'github-copilot'
224
+ },
225
+ {
226
+ name: 'JetBrains AI [ https://www.jetbrains.com/help/junie/customize-guidelines.html ]',
227
+ value: 'jetbrains-ai'
228
+ },
229
+ {
230
+ name: 'Windsurf [ https://docs.windsurf.com/windsurf/cascade/memories ]',
231
+ value: 'windsurf'
232
+ }
233
+ ];
234
+ let selectedTools = await (0, prompts_1.checkbox)({
235
+ message: 'Which AI tools do you want to configure with Cumulocity Web SDK best practices?',
236
+ choices
237
+ });
238
+ if (!selectedTools || selectedTools.length === 0) {
239
+ return [];
240
+ }
241
+ // Filter out 'none'
242
+ selectedTools = selectedTools.filter((tool) => tool !== 'none');
243
+ return selectedTools;
244
+ }
185
245
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../ng-add/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../ng-add/index.ts"],"names":[],"mappings":";;AAyBA,sBA+BC;AAvDD,4DAA4F;AAC5F,2CAAwC;AACxC,+BAA+B;AAC/B,uCAAoC;AACpC,2EAIkD;AAClD,+BAA4B;AAE5B,+CAA+C;AAC/C,4CAA4C;AAC5C,gEAAkF;AAClF,+CAA4D;AAC5D,mCAAmE;AACnE,6DAAkF;AAElF;;;;;GAKG;AACH,SAAgB,KAAK,CAAC,OAA+B;IACnD;;OAEG;IACH,OAAO,KAAK,EAAE,IAAU,EAAE,OAAyB,EAAE,EAAE;QACrD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAA,iBAAO,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA8B,CAAC;QACrD,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAwB,CAAC;QAC1E,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAK,IAAI,CAAC,UAAU,CAAwB,CAAC;QAEhF,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,4BAA4B,CACrE,OAAO,CAAC,WAAW,EACnB,QAAQ,CACT,CAAC;QAEF,kDAAkD;QAClD,IAAI,eAAe,GAAa,EAAE,CAAC;QACnC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,oCAAoC;YACpC,eAAe,GAAG,IAAA,qCAAgB,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC3D,CAAC;aAAM,IAAI,gBAAgB,EAAE,CAAC;YAC5B,wDAAwD;YACxD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QACxF,CAAC;aAAM,CAAC;YACN,6BAA6B;YAC7B,eAAe,GAAG,MAAM,0BAA0B,EAAE,CAAC;QACvD,CAAC;QACD,MAAM,IAAA,qCAAgB,EAAC,eAAe,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAEvD,kBAAkB,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,4BAA4B,CAAC,aAAa,EAAE,QAA6B;IACtF,aAAa;IACb,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,MAAM,2BAA2B,EAAE,CAAC;QACpD,MAAM,aAAa,GAAG,MAAM,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACtE,MAAM,eAAe,GAAG,MAAM,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAC/D,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IACtC,CAAC;IAED,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAE/C,0DAA0D;IAC1D,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC;QAC9C,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,EAAE,eAAe,EAAE,CAAC;IACrD,CAAC;IAED,uBAAuB;IACvB,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,aAAa,CAAC;QAC9B,MAAM,aAAa,GAAG,MAAM,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACtE,MAAM,eAAe,GAAG,MAAM,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAC/D,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IACtC,CAAC;IAED,kBAAkB;IAClB,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,aAAa,CAAC;QAC9B,MAAM,aAAa,GAAG,MAAM,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACtE,MAAM,eAAe,GAAG,MAAM,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAC/D,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IACtC,CAAC;IAED,2BAA2B;IAC3B,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC;QAC5C,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IACtC,CAAC;IAED,sCAAsC;IACtC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,kBAAkB,CACzB,OAAe,EACf,eAAuB,EACvB,IAAU,EACV,OAAyB,EACzB,OAA+B;IAE/B,MAAM,YAAY,GAAqB;QACrC;YACE,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,eAAe;YACxB,IAAI,EAAE,iCAAkB,CAAC,GAAG;SAC7B;QACD;YACE,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,eAAe;YACxB,IAAI,EAAE,iCAAkB,CAAC,GAAG;SAC7B;KACF,CAAC;IACF,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,IAAA,uCAAwB,EAAC,IAAW,EAAE,UAAU,CAAC,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,8BAAsB,EAAE,CAAC,CAAC;IAC7D,OAAO,CAAC,OAAO,CACb,IAAI,wBAAgB,CAAC,aAAa,EAAE,QAAQ,EAAE;QAC5C,UAAU,EAAE,IAAI;QAChB,GAAG,OAAO;QACV,WAAW,EAAE,OAAO;KACrB,CAAC,EACF,CAAC,MAAM,CAAC,CACT,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,2BAA2B;IACxC,MAAM,aAAa,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,CAAC,MAAM,IAAA,mBAAQ,EAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9D,KAAK,EAAE,OAAO;KACf,CAAC,CAAC,CAAC;IAEJ,MAAM,eAAe,GAAG,MAAM,IAAA,gBAAM,EAAC;QACnC,OAAO,EAAE,kDAAkD;QAC3D,OAAO;KACR,CAAC,CAAC;IACH,OAAO,QAAQ,eAAe,EAAE,CAAC;AACnC,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,OAA0C;IACzE,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,MAAM,MAAM,GAAG,MAAM,IAAA,gBAAM,EAAC;QAC1B,OAAO,EAAE,kDAAkD;QAC3D,OAAO;KACR,CAAC,CAAC;IAEH,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,MAAM,GAAG,MAAM,0BAA0B,EAAE,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,MAAM,CAAC;IAClB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,0BAA0B;IACvC,MAAM,MAAM,GAAG,MAAM,IAAA,eAAK,EAAC;QACzB,OAAO,EAAE,6BAA6B;KACvC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,OAAe,EACf,QAA6B;IAE7B,MAAM,YAAY,GAAG,CAAC,CAAC;IACvB,IAAI,OAAO,GAAqB,EAAE,QAAQ,EAAE,CAAC;IAE7C,2FAA2F;IAC3F,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,WAAW,EAAX,yBAAW,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAV,wBAAU,EAAE,OAAO,EAAP,qBAAO,EAAE,CAAC,CAAC;QAChF,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,GAAG;YACR,yBAAyB;YACzB,GAAG,MAAM,CAAC,IAAI;YACd,wEAAwE;YACxE,IAAI,EAAE,OAAO;SACd,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAA2B,CAAC;IAEjE,8EAA8E;IAC9E,MAAM,cAAc,GAAoC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAC1F,CAAC,GAAG,EAAE,YAAY,EAAE,EAAE;QACpB,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,YAAY,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAClB,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACpB,CAAC;QACD,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,CACH,CAAC;IAEF,0DAA0D;IAC1D,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,mDAAmD;YACnD,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,MAAM,qCAAqC,GAAG,IAAA,aAAU,EAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAEhG,MAAM,oBAAoB,GAAG,qCAAqC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;QAC/E,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO;YACL,IAAI,EAAE,GAAG,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YACvC,KAAK,EAAE,OAAO;SACf,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,yBAAyB,GAAG,qCAAqC,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,eAAe,GAAG,YAAY,GAAG,oBAAoB,CAAC,MAAM,CAAC;IAEnE,gFAAgF;IAChF,IAAI,eAAe,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAmC,CAAC;IAE9D,gEAAgE;IAChE,yDAAyD;IACzD,sEAAsE;IACtE,IAAI,WAAW,GAAG,IAAA,aAAU,EAC1B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAC1B,OAAO,CAAC,EAAE,CACR,CAAC,qCAAqC,CAAC,QAAQ,CAAC,OAAO,CAAC;QACxD,IAAA,WAAe,EAAC,OAAO,EAAE,yBAAyB,CAAC,CACtD,CACF,CAAC,OAAO,EAAE,CAAC;IAEZ,mEAAmE;IACnE,oDAAoD;IACpD,IAAI,WAAW,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;QACzC,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,WAAW,GAAG,CAAC,GAAG,WAAW,EAAE,OAAO,CAAC,CAAC;IACxC,OAAO;QACL,GAAG,oBAAoB;QACvB,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;KACnE,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,0BAA0B;IACvC,MAAM,OAAO,GAA+C;QAC1D;YACE,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,MAAM;SACd;QACD;YACE,IAAI,EAAE,qFAAqF;YAC3F,KAAK,EAAE,QAAQ;SAChB;QACD;YACE,IAAI,EAAE,qFAAqF;YAC3F,KAAK,EAAE,QAAQ;SAChB;QACD;YACE,IAAI,EAAE,qFAAqF;YAC3F,KAAK,EAAE,QAAQ;SAChB;QACD;YACE,IAAI,EAAE,qFAAqF;YAC3F,KAAK,EAAE,gBAAgB;SACxB;QACD;YACE,IAAI,EAAE,qFAAqF;YAC3F,KAAK,EAAE,cAAc;SACtB;QACD;YACE,IAAI,EAAE,qFAAqF;YAC3F,KAAK,EAAE,UAAU;SAClB;KACF,CAAC;IAEF,IAAI,aAAa,GAAG,MAAM,IAAA,kBAAQ,EAAC;QACjC,OAAO,EAAE,iFAAiF;QAC1F,OAAO;KACR,CAAC,CAAC;IACH,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,oBAAoB;IACpB,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAExE,OAAO,aAAyB,CAAC;AACnC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export interface CumulocityNgAddOptions {
2
2
  application: string;
3
3
  project: string;
4
+ aiTools?: string;
4
5
  }