@dunnewold-labs/mr-manager 0.4.9 → 0.4.12

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 (2) hide show
  1. package/dist/index.mjs +15 -8
  2. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -185,7 +185,7 @@ import { fileURLToPath } from "url";
185
185
  // cli/package.json
186
186
  var package_default = {
187
187
  name: "@dunnewold-labs/mr-manager",
188
- version: "0.4.9",
188
+ version: "0.4.12",
189
189
  description: "Mr. Manager - Task and project management CLI",
190
190
  bin: {
191
191
  mr: "./dist/index.mjs"
@@ -2193,7 +2193,7 @@ function buildIdeaPrompt(idea, repoDir) {
2193
2193
  `- Do NOT exit until both files have been written and verified`
2194
2194
  ].join("\n");
2195
2195
  }
2196
- function buildAgentArgs(agent, prompt2, mode, sessionId, name, resumeSession = false, systemPrompt) {
2196
+ function buildAgentArgs(agent, prompt2, mode, sessionId, name, resumeSession = false, systemPrompt, maxTurns) {
2197
2197
  if (agent === "codex") {
2198
2198
  const args = [];
2199
2199
  if (mode === "execute") {
@@ -2222,10 +2222,11 @@ ${systemPrompt}` : prompt2;
2222
2222
  const sessionArgs = sessionId ? resumeSession ? ["--resume", sessionId] : ["--session-id", sessionId] : [];
2223
2223
  const nameArgs = name ? ["--name", name] : [];
2224
2224
  const systemArgs = systemPrompt ? ["--append-system-prompt", systemPrompt] : [];
2225
+ const turnsArgs = maxTurns ? ["--max-turns", String(maxTurns)] : [];
2225
2226
  if (mode === "plan") {
2226
- return { bin: "claude", args: [...sessionArgs, ...nameArgs, ...systemArgs, "--permission-mode", "plan", "-p", prompt2] };
2227
+ return { bin: "claude", args: [...sessionArgs, ...nameArgs, ...systemArgs, ...turnsArgs, "--permission-mode", "plan", "-p", prompt2] };
2227
2228
  }
2228
- return { bin: "claude", args: [...sessionArgs, ...nameArgs, ...systemArgs, "-p", "--dangerously-skip-permissions", prompt2] };
2229
+ return { bin: "claude", args: [...sessionArgs, ...nameArgs, ...systemArgs, ...turnsArgs, "-p", "--dangerously-skip-permissions", prompt2] };
2229
2230
  }
2230
2231
  function commandExists(cmd) {
2231
2232
  return new Promise((resolve8) => {
@@ -2280,10 +2281,10 @@ function askYesNo(question) {
2280
2281
  });
2281
2282
  });
2282
2283
  }
2283
- function spawnAgent(agent, repoDir, prompt2, prefix, onActivity, sessionId, name, resumeSession = false, onSpawnError, systemPrompt) {
2284
+ function spawnAgent(agent, repoDir, prompt2, prefix, onActivity, sessionId, name, resumeSession = false, onSpawnError, systemPrompt, maxTurns) {
2284
2285
  const jobLabel = name ?? "unknown";
2285
2286
  console.log(`${timestamp()} ${prefix} ${paint("dim", tokenLogLine("agent", jobLabel, prompt2, systemPrompt))}`);
2286
- const { bin, args } = buildAgentArgs(agent, prompt2, "execute", sessionId, name, resumeSession, systemPrompt);
2287
+ const { bin, args } = buildAgentArgs(agent, prompt2, "execute", sessionId, name, resumeSession, systemPrompt, maxTurns);
2287
2288
  const child = spawn4(bin, args, { cwd: repoDir, stdio: ["ignore", "pipe", "pipe"] });
2288
2289
  child.on("error", (err) => {
2289
2290
  logError(prefix, `Failed to spawn ${agent}: ${err.message}`);
@@ -2949,7 +2950,10 @@ var watchCommand = new Command8("watch").description(
2949
2950
  false,
2950
2951
  (err) => {
2951
2952
  spawnFailureReason = err.message;
2952
- }
2953
+ },
2954
+ void 0,
2955
+ 25
2956
+ // max turns — prevent the agent from looping internally
2953
2957
  );
2954
2958
  activeEntry.process = child;
2955
2959
  activeEntry.currentAgent = attemptAgent;
@@ -2975,11 +2979,14 @@ var watchCommand = new Command8("watch").description(
2975
2979
  logSuccess(prefix, `"${paint("bold", project.name)}" repo creation complete`);
2976
2980
  try {
2977
2981
  await api.patch(`/api/projects/${project.id}`, { repoCreationStatus: "created" });
2978
- } catch {
2982
+ } catch (err) {
2983
+ logError(prefix, `Failed to mark repo as created: ${err.message}`);
2984
+ failed.set(key, "status update failed after successful creation");
2979
2985
  }
2980
2986
  } else {
2981
2987
  const failureDetail = spawnFailureReason ?? `exit code ${code}`;
2982
2988
  logError(prefix, `"${paint("bold", project.name)}" repo creation failed via ${attemptAgent} (${failureDetail})`);
2989
+ failed.set(key, failureDetail);
2983
2990
  try {
2984
2991
  await api.patch(`/api/projects/${project.id}`, { repoCreationStatus: "failed" });
2985
2992
  } catch {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dunnewold-labs/mr-manager",
3
- "version": "0.4.9",
3
+ "version": "0.4.12",
4
4
  "description": "Mr. Manager - Task and project management CLI",
5
5
  "bin": {
6
6
  "mr": "./dist/index.mjs"