spets 0.2.8 → 0.2.9

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 (3) hide show
  1. package/README.md +9 -0
  2. package/dist/index.js +12 -11
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -140,6 +140,15 @@ agent: gemini # or claude, codex
140
140
  - Gemini CLI (`gemini` command)
141
141
  - Codex CLI (`codex` command)
142
142
 
143
+ ## Troubleshooting: `npm EPERM` with `npx`
144
+
145
+ If `npx spets ...` fails with permission errors like `~/.npm/_logs`, run with a project-local npm cache:
146
+
147
+ ```bash
148
+ NPM_CONFIG_CACHE=.spets/.npm-cache npm_config_cache=.spets/.npm-cache npx --yes spets init
149
+ NPM_CONFIG_CACHE=.spets/.npm-cache npm_config_cache=.spets/.npm-cache npx --yes spets plugin install codex
150
+ ```
151
+
143
152
  ## License
144
153
 
145
154
  MIT
package/dist/index.js CHANGED
@@ -365,6 +365,7 @@ function formatDocStatus(status) {
365
365
  import { existsSync as existsSync2, mkdirSync as mkdirSync2, writeFileSync as writeFileSync2, rmSync, readdirSync } from "fs";
366
366
  import { join as join2 } from "path";
367
367
  import { homedir } from "os";
368
+ var INSTALLED_SPETS_CMD = "spets";
368
369
  async function pluginCommand(action, name) {
369
370
  switch (action) {
370
371
  case "install":
@@ -588,11 +589,11 @@ You execute spets workflow commands. Follow orchestrator instructions exactly.
588
589
 
589
590
  IF \`$ARGUMENTS\` starts with "resume":
590
591
  Extract optional task ID from arguments (e.g. "resume abc-123" or "resume --task abc-123")
591
- RUN \`npx --yes spets orchestrate resume <taskId>\` (omit taskId if none provided)
592
+ RUN \`${INSTALLED_SPETS_CMD} orchestrate resume <taskId>\` (omit taskId if none provided)
592
593
  ELSE IF \`$ARGUMENTS\` starts with "list":
593
- RUN \`npx --yes spets orchestrate list\`
594
+ RUN \`${INSTALLED_SPETS_CMD} orchestrate list\`
594
595
  ELSE:
595
- RUN \`npx --yes spets orchestrate init "$ARGUMENTS"\`
596
+ RUN \`${INSTALLED_SPETS_CMD} orchestrate init "$ARGUMENTS"\`
596
597
 
597
598
  ## Loop
598
599
 
@@ -630,11 +631,11 @@ You execute spets workflow commands. Follow orchestrator instructions exactly.
630
631
 
631
632
  IF \`$ARGUMENTS\` starts with "resume":
632
633
  Extract optional task ID from arguments (e.g. "resume abc-123" or "resume --task abc-123")
633
- RUN \`node dist/index.js orchestrate resume <taskId> || npx --yes spets orchestrate resume <taskId>\` (omit taskId if none provided)
634
+ RUN \`node dist/index.js orchestrate resume <taskId> || ${INSTALLED_SPETS_CMD} orchestrate resume <taskId>\` (omit taskId if none provided)
634
635
  ELSE IF \`$ARGUMENTS\` starts with "list":
635
- RUN \`node dist/index.js orchestrate list || npx --yes spets orchestrate list\`
636
+ RUN \`node dist/index.js orchestrate list || ${INSTALLED_SPETS_CMD} orchestrate list\`
636
637
  ELSE:
637
- RUN \`node dist/index.js orchestrate init "$ARGUMENTS" || npx --yes spets orchestrate init "$ARGUMENTS"\`
638
+ RUN \`node dist/index.js orchestrate init "$ARGUMENTS" || ${INSTALLED_SPETS_CMD} orchestrate init "$ARGUMENTS"\`
638
639
 
639
640
  ## Loop
640
641
 
@@ -672,11 +673,11 @@ You execute spets workflow commands. Follow orchestrator instructions exactly.
672
673
 
673
674
  IF \`$ARGUMENTS\` starts with "resume":
674
675
  Extract optional task ID from arguments (e.g. "resume abc-123" or "resume --task abc-123")
675
- RUN \`npx --yes spets orchestrate resume <taskId>\` (omit taskId if none provided)
676
+ RUN \`${INSTALLED_SPETS_CMD} orchestrate resume <taskId>\` (omit taskId if none provided)
676
677
  ELSE IF \`$ARGUMENTS\` starts with "list":
677
- RUN \`npx --yes spets orchestrate list\`
678
+ RUN \`${INSTALLED_SPETS_CMD} orchestrate list\`
678
679
  ELSE:
679
- RUN \`npx --yes spets orchestrate init "$ARGUMENTS"\`
680
+ RUN \`${INSTALLED_SPETS_CMD} orchestrate init "$ARGUMENTS"\`
680
681
 
681
682
  ## Loop
682
683
 
@@ -1496,7 +1497,7 @@ function checkpointApprove(specPath, cmds) {
1496
1497
  }
1497
1498
  var PRINT_MESSAGE_AND_STOP = "Print the message. Stop.";
1498
1499
  var PRINT_ERROR_AND_STOP = "Print the error. Stop.";
1499
- var LIST_TASKS = "Show tasks to user. Ask which to resume. Run:\n npx spets orchestrate resume <selectedTaskId>";
1500
+ var LIST_TASKS = "Show tasks to user. Ask which to resume. Run:\n spets orchestrate resume <selectedTaskId>";
1500
1501
  var LIST_EMPTY = "No resumable tasks found. Show this to the user. Stop.";
1501
1502
 
1502
1503
  // src/orchestrator/responses.ts
@@ -1510,7 +1511,7 @@ function getOrchestrateCommandPrefix() {
1510
1511
  const escapedPath = entryScript.includes(" ") ? `"${entryScript.replace(/"/g, '\\"')}"` : entryScript;
1511
1512
  return `node ${escapedPath} orchestrate`;
1512
1513
  }
1513
- return "npx --yes spets orchestrate";
1514
+ return "spets orchestrate";
1514
1515
  }
1515
1516
  function buildOrchestrateCommand(args) {
1516
1517
  return `${getOrchestrateCommandPrefix()} ${args}`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spets",
3
- "version": "0.2.8",
3
+ "version": "0.2.9",
4
4
  "description": "Spec Driven Development Execution Framework",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",