sisyphi 1.1.25 → 1.1.26

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 (76) hide show
  1. package/README.md +35 -35
  2. package/deploy/aws/main.tf +1 -1
  3. package/deploy/aws/variables.tf +1 -1
  4. package/deploy/aws/versions.tf +1 -1
  5. package/deploy/hetzner/variables.tf +1 -1
  6. package/deploy/hetzner/versions.tf +1 -1
  7. package/deploy/shared/cloud-init.yaml.tpl +1 -1
  8. package/dist/cli.js +619 -200
  9. package/dist/cli.js.map +1 -1
  10. package/dist/daemon.js +23 -11
  11. package/dist/daemon.js.map +1 -1
  12. package/dist/deploy/aws/main.tf +1 -1
  13. package/dist/deploy/aws/variables.tf +1 -1
  14. package/dist/deploy/aws/versions.tf +1 -1
  15. package/dist/deploy/hetzner/variables.tf +1 -1
  16. package/dist/deploy/hetzner/versions.tf +1 -1
  17. package/dist/deploy/shared/cloud-init.yaml.tpl +1 -1
  18. package/dist/templates/agent-plugin/agents/explore.md +2 -2
  19. package/dist/templates/agent-plugin/agents/implementor.md +2 -2
  20. package/dist/templates/agent-plugin/agents/operator.md +3 -3
  21. package/dist/templates/agent-plugin/agents/plan.md +2 -2
  22. package/dist/templates/agent-plugin/agents/problem.md +8 -8
  23. package/dist/templates/agent-plugin/agents/review-plan/CLAUDE.md +1 -1
  24. package/dist/templates/agent-plugin/agents/spec/requirements-writer.md +1 -1
  25. package/dist/templates/agent-plugin/agents/spec.md +19 -19
  26. package/dist/templates/agent-plugin/skills/humanloop/SKILL.md +7 -7
  27. package/dist/templates/agent-plugin/skills/perspective-fanout/SKILL.md +2 -2
  28. package/dist/templates/agent-plugin/skills/problem-plateau-breakers/SKILL.md +2 -2
  29. package/dist/templates/agent-suffix.md +3 -3
  30. package/dist/templates/dashboard-claude.md +13 -13
  31. package/dist/templates/orchestrator-base.md +13 -13
  32. package/dist/templates/orchestrator-completion.md +11 -11
  33. package/dist/templates/orchestrator-discovery.md +5 -5
  34. package/dist/templates/orchestrator-impl.md +8 -8
  35. package/dist/templates/orchestrator-planning.md +6 -6
  36. package/dist/templates/orchestrator-plugin/commands/sisyphus/scratch.md +1 -1
  37. package/dist/templates/orchestrator-plugin/commands/sisyphus/strategize.md +2 -2
  38. package/dist/templates/orchestrator-plugin/skills/humanloop/SKILL.md +9 -9
  39. package/dist/templates/orchestrator-plugin/skills/orchestration/CLAUDE.md +1 -1
  40. package/dist/templates/orchestrator-plugin/skills/orchestration/SKILL.md +1 -1
  41. package/dist/templates/orchestrator-plugin/skills/orchestration/strategy.md +4 -4
  42. package/dist/templates/orchestrator-plugin/skills/orchestration/task-patterns.md +2 -2
  43. package/dist/templates/orchestrator-plugin/skills/orchestration/workflow-examples.md +1 -1
  44. package/dist/templates/orchestrator-validation.md +5 -5
  45. package/dist/templates/termrender-haiku-system.md +1 -1
  46. package/dist/tui.js +8 -8
  47. package/dist/tui.js.map +1 -1
  48. package/package.json +2 -1
  49. package/templates/agent-plugin/agents/explore.md +2 -2
  50. package/templates/agent-plugin/agents/implementor.md +2 -2
  51. package/templates/agent-plugin/agents/operator.md +3 -3
  52. package/templates/agent-plugin/agents/plan.md +2 -2
  53. package/templates/agent-plugin/agents/problem.md +8 -8
  54. package/templates/agent-plugin/agents/review-plan/CLAUDE.md +1 -1
  55. package/templates/agent-plugin/agents/spec/requirements-writer.md +1 -1
  56. package/templates/agent-plugin/agents/spec.md +19 -19
  57. package/templates/agent-plugin/skills/humanloop/SKILL.md +7 -7
  58. package/templates/agent-plugin/skills/perspective-fanout/SKILL.md +2 -2
  59. package/templates/agent-plugin/skills/problem-plateau-breakers/SKILL.md +2 -2
  60. package/templates/agent-suffix.md +3 -3
  61. package/templates/dashboard-claude.md +13 -13
  62. package/templates/orchestrator-base.md +13 -13
  63. package/templates/orchestrator-completion.md +11 -11
  64. package/templates/orchestrator-discovery.md +5 -5
  65. package/templates/orchestrator-impl.md +8 -8
  66. package/templates/orchestrator-planning.md +6 -6
  67. package/templates/orchestrator-plugin/commands/sisyphus/scratch.md +1 -1
  68. package/templates/orchestrator-plugin/commands/sisyphus/strategize.md +2 -2
  69. package/templates/orchestrator-plugin/skills/humanloop/SKILL.md +9 -9
  70. package/templates/orchestrator-plugin/skills/orchestration/CLAUDE.md +1 -1
  71. package/templates/orchestrator-plugin/skills/orchestration/SKILL.md +1 -1
  72. package/templates/orchestrator-plugin/skills/orchestration/strategy.md +4 -4
  73. package/templates/orchestrator-plugin/skills/orchestration/task-patterns.md +2 -2
  74. package/templates/orchestrator-plugin/skills/orchestration/workflow-examples.md +1 -1
  75. package/templates/orchestrator-validation.md +5 -5
  76. package/templates/termrender-haiku-system.md +1 -1
package/dist/daemon.js CHANGED
@@ -21,6 +21,9 @@ __export(paths_exports, {
21
21
  askVisualAnsiPath: () => askVisualAnsiPath,
22
22
  askVisualMarkdownPath: () => askVisualMarkdownPath,
23
23
  askVisualsDir: () => askVisualsDir,
24
+ boxCloudSidecarDir: () => boxCloudSidecarDir,
25
+ boxCloudSidecarPath: () => boxCloudSidecarPath,
26
+ boxRepoPath: () => boxRepoPath,
24
27
  companionMemoryPath: () => companionMemoryPath,
25
28
  companionPath: () => companionPath,
26
29
  contextDir: () => contextDir,
@@ -229,6 +232,15 @@ function deployCredsPath(provider) {
229
232
  function deployTailscaleEnvPath() {
230
233
  return join(deployDir(), "tailscale.env");
231
234
  }
235
+ function boxRepoPath(repo) {
236
+ return `~/projects/${repo}`;
237
+ }
238
+ function boxCloudSidecarPath(repo) {
239
+ return `~/.sisyphus/cloud/${repo}.json`;
240
+ }
241
+ function boxCloudSidecarDir() {
242
+ return `~/.sisyphus/cloud`;
243
+ }
232
244
  function isSisyphusSession(name) {
233
245
  return name.startsWith("ssyph_");
234
246
  }
@@ -2244,7 +2256,7 @@ async function resolveOrchestratorOrphanAsks(cwd, sessionId, selectedOptionId) {
2244
2256
  writeOutput(cwd, sessionId, askId, [{
2245
2257
  id: "orphan",
2246
2258
  selectedOptionId,
2247
- freetext: `auto-resolved by ${selectedOptionId === "resume" ? "sisyphus session resume" : "system"}`
2259
+ freetext: `auto-resolved by ${selectedOptionId === "resume" ? "sis session resume" : "system"}`
2248
2260
  }], completedAt);
2249
2261
  await updateMeta(cwd, sessionId, askId, { status: "answered", completedAt });
2250
2262
  } catch (err) {
@@ -2561,12 +2573,12 @@ async function spawnAgent(opts) {
2561
2573
  try {
2562
2574
  execSync4(`which ${fallbackCli}`, { stdio: "pipe", env: execEnv() });
2563
2575
  } catch {
2564
- throw new Error(`Neither ${cliToCheck} (model: ${agentConfig?.frontmatter.model}) nor ${fallbackCli} (fallback: ${fallback}) CLI found on PATH. Run \`sisyphus admin doctor\` to diagnose.`);
2576
+ throw new Error(`Neither ${cliToCheck} (model: ${agentConfig?.frontmatter.model}) nor ${fallbackCli} (fallback: ${fallback}) CLI found on PATH. Run \`sis admin doctor\` to diagnose.`);
2565
2577
  }
2566
2578
  if (agentConfig) agentConfig.frontmatter.model = fallback;
2567
2579
  provider = fallbackProvider;
2568
2580
  } else {
2569
- throw new Error(`${cliToCheck} CLI not found on PATH. Run \`sisyphus admin doctor\` to diagnose.`);
2581
+ throw new Error(`${cliToCheck} CLI not found on PATH. Run \`sis admin doctor\` to diagnose.`);
2570
2582
  }
2571
2583
  }
2572
2584
  const repo = opts.repo !== void 0 ? opts.repo : ".";
@@ -6082,7 +6094,7 @@ ${agentLines}
6082
6094
  }
6083
6095
  }
6084
6096
  if (repos.length > 1) {
6085
- repositoriesSection += '\nTarget agents at specific repos:\n```bash\nsisyphus agent spawn --name "impl" --repo <repo-name> "task"\n```\n';
6097
+ repositoriesSection += '\nTarget agents at specific repos:\n```bash\nsis agent spawn --name "impl" --repo <repo-name> "task"\n```\n';
6086
6098
  }
6087
6099
  }
6088
6100
  const goalFile = goalPath(session.cwd, session.id);
@@ -6113,7 +6125,7 @@ async function spawnOrchestrator(sessionId, cwd, windowId, message, forceMode) {
6113
6125
  try {
6114
6126
  execSync5("which claude", { stdio: "pipe", env: EXEC_ENV });
6115
6127
  } catch {
6116
- throw new Error("Claude CLI not found on PATH. Run `sisyphus admin doctor` to diagnose.");
6128
+ throw new Error("Claude CLI not found on PATH. Run `sis admin doctor` to diagnose.");
6117
6129
  }
6118
6130
  const session = getSession(cwd, sessionId);
6119
6131
  const lastCycle = [...session.orchestratorCycles].reverse().find((c) => c.completedAt);
@@ -6175,7 +6187,7 @@ ${continuationText}`;
6175
6187
 
6176
6188
  ## Note: Prior Cycle Included a Long Pause
6177
6189
 
6178
- The previous cycle waited ~${hours}h for a \`sisyphus ask\` answer. Repository state and any in-flight context may have drifted during that window. Briefly verify before acting on the answer.`;
6190
+ The previous cycle waited ~${hours}h for a \`sis ask\` answer. Repository state and any in-flight context may have drifted during that window. Briefly verify before acting on the answer.`;
6179
6191
  }
6180
6192
  const userPromptFilePath = `${promptsDir(cwd, sessionId)}/orchestrator-user-${cycleNum}.md`;
6181
6193
  writeFileSync12(userPromptFilePath, substituteEnvVars(userPrompt), "utf-8");
@@ -6878,7 +6890,7 @@ async function startSession(task, cwd, context, name, effort) {
6878
6890
  async function cloneSession(sourceId, cwd, goal, context, name, strategy) {
6879
6891
  const sourceSession = getSession(cwd, sourceId);
6880
6892
  if (sourceSession.status === "completed") {
6881
- throw new Error("Cannot clone completed session. Use `sisyphus session continue` to resume it first.");
6893
+ throw new Error("Cannot clone completed session. Use `sis session continue` to resume it first.");
6882
6894
  }
6883
6895
  const cloneId = uuidv4();
6884
6896
  if (name && !NAME_PATTERN.test(name)) {
@@ -6995,7 +7007,7 @@ async function reconnectSession(sessionId, cwd) {
6995
7007
  const session = getSession(cwd, sessionId);
6996
7008
  const tmuxName = session.tmuxSessionName ?? tmuxSessionName(cwd, session.name ?? sessionId.slice(0, 8));
6997
7009
  if (!sessionNameTaken(tmuxName)) {
6998
- throw new Error(`No tmux session named "${tmuxName}" exists. Use \`sisyphus session resume\` to create a new one.`);
7010
+ throw new Error(`No tmux session named "${tmuxName}" exists. Use \`sis session resume\` to create a new one.`);
6999
7011
  }
7000
7012
  const tmuxSessId = resolveSessionId(tmuxName);
7001
7013
  if (!tmuxSessId) {
@@ -7297,7 +7309,7 @@ async function handleSubmit(cwd, sessionId, agentId, report, windowId) {
7297
7309
  function formatPendingAskError(verb, askedBy, open) {
7298
7310
  const lines = open.map((a) => ` - ${a.askId} (${a.status})${a.title ? ": " + a.title : ""}`);
7299
7311
  const who = askedBy === ORCHESTRATOR_ASKED_BY ? "orchestrator" : `agent ${askedBy}`;
7300
- const recovery = verb === "yield" ? `Resolve before yielding: \`sisyphus ask poll <askId>\` blocks until the user answers, then process the response and yield with a continuation prompt that names the answered branch.` : `Resolve before submitting: \`sisyphus ask poll <askId>\` blocks until the user answers, parse the response, then call \`sisyphus agent submit\` with your final report.`;
7312
+ const recovery = verb === "yield" ? `Resolve before yielding: \`sis ask poll <askId>\` blocks until the user answers, then process the response and yield with a continuation prompt that names the answered branch.` : `Resolve before submitting: \`sis ask poll <askId>\` blocks until the user answers, parse the response, then call \`sis agent submit\` with your final report.`;
7301
7313
  return `Cannot ${verb}: ${who} owns ${open.length} open deck${open.length === 1 ? "" : "s"}:
7302
7314
  ${lines.join("\n")}
7303
7315
 
@@ -8034,7 +8046,7 @@ function registerSessionTmux(sessionId, tmuxSession, windowId, tmuxSessionId) {
8034
8046
  }
8035
8047
  }
8036
8048
  function unknownSessionError(sessionId) {
8037
- return { ok: false, error: `Unknown session: ${sessionId}. Run \`sisyphus list --all\` to see available sessions.` };
8049
+ return { ok: false, error: `Unknown session: ${sessionId}. Run \`sis list --all\` to see available sessions.` };
8038
8050
  }
8039
8051
  function collectAllSessionIds() {
8040
8052
  const idToCwd = /* @__PURE__ */ new Map();
@@ -8257,7 +8269,7 @@ async function handleRequest(req) {
8257
8269
  sessionTrackingMap.set(req.sessionId, tracking);
8258
8270
  persistSessionRegistry();
8259
8271
  } else {
8260
- return { ok: false, error: `Unknown session: ${req.sessionId}. No state.json found at ${stateFile}. Run \`sisyphus list --all\` to see available sessions.` };
8272
+ return { ok: false, error: `Unknown session: ${req.sessionId}. No state.json found at ${stateFile}. Run \`sis list --all\` to see available sessions.` };
8261
8273
  }
8262
8274
  }
8263
8275
  const session = await resumeSession(req.sessionId, tracking.cwd, req.message);