@rpamis/comet 0.3.2 → 0.3.4
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/LICENSE +21 -21
- package/README.md +88 -68
- package/bin/comet.js +3 -3
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +18 -7
- package/dist/commands/doctor.js.map +1 -1
- package/dist/core/openspec.d.ts +7 -3
- package/dist/core/openspec.d.ts.map +1 -1
- package/dist/core/openspec.js +147 -22
- package/dist/core/openspec.js.map +1 -1
- package/dist/core/superpowers.d.ts +8 -2
- package/dist/core/superpowers.d.ts.map +1 -1
- package/dist/core/superpowers.js +25 -12
- package/dist/core/superpowers.js.map +1 -1
- package/dist/utils/file-system.d.ts.map +1 -1
- package/dist/utils/file-system.js +6 -2
- package/dist/utils/file-system.js.map +1 -1
- package/package.json +1 -1
- package/scripts/postinstall.js +44 -44
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 rpamis
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 rpamis
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -28,13 +28,13 @@
|
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
> 中文版:[README-zh.md](README-zh.md)
|
|
31
|
-
> [
|
|
31
|
+
> [Bilibili video](https://www.bilibili.com/video/BV1y4Gi6CEo1/?spm_id_from=333.1387.homepage.video_card.click&vd_source=d22726fe6b108647dbebf1c5d8817377)
|
|
32
32
|
|
|
33
33
|
**OpenSpec + Superpowers dual-star development workflow** — one command from idea to archive.
|
|
34
34
|
|
|
35
|
-
OpenSpec handles **WHAT** (outlines, proposals, spec lifecycle, archiving).
|
|
35
|
+
OpenSpec handles **WHAT** (outlines, proposals, spec lifecycle, archiving).
|
|
36
36
|
|
|
37
|
-
Superpowers handles **HOW** (technical design, planning, execution, wrap-up).
|
|
37
|
+
Superpowers handles **HOW** (technical design, planning, execution, wrap-up).
|
|
38
38
|
|
|
39
39
|
Comet chains both into a five-phase automated pipeline.
|
|
40
40
|
|
|
@@ -46,7 +46,7 @@ Superpowers generates Spec documents after brainstorming, but these documents ty
|
|
|
46
46
|
|
|
47
47
|
**Comet combines the strengths of both**, integrating the core workflow into 5 phases
|
|
48
48
|
|
|
49
|
-
The main entry `/comet` supports current Spec state detection, suitable for long tasks — after
|
|
49
|
+
The main entry `/comet` supports current Spec state detection, suitable for long tasks — after closing your AI coding session midway, just `/comet` and Comet will automatically read the active Spec (lists multiple for selection), dynamically identify which phase is currently executing, and continue.
|
|
50
50
|
|
|
51
51
|
At the same time, Comet provides full Spec lifecycle management. During execution, it links OpenSpec change/spec artifacts with Superpowers design and planning documents, then automates handoff, state updates, validation, and archive sync so users do not have to repeatedly remind the Agent to keep documents synchronized and connected.
|
|
52
52
|
|
|
@@ -72,6 +72,13 @@ Long-term Skill users know these capabilities can be freely combined, but exactl
|
|
|
72
72
|
|
|
73
73
|
## Install
|
|
74
74
|
|
|
75
|
+
Requirements:
|
|
76
|
+
|
|
77
|
+
- Node.js 20+
|
|
78
|
+
- npm/npx
|
|
79
|
+
- Git
|
|
80
|
+
- Bash-compatible shell for workflow scripts (Windows users should use Git Bash or an equivalent bash environment)
|
|
81
|
+
|
|
75
82
|
```bash
|
|
76
83
|
npm install -g @rpamis/comet
|
|
77
84
|
```
|
|
@@ -100,6 +107,8 @@ comet init
|
|
|
100
107
|
|
|
101
108
|
## Support for OpenClaw and Hermes, and other AI platforms
|
|
102
109
|
|
|
110
|
+
For platforms that use the generic `skills` CLI directly, you can install the Comet skill package with:
|
|
111
|
+
|
|
103
112
|
```bash
|
|
104
113
|
npx skills add rpamis/comet
|
|
105
114
|
```
|
|
@@ -120,13 +129,13 @@ npx skills add rpamis/comet
|
|
|
120
129
|
|
|
121
130
|
Initializes OpenSpec, Superpowers, and Comet skills for selected AI coding platforms.
|
|
122
131
|
|
|
123
|
-
| Option
|
|
124
|
-
|
|
125
|
-
| `--yes`
|
|
126
|
-
| `--scope <scope>` | Install scope: `project` or `global`
|
|
127
|
-
| `--skip-existing` | Skip already installed components
|
|
128
|
-
| `--overwrite`
|
|
129
|
-
| `--json`
|
|
132
|
+
| Option | Description |
|
|
133
|
+
| ----------------- | ------------------------------------------------------------------------------ |
|
|
134
|
+
| `--yes` | Non-interactive mode, auto-select detected platforms (or all if none detected) |
|
|
135
|
+
| `--scope <scope>` | Install scope: `project` or `global` |
|
|
136
|
+
| `--skip-existing` | Skip already installed components |
|
|
137
|
+
| `--overwrite` | Overwrite already installed components |
|
|
138
|
+
| `--json` | Output structured JSON |
|
|
130
139
|
|
|
131
140
|
When multiple existing components are found on the same platform, interactive init offers one bulk choice: overwrite all, skip all, or choose per component.
|
|
132
141
|
|
|
@@ -137,8 +146,8 @@ When multiple existing components are found on the same platform, interactive in
|
|
|
137
146
|
|
|
138
147
|
Displays active changes, task progress, and the recommended next Comet workflow command.
|
|
139
148
|
|
|
140
|
-
| Option
|
|
141
|
-
|
|
149
|
+
| Option | Description |
|
|
150
|
+
| -------- | ---------------------------------------- |
|
|
142
151
|
| `--json` | Output active changes with `nextCommand` |
|
|
143
152
|
|
|
144
153
|
</details>
|
|
@@ -148,9 +157,9 @@ Displays active changes, task progress, and the recommended next Comet workflow
|
|
|
148
157
|
|
|
149
158
|
Checks project/global installation health, working directories, installed skills, scripts, and Comet state files.
|
|
150
159
|
|
|
151
|
-
| Option
|
|
152
|
-
|
|
153
|
-
| `--json`
|
|
160
|
+
| Option | Description |
|
|
161
|
+
| ----------------- | --------------------------------------------------------------- |
|
|
162
|
+
| `--json` | Output structured diagnostic results |
|
|
154
163
|
| `--scope <scope>` | Diagnose `auto`, `project`, or `global` scope (default: `auto`) |
|
|
155
164
|
|
|
156
165
|
</details>
|
|
@@ -160,17 +169,17 @@ Checks project/global installation health, working directories, installed skills
|
|
|
160
169
|
|
|
161
170
|
Updates the npm package and refreshes installed Comet skills in detected project/global targets.
|
|
162
171
|
|
|
163
|
-
| Option
|
|
164
|
-
|
|
165
|
-
| `--json`
|
|
172
|
+
| Option | Description |
|
|
173
|
+
| ------------------- | --------------------------------------------- |
|
|
174
|
+
| `--json` | Output npm and skill update results as JSON |
|
|
166
175
|
| `--language <lang>` | Override detected skill language (`en`, `zh`) |
|
|
167
|
-
| `--scope <scope>`
|
|
176
|
+
| `--scope <scope>` | Update only `global` or `project` scope |
|
|
168
177
|
|
|
169
178
|
</details>
|
|
170
179
|
|
|
171
|
-
| Command
|
|
172
|
-
|
|
173
|
-
| `comet --help`
|
|
180
|
+
| Command | Description |
|
|
181
|
+
| ----------------- | ------------ |
|
|
182
|
+
| `comet --help` | Show help |
|
|
174
183
|
| `comet --version` | Show version |
|
|
175
184
|
|
|
176
185
|
## Supported Platforms
|
|
@@ -180,25 +189,27 @@ Updates the npm package and refreshes installed Comet skills in detected project
|
|
|
180
189
|
<details>
|
|
181
190
|
<summary>View full platform list</summary>
|
|
182
191
|
|
|
183
|
-
| Platform
|
|
184
|
-
|
|
185
|
-
| Claude Code
|
|
186
|
-
| Codex
|
|
187
|
-
| Windsurf
|
|
188
|
-
| RooCode
|
|
189
|
-
| GitHub Copilot
|
|
190
|
-
| Amazon Q Developer | `.amazonq/`
|
|
191
|
-
| Kilo Code
|
|
192
|
-
| Kiro
|
|
193
|
-
| Junie
|
|
194
|
-
| CoStrict
|
|
195
|
-
| Factory Droid
|
|
196
|
-
| Pi
|
|
197
|
-
| Antigravity
|
|
198
|
-
| ForgeCode
|
|
192
|
+
| Platform | Skills Dir | Platform | Skills Dir |
|
|
193
|
+
| ------------------ | ------------ | ---------- | ------------- |
|
|
194
|
+
| Claude Code | `.claude/` | Cursor | `.cursor/` |
|
|
195
|
+
| Codex | `.codex/` | OpenCode | `.opencode/` |
|
|
196
|
+
| Windsurf | `.windsurf/` | Cline | `.cline/` |
|
|
197
|
+
| RooCode | `.roo/` | Continue | `.continue/` |
|
|
198
|
+
| GitHub Copilot | `.github/` | Gemini CLI | `.gemini/` |
|
|
199
|
+
| Amazon Q Developer | `.amazonq/` | Qwen Code | `.qwen/` |
|
|
200
|
+
| Kilo Code | `.kilocode/` | Auggie | `.augment/` |
|
|
201
|
+
| Kiro | `.kiro/` | Lingma | `.lingma/` |
|
|
202
|
+
| Junie | `.junie/` | CodeBuddy | `.codebuddy/` |
|
|
203
|
+
| CoStrict | `.cospec/` | Crush | `.crush/` |
|
|
204
|
+
| Factory Droid | `.factory/` | iFlow | `.iflow/` |
|
|
205
|
+
| Pi | `.pi/` | Qoder | `.qoder/` |
|
|
206
|
+
| Antigravity | `.agents/` | Bob Shell | `.bob/` |
|
|
207
|
+
| ForgeCode | `.forge/` | Trae | `.trae/` |
|
|
199
208
|
|
|
200
209
|
</details>
|
|
201
210
|
|
|
211
|
+
Some platforms use different project and global directories. For example, OpenCode global installs use `.config/opencode`, Lingma global installs use `.lingma`, and Antigravity global installs use `.gemini/antigravity`.
|
|
212
|
+
|
|
202
213
|
## Skills
|
|
203
214
|
|
|
204
215
|
After `comet init`, three groups of skills are installed to the selected platform's `skills/` directory:
|
|
@@ -208,16 +219,16 @@ After `comet init`, three groups of skills are installed to the selected platfor
|
|
|
208
219
|
<details>
|
|
209
220
|
<summary>View Comet skills</summary>
|
|
210
221
|
|
|
211
|
-
| Skill
|
|
212
|
-
|
|
213
|
-
| `/comet`
|
|
214
|
-
| `/comet-open`
|
|
215
|
-
| `/comet-design`
|
|
216
|
-
| `/comet-build`
|
|
217
|
-
| `/comet-verify`
|
|
218
|
-
| `/comet-archive` | Phase 5: Archive (delta spec sync, status annotation)
|
|
219
|
-
| `/comet-hotfix`
|
|
220
|
-
| `/comet-tweak`
|
|
222
|
+
| Skill | Description |
|
|
223
|
+
| ---------------- | -------------------------------------------------------------- |
|
|
224
|
+
| `/comet` | Main entry — auto-detects phase and dispatches to sub-commands |
|
|
225
|
+
| `/comet-open` | Phase 1: Open a change (proposal, design, task breakdown) |
|
|
226
|
+
| `/comet-design` | Phase 2: Deep design (brainstorming, Design Doc) |
|
|
227
|
+
| `/comet-build` | Phase 3: Plan and build (implementation plan, code commits) |
|
|
228
|
+
| `/comet-verify` | Phase 4: Verify and finish (testing, verification report) |
|
|
229
|
+
| `/comet-archive` | Phase 5: Archive (delta spec sync, status annotation) |
|
|
230
|
+
| `/comet-hotfix` | Preset: Quick bug fix (skips brainstorming) |
|
|
231
|
+
| `/comet-tweak` | Preset: Small change (skips brainstorming and full plan) |
|
|
221
232
|
|
|
222
233
|
</details>
|
|
223
234
|
|
|
@@ -226,13 +237,14 @@ After `comet init`, three groups of skills are installed to the selected platfor
|
|
|
226
237
|
<details>
|
|
227
238
|
<summary>View script list</summary>
|
|
228
239
|
|
|
229
|
-
| Script
|
|
230
|
-
|
|
231
|
-
| `comet-
|
|
232
|
-
| `comet-
|
|
233
|
-
| `comet-
|
|
234
|
-
| `comet-
|
|
235
|
-
| `comet-
|
|
240
|
+
| Script | Purpose |
|
|
241
|
+
| ------------------------ | ----------------------------------------------------------------------------------------------------- |
|
|
242
|
+
| `comet-env.sh` | Script discovery helper — exports bundled script paths such as `COMET_GUARD`, `COMET_STATE`, `COMET_HANDOFF`, and `COMET_ARCHIVE` |
|
|
243
|
+
| `comet-guard.sh` | Phase transition guard — validates exit conditions, `--apply` auto-updates `.comet.yaml` |
|
|
244
|
+
| `comet-handoff.sh` | Design handoff — generates deterministic context packages from OpenSpec artifacts with SHA256 tracing |
|
|
245
|
+
| `comet-archive.sh` | One-command archive — validates state, syncs specs, moves to archive, updates status |
|
|
246
|
+
| `comet-yaml-validate.sh` | Schema validator — validates `.comet.yaml` structure and field values |
|
|
247
|
+
| `comet-state.sh` | Unified state management — init/set/get/check/scale, agents' exclusive YAML interface |
|
|
236
248
|
|
|
237
249
|
</details>
|
|
238
250
|
|
|
@@ -261,13 +273,13 @@ Development methodology: brainstorming, TDD, subagent-driven development, code r
|
|
|
261
273
|
|
|
262
274
|
### Five Phases
|
|
263
275
|
|
|
264
|
-
| Phase
|
|
265
|
-
|
|
266
|
-
| 1. Open
|
|
267
|
-
| 2. Deep Design
|
|
268
|
-
| 3. Plan & Build
|
|
269
|
-
| 4. Verify & Finish | `/comet-verify`
|
|
270
|
-
| 5. Archive
|
|
276
|
+
| Phase | Command | Owner | Artifacts |
|
|
277
|
+
| ------------------ | ---------------- | ----------- | ------------------------------------ |
|
|
278
|
+
| 1. Open | `/comet-open` | OpenSpec | proposal.md, design.md, tasks.md |
|
|
279
|
+
| 2. Deep Design | `/comet-design` | Superpowers | Design Doc, delta spec |
|
|
280
|
+
| 3. Plan & Build | `/comet-build` | Superpowers | Implementation plan, code commits |
|
|
281
|
+
| 4. Verify & Finish | `/comet-verify` | Both | Verification report, branch handling |
|
|
282
|
+
| 5. Archive | `/comet-archive` | OpenSpec | delta→main spec sync, archive |
|
|
271
283
|
|
|
272
284
|
### Core Principles
|
|
273
285
|
|
|
@@ -281,10 +293,10 @@ Development methodology: brainstorming, TDD, subagent-driven development, code r
|
|
|
281
293
|
|
|
282
294
|
Comet uses a decoupled state architecture with separate YAML files:
|
|
283
295
|
|
|
284
|
-
| File
|
|
285
|
-
|
|
286
|
-
| `.openspec.yaml` | OpenSpec | Spec lifecycle, change metadata
|
|
287
|
-
| `.comet.yaml`
|
|
296
|
+
| File | Owner | Purpose |
|
|
297
|
+
| ---------------- | -------- | --------------------------------------------------- |
|
|
298
|
+
| `.openspec.yaml` | OpenSpec | Spec lifecycle, change metadata |
|
|
299
|
+
| `.comet.yaml` | Comet | Workflow phase, execution mode, verification status |
|
|
288
300
|
|
|
289
301
|
All states and execution phases are updated via scripts, and each phase verifies that tasks are truly complete before advancing. Compared to storing complex state rules only in Skill text, this script-backed state machine gives Comet more reliable phase transitions, correct YAML, and easier breakpoint recovery; agents can read the current Spec situation through Comet's built-in commands.
|
|
290
302
|
|
|
@@ -367,6 +379,7 @@ your-project/
|
|
|
367
379
|
│ ├── comet/SKILL.md
|
|
368
380
|
│ │ └── scripts/
|
|
369
381
|
│ │ ├── comet-guard.sh # Phase transition guard (--apply auto-updates state)
|
|
382
|
+
│ │ ├── comet-env.sh # Script discovery helper
|
|
370
383
|
│ │ ├── comet-handoff.sh # Design handoff (OpenSpec → Superpowers context tracing)
|
|
371
384
|
│ │ ├── comet-archive.sh # One-command archive automation
|
|
372
385
|
│ │ ├── comet-yaml-validate.sh # Schema validator
|
|
@@ -403,9 +416,16 @@ Track our development progress and upcoming features on the [Comet Roadmap](http
|
|
|
403
416
|
|
|
404
417
|
[](https://star-history.com/#rpamis/comet&Date)
|
|
405
418
|
|
|
419
|
+
## Contributors
|
|
420
|
+
|
|
421
|
+
<a href="https://github.com/rpamis/comet/graphs/contributors">
|
|
422
|
+
<img src="https://contrib.rocks/image?repo=rpamis/comet&max=999&columns=12&anon=1" />
|
|
423
|
+
</a>
|
|
424
|
+
|
|
406
425
|
## License
|
|
407
426
|
|
|
408
|
-
[MIT](LICENSE
|
|
427
|
+
[MIT](LICENSE)
|
|
409
428
|
|
|
410
429
|
## Reference
|
|
430
|
+
|
|
411
431
|
[LINUX DO - 新的理想型社区](https://linux.do/)
|
package/bin/comet.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
import '../dist/cli/index.js';
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import '../dist/cli/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAQrD,KAAK,WAAW,GAAG,YAAY,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAQrD,KAAK,WAAW,GAAG,YAAY,GAAG,MAAM,CAAC;AA2NzC,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAiBf"}
|
package/dist/commands/doctor.js
CHANGED
|
@@ -20,6 +20,23 @@ const VALID_YAML_FIELDS = new Set([
|
|
|
20
20
|
'archived',
|
|
21
21
|
'verified_at',
|
|
22
22
|
]);
|
|
23
|
+
function collectTopLevelYamlKeys(yamlContent) {
|
|
24
|
+
const topLevelKeys = [];
|
|
25
|
+
for (const line of yamlContent.split(/\r?\n/u)) {
|
|
26
|
+
const trimmedLine = line.trim();
|
|
27
|
+
if (!trimmedLine || trimmedLine.startsWith('#'))
|
|
28
|
+
continue;
|
|
29
|
+
if (/^\s/u.test(line))
|
|
30
|
+
continue;
|
|
31
|
+
if (trimmedLine.startsWith('- '))
|
|
32
|
+
continue;
|
|
33
|
+
const keyMatch = line.match(/^['"]?([A-Za-z0-9_-]+)['"]?\s*:/u);
|
|
34
|
+
if (keyMatch) {
|
|
35
|
+
topLevelKeys.push(keyMatch[1]);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return topLevelKeys;
|
|
39
|
+
}
|
|
23
40
|
async function checkOpenSpecCli() {
|
|
24
41
|
if (!isCommandAvailable('openspec')) {
|
|
25
42
|
return {
|
|
@@ -145,13 +162,7 @@ async function checkCometYamlValidity(projectPath) {
|
|
|
145
162
|
if (!(await fileExists(yamlPath)))
|
|
146
163
|
continue;
|
|
147
164
|
const raw = await fs.readFile(yamlPath, 'utf-8');
|
|
148
|
-
const unknownFields =
|
|
149
|
-
for (const line of raw.split('\n')) {
|
|
150
|
-
const match = line.match(/^(\w[\w_]*):/);
|
|
151
|
-
if (match && !VALID_YAML_FIELDS.has(match[1])) {
|
|
152
|
-
unknownFields.push(match[1]);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
165
|
+
const unknownFields = collectTopLevelYamlKeys(raw).filter((key) => !VALID_YAML_FIELDS.has(key));
|
|
155
166
|
results.push(unknownFields.length === 0
|
|
156
167
|
? { check: `.comet.yaml: ${entry}`, status: 'pass', message: 'valid' }
|
|
157
168
|
: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/core/openspec.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type { InstallScope } from './types.js';
|
|
2
|
-
declare function
|
|
3
|
-
declare function
|
|
2
|
+
declare function getNpmExecutable(platform?: NodeJS.Platform): string;
|
|
3
|
+
declare function buildOpenSpecInitInvocation(projectPath: string, toolIds: string[], scope: InstallScope, homeDir?: string): {
|
|
4
|
+
command: string;
|
|
5
|
+
args: string[];
|
|
6
|
+
};
|
|
4
7
|
declare function isCommandAvailable(command: string): boolean;
|
|
8
|
+
declare function migrateOpenCodeOpenSpecPaths(homeDir: string): void;
|
|
5
9
|
declare function installOpenSpec(projectPath: string, toolIds: string[], scope: InstallScope): Promise<'installed' | 'failed' | 'skipped'>;
|
|
6
|
-
export { installOpenSpec, isCommandAvailable,
|
|
10
|
+
export { installOpenSpec, isCommandAvailable, buildOpenSpecInitInvocation, getNpmExecutable, migrateOpenCodeOpenSpecPaths, };
|
|
7
11
|
//# sourceMappingURL=openspec.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openspec.d.ts","sourceRoot":"","sources":["../../src/core/openspec.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAiB/C,iBAAS,
|
|
1
|
+
{"version":3,"file":"openspec.d.ts","sourceRoot":"","sources":["../../src/core/openspec.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAiB/C,iBAAS,gBAAgB,CAAC,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAAG,MAAM,CAE9E;AAED,iBAAS,2BAA2B,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EAAE,EACjB,KAAK,EAAE,YAAY,EACnB,OAAO,SAAe,GACrB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAMrC;AA0GD,iBAAS,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQpD;AA2BD,iBAAS,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CA+C3D;AAED,iBAAe,eAAe,CAC5B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EAAE,EACjB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC,CA8C7C;AAED,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,2BAA2B,EAC3B,gBAAgB,EAChB,4BAA4B,GAC7B,CAAC"}
|
package/dist/core/openspec.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { execFileSync } from 'child_process';
|
|
2
2
|
import fs from 'fs';
|
|
3
3
|
import os from 'os';
|
|
4
4
|
import path from 'path';
|
|
@@ -18,27 +18,46 @@ const ALL_OPENSPEC_WORKFLOWS = [
|
|
|
18
18
|
'verify',
|
|
19
19
|
'onboard',
|
|
20
20
|
];
|
|
21
|
-
function
|
|
21
|
+
function getNpmExecutable(platform = process.platform) {
|
|
22
|
+
return platform === 'win32' ? 'npm.cmd' : 'npm';
|
|
23
|
+
}
|
|
24
|
+
function buildOpenSpecInitInvocation(projectPath, toolIds, scope, homeDir = os.homedir()) {
|
|
25
|
+
const targetPath = scope === 'global' ? homeDir : projectPath;
|
|
26
|
+
return {
|
|
27
|
+
command: 'openspec',
|
|
28
|
+
args: ['init', targetPath, '--tools', toolIds.join(','), '--profile', 'custom'],
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
const ALL_WORKFLOWS_CONFIG = JSON.stringify({
|
|
32
|
+
featureFlags: {},
|
|
33
|
+
profile: 'custom',
|
|
34
|
+
delivery: 'both',
|
|
35
|
+
workflows: [...ALL_OPENSPEC_WORKFLOWS],
|
|
36
|
+
}, null, 2) + '\n';
|
|
37
|
+
function getOpenSpecDefaultConfigDir() {
|
|
38
|
+
const platform = os.platform();
|
|
22
39
|
if (platform === 'win32') {
|
|
23
|
-
|
|
40
|
+
const appData = process.env.APPDATA;
|
|
41
|
+
if (appData) {
|
|
42
|
+
return path.join(appData, 'openspec');
|
|
43
|
+
}
|
|
44
|
+
return path.join(os.homedir(), 'AppData', 'Roaming', 'openspec');
|
|
24
45
|
}
|
|
25
|
-
|
|
46
|
+
const xdgConfig = process.env.XDG_CONFIG_HOME;
|
|
47
|
+
if (xdgConfig) {
|
|
48
|
+
return path.join(xdgConfig, 'openspec');
|
|
49
|
+
}
|
|
50
|
+
return path.join(os.homedir(), '.config', 'openspec');
|
|
26
51
|
}
|
|
27
|
-
function
|
|
28
|
-
|
|
29
|
-
return `openspec init ${quoteShellArg(targetPath, platform)} --tools ${quoteShellArg(toolIds.join(','), platform)} --profile custom`;
|
|
52
|
+
function getOpenSpecDefaultConfigPath() {
|
|
53
|
+
return path.join(getOpenSpecDefaultConfigDir(), 'config.json');
|
|
30
54
|
}
|
|
31
55
|
function createOpenSpecAllWorkflowsEnv() {
|
|
32
56
|
const configHome = fs.mkdtempSync(path.join(os.tmpdir(), 'comet-openspec-profile-'));
|
|
33
57
|
try {
|
|
34
58
|
const openspecConfigDir = path.join(configHome, 'openspec');
|
|
35
59
|
fs.mkdirSync(openspecConfigDir, { recursive: true });
|
|
36
|
-
fs.writeFileSync(path.join(openspecConfigDir, 'config.json'),
|
|
37
|
-
featureFlags: {},
|
|
38
|
-
profile: 'custom',
|
|
39
|
-
delivery: 'both',
|
|
40
|
-
workflows: [...ALL_OPENSPEC_WORKFLOWS],
|
|
41
|
-
}, null, 2) + '\n', 'utf-8');
|
|
60
|
+
fs.writeFileSync(path.join(openspecConfigDir, 'config.json'), ALL_WORKFLOWS_CONFIG, 'utf-8');
|
|
42
61
|
return {
|
|
43
62
|
configHome,
|
|
44
63
|
env: {
|
|
@@ -52,10 +71,56 @@ function createOpenSpecAllWorkflowsEnv() {
|
|
|
52
71
|
throw error;
|
|
53
72
|
}
|
|
54
73
|
}
|
|
74
|
+
function writeAllWorkflowsToDefaultConfig() {
|
|
75
|
+
const configPath = getOpenSpecDefaultConfigPath();
|
|
76
|
+
const backupPath = configPath + '.comet-backup';
|
|
77
|
+
let hadExisting = false;
|
|
78
|
+
try {
|
|
79
|
+
hadExisting = fs.existsSync(configPath);
|
|
80
|
+
if (hadExisting) {
|
|
81
|
+
fs.copyFileSync(configPath, backupPath);
|
|
82
|
+
}
|
|
83
|
+
const configDir = path.dirname(configPath);
|
|
84
|
+
if (!fs.existsSync(configDir)) {
|
|
85
|
+
fs.mkdirSync(configDir, { recursive: true });
|
|
86
|
+
}
|
|
87
|
+
fs.writeFileSync(configPath, ALL_WORKFLOWS_CONFIG, 'utf-8');
|
|
88
|
+
return { configPath, backupPath, hadExisting };
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
if (hadExisting) {
|
|
92
|
+
try {
|
|
93
|
+
fs.unlinkSync(backupPath);
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
// Best-effort cleanup
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
function restoreDefaultConfig(backup) {
|
|
103
|
+
if (!backup)
|
|
104
|
+
return;
|
|
105
|
+
try {
|
|
106
|
+
if (backup.hadExisting) {
|
|
107
|
+
fs.copyFileSync(backup.backupPath, backup.configPath);
|
|
108
|
+
fs.unlinkSync(backup.backupPath);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
if (fs.existsSync(backup.configPath)) {
|
|
112
|
+
fs.unlinkSync(backup.configPath);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
// Best-effort restore
|
|
118
|
+
}
|
|
119
|
+
}
|
|
55
120
|
function isCommandAvailable(command) {
|
|
56
121
|
try {
|
|
57
|
-
const
|
|
58
|
-
|
|
122
|
+
const checker = process.platform === 'win32' ? 'where' : 'which';
|
|
123
|
+
execFileSync(checker, [command], { stdio: 'ignore', timeout: 10_000 });
|
|
59
124
|
return true;
|
|
60
125
|
}
|
|
61
126
|
catch {
|
|
@@ -68,10 +133,15 @@ async function ensureOpenSpecCli(scope, projectPath) {
|
|
|
68
133
|
}
|
|
69
134
|
console.log(` Installing OpenSpec CLI...`);
|
|
70
135
|
try {
|
|
71
|
-
const
|
|
72
|
-
? '
|
|
73
|
-
: '
|
|
74
|
-
|
|
136
|
+
const npmArgs = scope === 'global'
|
|
137
|
+
? ['install', '-g', '@fission-ai/openspec@latest']
|
|
138
|
+
: ['install', '@fission-ai/openspec@latest'];
|
|
139
|
+
execFileSync(getNpmExecutable(), npmArgs, {
|
|
140
|
+
cwd: projectPath,
|
|
141
|
+
stdio: 'inherit',
|
|
142
|
+
timeout: 120_000,
|
|
143
|
+
shell: process.platform === 'win32',
|
|
144
|
+
});
|
|
75
145
|
return isCommandAvailable('openspec');
|
|
76
146
|
}
|
|
77
147
|
catch (error) {
|
|
@@ -80,6 +150,53 @@ async function ensureOpenSpecCli(scope, projectPath) {
|
|
|
80
150
|
return false;
|
|
81
151
|
}
|
|
82
152
|
}
|
|
153
|
+
function migrateOpenCodeOpenSpecPaths(homeDir) {
|
|
154
|
+
const opencodePlatform = PLATFORMS.find((p) => p.id === 'opencode');
|
|
155
|
+
if (!opencodePlatform?.globalSkillsDir)
|
|
156
|
+
return;
|
|
157
|
+
// OpenSpec hardcodes skillsDir as '.opencode' in its AI_TOOLS, so it writes
|
|
158
|
+
// to ~/.opencode/ even for global installs. OpenCode actually reads from
|
|
159
|
+
// ~/.config/opencode/ (Comet's globalSkillsDir). Move the files over.
|
|
160
|
+
const wrongDir = path.join(homeDir, opencodePlatform.skillsDir);
|
|
161
|
+
const correctDir = path.join(homeDir, opencodePlatform.globalSkillsDir);
|
|
162
|
+
const migrations = [
|
|
163
|
+
[path.join(wrongDir, 'skills'), path.join(correctDir, 'skills'), 'skills'],
|
|
164
|
+
[path.join(wrongDir, 'commands'), path.join(correctDir, 'commands'), 'commands'],
|
|
165
|
+
];
|
|
166
|
+
for (const [srcDir, destDir, label] of migrations) {
|
|
167
|
+
if (srcDir === destDir)
|
|
168
|
+
continue;
|
|
169
|
+
if (!fs.existsSync(srcDir))
|
|
170
|
+
continue;
|
|
171
|
+
try {
|
|
172
|
+
const entries = fs.readdirSync(srcDir);
|
|
173
|
+
if (entries.length === 0)
|
|
174
|
+
continue;
|
|
175
|
+
fs.mkdirSync(destDir, { recursive: true });
|
|
176
|
+
for (const entry of entries) {
|
|
177
|
+
const srcPath = path.join(srcDir, entry);
|
|
178
|
+
const destPath = path.join(destDir, entry);
|
|
179
|
+
fs.cpSync(srcPath, destPath, { recursive: true, force: true });
|
|
180
|
+
}
|
|
181
|
+
fs.rmSync(srcDir, { recursive: true, force: true });
|
|
182
|
+
}
|
|
183
|
+
catch (error) {
|
|
184
|
+
console.error(` Warning: failed to migrate OpenSpec ${label} from ${srcDir} to ${destDir}: ${error.message}`);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
// Remove wrong parent directory if both skills and commands have been migrated
|
|
188
|
+
if (fs.existsSync(wrongDir)) {
|
|
189
|
+
try {
|
|
190
|
+
const remaining = fs.readdirSync(wrongDir);
|
|
191
|
+
if (remaining.length === 0) {
|
|
192
|
+
fs.rmdirSync(wrongDir);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
catch {
|
|
196
|
+
// Best-effort cleanup
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
83
200
|
async function installOpenSpec(projectPath, toolIds, scope) {
|
|
84
201
|
const cliReady = await ensureOpenSpecCli(scope, projectPath);
|
|
85
202
|
if (!cliReady) {
|
|
@@ -91,15 +208,22 @@ async function installOpenSpec(projectPath, toolIds, scope) {
|
|
|
91
208
|
throw new Error(`Unknown tool IDs: ${unknownIds.join(', ')}`);
|
|
92
209
|
}
|
|
93
210
|
let configHome;
|
|
211
|
+
let configBackup = null;
|
|
94
212
|
try {
|
|
95
213
|
const openspecEnv = createOpenSpecAllWorkflowsEnv();
|
|
214
|
+
const invocation = buildOpenSpecInitInvocation(projectPath, toolIds, scope);
|
|
96
215
|
configHome = openspecEnv.configHome;
|
|
97
|
-
|
|
216
|
+
configBackup = writeAllWorkflowsToDefaultConfig();
|
|
217
|
+
execFileSync(invocation.command, invocation.args, {
|
|
98
218
|
cwd: projectPath,
|
|
99
219
|
env: openspecEnv.env,
|
|
100
|
-
stdio: '
|
|
220
|
+
stdio: 'inherit',
|
|
101
221
|
timeout: 120_000,
|
|
222
|
+
shell: process.platform === 'win32',
|
|
102
223
|
});
|
|
224
|
+
if (scope === 'global' && toolIds.includes('opencode')) {
|
|
225
|
+
migrateOpenCodeOpenSpecPaths(os.homedir());
|
|
226
|
+
}
|
|
103
227
|
return 'installed';
|
|
104
228
|
}
|
|
105
229
|
catch (error) {
|
|
@@ -108,10 +232,11 @@ async function installOpenSpec(projectPath, toolIds, scope) {
|
|
|
108
232
|
return 'failed';
|
|
109
233
|
}
|
|
110
234
|
finally {
|
|
235
|
+
restoreDefaultConfig(configBackup);
|
|
111
236
|
if (configHome) {
|
|
112
237
|
fs.rmSync(configHome, { recursive: true, force: true });
|
|
113
238
|
}
|
|
114
239
|
}
|
|
115
240
|
}
|
|
116
|
-
export { installOpenSpec, isCommandAvailable,
|
|
241
|
+
export { installOpenSpec, isCommandAvailable, buildOpenSpecInitInvocation, getNpmExecutable, migrateOpenCodeOpenSpecPaths, };
|
|
117
242
|
//# sourceMappingURL=openspec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openspec.js","sourceRoot":"","sources":["../../src/core/openspec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"openspec.js","sourceRoot":"","sources":["../../src/core/openspec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import type { InstallScope } from './types.js';
|
|
2
2
|
declare const SKILLS_AGENT_MAP: Record<string, string | null>;
|
|
3
|
-
declare function buildSuperpowersInstallCommand(_projectPath: string, scope: InstallScope, platformIds: string[]
|
|
4
|
-
|
|
3
|
+
declare function buildSuperpowersInstallCommand(_projectPath: string, scope: InstallScope, platformIds: string[]): {
|
|
4
|
+
command: string;
|
|
5
|
+
args: string[];
|
|
6
|
+
};
|
|
7
|
+
declare function buildLingmaSuperpowersStageCommand(): {
|
|
8
|
+
command: string;
|
|
9
|
+
args: string[];
|
|
10
|
+
};
|
|
5
11
|
declare function installSuperpowersForPlatforms(projectPath: string, scope: InstallScope, platformIds: string[]): Promise<'installed' | 'failed' | 'skipped'>;
|
|
6
12
|
export { installSuperpowersForPlatforms, buildSuperpowersInstallCommand, buildLingmaSuperpowersStageCommand, SKILLS_AGENT_MAP, };
|
|
7
13
|
//# sourceMappingURL=superpowers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"superpowers.d.ts","sourceRoot":"","sources":["../../src/core/superpowers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"superpowers.d.ts","sourceRoot":"","sources":["../../src/core/superpowers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,QAAA,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CA6BnD,CAAC;AAOF,iBAAS,8BAA8B,CACrC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,YAAY,EACnB,WAAW,EAAE,MAAM,EAAE,GACpB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAwBrC;AAED,iBAAS,kCAAkC,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAKjF;AAwDD,iBAAe,8BAA8B,CAC3C,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,YAAY,EACnB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC,CAiC7C;AAED,OAAO,EACL,8BAA8B,EAC9B,8BAA8B,EAC9B,kCAAkC,EAClC,gBAAgB,GACjB,CAAC"}
|
package/dist/core/superpowers.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { execFileSync } from 'child_process';
|
|
2
2
|
import os from 'os';
|
|
3
3
|
import path from 'path';
|
|
4
4
|
import { cp, mkdir, mkdtemp, readdir, rm } from 'fs/promises';
|
|
5
5
|
import { printCommandErrorDetails } from './command-error.js';
|
|
6
|
-
import { quoteShellArg } from './openspec.js';
|
|
7
6
|
import { getPlatformSkillsDir, PLATFORMS } from './platforms.js';
|
|
8
7
|
const SKILLS_AGENT_MAP = {
|
|
9
8
|
claude: 'claude-code',
|
|
@@ -39,7 +38,7 @@ const VALID_PLATFORM_IDS = new Set(Object.keys(SKILLS_AGENT_MAP));
|
|
|
39
38
|
const SUPERPOWERS_INSTALL_TIMEOUT_MS = 300_000;
|
|
40
39
|
const LINGMA_PLATFORM_ID = 'lingma';
|
|
41
40
|
const LINGMA_STAGE_AGENT = 'claude-code';
|
|
42
|
-
function buildSuperpowersInstallCommand(_projectPath, scope, platformIds
|
|
41
|
+
function buildSuperpowersInstallCommand(_projectPath, scope, platformIds) {
|
|
43
42
|
const unknownIds = platformIds.filter((id) => !VALID_PLATFORM_IDS.has(id));
|
|
44
43
|
if (unknownIds.length > 0) {
|
|
45
44
|
throw new Error(`Unknown platform IDs: ${unknownIds.join(', ')}`);
|
|
@@ -50,12 +49,23 @@ function buildSuperpowersInstallCommand(_projectPath, scope, platformIds, platfo
|
|
|
50
49
|
if (agentNames.length === 0) {
|
|
51
50
|
throw new Error(`No skills CLI agent names resolved for platforms: ${platformIds.join(', ')}`);
|
|
52
51
|
}
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
52
|
+
const args = ['skills', 'add', 'obra/superpowers', '-y'];
|
|
53
|
+
if (scope === 'global') {
|
|
54
|
+
args.push('-g');
|
|
55
|
+
}
|
|
56
|
+
for (const name of agentNames) {
|
|
57
|
+
args.push('--agent', name);
|
|
58
|
+
}
|
|
59
|
+
return { command: getNpxExecutable(), args };
|
|
60
|
+
}
|
|
61
|
+
function buildLingmaSuperpowersStageCommand() {
|
|
62
|
+
return {
|
|
63
|
+
command: getNpxExecutable(),
|
|
64
|
+
args: ['skills', 'add', 'obra/superpowers', '-y', '--agent', LINGMA_STAGE_AGENT],
|
|
65
|
+
};
|
|
56
66
|
}
|
|
57
|
-
function
|
|
58
|
-
return
|
|
67
|
+
function getNpxExecutable(platform = process.platform) {
|
|
68
|
+
return platform === 'win32' ? 'npx.cmd' : 'npx';
|
|
59
69
|
}
|
|
60
70
|
async function copyDirectoryContents(srcDir, destDir) {
|
|
61
71
|
await mkdir(destDir, { recursive: true });
|
|
@@ -76,10 +86,12 @@ async function installSuperpowersForLingma(projectPath, scope) {
|
|
|
76
86
|
}
|
|
77
87
|
const tempDir = await mkdtemp(path.join(os.tmpdir(), 'comet-lingma-superpowers-'));
|
|
78
88
|
try {
|
|
79
|
-
|
|
89
|
+
const stageCommand = buildLingmaSuperpowersStageCommand();
|
|
90
|
+
execFileSync(stageCommand.command, stageCommand.args, {
|
|
80
91
|
cwd: tempDir,
|
|
81
|
-
stdio: '
|
|
92
|
+
stdio: 'inherit',
|
|
82
93
|
timeout: SUPERPOWERS_INSTALL_TIMEOUT_MS,
|
|
94
|
+
shell: process.platform === 'win32',
|
|
83
95
|
});
|
|
84
96
|
const stagedSkillsDir = path.join(tempDir, '.claude', 'skills');
|
|
85
97
|
const baseDir = scope === 'global' ? os.homedir() : projectPath;
|
|
@@ -107,10 +119,11 @@ async function installSuperpowersForPlatforms(projectPath, scope, platformIds) {
|
|
|
107
119
|
if (skillsCliPlatformIds.length > 0) {
|
|
108
120
|
const command = buildSuperpowersInstallCommand(projectPath, scope, skillsCliPlatformIds);
|
|
109
121
|
try {
|
|
110
|
-
|
|
122
|
+
execFileSync(command.command, command.args, {
|
|
111
123
|
cwd: projectPath,
|
|
112
|
-
stdio: '
|
|
124
|
+
stdio: 'inherit',
|
|
113
125
|
timeout: SUPERPOWERS_INSTALL_TIMEOUT_MS,
|
|
126
|
+
shell: process.platform === 'win32',
|
|
114
127
|
});
|
|
115
128
|
}
|
|
116
129
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"superpowers.js","sourceRoot":"","sources":["../../src/core/superpowers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"superpowers.js","sourceRoot":"","sources":["../../src/core/superpowers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-system.d.ts","sourceRoot":"","sources":["../../src/utils/file-system.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1D;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAGxE;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhF;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"file-system.d.ts","sourceRoot":"","sources":["../../src/utils/file-system.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1D;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAGxE;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhF;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAWhE"}
|
|
@@ -46,8 +46,12 @@ export async function readDir(dirPath) {
|
|
|
46
46
|
try {
|
|
47
47
|
return await fs.readdir(dirPath);
|
|
48
48
|
}
|
|
49
|
-
catch {
|
|
50
|
-
|
|
49
|
+
catch (error) {
|
|
50
|
+
const code = error?.code;
|
|
51
|
+
if (code === 'ENOENT' || code === 'ENOTDIR') {
|
|
52
|
+
return [];
|
|
53
|
+
}
|
|
54
|
+
throw error;
|
|
51
55
|
}
|
|
52
56
|
}
|
|
53
57
|
//# sourceMappingURL=file-system.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-system.js","sourceRoot":"","sources":["../../src/utils/file-system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAW;IACzC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,GAAW,EAAE,IAAY;IACtD,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAc,QAAgB;IAC1D,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAM,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,OAAe;IAC/D,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxC,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAe;IAC3C,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"file-system.js","sourceRoot":"","sources":["../../src/utils/file-system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAW;IACzC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,GAAW,EAAE,IAAY;IACtD,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAc,QAAgB;IAC1D,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAM,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,OAAe;IAC/D,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxC,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAe;IAC3C,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,GAAI,KAA+B,EAAE,IAAI,CAAC;QACpD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5C,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
package/scripts/postinstall.js
CHANGED
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Postinstall script that hints about comet init.
|
|
5
|
-
*
|
|
6
|
-
* The tip is suppressed when:
|
|
7
|
-
* - CI=true environment variable is set
|
|
8
|
-
* - COMET_NO_HINTS=1 environment variable is set
|
|
9
|
-
* - dist/ directory doesn't exist (dev setup scenario)
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
import { promises as fs } from 'fs';
|
|
13
|
-
import path from 'path';
|
|
14
|
-
import { fileURLToPath } from 'url';
|
|
15
|
-
|
|
16
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
17
|
-
const __dirname = path.dirname(__filename);
|
|
18
|
-
|
|
19
|
-
function shouldSkip() {
|
|
20
|
-
if (process.env.CI === 'true' || process.env.CI === '1') return true;
|
|
21
|
-
if (process.env.COMET_NO_HINTS === '1') return true;
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
async function distExists() {
|
|
26
|
-
try {
|
|
27
|
-
const stat = await fs.stat(path.join(__dirname, '..', 'dist'));
|
|
28
|
-
return stat.isDirectory();
|
|
29
|
-
} catch {
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
async function main() {
|
|
35
|
-
try {
|
|
36
|
-
if (shouldSkip()) return;
|
|
37
|
-
if (!(await distExists())) return;
|
|
38
|
-
console.log(`\nTip: Run 'comet init' to set up Comet workflow in your project`);
|
|
39
|
-
} catch {
|
|
40
|
-
// Never break npm install
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
main().catch(() => process.exit(0));
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Postinstall script that hints about comet init.
|
|
5
|
+
*
|
|
6
|
+
* The tip is suppressed when:
|
|
7
|
+
* - CI=true environment variable is set
|
|
8
|
+
* - COMET_NO_HINTS=1 environment variable is set
|
|
9
|
+
* - dist/ directory doesn't exist (dev setup scenario)
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { promises as fs } from 'fs';
|
|
13
|
+
import path from 'path';
|
|
14
|
+
import { fileURLToPath } from 'url';
|
|
15
|
+
|
|
16
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
17
|
+
const __dirname = path.dirname(__filename);
|
|
18
|
+
|
|
19
|
+
function shouldSkip() {
|
|
20
|
+
if (process.env.CI === 'true' || process.env.CI === '1') return true;
|
|
21
|
+
if (process.env.COMET_NO_HINTS === '1') return true;
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
async function distExists() {
|
|
26
|
+
try {
|
|
27
|
+
const stat = await fs.stat(path.join(__dirname, '..', 'dist'));
|
|
28
|
+
return stat.isDirectory();
|
|
29
|
+
} catch {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
async function main() {
|
|
35
|
+
try {
|
|
36
|
+
if (shouldSkip()) return;
|
|
37
|
+
if (!(await distExists())) return;
|
|
38
|
+
console.log(`\nTip: Run 'comet init' to set up Comet workflow in your project`);
|
|
39
|
+
} catch {
|
|
40
|
+
// Never break npm install
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
main().catch(() => process.exit(0));
|