diff --git a/extensions/shopq-path.ts b/extensions/shopq-path.ts new file mode 100644 index 0000000..79d4d26 --- /dev/null +++ b/extensions/shopq-path.ts @@ -0,0 +1,29 @@ +/** + * Adds .pi/npm/node_modules/.bin to the bash tool's PATH so that + * `shopq` (and any other pi-installed CLI) resolves without a global install. + */ + +import type { ExtensionAPI } from "@mariozechner/pi-coding-agent"; +import { createBashTool } from "@mariozechner/pi-coding-agent"; + +export default function (pi: ExtensionAPI) { + const cwd = process.cwd(); + + const bashTool = createBashTool(cwd, { + spawnHook: ({ command, cwd: spawnCwd, env }) => ({ + command, + cwd: spawnCwd, + env: { + ...env, + PATH: `${cwd}/.pi/npm/node_modules/.bin:${env.PATH ?? ""}`, + }, + }), + }); + + pi.registerTool({ + ...bashTool, + execute: async (id, params, signal, onUpdate) => { + return bashTool.execute(id, params, signal, onUpdate); + }, + }); +} diff --git a/package.json b/package.json index 92fe59c..32b7443 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "shopq", - "version": "0.3.9", + "version": "0.4.0", "description": "A zero-dependency Shopify Admin CLI built on Bun", "type": "module", "license": "MIT", @@ -9,6 +9,7 @@ }, "files": [ "dist", + "extensions", "skills" ], "scripts": { @@ -35,6 +36,9 @@ "pi-package" ], "pi": { + "extensions": [ + "./extensions" + ], "skills": [ "./skills" ] @@ -47,6 +51,12 @@ "@types/bun": "latest" }, "peerDependencies": { + "@mariozechner/pi-coding-agent": "*", "typescript": "^5.9.3" + }, + "peerDependenciesMeta": { + "@mariozechner/pi-coding-agent": { + "optional": true + } } } diff --git a/skills/shopq/SKILL.md b/skills/shopq/SKILL.md index 29a7cb6..1e72284 100644 --- a/skills/shopq/SKILL.md +++ b/skills/shopq/SKILL.md @@ -9,11 +9,7 @@ A zero-dependency Shopify Admin CLI. Structured JSON output, predictable exit co ## Setup -Install globally: - -```bash -bun install -g shopq -``` +If `shopq` is not found on PATH, it may not be installed globally. Let the user know they can install it with their package manager (e.g. `npm install -g shopq`, `bun install -g shopq`, etc.). Configure credentials (one of):