@coralai/sps-cli 0.34.1 → 0.34.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.
@@ -1 +1 @@
1
- {"version":3,"file":"projectInit.d.ts","sourceRoot":"","sources":["../../src/commands/projectInit.ts"],"names":[],"mappings":"AA4CA,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,IAAI,CAAC,CA6Ef"}
1
+ {"version":3,"file":"projectInit.d.ts","sourceRoot":"","sources":["../../src/commands/projectInit.ts"],"names":[],"mappings":"AA6CA,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,IAAI,CAAC,CA+Nf"}
@@ -18,8 +18,9 @@
18
18
  * @outputs 初始化后的项目目录和配置文件
19
19
  * @workflow 1. 查找模板目录 → 2. 创建项目目录 → 3. 复制模板文件 → 4. 写入配置
20
20
  */
21
- import { chmodSync, copyFileSync, existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
21
+ import { chmodSync, existsSync, mkdirSync, writeFileSync } from 'node:fs';
22
22
  import { dirname, resolve } from 'node:path';
23
+ import { createInterface } from 'node:readline';
23
24
  import { fileURLToPath } from 'node:url';
24
25
  import { Logger } from '../core/logger.js';
25
26
  const HOME = process.env.HOME || '/home/coral';
@@ -66,36 +67,104 @@ export async function executeProjectInit(project, flags) {
66
67
  log.ok(`Created ${dir}`);
67
68
  }
68
69
  }
69
- // Copy batch_scheduler.sh
70
- const schedulerSrc = resolve(TEMPLATE_DIR, 'batch_scheduler.sh');
71
- const schedulerDst = resolve(instanceDir, 'batch_scheduler.sh');
72
- if (existsSync(schedulerSrc)) {
73
- copyFileSync(schedulerSrc, schedulerDst);
74
- chmodSync(schedulerDst, 0o755);
75
- log.ok('Installed batch_scheduler.sh (thin wrapper → sps tick)');
76
- }
77
- // Copy deploy.sh
78
- const deploySrc = resolve(TEMPLATE_DIR, 'deploy.sh');
79
- const deployDst = resolve(instanceDir, 'deploy.sh');
80
- if (existsSync(deploySrc) && !existsSync(deployDst)) {
81
- copyFileSync(deploySrc, deployDst);
82
- chmodSync(deployDst, 0o755);
83
- log.ok('Installed deploy.sh');
84
- }
85
- // Generate conf from template (only if conf doesn't exist)
70
+ // Generate conf — interactive if new, skip if exists
86
71
  const confDst = resolve(instanceDir, 'conf');
87
- if (!existsSync(confDst)) {
88
- const templateSrc = resolve(TEMPLATE_DIR, 'conf.template');
89
- if (existsSync(templateSrc)) {
90
- let content = readFileSync(templateSrc, 'utf-8');
91
- content = content.replace(/__PROJECT_NAME__/g, project);
92
- content = content.replace(/__PROJECT_DISPLAY__/g, project);
93
- writeFileSync(confDst, content);
94
- log.ok('Generated conf from template (edit to fill in values)');
72
+ if (!existsSync(confDst) || flags.force) {
73
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
74
+ const ask = (question, defaultValue) => {
75
+ const suffix = defaultValue ? ` [${defaultValue}]` : '';
76
+ return new Promise((res) => {
77
+ rl.question(` ${question}${suffix}: `, (answer) => {
78
+ res(answer.trim() || defaultValue || '');
79
+ });
80
+ });
81
+ };
82
+ console.log(`\n Configure project: ${project}`);
83
+ console.log(' Press Enter to accept default value.\n');
84
+ // Required
85
+ const projectDir = await ask('Repository path', resolve(HOME, 'projects', project));
86
+ const pmTool = await ask('PM backend (markdown/plane/trello)', 'markdown');
87
+ const mergeBranch = await ask('Merge target branch', 'main');
88
+ const workerTool = await ask('Default worker agent (claude/codex)', 'claude');
89
+ const maxWorkers = await ask('Max concurrent workers', '1');
90
+ // Git remote (optional)
91
+ console.log('\n ── Git Remote (optional, leave blank to skip) ──');
92
+ const gitlabProject = await ask('Git remote project path (e.g. user/repo)', '');
93
+ const gitlabProjectId = gitlabProject ? await ask('GitLab project ID (number, blank if GitHub)', '') : '';
94
+ // PM-specific
95
+ let planeProjectId = '';
96
+ let trelloBoardId = '';
97
+ if (pmTool === 'plane') {
98
+ console.log('\n ── Plane ──');
99
+ planeProjectId = await ask('Plane project ID', '');
100
+ }
101
+ else if (pmTool === 'trello') {
102
+ console.log('\n ── Trello ──');
103
+ trelloBoardId = await ask('Trello board ID', '');
104
+ }
105
+ // Notification
106
+ console.log('\n ── Notifications ──');
107
+ const matrixRoomId = await ask('Matrix room ID (blank to use global)', '');
108
+ rl.close();
109
+ // Build conf
110
+ const lines = [
111
+ '# ── Project Config ─────────────────────────────────────────────',
112
+ `# Generated by: sps project init ${project} (${new Date().toISOString().slice(0, 10)})`,
113
+ '',
114
+ `export PROJECT_NAME="${project}"`,
115
+ `export PROJECT_DIR="${projectDir}"`,
116
+ '',
117
+ '# ── Git Remote ───────────────────────────────────────────────',
118
+ ];
119
+ if (gitlabProject)
120
+ lines.push(`export GITLAB_PROJECT="${gitlabProject}"`);
121
+ else
122
+ lines.push('# export GITLAB_PROJECT="user/repo"');
123
+ if (gitlabProjectId)
124
+ lines.push(`export GITLAB_PROJECT_ID="${gitlabProjectId}"`);
125
+ else
126
+ lines.push('# export GITLAB_PROJECT_ID=""');
127
+ lines.push(`export GITLAB_MERGE_BRANCH="${mergeBranch}"`);
128
+ lines.push('');
129
+ lines.push('# ── PM Backend ───────────────────────────────────────────────');
130
+ lines.push(`export PM_TOOL="${pmTool}"`);
131
+ if (pmTool === 'plane' && planeProjectId) {
132
+ lines.push(`export PLANE_PROJECT_ID="${planeProjectId}"`);
95
133
  }
134
+ if (pmTool === 'trello' && trelloBoardId) {
135
+ lines.push(`export TRELLO_BOARD_ID="${trelloBoardId}"`);
136
+ }
137
+ lines.push('');
138
+ lines.push('# ── Pipeline ─────────────────────────────────────────────────');
139
+ lines.push('export PIPELINE_LABEL="AI-PIPELINE"');
140
+ lines.push('export MR_MODE="none"');
141
+ lines.push('');
142
+ lines.push('# ── Worker / Agent ───────────────────────────────────────────');
143
+ lines.push(`export WORKER_TOOL="${workerTool}"`);
144
+ lines.push('export WORKER_TRANSPORT="acp-sdk"');
145
+ lines.push(`export MAX_CONCURRENT_WORKERS=${maxWorkers}`);
146
+ lines.push('export MAX_ACTIONS_PER_TICK=3');
147
+ lines.push('# export DEFAULT_WORKER_SKILLS="fullstack"');
148
+ lines.push('');
149
+ lines.push('# ── Timeouts & Policies ──────────────────────────────────────');
150
+ lines.push('export INPROGRESS_TIMEOUT_HOURS=2');
151
+ lines.push('export MONITOR_AUTO_QA=true');
152
+ lines.push('export CONFLICT_DEFAULT="serial"');
153
+ lines.push('');
154
+ lines.push('# ── Notifications ────────────────────────────────────────────');
155
+ if (matrixRoomId) {
156
+ lines.push(`export MATRIX_ROOM_ID="${matrixRoomId}"`);
157
+ }
158
+ else {
159
+ lines.push('# export MATRIX_ROOM_ID="" # uses global from ~/.coral/env');
160
+ }
161
+ lines.push('');
162
+ writeFileSync(confDst, lines.join('\n') + '\n');
163
+ chmodSync(confDst, 0o600);
164
+ log.ok(`Generated conf with your settings`);
96
165
  }
97
166
  else {
98
- log.info('conf already exists, skipping (use --force to regenerate templates)');
167
+ log.info('conf already exists, skipping (use --force to regenerate)');
99
168
  }
100
169
  // Create empty pipeline_order.json if not exists
101
170
  const orderFile = resolve(instanceDir, 'pipeline_order.json');
@@ -103,11 +172,83 @@ export async function executeProjectInit(project, flags) {
103
172
  writeFileSync(orderFile, '[]\n');
104
173
  log.ok('Created empty pipeline_order.json');
105
174
  }
175
+ // Create pipelines directory with sample template
176
+ const pipelinesDir = resolve(instanceDir, 'pipelines');
177
+ if (!existsSync(pipelinesDir)) {
178
+ mkdirSync(pipelinesDir, { recursive: true });
179
+ const samplePath = resolve(pipelinesDir, 'sample.yaml.example');
180
+ writeFileSync(samplePath, `# SPS Pipeline Configuration Sample
181
+ # Rename this file to project.yaml to activate it.
182
+ # Documentation: sps-pipeline skill or docs/design/17-pipeline-configuration-design.md
183
+
184
+ mode: project
185
+
186
+ # ── Card States ──────────────────────────────────────────────────
187
+ # Only 3 fixed roles required. Intermediate states come from stages.
188
+ states:
189
+ backlog: Backlog # SPS entry point (cards with AI-PIPELINE label)
190
+ ready: Todo # Environment ready, waiting for first stage
191
+ done: Done # Last stage completed
192
+
193
+ # ── Stages ───────────────────────────────────────────────────────
194
+ # Define your development workflow. Minimum 1 stage.
195
+ # Each stage triggers on a card state, launches a worker, and moves the card on completion.
196
+
197
+ stages:
198
+ # Stage 1: Development (first stage creates branch + worktree automatically)
199
+ - name: develop
200
+ trigger: "card_enters 'Todo'"
201
+ card_state: Inprogress
202
+ agent: claude # claude / codex / gemini
203
+ # profile: fullstack # skill profile (optional, comma-separated)
204
+ completion: git-evidence # git-evidence / fast-forward-merge / exit-code
205
+ on_complete: "move_card QA"
206
+ on_fail:
207
+ action: "label NEEDS-FIX"
208
+ comment: "Development worker failed."
209
+
210
+ # Stage 2: Integration (last stage releases resources + cleans worktree)
211
+ - name: integrate
212
+ trigger: "card_enters 'QA'"
213
+ card_state: QA
214
+ agent: claude
215
+ completion: fast-forward-merge
216
+ on_complete: "move_card Done"
217
+ on_fail:
218
+ action: "label MERGE-FAILED"
219
+ comment: "Integration merge failed."
220
+ queue: fifo # serialize merges to avoid conflicts
221
+
222
+ # ── Optional: Multi-stage example ────────────────────────────────
223
+ # Uncomment to add a code review stage between develop and integrate:
224
+ #
225
+ # - name: code-review
226
+ # trigger: "card_enters 'CodeReview'"
227
+ # card_state: CodeReview
228
+ # agent: claude
229
+ # profile: reviewer
230
+ # completion: exit-code
231
+ # on_complete: "move_card QA"
232
+ #
233
+ # Then change develop's on_complete to: "move_card CodeReview"
234
+ `);
235
+ log.ok(`Created pipelines/ with sample template`);
236
+ }
106
237
  log.ok(`Project ${project} initialized at ${instanceDir}`);
107
- log.info('Next steps:');
108
- log.info(` 1. Edit ${confDst} to fill in GitLab/PM/Notification settings`);
109
- log.info(` 2. Run: sps doctor ${project} --fix`);
110
- log.info(` 3. Run: sps card add ${project} "task title" "description"`);
111
- log.info(` 4. Run: sps tick ${project}`);
238
+ console.log('\n Next steps:\n');
239
+ console.log(` 1. Create pipeline config:`);
240
+ console.log(` cp ${resolve(instanceDir, 'pipelines', 'sample.yaml.example')} ${resolve(instanceDir, 'pipelines', 'project.yaml')}`);
241
+ console.log(` vim ${resolve(instanceDir, 'pipelines', 'project.yaml')}`);
242
+ console.log(` Or use: sps agent --chat → "帮我创建 pipeline"`);
243
+ console.log('');
244
+ console.log(` 2. Run health check:`);
245
+ console.log(` sps doctor ${project} --fix`);
246
+ console.log('');
247
+ console.log(` 3. Add task cards:`);
248
+ console.log(` sps card add ${project} "task title" "description"`);
249
+ console.log('');
250
+ console.log(` 4. Start pipeline:`);
251
+ console.log(` sps tick ${project}`);
252
+ console.log('');
112
253
  }
113
254
  //# sourceMappingURL=projectInit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"projectInit.js","sourceRoot":"","sources":["../../src/commands/projectInit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projectInit.js","sourceRoot":"","sources":["../../src/commands/projectInit.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coralai/sps-cli",
3
- "version": "0.34.1",
3
+ "version": "0.34.2",
4
4
  "description": "SPS CLI — AI-driven development pipeline orchestrator",
5
5
  "type": "module",
6
6
  "main": "dist/main.js",