sisyphi 1.0.13 → 1.0.14

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sisyphi",
3
- "version": "1.0.13",
3
+ "version": "1.0.14",
4
4
  "description": "tmux-integrated orchestration daemon for Claude Code multi-agent workflows",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,13 +38,11 @@
38
38
  "dependencies": {
39
39
  "@r-cli/sdk": "^1.2.0",
40
40
  "commander": "^13.1.0",
41
- "ink": "^4.4.1",
42
- "react": "^18.3.1",
41
+ "string-width": "^5.1.2",
43
42
  "uuid": "^11.1.0"
44
43
  },
45
44
  "devDependencies": {
46
45
  "@types/node": "^22.13.4",
47
- "@types/react": "^18.3.28",
48
46
  "@types/uuid": "^10.0.0",
49
47
  "tsup": "^8.4.0",
50
48
  "tsx": "^4.21.0",
@@ -62,7 +62,7 @@ Cover: ambiguous requirements, design choices with multiple valid approaches, sc
62
62
 
63
63
  ### 4. Write Spec (only after user sign-off)
64
64
 
65
- Once the user confirms the direction, save to `.sisyphus/sessions/$SISYPHUS_SESSION_ID/context/`:
65
+ Once the user confirms the direction, save to `$SISYPHUS_SESSION_DIR/context/`:
66
66
 
67
67
  **`spec-{topic}.md`** — High-level spec:
68
68
  - **Summary** — One paragraph
@@ -20,7 +20,7 @@ Implementation drifts from plans. Function names change, files move, APIs get re
20
20
 
21
21
  ## Output Format
22
22
 
23
- Save to `.sisyphus/sessions/$SISYPHUS_SESSION_ID/context/test-spec-{topic}.md`:
23
+ Save to `$SISYPHUS_SESSION_DIR/context/test-spec-{topic}.md`:
24
24
 
25
25
  ```markdown
26
26
  # {Topic} — Behavioral Test Spec
@@ -14,7 +14,7 @@ if [ "$STOP_ACTIVE" = "True" ]; then
14
14
  fi
15
15
 
16
16
  # Check if the agent already submitted its final report
17
- REPORT_FILE="${SISYPHUS_CWD}/.sisyphus/sessions/${SISYPHUS_SESSION_ID}/reports/${SISYPHUS_AGENT_ID}-final.md"
17
+ REPORT_FILE="${SISYPHUS_SESSION_DIR}/reports/${SISYPHUS_AGENT_ID}-final.md"
18
18
  if [ -f "$REPORT_FILE" ]; then
19
19
  exit 0
20
20
  fi
@@ -24,7 +24,7 @@ This means:
24
24
 
25
25
  You are respawned fresh each cycle with the latest session state. You have no memory beyond what's in your prompt. **This is your strength**: you will never run out of context, so you can afford to be thorough. Use multiple cycles to explore, plan, validate, and iterate. Don't rush to completion.
26
26
 
27
- **Agent reports are saved in `reports/`.** The most recent cycle's reports are included in full in your prompt. For older cycles, read report files from the `reports/` directory when you need detail. Delegate to agents that create specs and plans and save context to `.sisyphus/sessions/$SISYPHUS_SESSION_ID/context/` — they're your primary tool for preserving context across cycles.
27
+ **Agent reports are saved in `reports/`.** The most recent cycle's reports are included in full in your prompt. For older cycles, read report files from the `reports/` directory when you need detail. Delegate to agents that create specs and plans and save context to `$SISYPHUS_SESSION_DIR/context/` — they're your primary tool for preserving context across cycles.
28
28
 
29
29
  ## Each Cycle
30
30
 
@@ -70,7 +70,7 @@ Use judgment about what's "significant." A one-file refactor doesn't need user s
70
70
 
71
71
  ## roadmap.md and Cycle Logs
72
72
 
73
- A roadmap file and per-cycle log files live in the session directory (`.sisyphus/sessions/$SISYPHUS_SESSION_ID/`). **You own these files** — read and edit them directly.
73
+ A roadmap file and per-cycle log files live in the session directory (`$SISYPHUS_SESSION_DIR/`). **You own these files** — read and edit them directly.
74
74
 
75
75
  ### roadmap.md — Your development workflow
76
76
 
@@ -190,7 +190,7 @@ More cycles with working, verified, reviewed code beats fewer cycles with large
190
190
 
191
191
  ## Context Directory
192
192
 
193
- The context directory (`.sisyphus/sessions/$SISYPHUS_SESSION_ID/context/`) is for persistent artifacts too large for agent instructions or logs: specs, implementation plans, exploration findings, test strategies, e2e verification recipes.
193
+ The context directory (`$SISYPHUS_SESSION_DIR/context/`) is for persistent artifacts too large for agent instructions or logs: specs, implementation plans, exploration findings, test strategies, e2e verification recipes.
194
194
 
195
195
  Context dir contents are listed in your prompt each cycle. Read files when you need full detail.
196
196
 
@@ -201,7 +201,7 @@ Context dir contents are listed in your prompt each cycle. Read files when you n
201
201
 
202
202
  ## Session Directory
203
203
 
204
- Each session lives at `.sisyphus/sessions/$SISYPHUS_SESSION_ID/` with this structure:
204
+ Each session lives at `$SISYPHUS_SESSION_DIR/` with this structure:
205
205
 
206
206
  - `state.json` — Session state (managed by daemon, do not edit)
207
207
  - `roadmap.md` — Development workflow document (you own this)
@@ -233,6 +233,8 @@ sisyphus spawn --name "feat-api" --agent-type sisyphus:implement --worktree "Add
233
233
 
234
234
  {{AGENT_TYPES}}
235
235
 
236
+ > **Prefer sisyphus agents.** When multiple agent types offer similar capabilities, choose `sisyphus:*` agents — they are purpose-built for multi-agent orchestration with proper session integration, reporting, and lifecycle management.
237
+
236
238
  ### Slash Commands
237
239
 
238
240
  Agents can invoke slash commands via `/skill:name` syntax to load specialized methodologies:
@@ -6,7 +6,7 @@ The natural sequence: **context → spec → roadmap refinement → detailed pla
6
6
 
7
7
  ## Exploration
8
8
 
9
- Use explore agents to build understanding before making decisions. Each agent should save a focused context document to `.sisyphus/sessions/$SISYPHUS_SESSION_ID/context/` — these artifacts get passed to downstream agents so they don't have to re-explore the codebase themselves.
9
+ Use explore agents to build understanding before making decisions. Each agent should save a focused context document to `$SISYPHUS_SESSION_DIR/context/` — these artifacts get passed to downstream agents so they don't have to re-explore the codebase themselves.
10
10
 
11
11
  Adapt the number and focus of explore agents to the task. Key principles:
12
12
 
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/shared/config.ts","../src/shared/env.ts","../src/shared/exec.ts"],"sourcesContent":["import { readFileSync } from 'node:fs';\nimport { globalConfigPath, projectConfigPath } from './paths.js';\n\nexport interface WorktreeConfig {\n copy?: string[];\n clone?: string[];\n symlink?: string[];\n init?: string;\n}\n\nexport type EffortLevel = 'low' | 'medium' | 'high' | 'max';\n\nexport interface Config {\n model?: string;\n tmuxSession?: string;\n orchestratorPrompt?: string;\n pollIntervalMs?: number;\n autoUpdate?: boolean;\n orchestratorEffort?: EffortLevel;\n agentEffort?: EffortLevel;\n editor?: string;\n}\n\nconst DEFAULT_CONFIG: Config = {\n pollIntervalMs: 5000,\n orchestratorEffort: 'high',\n agentEffort: 'medium',\n};\n\nfunction readJsonFile(filePath: string): Partial<Config> {\n try {\n const content = readFileSync(filePath, 'utf-8');\n return JSON.parse(content) as Partial<Config>;\n } catch {\n return {};\n }\n}\n\nexport function loadConfig(cwd: string): Config {\n const global = readJsonFile(globalConfigPath());\n const project = readJsonFile(projectConfigPath(cwd));\n return { ...DEFAULT_CONFIG, ...global, ...project };\n}\n","/**\n * Build a PATH string that includes common binary directories\n * across package managers and platforms.\n *\n * Prepends known directories that exist on the system to the current PATH.\n * This ensures tmux commands can find binaries installed by Homebrew,\n * MacPorts, nix, and other package managers.\n */\nexport function augmentedPath(): string {\n const rawPath = process.env['PATH'];\n const basePath = rawPath !== undefined && rawPath.length > 0 ? rawPath : '/usr/bin:/bin';\n\n // Common binary directories across platforms/package managers.\n // Only prepend ones that aren't already in PATH.\n const candidates = [\n '/opt/homebrew/bin', // Homebrew (Apple Silicon macOS)\n '/opt/homebrew/sbin', // Homebrew sbin\n '/usr/local/bin', // Homebrew (Intel macOS), manual installs\n '/usr/local/sbin', // Manual installs\n '/opt/local/bin', // MacPorts\n '/opt/local/sbin', // MacPorts\n '/home/linuxbrew/.linuxbrew/bin', // Linuxbrew\n ];\n\n // Check for nix profile paths\n const nixProfile = process.env['NIX_PROFILES'];\n if (nixProfile) {\n for (const p of nixProfile.split(' ').reverse()) {\n candidates.push(`${p}/bin`);\n }\n }\n\n const existing = new Set(basePath.split(':'));\n const prepend = candidates.filter(dir => !existing.has(dir));\n\n return prepend.length > 0 ? `${prepend.join(':')}:${basePath}` : basePath;\n}\n\n/**\n * Environment variables for child processes that need access to\n * user-installed binaries (tmux, git, claude, etc.).\n */\nexport function execEnv(): Record<string, string | undefined> {\n return {\n ...process.env,\n PATH: augmentedPath(),\n };\n}\n","import { execSync } from 'node:child_process';\nimport { execEnv } from './env.js';\n\nexport const EXEC_ENV = execEnv();\n\nexport function exec(cmd: string, cwd?: string): string {\n return execSync(cmd, { encoding: 'utf-8', env: EXEC_ENV, cwd }).trim();\n}\n\nexport function execSafe(cmd: string, cwd?: string): string | null {\n try {\n return execSync(cmd, { encoding: 'utf-8', env: EXEC_ENV, cwd, stdio: ['pipe', 'pipe', 'pipe'] }).trim();\n } catch { return null; }\n}\n"],"mappings":";;;;;;;AAAA,SAAS,oBAAoB;AAuB7B,IAAM,iBAAyB;AAAA,EAC7B,gBAAgB;AAAA,EAChB,oBAAoB;AAAA,EACpB,aAAa;AACf;AAEA,SAAS,aAAa,UAAmC;AACvD,MAAI;AACF,UAAM,UAAU,aAAa,UAAU,OAAO;AAC9C,WAAO,KAAK,MAAM,OAAO;AAAA,EAC3B,QAAQ;AACN,WAAO,CAAC;AAAA,EACV;AACF;AAEO,SAAS,WAAW,KAAqB;AAC9C,QAAM,SAAS,aAAa,iBAAiB,CAAC;AAC9C,QAAM,UAAU,aAAa,kBAAkB,GAAG,CAAC;AACnD,SAAO,EAAE,GAAG,gBAAgB,GAAG,QAAQ,GAAG,QAAQ;AACpD;;;AClCO,SAAS,gBAAwB;AACtC,QAAM,UAAU,QAAQ,IAAI,MAAM;AAClC,QAAM,WAAW,YAAY,UAAa,QAAQ,SAAS,IAAI,UAAU;AAIzE,QAAM,aAAa;AAAA,IACjB;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EACF;AAGA,QAAM,aAAa,QAAQ,IAAI,cAAc;AAC7C,MAAI,YAAY;AACd,eAAW,KAAK,WAAW,MAAM,GAAG,EAAE,QAAQ,GAAG;AAC/C,iBAAW,KAAK,GAAG,CAAC,MAAM;AAAA,IAC5B;AAAA,EACF;AAEA,QAAM,WAAW,IAAI,IAAI,SAAS,MAAM,GAAG,CAAC;AAC5C,QAAM,UAAU,WAAW,OAAO,SAAO,CAAC,SAAS,IAAI,GAAG,CAAC;AAE3D,SAAO,QAAQ,SAAS,IAAI,GAAG,QAAQ,KAAK,GAAG,CAAC,IAAI,QAAQ,KAAK;AACnE;AAMO,SAAS,UAA8C;AAC5D,SAAO;AAAA,IACL,GAAG,QAAQ;AAAA,IACX,MAAM,cAAc;AAAA,EACtB;AACF;;;AC/CA,SAAS,gBAAgB;AAGlB,IAAM,WAAW,QAAQ;AAEzB,SAAS,KAAK,KAAa,KAAsB;AACtD,SAAO,SAAS,KAAK,EAAE,UAAU,SAAS,KAAK,UAAU,IAAI,CAAC,EAAE,KAAK;AACvE;AAEO,SAAS,SAAS,KAAa,KAA6B;AACjE,MAAI;AACF,WAAO,SAAS,KAAK,EAAE,UAAU,SAAS,KAAK,UAAU,KAAK,OAAO,CAAC,QAAQ,QAAQ,MAAM,EAAE,CAAC,EAAE,KAAK;AAAA,EACxG,QAAQ;AAAE,WAAO;AAAA,EAAM;AACzB;","names":[]}