osborn 0.9.98 → 0.9.100
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/.claude/skills/meetings/SKILL.md +40 -0
- package/dist/index.js +4 -0
- package/package.json +1 -1
|
@@ -85,6 +85,46 @@ For every `[MEETING — *]:` message:
|
|
|
85
85
|
3. **Delegate research to the `researcher` sub-agent** via `Task` (background, silent) when a chunk warrants it.
|
|
86
86
|
4. **Don't consume voice-native attention.** The user can interrupt with a voice-native message at any time — that's the only kind that gets spoken responses.
|
|
87
87
|
|
|
88
|
+
## ADDRESSED turns: REPLY FIRST, notes after (latency rule)
|
|
89
|
+
|
|
90
|
+
When a chunk says **`YOU WERE ADDRESSED`**, people in the meeting are WAITING
|
|
91
|
+
for your voice. Measured failure (2026-08-01): notes-writing inside the reply
|
|
92
|
+
turn pushed speech→reply past 30 seconds ("very very delayed").
|
|
93
|
+
|
|
94
|
+
**Mandatory turn shape when addressed:**
|
|
95
|
+
1. **FIRST tool call = the `/canvas say` POST.** One short spoken reply (1–2
|
|
96
|
+
sentences, conversational). Nothing runs before it — no Read, no Edit, no
|
|
97
|
+
transcript pull, no sub-agent.
|
|
98
|
+
2. **THEN** delegate note-taking / research to the writer/researcher
|
|
99
|
+
sub-agents in the background as usual.
|
|
100
|
+
3. If you genuinely need a fact before answering, say a holding line FIRST
|
|
101
|
+
("Good question — one second while I check"), then look it up, then follow
|
|
102
|
+
up with a second `/canvas say`. Never leave the room in silence while you
|
|
103
|
+
work.
|
|
104
|
+
|
|
105
|
+
## Browse requests while CASTING a live stream — drive the ENGINE, not the canvas
|
|
106
|
+
|
|
107
|
+
When the canvas is in **`stream` mode** (bot camera = the live
|
|
108
|
+
browser-screen-recorder feed), requests like "pull up YouTube", "show them the
|
|
109
|
+
site", "navigate to X" mean: **make the STREAMED BROWSER go there.** Do NOT
|
|
110
|
+
flip the canvas to `link`/`web` mode — that silently replaces the live browser
|
|
111
|
+
feed with a static card (observed failure 2026-08-01: "PULLING UP youtube.com"
|
|
112
|
+
card replaced the stream).
|
|
113
|
+
|
|
114
|
+
**Drive the engine** (one Bash call, needs `OSBORN_ENGINE_TOKEN` env):
|
|
115
|
+
```bash
|
|
116
|
+
curl -sS -X POST "https://osborn-voice-e2e.fly.dev:8781/act" \
|
|
117
|
+
-H "x-engine-token: $OSBORN_ENGINE_TOKEN" -H 'Content-Type: application/json' \
|
|
118
|
+
-d '{"instruction":"go to youtube.com"}'
|
|
119
|
+
```
|
|
120
|
+
(Or `/tab {"op":"open","url":"https://youtube.com"}` for a direct open. The
|
|
121
|
+
cast keeps showing a REAL browser doing the thing — that's the product.)
|
|
122
|
+
|
|
123
|
+
If `OSBORN_ENGINE_TOKEN` isn't set, SAY so ("I can't reach the browser engine
|
|
124
|
+
from here — the engine token isn't configured on this machine") instead of
|
|
125
|
+
downgrading the cast. Only use canvas `link`/`web` mode when there is NO
|
|
126
|
+
active stream cast, or the user explicitly asks for a card instead.
|
|
127
|
+
|
|
88
128
|
## How to pull transcripts on demand (Bash + curl)
|
|
89
129
|
|
|
90
130
|
When the user explicitly asks (see triggers above): speak briefly first ("On it"), then **delegate the fetch+parse+write to the `writer` sub-agent** in one `Task` call (the steps below are what you put in the writer's prompt — they're 4+ Bash/Write calls, over your 3-call budget). When the writer finishes, speak the result. The commands below are the recipe the writer runs, not calls you make directly.
|
package/dist/index.js
CHANGED
|
@@ -340,6 +340,10 @@ function startApiServer(workingDir, port) {
|
|
|
340
340
|
status: 'ok',
|
|
341
341
|
workingDir,
|
|
342
342
|
version,
|
|
343
|
+
// WHERE this machine physically runs — Fly sets FLY_REGION (e.g. 'ord').
|
|
344
|
+
// The dashboard maps it to a city ("Chicago") so the user always knows
|
|
345
|
+
// the machine's location, not just their own clock. Null in local dev.
|
|
346
|
+
region: process.env.FLY_REGION || null,
|
|
343
347
|
// LiveKit subsystem status — frontend can use this to surface a real
|
|
344
348
|
// error instead of treating the sandbox as totally broken. The HTTP
|
|
345
349
|
// status code stays 200 so Fly health-check stays green and the
|