@einja/dev-cli 0.1.40 → 0.1.41
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 +89 -1
- package/dist/cli.js +1 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +71 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +187 -13
- package/dist/commands/sync.js.map +1 -1
- package/dist/lib/dependency-checker.d.ts.map +1 -1
- package/dist/lib/merger.d.ts +12 -0
- package/dist/lib/merger.d.ts.map +1 -1
- package/dist/lib/merger.js +28 -0
- package/dist/lib/merger.js.map +1 -1
- package/dist/lib/preset-update/cli-repo-detector.d.ts.map +1 -1
- package/dist/lib/preset-update/file-copier.d.ts.map +1 -1
- package/dist/lib/preset-update/preset-finder.d.ts.map +1 -1
- package/dist/lib/preset.d.ts.map +1 -1
- package/dist/lib/sync/category-validator.d.ts +1 -1
- package/dist/lib/sync/category-validator.d.ts.map +1 -1
- package/dist/lib/sync/category-validator.js +2 -1
- package/dist/lib/sync/category-validator.js.map +1 -1
- package/dist/lib/sync/category-validator.test.js +3 -1
- package/dist/lib/sync/category-validator.test.js.map +1 -1
- package/dist/lib/sync/conflict-reporter.d.ts.map +1 -1
- package/dist/lib/sync/diff-engine.d.ts.map +1 -1
- package/dist/lib/sync/file-filter.d.ts.map +1 -1
- package/dist/lib/sync/file-filter.js +1 -0
- package/dist/lib/sync/file-filter.js.map +1 -1
- package/dist/lib/sync/integration.test.js +255 -69
- package/dist/lib/sync/integration.test.js.map +1 -1
- package/dist/lib/sync/json-processor.d.ts +4 -4
- package/dist/lib/sync/json-processor.d.ts.map +1 -1
- package/dist/lib/sync/json-processor.js +11 -11
- package/dist/lib/sync/json-processor.js.map +1 -1
- package/dist/lib/sync/marker-processor.d.ts +60 -8
- package/dist/lib/sync/marker-processor.d.ts.map +1 -1
- package/dist/lib/sync/marker-processor.js +117 -26
- package/dist/lib/sync/marker-processor.js.map +1 -1
- package/dist/lib/sync/marker-processor.test.js +261 -40
- package/dist/lib/sync/marker-processor.test.js.map +1 -1
- package/dist/lib/sync/metadata-manager.d.ts +4 -0
- package/dist/lib/sync/metadata-manager.d.ts.map +1 -1
- package/dist/lib/sync/metadata-manager.js +15 -0
- package/dist/lib/sync/metadata-manager.js.map +1 -1
- package/dist/lib/sync/metadata-manager.test.js +68 -0
- package/dist/lib/sync/metadata-manager.test.js.map +1 -1
- package/dist/lib/sync/orphan-cleaner.d.ts +29 -0
- package/dist/lib/sync/orphan-cleaner.d.ts.map +1 -0
- package/dist/lib/sync/orphan-cleaner.js +80 -0
- package/dist/lib/sync/orphan-cleaner.js.map +1 -0
- package/dist/lib/sync/orphan-cleaner.test.d.ts +2 -0
- package/dist/lib/sync/orphan-cleaner.test.d.ts.map +1 -0
- package/dist/lib/sync/orphan-cleaner.test.js +169 -0
- package/dist/lib/sync/orphan-cleaner.test.js.map +1 -0
- package/dist/lib/sync/project-private-synchronizer.d.ts +52 -0
- package/dist/lib/sync/project-private-synchronizer.d.ts.map +1 -0
- package/dist/lib/sync/project-private-synchronizer.js +106 -0
- package/dist/lib/sync/project-private-synchronizer.js.map +1 -0
- package/dist/lib/sync/project-private-synchronizer.test.d.ts +2 -0
- package/dist/lib/sync/project-private-synchronizer.test.d.ts.map +1 -0
- package/dist/lib/sync/project-private-synchronizer.test.js +348 -0
- package/dist/lib/sync/project-private-synchronizer.test.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/sync.d.ts +36 -6
- package/dist/types/sync.d.ts.map +1 -1
- package/dist/types/sync.js +2 -2
- package/dist/types/sync.js.map +1 -1
- package/package.json +5 -4
- package/presets/default/.claude/agents/einja/Explore.md +140 -0
- package/presets/default/.claude/agents/einja/backend-architect.md +4 -0
- package/presets/default/.claude/agents/einja/codex-agent.md +4 -0
- package/presets/default/.claude/agents/einja/design-engineer.md +4 -0
- package/presets/default/.claude/agents/einja/docs/docs-updater.md +4 -0
- package/presets/default/.claude/agents/einja/frontend-architect.md +4 -0
- package/presets/default/.claude/agents/einja/frontend-coder.md +4 -0
- package/presets/default/.claude/agents/einja/git/conflict-resolver.md +4 -0
- package/presets/default/.claude/agents/einja/specs/spec-design-generator.md +4 -1
- package/presets/default/.claude/agents/einja/specs/spec-qa-generator.md +4 -0
- package/presets/default/.claude/agents/einja/specs/spec-requirements-generator.md +4 -1
- package/presets/default/.claude/agents/einja/specs/spec-tasks-generator.md +6 -2
- package/presets/default/.claude/agents/einja/specs/spec-tasks-validator.md +4 -0
- package/presets/default/.claude/agents/einja/task/task-executer.md +57 -115
- package/presets/default/.claude/agents/einja/task/task-modification-analyzer.md +4 -0
- package/presets/default/.claude/agents/einja/task/task-qa.md +4 -0
- package/presets/default/.claude/agents/einja/task/task-reviewer.md +4 -0
- package/presets/default/.claude/commands/einja/einja-sync.md +5 -1
- package/presets/default/.claude/commands/einja/frontend-implement.md +3 -1
- package/presets/default/.claude/commands/einja/issue-exec.md +403 -0
- package/presets/default/.claude/commands/einja/spec-create.md +15 -1
- package/presets/default/.claude/commands/einja/start-dev.md +4 -0
- package/presets/default/.claude/commands/einja/sync-cursor-commands.md +4 -0
- package/presets/default/.claude/commands/einja/task-exec.md +106 -14
- package/presets/default/.claude/commands/einja/update-docs-by-task-specs.md +4 -0
- package/presets/default/.claude/hooks/einja/plan-mode-skill-loader.sh +23 -0
- package/presets/default/.claude/settings.json +15 -1
- package/presets/default/.claude/skills/einja-conflict-resolver/SKILL.md +4 -0
- package/presets/default/.claude/skills/einja-general-context-loader/SKILL.md +4 -0
- package/presets/default/.claude/skills/einja-output-format/SKILL.md +4 -0
- package/presets/default/.claude/skills/einja-project-overview/SKILL.md +7 -3
- package/presets/default/.claude/skills/einja-skill-creator/SKILL.md +266 -274
- package/presets/default/.claude/skills/einja-skill-creator/agents/analyzer.md +274 -0
- package/presets/default/.claude/skills/einja-skill-creator/agents/comparator.md +202 -0
- package/presets/default/.claude/skills/einja-skill-creator/agents/grader.md +195 -0
- package/presets/default/.claude/skills/einja-skill-creator/assets/eval_review.html +146 -0
- package/presets/default/.claude/skills/einja-skill-creator/eval-viewer/generate_review.py +471 -0
- package/presets/default/.claude/skills/einja-skill-creator/eval-viewer/viewer.html +1325 -0
- package/presets/default/.claude/skills/einja-skill-creator/references/schemas.md +430 -0
- package/presets/default/.claude/skills/einja-skill-creator/scripts/aggregate_benchmark.py +154 -0
- package/presets/default/.claude/skills/einja-skill-creator/scripts/generate_report.py +265 -0
- package/presets/default/.claude/skills/einja-skill-creator/scripts/improve_description.py +252 -0
- package/presets/default/.claude/skills/einja-skill-creator/scripts/init_skill.py +13 -19
- package/presets/default/.claude/skills/einja-skill-creator/scripts/package_skill.py +36 -7
- package/presets/default/.claude/skills/einja-skill-creator/scripts/run_eval.py +310 -0
- package/presets/default/.claude/skills/einja-skill-creator/scripts/run_loop.py +295 -0
- package/presets/default/.claude/skills/einja-skill-creator/scripts/utils.py +48 -0
- package/presets/default/.claude/skills/einja-spec-context-loader/SKILL.md +4 -0
- package/presets/default/.claude/skills/einja-task-commit/SKILL.md +4 -0
- package/presets/default/.claude/skills/einja-task-qa/SKILL.md +4 -0
- package/presets/default/.envrc +5 -0
- package/presets/default/.mcp.json +2 -12
- package/presets/default/CLAUDE.md.template +26 -4
- package/presets/default/docs/einja/example/specs/issues/issue999-example-task/tasks.md +1 -1
- package/presets/default/docs/einja/instructions/deployment-setup.md +3 -8
- package/presets/default/docs/einja/instructions/environment-setup.md +3 -8
- package/presets/default/docs/einja/instructions/issue-exec-workflow.md +276 -0
- package/presets/default/docs/einja/instructions/local-server-environment-and-worktree.md +70 -8
- package/presets/default/docs/einja/instructions/neon-cli-reference.md +3 -8
- package/presets/default/docs/einja/instructions/task-execute.md +23 -28
- package/presets/default/docs/einja/instructions/vercel-cli-reference.md +17 -10
- package/presets/default/docs/einja/steering/README.md +11 -11
- package/presets/default/docs/einja/steering/acceptance-criteria-and-qa-guide.md +3 -8
- package/presets/default/docs/einja/steering/architecture.md +3 -8
- package/presets/default/docs/einja/steering/branch-strategy.md +63 -70
- package/presets/default/docs/einja/steering/commit-rules.md +3 -8
- package/presets/default/docs/einja/steering/db-schema-design.md +3 -8
- package/presets/default/docs/einja/steering/development/api-development.md +3 -8
- package/presets/default/docs/einja/steering/development/backend-architecture.md +3 -8
- package/presets/default/docs/einja/steering/development/coding-standards.md +723 -0
- package/presets/default/docs/einja/steering/development/component-design.md +502 -0
- package/presets/default/docs/einja/steering/development/database-guidelines.md +2 -2
- package/presets/default/docs/einja/steering/development/frontend-development.md +3 -8
- package/presets/default/docs/einja/steering/development/playwright-guidelines.md +59 -0
- package/presets/default/docs/einja/steering/development/review-guidelines.md +3 -8
- package/presets/default/docs/einja/steering/development/testing-strategy.md +3 -8
- package/presets/default/docs/einja/steering/development-workflow.md +71 -124
- package/presets/default/docs/einja/steering/infrastructure/deployment.md +49 -55
- package/presets/default/docs/einja/steering/infrastructure/environment-variables.md +4 -8
- package/presets/default/docs/einja/steering/product.md +3 -8
- package/presets/default/docs/einja/steering/task-management.md +14 -98
- package/presets/default/scripts/ensure-serena.sh +75 -0
- package/presets/default/scripts/env-rotate-secrets.ts +336 -0
- package/presets/default/scripts/env-show.ts +130 -0
- package/presets/default/scripts/env.ts +479 -0
- package/presets/default/scripts/init.sh +92 -0
- package/presets/default/scripts/lib/env-common.ts +108 -0
- package/presets/default/scripts/lib/worktree-config.ts +64 -0
- package/presets/default/scripts/setup-dev.ts +640 -0
- package/presets/default/scripts/stop-serena.sh +25 -0
- package/presets/default/scripts/worktree/dev.ts +872 -0
- package/dist/lib/sync/seed-synchronizer.d.ts +0 -27
- package/dist/lib/sync/seed-synchronizer.d.ts.map +0 -1
- package/dist/lib/sync/seed-synchronizer.js +0 -72
- package/dist/lib/sync/seed-synchronizer.js.map +0 -1
- package/dist/lib/sync/seed-synchronizer.test.d.ts +0 -2
- package/dist/lib/sync/seed-synchronizer.test.d.ts.map +0 -1
- package/dist/lib/sync/seed-synchronizer.test.js +0 -147
- package/dist/lib/sync/seed-synchronizer.test.js.map +0 -1
- package/presets/default/.claude/skills/einja-api-development/SKILL.md +0 -14
- package/presets/default/.claude/skills/einja-backend-architecture/SKILL.md +0 -18
- package/presets/default/.claude/skills/einja-coding-standards/SKILL.md +0 -132
- package/presets/default/.claude/skills/einja-coding-standards/references/import-conventions.md +0 -69
- package/presets/default/.claude/skills/einja-coding-standards/references/naming-conventions.md +0 -107
- package/presets/default/.claude/skills/einja-coding-standards/references/prohibited-patterns.md +0 -169
- package/presets/default/.claude/skills/einja-coding-standards/references/typescript-rules.md +0 -247
- package/presets/default/.claude/skills/einja-component-design/SKILL.md +0 -109
- package/presets/default/.claude/skills/einja-component-design/references/directory-structure.md +0 -117
- package/presets/default/.claude/skills/einja-component-design/references/props-patterns.md +0 -159
- package/presets/default/.claude/skills/einja-component-design/references/styling-guide.md +0 -122
- package/presets/default/.claude/skills/einja-frontend-development/SKILL.md +0 -14
- package/presets/default/docs/einja/instructions/task-vibe-kanban-loop.md +0 -565
package/README.md
CHANGED
|
@@ -30,6 +30,93 @@ npx @einja/dev-cli init
|
|
|
30
30
|
|
|
31
31
|
> **ポイント**: 設定を更新したいだけなら`sync`を使ってください。`init --force`はユーザーカスタマイズ(seedセクション)を上書きします。
|
|
32
32
|
|
|
33
|
+
### 利用シーンのフロー
|
|
34
|
+
|
|
35
|
+
#### シナリオ1: ゼロから新規プロジェクト作成
|
|
36
|
+
|
|
37
|
+
```mermaid
|
|
38
|
+
sequenceDiagram
|
|
39
|
+
participant U as ユーザー
|
|
40
|
+
participant C as create-einja-app
|
|
41
|
+
participant D as @einja/dev-cli
|
|
42
|
+
|
|
43
|
+
U->>C: npx create-einja-app my-project
|
|
44
|
+
activate C
|
|
45
|
+
C->>C: 対話プロンプト(名前・認証・ツール)
|
|
46
|
+
C->>C: テンプレート展開<br/>apps/, packages/, docker-compose,<br/>package.json, tsconfig, turbo.json...
|
|
47
|
+
C->>C: git init + pnpm install
|
|
48
|
+
C->>D: npx @einja/dev-cli init --force --no-backup
|
|
49
|
+
activate D
|
|
50
|
+
D->>D: .claude/ 生成
|
|
51
|
+
D->>D: docs/einja/ コピー
|
|
52
|
+
D->>D: CLAUDE.md 生成
|
|
53
|
+
D->>D: .mcp.json セットアップ
|
|
54
|
+
D->>D: symlinks 作成
|
|
55
|
+
D->>D: 依存関係インストール
|
|
56
|
+
D-->>C: 完了
|
|
57
|
+
deactivate D
|
|
58
|
+
C-->>U: プロジェクト作成完了
|
|
59
|
+
deactivate C
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
#### シナリオ2: テンプレート更新の取り込み
|
|
63
|
+
|
|
64
|
+
```mermaid
|
|
65
|
+
sequenceDiagram
|
|
66
|
+
participant U as ユーザー
|
|
67
|
+
participant C as create-einja-app
|
|
68
|
+
participant D as @einja/dev-cli
|
|
69
|
+
|
|
70
|
+
Note over U: CLIバージョンアップ後
|
|
71
|
+
|
|
72
|
+
U->>C: npx create-einja-app sync
|
|
73
|
+
activate C
|
|
74
|
+
C->>C: アプリ設定を差分マージ<br/>turbo.json, biome.json,<br/>docker-compose, .github/ 等
|
|
75
|
+
C-->>U: アプリ設定が最新に
|
|
76
|
+
deactivate C
|
|
77
|
+
|
|
78
|
+
U->>D: npx @einja/dev-cli sync
|
|
79
|
+
activate D
|
|
80
|
+
D->>D: AI環境を差分マージ<br/>.claude/, docs/einja/,<br/>CLAUDE.md, .mcp.json 等
|
|
81
|
+
D-->>U: AI環境が最新に
|
|
82
|
+
deactivate D
|
|
83
|
+
|
|
84
|
+
Note over C,D: 管轄が分離しているため順不同・独立
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
#### シナリオ3: 既存プロジェクトに新規導入
|
|
88
|
+
|
|
89
|
+
```mermaid
|
|
90
|
+
sequenceDiagram
|
|
91
|
+
participant U as ユーザー
|
|
92
|
+
participant D as @einja/dev-cli
|
|
93
|
+
participant C as create-einja-app
|
|
94
|
+
|
|
95
|
+
Note over U: 既にコードがあるプロジェクト
|
|
96
|
+
|
|
97
|
+
U->>D: npx @einja/dev-cli init
|
|
98
|
+
activate D
|
|
99
|
+
D->>D: .claude/ 生成
|
|
100
|
+
D->>D: docs/einja/ コピー
|
|
101
|
+
D->>D: CLAUDE.md 生成
|
|
102
|
+
D->>D: .mcp.json マージ(既存設定を保持)
|
|
103
|
+
D->>D: 依存関係チェック
|
|
104
|
+
D-->>U: AI開発環境セットアップ完了
|
|
105
|
+
deactivate D
|
|
106
|
+
|
|
107
|
+
alt アプリ設定も部分導入したい場合
|
|
108
|
+
U->>C: npx create-einja-app sync<br/>--categories tools,env,git
|
|
109
|
+
activate C
|
|
110
|
+
C->>C: 選択したカテゴリのみマージ<br/>biome.json, .envrc, .gitignore
|
|
111
|
+
C-->>U: 部分導入完了
|
|
112
|
+
deactivate C
|
|
113
|
+
end
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
#### シナリオ4: 定期的なアップデート
|
|
117
|
+
|
|
118
|
+
シナリオ2と同じ。`dev-cli sync` と `create-einja-app sync` を必要に応じて実行。
|
|
119
|
+
|
|
33
120
|
## インストール
|
|
34
121
|
|
|
35
122
|
```bash
|
|
@@ -95,6 +182,7 @@ npx @einja/dev-cli sync --only hooks
|
|
|
95
182
|
- `skills` - スキル定義
|
|
96
183
|
- `hooks` - Git Hooks
|
|
97
184
|
- `docs` - ステアリングドキュメント
|
|
185
|
+
- `scripts` - ユーティリティスクリプト
|
|
98
186
|
- `env` - 環境設定ファイル(`.envrc`)
|
|
99
187
|
- `tools` - 開発ツール設定(`.vscode/settings.json`)
|
|
100
188
|
|
|
@@ -102,7 +190,7 @@ npx @einja/dev-cli sync --only hooks
|
|
|
102
190
|
|
|
103
191
|
ファイルには、同期動作を制御するマーカーがあります:
|
|
104
192
|
- `@einja:managed` - 常にテンプレート版で上書き(共通ルール)
|
|
105
|
-
- `@einja:
|
|
193
|
+
- `@einja:project-private` - 初回のみ追加、以降はローカル編集を保持(プロジェクト固有設定)
|
|
106
194
|
- `@einja:excluded` - テンプレートのみに存在し、syncでコピーされない(テンプレート専用設定)
|
|
107
195
|
|
|
108
196
|
詳細は [マーカー仕様書](docs/MARKER_SPECIFICATION.md) を参照してください。
|
package/dist/cli.js
CHANGED
|
@@ -37,6 +37,7 @@ program
|
|
|
37
37
|
.option("-y, --yes", "確認プロンプトをスキップ")
|
|
38
38
|
.option("-j, --json", "JSON形式で結果を出力")
|
|
39
39
|
.option("--no-backup", "変更前にバックアップを作成しない")
|
|
40
|
+
.option("--clean", "テンプレートから削除されたファイル(孤児)を削除")
|
|
40
41
|
.option("--skip-deps", "依存関係のチェック・インストールをスキップ")
|
|
41
42
|
.action(syncCommand);
|
|
42
43
|
program
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,wBAAwB;AACxB,MAAM,mBAAmB,GAAG,MAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AAC3E,IAAI,mBAAmB,EAAE,CAAC;IACxB,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,MAAM,CACV,+DAA+D,CAChE,CACF,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,2CAA2C,CAAC;KACxD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,uBAAuB,EAAE,4BAA4B,EAAE,SAAS,CAAC;KACxE,MAAM,CAAC,aAAa,EAAE,kBAAkB,CAAC;KACzC,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC;KACrC,MAAM,CAAC,WAAW,EAAE,uBAAuB,CAAC;KAC5C,MAAM,CAAC,aAAa,EAAE,uBAAuB,CAAC;KAC9C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC;KACnC,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAE3E,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,eAAe,CAAC;KAC5B,MAAM,CAAC,yBAAyB,EAAE,oBAAoB,CAAC;KACvD,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC;KAC3C,MAAM,CAAC,aAAa,EAAE,uBAAuB,CAAC;KAC9C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC;KACnC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC;KACpC,MAAM,CAAC,aAAa,EAAE,kBAAkB,CAAC;KACzC,MAAM,CAAC,aAAa,EAAE,uBAAuB,CAAC;KAC9C,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,uBAAuB,CAAC;KACpC,MAAM,CAAC,0BAA0B,EAAE,aAAa,CAAC;KACjD,MAAM,CAAC,qBAAqB,EAAE,SAAS,CAAC;KACxC,MAAM,CAAC,eAAe,CAAC,CAAC;AAE3B,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,wBAAwB;AACxB,MAAM,mBAAmB,GAAG,MAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AAC3E,IAAI,mBAAmB,EAAE,CAAC;IACxB,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,MAAM,CACV,+DAA+D,CAChE,CACF,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,2CAA2C,CAAC;KACxD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,uBAAuB,EAAE,4BAA4B,EAAE,SAAS,CAAC;KACxE,MAAM,CAAC,aAAa,EAAE,kBAAkB,CAAC;KACzC,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC;KACrC,MAAM,CAAC,WAAW,EAAE,uBAAuB,CAAC;KAC5C,MAAM,CAAC,aAAa,EAAE,uBAAuB,CAAC;KAC9C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC;KACnC,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAE3E,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,eAAe,CAAC;KAC5B,MAAM,CAAC,yBAAyB,EAAE,oBAAoB,CAAC;KACvD,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC;KAC3C,MAAM,CAAC,aAAa,EAAE,uBAAuB,CAAC;KAC9C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC;KACnC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC;KACpC,MAAM,CAAC,aAAa,EAAE,kBAAkB,CAAC;KACzC,MAAM,CAAC,SAAS,EAAE,0BAA0B,CAAC;KAC7C,MAAM,CAAC,aAAa,EAAE,uBAAuB,CAAC;KAC9C,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,uBAAuB,CAAC;KACpC,MAAM,CAAC,0BAA0B,EAAE,aAAa,CAAC;KACjD,MAAM,CAAC,qBAAqB,EAAE,SAAS,CAAC;KACxC,MAAM,CAAC,eAAe,CAAC,CAAC;AAE3B,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAuSrE"}
|
package/dist/commands/init.js
CHANGED
|
@@ -6,7 +6,7 @@ import ora from "ora";
|
|
|
6
6
|
import { checkAndInstallDependencies } from "../lib/dependency-checker.js";
|
|
7
7
|
import { backupDirectory } from "../lib/file-system.js";
|
|
8
8
|
import { setupMcpConfig } from "../lib/mcp-config.js";
|
|
9
|
-
import { copyDocTemplates, copySteeringDocs, createSymlinks, generateClaudeDirectory, generateClaudeMd, } from "../lib/merger.js";
|
|
9
|
+
import { copyDocTemplates, copyPresetDirectory, copyPresetFile, copySteeringDocs, createSymlinks, generateClaudeDirectory, generateClaudeMd, } from "../lib/merger.js";
|
|
10
10
|
import { detectPackageManager } from "../lib/package-manager.js";
|
|
11
11
|
import { loadPreset, presetExists } from "../lib/preset.js";
|
|
12
12
|
export async function initCommand(options) {
|
|
@@ -19,6 +19,11 @@ export async function initCommand(options) {
|
|
|
19
19
|
const templatesDir = path.join(einjaDocsDir, "templates");
|
|
20
20
|
const steeringDir = path.join(einjaDocsDir, "steering");
|
|
21
21
|
const claudeMdPath = path.join(cwd, "CLAUDE.md");
|
|
22
|
+
const instructionsDir = path.join(einjaDocsDir, "instructions");
|
|
23
|
+
const exampleDir = path.join(einjaDocsDir, "example");
|
|
24
|
+
const scriptsDir = path.join(cwd, "scripts");
|
|
25
|
+
const envrcPath = path.join(cwd, ".envrc");
|
|
26
|
+
const vscodeSettingsPath = path.join(cwd, ".vscode", "settings.json");
|
|
22
27
|
console.log(chalk.blue("\n🚀 Einja Claude CLI - .claude セットアップ\n"));
|
|
23
28
|
// 1. プリセット読み込み(デフォルト: default)
|
|
24
29
|
const presetName = (_a = options.preset) !== null && _a !== void 0 ? _a : "default";
|
|
@@ -38,6 +43,11 @@ export async function initCommand(options) {
|
|
|
38
43
|
console.log(" - settings.json をマージ・生成");
|
|
39
44
|
console.log(` - ${templatesDir} にドキュメントテンプレートをコピー`);
|
|
40
45
|
console.log(` - ${steeringDir} にステアリングドキュメントをコピー`);
|
|
46
|
+
console.log(` - ${instructionsDir} にinstructionsドキュメントをコピー`);
|
|
47
|
+
console.log(` - ${exampleDir} にexampleドキュメントをコピー`);
|
|
48
|
+
console.log(` - ${scriptsDir} にスクリプトをコピー`);
|
|
49
|
+
console.log(` - ${envrcPath} をコピー`);
|
|
50
|
+
console.log(` - ${vscodeSettingsPath} をコピー`);
|
|
41
51
|
console.log(` - ${claudeMdPath} を生成`);
|
|
42
52
|
console.log(" - シンボリックリンクを作成(symlinks.json に基づく)");
|
|
43
53
|
console.log(" リンク先パスはインストール時に自動計算");
|
|
@@ -104,6 +114,61 @@ export async function initCommand(options) {
|
|
|
104
114
|
console.error(chalk.red(error instanceof Error ? error.message : String(error)));
|
|
105
115
|
process.exit(1);
|
|
106
116
|
}
|
|
117
|
+
// 6A. instructionsドキュメントをコピー
|
|
118
|
+
spinner.start("instructionsドキュメントをセットアップ中...");
|
|
119
|
+
try {
|
|
120
|
+
await copyPresetDirectory(instructionsDir, "docs/einja/instructions");
|
|
121
|
+
spinner.succeed(`instructionsドキュメント: ${instructionsDir}`);
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
spinner.fail("instructionsドキュメントのセットアップに失敗しました");
|
|
125
|
+
console.error(chalk.red(error instanceof Error ? error.message : String(error)));
|
|
126
|
+
process.exit(1);
|
|
127
|
+
}
|
|
128
|
+
// 6B. exampleドキュメントをコピー
|
|
129
|
+
spinner.start("exampleドキュメントをセットアップ中...");
|
|
130
|
+
try {
|
|
131
|
+
await copyPresetDirectory(exampleDir, "docs/einja/example");
|
|
132
|
+
spinner.succeed(`exampleドキュメント: ${exampleDir}`);
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
spinner.fail("exampleドキュメントのセットアップに失敗しました");
|
|
136
|
+
console.error(chalk.red(error instanceof Error ? error.message : String(error)));
|
|
137
|
+
process.exit(1);
|
|
138
|
+
}
|
|
139
|
+
// 6C. scriptsディレクトリをコピー
|
|
140
|
+
spinner.start("スクリプトをセットアップ中...");
|
|
141
|
+
try {
|
|
142
|
+
await copyPresetDirectory(scriptsDir, "scripts");
|
|
143
|
+
spinner.succeed(`スクリプト: ${scriptsDir}`);
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
spinner.fail("スクリプトのセットアップに失敗しました");
|
|
147
|
+
console.error(chalk.red(error instanceof Error ? error.message : String(error)));
|
|
148
|
+
process.exit(1);
|
|
149
|
+
}
|
|
150
|
+
// 6D. .envrcをコピー
|
|
151
|
+
spinner.start(".envrcをセットアップ中...");
|
|
152
|
+
try {
|
|
153
|
+
await copyPresetFile(envrcPath, ".envrc");
|
|
154
|
+
spinner.succeed(`.envrc: ${envrcPath}`);
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
spinner.fail(".envrcのセットアップに失敗しました");
|
|
158
|
+
console.error(chalk.red(error instanceof Error ? error.message : String(error)));
|
|
159
|
+
process.exit(1);
|
|
160
|
+
}
|
|
161
|
+
// 6E. .vscode/settings.jsonをコピー
|
|
162
|
+
spinner.start(".vscode/settings.jsonをセットアップ中...");
|
|
163
|
+
try {
|
|
164
|
+
await copyPresetFile(vscodeSettingsPath, ".vscode/settings.json");
|
|
165
|
+
spinner.succeed(`.vscode/settings.json: ${vscodeSettingsPath}`);
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
spinner.fail(".vscode/settings.jsonのセットアップに失敗しました");
|
|
169
|
+
console.error(chalk.red(error instanceof Error ? error.message : String(error)));
|
|
170
|
+
process.exit(1);
|
|
171
|
+
}
|
|
107
172
|
// 7. CLAUDE.mdを生成
|
|
108
173
|
spinner.start("CLAUDE.mdを生成中...");
|
|
109
174
|
try {
|
|
@@ -202,6 +267,11 @@ export async function initCommand(options) {
|
|
|
202
267
|
console.log(" - .claude/ Claude Code設定");
|
|
203
268
|
console.log(" - docs/einja/templates/ ドキュメントテンプレート");
|
|
204
269
|
console.log(" - docs/einja/steering/ ステアリングドキュメント");
|
|
270
|
+
console.log(" - docs/einja/instructions/ 操作手順書");
|
|
271
|
+
console.log(" - docs/einja/example/ サンプル・参考例");
|
|
272
|
+
console.log(" - scripts/ ユーティリティスクリプト");
|
|
273
|
+
console.log(" - .envrc 環境設定");
|
|
274
|
+
console.log(" - .vscode/ エディタ設定");
|
|
205
275
|
console.log(" - CLAUDE.md プロジェクト設定");
|
|
206
276
|
if (mcpSetupSuccess) {
|
|
207
277
|
console.log(" - .mcp.json MCPサーバー設定");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,WAAW;;IAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAE7C,MAAM,OAAO,GAAG,MAAM,aAAa,EAAE,CAAC;IAEtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAErD,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7E,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wCAAwC,MAAA,MAAA,OAAO,CAAC,CAAC,CAAC,0CAAE,IAAI,mCAAI,SAAS,EAAE,CAAC,CAAC,CAAC;AACnG,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAiDpD;;;GAGG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA2qBrE"}
|
package/dist/commands/sync.js
CHANGED
|
@@ -11,17 +11,18 @@ import { BackupManager } from "../lib/sync/backup-manager.js";
|
|
|
11
11
|
import { BatchProcessor } from "../lib/sync/batch-processor.js";
|
|
12
12
|
import { createValidationErrorMessage, validateCategories, } from "../lib/sync/category-validator.js";
|
|
13
13
|
import { ConflictReporter } from "../lib/sync/conflict-reporter.js";
|
|
14
|
+
import { OrphanCleaner } from "../lib/sync/orphan-cleaner.js";
|
|
14
15
|
import { DiffEngine } from "../lib/sync/diff-engine.js";
|
|
15
16
|
import { FileFilter } from "../lib/sync/file-filter.js";
|
|
16
17
|
import { JsonProcessor } from "../lib/sync/json-processor.js";
|
|
17
18
|
import { MarkerProcessor } from "../lib/sync/marker-processor.js";
|
|
18
19
|
import { MetadataManager } from "../lib/sync/metadata-manager.js";
|
|
19
|
-
import {
|
|
20
|
+
import { ProjectPrivateSynchronizer } from "../lib/sync/project-private-synchronizer.js";
|
|
20
21
|
/**
|
|
21
22
|
* ファイル内容にマーカーが含まれているかチェック
|
|
22
23
|
*/
|
|
23
24
|
function hasMarkers(content) {
|
|
24
|
-
return content.includes("@einja:managed:start") || content.includes("@einja:seed:start");
|
|
25
|
+
return content.includes("@einja:managed:start") || content.includes("@einja:project-private:start") || content.includes("@einja:seed:start");
|
|
25
26
|
}
|
|
26
27
|
/**
|
|
27
28
|
* マーカーベースのマージを実行する
|
|
@@ -29,16 +30,16 @@ function hasMarkers(content) {
|
|
|
29
30
|
* @param localContent - ローカルファイルの内容
|
|
30
31
|
* @param templateContent - テンプレートファイルの内容
|
|
31
32
|
* @param markerProcessor - MarkerProcessorインスタンス
|
|
32
|
-
* @param
|
|
33
|
+
* @param projectPrivateSynchronizer - ProjectPrivateSynchronizerインスタンス
|
|
33
34
|
* @returns マージ後の内容
|
|
34
35
|
*/
|
|
35
|
-
function mergeWithMarkers(localContent, templateContent, markerProcessor,
|
|
36
|
+
function mergeWithMarkers(localContent, templateContent, markerProcessor, projectPrivateSynchronizer) {
|
|
36
37
|
// 1. ローカルのセクションをパース
|
|
37
38
|
const localSections = markerProcessor.parseMarkers(localContent);
|
|
38
39
|
// 2. managedセクションをテンプレート版で置換
|
|
39
40
|
const afterManaged = markerProcessor.replaceManaged(localSections, templateContent);
|
|
40
|
-
// 3.
|
|
41
|
-
const finalContent =
|
|
41
|
+
// 3. project-privateセクションを同期(ローカルに存在しないproject-privateを追加)
|
|
42
|
+
const finalContent = projectPrivateSynchronizer.syncProjectPrivateSections(afterManaged, templateContent);
|
|
42
43
|
return finalContent;
|
|
43
44
|
}
|
|
44
45
|
/**
|
|
@@ -58,6 +59,7 @@ function log(message, options) {
|
|
|
58
59
|
* テンプレートからの更新を同期し、ローカル変更を保持する
|
|
59
60
|
*/
|
|
60
61
|
export async function syncCommand(options) {
|
|
62
|
+
var _a, _b;
|
|
61
63
|
// --jsonオプション時はspinnerを標準エラー出力に変更
|
|
62
64
|
const spinner = ora({ stream: options.json ? process.stderr : process.stdout });
|
|
63
65
|
const cwd = process.cwd();
|
|
@@ -88,8 +90,9 @@ export async function syncCommand(options) {
|
|
|
88
90
|
const backupManager = new BackupManager(cwd);
|
|
89
91
|
const batchProcessor = new BatchProcessor(10); // バッチサイズ: 10ファイル
|
|
90
92
|
const markerProcessor = new MarkerProcessor();
|
|
91
|
-
const
|
|
93
|
+
const projectPrivateSynchronizer = new ProjectPrivateSynchronizer();
|
|
92
94
|
const jsonProcessor = new JsonProcessor();
|
|
95
|
+
const orphanCleaner = new OrphanCleaner(cwd, fileFilter);
|
|
93
96
|
// 3. メタデータ読み込み
|
|
94
97
|
spinner.start("メタデータを読み込み中...");
|
|
95
98
|
const metadata = await metadataManager.load();
|
|
@@ -117,12 +120,88 @@ export async function syncCommand(options) {
|
|
|
117
120
|
const changedFiles = changedFilesFlags
|
|
118
121
|
.filter((result) => result.changed)
|
|
119
122
|
.map((result) => result.target);
|
|
123
|
+
// 孤児検出(常に実行)
|
|
124
|
+
const currentTemplateFiles = targets.map((t) => t.path);
|
|
125
|
+
const orphans = await orphanCleaner.detectOrphans(metadata, currentTemplateFiles, categories);
|
|
126
|
+
const orphanReport = orphanCleaner.createReport(orphans);
|
|
120
127
|
// --force オプション時は全ファイルを対象にする
|
|
121
128
|
const filesToProcess = options.force ? targets : changedFiles;
|
|
122
|
-
if (filesToProcess.length === 0) {
|
|
129
|
+
if (filesToProcess.length === 0 && !orphanReport.hasOrphans) {
|
|
123
130
|
log(chalk.green("\n✅ すでに最新です"), options);
|
|
124
131
|
return;
|
|
125
132
|
}
|
|
133
|
+
// 変更ファイルなし & 孤児のみの場合
|
|
134
|
+
if (filesToProcess.length === 0 && orphanReport.hasOrphans) {
|
|
135
|
+
spinner.succeed("✓ 変更ファイルなし");
|
|
136
|
+
if (options.dryRun) {
|
|
137
|
+
log(orphanCleaner.formatReport(orphanReport), options);
|
|
138
|
+
if (!options.clean) {
|
|
139
|
+
log(orphanCleaner.formatHelpMessage(), options);
|
|
140
|
+
}
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
// --clean 時: 孤児削除処理へ進む
|
|
144
|
+
if (options.clean) {
|
|
145
|
+
const existingOrphans = orphanReport.orphans.filter((o) => o.exists);
|
|
146
|
+
if (existingOrphans.length > 0) {
|
|
147
|
+
log(orphanCleaner.formatReport(orphanReport), options);
|
|
148
|
+
// 確認プロンプト(--yes でスキップ)
|
|
149
|
+
let proceedClean = (_a = options.yes) !== null && _a !== void 0 ? _a : false;
|
|
150
|
+
if (!options.yes) {
|
|
151
|
+
const { confirm } = await inquirer.prompt([
|
|
152
|
+
{
|
|
153
|
+
type: "confirm",
|
|
154
|
+
name: "confirm",
|
|
155
|
+
message: `${existingOrphans.length}ファイルを削除します。続行しますか?`,
|
|
156
|
+
default: false,
|
|
157
|
+
},
|
|
158
|
+
]);
|
|
159
|
+
proceedClean = confirm;
|
|
160
|
+
}
|
|
161
|
+
if (proceedClean) {
|
|
162
|
+
// バックアップ作成
|
|
163
|
+
if (options.backup !== false) {
|
|
164
|
+
const orphanPaths = existingOrphans.map((o) => o.path);
|
|
165
|
+
await backupManager.backupFiles(orphanPaths);
|
|
166
|
+
}
|
|
167
|
+
// ファイル削除
|
|
168
|
+
let deletedCount = 0;
|
|
169
|
+
for (const orphan of existingOrphans) {
|
|
170
|
+
// パストラバーサル防御
|
|
171
|
+
const normalized = path.normalize(orphan.path);
|
|
172
|
+
if (normalized.includes('..') || path.isAbsolute(normalized)) {
|
|
173
|
+
log(` ⚠️ スキップ(不正なパス): ${orphan.path}`, options);
|
|
174
|
+
continue;
|
|
175
|
+
}
|
|
176
|
+
const fullPath = path.join(cwd, orphan.path);
|
|
177
|
+
await fs.remove(fullPath);
|
|
178
|
+
log(` 🗑️ 削除: ${orphan.path}`, options);
|
|
179
|
+
deletedCount++;
|
|
180
|
+
}
|
|
181
|
+
// メタデータから削除
|
|
182
|
+
const orphanPaths = orphanReport.orphans.map((o) => o.path);
|
|
183
|
+
const cleanedMetadata = metadataManager.removeFiles(metadata, orphanPaths);
|
|
184
|
+
Object.assign(metadata, cleanedMetadata);
|
|
185
|
+
await metadataManager.save(metadata);
|
|
186
|
+
log(chalk.green(`\n✅ 孤児削除完了: ${deletedCount}ファイル`), options);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
// ディスク上に存在しない孤児のみ → メタデータだけクリーン
|
|
191
|
+
const orphanPaths = orphanReport.orphans.map((o) => o.path);
|
|
192
|
+
const cleanedMetadata = metadataManager.removeFiles(metadata, orphanPaths);
|
|
193
|
+
Object.assign(metadata, cleanedMetadata);
|
|
194
|
+
await metadataManager.save(metadata);
|
|
195
|
+
log(chalk.green("\n✅ 孤児メタデータをクリーンアップしました"), options);
|
|
196
|
+
}
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
// --clean なし: 警告表示のみ
|
|
200
|
+
log(chalk.green("\n✅ すでに最新です"), options);
|
|
201
|
+
log(orphanCleaner.formatReport(orphanReport), options);
|
|
202
|
+
log(orphanCleaner.formatHelpMessage(), options);
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
126
205
|
if (options.force) {
|
|
127
206
|
spinner.succeed(`✓ ${filesToProcess.length}ファイルを強制同期`);
|
|
128
207
|
}
|
|
@@ -158,7 +237,7 @@ export async function syncCommand(options) {
|
|
|
158
237
|
// jsonPathsの取得(メタデータに存在しない場合はデフォルト値)
|
|
159
238
|
const jsonPaths = metadata.jsonPaths || {
|
|
160
239
|
managed: {},
|
|
161
|
-
|
|
240
|
+
"project-private": {},
|
|
162
241
|
};
|
|
163
242
|
// ファイル名のみを抽出(create-einja-appの登録形式に合わせる)
|
|
164
243
|
const fileName = target.path.split("/").pop() || target.path;
|
|
@@ -219,6 +298,13 @@ export async function syncCommand(options) {
|
|
|
219
298
|
else {
|
|
220
299
|
log(chalk.green("✅ コンフリクトは検出されませんでした。\n"), options);
|
|
221
300
|
}
|
|
301
|
+
// 孤児レポート表示
|
|
302
|
+
if (orphanReport.hasOrphans) {
|
|
303
|
+
log(orphanCleaner.formatReport(orphanReport), options);
|
|
304
|
+
if (!options.clean) {
|
|
305
|
+
log(orphanCleaner.formatHelpMessage(), options);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
222
308
|
return;
|
|
223
309
|
}
|
|
224
310
|
// 7. 確認プロンプト(--yes指定時はスキップ)
|
|
@@ -269,7 +355,14 @@ export async function syncCommand(options) {
|
|
|
269
355
|
};
|
|
270
356
|
}
|
|
271
357
|
// 既存ファイルの内容を読み込み
|
|
272
|
-
|
|
358
|
+
let localContent = await fs.readFile(projectPath, "utf-8");
|
|
359
|
+
// 自動マイグレーション: 旧@einja:seedを検出したら@einja:project-privateに変換
|
|
360
|
+
if (localContent.includes("@einja:seed:")) {
|
|
361
|
+
const migratedContent = markerProcessor.migrateLegacySeedMarkers(localContent);
|
|
362
|
+
// マイグレーション結果をファイルに書き戻す
|
|
363
|
+
await fs.writeFile(projectPath, migratedContent, "utf-8");
|
|
364
|
+
localContent = migratedContent;
|
|
365
|
+
}
|
|
273
366
|
// JSONファイルの場合はJsonProcessorを使用
|
|
274
367
|
if (target.path.endsWith(".json")) {
|
|
275
368
|
try {
|
|
@@ -278,7 +371,7 @@ export async function syncCommand(options) {
|
|
|
278
371
|
// jsonPathsの取得(メタデータに存在しない場合はデフォルト値)
|
|
279
372
|
const jsonPaths = metadata.jsonPaths || {
|
|
280
373
|
managed: {},
|
|
281
|
-
|
|
374
|
+
"project-private": {},
|
|
282
375
|
};
|
|
283
376
|
// ファイル名のみを抽出(create-einja-appの登録形式に合わせる)
|
|
284
377
|
const fileName = target.path.split("/").pop() || target.path;
|
|
@@ -314,6 +407,29 @@ export async function syncCommand(options) {
|
|
|
314
407
|
const templateHasMarkers = hasMarkers(templateContent);
|
|
315
408
|
const localHasMarkers = hasMarkers(localContent);
|
|
316
409
|
if (templateHasMarkers || localHasMarkers) {
|
|
410
|
+
// project-privateのみ(managedなし)のファイル処理
|
|
411
|
+
const hasManaged = localContent.includes("@einja:managed:start") ||
|
|
412
|
+
templateContent.includes("@einja:managed:start");
|
|
413
|
+
const hasProjectPrivate = localContent.includes("@einja:project-private:start") ||
|
|
414
|
+
localContent.includes("@einja:seed:start") ||
|
|
415
|
+
templateContent.includes("@einja:project-private:start") ||
|
|
416
|
+
templateContent.includes("@einja:seed:start");
|
|
417
|
+
if (!hasManaged && hasProjectPrivate) {
|
|
418
|
+
// managedなしファイル: 3方向マージ + project-private保持
|
|
419
|
+
const fileMetadata = metadata.files[target.path];
|
|
420
|
+
const baseContent = fileMetadata
|
|
421
|
+
? (await metadataManager.getBaseContent(target.templatePath)).content
|
|
422
|
+
: "";
|
|
423
|
+
const result = projectPrivateSynchronizer.syncProjectPrivateOnlyFile(localContent, templateContent, baseContent, diffEngine);
|
|
424
|
+
return {
|
|
425
|
+
target,
|
|
426
|
+
templateContent,
|
|
427
|
+
mergeContent: result.content,
|
|
428
|
+
success: result.success,
|
|
429
|
+
conflicts: result.conflicts,
|
|
430
|
+
action: "merged",
|
|
431
|
+
};
|
|
432
|
+
}
|
|
317
433
|
// マーカーベースのマージ
|
|
318
434
|
// 1. マーカーバリデーション
|
|
319
435
|
const templateValidation = markerProcessor.validateMarkers(templateContent);
|
|
@@ -335,7 +451,7 @@ export async function syncCommand(options) {
|
|
|
335
451
|
};
|
|
336
452
|
}
|
|
337
453
|
// 2. マーカーベースのマージを実行
|
|
338
|
-
const mergedContent = mergeWithMarkers(localContent, templateContent, markerProcessor,
|
|
454
|
+
const mergedContent = mergeWithMarkers(localContent, templateContent, markerProcessor, projectPrivateSynchronizer);
|
|
339
455
|
return {
|
|
340
456
|
target,
|
|
341
457
|
templateContent,
|
|
@@ -404,6 +520,51 @@ export async function syncCommand(options) {
|
|
|
404
520
|
}
|
|
405
521
|
}
|
|
406
522
|
spinner.succeed("ファイルマージ完了");
|
|
523
|
+
// 孤児削除処理(--clean 時のみ)
|
|
524
|
+
let orphansDeleted = 0;
|
|
525
|
+
if (options.clean && orphanReport.hasOrphans) {
|
|
526
|
+
const existingOrphans = orphanReport.orphans.filter((o) => o.exists);
|
|
527
|
+
if (existingOrphans.length > 0) {
|
|
528
|
+
log(orphanCleaner.formatReport(orphanReport), options);
|
|
529
|
+
// 確認プロンプト(--yes でスキップ)
|
|
530
|
+
let proceedClean = (_b = options.yes) !== null && _b !== void 0 ? _b : false;
|
|
531
|
+
if (!options.yes) {
|
|
532
|
+
const { confirm } = await inquirer.prompt([
|
|
533
|
+
{
|
|
534
|
+
type: "confirm",
|
|
535
|
+
name: "confirm",
|
|
536
|
+
message: `${existingOrphans.length}ファイルを削除します。続行しますか?`,
|
|
537
|
+
default: false,
|
|
538
|
+
},
|
|
539
|
+
]);
|
|
540
|
+
proceedClean = confirm;
|
|
541
|
+
}
|
|
542
|
+
if (proceedClean) {
|
|
543
|
+
// バックアップ作成
|
|
544
|
+
if (options.backup !== false) {
|
|
545
|
+
const orphanPaths = existingOrphans.map((o) => o.path);
|
|
546
|
+
await backupManager.backupFiles(orphanPaths);
|
|
547
|
+
}
|
|
548
|
+
// ファイル削除
|
|
549
|
+
for (const orphan of existingOrphans) {
|
|
550
|
+
// パストラバーサル防御
|
|
551
|
+
const normalized = path.normalize(orphan.path);
|
|
552
|
+
if (normalized.includes('..') || path.isAbsolute(normalized)) {
|
|
553
|
+
log(` ⚠️ スキップ(不正なパス): ${orphan.path}`, options);
|
|
554
|
+
continue;
|
|
555
|
+
}
|
|
556
|
+
const fullPath = path.join(cwd, orphan.path);
|
|
557
|
+
await fs.remove(fullPath);
|
|
558
|
+
log(` 🗑️ 削除: ${orphan.path}`, options);
|
|
559
|
+
orphansDeleted++;
|
|
560
|
+
}
|
|
561
|
+
// メタデータから削除
|
|
562
|
+
const orphanPaths = orphanReport.orphans.map((o) => o.path);
|
|
563
|
+
const cleanedMetadata = metadataManager.removeFiles(metadata, orphanPaths);
|
|
564
|
+
Object.assign(metadata, cleanedMetadata);
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
}
|
|
407
568
|
// 10. メタデータ保存
|
|
408
569
|
await metadataManager.save(metadata);
|
|
409
570
|
// 11. コンフリクトレポート
|
|
@@ -419,12 +580,15 @@ export async function syncCommand(options) {
|
|
|
419
580
|
succeeded: successCount,
|
|
420
581
|
conflicts: conflictReport.totalConflicts,
|
|
421
582
|
skipped: skipCount,
|
|
583
|
+
orphansDetected: orphanReport.total,
|
|
584
|
+
orphansDeleted,
|
|
422
585
|
},
|
|
423
586
|
files: jsonFiles,
|
|
424
587
|
metadata: {
|
|
425
588
|
version: metadata.version,
|
|
426
589
|
syncedAt: new Date().toISOString(),
|
|
427
590
|
},
|
|
591
|
+
orphans: orphanReport.hasOrphans ? orphanReport.orphans : undefined,
|
|
428
592
|
};
|
|
429
593
|
// JSON出力は標準出力へ
|
|
430
594
|
console.log(JSON.stringify(jsonOutput, null, 2));
|
|
@@ -441,6 +605,16 @@ export async function syncCommand(options) {
|
|
|
441
605
|
log(conflictReporter.formatReport(conflictReport), options);
|
|
442
606
|
log(conflictReporter.formatHelpMessage(), options);
|
|
443
607
|
}
|
|
608
|
+
// 孤児レポート
|
|
609
|
+
if (orphanReport.hasOrphans) {
|
|
610
|
+
if (options.clean && orphansDeleted > 0) {
|
|
611
|
+
log(` - 孤児削除: ${orphansDeleted}ファイル`, options);
|
|
612
|
+
}
|
|
613
|
+
else {
|
|
614
|
+
log(orphanCleaner.formatReport(orphanReport), options);
|
|
615
|
+
log(orphanCleaner.formatHelpMessage(), options);
|
|
616
|
+
}
|
|
617
|
+
}
|
|
444
618
|
}
|
|
445
619
|
// 13. 依存関係チェック+インストール
|
|
446
620
|
if (!options.skipDeps) {
|
|
@@ -455,7 +629,7 @@ export async function syncCommand(options) {
|
|
|
455
629
|
);
|
|
456
630
|
}
|
|
457
631
|
}
|
|
458
|
-
catch (
|
|
632
|
+
catch (_c) {
|
|
459
633
|
// プリセット読み込みエラーは無視
|
|
460
634
|
}
|
|
461
635
|
}
|