switchroom 0.13.8 → 0.13.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.
package/dist/cli/switchroom.js
CHANGED
|
@@ -47314,8 +47314,8 @@ var {
|
|
|
47314
47314
|
} = import__.default;
|
|
47315
47315
|
|
|
47316
47316
|
// src/build-info.ts
|
|
47317
|
-
var VERSION = "0.13.
|
|
47318
|
-
var COMMIT_SHA = "
|
|
47317
|
+
var VERSION = "0.13.9";
|
|
47318
|
+
var COMMIT_SHA = "b3a077a6";
|
|
47319
47319
|
|
|
47320
47320
|
// src/cli/agent.ts
|
|
47321
47321
|
init_source();
|
|
@@ -48766,11 +48766,13 @@ function buildWorkspaceContext(args) {
|
|
|
48766
48766
|
There is a real person on the other end. Every turn should feel like
|
|
48767
48767
|
messaging a capable colleague \u2014 not a tool emitting output. Five beats:
|
|
48768
48768
|
|
|
48769
|
-
1. **Acknowledge first.**
|
|
48770
|
-
|
|
48771
|
-
in your own voice
|
|
48772
|
-
|
|
48773
|
-
|
|
48769
|
+
1. **Acknowledge first.** Unless your whole reply is a single short
|
|
48770
|
+
sentence you can send right now, your FIRST action this turn is a
|
|
48771
|
+
brief \`reply\` in your own voice \u2014 "on it", "good question, one
|
|
48772
|
+
sec", "let me dig in" \u2014 before any tool call and before you
|
|
48773
|
+
compose the full answer. This holds even for a pure-thinking
|
|
48774
|
+
answer: if it will run to a paragraph, ack first. It is the line
|
|
48775
|
+
between a colleague and a black box.
|
|
48774
48776
|
2. **Then go quiet and work.** Heads-down is correct \u2014 do NOT narrate
|
|
48775
48777
|
every tool call. A typing indicator runs automatically while you
|
|
48776
48778
|
work; you do not maintain it.
|
|
@@ -49485,7 +49487,7 @@ function buildSettingsHooksBlock(p) {
|
|
|
49485
49487
|
}
|
|
49486
49488
|
] : [];
|
|
49487
49489
|
const useHotReloadStable = agentConfig.channels?.telegram?.hotReloadStable === true;
|
|
49488
|
-
const turnPacingDirective = "<turn-pacing>You are messaging a human.
|
|
49490
|
+
const turnPacingDirective = "<turn-pacing>You are messaging a human in a chat. FIRST action " + "this turn: unless your whole reply is a single short sentence you " + "can send right now, call the reply tool with a brief " + "acknowledgement in your own voice (disable_notification true) \u2014 " + 'examples: "on it", "good question \u2014 one sec", "let me dig in" \u2014 ' + "BEFORE any other tool call and BEFORE composing the full answer. " + "This applies even when no tool call is needed: if the answer will " + "run to a paragraph, ack first. It is a real beat, not filler \u2014 " + "the line between a colleague and a black box. Then do the work; " + "surface meaningful progress in human prose at genuine milestones; " + "hand back any sub-agent findings in your own voice; deliver the " + "answer. Do not acknowledge a trivial one-liner, and never " + "acknowledge twice.</turn-pacing>";
|
|
49489
49491
|
const switchroomUserPromptSubmit = [
|
|
49490
49492
|
...useHotReloadStable ? [
|
|
49491
49493
|
{
|
|
@@ -49710,11 +49712,13 @@ function reconcileAgent(name, agentConfigRaw, agentsDir, telegramConfig, switchr
|
|
|
49710
49712
|
There is a real person on the other end. Every turn should feel like
|
|
49711
49713
|
messaging a capable colleague \u2014 not a tool emitting output. Five beats:
|
|
49712
49714
|
|
|
49713
|
-
1. **Acknowledge first.**
|
|
49714
|
-
|
|
49715
|
-
in your own voice
|
|
49716
|
-
|
|
49717
|
-
|
|
49715
|
+
1. **Acknowledge first.** Unless your whole reply is a single short
|
|
49716
|
+
sentence you can send right now, your FIRST action this turn is a
|
|
49717
|
+
brief \`reply\` in your own voice \u2014 "on it", "good question, one
|
|
49718
|
+
sec", "let me dig in" \u2014 before any tool call and before you
|
|
49719
|
+
compose the full answer. This holds even for a pure-thinking
|
|
49720
|
+
answer: if it will run to a paragraph, ack first. It is the line
|
|
49721
|
+
between a colleague and a black box.
|
|
49718
49722
|
2. **Then go quiet and work.** Heads-down is correct \u2014 do NOT narrate
|
|
49719
49723
|
every tool call. A typing indicator runs automatically while you
|
|
49720
49724
|
work; you do not maintain it.
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@ Telegram is a chat — replies should feel like one, not a terminal dump or a tr
|
|
|
5
5
|
**Every turn that responds to a user message MUST end with a `reply` (or `stream_reply` with `done=true`).** The user is on Telegram — they don't see your CLI output, tool-use trace, or inline thinking. The ONLY path for words to reach them is an MCP tool call. If you have a final answer, send it via `reply`. The text in your terminal is not the conversation.
|
|
6
6
|
|
|
7
7
|
**Conversational pacing — a human is on the other side.** Match the rhythm of a capable colleague messaging you back. Five beats:
|
|
8
|
-
- **1 · Acknowledge first.**
|
|
8
|
+
- **1 · Acknowledge first.** Unless your whole reply is a single short sentence you can send right now, your first action is a short one-liner via `reply`, persona voice, sent fast (`disable_notification: true`): *"on it — checking now"*. This holds whether the work ahead is a tool call or a paragraph of pure reasoning — if the answer will run long, ack *before* you compose it. Skip the ack only for an immediate one-sentence answer (*"what's 2+2"*). This is a beat, not filler — it's the line between a colleague and a black box.
|
|
9
9
|
- **2 · Then go quiet and work.** Heads-down is right — do **not** narrate every tool call. A typing indicator runs for you automatically; you don't keep it alive.
|
|
10
10
|
- **3 · Surface meaningful progress** at genuine inflection points — a hard step finished, a blocker, a pivot, dispatching a sub-agent, a notably slow wait, a finding worth knowing now. One short `reply`, `disable_notification: true` (no mid-turn ping).
|
|
11
11
|
- **4 · Hand back delegations with synthesis.** When a sub-agent reports back, re-enter in your own voice — what it found, what you're doing next (*"reviewer flagged the auth gap; fixing it now"*). Never let its raw report stand as your reply.
|
|
@@ -42,7 +42,7 @@ Telegram is a chat — replies should feel like one, not a terminal dump or a tr
|
|
|
42
42
|
**Every turn that responds to a user message MUST end with a `reply` (or `stream_reply` with `done=true`).** The user is on Telegram — they don't see your CLI output, tool-use trace, or inline thinking. The ONLY path for words to reach them is an MCP tool call. If you have a final answer, send it via `reply`. The text in your terminal is not the conversation.
|
|
43
43
|
|
|
44
44
|
**Conversational pacing — a human is on the other side.** Match the rhythm of a capable colleague messaging you back. Five beats:
|
|
45
|
-
- **1 · Acknowledge first.**
|
|
45
|
+
- **1 · Acknowledge first.** Unless your whole reply is a single short sentence you can send right now, your first action is a short one-liner via `reply`, persona voice, sent fast (`disable_notification: true`): *"on it — checking now"*. This holds whether the work ahead is a tool call or a paragraph of pure reasoning — if the answer will run long, ack *before* you compose it. Skip the ack only for an immediate one-sentence answer (*"what's 2+2"*). This is a beat, not filler — it's the line between a colleague and a black box.
|
|
46
46
|
- **2 · Then go quiet and work.** Heads-down is right — do **not** narrate every tool call. A typing indicator runs for you automatically; you don't keep it alive.
|
|
47
47
|
- **3 · Surface meaningful progress** at genuine inflection points — a hard step finished, a blocker, a pivot, dispatching a sub-agent, a notably slow wait, a finding worth knowing now. One short `reply`, `disable_notification: true` (no mid-turn ping).
|
|
48
48
|
- **4 · Hand back delegations with synthesis.** When a sub-agent reports back, re-enter in your own voice — what it found, what you're doing next (*"reviewer flagged the auth gap; fixing it now"*). Never let its raw report stand as your reply.
|
|
@@ -47741,11 +47741,11 @@ function sweepStaleTurnActiveMarker(stateDir, opts) {
|
|
|
47741
47741
|
}
|
|
47742
47742
|
|
|
47743
47743
|
// ../src/build-info.ts
|
|
47744
|
-
var VERSION = "0.13.
|
|
47745
|
-
var COMMIT_SHA = "
|
|
47746
|
-
var COMMIT_DATE = "2026-05-22T10:
|
|
47744
|
+
var VERSION = "0.13.9";
|
|
47745
|
+
var COMMIT_SHA = "b3a077a6";
|
|
47746
|
+
var COMMIT_DATE = "2026-05-22T10:38:19+10:00";
|
|
47747
47747
|
var LATEST_PR = null;
|
|
47748
|
-
var COMMITS_AHEAD_OF_TAG =
|
|
47748
|
+
var COMMITS_AHEAD_OF_TAG = 1;
|
|
47749
47749
|
|
|
47750
47750
|
// gateway/boot-version.ts
|
|
47751
47751
|
function formatRelativeAgo(iso) {
|