context-first-cli 1.3.0 ā 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -53,6 +53,7 @@ npm install -g context-first-cli
|
|
|
53
53
|
| `context-cli create:orchestrator` | Create a new orchestrator repository from a template with all necessary structure. |
|
|
54
54
|
| `context-cli add:repo` | Add a new code repository to `context-manifest.json` interactively. |
|
|
55
55
|
| `context-cli add:repo-metaspec` | Add or update the MetaSpecs repository in `context-manifest.json`. |
|
|
56
|
+
| `context-cli config:setup` | Interactively configure `ai.properties.md` for local development. |
|
|
56
57
|
|
|
57
58
|
### Workspace Commands
|
|
58
59
|
|
|
@@ -115,23 +116,22 @@ npx context-first-cli@latest add:repo
|
|
|
115
116
|
|
|
116
117
|
Each repository will be added to `context-manifest.json` with its configuration.
|
|
117
118
|
|
|
118
|
-
### Step 3: Configure Local
|
|
119
|
+
### Step 3: Configure Local Environment
|
|
119
120
|
|
|
120
|
-
|
|
121
|
+
Run `config:setup` to interactively configure your local `ai.properties.md` file.
|
|
121
122
|
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
meta_specs_path=/path/to/your/meta-specs
|
|
126
|
-
backend_path=/path/to/your/backend
|
|
127
|
-
frontend_path=/path/to/your/frontend
|
|
128
|
-
|
|
129
|
-
# Task Manager Configuration
|
|
130
|
-
task_management_system=jira
|
|
131
|
-
jira_site=https://your-org.atlassian.net
|
|
132
|
-
...
|
|
123
|
+
```bash
|
|
124
|
+
cd my-project-orchestrator/
|
|
125
|
+
npx context-first-cli@latest config:setup
|
|
133
126
|
```
|
|
134
127
|
|
|
128
|
+
This will ask for:
|
|
129
|
+
1. **Base workspace path** (where repositories will be cloned, e.g., `~/workspace`)
|
|
130
|
+
2. **Auto-clone** (whether to clone missing repositories automatically)
|
|
131
|
+
3. **Task manager** settings (Jira, Linear, etc.)
|
|
132
|
+
|
|
133
|
+
This generates an `ai.properties.md` file tailored to your machine, following the convention-over-configuration principle.
|
|
134
|
+
|
|
135
135
|
**Note**: This file is gitignored because it contains local paths specific to each developer.
|
|
136
136
|
|
|
137
137
|
### Step 4: Initialize Your Application Repositories
|
|
@@ -241,9 +241,11 @@ npx context-first-cli@latest add:repo
|
|
|
241
241
|
npx context-first-cli@latest add:repo
|
|
242
242
|
# ID: admin, URL: git@github.com:myorg/my-saas-admin.git
|
|
243
243
|
|
|
244
|
-
# 3. Configure local
|
|
245
|
-
|
|
246
|
-
#
|
|
244
|
+
# 3. Configure local environment
|
|
245
|
+
npx context-first-cli@latest config:setup
|
|
246
|
+
# Base path: ~/workspace
|
|
247
|
+
# Auto-clone: Yes
|
|
248
|
+
# Task manager: Jira
|
|
247
249
|
|
|
248
250
|
# 4. Push orchestrator to Git
|
|
249
251
|
git remote add origin git@github.com:myorg/my-saas-orchestrator.git
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-setup.d.ts","sourceRoot":"","sources":["../../src/commands/config-setup.ts"],"names":[],"mappings":"AAqBA,wBAAsB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"config-setup.d.ts","sourceRoot":"","sources":["../../src/commands/config-setup.ts"],"names":[],"mappings":"AAqBA,wBAAsB,kBAAkB,kBAiKvC"}
|
|
@@ -48,7 +48,7 @@ async function configSetupCommand() {
|
|
|
48
48
|
{
|
|
49
49
|
type: 'input',
|
|
50
50
|
name: 'basePath',
|
|
51
|
-
message: 'Base workspace path (where repositories
|
|
51
|
+
message: 'Base workspace path (where repositories will be cloned):',
|
|
52
52
|
default: defaultBasePath,
|
|
53
53
|
validate: (input) => {
|
|
54
54
|
if (!input.trim()) {
|
|
@@ -57,22 +57,13 @@ async function configSetupCommand() {
|
|
|
57
57
|
return true;
|
|
58
58
|
},
|
|
59
59
|
},
|
|
60
|
+
{
|
|
61
|
+
type: 'confirm',
|
|
62
|
+
name: 'autoClone',
|
|
63
|
+
message: 'Automatically clone missing repositories?',
|
|
64
|
+
default: true,
|
|
65
|
+
},
|
|
60
66
|
]);
|
|
61
|
-
// Get paths for each repository
|
|
62
|
-
const repoPaths = {};
|
|
63
|
-
console.log(chalk_1.default.blue('\nš Configure local paths for each repository:\n'));
|
|
64
|
-
for (const repo of manifest.repositories) {
|
|
65
|
-
const defaultPath = path_1.default.join(baseAnswers.basePath, repo.id);
|
|
66
|
-
const { repoPath } = await inquirer_1.default.prompt([
|
|
67
|
-
{
|
|
68
|
-
type: 'input',
|
|
69
|
-
name: 'repoPath',
|
|
70
|
-
message: `Path for ${chalk_1.default.cyan(repo.id)} (${repo.role}):`,
|
|
71
|
-
default: defaultPath,
|
|
72
|
-
},
|
|
73
|
-
]);
|
|
74
|
-
repoPaths[repo.id] = repoPath;
|
|
75
|
-
}
|
|
76
67
|
// Get task manager configuration
|
|
77
68
|
console.log(chalk_1.default.blue('\nšÆ Task Manager Configuration:\n'));
|
|
78
69
|
const taskAnswers = await inquirer_1.default.prompt([
|
|
@@ -114,12 +105,12 @@ async function configSetupCommand() {
|
|
|
114
105
|
content += `## Project Information\n\n`;
|
|
115
106
|
content += `project_name=${manifest.project}\n`;
|
|
116
107
|
content += `project_description=${manifest.description}\n\n`;
|
|
117
|
-
content += `## Repository
|
|
108
|
+
content += `## Repository Configuration\n\n`;
|
|
109
|
+
content += `# Base path where all repositories will be cloned\n`;
|
|
110
|
+
content += `# Each repository will be at: {base_path}/{repository-id}/\n`;
|
|
118
111
|
content += `base_path=${baseAnswers.basePath}\n\n`;
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
content += `${varName}=${repoPaths[repo.id]}\n`;
|
|
122
|
-
}
|
|
112
|
+
content += `# Automatically clone repositories if they don't exist\n`;
|
|
113
|
+
content += `auto_clone=${baseAnswers.autoClone}\n`;
|
|
123
114
|
content += `\n## Task Management\n\n`;
|
|
124
115
|
content += `task_management_system=${taskAnswers.taskManager}\n`;
|
|
125
116
|
if (taskAnswers.taskManager === 'jira') {
|
|
@@ -150,11 +141,12 @@ async function configSetupCommand() {
|
|
|
150
141
|
console.log(chalk_1.default.green('\nā
ai.properties.md created successfully!'));
|
|
151
142
|
console.log(chalk_1.default.blue('\nš Configuration summary:'));
|
|
152
143
|
console.log(chalk_1.default.gray(` Base path: ${baseAnswers.basePath}`));
|
|
144
|
+
console.log(chalk_1.default.gray(` Auto-clone: ${baseAnswers.autoClone ? 'enabled' : 'disabled'}`));
|
|
153
145
|
console.log(chalk_1.default.gray(` Task manager: ${taskAnswers.taskManager}`));
|
|
154
|
-
console.log(chalk_1.default.gray(` Repositories
|
|
146
|
+
console.log(chalk_1.default.gray(` Repositories: ${manifest.repositories.length}`));
|
|
155
147
|
console.log(chalk_1.default.blue('\nš” Next steps:'));
|
|
156
148
|
console.log(chalk_1.default.gray(' 1. Review and edit ai.properties.md to add repository commands'));
|
|
157
|
-
console.log(chalk_1.default.gray(
|
|
149
|
+
console.log(chalk_1.default.gray(` 2. Repositories will be auto-cloned to: ${baseAnswers.basePath}/{repo-id}/`));
|
|
158
150
|
console.log(chalk_1.default.gray(' 3. This file is gitignored - each developer should run this command'));
|
|
159
151
|
}
|
|
160
152
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-setup.js","sourceRoot":"","sources":["../../src/commands/config-setup.ts"],"names":[],"mappings":";;;;;AAqBA,
|
|
1
|
+
{"version":3,"file":"config-setup.js","sourceRoot":"","sources":["../../src/commands/config-setup.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED