@orchid-labs/pluxx 0.1.5 → 0.1.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 +2 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +155 -50
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -206,6 +206,8 @@ Pluxx owns the deterministic scaffold, validation, and host compilation layer. Y
|
|
|
206
206
|
- npm package: `@orchid-labs/pluxx`
|
|
207
207
|
- preferred invocation: `npx @orchid-labs/pluxx ...`
|
|
208
208
|
- global install also works: `npm install -g @orchid-labs/pluxx`
|
|
209
|
+
- check the active global CLI version with: `pluxx --version`
|
|
210
|
+
- upgrade the active global CLI with: `pluxx upgrade`
|
|
209
211
|
- published CLI runtime: Node `>=18`
|
|
210
212
|
- source builds and maintainer workflows also run on Node `>=18`
|
|
211
213
|
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAKA,OAAO,EAeL,KAAK,mBAAmB,EAIzB,MAAM,SAAS,CAAA;AAkChB,OAAO,EACL,wBAAwB,EAIzB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAkB,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAKA,OAAO,EAeL,KAAK,mBAAmB,EAIzB,MAAM,SAAS,CAAA;AAkChB,OAAO,EACL,wBAAwB,EAIzB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAkB,MAAM,WAAW,CAAA;AAoCnE,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,OAAO,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,OAAO,CAAA;IACrB,eAAe,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,OAAO,CAAA;CACpB;AA2GD,wBAAsB,IAAI,kBAsEzB;AAsjBD,UAAU,mBAAmB;IAC3B,EAAE,EAAE,QAAQ,GAAG,eAAe,CAAA;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAClC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAyBD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAG9E;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAOhF;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,cAAc,CAAC,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,GAAG,IAAI,GAClE,mBAAmB,GAAG,IAAI,CA4B5B;AA+BD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAG,YAAY,CAAC,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAUpI;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,cAAc,CAAC,GAAG,OAAO,GAAG,SAAS,CAwCpJ;AAiSD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAwB3H"}
|
package/dist/cli/index.js
CHANGED
|
@@ -84,6 +84,9 @@ var require_src = __commonJS({
|
|
|
84
84
|
}
|
|
85
85
|
});
|
|
86
86
|
|
|
87
|
+
// src/cli/index.ts
|
|
88
|
+
import { readFileSync as readFileSync16 } from "fs";
|
|
89
|
+
|
|
87
90
|
// src/config/load.ts
|
|
88
91
|
import { resolve, extname, dirname } from "path";
|
|
89
92
|
import { existsSync } from "fs";
|
|
@@ -18069,19 +18072,19 @@ function usage() {
|
|
|
18069
18072
|
"- --replay serves a deterministic stdio MCP session from a recorded tape."
|
|
18070
18073
|
].join("\n");
|
|
18071
18074
|
}
|
|
18072
|
-
function readOption(
|
|
18073
|
-
const index =
|
|
18075
|
+
function readOption(rawArgs2, flag) {
|
|
18076
|
+
const index = rawArgs2.indexOf(flag);
|
|
18074
18077
|
if (index === -1) return void 0;
|
|
18075
|
-
const value =
|
|
18078
|
+
const value = rawArgs2[index + 1];
|
|
18076
18079
|
if (!value || value.startsWith("-")) {
|
|
18077
18080
|
return void 0;
|
|
18078
18081
|
}
|
|
18079
18082
|
return value;
|
|
18080
18083
|
}
|
|
18081
|
-
function parseOptions(
|
|
18082
|
-
const source = readOption(
|
|
18083
|
-
const recordPath = readOption(
|
|
18084
|
-
const replayPath = readOption(
|
|
18084
|
+
function parseOptions(rawArgs2) {
|
|
18085
|
+
const source = readOption(rawArgs2, "--from-mcp");
|
|
18086
|
+
const recordPath = readOption(rawArgs2, "--record");
|
|
18087
|
+
const replayPath = readOption(rawArgs2, "--replay");
|
|
18085
18088
|
if (recordPath && replayPath) {
|
|
18086
18089
|
throw new Error("Choose either --record or --replay, not both.");
|
|
18087
18090
|
}
|
|
@@ -18269,17 +18272,17 @@ async function replaySession(filepath, io) {
|
|
|
18269
18272
|
rl.close();
|
|
18270
18273
|
}
|
|
18271
18274
|
}
|
|
18272
|
-
async function runMcpProxy(
|
|
18273
|
-
return await runMcpProxyWithIo(
|
|
18275
|
+
async function runMcpProxy(rawArgs2) {
|
|
18276
|
+
return await runMcpProxyWithIo(rawArgs2, {
|
|
18274
18277
|
input: process.stdin,
|
|
18275
18278
|
output: process.stdout,
|
|
18276
18279
|
error: process.stderr
|
|
18277
18280
|
});
|
|
18278
18281
|
}
|
|
18279
|
-
async function runMcpProxyWithIo(
|
|
18282
|
+
async function runMcpProxyWithIo(rawArgs2, io) {
|
|
18280
18283
|
let options;
|
|
18281
18284
|
try {
|
|
18282
|
-
options = parseOptions(
|
|
18285
|
+
options = parseOptions(rawArgs2);
|
|
18283
18286
|
} catch (error) {
|
|
18284
18287
|
io.error.write(`${error instanceof Error ? error.message : String(error)}
|
|
18285
18288
|
|
|
@@ -19311,7 +19314,7 @@ ${c2}
|
|
|
19311
19314
|
import { basename as basename8, resolve as resolve23 } from "path";
|
|
19312
19315
|
import { mkdir as mkdir4, mkdtemp as mkdtemp3, rm as rm4 } from "fs/promises";
|
|
19313
19316
|
import { tmpdir as tmpdir5 } from "os";
|
|
19314
|
-
import { spawn as spawn4 } from "child_process";
|
|
19317
|
+
import { spawn as spawn4, spawnSync as spawnSync3 } from "child_process";
|
|
19315
19318
|
|
|
19316
19319
|
// src/cli/publish.ts
|
|
19317
19320
|
import { chmodSync, existsSync as existsSync25, mkdtempSync as mkdtempSync2, readFileSync as readFileSync14, rmSync as rmSync4, writeFileSync as writeFileSync6 } from "fs";
|
|
@@ -20222,36 +20225,36 @@ function runPublish(config, options = {}) {
|
|
|
20222
20225
|
}
|
|
20223
20226
|
|
|
20224
20227
|
// src/cli/runtime.ts
|
|
20225
|
-
function createCliRuntime(
|
|
20228
|
+
function createCliRuntime(rawArgs2) {
|
|
20226
20229
|
const isCI = process.env.CI === "1" || process.env.CI === "true";
|
|
20227
20230
|
const isTTY = process.stdin.isTTY === true && process.stdout.isTTY === true;
|
|
20228
20231
|
return {
|
|
20229
|
-
dryRun:
|
|
20230
|
-
jsonOutput:
|
|
20231
|
-
quiet:
|
|
20232
|
+
dryRun: rawArgs2.includes("--dry-run"),
|
|
20233
|
+
jsonOutput: rawArgs2.includes("--json"),
|
|
20234
|
+
quiet: rawArgs2.includes("--quiet"),
|
|
20232
20235
|
isCI,
|
|
20233
20236
|
isTTY,
|
|
20234
20237
|
isInteractive: isTTY && !isCI
|
|
20235
20238
|
};
|
|
20236
20239
|
}
|
|
20237
|
-
function readFlag(
|
|
20238
|
-
return
|
|
20240
|
+
function readFlag(rawArgs2, flag) {
|
|
20241
|
+
return rawArgs2.includes(flag);
|
|
20239
20242
|
}
|
|
20240
|
-
function readOption2(
|
|
20241
|
-
const index =
|
|
20243
|
+
function readOption2(rawArgs2, flag) {
|
|
20244
|
+
const index = rawArgs2.indexOf(flag);
|
|
20242
20245
|
if (index === -1) return void 0;
|
|
20243
|
-
const value =
|
|
20246
|
+
const value = rawArgs2[index + 1];
|
|
20244
20247
|
if (!value || value.startsWith("-")) {
|
|
20245
20248
|
return void 0;
|
|
20246
20249
|
}
|
|
20247
20250
|
return value;
|
|
20248
20251
|
}
|
|
20249
|
-
function readMultiValueOption(
|
|
20250
|
-
const index =
|
|
20252
|
+
function readMultiValueOption(rawArgs2, flag) {
|
|
20253
|
+
const index = rawArgs2.indexOf(flag);
|
|
20251
20254
|
if (index === -1) return void 0;
|
|
20252
20255
|
const values = [];
|
|
20253
|
-
for (let i = index + 1; i <
|
|
20254
|
-
const value =
|
|
20256
|
+
for (let i = index + 1; i < rawArgs2.length; i += 1) {
|
|
20257
|
+
const value = rawArgs2[i];
|
|
20255
20258
|
if (value.startsWith("-")) break;
|
|
20256
20259
|
values.push(value);
|
|
20257
20260
|
}
|
|
@@ -20531,7 +20534,9 @@ function shellQuote2(value) {
|
|
|
20531
20534
|
}
|
|
20532
20535
|
|
|
20533
20536
|
// src/cli/index.ts
|
|
20534
|
-
var
|
|
20537
|
+
var CLI_PACKAGE_NAME = "@orchid-labs/pluxx";
|
|
20538
|
+
var rawArgs = process.argv.slice(2);
|
|
20539
|
+
var args = normalizeTopLevelArgs(rawArgs);
|
|
20535
20540
|
var command = args[0];
|
|
20536
20541
|
var runtime = createCliRuntime(args);
|
|
20537
20542
|
var DEFAULT_INIT_TARGETS = ["claude-code", "cursor", "codex", "opencode"];
|
|
@@ -20551,6 +20556,12 @@ var ALL_TARGET_PLATFORMS = [
|
|
|
20551
20556
|
];
|
|
20552
20557
|
async function main() {
|
|
20553
20558
|
switch (command) {
|
|
20559
|
+
case "version":
|
|
20560
|
+
await runVersionCommand();
|
|
20561
|
+
break;
|
|
20562
|
+
case "upgrade":
|
|
20563
|
+
await runUpgradeCommand();
|
|
20564
|
+
break;
|
|
20554
20565
|
case "build":
|
|
20555
20566
|
await runBuild2();
|
|
20556
20567
|
break;
|
|
@@ -20614,6 +20625,95 @@ async function main() {
|
|
|
20614
20625
|
process.exit(1);
|
|
20615
20626
|
}
|
|
20616
20627
|
}
|
|
20628
|
+
function normalizeTopLevelArgs(input) {
|
|
20629
|
+
if (input[0] === "--version" || input[0] === "-v") {
|
|
20630
|
+
return ["version", ...input.slice(1)];
|
|
20631
|
+
}
|
|
20632
|
+
if (input[0] === "--upgrade") {
|
|
20633
|
+
return ["upgrade", ...input.slice(1)];
|
|
20634
|
+
}
|
|
20635
|
+
return input;
|
|
20636
|
+
}
|
|
20637
|
+
function getCliPackageVersion() {
|
|
20638
|
+
const packageJsonPath = new URL("../../package.json", import.meta.url);
|
|
20639
|
+
const raw = JSON.parse(readFileSync16(packageJsonPath, "utf-8"));
|
|
20640
|
+
if (typeof raw.version !== "string" || raw.version.trim() === "") {
|
|
20641
|
+
throw new Error("Unable to determine the installed pluxx version from package.json.");
|
|
20642
|
+
}
|
|
20643
|
+
return raw.version.trim();
|
|
20644
|
+
}
|
|
20645
|
+
function resolveNpmExecutable() {
|
|
20646
|
+
return process.platform === "win32" ? "npm.cmd" : "npm";
|
|
20647
|
+
}
|
|
20648
|
+
function buildUpgradeSummary() {
|
|
20649
|
+
const requestedVersion = readOption2(args, "--version") ?? "latest";
|
|
20650
|
+
const specifier = `${CLI_PACKAGE_NAME}@${requestedVersion}`;
|
|
20651
|
+
return {
|
|
20652
|
+
dryRun: runtime.dryRun,
|
|
20653
|
+
packageName: CLI_PACKAGE_NAME,
|
|
20654
|
+
currentVersion: getCliPackageVersion(),
|
|
20655
|
+
requestedVersion,
|
|
20656
|
+
specifier,
|
|
20657
|
+
command: [resolveNpmExecutable(), "install", "-g", specifier],
|
|
20658
|
+
note: "This updates the global npm install used by `pluxx` on your PATH. Repo-local and `npx` invocations are separate entrypoints."
|
|
20659
|
+
};
|
|
20660
|
+
}
|
|
20661
|
+
async function runVersionCommand() {
|
|
20662
|
+
const version = getCliPackageVersion();
|
|
20663
|
+
if (runtime.jsonOutput) {
|
|
20664
|
+
printJson({ version });
|
|
20665
|
+
return;
|
|
20666
|
+
}
|
|
20667
|
+
console.log(version);
|
|
20668
|
+
}
|
|
20669
|
+
async function runUpgradeCommand() {
|
|
20670
|
+
const summary = buildUpgradeSummary();
|
|
20671
|
+
if (runtime.dryRun) {
|
|
20672
|
+
if (runtime.jsonOutput) {
|
|
20673
|
+
printJson(summary);
|
|
20674
|
+
return;
|
|
20675
|
+
}
|
|
20676
|
+
if (!runtime.quiet) {
|
|
20677
|
+
console.log(`Dry run: would run \`${summary.command.join(" ")}\``);
|
|
20678
|
+
console.log(summary.note);
|
|
20679
|
+
console.log(`Current version: ${summary.currentVersion}`);
|
|
20680
|
+
}
|
|
20681
|
+
return;
|
|
20682
|
+
}
|
|
20683
|
+
const install = spawnSync3(summary.command[0], summary.command.slice(1), runtime.jsonOutput ? {
|
|
20684
|
+
env: process.env,
|
|
20685
|
+
encoding: "utf-8",
|
|
20686
|
+
stdio: "pipe"
|
|
20687
|
+
} : {
|
|
20688
|
+
env: process.env,
|
|
20689
|
+
stdio: "inherit"
|
|
20690
|
+
});
|
|
20691
|
+
if (install.status !== 0) {
|
|
20692
|
+
if (runtime.jsonOutput) {
|
|
20693
|
+
printJson({
|
|
20694
|
+
...summary,
|
|
20695
|
+
ok: false,
|
|
20696
|
+
stdout: typeof install.stdout === "string" ? install.stdout : "",
|
|
20697
|
+
stderr: typeof install.stderr === "string" ? install.stderr : "",
|
|
20698
|
+
exitCode: install.status ?? 1
|
|
20699
|
+
});
|
|
20700
|
+
}
|
|
20701
|
+
throw new Error(`Failed to upgrade ${CLI_PACKAGE_NAME}.`);
|
|
20702
|
+
}
|
|
20703
|
+
const result = {
|
|
20704
|
+
...summary,
|
|
20705
|
+
ok: true
|
|
20706
|
+
};
|
|
20707
|
+
if (runtime.jsonOutput) {
|
|
20708
|
+
printJson(result);
|
|
20709
|
+
return;
|
|
20710
|
+
}
|
|
20711
|
+
if (!runtime.quiet) {
|
|
20712
|
+
console.log(`Upgraded ${summary.packageName} with \`${summary.command.join(" ")}\`.`);
|
|
20713
|
+
console.log("Run `pluxx --version` to verify the active version on your PATH.");
|
|
20714
|
+
console.log(summary.note);
|
|
20715
|
+
}
|
|
20716
|
+
}
|
|
20617
20717
|
function hasAgentContextHints(input) {
|
|
20618
20718
|
return Boolean(input.docsUrl || input.websiteUrl || (input.contextPaths?.length ?? 0) > 0);
|
|
20619
20719
|
}
|
|
@@ -20899,8 +20999,8 @@ function parseTargetPlatforms(raw) {
|
|
|
20899
20999
|
}
|
|
20900
21000
|
return targets;
|
|
20901
21001
|
}
|
|
20902
|
-
function parseTargetFlagValues(
|
|
20903
|
-
const values = readMultiValueOption(
|
|
21002
|
+
function parseTargetFlagValues(rawArgs2) {
|
|
21003
|
+
const values = readMultiValueOption(rawArgs2, "--target");
|
|
20904
21004
|
if (!values) return void 0;
|
|
20905
21005
|
return parseTargetPlatforms(values.join(","));
|
|
20906
21006
|
}
|
|
@@ -21223,29 +21323,29 @@ function formatMcpDiscoverySummary(introspection) {
|
|
|
21223
21323
|
}
|
|
21224
21324
|
return `${parts.join(", ")} discovered`;
|
|
21225
21325
|
}
|
|
21226
|
-
function parseInitFromMcpOptions(
|
|
21326
|
+
function parseInitFromMcpOptions(rawArgs2, initialName, initialSource) {
|
|
21227
21327
|
return {
|
|
21228
|
-
source: initialSource ?? readOption2(
|
|
21229
|
-
assumeDefaults:
|
|
21230
|
-
name: readOption2(
|
|
21231
|
-
author: readOption2(
|
|
21232
|
-
displayName: readOption2(
|
|
21233
|
-
targets: readOption2(
|
|
21234
|
-
docsUrl: readOption2(
|
|
21235
|
-
websiteUrl: readOption2(
|
|
21236
|
-
contextPaths: readMultiValueOption(
|
|
21237
|
-
ingestProvider: readOption2(
|
|
21238
|
-
authEnv: readOption2(
|
|
21239
|
-
authType: readOption2(
|
|
21240
|
-
authHeader: readOption2(
|
|
21241
|
-
authTemplate: readOption2(
|
|
21242
|
-
runtimeAuth: readOption2(
|
|
21243
|
-
oauthWrapper:
|
|
21244
|
-
approveMcpTools:
|
|
21245
|
-
grouping: readOption2(
|
|
21246
|
-
hooks: readOption2(
|
|
21247
|
-
transport: readOption2(
|
|
21248
|
-
jsonOutput:
|
|
21328
|
+
source: initialSource ?? readOption2(rawArgs2, "--from-mcp"),
|
|
21329
|
+
assumeDefaults: rawArgs2.includes("--yes"),
|
|
21330
|
+
name: readOption2(rawArgs2, "--name") ?? initialName,
|
|
21331
|
+
author: readOption2(rawArgs2, "--author"),
|
|
21332
|
+
displayName: readOption2(rawArgs2, "--display-name"),
|
|
21333
|
+
targets: readOption2(rawArgs2, "--targets"),
|
|
21334
|
+
docsUrl: readOption2(rawArgs2, "--docs"),
|
|
21335
|
+
websiteUrl: readOption2(rawArgs2, "--website"),
|
|
21336
|
+
contextPaths: readMultiValueOption(rawArgs2, "--context"),
|
|
21337
|
+
ingestProvider: readOption2(rawArgs2, "--ingest-provider"),
|
|
21338
|
+
authEnv: readOption2(rawArgs2, "--auth-env"),
|
|
21339
|
+
authType: readOption2(rawArgs2, "--auth-type"),
|
|
21340
|
+
authHeader: readOption2(rawArgs2, "--auth-header"),
|
|
21341
|
+
authTemplate: readOption2(rawArgs2, "--auth-template"),
|
|
21342
|
+
runtimeAuth: readOption2(rawArgs2, "--runtime-auth"),
|
|
21343
|
+
oauthWrapper: rawArgs2.includes("--oauth-wrapper"),
|
|
21344
|
+
approveMcpTools: rawArgs2.includes("--approve-mcp-tools"),
|
|
21345
|
+
grouping: readOption2(rawArgs2, "--grouping"),
|
|
21346
|
+
hooks: readOption2(rawArgs2, "--hooks"),
|
|
21347
|
+
transport: readOption2(rawArgs2, "--transport"),
|
|
21348
|
+
jsonOutput: rawArgs2.includes("--json")
|
|
21249
21349
|
};
|
|
21250
21350
|
}
|
|
21251
21351
|
function toKebabCase3(value) {
|
|
@@ -22805,6 +22905,8 @@ function printHelp() {
|
|
|
22805
22905
|
pluxx \u2014 Cross-platform AI agent plugin SDK
|
|
22806
22906
|
|
|
22807
22907
|
Usage:
|
|
22908
|
+
pluxx --version | -v Print the installed Pluxx CLI version
|
|
22909
|
+
pluxx upgrade [--version x.y.z] Upgrade the global npm install of Pluxx
|
|
22808
22910
|
pluxx build [--target <platforms...>] [--install] Generate platform-specific plugin files
|
|
22809
22911
|
pluxx dev [--target <platforms...>] Watch for changes and auto-rebuild
|
|
22810
22912
|
pluxx validate Validate your config
|
|
@@ -22841,6 +22943,9 @@ Targets:
|
|
|
22841
22943
|
warp, gemini-cli, roo-code, cline, amp
|
|
22842
22944
|
|
|
22843
22945
|
Examples:
|
|
22946
|
+
pluxx --version Print the installed CLI version
|
|
22947
|
+
pluxx upgrade Upgrade the global npm install to latest
|
|
22948
|
+
pluxx upgrade --version x.y.z Upgrade the global npm install to a specific version
|
|
22844
22949
|
pluxx build Build for all configured targets
|
|
22845
22950
|
pluxx build --install Build and install all configured targets locally
|
|
22846
22951
|
pluxx build --target claude-code cursor Build for specific platforms
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orchid-labs/pluxx",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"description": "Build AI agent plugins once. Prime-time on Claude Code, Cursor, Codex, and OpenCode, with beta generators for additional hosts.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|