@c-d-cc/reap 0.13.1 → 0.13.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/README.ja.md CHANGED
@@ -60,6 +60,8 @@ REAPは**世代ベースの進化モデル**でこれらの問題を解決しま
60
60
 
61
61
  ## インストール
62
62
 
63
+ > **グローバルインストール必須。** REAPはCLIツールであり、グローバルにインストールする必要があります。ローカルプロジェクトレベルのインストール(`npm i @c-d-cc/reap`)はブロックされます。
64
+
63
65
  ```bash
64
66
  # npm
65
67
  npm install -g @c-d-cc/reap
package/README.ko.md CHANGED
@@ -60,6 +60,8 @@ REAP은 **세대 기반 진화 모델**로 이 문제들을 해결합니다:
60
60
 
61
61
  ## 설치
62
62
 
63
+ > **글로벌 설치 필수.** REAP은 CLI 도구이며 반드시 글로벌로 설치해야 합니다. 로컬 프로젝트 레벨 설치(`npm i @c-d-cc/reap`)는 차단됩니다.
64
+
63
65
  ```bash
64
66
  # npm
65
67
  npm install -g @c-d-cc/reap
package/README.md CHANGED
@@ -60,6 +60,8 @@ REAP solves these with a **generation-based evolution model**:
60
60
 
61
61
  ## Installation
62
62
 
63
+ > **Global installation required.** REAP is a CLI tool and must be installed globally. Local project-level installation (`npm i @c-d-cc/reap`) is blocked.
64
+
63
65
  ```bash
64
66
  # npm
65
67
  npm install -g @c-d-cc/reap
package/README.zh-CN.md CHANGED
@@ -60,6 +60,8 @@ REAP通过**基于世代的进化模型**解决这些问题:
60
60
 
61
61
  ## 安装
62
62
 
63
+ > **必须全局安装。** REAP是CLI工具,必须全局安装。本地项目级安装(`npm i @c-d-cc/reap`)将被阻止。
64
+
63
65
  ```bash
64
66
  # npm
65
67
  npm install -g @c-d-cc/reap
package/dist/cli.js CHANGED
@@ -12094,9 +12094,9 @@ async function execute15(paths) {
12094
12094
  const gm = new GenerationManager(paths);
12095
12095
  const state = await gm.current();
12096
12096
  const configContent = await readTextFile(paths.config);
12097
- const configVersion = configContent?.match(/version:\s*([\d.]+)/)?.[1] ?? "0.0.0";
12097
+ const installedVersion = "0.13.4";
12098
12098
  const autoUpdate = configContent?.match(/autoUpdate:\s*(true|false)/)?.[1] === "true";
12099
- const versionDisplay = formatVersionLine(configVersion, !autoUpdate);
12099
+ const versionDisplay = formatVersionLine(installedVersion, !autoUpdate);
12100
12100
  const rawLang = detectLanguage(configContent);
12101
12101
  const supported = isSupportedLanguage(rawLang);
12102
12102
  const lang = supported ? rawLang : "en";
@@ -13619,7 +13619,7 @@ async function runCommand(command, phase, argv = []) {
13619
13619
  try {
13620
13620
  const config = await ConfigManager.read(paths);
13621
13621
  if (config.autoIssueReport) {
13622
- const version = "0.13.1";
13622
+ const version = "0.13.4";
13623
13623
  const errMsg = err instanceof Error ? err.message : String(err);
13624
13624
  const title = `[auto] reap run ${command}: ${errMsg.slice(0, 80)}`;
13625
13625
  const body = [
@@ -14205,7 +14205,7 @@ async function initProject(projectRoot, projectName, entryMode, preset, onProgre
14205
14205
  }
14206
14206
  const detectedLanguage = await AgentRegistry.readLanguage();
14207
14207
  const config = {
14208
- version: "0.13.1",
14208
+ version: "0.13.4",
14209
14209
  project: projectName,
14210
14210
  entryMode,
14211
14211
  strict: false,
@@ -14804,7 +14804,7 @@ async function updateProject(projectRoot, dryRun = false) {
14804
14804
  result.skipped.push(`.claude/commands/ (${reapCmdFiles.length} unchanged)`);
14805
14805
  }
14806
14806
  await migrateLegacyFiles(paths, dryRun, result);
14807
- const currentVersion = "0.13.1";
14807
+ const currentVersion = "0.13.4";
14808
14808
  const migrationResult = await MigrationRunner.run(paths, currentVersion, dryRun);
14809
14809
  for (const m of migrationResult.migrated) {
14810
14810
  result.updated.push(`[migration] ${m}`);
@@ -15002,7 +15002,7 @@ init_fs();
15002
15002
  init_version();
15003
15003
  init_config();
15004
15004
  import { join as join26 } from "path";
15005
- program.name("reap").description("REAP — Recursive Evolutionary Autonomous Pipeline").version("0.13.1");
15005
+ program.name("reap").description("REAP — Recursive Evolutionary Autonomous Pipeline").version("0.13.4");
15006
15006
  program.command("init").description("Initialize a new REAP project (Genesis)").argument("[project-name]", "Project name (defaults to current directory name)").option("-m, --mode <mode>", "Entry mode: greenfield, migration, adoption", "greenfield").option("-p, --preset <preset>", "Bootstrap with a genome preset (e.g., bun-hono-react)").action(async (projectName, options) => {
15007
15007
  try {
15008
15008
  const cwd = process.cwd();
@@ -15058,7 +15058,8 @@ program.command("status").description("Show current project and Generation statu
15058
15058
  const paths = new ReapPaths(cwd);
15059
15059
  const config = await ConfigManager.read(paths);
15060
15060
  const skipCheck = config.autoUpdate === false;
15061
- const versionLine = formatVersionLine(status.version, skipCheck);
15061
+ const installedVersion = "0.13.4";
15062
+ const versionLine = formatVersionLine(installedVersion, skipCheck);
15062
15063
  console.log(`${versionLine} | Project: ${status.project} (${status.entryMode})`);
15063
15064
  console.log(`Completed Generations: ${status.totalGenerations}`);
15064
15065
  if (status.generation) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c-d-cc/reap",
3
- "version": "0.13.1",
3
+ "version": "0.13.4",
4
4
  "description": "Recursive Evolutionary Autonomous Pipeline — AI and humans evolve software across generations",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -24,7 +24,8 @@
24
24
  },
25
25
  "files": [
26
26
  "dist/",
27
- "scripts/postinstall.cjs"
27
+ "scripts/postinstall.cjs",
28
+ "scripts/preinstall.cjs"
28
29
  ],
29
30
  "preferGlobal": true,
30
31
  "engines": {
@@ -33,6 +34,7 @@
33
34
  "scripts": {
34
35
  "dev": "bun run src/cli/index.ts",
35
36
  "build": "node scripts/build.js",
37
+ "preinstall": "node scripts/preinstall.cjs",
36
38
  "postinstall": "node scripts/postinstall.cjs",
37
39
  "prepublishOnly": "npm run build",
38
40
  "test": "bun test"
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * preinstall — block local (non-global) installation.
4
+ * REAP is a CLI tool and must be installed globally.
5
+ * Skipped in CI and development environments.
6
+ */
7
+ const isCi = process.env.CI === "true" || process.env.GITHUB_ACTIONS === "true";
8
+ const isDev = process.env.npm_command === "install" && process.cwd().includes("reap");
9
+ if (!isCi && !isDev && process.env.npm_config_global !== "true") {
10
+ console.error("\n ✗ @c-d-cc/reap is a CLI tool. Install globally:\n npm install -g @c-d-cc/reap\n");
11
+ process.exit(1);
12
+ }