osborn 0.9.103 → 0.9.105
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/claude-llm.js +11 -0
- package/dist/index.js +7 -2
- package/package.json +1 -1
package/dist/claude-llm.js
CHANGED
|
@@ -990,6 +990,17 @@ class ClaudeLLMStream extends llm.LLMStream {
|
|
|
990
990
|
loadAllSkills(this.#opts.sessionBaseDir || this.#opts.workingDirectory || process.cwd()),
|
|
991
991
|
].filter(Boolean).join('\n\n'),
|
|
992
992
|
canUseTool: async (toolName, input, _options) => {
|
|
993
|
+
// Auto-approve Bash calls to the agent's OWN local API (/canvas,
|
|
994
|
+
// /tts) — how the agent SPEAKS into a meeting. A spoken reply must
|
|
995
|
+
// never wait on a permission dialog. Localhost-only, own endpoints
|
|
996
|
+
// only, no shell chaining — not a general curl allowance.
|
|
997
|
+
if (toolName === 'Bash') {
|
|
998
|
+
const cmd = String(input?.command || '');
|
|
999
|
+
if (/^\s*curl\b[^;&|]*https?:\/\/(localhost|127\.0\.0\.1):\d+\/(canvas|tts)\b/.test(cmd) && !/[;&|]/.test(cmd)) {
|
|
1000
|
+
console.log(`✅ Auto-approved Bash → own API (canvas/tts speak path)`);
|
|
1001
|
+
return { behavior: 'allow', updatedInput: input };
|
|
1002
|
+
}
|
|
1003
|
+
}
|
|
993
1004
|
// Auto-approve writes to session workspace (but block spec.md and library/ — fast brain manages those)
|
|
994
1005
|
if (toolName === 'Write' || toolName === 'Edit') {
|
|
995
1006
|
const filePath = String(input?.file_path || '');
|
package/dist/index.js
CHANGED
|
@@ -1797,8 +1797,13 @@ async function main() {
|
|
|
1797
1797
|
// the agent replies out loud into the meeting. This is the chat-mode path:
|
|
1798
1798
|
// named/asked → prompt response. Un-addressed chunks stay in the silent
|
|
1799
1799
|
// 20s batch for note-taking. That's the two-mode seam, mechanically.
|
|
1800
|
-
|
|
1801
|
-
|
|
1800
|
+
// Fuzzy name match: meeting STT routinely mangles "Osborn" — observed
|
|
1801
|
+
// live 2026-08-01: "Osborn can you hear me" → "i was born can you hear
|
|
1802
|
+
// me" (name trigger missed, bot stayed silent). Accept common
|
|
1803
|
+
// mis-transcriptions; mild false-positive risk is acceptable in a
|
|
1804
|
+
// room that invited the bot.
|
|
1805
|
+
if (/\b(osborne?|oz\s?born|os\s?born|was born|is born|ozborn|osbourne?|austin\b.{0,8}(hear|there|can you))/i.test(text)) {
|
|
1806
|
+
console.log('📓 Addressed by name (fuzzy) — immediate flush for a response');
|
|
1802
1807
|
flushMeetingBuffer(botId, true);
|
|
1803
1808
|
}
|
|
1804
1809
|
}
|