blue-gardener 0.1.0 → 0.1.1
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/package.json +1 -1
- package/dist/commands/entrypoints.d.ts +0 -2
- package/dist/commands/entrypoints.d.ts.map +0 -1
- package/dist/commands/entrypoints.js +0 -37
- package/dist/commands/entrypoints.js.map +0 -1
- package/dist/lib/entrypoints.d.ts +0 -9
- package/dist/lib/entrypoints.d.ts.map +0 -1
- package/dist/lib/entrypoints.js +0 -72
- package/dist/lib/entrypoints.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "blue-gardener",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "CLI tool to manage AI coding agents across multiple platforms - install, remove, and sync specialized AI agents for Cursor, Claude Desktop, Codex, GitHub Copilot, Windsurf, and OpenCode",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entrypoints.d.ts","sourceRoot":"","sources":["../../src/commands/entrypoints.ts"],"names":[],"mappings":"AAKA,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoCxD"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import chalk from "chalk";
|
|
2
|
-
import { detectPlatform, promptForPlatform, getPlatformInfo } from "../lib/platform.js";
|
|
3
|
-
import { readManifest } from "../lib/manifest.js";
|
|
4
|
-
import { installEntrypoints } from "../lib/entrypoints.js";
|
|
5
|
-
export async function entrypointsCommand() {
|
|
6
|
-
const manifest = readManifest();
|
|
7
|
-
let platform = manifest?.platform || detectPlatform();
|
|
8
|
-
if (!platform) {
|
|
9
|
-
platform = await promptForPlatform();
|
|
10
|
-
const platformInfo = getPlatformInfo(platform);
|
|
11
|
-
console.log(chalk.green(`\n✓ Platform set to: ${platformInfo.name}\n`));
|
|
12
|
-
}
|
|
13
|
-
const result = installEntrypoints(platform);
|
|
14
|
-
if (result.installed.length === 0 && result.skipped.length === 0) {
|
|
15
|
-
console.log(chalk.yellow(result.message || "No entrypoints installed."));
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
if (result.installed.length > 0) {
|
|
19
|
-
console.log(chalk.green("\n✓ Installed orchestration entrypoints:\n"));
|
|
20
|
-
for (const item of result.installed) {
|
|
21
|
-
console.log(chalk.green(` - ${item}`));
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
if (result.skipped.length > 0) {
|
|
25
|
-
console.log(chalk.dim("\nUnchanged (already up to date):\n"));
|
|
26
|
-
for (const item of result.skipped) {
|
|
27
|
-
console.log(chalk.dim(` - ${item}`));
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
if (result.message) {
|
|
31
|
-
console.log(chalk.dim(`\n${result.message}\n`));
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
console.log();
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=entrypoints.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entrypoints.js","sourceRoot":"","sources":["../../src/commands/entrypoints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAChC,IAAI,QAAQ,GAAG,QAAQ,EAAE,QAAQ,IAAI,cAAc,EAAE,CAAC;IAEtD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACrC,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wBAAwB,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAE5C,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,2BAA2B,CAAC,CAAC,CAAC;QACzE,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACvE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAC9D,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;AACH,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Platform } from "./platform.js";
|
|
2
|
-
export interface EntrypointsInstallResult {
|
|
3
|
-
platform: Platform;
|
|
4
|
-
installed: string[];
|
|
5
|
-
skipped: string[];
|
|
6
|
-
message?: string;
|
|
7
|
-
}
|
|
8
|
-
export declare function installEntrypoints(platform: Platform): EntrypointsInstallResult;
|
|
9
|
-
//# sourceMappingURL=entrypoints.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entrypoints.d.ts","sourceRoot":"","sources":["../../src/lib/entrypoints.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAsCD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG,wBAAwB,CA4C/E"}
|
package/dist/lib/entrypoints.js
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import { getPackageDir } from "./paths.js";
|
|
4
|
-
function ensureDir(dir) {
|
|
5
|
-
if (!fs.existsSync(dir)) {
|
|
6
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
function listFiles(dir) {
|
|
10
|
-
if (!fs.existsSync(dir))
|
|
11
|
-
return [];
|
|
12
|
-
return fs
|
|
13
|
-
.readdirSync(dir, { withFileTypes: true })
|
|
14
|
-
.filter((e) => e.isFile())
|
|
15
|
-
.map((e) => e.name);
|
|
16
|
-
}
|
|
17
|
-
function copyFileIfChanged(src, dest) {
|
|
18
|
-
const srcContent = fs.readFileSync(src, "utf-8");
|
|
19
|
-
if (fs.existsSync(dest)) {
|
|
20
|
-
const destContent = fs.readFileSync(dest, "utf-8");
|
|
21
|
-
if (destContent === srcContent)
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
fs.writeFileSync(dest, srcContent);
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
function getBundledEntrypointsDir() {
|
|
28
|
-
return path.join(getPackageDir(), "entrypoints");
|
|
29
|
-
}
|
|
30
|
-
function getCursorCommandsDir(cwd) {
|
|
31
|
-
return path.join(cwd, ".cursor", "commands");
|
|
32
|
-
}
|
|
33
|
-
function getWindsurfWorkflowsDir(cwd) {
|
|
34
|
-
return path.join(cwd, ".windsurf", "workflows");
|
|
35
|
-
}
|
|
36
|
-
export function installEntrypoints(platform) {
|
|
37
|
-
const cwd = process.cwd();
|
|
38
|
-
const base = getBundledEntrypointsDir();
|
|
39
|
-
const installed = [];
|
|
40
|
-
const skipped = [];
|
|
41
|
-
if (platform === "cursor") {
|
|
42
|
-
const srcDir = path.join(base, "cursor", "commands");
|
|
43
|
-
const destDir = getCursorCommandsDir(cwd);
|
|
44
|
-
ensureDir(destDir);
|
|
45
|
-
for (const filename of listFiles(srcDir)) {
|
|
46
|
-
const src = path.join(srcDir, filename);
|
|
47
|
-
const dest = path.join(destDir, filename);
|
|
48
|
-
const didCopy = copyFileIfChanged(src, dest);
|
|
49
|
-
(didCopy ? installed : skipped).push(`.cursor/commands/${filename}`);
|
|
50
|
-
}
|
|
51
|
-
return { platform, installed, skipped };
|
|
52
|
-
}
|
|
53
|
-
if (platform === "windsurf") {
|
|
54
|
-
const srcDir = path.join(base, "windsurf", "workflows");
|
|
55
|
-
const destDir = getWindsurfWorkflowsDir(cwd);
|
|
56
|
-
ensureDir(destDir);
|
|
57
|
-
for (const filename of listFiles(srcDir)) {
|
|
58
|
-
const src = path.join(srcDir, filename);
|
|
59
|
-
const dest = path.join(destDir, filename);
|
|
60
|
-
const didCopy = copyFileIfChanged(src, dest);
|
|
61
|
-
(didCopy ? installed : skipped).push(`.windsurf/workflows/${filename}`);
|
|
62
|
-
}
|
|
63
|
-
return { platform, installed, skipped };
|
|
64
|
-
}
|
|
65
|
-
return {
|
|
66
|
-
platform,
|
|
67
|
-
installed,
|
|
68
|
-
skipped,
|
|
69
|
-
message: "No native entrypoints are installed for this platform. Use Cursor commands or Windsurf workflows when available, and rely on staged instructions in single-file platforms.",
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=entrypoints.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entrypoints.js","sourceRoot":"","sources":["../../src/lib/entrypoints.ts"],"names":[],"mappings":"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"}
|