superpowers-manager 0.3.0 → 0.5.0

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.
Files changed (41) hide show
  1. package/README.md +63 -325
  2. package/dist/adapter.js +91 -46
  3. package/dist/artifact-tree.js +110 -0
  4. package/dist/atomic.js +103 -7
  5. package/dist/cli-arguments.js +37 -0
  6. package/dist/cli.js +97 -40
  7. package/dist/codex-compatibility.js +126 -0
  8. package/dist/codex-conflicts.js +99 -0
  9. package/dist/codex-harness.js +321 -0
  10. package/dist/codex-json.js +7 -0
  11. package/dist/codex-prepare.js +255 -0
  12. package/dist/codex-presentation.js +282 -0
  13. package/dist/commands/install.js +187 -173
  14. package/dist/commands/mutation.js +71 -0
  15. package/dist/commands/prepare.js +87 -188
  16. package/dist/commands/probe.js +191 -176
  17. package/dist/commands/uninstall.js +52 -139
  18. package/dist/commands/update.js +33 -88
  19. package/dist/generated-plugin.js +3 -3
  20. package/dist/harness-compatibility.js +13 -0
  21. package/dist/harness.js +1 -0
  22. package/dist/lifecycle.js +1 -86
  23. package/dist/manifest-overlay.js +2 -2
  24. package/dist/pi-compatibility.js +73 -0
  25. package/dist/pi-harness.js +63 -0
  26. package/dist/pi-install.js +495 -0
  27. package/dist/pi-native.js +81 -0
  28. package/dist/pi-package.js +153 -0
  29. package/dist/pi-paths.js +30 -0
  30. package/dist/pi-prepare.js +111 -0
  31. package/dist/pi-presentation.js +67 -0
  32. package/dist/pi-settings.js +171 -0
  33. package/dist/pi-shared-skills.js +413 -0
  34. package/dist/pi-state.js +311 -0
  35. package/dist/resource-lock.js +265 -0
  36. package/dist/safe-path.js +21 -5
  37. package/dist/strict-json.js +1 -1
  38. package/dist/upstream-workspace.js +8 -0
  39. package/dist/validator.js +3 -2
  40. package/package.json +19 -18
  41. package/bin/superpowers-manager.js +0 -16
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "superpowers-manager",
3
- "version": "0.3.0",
4
- "description": "Install and update the latest stable obra/superpowers release directly from upstream, without waiting for agent marketplaces to catch up. Codex supported today.",
3
+ "version": "0.5.0",
4
+ "description": "Install and update the latest stable obra/superpowers release directly from upstream for Codex and Pi (pi-coding-agent), without waiting for agent marketplaces to catch up.",
5
5
  "keywords": [
6
6
  "superpowers",
7
7
  "obra-superpowers",
@@ -14,23 +14,26 @@
14
14
  "plugin-manager",
15
15
  "cli",
16
16
  "installer",
17
- "updater"
17
+ "updater",
18
+ "pi",
19
+ "pi-coding-agent"
18
20
  ],
19
21
  "license": "MIT",
20
22
  "type": "module",
21
- "packageManager": "pnpm@11.22.0",
23
+ "packageManager": "pnpm@12.3.4",
22
24
  "scripts": {
23
- "prebuild": "node --input-type=module -e \"import{rmSync}from'node:fs';rmSync('dist',{recursive:true,force:true})\"",
24
- "build": "tsc -p tsconfig.json",
25
- "postbuild": "node tests/write-build-id.js",
26
- "prepack": "node --input-type=module -e \"import{existsSync}from'node:fs';if(!existsSync('dist/cli.js')){console.error('error: dist/cli.js is missing — run pnpm install --frozen-lockfile && pnpm run build');process.exit(1)}\"",
27
- "lint": "oxlint src/ bin/ tests/bin/ tests/unit/ tests/baseline/ tests/lib/ tests/tools/ tests/run-node-suites.js tests/build-id.js tests/write-build-id.js tests/assert-matcher-gate.js",
28
- "format": "prettier --write src/ bin/ tests/bin/ tests/unit/ tests/baseline/ tests/lib/ tests/tools/ tests/run-node-suites.js tests/build-id.js tests/write-build-id.js tests/assert-matcher-gate.js",
29
- "format:check": "prettier --check src/ bin/ tests/bin/ tests/unit/ tests/baseline/ tests/lib/ tests/tools/ tests/run-node-suites.js tests/build-id.js tests/write-build-id.js tests/assert-matcher-gate.js",
30
- "typecheck:js": "tsc -p tests/tsconfig.json",
31
- "test": "node tests/run-node-suites.js",
32
- "check:static": "pnpm run format:check && pnpm run lint && pnpm run build && pnpm run typecheck:js",
33
- "check": "pnpm run check:static && pnpm run test"
25
+ "lint": "oxlint src/ tests/bin/ tests/unit/ tests/baseline/ tests/lib/ tests/tools/ tests/container/ tests/run-node-suites.ts tests/assert-matcher-gate.ts",
26
+ "format": "prettier --write src/ tests/bin/ tests/unit/ tests/baseline/ tests/lib/ tests/tools/ tests/container/ tests/run-node-suites.ts tests/assert-matcher-gate.ts",
27
+ "format:check": "prettier --check src/ tests/bin/ tests/unit/ tests/baseline/ tests/lib/ tests/tools/ tests/container/ tests/run-node-suites.ts tests/assert-matcher-gate.ts",
28
+ "test": "node tests/run-node-suites.ts",
29
+ "test:unit": "node tests/run-node-suites.ts --group unit",
30
+ "test:integration": "node tests/run-node-suites.ts --group integration",
31
+ "test:harness:codex": "sh tests/container.sh harness-codex",
32
+ "test:harness:pi": "sh tests/container.sh harness-pi",
33
+ "test:acceptance": "sh tests/acceptance.sh",
34
+ "check:static": "pnpm run format:check && pnpm run lint && pnpm run typecheck",
35
+ "check": "pnpm run check:static && pnpm run test",
36
+ "typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tests/tsconfig.json --noEmit"
34
37
  },
35
38
  "devDependencies": {
36
39
  "@types/node": "^24.13.3",
@@ -49,15 +52,13 @@
49
52
  "url": "https://github.com/j7an/superpowers-manager/issues"
50
53
  },
51
54
  "bin": {
52
- "superpowers-manager": "bin/superpowers-manager.js"
55
+ "superpowers-manager": "dist/cli.js"
53
56
  },
54
57
  "engines": {
55
58
  "node": ">=24"
56
59
  },
57
60
  "files": [
58
- "bin/",
59
61
  "dist/",
60
- "!dist/.build-id",
61
62
  "config/upstream-ref",
62
63
  ".agents/plugins/marketplace.json",
63
64
  "plugins/superpowers/.codex-plugin/plugin.template.json",
@@ -1,16 +0,0 @@
1
- #!/usr/bin/env node
2
- // @ts-check
3
-
4
- import { existsSync } from "node:fs";
5
-
6
- const cliUrl = new URL("../dist/cli.js", import.meta.url);
7
-
8
- if (!existsSync(cliUrl)) {
9
- console.error(
10
- "dist/ not built — run `pnpm install --frozen-lockfile && pnpm run build`",
11
- );
12
- process.exit(1);
13
- }
14
-
15
- const { main } = await import(cliUrl.href);
16
- main();