@teambit/host-initializer 0.0.664 → 0.0.665

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.
@@ -0,0 +1,304 @@
1
+ # Bit Workspace — AI Agent Instructions
2
+
3
+ This file teaches AI agents how to work correctly inside a **Bit workspace**. Read it fully before touching any code.
4
+
5
+ ---
6
+
7
+ ## What is Bit?
8
+
9
+ Bit is a composable development platform where every piece of functionality is an independent, versioned, composed **component**. Components live in **scopes** (remote registries of business domains) and are managed through the `bit` CLI.
10
+
11
+ ### Component Types
12
+
13
+ Not all components are UI widgets. In Bit, a "component" can be any of these:
14
+
15
+ | Type | What it is | Example |
16
+ | -------------------- | ----------------------------------------------------------------------------------------------------------- | ------------------------------------ |
17
+ | **Entity** | Plain domain object — defines the shape and behavior of a domain model. No React, no side effects. | `entities/user`, `entities/order` |
18
+ | **Hook** | Encapsulates data fetching, mutations, or stateful logic for a domain. Consumed by UI components and pages. | `hooks/use-user`, `hooks/use-orders` |
19
+ | **UI component** | Reusable visual element, typically stateless or lightly stateful. | `ui/button`, `ui/card` |
20
+ | **Feature / Aspect** | Self-contained domain slice — owns its entities, hooks, pages, and backend logic. | `customers`, `billing` |
21
+ | **App** | A standard deployable application — a React frontend, Node.js server, etc. | `my-react-app`, `my-node-server` |
22
+
23
+ Understanding which type you're working with matters because it shapes the dependency chain. A typical app looks like this:
24
+
25
+ ```
26
+ App → Page → Hook (optional) → Entity (optional)
27
+ ↘ UI component
28
+ ```
29
+
30
+ Entities and hooks sit at the bottom of the chain — they have no dependents of their own, so changes to them propagate upward. Everything above that consumes them must be local for your changes to take effect.
31
+
32
+ The workspace is defined by `workspace.jsonc`. The owner and default scope are set there — always read them first.
33
+
34
+ ---
35
+
36
+ ## Project Orientation
37
+
38
+ ```bash
39
+ cat workspace.jsonc # find owner, scope, envs
40
+ bit list # see what's already local
41
+ bit status # check for pending changes
42
+ bit templates # see what generators are available
43
+ ```
44
+
45
+ ---
46
+
47
+ ## Understanding Component APIs
48
+
49
+ When you need to understand how to **use** a component (its props, function signatures, return types), prefer structured API data over reading source files:
50
+
51
+ - **Local workspace components:** run `bit schema <component-id>` — returns exported types, function signatures, and class methods.
52
+ - **Remote components:** run `bit show <owner>.<scope>/<name>` to inspect metadata and dependencies.
53
+
54
+ For understanding implementation details (how something works internally), read the source directly.
55
+
56
+ ---
57
+
58
+ ## Common Commands
59
+
60
+ ```bash
61
+ bit status # workspace health + pending changes
62
+ bit start # dev server (default port 3000)
63
+ bit run [app_name] # run the app
64
+ bit list # all locally tracked components (do not pass args)
65
+ bit search <query> # search components locally and on remote scopes
66
+ bit show <owner>.<scope>/<name> # inspect a specific component
67
+ bit schema <component-id> # structured API of a local component
68
+ bit import "<owner>.<scope>/**" # import all components from a remote scope
69
+ bit templates # list available generator templates
70
+ bit create <template> <name> # scaffold a new component
71
+ bit install [pkg1] [pkg2] ... # install package dependencies
72
+ bit compile # manual compile (usually auto — use for troubleshooting)
73
+ bit test # run tests
74
+ bit lint # run linter
75
+ bit check-types # TypeScript type checker
76
+ ```
77
+
78
+ > **Always use `bit install`** to install packages. Never use `npm install`, `yarn`, or `pnpm` directly — unless the workspace is configured with `externalPackageManager` mode in `workspace.jsonc`, in which case use your configured package manager.
79
+ >
80
+ > **Use Bit for type checking and testing.** Never use `tsc` or `npx tsc` directly. Scope to specific components when useful:
81
+ >
82
+ > ```bash
83
+ > bit check-types "[component-id1, component-id2]"
84
+ > bit test "[component-id1, component-id2]"
85
+ > ```
86
+
87
+ ---
88
+
89
+ ## Discovering Apps
90
+
91
+ ```bash
92
+ bit app list
93
+ ```
94
+
95
+ Use `bit import` to fetch remote apps and run them locally.
96
+
97
+ ---
98
+
99
+ ## The Golden Rule: One Component at a Time
100
+
101
+ Never scaffold multiple components upfront. Bit development is an **iterative loop**:
102
+
103
+ ```
104
+ render → identify gap → create ONE component → render again
105
+ ```
106
+
107
+ ### Step-by-step
108
+
109
+ 1. **Look before you create.** Search the workspace and remote scopes first:
110
+
111
+ ```bash
112
+ bit search <keyword>
113
+ bit show <owner>.<scope>/<name>
114
+ ```
115
+
116
+ A component may already exist locally or remotely. Don't duplicate.
117
+
118
+ 2. **Identify the entry point.** Depending on what you're building, the entry point could be an app or a feature. List what exists in the scope before creating anything new.
119
+
120
+ 3. **Create one component.** Scaffold it, wire it in, verify it compiles and renders.
121
+
122
+ 4. **Validate before moving on:**
123
+
124
+ ```bash
125
+ bit status
126
+ bit check-types
127
+ bit test
128
+ ```
129
+
130
+ 5. **Identify the next gap.** Only then decide what the next component should be.
131
+
132
+ 6. **Repeat.** Never pre-plan a list of components and create them all at once.
133
+
134
+ #### Example
135
+
136
+ Create a UI component:
137
+
138
+ ```bash
139
+ bit create react pages/login --scope acme.people
140
+ ```
141
+
142
+ Create a data entity:
143
+
144
+ ```bash
145
+ bit create entity entities/user --scope acme.people
146
+ ```
147
+
148
+ ---
149
+
150
+ ## Importing Components for Modification
151
+
152
+ Bit resolves **local workspace components** over their installed package versions. If you want to modify a component, it must be imported into the workspace — otherwise the app will use the published version and ignore your changes.
153
+
154
+ ### The full dependency chain must be local
155
+
156
+ When modifying any component, import every component in the chain from the top down to your target:
157
+
158
+ ```
159
+ App → Feature/Aspect → Page → UI component
160
+ ```
161
+
162
+ You don't always need the full chain — only the layers in the dependency path of your change. But every layer between the entry point and your target must be local. If any layer in between is still installed as a package (not local), the app will ignore your changes to the layers below it.
163
+
164
+ **Examples:**
165
+
166
+ - Changing a UI component used by a feature page → import the feature, the page, and the UI component.
167
+ - Changing a feature's backend logic → import the app and the feature/aspect.
168
+
169
+ ### Finding the component ID
170
+
171
+ ```bash
172
+ cat node_modules/@<org>/<package-name>/package.json | grep -A3 '"componentId"'
173
+ # "scope": "myorg.myfeature"
174
+ # "name": "pages/my-page"
175
+ # → component ID: myorg.myfeature/pages/my-page
176
+ ```
177
+
178
+ ### Importing
179
+
180
+ ```bash
181
+ bit import <scope>/<name>
182
+ # e.g.
183
+ bit import myorg.myfeature/pages/my-page myorg.myfeature/pages/lobby-page
184
+ ```
185
+
186
+ Imported components land at `<scope-short-name>/<name>/` in the workspace.
187
+
188
+ #### Importing whole scopes
189
+
190
+ ```bash
191
+ bit import "<owner>.<scope>/**"
192
+ ```
193
+
194
+ ---
195
+
196
+ ## Saving and Publishing Changes
197
+
198
+ **Never push directly to the main lane.** Always create a lane and submit a change request.
199
+
200
+ Git does not manage component versions in a Bit workspace — use Bit for version control of components.
201
+
202
+ ```bash
203
+ bit lane create <your-lane-name> # create a new lane
204
+ bit status # confirm no pending issues
205
+ bit snap --message "describe change" # persist component versions
206
+ bit export # push lane to remote
207
+ ```
208
+
209
+ > Always run `bit lane create` first. If you're already on a non-main lane, continue using it — don't create a new one.
210
+
211
+ ---
212
+
213
+ ## Component Structure
214
+
215
+ Each component directory follows this convention:
216
+
217
+ | File | Purpose |
218
+ | ------------------------ | ------------------------------------ |
219
+ | `<name>.tsx` | Main implementation |
220
+ | `index.ts` | Public barrel export |
221
+ | `<name>.spec.tsx` | Tests |
222
+ | `<name>.composition.tsx` | Live previews (shown in `bit start`) |
223
+ | `<name>.docs.mdx` | Documentation |
224
+ | `<name>.mock.ts` | Mock data / fixtures |
225
+ | `*-type.ts` | Standalone type definitions |
226
+
227
+ > Add JSDocs to exported APIs, include two to three usage examples in the `.docs.mdx`, and two to three compositions for the live preview.
228
+
229
+ ---
230
+
231
+ ## Import Path Convention
232
+
233
+ Components import each other using Bit's package notation:
234
+
235
+ ```ts
236
+ import { Something } from '@<org>/<scope>.<namespace>.<name>';
237
+ ```
238
+
239
+ Never use relative paths across component boundaries. Always use the package notation.
240
+
241
+ ---
242
+
243
+ ## Environment Setup
244
+
245
+ Generator environments (React, Vue, Node, Angular, etc.) are configured in `workspace.jsonc`. Some may be commented out. Enable the relevant environment before creating components for a specific framework.
246
+
247
+ ---
248
+
249
+ ## Key Files
250
+
251
+ | File | Purpose |
252
+ | ----------------- | ------------------------------------------------------------------- |
253
+ | `workspace.jsonc` | Workspace config — scopes, envs, component patterns |
254
+ | `.bitmap` | Auto-generated — tracks component locations. **Must be committed.** |
255
+ | `package.json` | Usually `"type": "module"` for ES Modules |
256
+
257
+ ---
258
+
259
+ ## Runtime Code Crossing Environment Boundaries
260
+
261
+ Importing frontend modules into Node.js runtime files or Node.js modules into browser runtime files causes app initialization failures. This typically happens when `index.ts` or runtime files import/export cross-environment modules by value instead of by type.
262
+
263
+ **Rules for aspect `index.ts` files:**
264
+
265
+ - The Aspect manifest (from `*.aspect.ts`) is the **only** allowed value export. Everything else must use `export type`.
266
+ - Runtime modules (`*.node.runtime.ts`, `*.browser.runtime.ts`) must **always** be exported as types.
267
+
268
+ ```ts
269
+ // ✅ Correct
270
+ export type { MyBrowser } from './my.browser.runtime.js';
271
+ export type { MyNode } from './my.node.runtime.js';
272
+ export type { User } from './user.js';
273
+ export default MyAspect;
274
+ export { MyAspect };
275
+
276
+ // ❌ Wrong — pulls frontend/backend code into the wrong runtime
277
+ export { MyBrowser } from './my.browser.runtime.js';
278
+ export { User } from './user.js';
279
+ ```
280
+
281
+ **Rules for `*.node.runtime.ts` files:**
282
+
283
+ - Must not import frontend modules (React components, SCSS, browser-only libraries) by value. Use `import type` if only the type is needed.
284
+
285
+ **Rules for `*.browser.runtime.tsx` files:**
286
+
287
+ - Must not import Node.js modules (`fs`, `path`, server-only libraries) by value. Use `import type` if only the type is needed.
288
+
289
+ ---
290
+
291
+ ## Common Mistakes to Avoid
292
+
293
+ | Mistake | Correct approach |
294
+ | ---------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
295
+ | Creating multiple components upfront | Create one, validate, then decide what's next |
296
+ | Modifying an installed (node_modules) component | Import it with `bit import` first |
297
+ | Importing only the target component but not its dependents | Import the full chain top-down: app → feature → page → component |
298
+ | Treating all components as UI widgets | Understand the type first — app, feature/aspect, hook, entity, or UI component — it determines the chain |
299
+ | Pushing to the main lane | Always create a lane, snap, then export |
300
+ | Using git to version components | Bit manages component versions — use `bit snap` / `bit export` |
301
+ | Guessing a component ID | Check `package.json` under `componentId` or use `bit list` |
302
+ | Creating a component that already exists | Always run `bit search` first |
303
+ | Using `npm install`, `yarn`, or `pnpm` | Use `bit install` |
304
+ | Using `tsc` or `npx tsc` to check types | Use `bit check-types` or `bit test` |
@@ -0,0 +1,304 @@
1
+ # Bit Workspace — AI Agent Instructions
2
+
3
+ This file teaches AI agents how to work correctly inside a **Bit workspace**. Read it fully before touching any code.
4
+
5
+ ---
6
+
7
+ ## What is Bit?
8
+
9
+ Bit is a composable development platform where every piece of functionality is an independent, versioned, composed **component**. Components live in **scopes** (remote registries of business domains) and are managed through the `bit` CLI.
10
+
11
+ ### Component Types
12
+
13
+ Not all components are UI widgets. In Bit, a "component" can be any of these:
14
+
15
+ | Type | What it is | Example |
16
+ | -------------------- | ----------------------------------------------------------------------------------------------------------- | ------------------------------------ |
17
+ | **Entity** | Plain domain object — defines the shape and behavior of a domain model. No React, no side effects. | `entities/user`, `entities/order` |
18
+ | **Hook** | Encapsulates data fetching, mutations, or stateful logic for a domain. Consumed by UI components and pages. | `hooks/use-user`, `hooks/use-orders` |
19
+ | **UI component** | Reusable visual element, typically stateless or lightly stateful. | `ui/button`, `ui/card` |
20
+ | **Feature / Aspect** | Self-contained domain slice — owns its entities, hooks, pages, and backend logic. | `customers`, `billing` |
21
+ | **App** | A standard deployable application — a React frontend, Node.js server, etc. | `my-react-app`, `my-node-server` |
22
+
23
+ Understanding which type you're working with matters because it shapes the dependency chain. A typical app looks like this:
24
+
25
+ ```
26
+ App → Page → Hook (optional) → Entity (optional)
27
+ ↘ UI component
28
+ ```
29
+
30
+ Entities and hooks sit at the bottom of the chain — they have no dependents of their own, so changes to them propagate upward. Everything above that consumes them must be local for your changes to take effect.
31
+
32
+ The workspace is defined by `workspace.jsonc`. The owner and default scope are set there — always read them first.
33
+
34
+ ---
35
+
36
+ ## Project Orientation
37
+
38
+ ```bash
39
+ cat workspace.jsonc # find owner, scope, envs
40
+ bit list # see what's already local
41
+ bit status # check for pending changes
42
+ bit templates # see what generators are available
43
+ ```
44
+
45
+ ---
46
+
47
+ ## Understanding Component APIs
48
+
49
+ When you need to understand how to **use** a component (its props, function signatures, return types), prefer structured API data over reading source files:
50
+
51
+ - **Local workspace components:** run `bit schema <component-id>` — returns exported types, function signatures, and class methods.
52
+ - **Remote components:** run `bit show <owner>.<scope>/<name>` to inspect metadata and dependencies.
53
+
54
+ For understanding implementation details (how something works internally), read the source directly.
55
+
56
+ ---
57
+
58
+ ## Common Commands
59
+
60
+ ```bash
61
+ bit status # workspace health + pending changes
62
+ bit start # dev server (default port 3000)
63
+ bit run [app_name] # run the app
64
+ bit list # all locally tracked components (do not pass args)
65
+ bit search <query> # search components locally and on remote scopes
66
+ bit show <owner>.<scope>/<name> # inspect a specific component
67
+ bit schema <component-id> # structured API of a local component
68
+ bit import "<owner>.<scope>/**" # import all components from a remote scope
69
+ bit templates # list available generator templates
70
+ bit create <template> <name> # scaffold a new component
71
+ bit install [pkg1] [pkg2] ... # install package dependencies
72
+ bit compile # manual compile (usually auto — use for troubleshooting)
73
+ bit test # run tests
74
+ bit lint # run linter
75
+ bit check-types # TypeScript type checker
76
+ ```
77
+
78
+ > **Always use `bit install`** to install packages. Never use `npm install`, `yarn`, or `pnpm` directly — unless the workspace is configured with `externalPackageManager` mode in `workspace.jsonc`, in which case use your configured package manager.
79
+ >
80
+ > **Use Bit for type checking and testing.** Never use `tsc` or `npx tsc` directly. Scope to specific components when useful:
81
+ >
82
+ > ```bash
83
+ > bit check-types "[component-id1, component-id2]"
84
+ > bit test "[component-id1, component-id2]"
85
+ > ```
86
+
87
+ ---
88
+
89
+ ## Discovering Apps
90
+
91
+ ```bash
92
+ bit app list
93
+ ```
94
+
95
+ Use `bit import` to fetch remote apps and run them locally.
96
+
97
+ ---
98
+
99
+ ## The Golden Rule: One Component at a Time
100
+
101
+ Never scaffold multiple components upfront. Bit development is an **iterative loop**:
102
+
103
+ ```
104
+ render → identify gap → create ONE component → render again
105
+ ```
106
+
107
+ ### Step-by-step
108
+
109
+ 1. **Look before you create.** Search the workspace and remote scopes first:
110
+
111
+ ```bash
112
+ bit search <keyword>
113
+ bit show <owner>.<scope>/<name>
114
+ ```
115
+
116
+ A component may already exist locally or remotely. Don't duplicate.
117
+
118
+ 2. **Identify the entry point.** Depending on what you're building, the entry point could be an app or a feature. List what exists in the scope before creating anything new.
119
+
120
+ 3. **Create one component.** Scaffold it, wire it in, verify it compiles and renders.
121
+
122
+ 4. **Validate before moving on:**
123
+
124
+ ```bash
125
+ bit status
126
+ bit check-types
127
+ bit test
128
+ ```
129
+
130
+ 5. **Identify the next gap.** Only then decide what the next component should be.
131
+
132
+ 6. **Repeat.** Never pre-plan a list of components and create them all at once.
133
+
134
+ #### Example
135
+
136
+ Create a UI component:
137
+
138
+ ```bash
139
+ bit create react pages/login --scope acme.people
140
+ ```
141
+
142
+ Create a data entity:
143
+
144
+ ```bash
145
+ bit create entity entities/user --scope acme.people
146
+ ```
147
+
148
+ ---
149
+
150
+ ## Importing Components for Modification
151
+
152
+ Bit resolves **local workspace components** over their installed package versions. If you want to modify a component, it must be imported into the workspace — otherwise the app will use the published version and ignore your changes.
153
+
154
+ ### The full dependency chain must be local
155
+
156
+ When modifying any component, import every component in the chain from the top down to your target:
157
+
158
+ ```
159
+ App → Feature/Aspect → Page → UI component
160
+ ```
161
+
162
+ You don't always need the full chain — only the layers in the dependency path of your change. But every layer between the entry point and your target must be local. If any layer in between is still installed as a package (not local), the app will ignore your changes to the layers below it.
163
+
164
+ **Examples:**
165
+
166
+ - Changing a UI component used by a feature page → import the feature, the page, and the UI component.
167
+ - Changing a feature's backend logic → import the app and the feature/aspect.
168
+
169
+ ### Finding the component ID
170
+
171
+ ```bash
172
+ cat node_modules/@<org>/<package-name>/package.json | grep -A3 '"componentId"'
173
+ # "scope": "myorg.myfeature"
174
+ # "name": "pages/my-page"
175
+ # → component ID: myorg.myfeature/pages/my-page
176
+ ```
177
+
178
+ ### Importing
179
+
180
+ ```bash
181
+ bit import <scope>/<name>
182
+ # e.g.
183
+ bit import myorg.myfeature/pages/my-page myorg.myfeature/pages/lobby-page
184
+ ```
185
+
186
+ Imported components land at `<scope-short-name>/<name>/` in the workspace.
187
+
188
+ #### Importing whole scopes
189
+
190
+ ```bash
191
+ bit import "<owner>.<scope>/**"
192
+ ```
193
+
194
+ ---
195
+
196
+ ## Saving and Publishing Changes
197
+
198
+ **Never push directly to the main lane.** Always create a lane and submit a change request.
199
+
200
+ Git does not manage component versions in a Bit workspace — use Bit for version control of components.
201
+
202
+ ```bash
203
+ bit lane create <your-lane-name> # create a new lane
204
+ bit status # confirm no pending issues
205
+ bit snap --message "describe change" # persist component versions
206
+ bit export # push lane to remote
207
+ ```
208
+
209
+ > Always run `bit lane create` first. If you're already on a non-main lane, continue using it — don't create a new one.
210
+
211
+ ---
212
+
213
+ ## Component Structure
214
+
215
+ Each component directory follows this convention:
216
+
217
+ | File | Purpose |
218
+ | ------------------------ | ------------------------------------ |
219
+ | `<name>.tsx` | Main implementation |
220
+ | `index.ts` | Public barrel export |
221
+ | `<name>.spec.tsx` | Tests |
222
+ | `<name>.composition.tsx` | Live previews (shown in `bit start`) |
223
+ | `<name>.docs.mdx` | Documentation |
224
+ | `<name>.mock.ts` | Mock data / fixtures |
225
+ | `*-type.ts` | Standalone type definitions |
226
+
227
+ > Add JSDocs to exported APIs, include two to three usage examples in the `.docs.mdx`, and two to three compositions for the live preview.
228
+
229
+ ---
230
+
231
+ ## Import Path Convention
232
+
233
+ Components import each other using Bit's package notation:
234
+
235
+ ```ts
236
+ import { Something } from '@<org>/<scope>.<namespace>.<name>';
237
+ ```
238
+
239
+ Never use relative paths across component boundaries. Always use the package notation.
240
+
241
+ ---
242
+
243
+ ## Environment Setup
244
+
245
+ Generator environments (React, Vue, Node, Angular, etc.) are configured in `workspace.jsonc`. Some may be commented out. Enable the relevant environment before creating components for a specific framework.
246
+
247
+ ---
248
+
249
+ ## Key Files
250
+
251
+ | File | Purpose |
252
+ | ----------------- | ------------------------------------------------------------------- |
253
+ | `workspace.jsonc` | Workspace config — scopes, envs, component patterns |
254
+ | `.bitmap` | Auto-generated — tracks component locations. **Must be committed.** |
255
+ | `package.json` | Usually `"type": "module"` for ES Modules |
256
+
257
+ ---
258
+
259
+ ## Runtime Code Crossing Environment Boundaries
260
+
261
+ Importing frontend modules into Node.js runtime files or Node.js modules into browser runtime files causes app initialization failures. This typically happens when `index.ts` or runtime files import/export cross-environment modules by value instead of by type.
262
+
263
+ **Rules for aspect `index.ts` files:**
264
+
265
+ - The Aspect manifest (from `*.aspect.ts`) is the **only** allowed value export. Everything else must use `export type`.
266
+ - Runtime modules (`*.node.runtime.ts`, `*.browser.runtime.ts`) must **always** be exported as types.
267
+
268
+ ```ts
269
+ // ✅ Correct
270
+ export type { MyBrowser } from './my.browser.runtime.js';
271
+ export type { MyNode } from './my.node.runtime.js';
272
+ export type { User } from './user.js';
273
+ export default MyAspect;
274
+ export { MyAspect };
275
+
276
+ // ❌ Wrong — pulls frontend/backend code into the wrong runtime
277
+ export { MyBrowser } from './my.browser.runtime.js';
278
+ export { User } from './user.js';
279
+ ```
280
+
281
+ **Rules for `*.node.runtime.ts` files:**
282
+
283
+ - Must not import frontend modules (React components, SCSS, browser-only libraries) by value. Use `import type` if only the type is needed.
284
+
285
+ **Rules for `*.browser.runtime.tsx` files:**
286
+
287
+ - Must not import Node.js modules (`fs`, `path`, server-only libraries) by value. Use `import type` if only the type is needed.
288
+
289
+ ---
290
+
291
+ ## Common Mistakes to Avoid
292
+
293
+ | Mistake | Correct approach |
294
+ | ---------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
295
+ | Creating multiple components upfront | Create one, validate, then decide what's next |
296
+ | Modifying an installed (node_modules) component | Import it with `bit import` first |
297
+ | Importing only the target component but not its dependents | Import the full chain top-down: app → feature → page → component |
298
+ | Treating all components as UI widgets | Understand the type first — app, feature/aspect, hook, entity, or UI component — it determines the chain |
299
+ | Pushing to the main lane | Always create a lane, snap, then export |
300
+ | Using git to version components | Bit manages component versions — use `bit snap` / `bit export` |
301
+ | Guessing a component ID | Check `package.json` under `componentId` or use `bit list` |
302
+ | Creating a component that already exists | Always run `bit search` first |
303
+ | Using `npm install`, `yarn`, or `pnpm` | Use `bit install` |
304
+ | Using `tsc` or `npx tsc` to check types | Use `bit check-types` or `bit test` |
@@ -9,10 +9,39 @@ export interface InteractiveConfig {
9
9
  mcpEditor?: string;
10
10
  }
11
11
  export declare class HostInitializerMain {
12
- static init(absPath?: string, noGit?: boolean, noPackageJson?: boolean, reset?: boolean, resetNew?: boolean, resetLaneNew?: boolean, resetHard?: boolean, resetScope?: boolean, force?: boolean, workspaceConfigProps?: WorkspaceExtensionProps, generator?: string): Promise<{
12
+ static init(absPath?: string, noGit?: boolean, noPackageJson?: boolean, reset?: boolean, resetNew?: boolean, resetLaneNew?: boolean, resetHard?: boolean, resetScope?: boolean, force?: boolean, workspaceConfigProps?: WorkspaceExtensionProps, generator?: string, agent?: string): Promise<{
13
13
  created: boolean;
14
14
  consumer: Consumer;
15
+ agentFileWritten?: string;
15
16
  }>;
17
+ /**
18
+ * Supported agent targets and their output file paths (relative to workspace root).
19
+ */
20
+ static readonly AGENT_FILE_MAP: Record<string, string>;
21
+ /**
22
+ * All known agent instruction file paths. Used to detect whether a workspace
23
+ * already contains any agent configuration.
24
+ */
25
+ static readonly ALL_AGENT_FILES: string[];
26
+ /**
27
+ * Write AI agent instructions into the workspace.
28
+ *
29
+ * - Skips if .git exists (git repos use the interactive init flow).
30
+ * - Skips if any known agent instruction file already exists.
31
+ * - When `agent` is provided, writes to the tool-specific path (e.g. CLAUDE.md).
32
+ * - When `agent` is omitted, writes the universal AGENTS.md.
33
+ *
34
+ * Returns the relative path of the file written, or undefined if skipped.
35
+ */
36
+ static writeAgentInstructions(projectPath: string, agent?: string, skipGitCheck?: boolean): Promise<string | undefined>;
37
+ /**
38
+ * Check if any known agent instruction file or directory already exists.
39
+ */
40
+ static hasExistingAgentFile(projectPath: string): Promise<boolean>;
41
+ /**
42
+ * Wrap template content with tool-specific frontmatter where required.
43
+ */
44
+ static wrapWithFrontmatter(targetFile: string, content: string): string;
16
45
  /**
17
46
  * Check if the directory contains a .git folder
18
47
  */
@@ -48,7 +77,7 @@ export declare class HostInitializerMain {
48
77
  /**
49
78
  * Generate the final initialization message
50
79
  */
51
- static generateInitMessage(created: boolean, reset: boolean, resetHard: boolean, resetScope: boolean, interactiveConfig: InteractiveConfig | null): string;
80
+ static generateInitMessage(created: boolean, reset: boolean, resetHard: boolean, resetScope: boolean, interactiveConfig: InteractiveConfig | null, agentFileWritten?: string): string;
52
81
  static slots: never[];
53
82
  static dependencies: import("@teambit/harmony").Aspect[];
54
83
  static runtime: import("@teambit/harmony").RuntimeDefinition;
@@ -152,7 +152,7 @@ const handlePromptError = err => {
152
152
  throw err;
153
153
  };
154
154
  class HostInitializerMain {
155
- static async init(absPath, noGit = false, noPackageJson = false, reset = false, resetNew = false, resetLaneNew = false, resetHard = false, resetScope = false, force = false, workspaceConfigProps = {}, generator) {
155
+ static async init(absPath, noGit = false, noPackageJson = false, reset = false, resetNew = false, resetLaneNew = false, resetHard = false, resetScope = false, force = false, workspaceConfigProps = {}, generator, agent) {
156
156
  const consumerInfo = await (0, _workspaceModules().getWorkspaceInfo)(absPath || process.cwd());
157
157
  // if "bit init" was running without any flags, the user is probably trying to init a new workspace but wasn't aware
158
158
  // that he's already in a workspace.
@@ -190,12 +190,82 @@ class HostInitializerMain {
190
190
  await consumer.resetLaneNew();
191
191
  }
192
192
  const writtenConsumer = await consumer.write();
193
+ const created = !consumerInfo?.path;
194
+ let agentFileWritten;
195
+ if (created) {
196
+ agentFileWritten = await HostInitializerMain.writeAgentInstructions(consumerPath, agent);
197
+ }
193
198
  return {
194
- created: !consumerInfo?.path,
195
- consumer: writtenConsumer
199
+ created,
200
+ consumer: writtenConsumer,
201
+ agentFileWritten
196
202
  };
197
203
  }
198
204
 
205
+ /**
206
+ * Supported agent targets and their output file paths (relative to workspace root).
207
+ */
208
+
209
+ /**
210
+ * Write AI agent instructions into the workspace.
211
+ *
212
+ * - Skips if .git exists (git repos use the interactive init flow).
213
+ * - Skips if any known agent instruction file already exists.
214
+ * - When `agent` is provided, writes to the tool-specific path (e.g. CLAUDE.md).
215
+ * - When `agent` is omitted, writes the universal AGENTS.md.
216
+ *
217
+ * Returns the relative path of the file written, or undefined if skipped.
218
+ */
219
+ static async writeAgentInstructions(projectPath, agent, skipGitCheck = false) {
220
+ if (agent && !HostInitializerMain.AGENT_FILE_MAP[agent]) {
221
+ const supported = Object.keys(HostInitializerMain.AGENT_FILE_MAP).join(', ');
222
+ throw new Error(`unknown --agent value "${agent}". supported values: ${supported}`);
223
+ }
224
+ try {
225
+ // Don't write in git repos — they use the interactive flow.
226
+ // Callers like `bit new` set skipGitCheck because they always create a fresh workspace.
227
+ if (!skipGitCheck && (await HostInitializerMain.hasGitDirectory(projectPath))) return undefined;
228
+
229
+ // Don't write if any agent file already exists.
230
+ if (await HostInitializerMain.hasExistingAgentFile(projectPath)) return undefined;
231
+ const targetFile = agent ? HostInitializerMain.AGENT_FILE_MAP[agent] : 'AGENTS.md';
232
+ const targetPath = path().join(projectPath, targetFile);
233
+
234
+ // Read the shared template content.
235
+ const templatePath = path().join(__dirname, 'agents-template.md');
236
+ const content = await _fsExtra().default.readFile(templatePath, 'utf8');
237
+
238
+ // Some formats require frontmatter.
239
+ const finalContent = HostInitializerMain.wrapWithFrontmatter(targetFile, content);
240
+ await _fsExtra().default.ensureDir(path().dirname(targetPath));
241
+ await _fsExtra().default.writeFile(targetPath, finalContent);
242
+ return targetFile;
243
+ } catch {
244
+ // Don't fail initialization if the agent file cannot be written.
245
+ return undefined;
246
+ }
247
+ }
248
+
249
+ /**
250
+ * Check if any known agent instruction file or directory already exists.
251
+ */
252
+ static async hasExistingAgentFile(projectPath) {
253
+ for (const rel of HostInitializerMain.ALL_AGENT_FILES) {
254
+ if (await _fsExtra().default.pathExists(path().join(projectPath, rel))) return true;
255
+ }
256
+ return false;
257
+ }
258
+
259
+ /**
260
+ * Wrap template content with tool-specific frontmatter where required.
261
+ */
262
+ static wrapWithFrontmatter(targetFile, content) {
263
+ if (targetFile === '.cursor/rules/bit.mdc') {
264
+ return ['---', 'description: Bit workspace instructions', 'alwaysApply: true', '---', '', content].join('\n');
265
+ }
266
+ return content;
267
+ }
268
+
199
269
  /**
200
270
  * Check if the directory contains a .git folder
201
271
  */
@@ -407,12 +477,15 @@ node_modules
407
477
  /**
408
478
  * Generate the final initialization message
409
479
  */
410
- static generateInitMessage(created, reset, resetHard, resetScope, interactiveConfig) {
480
+ static generateInitMessage(created, reset, resetHard, resetScope, interactiveConfig, agentFileWritten) {
411
481
  let initMessage = (0, _cli().formatSuccessSummary)('initialized a bit workspace.');
412
482
  if (!created) initMessage = (0, _cli().formatHint)('successfully re-initialized a bit workspace.');
413
483
  if (reset) initMessage = (0, _cli().formatHint)('your bit workspace has been reset successfully.');
414
484
  if (resetHard) initMessage = (0, _cli().formatHint)('your bit workspace has been hard-reset successfully.');
415
485
  if (resetScope) initMessage = (0, _cli().formatHint)('your local scope has been reset successfully.');
486
+ if (agentFileWritten) {
487
+ initMessage += (0, _cli().formatHint)(`\n Created ${_chalk().default.cyan(agentFileWritten)} — instructions for AI agents working in this workspace`);
488
+ }
416
489
 
417
490
  // Add additional information for interactive mode
418
491
  if (interactiveConfig) {
@@ -444,6 +517,16 @@ node_modules
444
517
  }
445
518
  }
446
519
  exports.HostInitializerMain = HostInitializerMain;
520
+ _defineProperty(HostInitializerMain, "AGENT_FILE_MAP", {
521
+ claude: 'CLAUDE.md',
522
+ cursor: '.cursor/rules/bit.mdc',
523
+ copilot: '.github/copilot-instructions.md'
524
+ });
525
+ /**
526
+ * All known agent instruction file paths. Used to detect whether a workspace
527
+ * already contains any agent configuration.
528
+ */
529
+ _defineProperty(HostInitializerMain, "ALL_AGENT_FILES", ['AGENTS.md', 'CLAUDE.md', '.cursorrules', '.cursor/rules', '.github/copilot-instructions.md']);
447
530
  _defineProperty(HostInitializerMain, "slots", []);
448
531
  _defineProperty(HostInitializerMain, "dependencies", [_cli().CLIAspect, _logger().LoggerAspect]);
449
532
  _defineProperty(HostInitializerMain, "runtime", _cli().MainRuntime);
@@ -1 +1 @@
1
- {"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","path","_interopRequireWildcard","_chalk","_enquirer","_scopeModules","_workspaceModules","_legacy","_objects","_toolboxFs","_config","_mcp","_cli","_objectsWithoutConsumer","_hostInitializer","_initCmd","_createConsumer","_logger","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","promptCancel","handlePromptError","err","Error","HostInitializerMain","init","absPath","noGit","noPackageJson","reset","resetNew","resetLaneNew","resetHard","resetScope","force","workspaceConfigProps","generator","consumerInfo","getWorkspaceInfo","process","cwd","consumerPath","name","basename","resetConsumer","consumer","createConsumer","scopePath","findScopePath","Scope","throwForOutOfSyncScope","writtenConsumer","write","created","hasGitDirectory","projectPath","gitPath","join","stat","fs","isDirectory","hasWorkspaceInitialized","isExist","WorkspaceConfig","Boolean","promptForEnvironment","envChoices","message","response","prompt","type","choices","initial","cancel","environment","promptForPackageManager","enabled","disabled","useExternalPackageManager","promptForMcpServer","setupMcp","editorChoices","editorResponse","editor","updateGitignore","gitignorePath","bitGitignoreSection","exists","pathExists","content","readFile","includes","appendFile","writeFile","trim","setupMcpServer","setupOptions","isGlobal","workspaceDir","consumerProject","McpConfigWriter","setupEditor","rulesOptions","writeRulesFile","runInteractiveMode","selectedEnv","mcpEditor","undefined","externalPackageManager","defaultDirectory","generateInitMessage","interactiveConfig","initMessage","formatSuccessSummary","formatHint","formatTitle","chalk","cyan","provider","cli","loggerMain","logger","createLogger","HostInitializerAspect","id","hostInitializerMain","initCmd","InitCmd","register","exports","CLIAspect","LoggerAspect","MainRuntime","addRuntime","_default","bitMap","isEmpty","scope","getPath","objectsPath","Repository","getPathByScopePath","dirExist","hasObjects","isDirEmpty","ObjectsWithoutConsumer"],"sources":["host-initializer.main.runtime.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport * as path from 'path';\nimport chalk from 'chalk';\nimport { prompt } from 'enquirer';\nimport { findScopePath } from '@teambit/scope.modules.find-scope-path';\nimport type { Consumer } from '@teambit/legacy.consumer';\nimport { getWorkspaceInfo } from '@teambit/workspace.modules.workspace-locator';\nimport { Scope } from '@teambit/legacy.scope';\nimport { Repository } from '@teambit/objects';\nimport { isDirEmpty } from '@teambit/toolbox.fs.is-dir-empty';\nimport type { WorkspaceExtensionProps } from '@teambit/config';\nimport { WorkspaceConfig } from '@teambit/config';\nimport type { SetupOptions, RulesOptions } from '@teambit/mcp.mcp-config-writer';\nimport { McpConfigWriter } from '@teambit/mcp.mcp-config-writer';\nimport type { CLIMain } from '@teambit/cli';\nimport { CLIAspect, MainRuntime, formatSuccessSummary, formatHint, formatTitle } from '@teambit/cli';\nimport { ObjectsWithoutConsumer } from './objects-without-consumer';\nimport { HostInitializerAspect } from './host-initializer.aspect';\nimport { InitCmd } from './init-cmd';\nimport { createConsumer, resetConsumer } from './create-consumer';\nimport type { LoggerMain } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\n\nexport interface InteractiveConfig {\n generator?: string;\n externalPackageManager: boolean;\n defaultDirectory: string;\n mcpEditor?: string;\n}\n\n/**\n * Reusable cancel function for prompts\n * By default, canceling the prompt via Ctrl+c throws an empty string.\n * The custom cancel function prevents that behavior.\n * Otherwise, Bit CLI would print an error and confuse users.\n * See related issue: https://github.com/enquirer/enquirer/issues/225\n */\nconst promptCancel = () => {\n // Empty function to prevent default behavior\n};\n\n/**\n * Handle prompt errors consistently\n */\nconst handlePromptError = (err: any): never => {\n if (!err || err === '') {\n // for some reason, when the user clicks Ctrl+C, the error is an empty string\n throw new Error('The prompt has been canceled');\n }\n throw err;\n};\n\nexport class HostInitializerMain {\n static async init(\n absPath?: string,\n noGit = false,\n noPackageJson = false,\n reset = false,\n resetNew = false,\n resetLaneNew = false,\n resetHard = false,\n resetScope = false,\n force = false,\n workspaceConfigProps: WorkspaceExtensionProps = {},\n generator?: string\n ): Promise<{ created: boolean; consumer: Consumer }> {\n const consumerInfo = await getWorkspaceInfo(absPath || process.cwd());\n // if \"bit init\" was running without any flags, the user is probably trying to init a new workspace but wasn't aware\n // that he's already in a workspace.\n if (\n !absPath &&\n consumerInfo?.path &&\n consumerInfo.path !== process.cwd() &&\n !reset &&\n !resetHard &&\n !resetScope &&\n !resetNew &&\n !resetLaneNew\n ) {\n throw new Error(\n `error: unable to init a new workspace in an inner directory of an existing workspace at \"${consumerInfo.path}\"`\n );\n }\n const consumerPath = consumerInfo?.path || absPath || process.cwd();\n\n workspaceConfigProps = {\n ...workspaceConfigProps,\n name: workspaceConfigProps.name || path.basename(consumerPath),\n };\n\n if (reset || resetHard) {\n await resetConsumer(consumerPath, resetHard, noGit);\n }\n let consumer: Consumer | undefined;\n try {\n consumer = await createConsumer(consumerPath, noGit, noPackageJson, workspaceConfigProps, generator);\n } catch {\n // it's possible that at this stage the consumer fails to load due to scope issues.\n // still we want to load it to include its instance of \"scope.json\", so then later when \"consumer.write()\", we\n // don't lose some scope metadata\n }\n if (resetScope) {\n const scopePath = findScopePath(consumerPath);\n if (!scopePath) throw new Error(`fatal: scope not found in the path: ${consumerPath}`);\n await Scope.reset(scopePath, true);\n }\n if (!consumer) consumer = await createConsumer(consumerPath, noGit, noPackageJson, workspaceConfigProps);\n if (!force && !resetScope) {\n await throwForOutOfSyncScope(consumer);\n }\n if (resetNew) {\n await consumer.resetNew();\n }\n if (resetLaneNew) {\n await consumer.resetLaneNew();\n }\n const writtenConsumer = await consumer.write();\n return { created: !consumerInfo?.path, consumer: writtenConsumer };\n }\n\n /**\n * Check if the directory contains a .git folder\n */\n static async hasGitDirectory(projectPath: string): Promise<boolean> {\n try {\n const gitPath = path.join(projectPath, '.git');\n const stat = await fs.stat(gitPath);\n return stat.isDirectory();\n } catch {\n return false;\n }\n }\n\n /**\n * Check if the directory already has a bit workspace initialized\n */\n static async hasWorkspaceInitialized(projectPath: string): Promise<boolean> {\n try {\n const isExist = await WorkspaceConfig.isExist(projectPath);\n return Boolean(isExist);\n } catch {\n return false;\n }\n }\n\n /**\n * Prompt user for environment selection\n */\n static async promptForEnvironment(): Promise<string | null> {\n const envChoices = [\n { name: 'none', message: 'None (default)' },\n { name: 'bitdev.node/node-env', message: 'Node.js environment' },\n { name: 'bitdev.react/react-env', message: 'React environment' },\n { name: 'bitdev.vue/vue-env', message: 'Vue environment' },\n { name: 'bitdev.angular/angular-env', message: 'Angular environment' },\n { name: 'bitdev.symphony/envs/symphony-env', message: 'Symphony environment' },\n ];\n\n try {\n const response = (await prompt({\n type: 'select',\n name: 'environment',\n message: 'Which environment would you like to use?',\n choices: envChoices,\n initial: 0, // Default to 'none'\n cancel: promptCancel,\n } as any)) as { environment: string };\n\n return response.environment === 'none' ? null : response.environment;\n } catch (err: any) {\n return handlePromptError(err);\n }\n }\n\n /**\n * Prompt user for package manager preference\n */\n static async promptForPackageManager(): Promise<boolean> {\n try {\n const response = (await prompt({\n type: 'toggle',\n name: 'useExternalPackageManager',\n message: 'Would you like to use your own package manager (npm/yarn/pnpm) instead of Bit?',\n enabled: 'Yes',\n disabled: 'No',\n cancel: promptCancel,\n } as any)) as { useExternalPackageManager: boolean };\n\n return response.useExternalPackageManager;\n } catch (err: any) {\n return handlePromptError(err);\n }\n }\n\n /**\n * Prompt user for MCP server configuration\n */\n static async promptForMcpServer(): Promise<string | null> {\n try {\n const setupMcp = (await prompt({\n type: 'toggle',\n name: 'setupMcp',\n message: 'Would you like to set up the MCP server for AI-powered development?',\n enabled: 'Yes',\n disabled: 'No',\n cancel: promptCancel,\n } as any)) as { setupMcp: boolean };\n\n if (!setupMcp.setupMcp) {\n return null;\n }\n\n const editorChoices = [\n { name: 'vscode', message: 'VS Code' },\n { name: 'cursor', message: 'Cursor' },\n { name: 'windsurf', message: 'Windsurf' },\n { name: 'roo', message: 'Roo Code' },\n { name: 'cline', message: 'Cline' },\n { name: 'claude-code', message: 'Claude Code' },\n ];\n\n const editorResponse = (await prompt({\n type: 'select',\n name: 'editor',\n message: 'Which editor would you like to configure?',\n choices: editorChoices,\n initial: 0, // Default to VS Code\n cancel: promptCancel,\n } as any)) as { editor: string };\n\n return editorResponse.editor;\n } catch (err: any) {\n return handlePromptError(err);\n }\n }\n\n /**\n * Create or update .gitignore file with Bit-specific entries\n */\n static async updateGitignore(projectPath: string): Promise<void> {\n const gitignorePath = path.join(projectPath, '.gitignore');\n const bitGitignoreSection = `\n# Bit\n.bit\npublic\n# Bit files - generated during bit ws-config write command\ntsconfig.json\n.eslintrc.json\n.prettierrc.cjs\n# allow tsconfig from the env's config dir to be tracked\n!**/config/tsconfig.json\nnode_modules\n`;\n try {\n const exists = await fs.pathExists(gitignorePath);\n if (exists) {\n const content = await fs.readFile(gitignorePath, 'utf8');\n if (!content.includes('# Bit')) {\n await fs.appendFile(gitignorePath, bitGitignoreSection);\n }\n } else {\n await fs.writeFile(gitignorePath, bitGitignoreSection.trim());\n }\n } catch {\n // Don't fail the initialization if gitignore update fails\n // Note: Console logging is handled by the caller\n }\n }\n\n /**\n * Set up MCP server configuration for the selected editor\n */\n static async setupMcpServer(editor: string, projectPath: string): Promise<void> {\n // Set up MCP server configuration\n const setupOptions: SetupOptions = {\n isGlobal: false,\n workspaceDir: projectPath,\n consumerProject: false,\n };\n\n await McpConfigWriter.setupEditor(editor, setupOptions);\n\n // Write rules file for the editor\n const rulesOptions: RulesOptions = {\n isGlobal: false,\n workspaceDir: projectPath,\n consumerProject: false,\n };\n\n await McpConfigWriter.writeRulesFile(editor, rulesOptions);\n }\n\n /**\n * Run interactive mode for Git repositories\n */\n static async runInteractiveMode(projectPath: string): Promise<InteractiveConfig> {\n const selectedEnv = await HostInitializerMain.promptForEnvironment();\n const useExternalPackageManager = await HostInitializerMain.promptForPackageManager();\n const mcpEditor = await HostInitializerMain.promptForMcpServer();\n\n // Set up MCP server if user selected an editor\n if (mcpEditor) {\n await HostInitializerMain.setupMcpServer(mcpEditor, projectPath);\n }\n\n await HostInitializerMain.updateGitignore(projectPath);\n\n return {\n generator: selectedEnv || undefined,\n externalPackageManager: useExternalPackageManager,\n defaultDirectory: 'bit-components/{scope}/{name}',\n mcpEditor: mcpEditor || undefined,\n };\n }\n\n /**\n * Generate the final initialization message\n */\n static generateInitMessage(\n created: boolean,\n reset: boolean,\n resetHard: boolean,\n resetScope: boolean,\n interactiveConfig: InteractiveConfig | null\n ): string {\n let initMessage = formatSuccessSummary('initialized a bit workspace.');\n\n if (!created) initMessage = formatHint('successfully re-initialized a bit workspace.');\n if (reset) initMessage = formatHint('your bit workspace has been reset successfully.');\n if (resetHard) initMessage = formatHint('your bit workspace has been hard-reset successfully.');\n if (resetScope) initMessage = formatHint('your local scope has been reset successfully.');\n\n // Add additional information for interactive mode\n if (interactiveConfig) {\n initMessage += `\\n\\n${formatTitle('Additional Information')}`;\n const defaultDirectory = interactiveConfig?.defaultDirectory || 'bit-components/{scope}/{name}';\n initMessage += `\\n Components will be created in: ${chalk.cyan(defaultDirectory)}`;\n initMessage += `\\n For CI/CD setup, visit: https://bit.dev/docs/getting-started/collaborate/exporting-components#custom-ci/cd-setup`;\n\n if (interactiveConfig.generator) {\n initMessage += `\\n Environment: ${chalk.cyan(interactiveConfig.generator)}`;\n }\n\n if (interactiveConfig.mcpEditor) {\n initMessage += `\\n MCP server configured for: ${chalk.cyan(interactiveConfig.mcpEditor)}`;\n }\n\n if (interactiveConfig.externalPackageManager) {\n initMessage += `\\n External package manager mode enabled`;\n initMessage += formatHint(\n `\\n Run ${chalk.cyan('pnpm install')} (or ${chalk.cyan('yarn install')}/${chalk.cyan('npm install')}) to install dependencies`\n );\n } else if (interactiveConfig.generator) {\n initMessage += formatHint(`\\n Run ${chalk.cyan('bit install')} to install dependencies`);\n }\n }\n\n return initMessage;\n }\n\n static slots = [];\n static dependencies = [CLIAspect, LoggerAspect];\n static runtime = MainRuntime;\n static async provider([cli, loggerMain]: [CLIMain, LoggerMain]) {\n const logger = loggerMain.createLogger(HostInitializerAspect.id);\n const hostInitializerMain = new HostInitializerMain();\n const initCmd = new InitCmd(hostInitializerMain, logger);\n cli.register(initCmd);\n return hostInitializerMain;\n }\n}\n\nHostInitializerAspect.addRuntime(HostInitializerMain);\n\nexport default HostInitializerMain;\n\n/**\n * throw an error when .bitmap is empty but a scope has objects.\n * a user may got into this state for reasons such as:\n * 1. deleting manually .bitmap hoping to re-start Bit from scratch. (probably unaware of `--reset-hard` flag).\n * 2. switching to a branch where Bit wasn't initialized\n * in which case, it's better to stop and show an error describing what needs to be done.\n * it can always be ignored by entering `--force` flag.\n */\nasync function throwForOutOfSyncScope(consumer: Consumer): Promise<void> {\n if (!consumer.bitMap.isEmpty()) return;\n const scopePath = consumer.scope.getPath();\n const objectsPath = Repository.getPathByScopePath(scopePath);\n const dirExist = await fs.pathExists(objectsPath);\n if (!dirExist) return;\n const hasObjects = !(await isDirEmpty(objectsPath));\n if (hasObjects) {\n throw new ObjectsWithoutConsumer(scopePath);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","path","_interopRequireWildcard","_chalk","_enquirer","_scopeModules","_workspaceModules","_legacy","_objects","_toolboxFs","_config","_mcp","_cli","_objectsWithoutConsumer","_hostInitializer","_initCmd","_createConsumer","_logger","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","promptCancel","handlePromptError","err","Error","HostInitializerMain","init","absPath","noGit","noPackageJson","reset","resetNew","resetLaneNew","resetHard","resetScope","force","workspaceConfigProps","generator","agent","consumerInfo","getWorkspaceInfo","process","cwd","consumerPath","name","basename","resetConsumer","consumer","createConsumer","scopePath","findScopePath","Scope","throwForOutOfSyncScope","writtenConsumer","write","created","agentFileWritten","writeAgentInstructions","projectPath","skipGitCheck","AGENT_FILE_MAP","supported","join","hasGitDirectory","undefined","hasExistingAgentFile","targetFile","targetPath","templatePath","__dirname","content","fs","readFile","finalContent","wrapWithFrontmatter","ensureDir","dirname","writeFile","rel","ALL_AGENT_FILES","pathExists","gitPath","stat","isDirectory","hasWorkspaceInitialized","isExist","WorkspaceConfig","Boolean","promptForEnvironment","envChoices","message","response","prompt","type","choices","initial","cancel","environment","promptForPackageManager","enabled","disabled","useExternalPackageManager","promptForMcpServer","setupMcp","editorChoices","editorResponse","editor","updateGitignore","gitignorePath","bitGitignoreSection","exists","includes","appendFile","trim","setupMcpServer","setupOptions","isGlobal","workspaceDir","consumerProject","McpConfigWriter","setupEditor","rulesOptions","writeRulesFile","runInteractiveMode","selectedEnv","mcpEditor","externalPackageManager","defaultDirectory","generateInitMessage","interactiveConfig","initMessage","formatSuccessSummary","formatHint","chalk","cyan","formatTitle","provider","cli","loggerMain","logger","createLogger","HostInitializerAspect","id","hostInitializerMain","initCmd","InitCmd","register","exports","claude","cursor","copilot","CLIAspect","LoggerAspect","MainRuntime","addRuntime","_default","bitMap","isEmpty","scope","getPath","objectsPath","Repository","getPathByScopePath","dirExist","hasObjects","isDirEmpty","ObjectsWithoutConsumer"],"sources":["host-initializer.main.runtime.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport * as path from 'path';\nimport chalk from 'chalk';\nimport { prompt } from 'enquirer';\nimport { findScopePath } from '@teambit/scope.modules.find-scope-path';\nimport type { Consumer } from '@teambit/legacy.consumer';\nimport { getWorkspaceInfo } from '@teambit/workspace.modules.workspace-locator';\nimport { Scope } from '@teambit/legacy.scope';\nimport { Repository } from '@teambit/objects';\nimport { isDirEmpty } from '@teambit/toolbox.fs.is-dir-empty';\nimport type { WorkspaceExtensionProps } from '@teambit/config';\nimport { WorkspaceConfig } from '@teambit/config';\nimport type { SetupOptions, RulesOptions } from '@teambit/mcp.mcp-config-writer';\nimport { McpConfigWriter } from '@teambit/mcp.mcp-config-writer';\nimport type { CLIMain } from '@teambit/cli';\nimport { CLIAspect, MainRuntime, formatSuccessSummary, formatHint, formatTitle } from '@teambit/cli';\nimport { ObjectsWithoutConsumer } from './objects-without-consumer';\nimport { HostInitializerAspect } from './host-initializer.aspect';\nimport { InitCmd } from './init-cmd';\nimport { createConsumer, resetConsumer } from './create-consumer';\nimport type { LoggerMain } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\n\nexport interface InteractiveConfig {\n generator?: string;\n externalPackageManager: boolean;\n defaultDirectory: string;\n mcpEditor?: string;\n}\n\n/**\n * Reusable cancel function for prompts\n * By default, canceling the prompt via Ctrl+c throws an empty string.\n * The custom cancel function prevents that behavior.\n * Otherwise, Bit CLI would print an error and confuse users.\n * See related issue: https://github.com/enquirer/enquirer/issues/225\n */\nconst promptCancel = () => {\n // Empty function to prevent default behavior\n};\n\n/**\n * Handle prompt errors consistently\n */\nconst handlePromptError = (err: any): never => {\n if (!err || err === '') {\n // for some reason, when the user clicks Ctrl+C, the error is an empty string\n throw new Error('The prompt has been canceled');\n }\n throw err;\n};\n\nexport class HostInitializerMain {\n static async init(\n absPath?: string,\n noGit = false,\n noPackageJson = false,\n reset = false,\n resetNew = false,\n resetLaneNew = false,\n resetHard = false,\n resetScope = false,\n force = false,\n workspaceConfigProps: WorkspaceExtensionProps = {},\n generator?: string,\n agent?: string\n ): Promise<{ created: boolean; consumer: Consumer; agentFileWritten?: string }> {\n const consumerInfo = await getWorkspaceInfo(absPath || process.cwd());\n // if \"bit init\" was running without any flags, the user is probably trying to init a new workspace but wasn't aware\n // that he's already in a workspace.\n if (\n !absPath &&\n consumerInfo?.path &&\n consumerInfo.path !== process.cwd() &&\n !reset &&\n !resetHard &&\n !resetScope &&\n !resetNew &&\n !resetLaneNew\n ) {\n throw new Error(\n `error: unable to init a new workspace in an inner directory of an existing workspace at \"${consumerInfo.path}\"`\n );\n }\n const consumerPath = consumerInfo?.path || absPath || process.cwd();\n\n workspaceConfigProps = {\n ...workspaceConfigProps,\n name: workspaceConfigProps.name || path.basename(consumerPath),\n };\n\n if (reset || resetHard) {\n await resetConsumer(consumerPath, resetHard, noGit);\n }\n let consumer: Consumer | undefined;\n try {\n consumer = await createConsumer(consumerPath, noGit, noPackageJson, workspaceConfigProps, generator);\n } catch {\n // it's possible that at this stage the consumer fails to load due to scope issues.\n // still we want to load it to include its instance of \"scope.json\", so then later when \"consumer.write()\", we\n // don't lose some scope metadata\n }\n if (resetScope) {\n const scopePath = findScopePath(consumerPath);\n if (!scopePath) throw new Error(`fatal: scope not found in the path: ${consumerPath}`);\n await Scope.reset(scopePath, true);\n }\n if (!consumer) consumer = await createConsumer(consumerPath, noGit, noPackageJson, workspaceConfigProps);\n if (!force && !resetScope) {\n await throwForOutOfSyncScope(consumer);\n }\n if (resetNew) {\n await consumer.resetNew();\n }\n if (resetLaneNew) {\n await consumer.resetLaneNew();\n }\n const writtenConsumer = await consumer.write();\n const created = !consumerInfo?.path;\n let agentFileWritten: string | undefined;\n if (created) {\n agentFileWritten = await HostInitializerMain.writeAgentInstructions(consumerPath, agent);\n }\n return { created, consumer: writtenConsumer, agentFileWritten };\n }\n\n /**\n * Supported agent targets and their output file paths (relative to workspace root).\n */\n static readonly AGENT_FILE_MAP: Record<string, string> = {\n claude: 'CLAUDE.md',\n cursor: '.cursor/rules/bit.mdc',\n copilot: '.github/copilot-instructions.md',\n };\n\n /**\n * All known agent instruction file paths. Used to detect whether a workspace\n * already contains any agent configuration.\n */\n static readonly ALL_AGENT_FILES = [\n 'AGENTS.md',\n 'CLAUDE.md',\n '.cursorrules',\n '.cursor/rules',\n '.github/copilot-instructions.md',\n ];\n\n /**\n * Write AI agent instructions into the workspace.\n *\n * - Skips if .git exists (git repos use the interactive init flow).\n * - Skips if any known agent instruction file already exists.\n * - When `agent` is provided, writes to the tool-specific path (e.g. CLAUDE.md).\n * - When `agent` is omitted, writes the universal AGENTS.md.\n *\n * Returns the relative path of the file written, or undefined if skipped.\n */\n static async writeAgentInstructions(\n projectPath: string,\n agent?: string,\n skipGitCheck = false\n ): Promise<string | undefined> {\n if (agent && !HostInitializerMain.AGENT_FILE_MAP[agent]) {\n const supported = Object.keys(HostInitializerMain.AGENT_FILE_MAP).join(', ');\n throw new Error(`unknown --agent value \"${agent}\". supported values: ${supported}`);\n }\n try {\n // Don't write in git repos — they use the interactive flow.\n // Callers like `bit new` set skipGitCheck because they always create a fresh workspace.\n if (!skipGitCheck && (await HostInitializerMain.hasGitDirectory(projectPath))) return undefined;\n\n // Don't write if any agent file already exists.\n if (await HostInitializerMain.hasExistingAgentFile(projectPath)) return undefined;\n\n const targetFile = agent ? HostInitializerMain.AGENT_FILE_MAP[agent] : 'AGENTS.md';\n const targetPath = path.join(projectPath, targetFile);\n\n // Read the shared template content.\n const templatePath = path.join(__dirname, 'agents-template.md');\n const content = await fs.readFile(templatePath, 'utf8');\n\n // Some formats require frontmatter.\n const finalContent = HostInitializerMain.wrapWithFrontmatter(targetFile, content);\n\n await fs.ensureDir(path.dirname(targetPath));\n await fs.writeFile(targetPath, finalContent);\n return targetFile;\n } catch {\n // Don't fail initialization if the agent file cannot be written.\n return undefined;\n }\n }\n\n /**\n * Check if any known agent instruction file or directory already exists.\n */\n static async hasExistingAgentFile(projectPath: string): Promise<boolean> {\n for (const rel of HostInitializerMain.ALL_AGENT_FILES) {\n if (await fs.pathExists(path.join(projectPath, rel))) return true;\n }\n return false;\n }\n\n /**\n * Wrap template content with tool-specific frontmatter where required.\n */\n static wrapWithFrontmatter(targetFile: string, content: string): string {\n if (targetFile === '.cursor/rules/bit.mdc') {\n return ['---', 'description: Bit workspace instructions', 'alwaysApply: true', '---', '', content].join('\\n');\n }\n return content;\n }\n\n /**\n * Check if the directory contains a .git folder\n */\n static async hasGitDirectory(projectPath: string): Promise<boolean> {\n try {\n const gitPath = path.join(projectPath, '.git');\n const stat = await fs.stat(gitPath);\n return stat.isDirectory();\n } catch {\n return false;\n }\n }\n\n /**\n * Check if the directory already has a bit workspace initialized\n */\n static async hasWorkspaceInitialized(projectPath: string): Promise<boolean> {\n try {\n const isExist = await WorkspaceConfig.isExist(projectPath);\n return Boolean(isExist);\n } catch {\n return false;\n }\n }\n\n /**\n * Prompt user for environment selection\n */\n static async promptForEnvironment(): Promise<string | null> {\n const envChoices = [\n { name: 'none', message: 'None (default)' },\n { name: 'bitdev.node/node-env', message: 'Node.js environment' },\n { name: 'bitdev.react/react-env', message: 'React environment' },\n { name: 'bitdev.vue/vue-env', message: 'Vue environment' },\n { name: 'bitdev.angular/angular-env', message: 'Angular environment' },\n { name: 'bitdev.symphony/envs/symphony-env', message: 'Symphony environment' },\n ];\n\n try {\n const response = (await prompt({\n type: 'select',\n name: 'environment',\n message: 'Which environment would you like to use?',\n choices: envChoices,\n initial: 0, // Default to 'none'\n cancel: promptCancel,\n } as any)) as { environment: string };\n\n return response.environment === 'none' ? null : response.environment;\n } catch (err: any) {\n return handlePromptError(err);\n }\n }\n\n /**\n * Prompt user for package manager preference\n */\n static async promptForPackageManager(): Promise<boolean> {\n try {\n const response = (await prompt({\n type: 'toggle',\n name: 'useExternalPackageManager',\n message: 'Would you like to use your own package manager (npm/yarn/pnpm) instead of Bit?',\n enabled: 'Yes',\n disabled: 'No',\n cancel: promptCancel,\n } as any)) as { useExternalPackageManager: boolean };\n\n return response.useExternalPackageManager;\n } catch (err: any) {\n return handlePromptError(err);\n }\n }\n\n /**\n * Prompt user for MCP server configuration\n */\n static async promptForMcpServer(): Promise<string | null> {\n try {\n const setupMcp = (await prompt({\n type: 'toggle',\n name: 'setupMcp',\n message: 'Would you like to set up the MCP server for AI-powered development?',\n enabled: 'Yes',\n disabled: 'No',\n cancel: promptCancel,\n } as any)) as { setupMcp: boolean };\n\n if (!setupMcp.setupMcp) {\n return null;\n }\n\n const editorChoices = [\n { name: 'vscode', message: 'VS Code' },\n { name: 'cursor', message: 'Cursor' },\n { name: 'windsurf', message: 'Windsurf' },\n { name: 'roo', message: 'Roo Code' },\n { name: 'cline', message: 'Cline' },\n { name: 'claude-code', message: 'Claude Code' },\n ];\n\n const editorResponse = (await prompt({\n type: 'select',\n name: 'editor',\n message: 'Which editor would you like to configure?',\n choices: editorChoices,\n initial: 0, // Default to VS Code\n cancel: promptCancel,\n } as any)) as { editor: string };\n\n return editorResponse.editor;\n } catch (err: any) {\n return handlePromptError(err);\n }\n }\n\n /**\n * Create or update .gitignore file with Bit-specific entries\n */\n static async updateGitignore(projectPath: string): Promise<void> {\n const gitignorePath = path.join(projectPath, '.gitignore');\n const bitGitignoreSection = `\n# Bit\n.bit\npublic\n# Bit files - generated during bit ws-config write command\ntsconfig.json\n.eslintrc.json\n.prettierrc.cjs\n# allow tsconfig from the env's config dir to be tracked\n!**/config/tsconfig.json\nnode_modules\n`;\n try {\n const exists = await fs.pathExists(gitignorePath);\n if (exists) {\n const content = await fs.readFile(gitignorePath, 'utf8');\n if (!content.includes('# Bit')) {\n await fs.appendFile(gitignorePath, bitGitignoreSection);\n }\n } else {\n await fs.writeFile(gitignorePath, bitGitignoreSection.trim());\n }\n } catch {\n // Don't fail the initialization if gitignore update fails\n // Note: Console logging is handled by the caller\n }\n }\n\n /**\n * Set up MCP server configuration for the selected editor\n */\n static async setupMcpServer(editor: string, projectPath: string): Promise<void> {\n // Set up MCP server configuration\n const setupOptions: SetupOptions = {\n isGlobal: false,\n workspaceDir: projectPath,\n consumerProject: false,\n };\n\n await McpConfigWriter.setupEditor(editor, setupOptions);\n\n // Write rules file for the editor\n const rulesOptions: RulesOptions = {\n isGlobal: false,\n workspaceDir: projectPath,\n consumerProject: false,\n };\n\n await McpConfigWriter.writeRulesFile(editor, rulesOptions);\n }\n\n /**\n * Run interactive mode for Git repositories\n */\n static async runInteractiveMode(projectPath: string): Promise<InteractiveConfig> {\n const selectedEnv = await HostInitializerMain.promptForEnvironment();\n const useExternalPackageManager = await HostInitializerMain.promptForPackageManager();\n const mcpEditor = await HostInitializerMain.promptForMcpServer();\n\n // Set up MCP server if user selected an editor\n if (mcpEditor) {\n await HostInitializerMain.setupMcpServer(mcpEditor, projectPath);\n }\n\n await HostInitializerMain.updateGitignore(projectPath);\n\n return {\n generator: selectedEnv || undefined,\n externalPackageManager: useExternalPackageManager,\n defaultDirectory: 'bit-components/{scope}/{name}',\n mcpEditor: mcpEditor || undefined,\n };\n }\n\n /**\n * Generate the final initialization message\n */\n static generateInitMessage(\n created: boolean,\n reset: boolean,\n resetHard: boolean,\n resetScope: boolean,\n interactiveConfig: InteractiveConfig | null,\n agentFileWritten?: string\n ): string {\n let initMessage = formatSuccessSummary('initialized a bit workspace.');\n\n if (!created) initMessage = formatHint('successfully re-initialized a bit workspace.');\n if (reset) initMessage = formatHint('your bit workspace has been reset successfully.');\n if (resetHard) initMessage = formatHint('your bit workspace has been hard-reset successfully.');\n if (resetScope) initMessage = formatHint('your local scope has been reset successfully.');\n\n if (agentFileWritten) {\n initMessage += formatHint(\n `\\n Created ${chalk.cyan(agentFileWritten)} — instructions for AI agents working in this workspace`\n );\n }\n\n // Add additional information for interactive mode\n if (interactiveConfig) {\n initMessage += `\\n\\n${formatTitle('Additional Information')}`;\n const defaultDirectory = interactiveConfig?.defaultDirectory || 'bit-components/{scope}/{name}';\n initMessage += `\\n Components will be created in: ${chalk.cyan(defaultDirectory)}`;\n initMessage += `\\n For CI/CD setup, visit: https://bit.dev/docs/getting-started/collaborate/exporting-components#custom-ci/cd-setup`;\n\n if (interactiveConfig.generator) {\n initMessage += `\\n Environment: ${chalk.cyan(interactiveConfig.generator)}`;\n }\n\n if (interactiveConfig.mcpEditor) {\n initMessage += `\\n MCP server configured for: ${chalk.cyan(interactiveConfig.mcpEditor)}`;\n }\n\n if (interactiveConfig.externalPackageManager) {\n initMessage += `\\n External package manager mode enabled`;\n initMessage += formatHint(\n `\\n Run ${chalk.cyan('pnpm install')} (or ${chalk.cyan('yarn install')}/${chalk.cyan('npm install')}) to install dependencies`\n );\n } else if (interactiveConfig.generator) {\n initMessage += formatHint(`\\n Run ${chalk.cyan('bit install')} to install dependencies`);\n }\n }\n\n return initMessage;\n }\n\n static slots = [];\n static dependencies = [CLIAspect, LoggerAspect];\n static runtime = MainRuntime;\n static async provider([cli, loggerMain]: [CLIMain, LoggerMain]) {\n const logger = loggerMain.createLogger(HostInitializerAspect.id);\n const hostInitializerMain = new HostInitializerMain();\n const initCmd = new InitCmd(hostInitializerMain, logger);\n cli.register(initCmd);\n return hostInitializerMain;\n }\n}\n\nHostInitializerAspect.addRuntime(HostInitializerMain);\n\nexport default HostInitializerMain;\n\n/**\n * throw an error when .bitmap is empty but a scope has objects.\n * a user may got into this state for reasons such as:\n * 1. deleting manually .bitmap hoping to re-start Bit from scratch. (probably unaware of `--reset-hard` flag).\n * 2. switching to a branch where Bit wasn't initialized\n * in which case, it's better to stop and show an error describing what needs to be done.\n * it can always be ignored by entering `--force` flag.\n */\nasync function throwForOutOfSyncScope(consumer: Consumer): Promise<void> {\n if (!consumer.bitMap.isEmpty()) return;\n const scopePath = consumer.scope.getPath();\n const objectsPath = Repository.getPathByScopePath(scopePath);\n const dirExist = await fs.pathExists(objectsPath);\n if (!dirExist) return;\n const hasObjects = !(await isDirEmpty(objectsPath));\n if (hasObjects) {\n throw new ObjectsWithoutConsumer(scopePath);\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/dist/init-cmd.js CHANGED
@@ -79,7 +79,7 @@ if already a workspace, validates and repairs Bit files as needed.
79
79
  supports various reset options to recover from corrupted state or restart from scratch.`);
80
80
  _defineProperty(this, "alias", '');
81
81
  _defineProperty(this, "loadAspects", false);
82
- _defineProperty(this, "options", [['n', 'name <workspace-name>', 'name of the workspace'], ['', 'generator <env-id>', 'for multiple, separate by a comma. add env-ids into the generators field in the workspace config for future "bit create" templates'], ['T', 'standalone', 'do not nest component store within .git directory and do not write config data inside package.json'], ['', 'no-package-json', 'do not generate package.json'], ['r', 'reset', 'write missing or damaged Bit files'], ['', 'reset-new', 'reset .bitmap file as if the components were newly added and remove all model data (objects)'], ['', 'reset-lane-new', 'same as reset-new, but it only resets components belong to lanes. main components are left intact'], ['', 'reset-hard', 'delete all Bit files and directories, including Bit configuration, tracking and model data. Useful for re-starting workspace from scratch'], ['', 'reset-scope', 'removes local scope (.bit or .git/bit). tags/snaps that have not been exported will be lost. workspace is left intact'], ['d', 'default-directory <default-directory>', 'set the default directory pattern to import/create components into'], ['', 'default-scope <default-scope>', 'set the default scope for components in the workspace'], ['f', 'force', 'force workspace initialization without clearing local objects'], ['b', 'bare [name]', 'initialize an empty bit bare scope'], ['s', 'shared <groupname>', 'add group write permissions to a scope properly'], ['', 'external-package-manager', 'enable external package manager mode (npm/yarn/pnpm)'], ['', 'skip-interactive', 'skip interactive mode for Git repositories']]);
82
+ _defineProperty(this, "options", [['n', 'name <workspace-name>', 'name of the workspace'], ['', 'generator <env-id>', 'for multiple, separate by a comma. add env-ids into the generators field in the workspace config for future "bit create" templates'], ['T', 'standalone', 'do not nest component store within .git directory and do not write config data inside package.json'], ['', 'no-package-json', 'do not generate package.json'], ['r', 'reset', 'write missing or damaged Bit files'], ['', 'reset-new', 'reset .bitmap file as if the components were newly added and remove all model data (objects)'], ['', 'reset-lane-new', 'same as reset-new, but it only resets components belong to lanes. main components are left intact'], ['', 'reset-hard', 'delete all Bit files and directories, including Bit configuration, tracking and model data. Useful for re-starting workspace from scratch'], ['', 'reset-scope', 'removes local scope (.bit or .git/bit). tags/snaps that have not been exported will be lost. workspace is left intact'], ['d', 'default-directory <default-directory>', 'set the default directory pattern to import/create components into'], ['', 'default-scope <default-scope>', 'set the default scope for components in the workspace'], ['f', 'force', 'force workspace initialization without clearing local objects'], ['b', 'bare [name]', 'initialize an empty bit bare scope'], ['s', 'shared <groupname>', 'add group write permissions to a scope properly'], ['', 'external-package-manager', 'enable external package manager mode (npm/yarn/pnpm)'], ['', 'skip-interactive', 'skip interactive mode for Git repositories'], ['', 'agent [type]', 'create an AI agent instructions file. options: claude, cursor, copilot (default: AGENTS.md)']]);
83
83
  }
84
84
  async handleInteractiveMode(projectPath, flags) {
85
85
  const {
@@ -130,7 +130,8 @@ supports various reset options to recover from corrupted state or restart from s
130
130
  force,
131
131
  defaultDirectory,
132
132
  defaultScope,
133
- externalPackageManager
133
+ externalPackageManager,
134
+ agent
134
135
  } = flags;
135
136
  if (path) path = pathlib().resolve(path);
136
137
  if (bare) {
@@ -151,10 +152,14 @@ supports various reset options to recover from corrupted state or restart from s
151
152
  name,
152
153
  externalPackageManager: interactiveConfig?.externalPackageManager || externalPackageManager
153
154
  };
155
+
156
+ // Resolve agent flag: true means no specific type (use default AGENTS.md), string means a specific tool.
157
+ const agentType = agent === true ? undefined : agent || undefined;
154
158
  const {
155
- created
156
- } = await _hostInitializerMain().HostInitializerMain.init(path, standalone, noPackageJson, reset, resetNew, resetLaneNew, resetHard, resetScope, force, workspaceExtensionProps, interactiveConfig?.generator || generator);
157
- return _hostInitializerMain().HostInitializerMain.generateInitMessage(created, reset, resetHard, resetScope, interactiveConfig);
159
+ created,
160
+ agentFileWritten
161
+ } = await _hostInitializerMain().HostInitializerMain.init(path, standalone, noPackageJson, reset, resetNew, resetLaneNew, resetHard, resetScope, force, workspaceExtensionProps, interactiveConfig?.generator || generator, agentType);
162
+ return _hostInitializerMain().HostInitializerMain.generateInitMessage(created, reset, resetHard, resetScope, interactiveConfig, agentFileWritten);
158
163
  }
159
164
  }
160
165
  exports.InitCmd = InitCmd;
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","pathlib","_interopRequireWildcard","_bitError","_configStore","_legacy","_legacy2","_cli","_hostInitializerMain","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","InitCmd","constructor","hostInitializer","logger","handleInteractiveMode","projectPath","flags","reset","resetNew","resetLaneNew","resetHard","resetScope","standalone","skipInteractive","externalPackageManager","HostInitializerMain","hasGitDirectory","hasWorkspaceInitialized","off","console","chalk","cyan","interactiveConfig","runInteractiveMode","mcpEditor","setupMcpServer","green","error","consoleWarning","message","report","path","name","generator","bare","shared","noPackageJson","force","defaultDirectory","defaultScope","resolve","BitError","bareVal","initScope","formatSuccessSummary","process","cwd","workspaceExtensionProps","getConfig","CFG_INIT_DEFAULT_DIRECTORY","CFG_INIT_DEFAULT_SCOPE","created","init","generateInitMessage","exports"],"sources":["init-cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport * as pathlib from 'path';\nimport { BitError } from '@teambit/bit-error';\nimport { getConfig } from '@teambit/config-store';\nimport { initScope } from '@teambit/legacy.scope-api';\nimport { CFG_INIT_DEFAULT_SCOPE, CFG_INIT_DEFAULT_DIRECTORY } from '@teambit/legacy.constants';\nimport type { WorkspaceExtensionProps } from '@teambit/config';\nimport type { Command, CommandOptions } from '@teambit/cli';\nimport { formatSuccessSummary } from '@teambit/cli';\nimport type { InteractiveConfig } from './host-initializer.main.runtime';\nimport { HostInitializerMain } from './host-initializer.main.runtime';\nimport type { Logger } from '@teambit/logger';\n\nexport class InitCmd implements Command {\n name = 'init [path]';\n skipWorkspace = true;\n description = 'initialize a Bit workspace in an existing project';\n helpUrl = 'reference/workspace/creating-workspaces/?new_existing_project=1';\n group = 'workspace-setup';\n extendedDescription = `creates Bit configuration files in an existing project directory to start tracking components.\nif already a workspace, validates and repairs Bit files as needed.\nsupports various reset options to recover from corrupted state or restart from scratch.`;\n alias = '';\n loadAspects = false;\n options = [\n ['n', 'name <workspace-name>', 'name of the workspace'],\n [\n '',\n 'generator <env-id>',\n 'for multiple, separate by a comma. add env-ids into the generators field in the workspace config for future \"bit create\" templates',\n ],\n [\n 'T',\n 'standalone',\n 'do not nest component store within .git directory and do not write config data inside package.json',\n ],\n ['', 'no-package-json', 'do not generate package.json'],\n ['r', 'reset', 'write missing or damaged Bit files'],\n ['', 'reset-new', 'reset .bitmap file as if the components were newly added and remove all model data (objects)'],\n [\n '',\n 'reset-lane-new',\n 'same as reset-new, but it only resets components belong to lanes. main components are left intact',\n ],\n [\n '',\n 'reset-hard',\n 'delete all Bit files and directories, including Bit configuration, tracking and model data. Useful for re-starting workspace from scratch',\n ],\n [\n '',\n 'reset-scope',\n 'removes local scope (.bit or .git/bit). tags/snaps that have not been exported will be lost. workspace is left intact',\n ],\n [\n 'd',\n 'default-directory <default-directory>',\n 'set the default directory pattern to import/create components into',\n ],\n ['', 'default-scope <default-scope>', 'set the default scope for components in the workspace'],\n ['f', 'force', 'force workspace initialization without clearing local objects'],\n ['b', 'bare [name]', 'initialize an empty bit bare scope'],\n ['s', 'shared <groupname>', 'add group write permissions to a scope properly'],\n ['', 'external-package-manager', 'enable external package manager mode (npm/yarn/pnpm)'],\n ['', 'skip-interactive', 'skip interactive mode for Git repositories'],\n ] as CommandOptions;\n\n constructor(\n private hostInitializer: HostInitializerMain,\n private logger: Logger\n ) {}\n\n private async handleInteractiveMode(\n projectPath: string,\n flags: Record<string, any>\n ): Promise<InteractiveConfig | null> {\n const {\n reset,\n resetNew,\n resetLaneNew,\n resetHard,\n resetScope,\n standalone,\n skipInteractive,\n externalPackageManager,\n } = flags;\n\n // Check if we should run interactive mode\n if (\n reset ||\n resetNew ||\n resetLaneNew ||\n resetHard ||\n resetScope ||\n standalone ||\n skipInteractive ||\n externalPackageManager ||\n !(await HostInitializerMain.hasGitDirectory(projectPath)) ||\n (await HostInitializerMain.hasWorkspaceInitialized(projectPath))\n ) {\n return null;\n }\n\n this.logger.off();\n this.logger.console(chalk.cyan('🔧 Interactive setup for existing Git repository\\n'));\n\n try {\n const interactiveConfig = await HostInitializerMain.runInteractiveMode(projectPath);\n\n // Set up MCP server if user selected an editor\n if (interactiveConfig.mcpEditor) {\n this.logger.console(chalk.cyan(`\\n🔧 Setting up MCP server for ${interactiveConfig.mcpEditor}...`));\n await HostInitializerMain.setupMcpServer(interactiveConfig.mcpEditor, projectPath);\n this.logger.console(chalk.green(`✅ MCP server configured for ${interactiveConfig.mcpEditor}`));\n }\n\n return interactiveConfig;\n } catch (error: any) {\n this.logger.consoleWarning(`Warning: Interactive setup failed: ${error.message}`);\n return null;\n }\n }\n\n async report([path]: [string], flags: Record<string, any>) {\n const {\n name,\n generator,\n bare,\n shared,\n standalone,\n noPackageJson,\n reset,\n resetNew,\n resetLaneNew,\n resetHard,\n resetScope,\n force,\n defaultDirectory,\n defaultScope,\n externalPackageManager,\n } = flags;\n\n if (path) path = pathlib.resolve(path);\n\n if (bare) {\n if (reset || resetHard) throw new BitError('--reset and --reset-hard flags are not available for bare scope');\n // Handle both cases init --bare and init --bare [scopeName]\n const bareVal = bare === true ? '' : bare;\n await initScope(path, bareVal, shared);\n return formatSuccessSummary('initialized an empty bare bit scope.');\n }\n\n if (reset && resetHard) {\n throw new BitError('cannot use both --reset and --reset-hard, please use only one of them');\n }\n\n const projectPath = path || process.cwd();\n const interactiveConfig = await this.handleInteractiveMode(projectPath, flags);\n\n const workspaceExtensionProps: WorkspaceExtensionProps & { externalPackageManager?: boolean } = {\n defaultDirectory:\n interactiveConfig?.defaultDirectory ||\n (externalPackageManager ? 'bit-components/{scope}/{name}' : defaultDirectory) ||\n getConfig(CFG_INIT_DEFAULT_DIRECTORY),\n defaultScope: defaultScope || getConfig(CFG_INIT_DEFAULT_SCOPE),\n name,\n externalPackageManager: interactiveConfig?.externalPackageManager || externalPackageManager,\n };\n\n const { created } = await HostInitializerMain.init(\n path,\n standalone,\n noPackageJson,\n reset,\n resetNew,\n resetLaneNew,\n resetHard,\n resetScope,\n force,\n workspaceExtensionProps,\n interactiveConfig?.generator || generator\n );\n\n return HostInitializerMain.generateInitMessage(created, reset, resetHard, resetScope, interactiveConfig);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","pathlib","_interopRequireWildcard","_bitError","_configStore","_legacy","_legacy2","_cli","_hostInitializerMain","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","InitCmd","constructor","hostInitializer","logger","handleInteractiveMode","projectPath","flags","reset","resetNew","resetLaneNew","resetHard","resetScope","standalone","skipInteractive","externalPackageManager","HostInitializerMain","hasGitDirectory","hasWorkspaceInitialized","off","console","chalk","cyan","interactiveConfig","runInteractiveMode","mcpEditor","setupMcpServer","green","error","consoleWarning","message","report","path","name","generator","bare","shared","noPackageJson","force","defaultDirectory","defaultScope","agent","resolve","BitError","bareVal","initScope","formatSuccessSummary","process","cwd","workspaceExtensionProps","getConfig","CFG_INIT_DEFAULT_DIRECTORY","CFG_INIT_DEFAULT_SCOPE","agentType","undefined","created","agentFileWritten","init","generateInitMessage","exports"],"sources":["init-cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport * as pathlib from 'path';\nimport { BitError } from '@teambit/bit-error';\nimport { getConfig } from '@teambit/config-store';\nimport { initScope } from '@teambit/legacy.scope-api';\nimport { CFG_INIT_DEFAULT_SCOPE, CFG_INIT_DEFAULT_DIRECTORY } from '@teambit/legacy.constants';\nimport type { WorkspaceExtensionProps } from '@teambit/config';\nimport type { Command, CommandOptions } from '@teambit/cli';\nimport { formatSuccessSummary } from '@teambit/cli';\nimport type { InteractiveConfig } from './host-initializer.main.runtime';\nimport { HostInitializerMain } from './host-initializer.main.runtime';\nimport type { Logger } from '@teambit/logger';\n\nexport class InitCmd implements Command {\n name = 'init [path]';\n skipWorkspace = true;\n description = 'initialize a Bit workspace in an existing project';\n helpUrl = 'reference/workspace/creating-workspaces/?new_existing_project=1';\n group = 'workspace-setup';\n extendedDescription = `creates Bit configuration files in an existing project directory to start tracking components.\nif already a workspace, validates and repairs Bit files as needed.\nsupports various reset options to recover from corrupted state or restart from scratch.`;\n alias = '';\n loadAspects = false;\n options = [\n ['n', 'name <workspace-name>', 'name of the workspace'],\n [\n '',\n 'generator <env-id>',\n 'for multiple, separate by a comma. add env-ids into the generators field in the workspace config for future \"bit create\" templates',\n ],\n [\n 'T',\n 'standalone',\n 'do not nest component store within .git directory and do not write config data inside package.json',\n ],\n ['', 'no-package-json', 'do not generate package.json'],\n ['r', 'reset', 'write missing or damaged Bit files'],\n ['', 'reset-new', 'reset .bitmap file as if the components were newly added and remove all model data (objects)'],\n [\n '',\n 'reset-lane-new',\n 'same as reset-new, but it only resets components belong to lanes. main components are left intact',\n ],\n [\n '',\n 'reset-hard',\n 'delete all Bit files and directories, including Bit configuration, tracking and model data. Useful for re-starting workspace from scratch',\n ],\n [\n '',\n 'reset-scope',\n 'removes local scope (.bit or .git/bit). tags/snaps that have not been exported will be lost. workspace is left intact',\n ],\n [\n 'd',\n 'default-directory <default-directory>',\n 'set the default directory pattern to import/create components into',\n ],\n ['', 'default-scope <default-scope>', 'set the default scope for components in the workspace'],\n ['f', 'force', 'force workspace initialization without clearing local objects'],\n ['b', 'bare [name]', 'initialize an empty bit bare scope'],\n ['s', 'shared <groupname>', 'add group write permissions to a scope properly'],\n ['', 'external-package-manager', 'enable external package manager mode (npm/yarn/pnpm)'],\n ['', 'skip-interactive', 'skip interactive mode for Git repositories'],\n ['', 'agent [type]', 'create an AI agent instructions file. options: claude, cursor, copilot (default: AGENTS.md)'],\n ] as CommandOptions;\n\n constructor(\n private hostInitializer: HostInitializerMain,\n private logger: Logger\n ) {}\n\n private async handleInteractiveMode(\n projectPath: string,\n flags: Record<string, any>\n ): Promise<InteractiveConfig | null> {\n const {\n reset,\n resetNew,\n resetLaneNew,\n resetHard,\n resetScope,\n standalone,\n skipInteractive,\n externalPackageManager,\n } = flags;\n\n // Check if we should run interactive mode\n if (\n reset ||\n resetNew ||\n resetLaneNew ||\n resetHard ||\n resetScope ||\n standalone ||\n skipInteractive ||\n externalPackageManager ||\n !(await HostInitializerMain.hasGitDirectory(projectPath)) ||\n (await HostInitializerMain.hasWorkspaceInitialized(projectPath))\n ) {\n return null;\n }\n\n this.logger.off();\n this.logger.console(chalk.cyan('🔧 Interactive setup for existing Git repository\\n'));\n\n try {\n const interactiveConfig = await HostInitializerMain.runInteractiveMode(projectPath);\n\n // Set up MCP server if user selected an editor\n if (interactiveConfig.mcpEditor) {\n this.logger.console(chalk.cyan(`\\n🔧 Setting up MCP server for ${interactiveConfig.mcpEditor}...`));\n await HostInitializerMain.setupMcpServer(interactiveConfig.mcpEditor, projectPath);\n this.logger.console(chalk.green(`✅ MCP server configured for ${interactiveConfig.mcpEditor}`));\n }\n\n return interactiveConfig;\n } catch (error: any) {\n this.logger.consoleWarning(`Warning: Interactive setup failed: ${error.message}`);\n return null;\n }\n }\n\n async report([path]: [string], flags: Record<string, any>) {\n const {\n name,\n generator,\n bare,\n shared,\n standalone,\n noPackageJson,\n reset,\n resetNew,\n resetLaneNew,\n resetHard,\n resetScope,\n force,\n defaultDirectory,\n defaultScope,\n externalPackageManager,\n agent,\n } = flags;\n\n if (path) path = pathlib.resolve(path);\n\n if (bare) {\n if (reset || resetHard) throw new BitError('--reset and --reset-hard flags are not available for bare scope');\n // Handle both cases init --bare and init --bare [scopeName]\n const bareVal = bare === true ? '' : bare;\n await initScope(path, bareVal, shared);\n return formatSuccessSummary('initialized an empty bare bit scope.');\n }\n\n if (reset && resetHard) {\n throw new BitError('cannot use both --reset and --reset-hard, please use only one of them');\n }\n\n const projectPath = path || process.cwd();\n const interactiveConfig = await this.handleInteractiveMode(projectPath, flags);\n\n const workspaceExtensionProps: WorkspaceExtensionProps & { externalPackageManager?: boolean } = {\n defaultDirectory:\n interactiveConfig?.defaultDirectory ||\n (externalPackageManager ? 'bit-components/{scope}/{name}' : defaultDirectory) ||\n getConfig(CFG_INIT_DEFAULT_DIRECTORY),\n defaultScope: defaultScope || getConfig(CFG_INIT_DEFAULT_SCOPE),\n name,\n externalPackageManager: interactiveConfig?.externalPackageManager || externalPackageManager,\n };\n\n // Resolve agent flag: true means no specific type (use default AGENTS.md), string means a specific tool.\n const agentType = agent === true ? undefined : agent || undefined;\n\n const { created, agentFileWritten } = await HostInitializerMain.init(\n path,\n standalone,\n noPackageJson,\n reset,\n resetNew,\n resetLaneNew,\n resetHard,\n resetScope,\n force,\n workspaceExtensionProps,\n interactiveConfig?.generator || generator,\n agentType\n );\n\n return HostInitializerMain.generateInitMessage(\n created,\n reset,\n resetHard,\n resetScope,\n interactiveConfig,\n agentFileWritten\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/host-initializer",
3
- "version": "0.0.664",
3
+ "version": "0.0.665",
4
4
  "homepage": "https://bit.cloud/teambit/harmony/host-initializer",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.harmony",
8
8
  "name": "host-initializer",
9
- "version": "0.0.664"
9
+ "version": "0.0.665"
10
10
  },
11
11
  "dependencies": {
12
12
  "lodash": "4.17.21",
@@ -31,7 +31,7 @@
31
31
  "@teambit/config-store": "0.0.196",
32
32
  "@teambit/legacy.constants": "0.0.26",
33
33
  "@teambit/legacy.scope-api": "0.0.162",
34
- "@teambit/objects": "0.0.458"
34
+ "@teambit/objects": "0.0.459"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/lodash": "4.14.165",