create-manifest 1.1.8 → 1.1.10

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.
package/README.md CHANGED
@@ -1,6 +1,21 @@
1
1
  # create-manifest
2
2
 
3
- The `create-manifest` command adds [Manifest](https://manifest.build) to your project.
3
+ The `create manifest` create a new project with [Manifest](https://manifest.build).
4
+
5
+ ```bash
6
+ yarn create manifest my-project --cursor
7
+ ```
8
+
9
+ This will create a new folder named my-project, install Manifest, and configure it for Cursor.
10
+
11
+ You can replace `--cursor` with:
12
+
13
+ - `--copilot` for GitHub Copilot
14
+ - `--windsurf` for Windsurf
15
+ - or remove it entirely if you're not using an AI coding tool
16
+
17
+ You can also specify your project name directly (my-project in the example).
18
+ If omitted, the CLI will prompt you for it during setup.
4
19
 
5
20
  ```bash
6
21
  npx create-manifest@latest
@@ -7,6 +7,8 @@ export default class CreateManifest extends Command {
7
7
  static flags: {
8
8
  backendFile: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
9
  cursor: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
+ copilot: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
+ windsurf: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
12
  };
11
13
  /**
12
14
  * The run method is called when the command is run.
@@ -30,7 +30,9 @@ export default class CreateManifest extends Command {
30
30
  backendFile: Flags.string({
31
31
  summary: 'The remote file to use as a template for the backend.yml file. If not provided, the default file will be used.'
32
32
  }),
33
- cursor: Flags.boolean()
33
+ cursor: Flags.boolean(),
34
+ copilot: Flags.boolean(),
35
+ windsurf: Flags.boolean()
34
36
  };
35
37
  /**
36
38
  * The run method is called when the command is run.
@@ -186,7 +188,7 @@ export default class CreateManifest extends Command {
186
188
  fs.writeFileSync(readmeFilePath, fs.readFileSync(path.join(assetFolderPath, 'README.md'), 'utf8'));
187
189
  }
188
190
  // * 10. Add optional files based on flags
189
- // Add rules for Cursor IDE.
191
+ // Add rules for IDEs.
190
192
  if (flags.cursor) {
191
193
  spinner.start('Add rules for Cursor IDE...');
192
194
  const cursorFolderPath = path.join(projectFolderPath, '.cursor', 'rules');
@@ -201,13 +203,55 @@ export default class CreateManifest extends Command {
201
203
  cursorFileContent = await response.text();
202
204
  }
203
205
  catch (error) {
204
- console.error('Error fetching YAML:', error);
206
+ console.error('Error fetching file:', error);
205
207
  throw error;
206
208
  }
207
209
  // Write the content to the new file
208
210
  fs.writeFileSync(path.join(cursorFolderPath, cursorFileName), cursorFileContent);
209
211
  spinner.succeed();
210
212
  }
213
+ if (flags.copilot) {
214
+ spinner.start('Add rules for Copilot IDE...');
215
+ const copilotFolderPath = path.join(projectFolderPath, '.github');
216
+ const copilotFileName = 'copilot-instructions.md';
217
+ fs.mkdirSync(copilotFolderPath, { recursive: true });
218
+ let copilotFileContent;
219
+ try {
220
+ const response = await fetch('https://raw.githubusercontent.com/mnfst/rules/refs/heads/main/copilot/copilot-instructions.md');
221
+ if (!response.ok) {
222
+ throw new Error(`HTTP error! status: ${response.status}`);
223
+ }
224
+ copilotFileContent = await response.text();
225
+ }
226
+ catch (error) {
227
+ console.error('Error fetching file:', error);
228
+ throw error;
229
+ }
230
+ // Write the content to the new file
231
+ fs.writeFileSync(path.join(copilotFolderPath, copilotFileName), copilotFileContent);
232
+ spinner.succeed();
233
+ }
234
+ if (flags.windsurf) {
235
+ spinner.start('Add rules for WindSurf IDE...');
236
+ const windsurfFolderPath = path.join(projectFolderPath, '.windsurf', 'rules');
237
+ const windsurfFileName = 'manifest.md';
238
+ fs.mkdirSync(windsurfFolderPath, { recursive: true });
239
+ let windsurfFileContent;
240
+ try {
241
+ const response = await fetch('https://raw.githubusercontent.com/mnfst/rules/refs/heads/main/windsurf/manifest.md');
242
+ if (!response.ok) {
243
+ throw new Error(`HTTP error! status: ${response.status}`);
244
+ }
245
+ windsurfFileContent = await response.text();
246
+ }
247
+ catch (error) {
248
+ console.error('Error fetching file:', error);
249
+ throw error;
250
+ }
251
+ // Write the content to the new file
252
+ fs.writeFileSync(path.join(windsurfFolderPath, windsurfFileName), windsurfFileContent);
253
+ spinner.succeed();
254
+ }
211
255
  // * 9. Install the new packages.
212
256
  spinner.start('Install dependencies...');
213
257
  // Install deps.
@@ -21,6 +21,16 @@
21
21
  "name": "cursor",
22
22
  "allowNo": false,
23
23
  "type": "boolean"
24
+ },
25
+ "copilot": {
26
+ "name": "copilot",
27
+ "allowNo": false,
28
+ "type": "boolean"
29
+ },
30
+ "windsurf": {
31
+ "name": "windsurf",
32
+ "allowNo": false,
33
+ "type": "boolean"
24
34
  }
25
35
  },
26
36
  "hasDynamicHelp": false,
@@ -33,5 +43,5 @@
33
43
  "enableJsonFlag": false
34
44
  }
35
45
  },
36
- "version": "1.1.8"
46
+ "version": "1.1.10"
37
47
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-manifest",
3
- "version": "1.1.8",
3
+ "version": "1.1.10",
4
4
  "author": "Manifest",
5
5
  "description": "Create a new Manifest backend",
6
6
  "homepage": "https://manifest.build",
@@ -74,6 +74,19 @@
74
74
  "bugs": "https://github.com/mnfst/manifest/issues",
75
75
  "keywords": [
76
76
  "manifest",
77
+ "cursor",
78
+ "AI-powered coding",
79
+ "backend for LLMs",
80
+ "AI code tool",
81
+ "backend for vibe coding",
82
+ "backend for modern workflows",
83
+ "vibe coding",
84
+ "vibe coding backend",
85
+ "vibe coding api",
86
+ "AI assisted coding",
87
+ "AI coding",
88
+ "windsurf",
89
+ "copilot",
77
90
  "micro-backend",
78
91
  "backend",
79
92
  "headless",