@tritard/waterbrother 0.15.15 → 0.15.17

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/package.json +1 -1
  2. package/src/cli.js +20 -5
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tritard/waterbrother",
3
- "version": "0.15.15",
3
+ "version": "0.15.17",
4
4
  "description": "Waterbrother: bring-your-own-model coding CLI with local tools, sessions, operator modes, and approval controls",
5
5
  "type": "module",
6
6
  "bin": {
package/src/cli.js CHANGED
@@ -5527,7 +5527,10 @@ async function promptLoop(agent, session, context) {
5527
5527
  context.costTracker = createCostTracker();
5528
5528
  }
5529
5529
  if (!("traceMode" in context.runtime)) {
5530
- context.runtime.traceMode = "on";
5530
+ // Standard/guide: traces off by default (clean CC-like output)
5531
+ // Expert/auditor: traces on by default (SWE visibility)
5532
+ const mode = agent.getExperienceMode();
5533
+ context.runtime.traceMode = (mode === "expert" || mode === "auditor") ? "on" : "off";
5531
5534
  }
5532
5535
  if (!("receiptMode" in context.runtime)) {
5533
5536
  context.runtime.receiptMode = "auto";
@@ -5783,13 +5786,25 @@ async function promptLoop(agent, session, context) {
5783
5786
  // Product builder intake: detect creation intent, ask permission before oneshotting
5784
5787
  const currentMode = agent.getExperienceMode();
5785
5788
  if (detectProductRequest(line)) {
5786
- // Ask: oneshot or work through it?
5787
- console.log(dim(" oneshot it blueprint + build in one go"));
5788
- console.log(dim(" work through it → start coding naturally"));
5789
+ // Ask permission conversationally model asks, not system
5790
+ const prevTools = agent.enableTools;
5791
+ agent.enableTools = false;
5792
+ try {
5793
+ await runTextTurnInteractive({
5794
+ agent, currentSession, context,
5795
+ promptText: `The user said: "${line}". They want to build something. Ask them ONE short question: do they want you to oneshot the whole thing (blueprint + build everything automatically), or would they rather talk through it and build step by step? Keep it casual and brief — one or two sentences max. Do NOT use any tools.`,
5796
+ pendingInput: line,
5797
+ spinnerLabel: "thinking..."
5798
+ });
5799
+ } finally {
5800
+ agent.enableTools = prevTools;
5801
+ }
5802
+
5803
+ // Wait for their answer
5789
5804
  let choice = "";
5790
5805
  try {
5791
5806
  choice = await readInteractiveLine({
5792
- getFooterText() { return "oneshot · work through it"; }
5807
+ getFooterText() { return ""; }
5793
5808
  });
5794
5809
  choice = (choice || "").trim().toLowerCase().replace(/[.!?,;:]+$/, "");
5795
5810
  } catch {