@modus-ai/modus 0.2.4 → 0.2.6
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 +100 -42
- package/dist/cli/index.js +2 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +9 -8
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/global.js +1 -1
- package/dist/commands/global.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +37 -7
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/status.js +2 -2
- package/dist/generators/claude.d.ts.map +1 -1
- package/dist/generators/claude.js +1 -37
- package/dist/generators/claude.js.map +1 -1
- package/dist/generators/codebuddy.d.ts.map +1 -1
- package/dist/generators/codebuddy.js +3 -1
- package/dist/generators/codebuddy.js.map +1 -1
- package/dist/generators/codex.d.ts +10 -0
- package/dist/generators/codex.d.ts.map +1 -0
- package/dist/generators/codex.js +178 -0
- package/dist/generators/codex.js.map +1 -0
- package/dist/generators/copilot.d.ts.map +1 -1
- package/dist/generators/copilot.js +0 -1
- package/dist/generators/copilot.js.map +1 -1
- package/dist/generators/cursor.d.ts.map +1 -1
- package/dist/generators/cursor.js +36 -7
- package/dist/generators/cursor.js.map +1 -1
- package/dist/generators/custom.d.ts +55 -0
- package/dist/generators/custom.d.ts.map +1 -0
- package/dist/generators/custom.js +166 -0
- package/dist/generators/custom.js.map +1 -0
- package/dist/generators/index.d.ts +1 -0
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +10 -0
- package/dist/generators/index.js.map +1 -1
- package/dist/utils/config.d.ts +38 -1
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +10 -2
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/file-system.d.ts.map +1 -1
- package/dist/utils/file-system.js +2 -1
- package/dist/utils/file-system.js.map +1 -1
- package/package.json +1 -1
- package/schemas/harness-schema.yaml +178 -53
- package/schemas/knowledge-schema.yaml +111 -1
- package/templates/agents/modus-analyst.md +1 -1
- package/templates/behavior-guard.md +165 -0
- package/templates/commands/auto.md +61 -25
- package/templates/commands/commit.md +63 -0
- package/templates/commands/harness.md +97 -30
- package/templates/commands/init.md +43 -10
- package/templates/commands/modus.md +55 -28
- package/templates/commands/plan.md +60 -18
- package/templates/commands/spec.md +69 -25
- package/templates/commands/upgrade.md +54 -0
- package/templates/commands/vibe.md +56 -6
- package/templates/knowledge-catalog.md +74 -32
- package/templates/skills/modus-agents/analyst/SKILL.md +18 -3
- package/templates/skills/modus-agents/deployer/SKILL.md +114 -62
- package/templates/skills/modus-agents/designer/SKILL.md +104 -92
- package/templates/skills/modus-agents/developer/SKILL.md +107 -66
- package/templates/skills/modus-agents/perf-auditor/SKILL.md +98 -61
- package/templates/skills/modus-agents/reviewer/SKILL.md +61 -11
- package/templates/skills/modus-agents/security-auditor/SKILL.md +111 -67
- package/templates/skills/modus-agents/skill-creator/SKILL.md +30 -12
- package/templates/skills/modus-agents/tester/SKILL.md +100 -54
- package/templates/skills/modus-auto/SKILL.md +581 -109
- package/templates/skills/modus-design-brief/SKILL.md +45 -19
- package/templates/skills/modus-harness/SKILL.md +150 -85
- package/templates/skills/modus-init/SKILL.md +1145 -319
- package/templates/skills/modus-plan/SKILL.md +125 -48
- package/templates/skills/modus-platform/SKILL.md +271 -0
- package/templates/skills/modus-spec/SKILL.md +175 -331
- package/templates/skills/modus-vibe/SKILL.md +256 -55
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<strong>Modus</strong> — Business-grounded AI coding accelerator for
|
|
2
|
+
<strong>Modus</strong> — Business-grounded AI coding accelerator for multi-platform AI coding agents
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
@@ -62,7 +62,30 @@ Modus 对外只暴露 **Command(斜杠命令)**,这是框架与使用者
|
|
|
62
62
|
| 测试 | ✅ 已完成 | Harness 内置 — 单测 / 性能 / 安全 / CR 四路并行 |
|
|
63
63
|
| 部署发布 | ✅ 已完成 | Harness 内置 — CI 监控 + 逐级灰度冒烟 + 上线日志监控 |
|
|
64
64
|
|
|
65
|
-
每个节点均有结构化产出物(`01-analysis.md` → `
|
|
65
|
+
每个节点均有结构化产出物(`01-analysis.md` → `08-deploy-status.md` + `cr-report.md`)作为决策留痕,支持断点续跑,确保 AI 行为可追溯、可审计、可接手。
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
### Token 效率:三级渐进加载 vs 全量加载
|
|
70
|
+
|
|
71
|
+
Modus 的核心设计理念之一是**按需加载,而非全量预加载**。三级渐进加载策略在实际使用中相比全量加载可节省大量 token:
|
|
72
|
+
|
|
73
|
+
| 加载方式 | 典型 token 消耗 | 说明 |
|
|
74
|
+
|---------|---------------|------|
|
|
75
|
+
| **Level 1(必须)** | ~200 | knowledge-catalog 目录索引 |
|
|
76
|
+
| **Level 2(按需)** | ~3,000/域 | 仅加载匹配的业务 Skill |
|
|
77
|
+
| **Level 3(按需)** | ~500–2,000/文件 | 编码时才读取实际源码 |
|
|
78
|
+
| **典型单域 vibe 总计** | **~3,700** | L1 + L2 × 1 域 |
|
|
79
|
+
| **典型双域 vibe 总计** | **~6,700** | L1 + L2 × 2 域 |
|
|
80
|
+
| **全量加载(8 个业务 Skill)** | **~24,000+** | 应避免 |
|
|
81
|
+
|
|
82
|
+
**节省幅度:** 单域场景三级加载约为全量的 **15%**,双域约为 **28%**。
|
|
83
|
+
|
|
84
|
+
这与 claude-context MCP 的语义搜索思路一致——不是把整个代码库推入 context,而是精准检索相关内容。Modus 通过知识分层 + 置信度域匹配实现同等效果,无需向量数据库基础设施。
|
|
85
|
+
|
|
86
|
+
> 详细评估数据见 [`evaluation/metrics.yaml`](evaluation/metrics.yaml)。
|
|
87
|
+
|
|
88
|
+
---
|
|
66
89
|
|
|
67
90
|
## 建设能力
|
|
68
91
|
|
|
@@ -72,7 +95,7 @@ Modus 对外只暴露 **Command(斜杠命令)**,这是框架与使用者
|
|
|
72
95
|
|
|
73
96
|
| 名称 | 说明 |
|
|
74
97
|
|------|------|
|
|
75
|
-
| `Skills Builder SubAgent` | 知识生命周期管家——初始化、增量更新、ARCHIVE
|
|
98
|
+
| `SA00 Skills Builder SubAgent` | 知识生命周期管家——初始化、增量更新、ARCHIVE 提取,五种调用模式(A/B/C/D/E)覆盖知识全流程,团队级可复用 |
|
|
76
99
|
|
|
77
100
|
**Commands**
|
|
78
101
|
|
|
@@ -125,8 +148,8 @@ Modus 对外只暴露 **Command(斜杠命令)**,这是框架与使用者
|
|
|
125
148
|
|
|
126
149
|
| 名称 | 说明 |
|
|
127
150
|
|------|------|
|
|
128
|
-
| `SA01 需求分析 SubAgent` | 将 TAPD Story 翻译为精确技术规格,方法级影响范围 + Sprint 拆分,为后续
|
|
129
|
-
| `
|
|
151
|
+
| `SA01 需求分析 SubAgent` | 将 TAPD Story 翻译为精确技术规格,方法级影响范围 + Sprint 拆分,为后续 SubAgent 建立统一上下文;产出 `01-analysis.md`,触发 Gate A0 |
|
|
152
|
+
| `SA02 设计方案 SubAgent` | 在需求与编码之间插入设计推导层,生成 LLM 可直接消费的 `02-design-brief.md`,减少编码时的架构歧义;含人工确认节点,触发 Gate A0.5 |
|
|
130
153
|
|
|
131
154
|
**Commands**
|
|
132
155
|
|
|
@@ -160,7 +183,7 @@ Modus 对外只暴露 **Command(斜杠命令)**,这是框架与使用者
|
|
|
160
183
|
|
|
161
184
|
| 名称 | 说明 |
|
|
162
185
|
|------|------|
|
|
163
|
-
| `
|
|
186
|
+
| `SA03 代码开发 SubAgent` | 按 Sprint 逐层实现(数据→服务→编排→接口),编译 Gate A 自动验证(mvn compile),P1/P2 精准重入修复 |
|
|
164
187
|
|
|
165
188
|
**Commands**
|
|
166
189
|
|
|
@@ -192,10 +215,10 @@ Modus 对外只暴露 **Command(斜杠命令)**,这是框架与使用者
|
|
|
192
215
|
|
|
193
216
|
| 名称 | 说明 |
|
|
194
217
|
|------|------|
|
|
195
|
-
| `
|
|
196
|
-
| `
|
|
197
|
-
| `
|
|
198
|
-
| `
|
|
218
|
+
| `SA04 代码测试 SubAgent` | 三路径单元测试生成(Happy Path / 边界 / 异常),覆盖并发 + 事务 + 权限场景;与 SA05/SA06 并行执行 |
|
|
219
|
+
| `SA05 性能审计 SubAgent` | 静态检测 N+1 / 大数据量 / 深分页风险,量化每个风险影响条数,高/中/低分级;与 SA04/SA06 并行执行 |
|
|
220
|
+
| `SA06 安全审计 SubAgent` | 检测多租户隔离漏洞 / 权限缺失 / SQL 注入 / 敏感信息泄露,严重/高/低分级;有严重/高危问题则 Gate B 强制拦截 |
|
|
221
|
+
| `SA07 代码评审 SubAgent` | 综合质量评估,P1/P2 触发 Loop 2 精准重入,唯一出口是通过 Gate C(无 P1/P2) |
|
|
199
222
|
|
|
200
223
|
**Skills**
|
|
201
224
|
|
|
@@ -221,7 +244,7 @@ Modus 对外只暴露 **Command(斜杠命令)**,这是框架与使用者
|
|
|
221
244
|
|
|
222
245
|
| 名称 | 说明 |
|
|
223
246
|
|------|------|
|
|
224
|
-
| `
|
|
247
|
+
| `SA08 部署发布 SubAgent` | CI 监控 + 灰度逐级冒烟 + 上线后 30 分钟日志监控,prd 等待人工确认,可复用为独立部署验证 Agent;完成后触发 ARCHIVE 知识提取 |
|
|
225
248
|
|
|
226
249
|
**Skills**
|
|
227
250
|
|
|
@@ -259,22 +282,23 @@ cd your-project
|
|
|
259
282
|
modus init # CLI 初始化,生成框架文件和配置
|
|
260
283
|
```
|
|
261
284
|
|
|
262
|
-
然后在
|
|
285
|
+
然后在 IDE 或 AI Agent 对话框中运行:
|
|
263
286
|
|
|
264
287
|
```
|
|
265
288
|
/modus:init # 扫描代码,生成业务知识库
|
|
266
289
|
```
|
|
267
290
|
|
|
268
|
-
##
|
|
291
|
+
## 7 个核心命令
|
|
269
292
|
|
|
270
293
|
| 命令 | 用途 | 产出物位置 |
|
|
271
294
|
|------|------|-----------|
|
|
272
|
-
| `/modus:init` | 扫描项目,生成业务/团队/技术三层知识库 + 知识目录 | `.codebuddy/skills
|
|
273
|
-
| `/modus:vibe` |
|
|
274
|
-
| `/modus:
|
|
295
|
+
| `/modus:init` | 扫描项目,生成业务/团队/技术三层知识库 + 知识目录 | `modus/knowledge/biz-*/SKILL.md`(权威源)+ `.codebuddy/skills/`(平台适配桩)+ `modus/knowledge-catalog.md` |
|
|
296
|
+
| `/modus:vibe` | 氛围编程,三级渐进加载业务上下文后直接编码,节省约 59% token | 直接修改代码,编码发现的新知识暂存 `modus/sessions/pending-knowledge.yaml` |
|
|
297
|
+
| `/modus:commit` | 知识感知提交:沉淀 vibe 会话发现的新知识到 Skill,再执行 git commit | `modus/sessions/pending-knowledge.yaml`(清空后写入 Skill) |
|
|
298
|
+
| `/modus:plan` | 功能规划,两层知识检索 + 3 问澄清 + plan.md + Build 确认执行 | Story 模式:`modus/stories/{story-id}/plan.md`;独立模式:`modus/plans/{name}/plan.md` |
|
|
275
299
|
| `/modus:spec` | 规范开发,delta specs + GIVEN/WHEN/THEN 验收,含可选 verify + 冲突检测 | `modus/changes/{name}/`,归档合并到 `modus/specs/` |
|
|
276
300
|
| `/modus:auto` | 智能模式推荐:读 TAPD Story,四维评分,推荐 vibe/plan/spec/harness | 启动所选模式后按该模式产出 |
|
|
277
|
-
| `/modus:harness` | 全自动双 Loop 多智能体流程,
|
|
301
|
+
| `/modus:harness` | 全自动双 Loop 多智能体流程,9 个 SubAgent(SA00~SA08)协作,含知识沉淀闭环 | `modus/stories/{story-id}/harness/` |
|
|
278
302
|
|
|
279
303
|
## 典型工作流
|
|
280
304
|
|
|
@@ -294,13 +318,14 @@ AI: [Level 1] 读取知识目录(200 tokens)
|
|
|
294
318
|
我来实现批量审批接口...
|
|
295
319
|
|
|
296
320
|
你: /modus:harness https://tapd.cn/xxx/stories/view/1234567
|
|
297
|
-
AI: [
|
|
298
|
-
✅
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
321
|
+
AI: [知识注入] order[verified] | payment[proven]
|
|
322
|
+
✅ [需求分析] 完成 → 01-analysis.md(影响范围: 5 个类 | domains: order,payment | Gate A0: passed)
|
|
323
|
+
⏸️ [设计方案] 02-design-brief.md 就绪 — 架构决策: 3 个,请确认后继续(Gate A0.5)
|
|
324
|
+
✅ [代码开发] 完成 → 03-sprint-contract.md(Sprint 3/3 | Gate A: passed)
|
|
325
|
+
⏳ [并行审计] 单测/性能/安全 执行中(2/3 完成)→ Gate B
|
|
326
|
+
✅ [代码评审] Gate C 通过,无 P1/P2
|
|
327
|
+
📚 [ARCHIVE] 提取知识 4 条(decision:1 | pitfall:2 | guideline:1)
|
|
328
|
+
⏸️ [部署发布] prd 等待人工确认 → Final Review
|
|
304
329
|
```
|
|
305
330
|
|
|
306
331
|
## 知识体系(核心竞争力)
|
|
@@ -339,17 +364,32 @@ constitution:
|
|
|
339
364
|
|
|
340
365
|
```
|
|
341
366
|
Loop 1(生产)
|
|
342
|
-
INIT
|
|
343
|
-
→
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
367
|
+
SA00 INIT(知识注入 + Skill 更新)
|
|
368
|
+
→ SA01 需求分析 → [Gate A0] gate_status="passed" 才继续
|
|
369
|
+
→ SA02 设计方案 → [Gate A0.5] 含人工架构决策确认 ⏸️
|
|
370
|
+
→ SA03 代码开发 → [Gate A] mvn compile exit_code=0,失败自修复,最多 3 次
|
|
371
|
+
→ SA04/SA05/SA06 并行(单测 / 性能 / 安全审计)→ [Gate B]
|
|
372
|
+
Gate B 额外条件:06-security-report.md 无严重/高危问题(强制拦截)
|
|
373
|
+
→ SA07 代码评审 → [Gate C] 无 P1/P2 方可放行
|
|
374
|
+
|
|
375
|
+
Loop 2(精准重入,Gate C 发现 P1/P2 时触发)
|
|
376
|
+
定位受影响 Sprint(by issues[].affected_sprint)
|
|
377
|
+
精准重入 SA03 受影响 Sprint → Gate A → SA04/SA05/SA06 → SA07 → Gate C
|
|
378
|
+
最多重试 3 次,超限上报用户
|
|
347
379
|
|
|
348
380
|
收尾
|
|
349
|
-
|
|
381
|
+
SA08 部署验证 ⏸️(prd 人工确认)→ ARCHIVE 知识提取 → 人工 Final Review
|
|
350
382
|
```
|
|
351
383
|
|
|
352
|
-
|
|
384
|
+
| Gate | 检查对象 | 通过条件 |
|
|
385
|
+
|------|---------|---------|
|
|
386
|
+
| A0 | `01-analysis.md` HANDOFF | `gate_status = "passed"` |
|
|
387
|
+
| A0.5 | `02-design-brief.md` HANDOFF | `gate_status ∈ {passed, warning}` |
|
|
388
|
+
| A | 编译命令 | `exit_code = 0` |
|
|
389
|
+
| B | 04/05/06 三份报告 HANDOFF | `artifact_status` 均完成且无安全严重/高危 |
|
|
390
|
+
| C | `cr-report.md` HANDOFF | `issues` 为空或全为 P3 |
|
|
391
|
+
|
|
392
|
+
每个 SubAgent 的产出物(`01-analysis.md` → `08-deploy-status.md` + `cr-report.md`)均存放在 `modus/stories/{story-id}/harness/`,支持断点续跑。
|
|
353
393
|
|
|
354
394
|
## 文件结构
|
|
355
395
|
|
|
@@ -357,20 +397,24 @@ Loop 2(修复,有 P1/P2 时触发)
|
|
|
357
397
|
your-project/
|
|
358
398
|
├── .codebuddy/
|
|
359
399
|
│ ├── skills/
|
|
360
|
-
│ │ ├── modus-team-conventions/SKILL.md ← Layer 0-T
|
|
361
|
-
│ │ ├── modus-tech-wiki/SKILL.md ← Layer 1
|
|
362
|
-
│ │ ├── modus-biz-{domain}/SKILL.md ← Layer 2
|
|
363
|
-
│ │ └── modus-harness-*/SKILL.md ←
|
|
400
|
+
│ │ ├── modus-team-conventions/SKILL.md ← Layer 0-T(平台适配桩,权威源在 modus/knowledge/)
|
|
401
|
+
│ │ ├── modus-tech-wiki/SKILL.md ← Layer 1(平台适配桩)
|
|
402
|
+
│ │ ├── modus-biz-{domain}/SKILL.md ← Layer 2(引用桩,权威源在 modus/knowledge/biz-*/)
|
|
403
|
+
│ │ └── modus-harness-*/SKILL.md ← 9 个 SubAgent Skill(SA00~SA08)
|
|
364
404
|
│ └── commands/modus/ ← 斜杠命令入口
|
|
365
405
|
│
|
|
366
406
|
└── modus/
|
|
367
|
-
├── config.yaml
|
|
368
|
-
├── knowledge-catalog.md
|
|
369
|
-
├──
|
|
370
|
-
├──
|
|
371
|
-
├── plans/
|
|
372
|
-
├── plans/archive/
|
|
373
|
-
|
|
407
|
+
├── config.yaml ← 项目宪法
|
|
408
|
+
├── knowledge-catalog.md ← 全景索引(~200 tokens)
|
|
409
|
+
├── knowledge/biz-{domain}/SKILL.md ← 业务知识(Single Source of Truth,v3.2)
|
|
410
|
+
├── stories/{story-id}/harness/ ← /harness 产出物(01-analysis.md → cr-report.md → 08-deploy-status.md)
|
|
411
|
+
├── plans/{name}/plan.md ← /plan 产出物
|
|
412
|
+
├── plans/archive/ ← /plan 归档
|
|
413
|
+
├── changes/ ← /spec 产出物及归档
|
|
414
|
+
├── specs/{domain}/spec.md ← 主规格库(/spec 归档后)
|
|
415
|
+
└── sessions/ ← 首次运行 /modus:vibe 后自动创建
|
|
416
|
+
├── pending-knowledge.yaml ← /vibe 发现的待沉淀知识缓冲区
|
|
417
|
+
└── vibe-log.md ← /vibe 会话日志(append-only)
|
|
374
418
|
```
|
|
375
419
|
|
|
376
420
|
## 文档
|
|
@@ -393,6 +437,20 @@ modus config profile # 选择启用哪些命令
|
|
|
393
437
|
modus config set # 修改单个配置项
|
|
394
438
|
```
|
|
395
439
|
|
|
440
|
+
**斜杠命令(在 IDE 对话框中使用):**
|
|
441
|
+
|
|
442
|
+
```
|
|
443
|
+
/modus:init — 扫描代码,生成三层知识库
|
|
444
|
+
/modus:vibe — 氛围编程,渐进加载上下文后直接编码
|
|
445
|
+
/modus:commit — 知识感知提交:先沉淀 vibe 发现的新知识,再执行 git commit
|
|
446
|
+
/modus:plan — 功能规划,生成 plan.md,Build 确认后执行
|
|
447
|
+
/modus:spec — 规范驱动开发,生成 delta specs + 验收标准
|
|
448
|
+
/modus:auto — 智能模式推荐:读 TAPD Story,四维评分,推荐最优模式
|
|
449
|
+
/modus:harness — 全自动双 Loop,9 个 SubAgent 从需求到部署全程闭环
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
> **`/modus:commit` 是 `/modus:vibe` 知识沉淀的唯一触发点。** vibe 编码过程中发现的新知识暂存于 `modus/sessions/pending-knowledge.yaml`,运行 `/modus:commit` 时统一确认后写入 Skill,git commit 与知识沉淀同步完成。
|
|
453
|
+
|
|
396
454
|
## License
|
|
397
455
|
|
|
398
456
|
MIT
|
package/dist/cli/index.js
CHANGED
|
@@ -25,7 +25,7 @@ program
|
|
|
25
25
|
' Platforms supported:\n' +
|
|
26
26
|
' CodeBuddy .codebuddy/ Skills / Agents / Hooks — full support\n' +
|
|
27
27
|
' Claude .claude/ + CLAUDE.md Sub-Agents — full support\n' +
|
|
28
|
-
' Cursor .cursor/
|
|
28
|
+
' Cursor .cursor/skills/ + rules + mcp.json Skills + MCP — full dual-loop Harness supported\n' +
|
|
29
29
|
' Copilot .github/copilot-instructions.md Single file, single-agent\n\n' +
|
|
30
30
|
' Upgrading (after npm install -g @modus-ai/modus):\n' +
|
|
31
31
|
' modus update Regenerate all platform files from latest templates\n' +
|
|
@@ -89,7 +89,7 @@ program
|
|
|
89
89
|
' Subcommands:\n' +
|
|
90
90
|
' show Print current config\n' +
|
|
91
91
|
' profile Select which /modus:* commands to enable\n' +
|
|
92
|
-
' set Update
|
|
92
|
+
' set Update config keys interactively (interactive prompts, no positional args)')
|
|
93
93
|
.option('--root <path>', 'Project root directory', process.cwd())
|
|
94
94
|
.action(async (subcommand, opts) => {
|
|
95
95
|
const projectRoot = path.resolve(opts.root);
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAyB,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAE1C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CACV,qDAAqD;IACrD,kBAAkB;IAClB,oGAAoG;IACpG,wFAAwF;IACxF,8FAA8F;IAC9F,0BAA0B;IAC1B,4EAA4E;IAC5E,kEAAkE;IAClE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAyB,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAE1C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CACV,qDAAqD;IACrD,kBAAkB;IAClB,oGAAoG;IACpG,wFAAwF;IACxF,8FAA8F;IAC9F,0BAA0B;IAC1B,4EAA4E;IAC5E,kEAAkE;IAClE,sGAAsG;IACtG,+EAA+E;IAC/E,uDAAuD;IACvD,qFAAqF;IACrF,mFAAmF;IACnF,uCAAuC;IACvC,iFAAiF,CAClF;KACA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAExB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CACV,2CAA2C;IAC3C,kEAAkE;IAClE,mGAAmG;IACnG,qDAAqD;IACrD,gEAAgE;IAChE,yCAAyC;IACzC,gEAAgE;IAChE,kDAAkD,CACnD;KACA,MAAM,CAAC,eAAe,EAAE,wBAAwB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAChE,MAAM,CAAC,WAAW,EAAE,0DAA0D,CAAC;KAC/E,MAAM,CAAC,sBAAsB,EAAE,mDAAmD,CAAC;KACnF,MAAM,CAAC,kBAAkB,EAAE,4DAA4D,CAAC;KACxF,MAAM,CAAC,wBAAwB,EAAE,iEAAiE,CAAC;KACnG,MAAM,CAAC,oBAAoB,EAAE,0DAA0D,CAAC;KACxF,MAAM,CAAC,kBAAkB,EAAE,4EAA4E,CAAC;KACxG,MAAM,CACL,mBAAmB,EACnB,uEAAuE,CACxE;KACA,MAAM,CAAC,SAAS,EAAE,oEAAoE,CAAC;KACvF,MAAM,CAAC,eAAe,EAAE,yEAAyE,CAAC;KAClG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,OAAO,CAAC,WAAW,EAAE;QACzB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CACV,0DAA0D;IAC1D,wFAAwF;IACxF,mFAAmF;IACnF,6EAA6E;IAC7E,+EAA+E;IAC/E,gFAAgF,CACjF;KACA,MAAM,CAAC,eAAe,EAAE,wBAAwB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAChE,MAAM,CAAC,eAAe,EAAE,wDAAwD,CAAC;KACjF,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,KAAK,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAqB,EAAE,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;IAC9E,MAAM,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,qBAAqB,CAAC;KAC9B,WAAW,CACV,kCAAkC;IAClC,kBAAkB;IAClB,qCAAqC;IACrC,yDAAyD;IACzD,yFAAyF,CAC1F;KACA,MAAM,CAAC,eAAe,EAAE,wBAAwB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAChE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE;IACjC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,KAAK,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1E,MAAM,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC;AAEL,8EAA8E;AAC9E,6DAA6D;AAC7D,8EAA8E;AAE9E,MAAM,SAAS,GAAG,OAAO;KACtB,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CACV,+DAA+D;IAC/D,sEAAsE;IACtE,sEAAsE;IACtE,4BAA4B,CAC7B,CAAC;AAEJ,SAAS;KACN,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,qEAAqE,CAAC;KAClF,MAAM,CAAC,eAAe,EAAE,gDAAgD,CAAC;KACzE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC;AAEL,SAAS;KACN,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,0DAA0D,CAAC;KACvE,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,aAAa,EAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEL,8EAA8E;AAC9E,gDAAgD;AAChD,8EAA8E;AAE9E,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CACV,wCAAwC;IACxC,wFAAwF,CACzF;KACA,MAAM,CAAC,eAAe,EAAE,wBAAwB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAChE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,KAAK,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1E,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEL,8EAA8E;AAC9E,wDAAwD;AACxD,8EAA8E;AAE9E,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CACV,6DAA6D;IAC7D,iFAAiF,CAClF;KACA,MAAM,CAAC,eAAe,EAAE,wBAAwB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAChE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,KAAK,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1E,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEL,8EAA8E;AAC9E,+CAA+C;AAC/C,8EAA8E;AAE9E,MAAM,QAAQ,GAAG,OAAO;KACrB,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CACV,sDAAsD;IACtD,oDAAoD,CACrD,CAAC;AAEJ,QAAQ;KACL,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,qFAAqF,CAAC;KAClG,MAAM,CAAC,eAAe,EAAE,wBAAwB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAChE,MAAM,CAAC,oBAAoB,EAAE,+BAA+B,CAAC;KAC7D,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,KAAK,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;IAC9E,MAAM,YAAY,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5E,CAAC,CAAC,CAAC;AAEL,QAAQ;KACL,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,0FAA0F,CAAC;KACvG,MAAM,CAAC,eAAe,EAAE,wBAAwB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAChE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;IAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,KAAK,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;IAC9E,MAAM,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEL,QAAQ;KACL,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CACV,uDAAuD;IACvD,oDAAoD,CACrD;KACA,MAAM,CAAC,eAAe,EAAE,wBAAwB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAChE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;IAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,KAAK,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;IACjF,MAAM,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC;AAEL,8EAA8E;AAC9E,iEAAiE;AACjE,8EAA8E;AAE9E,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CACV,qDAAqD;IACrD,qEAAqE,CACtE;KACA,MAAM,CAAC,eAAe,EAAE,wBAAwB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAChE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;IACf,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,KAAK,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1E,aAAa,CAAC,WAAW,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEL,8EAA8E;AAC9E,2DAA2D;AAC3D,8EAA8E;AAE9E,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CACV,mEAAmE;IACnE,6EAA6E,CAC9E;KACA,MAAM,CAAC,eAAe,EAAE,wBAAwB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAChE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;IACf,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,KAAK,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IAC5E,kBAAkB,CAAC,WAAW,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC;AAEL,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,iEAAiE;AACjE,SAAS,kBAAkB,CAAC,WAAmB;IAC7C,IAAI,OAAO,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;QACvC,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,6BAA6B;IAC/B,CAAC;IAED,MAAM,GAAG,GAA+D;QACtE;YACE,GAAG,EAAE,aAAa;YAClB,WAAW,EAAE,wFAAwF;YACrG,IAAI,EAAE,oDAAoD;SAC3D;QACD;YACE,GAAG,EAAE,aAAa;YAClB,WAAW,EAAE,2EAA2E;YACxF,IAAI,EAAE,kDAAkD;SACzD;QACD;YACE,GAAG,EAAE,aAAa;YAClB,WAAW,EAAE,4EAA4E;YACzF,IAAI,EAAE,oDAAoD;SAC3D;QACD;YACE,GAAG,EAAE,aAAa;YAClB,WAAW,EAAE,yGAAyG;YACtH,IAAI,EAAE,+EAA+E;SACtF;QACD;YACE,GAAG,EAAE,aAAa;YAClB,WAAW,EAAE,gGAAgG;YAC7G,IAAI,EAAE,gDAAgD;SACvD;QACD;YACE,GAAG,EAAE,gBAAgB;YACrB,WAAW,EAAE,+FAA+F;YAC5G,IAAI,EAAE,mDAAmD;SAC1D;KACF,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC,CAAC;IAE1F,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5F,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACtF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mFAAmF,CAAC,CAAC,CAAC;IAC9G,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC,CAAC;IAClG,CAAC;AACH,CAAC;AAED,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAUA,wBAAsB,SAAS,CAC7B,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAUA,wBAAsB,SAAS,CAC7B,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAgEf"}
|
package/dist/commands/config.js
CHANGED
|
@@ -3,7 +3,7 @@ import inquirer from 'inquirer';
|
|
|
3
3
|
import yaml from 'js-yaml';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import { loadConfig, saveConfig } from '../utils/config.js';
|
|
6
|
-
import {
|
|
6
|
+
import { generateAllPlatformFiles } from '../generators/index.js';
|
|
7
7
|
import { fileExists } from '../utils/file-system.js';
|
|
8
8
|
const SUBCOMMANDS = ['show', 'profile', 'set'];
|
|
9
9
|
export async function runConfig(projectRoot, subcommand) {
|
|
@@ -25,11 +25,12 @@ export async function runConfig(projectRoot, subcommand) {
|
|
|
25
25
|
name: 'enabledCommands',
|
|
26
26
|
message: 'Select active commands:',
|
|
27
27
|
choices: [
|
|
28
|
-
{ name: '/modus:init', value: 'init', checked: config.commands
|
|
29
|
-
{ name: '/modus:vibe', value: 'vibe', checked: config.commands
|
|
30
|
-
{ name: '/modus:plan', value: 'plan', checked: config.commands
|
|
31
|
-
{ name: '/modus:spec', value: 'spec', checked: config.commands
|
|
32
|
-
{ name: '/modus:
|
|
28
|
+
{ name: '/modus:init', value: 'init', checked: config.commands?.enabled?.includes('init') ?? true },
|
|
29
|
+
{ name: '/modus:vibe', value: 'vibe', checked: config.commands?.enabled?.includes('vibe') ?? true },
|
|
30
|
+
{ name: '/modus:plan', value: 'plan', checked: config.commands?.enabled?.includes('plan') ?? true },
|
|
31
|
+
{ name: '/modus:spec', value: 'spec', checked: config.commands?.enabled?.includes('spec') ?? true },
|
|
32
|
+
{ name: '/modus:auto', value: 'auto', checked: config.commands?.enabled?.includes('auto') ?? true },
|
|
33
|
+
{ name: '/modus:harness', value: 'harness', checked: config.commands?.enabled?.includes('harness') ?? true },
|
|
33
34
|
],
|
|
34
35
|
},
|
|
35
36
|
]);
|
|
@@ -45,8 +46,8 @@ export async function runConfig(projectRoot, subcommand) {
|
|
|
45
46
|
},
|
|
46
47
|
]);
|
|
47
48
|
if (doUpdate) {
|
|
48
|
-
|
|
49
|
-
console.log(chalk.green(' ✓
|
|
49
|
+
generateAllPlatformFiles(projectRoot, config);
|
|
50
|
+
console.log(chalk.green(' ✓ Platform files regenerated.'));
|
|
50
51
|
}
|
|
51
52
|
return;
|
|
52
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/global.js
CHANGED
|
@@ -41,7 +41,7 @@ export async function runGlobalInit(opts = {}) {
|
|
|
41
41
|
const alreadyExists = fileExists(path.join(conventionsSkillDir, 'SKILL.md')) ||
|
|
42
42
|
fileExists(path.join(techWikiSkillDir, 'SKILL.md'));
|
|
43
43
|
if (alreadyExists) {
|
|
44
|
-
console.log(chalk.yellow(` ${label} 目录已存在 Skills
|
|
44
|
+
console.log(chalk.yellow(` ${label} 目录已存在 Skills,将跳过已有文件。如需重新生成,请手动删除对应 SKILL.md 后重新运行。`));
|
|
45
45
|
console.log(chalk.gray(` 目录: ${dir}\n`));
|
|
46
46
|
}
|
|
47
47
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global.js","sourceRoot":"","sources":["../../src/commands/global.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAM/F,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E,SAAS,WAAW,CAAC,IAAsB;IACzC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO;YACL,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1B,KAAK,EAAE,MAAM,IAAI,CAAC,IAAI,GAAG;YACzB,KAAK,EAAE,QAAQ,IAAI,CAAC,IAAI,EAAE;SAC3B,CAAC;IACJ,CAAC;IACD,OAAO;QACL,GAAG,EAAE,YAAY,EAAE;QACnB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,QAAQ;KAChB,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAyB,EAAE;IAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;IAErD,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAEhD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAEzC,SAAS,CAAC,SAAS,CAAC,CAAC;IACrB,SAAS,CAAC,QAAQ,CAAC,CAAC;IAEpB,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC;IAC3E,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAEjE,MAAM,aAAa,GACjB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;QACtD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAAC;IAEtD,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"global.js","sourceRoot":"","sources":["../../src/commands/global.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAiBA,kEAAkE;AAClE,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAuED,8DAA8D;AAC9D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,CAAC;IACtE,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAiBA,kEAAkE;AAClE,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAuED,8DAA8D;AAC9D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,CAAC;IACtE,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AA+UD,wBAAsB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8L1F"}
|
package/dist/commands/init.js
CHANGED
|
@@ -10,7 +10,7 @@ import { fileExists, ensureDir } from '../utils/file-system.js';
|
|
|
10
10
|
import { track } from '../utils/analytics.js';
|
|
11
11
|
const _require = createRequire(import.meta.url);
|
|
12
12
|
const MODUS_VERSION = _require('../../package.json').version;
|
|
13
|
-
const DEFAULT_COMMANDS = ['init', 'vibe', 'plan', 'spec', 'auto', 'harness'];
|
|
13
|
+
const DEFAULT_COMMANDS = ['init', 'vibe', 'plan', 'spec', 'auto', 'harness', 'platform'];
|
|
14
14
|
/**
|
|
15
15
|
* Scan the project root for well-known build/config files and infer the tech stack.
|
|
16
16
|
* For package.json, also reads dependencies to detect common frameworks.
|
|
@@ -279,7 +279,7 @@ function mergeMcpServers(existing, detected) {
|
|
|
279
279
|
}
|
|
280
280
|
return Object.keys(merged).length > 0 ? merged : undefined;
|
|
281
281
|
}
|
|
282
|
-
const ALL_PLATFORMS = ['codebuddy', 'claude', 'cursor', 'copilot'];
|
|
282
|
+
const ALL_PLATFORMS = ['codebuddy', 'claude', 'cursor', 'copilot', 'codex'];
|
|
283
283
|
function parsePlatformsCsv(csv) {
|
|
284
284
|
if (!csv?.trim())
|
|
285
285
|
return [...ALL_PLATFORMS];
|
|
@@ -288,6 +288,13 @@ function parsePlatformsCsv(csv) {
|
|
|
288
288
|
const filtered = parts.filter((p) => allowed.has(p));
|
|
289
289
|
return filtered.length > 0 ? filtered : [...ALL_PLATFORMS];
|
|
290
290
|
}
|
|
291
|
+
/**
|
|
292
|
+
* Detect whether an AGENTS.md file already exists and warn the user
|
|
293
|
+
* that modus will manage it when codex platform is selected.
|
|
294
|
+
*/
|
|
295
|
+
function detectExistingAgentsMd(projectRoot) {
|
|
296
|
+
return fs.existsSync(path.join(projectRoot, 'AGENTS.md'));
|
|
297
|
+
}
|
|
291
298
|
function isInteractiveTerminal() {
|
|
292
299
|
return Boolean(process.stdin.isTTY && process.stdout.isTTY);
|
|
293
300
|
}
|
|
@@ -354,6 +361,20 @@ function removePlatformFiles(projectRoot, platform) {
|
|
|
354
361
|
if (platform === 'copilot') {
|
|
355
362
|
rm('.github/copilot-instructions.md');
|
|
356
363
|
}
|
|
364
|
+
if (platform === 'codex') {
|
|
365
|
+
// Only remove AGENTS.md if it was fully modus-managed (contains modus markers).
|
|
366
|
+
// If it's a manually maintained file, leave it intact.
|
|
367
|
+
const agentsMdPath = path.join(projectRoot, 'AGENTS.md');
|
|
368
|
+
if (fs.existsSync(agentsMdPath)) {
|
|
369
|
+
try {
|
|
370
|
+
const content = fs.readFileSync(agentsMdPath, 'utf-8');
|
|
371
|
+
if (content.includes('<!-- modus:start -->')) {
|
|
372
|
+
fs.rmSync(agentsMdPath, { force: true });
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
catch { /* non-fatal */ }
|
|
376
|
+
}
|
|
377
|
+
}
|
|
357
378
|
}
|
|
358
379
|
function parseCommandsCsv(csv) {
|
|
359
380
|
if (!csv?.trim())
|
|
@@ -433,16 +454,20 @@ export async function runInit(projectRoot, cli = {}) {
|
|
|
433
454
|
ensureDir(path.join(projectRoot, 'modus', 'plans', 'archive'));
|
|
434
455
|
ensureDir(path.join(projectRoot, 'modus', 'changes', 'archive'));
|
|
435
456
|
ensureDir(path.join(projectRoot, 'modus', 'sessions'));
|
|
436
|
-
// ── Step 1: Generate ALL
|
|
457
|
+
// ── Step 1: Generate ALL platforms ───────────────────────────────────────
|
|
437
458
|
// Always generate all so the user can see what each platform produces.
|
|
438
|
-
const allPlatforms = ['codebuddy', 'claude', 'cursor', 'copilot'];
|
|
459
|
+
const allPlatforms = ['codebuddy', 'claude', 'cursor', 'copilot', 'codex'];
|
|
439
460
|
config.platforms = allPlatforms;
|
|
440
461
|
config.modusBuildVersion = MODUS_VERSION;
|
|
441
462
|
saveConfig(projectRoot, config);
|
|
442
463
|
if (config.teamName) {
|
|
443
464
|
console.log(chalk.dim(` 将从团队目录复制 Skills:~/.codebuddy/team/${config.teamName}/`));
|
|
444
465
|
}
|
|
445
|
-
|
|
466
|
+
// Warn if AGENTS.md already exists (codex will merge into it)
|
|
467
|
+
if (detectExistingAgentsMd(projectRoot)) {
|
|
468
|
+
console.log(chalk.yellow(' ⚠ AGENTS.md 已存在。选择 Codex 平台时,modus 将在文件末尾追加托管区块(不覆盖现有内容)。'));
|
|
469
|
+
}
|
|
470
|
+
console.log(chalk.cyan('\n Generating platform files...'));
|
|
446
471
|
generateAllPlatformFiles(projectRoot, { ...config, platforms: allPlatforms }, {
|
|
447
472
|
syncScopes: Boolean(cli.syncScopes),
|
|
448
473
|
});
|
|
@@ -456,6 +481,7 @@ export async function runInit(projectRoot, cli = {}) {
|
|
|
456
481
|
console.log(chalk.green(' ✓ [Claude] constitution → CLAUDE.md'));
|
|
457
482
|
console.log(chalk.green(` ✓ [Cursor] ${cmdCount + 2} rules → .cursor/rules/modus-*.mdc`));
|
|
458
483
|
console.log(chalk.green(' ✓ [Copilot] instructions → .github/copilot-instructions.md'));
|
|
484
|
+
console.log(chalk.green(' ✓ [Codex] AGENTS.md (merged)'));
|
|
459
485
|
// ── Step 2: Ask user which platforms to keep ─────────────────────────────
|
|
460
486
|
// Non-interactive: --yes or --platforms flag or non-TTY → skip prompt
|
|
461
487
|
const platformsExplicitlySet = Boolean(cli.platforms?.trim());
|
|
@@ -468,7 +494,7 @@ export async function runInit(projectRoot, cli = {}) {
|
|
|
468
494
|
: allPlatforms;
|
|
469
495
|
}
|
|
470
496
|
else {
|
|
471
|
-
console.log(chalk.cyan('\n
|
|
497
|
+
console.log(chalk.cyan('\n 以上平台的文件已全部生成,请选择你实际使用的平台(将移除其他平台的文件):'));
|
|
472
498
|
const { kept } = await inquirer.prompt({
|
|
473
499
|
type: 'checkbox',
|
|
474
500
|
name: 'kept',
|
|
@@ -494,12 +520,16 @@ export async function runInit(projectRoot, cli = {}) {
|
|
|
494
520
|
value: 'copilot',
|
|
495
521
|
checked: true,
|
|
496
522
|
},
|
|
523
|
+
{
|
|
524
|
+
name: 'Codex / OpenCode (AGENTS.md) — 单文件,非交互批量模式',
|
|
525
|
+
value: 'codex',
|
|
526
|
+
checked: false,
|
|
527
|
+
},
|
|
497
528
|
],
|
|
498
529
|
});
|
|
499
530
|
keptPlatforms = kept.filter((p) => ['codebuddy', 'claude', 'cursor', 'copilot'].includes(p));
|
|
500
531
|
if (keptPlatforms.length === 0)
|
|
501
532
|
keptPlatforms = allPlatforms; // 兜底
|
|
502
|
-
keptPlatforms = kept;
|
|
503
533
|
}
|
|
504
534
|
// ── Step 3: Remove files for discarded platforms ─────────────────────────
|
|
505
535
|
const discarded = allPlatforms.filter((p) => !keptPlatforms.includes(p));
|