pi-straw-boss 0.6.1 → 0.6.3
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 +1 -1
- package/prompts/tower.md +5 -5
- package/src/herdr.ts +4 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-straw-boss",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.3",
|
|
4
4
|
"description": "Straw Boss coordination for pi in Herdr: sessions join a tab's net by choice, the first joiner is its main agent, a workspace tower opens on demand with a live monitoring dashboard, and boss_broadcast reaches the rest",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
package/prompts/tower.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
You are the tower of Herdr workspace {{workspace}}; agents talk to you, the boss does not.
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Agents and towers message you through intercom; answer with intercom send.
|
|
4
4
|
|
|
5
|
-
-
|
|
6
|
-
-
|
|
7
|
-
- Never ask the boss (no ask_user, robot_hand, focus changes); decisions
|
|
8
|
-
- Do no
|
|
5
|
+
- Route each request to the main agent that owns it; when its tab has no main, to the member session doing that work; when no session owns it, back to the sender. Relay with boss_status, call_tower, and boss_broadcast; towers coordinate through the head tower, the tower of workspace {{head}}.
|
|
6
|
+
- Friction reports: find the owner and the broken relationship (registration, endpoint, dependency, shared resource, cleanup); have the owner repair it. Return a Straw Boss defect as a finding with evidence.
|
|
7
|
+
- Never ask the boss (no ask_user, robot_hand, focus changes); boss decisions go to the owning main agent.
|
|
8
|
+
- Do no work yourself: no commands, process signals, or edits; even a one-step fix goes to its owner.
|
package/src/herdr.ts
CHANGED
|
@@ -49,6 +49,9 @@ async function result(run: HerdrRun, args: string[], timeoutMs?: number) {
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
+
// The tower tab is labelled with the Nerd Font lighthouse glyph (md-lighthouse, U+F09FF) alone.
|
|
53
|
+
export const TOWER_LABEL = "\u{f09ff}";
|
|
54
|
+
|
|
52
55
|
export async function place(run: HerdrRun): Promise<Place> {
|
|
53
56
|
const pane = (await result(run, ["pane", "current"])).pane;
|
|
54
57
|
return { paneId: pane.pane_id, tabId: pane.tab_id, workspaceId: pane.workspace_id };
|
|
@@ -137,7 +140,7 @@ async function open({ run, sleep, live, moveFirst }: TowerEnv, workspace: Worksp
|
|
|
137
140
|
await moveFirst(marked.tab_id);
|
|
138
141
|
} else {
|
|
139
142
|
const dir = workspace.worktree?.checkout_path ?? cwd;
|
|
140
|
-
const created = await result(run, ["tab", "create", "--workspace", ws, "--label",
|
|
143
|
+
const created = await result(run, ["tab", "create", "--workspace", ws, "--label", TOWER_LABEL, "--cwd", dir, "--no-focus", "--env", "STRAW_BOSS_ROLE=tower"]);
|
|
141
144
|
paneId = created.root_pane.pane_id;
|
|
142
145
|
// Marked at once, so a tab left without pi is recognised (while the marker lasts) and the label stays display only.
|
|
143
146
|
await report(run, "pane", paneId, { sb_role: "tower" });
|