@agent-native/core 0.94.0 → 0.94.2
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/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +12 -0
- package/corpus/core/docs/content/cloneable-saas.mdx +15 -15
- package/corpus/core/docs/content/creating-templates.mdx +1 -1
- package/corpus/core/docs/content/extensions.mdx +1 -1
- package/corpus/core/docs/content/local-file-mode.mdx +6 -6
- package/corpus/core/docs/content/locales/ar-SA/voice-input.mdx +2 -2
- package/corpus/core/docs/content/locales/de-DE/voice-input.mdx +2 -2
- package/corpus/core/docs/content/locales/es-ES/voice-input.mdx +2 -2
- package/corpus/core/docs/content/locales/fr-FR/voice-input.mdx +2 -2
- package/corpus/core/docs/content/locales/hi-IN/voice-input.mdx +2 -2
- package/corpus/core/docs/content/locales/ja-JP/voice-input.mdx +2 -2
- package/corpus/core/docs/content/locales/ko-KR/voice-input.mdx +2 -2
- package/corpus/core/docs/content/locales/pt-BR/voice-input.mdx +2 -2
- package/corpus/core/docs/content/locales/zh-CN/voice-input.mdx +2 -2
- package/corpus/core/docs/content/locales/zh-TW/voice-input.mdx +2 -2
- package/corpus/core/docs/content/sharing.mdx +4 -4
- package/corpus/core/docs/content/template-analytics.mdx +2 -2
- package/corpus/core/docs/content/template-calendar.mdx +4 -4
- package/corpus/core/docs/content/template-clips.mdx +2 -2
- package/corpus/core/docs/content/template-content.mdx +12 -11
- package/corpus/core/docs/content/template-mail.mdx +1 -1
- package/corpus/core/docs/content/template-slides.mdx +2 -2
- package/corpus/core/docs/content/voice-input.mdx +2 -2
- package/corpus/core/docs/content/workspace.mdx +1 -1
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/client/AssistantChat.tsx +75 -1
- package/corpus/core/src/client/MultiTabAssistantChat.tsx +19 -1
- package/corpus/core/src/client/agent-chat.ts +6 -0
- package/corpus/core/src/client/composer/RealtimeVoiceMode.tsx +72 -2
- package/corpus/core/src/client/composer/realtime-voice-audio-level.ts +64 -0
- package/corpus/core/src/client/composer/realtime-voice-transcript.ts +134 -0
- package/corpus/core/src/client/composer/useRealtimeVoiceMode.tsx +220 -6
- package/corpus/core/src/client/use-chat-threads.ts +33 -9
- package/corpus/core/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +11 -5
- package/corpus/templates/clips/app/components/player/comments-panel.tsx +98 -1
- package/corpus/templates/clips/changelog/2026-07-10-comment-urls-open-as-clickable-links.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-10-desktop-recording-uploads-now-show-a-brief-uploaded-state-wi.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-10-desktop-recordings-now-retry-saving-their-locally-captured-t.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-10-desktop-update-prompts-are-more-compact-and-easier-to-dismiss.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-10-quiet-recordings-now-finish-saving-instead-of-getting-stuck.md +6 -0
- package/corpus/templates/clips/desktop/src/components/UpdateBanner.tsx +7 -4
- package/corpus/templates/clips/desktop/src/lib/recorder.ts +284 -85
- package/corpus/templates/clips/desktop/src/overlays/finalizing.tsx +148 -40
- package/corpus/templates/clips/desktop/src/overlays/meeting-notification.tsx +13 -13
- package/corpus/templates/clips/desktop/src/styles.css +83 -13
- package/corpus/templates/clips/desktop/src-tauri/src/clips/mod.rs +43 -28
- package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +130 -65
- package/corpus/templates/clips/desktop/src-tauri/src/notifications.rs +10 -4
- package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/chunk.post.ts +82 -1
- package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/reset-chunks.post.ts +82 -1
- package/dist/client/AssistantChat.d.ts +6 -0
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +57 -1
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +9 -0
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/agent-chat.d.ts +6 -0
- package/dist/client/agent-chat.d.ts.map +1 -1
- package/dist/client/agent-chat.js.map +1 -1
- package/dist/client/composer/RealtimeVoiceMode.d.ts +3 -1
- package/dist/client/composer/RealtimeVoiceMode.d.ts.map +1 -1
- package/dist/client/composer/RealtimeVoiceMode.js +32 -3
- package/dist/client/composer/RealtimeVoiceMode.js.map +1 -1
- package/dist/client/composer/realtime-voice-audio-level.d.ts +14 -0
- package/dist/client/composer/realtime-voice-audio-level.d.ts.map +1 -0
- package/dist/client/composer/realtime-voice-audio-level.js +47 -0
- package/dist/client/composer/realtime-voice-audio-level.js.map +1 -0
- package/dist/client/composer/realtime-voice-transcript.d.ts +26 -0
- package/dist/client/composer/realtime-voice-transcript.d.ts.map +1 -0
- package/dist/client/composer/realtime-voice-transcript.js +103 -0
- package/dist/client/composer/realtime-voice-transcript.js.map +1 -0
- package/dist/client/composer/useRealtimeVoiceMode.d.ts +14 -0
- package/dist/client/composer/useRealtimeVoiceMode.d.ts.map +1 -1
- package/dist/client/composer/useRealtimeVoiceMode.js +177 -6
- package/dist/client/composer/useRealtimeVoiceMode.js.map +1 -1
- package/dist/client/use-chat-threads.d.ts.map +1 -1
- package/dist/client/use-chat-threads.js +26 -6
- package/dist/client/use-chat-threads.js.map +1 -1
- package/dist/provider-api/corpus-jobs.d.ts +2 -2
- package/dist/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +11 -5
- package/docs/content/cloneable-saas.mdx +15 -15
- package/docs/content/creating-templates.mdx +1 -1
- package/docs/content/extensions.mdx +1 -1
- package/docs/content/local-file-mode.mdx +6 -6
- package/docs/content/locales/ar-SA/voice-input.mdx +2 -2
- package/docs/content/locales/de-DE/voice-input.mdx +2 -2
- package/docs/content/locales/es-ES/voice-input.mdx +2 -2
- package/docs/content/locales/fr-FR/voice-input.mdx +2 -2
- package/docs/content/locales/hi-IN/voice-input.mdx +2 -2
- package/docs/content/locales/ja-JP/voice-input.mdx +2 -2
- package/docs/content/locales/ko-KR/voice-input.mdx +2 -2
- package/docs/content/locales/pt-BR/voice-input.mdx +2 -2
- package/docs/content/locales/zh-CN/voice-input.mdx +2 -2
- package/docs/content/locales/zh-TW/voice-input.mdx +2 -2
- package/docs/content/sharing.mdx +4 -4
- package/docs/content/template-analytics.mdx +2 -2
- package/docs/content/template-calendar.mdx +4 -4
- package/docs/content/template-clips.mdx +2 -2
- package/docs/content/template-content.mdx +12 -11
- package/docs/content/template-mail.mdx +1 -1
- package/docs/content/template-slides.mdx +2 -2
- package/docs/content/voice-input.mdx +2 -2
- package/docs/content/workspace.mdx +1 -1
- package/package.json +1 -1
- package/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +11 -5
|
@@ -11,9 +11,9 @@ description: "एजेंट चैट कंपोजर में वॉय
|
|
|
11
11
|
|
|
12
12
|
## रीयलटाइम स्पीच मोड {#realtime-speech-mode}
|
|
13
13
|
|
|
14
|
-
माइक्रोफ़ोन खोलने पर एक पॉपओवर आपको **रीयलटाइम बातचीत** और **संपादन योग्य डिक्टेशन** में से चुनने देता है। रीयलटाइम मोड के लिए उपयोगकर्ता के दायरे वाली `OPENAI_API_KEY` चाहिए और यह WebRTC के ज़रिए ब्राउज़र को `gpt-realtime-2.1` से जोड़ता है। चैट नीचे दाईं ओर एक वॉइस ऑर्ब में सिमट जाती है; बातचीत समाप्त किए बिना चैट दिखाने या छिपाने के लिए ऑर्ब पर क्लिक करें।
|
|
14
|
+
माइक्रोफ़ोन खोलने पर एक पॉपओवर आपको **रीयलटाइम बातचीत** और **संपादन योग्य डिक्टेशन** में से चुनने देता है। रीयलटाइम मोड के लिए उपयोगकर्ता के दायरे वाली `OPENAI_API_KEY` चाहिए और यह WebRTC के ज़रिए ब्राउज़र को `gpt-realtime-2.1` से जोड़ता है। चैट नीचे दाईं ओर एक वॉइस ऑर्ब में सिमट जाती है; बातचीत समाप्त किए बिना चैट दिखाने या छिपाने के लिए ऑर्ब पर क्लिक करें। चैट अपने-आप खुलने पर भी ऑर्ब उसके ऊपर दिखाई देता रहता है, और एक छोटा वेवफ़ॉर्म आपकी तथा सहायक की आवाज़ की गतिविधि दिखाता है।
|
|
15
15
|
|
|
16
|
-
स्पीच मॉडल चैट वाले उन्हीं प्रमाणीकृत Agent Native टूल का उपयोग करता है, इसलिए वह बोलते समय ऐप में नेविगेट कर सकता है और कार्रवाइयाँ चला सकता है। जिन कार्रवाइयों के लिए स्वीकृति चाहिए, वे आपकी स्वीकृति मिलने तक रुकी रहती हैं।
|
|
16
|
+
स्पीच मॉडल चैट वाले उन्हीं प्रमाणीकृत Agent Native टूल का उपयोग करता है, इसलिए वह बोलते समय ऐप में नेविगेट कर सकता है और कार्रवाइयाँ चला सकता है। जिन कार्रवाइयों के लिए स्वीकृति चाहिए, वे आपकी स्वीकृति मिलने तक रुकी रहती हैं। केवल उपयोगकर्ता और सहायक के पूरे हुए टेक्स्ट कथन मूल चैट थ्रेड में जोड़े जाते हैं। वॉइस मोड बंद करने पर चैट खुल जाती है ताकि आप टेक्स्ट में आगे बढ़ सकें; ऑडियो या अंतरिम ट्रांसक्रिप्ट अंश सहेजे नहीं जाते। एक रीयलटाइम सत्र अधिकतम 60 मिनट तक चलता है।
|
|
17
17
|
|
|
18
18
|
## यह कैसे काम करता है {#how-it-works}
|
|
19
19
|
|
|
@@ -11,9 +11,9 @@ description: "エージェント チャット コンポーザーでの音声デ
|
|
|
11
11
|
|
|
12
12
|
## リアルタイム音声モード {#realtime-speech-mode}
|
|
13
13
|
|
|
14
|
-
マイクを開くと、ポップオーバーで**リアルタイム音声会話**と**編集可能な音声入力**のどちらかを選べます。リアルタイムモードにはユーザー単位の `OPENAI_API_KEY` が必要で、ブラウザから WebRTC 経由で `gpt-realtime-2.1`
|
|
14
|
+
マイクを開くと、ポップオーバーで**リアルタイム音声会話**と**編集可能な音声入力**のどちらかを選べます。リアルタイムモードにはユーザー単位の `OPENAI_API_KEY` が必要で、ブラウザから WebRTC 経由で `gpt-realtime-2.1` に接続します。チャットは右下の音声オーブに折りたたまれます。オーブをクリックすると、会話を終了せずにチャットの表示と非表示を切り替えられます。チャットが自動的に開いた場合もオーブはその上に表示され続け、コンパクトな波形がユーザーとアシスタント双方の音声に反応します。
|
|
15
15
|
|
|
16
|
-
音声モデルはチャットと同じ認証済みの Agent Native
|
|
16
|
+
音声モデルはチャットと同じ認証済みの Agent Native ツールを使用するため、話しながらアプリ内を移動したりアクションを呼び出したりできます。承認が必要なアクションは、承認するまで一時停止したままです。完了したユーザーとアシスタントの発話テキストだけが開始時のチャットスレッドに追加されます。音声モードを終了するとチャットが開き、テキストで続けられます。音声や途中の文字起こしは保存されません。リアルタイムセッションの上限は 60 分です。
|
|
17
17
|
|
|
18
18
|
## 仕組み {#how-it-works}
|
|
19
19
|
|
|
@@ -11,9 +11,9 @@ description: "에이전트 채팅 작성기의 음성 받아쓰기 — Builder G
|
|
|
11
11
|
|
|
12
12
|
## 실시간 음성 모드 {#realtime-speech-mode}
|
|
13
13
|
|
|
14
|
-
마이크를 열면 팝오버에서 **실시간 음성 대화**와 **편집 가능한 받아쓰기** 중 하나를 선택할 수 있습니다. 실시간 모드에는 사용자 범위의 `OPENAI_API_KEY`가 필요하며, WebRTC를 통해 브라우저를 `gpt-realtime-2.1`에 연결합니다. 채팅은 오른쪽 아래의 음성 오브로 접힙니다. 오브를 클릭하면 대화를 끝내지 않고 채팅을 표시하거나 숨길 수 있습니다.
|
|
14
|
+
마이크를 열면 팝오버에서 **실시간 음성 대화**와 **편집 가능한 받아쓰기** 중 하나를 선택할 수 있습니다. 실시간 모드에는 사용자 범위의 `OPENAI_API_KEY`가 필요하며, WebRTC를 통해 브라우저를 `gpt-realtime-2.1`에 연결합니다. 채팅은 오른쪽 아래의 음성 오브로 접힙니다. 오브를 클릭하면 대화를 끝내지 않고 채팅을 표시하거나 숨길 수 있습니다. 채팅이 자동으로 열려도 오브는 채팅 위에 계속 표시되며, 작은 파형이 사용자와 어시스턴트의 실제 음성 활동에 반응합니다.
|
|
15
15
|
|
|
16
|
-
음성 모델은 채팅과 동일한 인증된 Agent Native 도구를 사용하므로 말하는 동안 앱을 탐색하고 작업을 호출할 수 있습니다. 승인이 필요한 작업은 사용자가 승인할 때까지 일시 중지된 상태로 유지됩니다.
|
|
16
|
+
음성 모델은 채팅과 동일한 인증된 Agent Native 도구를 사용하므로 말하는 동안 앱을 탐색하고 작업을 호출할 수 있습니다. 승인이 필요한 작업은 사용자가 승인할 때까지 일시 중지된 상태로 유지됩니다. 완료된 사용자 및 어시스턴트 발화 텍스트만 처음 시작한 채팅 스레드에 추가됩니다. 음성 모드를 종료하면 채팅이 열려 텍스트로 이어갈 수 있으며, 오디오나 임시 전사 조각은 저장되지 않습니다. 실시간 세션은 최대 60분 동안 지속됩니다.
|
|
17
17
|
|
|
18
18
|
## 작동 방식 {#how-it-works}
|
|
19
19
|
|
|
@@ -11,9 +11,9 @@ A estrutura lida com tudo isso automaticamente. Os usuários conectados ao Build
|
|
|
11
11
|
|
|
12
12
|
## Modo de voz em tempo real {#realtime-speech-mode}
|
|
13
13
|
|
|
14
|
-
Ao abrir o microfone, um popover permite escolher entre **Conversa em tempo real** e **Ditado editável**. O modo em tempo real exige uma `OPENAI_API_KEY` no escopo do usuário e conecta o navegador ao `gpt-realtime-2.1` por WebRTC. O chat se recolhe em uma esfera de voz no canto inferior direito; clique nela para mostrar ou ocultar o chat sem encerrar a conversa.
|
|
14
|
+
Ao abrir o microfone, um popover permite escolher entre **Conversa em tempo real** e **Ditado editável**. O modo em tempo real exige uma `OPENAI_API_KEY` no escopo do usuário e conecta o navegador ao `gpt-realtime-2.1` por WebRTC. O chat se recolhe em uma esfera de voz no canto inferior direito; clique nela para mostrar ou ocultar o chat sem encerrar a conversa. A esfera permanece visível sobre o chat mesmo quando ele abre automaticamente, e uma forma de onda compacta reage à sua voz e à voz do assistente.
|
|
15
15
|
|
|
16
|
-
O modelo de voz usa as mesmas ferramentas autenticadas do Agent Native que o chat, portanto pode navegar pelo aplicativo e chamar ações enquanto fala. Ações que exigem aprovação permanecem pausadas até você aprová-las.
|
|
16
|
+
O modelo de voz usa as mesmas ferramentas autenticadas do Agent Native que o chat, portanto pode navegar pelo aplicativo e chamar ações enquanto fala. Ações que exigem aprovação permanecem pausadas até você aprová-las. Somente as falas de texto concluídas do usuário e do assistente são adicionadas à conversa original. Ao encerrar o modo de voz, o chat é aberto para você continuar por texto; o áudio e os trechos provisórios da transcrição não são armazenados. Uma sessão em tempo real dura no máximo 60 minutos.
|
|
17
17
|
|
|
18
18
|
## Como funciona {#how-it-works}
|
|
19
19
|
|
|
@@ -11,9 +11,9 @@ description: "代理聊天编辑器中的语音听写 - Builder Gemini、BYOK
|
|
|
11
11
|
|
|
12
12
|
## 实时语音模式 {#realtime-speech-mode}
|
|
13
13
|
|
|
14
|
-
打开麦克风后,弹出菜单让你在**实时语音对话**和**可编辑听写**之间选择。实时模式需要用户范围的 `OPENAI_API_KEY`,并通过 WebRTC 将浏览器连接到 `gpt-realtime-2.1
|
|
14
|
+
打开麦克风后,弹出菜单让你在**实时语音对话**和**可编辑听写**之间选择。实时模式需要用户范围的 `OPENAI_API_KEY`,并通过 WebRTC 将浏览器连接到 `gpt-realtime-2.1`。聊天会收起为右下角的语音球;点击语音球即可显示或隐藏聊天,而不会结束对话。即使聊天自动打开,语音球也会保持显示在聊天上方;紧凑的波形会实时响应你和助手的声音。
|
|
15
15
|
|
|
16
|
-
语音模型使用与聊天相同的、经过身份验证的 Agent Native
|
|
16
|
+
语音模型使用与聊天相同的、经过身份验证的 Agent Native 工具,因此可以一边说话,一边在应用中导航和调用操作。需要审批的操作会保持暂停,直到你批准为止。只有用户和助手已经完成的文本话语会追加到开始语音时的聊天线程。结束语音模式后,聊天会自动打开,方便你继续输入文字;音频和临时转录片段都不会保存。实时会话最长可持续 60 分钟。
|
|
17
17
|
|
|
18
18
|
## 它是如何工作的 {#how-it-works}
|
|
19
19
|
|
|
@@ -11,9 +11,9 @@ description: "代理聊天編輯器中的語音聽寫 - Builder Gemini、BYOK
|
|
|
11
11
|
|
|
12
12
|
## 即時語音模式 {#realtime-speech-mode}
|
|
13
13
|
|
|
14
|
-
開啟麥克風後,彈出式選單會讓您在**即時語音對話**和**可編輯聽寫**之間選擇。即時模式需要使用者範圍的 `OPENAI_API_KEY`,並透過 WebRTC 將瀏覽器連線到 `gpt-realtime-2.1
|
|
14
|
+
開啟麥克風後,彈出式選單會讓您在**即時語音對話**和**可編輯聽寫**之間選擇。即時模式需要使用者範圍的 `OPENAI_API_KEY`,並透過 WebRTC 將瀏覽器連線到 `gpt-realtime-2.1`。聊天會收合為右下角的語音球;點選語音球即可顯示或隱藏聊天,而不會結束對話。即使聊天自動開啟,語音球也會持續顯示在聊天上方;精簡的波形會即時回應您和助理的聲音。
|
|
15
15
|
|
|
16
|
-
語音模型使用與聊天相同且經過驗證的 Agent Native
|
|
16
|
+
語音模型使用與聊天相同且經過驗證的 Agent Native 工具,因此可以一邊說話,一邊在應用程式中導覽和呼叫動作。需要核准的動作會維持暫停,直到您核准為止。只有使用者和助理已完成的文字發言會附加到開始語音時的聊天討論串。結束語音模式後,聊天會自動開啟,方便您繼續輸入文字;音訊和暫時的轉錄片段都不會儲存。即時工作階段最長可持續 60 分鐘。
|
|
17
17
|
|
|
18
18
|
## 它是如何工作的 {#how-it-works}
|
|
19
19
|
|
package/docs/content/sharing.mdx
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Sharing & Privacy"
|
|
3
|
-
description: "
|
|
3
|
+
description: "Google-Docs-style sharing, built into the framework. Every user-created resource — docs, dashboards, designs, decks, clips, recordings, forms — gets the same private-by-default model with one consistent share UI."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Sharing & Privacy
|
|
7
7
|
|
|
8
8
|
Every resource a user creates in an agent-native app — a document, a dashboard, a design, a deck, a screen recording, a meeting transcript, a form, a booking link — is **private to the creator by default**. Other people see it only when the creator explicitly shares it, or changes its visibility to `org` or `public`.
|
|
9
9
|
|
|
10
|
-
It
|
|
10
|
+
It looks and works like Google Docs. The same share button, the same dialog, the same three-tier visibility model, the same per-user/per-org grants — across every template, with no per-app reinvention.
|
|
11
11
|
|
|
12
12
|
## Why one model {#why}
|
|
13
13
|
|
|
@@ -92,7 +92,7 @@ Every template that stores user-authored work uses this model. Concretely:
|
|
|
92
92
|
- **Content** — documents
|
|
93
93
|
- **Slides** — decks
|
|
94
94
|
- **Design** — designs and assets
|
|
95
|
-
- **Clips** — screen recordings
|
|
95
|
+
- **Clips** — screen recordings (Loom-style)
|
|
96
96
|
- **Plan** — visual plans and PR recaps
|
|
97
97
|
- **Forms** — form definitions
|
|
98
98
|
- **Calendar** — events and booking links
|
|
@@ -115,7 +115,7 @@ Every shareable resource gets a share button in its header. Clicking it opens a
|
|
|
115
115
|
|
|
116
116
|
- Visibility selector (`Private` / `Organization` / `Public link`).
|
|
117
117
|
- "Add people or teams" autocomplete — search users in the org or paste an email.
|
|
118
|
-
- A `Notify people` checkbox for individual email grants.
|
|
118
|
+
- A Google Docs-style `Notify people` checkbox for individual email grants.
|
|
119
119
|
- A list of current grants with role pickers and a remove control.
|
|
120
120
|
- A copy-link button that respects the current visibility.
|
|
121
121
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Analytics"
|
|
3
|
-
description: "Ask analytics questions in plain English, get charts and dashboards back —
|
|
3
|
+
description: "Ask analytics questions in plain English, get charts and dashboards back — an open-source replacement for Amplitude, Mixpanel, and Looker that connects your own warehouse and event sources."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Analytics
|
|
@@ -16,7 +16,7 @@ Ask analytics questions in plain English, get charts and dashboards back. The ag
|
|
|
16
16
|
/>
|
|
17
17
|
</WireframeBlock>
|
|
18
18
|
|
|
19
|
-
It's an open-source
|
|
19
|
+
It's an open-source replacement for Amplitude, Mixpanel, and Looker — for teams that want to own the code, the queries, and the data.
|
|
20
20
|
|
|
21
21
|
<Diagram id="doc-block-9n9ub7" title="Question to chart" summary="The agent consults the data dictionary, writes SQL, validates it against the warehouse, then renders a chart or saves a panel.">
|
|
22
22
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Calendar"
|
|
3
|
-
description: "An agent-powered calendar with Google Calendar sync and
|
|
3
|
+
description: "An agent-powered calendar with Google Calendar sync and Calendly-style booking links. Schedule, find slots, and manage availability through plain English."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Calendar
|
|
7
7
|
|
|
8
|
-
An agent-powered calendar app. Connect your Google Calendar and the agent can read your schedule, find free slots, create events, and manage
|
|
8
|
+
An agent-powered calendar app. Connect your Google Calendar and the agent can read your schedule, find free slots, create events, and manage Calendly-style booking links — all in plain English. It replaces the Google Calendar + Calendly combo with one app you own.
|
|
9
9
|
|
|
10
10
|
<WireframeBlock id="doc-block-6wsrao">
|
|
11
11
|
<Screen
|
|
@@ -167,7 +167,7 @@ Under the hood the agent calls actions like `list-events`, `check-availability`,
|
|
|
167
167
|
Defined in `templates/calendar/server/db/schema.ts`. Only non-event data is stored locally:
|
|
168
168
|
|
|
169
169
|
- `bookings` — confirmed appointments from public booking pages. Stores name, email, start, end, slug, optional notes, custom field responses, meeting link, a `cancelToken` for the public manage URL, and a `confirmed` or `cancelled` status.
|
|
170
|
-
- `booking_links` — the
|
|
170
|
+
- `booking_links` — the Calendly-style link definitions. Slug, title, description, primary `duration`, optional `durations` list, `customFields`, `conferencing`, `color`, and an `isActive` flag. Uses the framework's `ownableColumns` so the sharing system applies.
|
|
171
171
|
- `booking_slug_redirects` — remembers old slugs when a link is renamed so existing public URLs keep working.
|
|
172
172
|
- `booking_link_shares` — share grants for booking links.
|
|
173
173
|
|
|
@@ -181,7 +181,7 @@ Defined in `templates/calendar/server/db/schema.ts`. Only non-event data is stor
|
|
|
181
181
|
{
|
|
182
182
|
id: "booking_links",
|
|
183
183
|
name: "booking_links",
|
|
184
|
-
note: "
|
|
184
|
+
note: "Calendly-style link definitions (ownable)",
|
|
185
185
|
fields: [
|
|
186
186
|
{
|
|
187
187
|
name: "id",
|
|
@@ -17,7 +17,7 @@ A capture-everything app: screen recordings, meeting notes from your calendar, a
|
|
|
17
17
|
/>
|
|
18
18
|
</WireframeBlock>
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
Think along the lines of Loom + Granola + Wispr Flow rolled into one app: async screen recordings, calendar-synced meeting notes, and push-to-talk voice dictation — but the agent is a first-class editor across every surface, and the recordings, meetings, and dictations are yours, not a SaaS vendor's. Clips also makes shared recordings agent-readable: paste a public Clips share link or a temporary **Copy for agent** link into an agent and it can "hear" the transcript as text and "see" timestamped screen frames as images — no raw video needed. Frame-viewing works in any image-capable agent (ChatGPT, Claude Code, Cursor, Codex); text-only web chats still get the full transcript and can take a frame you upload.
|
|
21
21
|
|
|
22
22
|
<Diagram id="doc-block-pqnd4p" title="Capture, transcribe, reuse" summary={"Three capture types land in one library; the agent transcribes, titles, and summarizes, then every transcript is searchable and shareable."}>
|
|
23
23
|
|
|
@@ -85,7 +85,7 @@ Async screen recordings, calendar-synced meeting notes, and push-to-talk voice d
|
|
|
85
85
|
- **Get an auto-generated title, summary, and chapter markers** for every recording — the agent fills them in and keeps them current.
|
|
86
86
|
- **Search across every transcript** — screen recordings, meetings, and dictations all in one library. "Find the clip where we discussed the rollout plan."
|
|
87
87
|
- **Share clips** with per-clip permissions (public, team, private). Link tracking and threaded comments work too.
|
|
88
|
-
- **Preview public clips in Slack** with a playable
|
|
88
|
+
- **Preview public clips in Slack** with a Loom-style playable unfurl after the
|
|
89
89
|
workspace installs your Clips Slack app.
|
|
90
90
|
- **Capture browser logs with the Chrome extension.** Browser recordings can
|
|
91
91
|
attach redacted console logs and fetch/XHR metadata, which is helpful for
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Content"
|
|
3
|
-
description: "
|
|
3
|
+
description: "Open-source Obsidian for MDX: edit local Markdown/MDX files, generate rich interactive custom blocks, and write with an AI agent."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Content
|
|
7
7
|
|
|
8
|
-
Content is a local-file-friendly document
|
|
9
|
-
write, reorganize, and publish pages for
|
|
10
|
-
paragraph to be more concise" or "create a
|
|
11
|
-
sub-pages for Goals, Metrics, and Risks" - same
|
|
12
|
-
yourself or ask.
|
|
8
|
+
Content is open-source Obsidian for MDX: a local-file-friendly document
|
|
9
|
+
workspace where the agent can read, write, reorganize, and publish pages for
|
|
10
|
+
you. Open a doc, ask "rewrite this paragraph to be more concise" or "create a
|
|
11
|
+
page called Q4 Planning with sub-pages for Goals, Metrics, and Risks" - same
|
|
12
|
+
result whether you do it yourself or ask.
|
|
13
13
|
|
|
14
14
|
<WireframeBlock id="doc-block-1i1ubpx">
|
|
15
15
|
<Screen
|
|
@@ -90,7 +90,7 @@ When you open the app, you'll see a page tree next to the editor. The agent alwa
|
|
|
90
90
|
- **Write rich text** with headings, lists, tables, code blocks, images, and links. Slash commands (`/`) insert blocks; selecting text pops up a formatting toolbar.
|
|
91
91
|
- **Organize pages in a tree** — nest infinitely, drag to reorder, favorite pages you use often.
|
|
92
92
|
- **Search across everything** with full-text search across titles and content.
|
|
93
|
-
- **Edit local Markdown/MDX files
|
|
93
|
+
- **Edit local Markdown/MDX files like Obsidian.** Use the `/local-files` view
|
|
94
94
|
to export your workspace to files, edit them in your own tools, preview
|
|
95
95
|
changes, and import them back. In Local File Mode, Content writes straight to
|
|
96
96
|
the selected `.md` or `.mdx` file.
|
|
@@ -119,8 +119,9 @@ Select text and hit Cmd+I to focus the agent with that selection pre-loaded —
|
|
|
119
119
|
## Local Markdown/MDX files {#local-files}
|
|
120
120
|
|
|
121
121
|
Content can round-trip documents through local files without cloning or running
|
|
122
|
-
the Content app locally.
|
|
123
|
-
app gives you a rich editor, agent actions,
|
|
122
|
+
the Content app locally. It feels like Obsidian for MDX: files stay inspectable
|
|
123
|
+
and editable on disk, while the app gives you a rich editor, agent actions,
|
|
124
|
+
sharing, and custom blocks. Open
|
|
124
125
|
`/local-files`, choose a folder in your browser or Agent Native Desktop, and
|
|
125
126
|
export the current document tree as Markdown/MDX under `content/`.
|
|
126
127
|
|
|
@@ -141,7 +142,7 @@ truth instead of SQL documents. Add `agent-native.json` to a repo, set
|
|
|
141
142
|
`content/`, and `resources/`. The standard Content editor then populates its
|
|
142
143
|
left sidebar from those local `.md`/`.mdx` files and writes edits back to the
|
|
143
144
|
selected file through the normal document actions. Use this for repo-first docs,
|
|
144
|
-
blogs, resource libraries, or
|
|
145
|
+
blogs, resource libraries, or an Obsidian-style personal MDX-powered notes vault; switch back to
|
|
145
146
|
database mode when you want hosted collaboration and SQL-backed sharing. See [Local File Mode](/docs/local-file-mode) for the
|
|
146
147
|
standalone repo layout, configuration, custom MDX components, local
|
|
147
148
|
`extensions/` widgets, and production safety guide.
|
|
@@ -218,7 +219,7 @@ Local file workspaces can also provide repo-local React components through the
|
|
|
218
219
|
configured `components` folder. The Content dev server imports PascalCase
|
|
219
220
|
exports from those files, renders matching MDX tags such as `<ImpactCounter />`
|
|
220
221
|
inside the editor, and exposes them in the slash menu under Local components.
|
|
221
|
-
This is the
|
|
222
|
+
This is the "Obsidian for MDX" layer: custom MDX blocks stay local to the
|
|
222
223
|
workspace, but the editor can render them and the agent can generate or update
|
|
223
224
|
their source without cloning the Content app. A minimal workspace component can
|
|
224
225
|
be:
|
|
@@ -5,7 +5,7 @@ description: "An agent-powered email client. Connect your Gmail and the agent ca
|
|
|
5
5
|
|
|
6
6
|
# Mail
|
|
7
7
|
|
|
8
|
-
An agent-powered email client. Connect your Gmail account and the agent can read, draft, send, and organize email for you — alongside a fast, keyboard-first inbox you can drive yourself,
|
|
8
|
+
An agent-powered email client. Connect your Gmail account and the agent can read, draft, send, and organize email for you — alongside a fast, keyboard-first inbox you can drive yourself. Think Superhuman, but the agent is a first-class citizen and the codebase is yours to own.
|
|
9
9
|
|
|
10
10
|
<WireframeBlock id="doc-block-ofadgy">
|
|
11
11
|
<Screen
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Slides"
|
|
3
|
-
description: "Generate decks from a prompt, edit visually, and present full-screen — an open-source
|
|
3
|
+
description: "Generate decks from a prompt, edit visually, and present full-screen — an open-source replacement for Google Slides, Pitch, and PowerPoint, with import/export, design systems, and real-time collaboration built in."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Slides
|
|
7
7
|
|
|
8
|
-
Generate full presentation decks from a prompt, edit slides visually, and present full-screen. Ask the agent for "a 10-slide pitch deck for a coffee subscription service" and watch it stream slide-by-slide into the editor in seconds. It's an open-source deck editor you own end to end
|
|
8
|
+
Generate full presentation decks from a prompt, edit slides visually, and present full-screen. Ask the agent for "a 10-slide pitch deck for a coffee subscription service" and watch it stream slide-by-slide into the editor in seconds. It's an open-source replacement for Google Slides, Pitch, and PowerPoint — a deck editor you own end to end: generate, import, edit, present, and export without a subscription.
|
|
9
9
|
|
|
10
10
|
<WireframeBlock id="doc-block-eqogw6">
|
|
11
11
|
<Screen
|
|
@@ -125,9 +125,9 @@ You don't need to call this directly — the composer does. If you're building a
|
|
|
125
125
|
|
|
126
126
|
## Realtime speech mode {#realtime-speech-mode}
|
|
127
127
|
|
|
128
|
-
Beyond one-shot dictation, the composer also offers a live, hands-free conversation mode. When the mic opens, a popover lets you choose **Realtime speech** or **Editable dictation**. Realtime speech requires a user-scoped `OPENAI_API_KEY` and connects the browser to `gpt-realtime-2.1` over WebRTC. The chat collapses into a speech orb in the bottom-end corner; click the orb to show or hide chat without ending the conversation.
|
|
128
|
+
Beyond one-shot dictation, the composer also offers a live, hands-free conversation mode. When the mic opens, a popover lets you choose **Realtime speech** or **Editable dictation**. Realtime speech requires a user-scoped `OPENAI_API_KEY` and connects the browser to `gpt-realtime-2.1` over WebRTC. The chat collapses into a speech orb in the bottom-end corner; click the orb to show or hide chat without ending the conversation. The orb stays visible above the chat even if the chat opens automatically, and its compact waveform reacts to your voice and the assistant's voice.
|
|
129
129
|
|
|
130
|
-
The speech model uses the same authenticated Agent Native tools as chat, so it can navigate the app and call actions while it talks. Approval-gated actions remain paused until you approve them.
|
|
130
|
+
The speech model uses the same authenticated Agent Native tools as chat, so it can navigate the app and call actions while it talks. Approval-gated actions remain paused until you approve them. Only completed user and assistant text turns are appended to the original chat thread. Ending voice mode opens that chat so you can continue over text; audio and interim transcript fragments are never stored. A realtime session lasts at most 60 minutes.
|
|
131
131
|
|
|
132
132
|
## Customizing the provider {#customizing}
|
|
133
133
|
|
|
@@ -86,7 +86,7 @@ The twist: **it's SQL rows, not filesystem files.** Each user gets their own wor
|
|
|
86
86
|
| Per-project `CLAUDE.md` / skills | Per-app `AGENTS.md` + workspace memory resources |
|
|
87
87
|
| MCP config in a JSON file | MCP config in JSON _or_ the settings UI, per scope |
|
|
88
88
|
|
|
89
|
-
Same capabilities. Different economics. See [
|
|
89
|
+
Same capabilities. Different economics. See [Templates](/docs/cloneable-saas) for why this matters for SaaS.
|
|
90
90
|
|
|
91
91
|
## Overview {#overview}
|
|
92
92
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-native/core",
|
|
3
|
-
"version": "0.94.
|
|
3
|
+
"version": "0.94.2",
|
|
4
4
|
"description": "Framework for agent-native application development — where AI agents and UI share SQL state, actions, and context",
|
|
5
5
|
"homepage": "https://github.com/BuilderIO/agent-native#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -46,8 +46,11 @@ from the dictation providers below. It requires the authenticated user's
|
|
|
46
46
|
configuration, and keeps the key out of browser code.
|
|
47
47
|
|
|
48
48
|
- Starting voice mode collapses the chat into a persistent bottom-end speech
|
|
49
|
-
orb.
|
|
50
|
-
|
|
49
|
+
orb. The orb stays visible above the chat even when the chat opens
|
|
50
|
+
automatically. Clicking it shows or hides chat without ending the session;
|
|
51
|
+
ending the session is a separate, explicit control.
|
|
52
|
+
- The orb's compact waveform must reflect actual microphone or assistant audio
|
|
53
|
+
activity. It is an audio-level indicator, not a decorative animation.
|
|
51
54
|
- Semantic VAD keeps listening, starts responses automatically, and supports
|
|
52
55
|
barge-in while the agent is speaking.
|
|
53
56
|
- Function calls must cross the authenticated realtime tool bridge and enter
|
|
@@ -57,9 +60,12 @@ configuration, and keeps the key out of browser code.
|
|
|
57
60
|
- Preserve the active browser-tab id in request context so `set-url`,
|
|
58
61
|
`set-search-params`, `view-screen`, and tab-scoped application state affect
|
|
59
62
|
the app the user is actually speaking to.
|
|
60
|
-
- Do not persist audio.
|
|
61
|
-
|
|
62
|
-
session
|
|
63
|
+
- Do not persist audio or interim transcript deltas. Append completed user and
|
|
64
|
+
assistant utterances as ordinary text messages to the exact chat thread
|
|
65
|
+
captured when the session starts. Ending voice mode opens that chat so the
|
|
66
|
+
user can continue over text. Store only compact lifecycle and latest context
|
|
67
|
+
at `application_state["realtime-voice-session"]`; delete it when the session
|
|
68
|
+
ends.
|
|
63
69
|
- Missing-key failures should open Settings focused on the user-scoped
|
|
64
70
|
`OPENAI_API_KEY` field. Never send, log, or echo the key to the browser.
|
|
65
71
|
|