@rtc-agent/component 0.1.0 → 0.1.1-rc.1

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/README.md ADDED
@@ -0,0 +1,78 @@
1
+ # @rtc-agent/component
2
+
3
+ 基于 Lit 的 Web Component 组件库,提供浮窗式 RTC Agent 交互界面。
4
+
5
+ ## 导出
6
+
7
+ ### 组件
8
+
9
+ - `<rtc-agent>` — 根组件(唯一公开注册的 custom element)
10
+ - 所有子组件均通过 side-effect 导入,在根组件 shadow DOM 内使用
11
+
12
+ ### 类
13
+
14
+ - `RtcAgent` — 根组件 class,可直接 import 用于类型标注
15
+
16
+ ```ts
17
+ import { RtcAgent } from '@rtc-agent/component';
18
+ const agent = document.querySelector<RtcAgent>('rtc-agent')!;
19
+ ```
20
+
21
+ ## 用法
22
+
23
+ ```html
24
+ <script type="module">
25
+ import '@rtc-agent/component';
26
+ </script>
27
+
28
+ <rtc-agent
29
+ theme="system"
30
+ app-label="RTC Agent"
31
+ scenarios-url="./scenarios/"
32
+ ></rtc-agent>
33
+ ```
34
+
35
+ ### 架构
36
+
37
+ RTC Agent 使用 SharedWorker + Comlink 架构实现多 Tab 共享:
38
+
39
+ - 单 WebSocket 连接(SharedWorker 内)
40
+ - 共享 IndexedDB 存储
41
+ - Master Tab 选举(Web Locks API)
42
+
43
+ 详细设计见 [docs/shared-worker-proposal.md](../../docs/shared-worker-proposal.md)。
44
+
45
+ ### 公开属性
46
+
47
+ | 属性 | 类型 | 默认值 | 说明 |
48
+ | --- | --- | --- | --- |
49
+ | `theme` | `'light' \| 'dark' \| 'system'` | `'system'` | 主题 |
50
+ | `app-label` | `string` | `'RTC Agent'` | 标题栏 / 气泡 tooltip 文本 |
51
+ | `bubble-icon` | `string` | `''` | 最小化气泡内的 SVG / HTML |
52
+ | `scenarios-url` | `string` | `''` | Scenario 文档 URL |
53
+ | `agentConfig` | `AgentConfig \| null` | `null` | 声明式函数注册 |
54
+ | `registry` | `FunctionRegistry \| null` | `null` | 命令式函数注册(高级) |
55
+
56
+ ### 公开事件
57
+
58
+ 所有公开事件遵循 `rtc-<domain>-<action>-<past-tense>` 命名模式:
59
+
60
+ - `rtc-agent-ready` — 组件就绪
61
+ - `rtc-session-created` / `rtc-session-switched`
62
+ - `rtc-message-sent`
63
+ - `rtc-auth-login-requested`
64
+ - `rtc-window-minimize` / `rtc-window-maximize` / `rtc-window-restore`
65
+
66
+ ### 控制器访问
67
+
68
+ ```ts
69
+ agent.authController.login();
70
+ agent.authController.logout();
71
+ agent.sessionController.actions.switchSession(id);
72
+ agent.messageController.actions.sendMessage(content);
73
+ agent.skillController.actions.setRegistry(registry);
74
+ ```
75
+
76
+ ## License
77
+
78
+ [MIT](../../LICENSE)
@@ -0,0 +1,186 @@
1
+ import { s as e } from "./index-DMz-HgtY.js";
2
+ const s = {
3
+ s0016a70887124d70: "Session",
4
+ s0116da495c2a975c: "The AI wants to use a tool. Review the details below.",
5
+ s01366f0961abde4c: "Link",
6
+ s03259582cecb7f6f: "Delete failed",
7
+ s035e62088a8f0790: "Save",
8
+ s041e26088b672986: "Theme",
9
+ s0649af088d321069: "Code",
10
+ s072cdcb911e30e5a: "Clear login state and return to login page",
11
+ s09205907b5b56cda: "No",
12
+ s0df0b8096c673ba1: "Preview",
13
+ s0f4f1bba95d2298b: "Claude will ask for your consent before each edit",
14
+ s112886089625cc92: "Refresh",
15
+ s116379089658e1c2: "Split",
16
+ s116b640896bcf4e1: "Delete",
17
+ s116ef308966c6210: "Fork",
18
+ s1240310896b4f8b8: "Bold",
19
+ s12d6dde9b30c3093: "Dismiss",
20
+ s1511980899235644: "About",
21
+ s15a45bb12c36294e: "Settings categories",
22
+ s15e8bb089a90e6bd: "Close",
23
+ s169b937d864e2dd9: "View mode",
24
+ s17cbdcb3d08e1faa: "Choose keyboard shortcut for sending messages",
25
+ s1e3b8c46001e3962: "Session deleted",
26
+ s2046a88742040df7: e`Font size set to ${0}px`,
27
+ s20b474275affc7f0: "Answer a question",
28
+ s2299833f34611b58: e`Redo (Ctrl+Shift+Z)`,
29
+ s239712be1485333a: "Claude automatically performs operations that pass safety checks, pausing for risky ones",
30
+ s23e84510a641ea77: "Auto-save enabled",
31
+ s2603d59558584677: "Authorizing...",
32
+ s28af5a8fabdda335: "Close settings",
33
+ s28bbcff0ca38cbfa: "Play notification sound when receiving messages",
34
+ s294eb06e0e6a9ef9: "Allow this tool call?",
35
+ s2bf07bb911ff2d3d: "Failed to open file",
36
+ s2ceb11be2290bb1b: "Cancel",
37
+ s2f834ec7550c9db3: "File tree",
38
+ s2f94de08af7c2cd1: "Appearance",
39
+ s2fa45d68e8e7c9db: "Choose default display mode for file editor",
40
+ s30189008b07bb70a: "Copy",
41
+ s32a563a1015bfd96: e`Token exchange failed: ${0}`,
42
+ s356dec08b50028d3: "Increase",
43
+ s37cb5b4503fc7e1e: "Next →",
44
+ s385560c07ab56134: e`Answer ${0} questions`,
45
+ s38a3347d83d583d3: "Session tree",
46
+ s3bd3f018e0432f30: "Refresh session list",
47
+ s3c0f26e08b2b5bfe: "Toggle task list",
48
+ s3d70bc709c396bfd: "Preview mode",
49
+ s3e6962be7add59b4: "Delete current session",
50
+ s3faeacd5ca504f5d: "Choose interface color scheme",
51
+ s4005447f5c22615f: "Enable sound",
52
+ s417b90913e05bc17: "Preview",
53
+ s43fefc62381b84ab: "Claude won't ask for consent before executing potentially dangerous commands",
54
+ s47960b97d8d2ef8c: "Edit mode",
55
+ s47e699a5378f8e6d: "New session",
56
+ s49261a90b150c43b: "Currently logged-in user identifier",
57
+ s49730f3d5751a433: "Loading...",
58
+ s49a0df2ed77024c0: "Editor",
59
+ s4c5ab7fb1d23cc62: "Version",
60
+ s4c68ea778c075cf4: "Title cannot be empty",
61
+ s5007a4b7896f1b7a: "Sound notifications enabled",
62
+ s51b507b884967f54: "Disconnected",
63
+ s53d0584edced7d5f: e`Theme switched to ${0}`,
64
+ s5534ea14f2cc2b87: "Please complete authorization below",
65
+ s57adf424d57c8a0f: "Send",
66
+ s5ecd97c510a4f3de: "New message",
67
+ s60571c91c53b82fd: "User ID",
68
+ s6230bbe9df46da66: "Explorer",
69
+ s642cc600292d5ea7: "Failed to save file",
70
+ s66f8df91e53055b9: "Failed to compress context",
71
+ s69d4b7b972b239d4: "Select a file from the tree to start editing",
72
+ s6beb126e6d1c828e: "Toast notifications enabled",
73
+ s6f5e80d8df78807c: "Connected",
74
+ s6f6ff6080ce73d26: "Manual",
75
+ s6ffdf1b6d6afe7b5: "Default view mode",
76
+ s7005b25019cc68ec: e`Default view switched to ${0}`,
77
+ s74d863b5dab8f5a3: "Context compressed",
78
+ s756e3761c6bda497: "File list is empty",
79
+ s783adf081440d848: "Unknown",
80
+ s787365cbdb27ad0b: "Authorization page",
81
+ s7a3a550815a6de71: "View",
82
+ s7b5aee7b6c940618: "Login successful",
83
+ s7eb0adbb93c5afb3: "Connecting",
84
+ s7fbb7359d395acdc: "Auto-closing soon...",
85
+ s8113c0081bda9c10: "Files",
86
+ s813535081c1375df: "Docs",
87
+ s81522d081c024698: "Italic",
88
+ s825b1a7334e42ce8: "Reconnecting",
89
+ s835830081d3105a9: "Undo",
90
+ s8626a54775ae59c0: "↑ Load earlier messages",
91
+ s87df31162aa2c32d: "Start typing Markdown...",
92
+ s88a3ac78fc8c5c69: "Enable toast",
93
+ s8baa4f887fe090f0: e`Undo (Ctrl+Z)`,
94
+ s8c8674f87c7198fe: e`Question ${0} of ${1}`,
95
+ s8d10f47b7be30353: "Login failed",
96
+ s8e904bba6bce5305: "Not logged in",
97
+ s8f39c831592be416: "Claude explores the code and presents a plan before making edits",
98
+ s90ec41e502050332: "State validation failed, please retry",
99
+ s912a87b19f6ee361: "No active session",
100
+ s927497135cdabe78: "Untitled",
101
+ s95203a8a3bd01de5: e`Language switched to ${0}`,
102
+ s962bdbdeeca87ed7: "No file open",
103
+ s98c96ddda9eb32e5: "Send shortcut",
104
+ s9a3854a632c60986: "No sessions",
105
+ s9a923f7be53ec1ac: "Task list",
106
+ s9b9f3c08329ae856: "Light",
107
+ s9c255408322fd48a: "Dark",
108
+ s9c4ab9eaf58d6c0a: "No tasks yet",
109
+ sa05585a6c2d7a920: e`Ln ${0}, Col ${1}`,
110
+ sa062c958bd25c534: "Claude automatically edits your selected text or the entire file",
111
+ sa1230a5be083ab6a: "Auto-save",
112
+ sa33d70ea05452700: "Rename failed",
113
+ sa74001c408f0c766: "Service not connected",
114
+ sa8a184ccbfdd1145: "Font size",
115
+ sa99214edf2192eb6: "Bypass permissions",
116
+ sad864ecd84596f7c: "↓ New messages",
117
+ sadea7069d35b5725: "System",
118
+ sb2ae2adbfc9627a1: "(Recommended)",
119
+ sb32373084660391d: "Login",
120
+ sb330c4084676d9c0: "Logout",
121
+ sb3ce019fa1dd0ac1: e`Message density switched to ${0}`,
122
+ sb3d4f79d9d8b71e5: "Submit",
123
+ sb413b6091ff8ea35: "Comfortable",
124
+ sba5f9c092611d8af: "Auto",
125
+ sba8df9c0de68d224: "Unknown error",
126
+ sbc651b0927b335dc: "Chat",
127
+ sbde5411128e19ff9: "Auto-save disabled",
128
+ sc0ea59c46f0381fa: e`Save (Ctrl+S)`,
129
+ sc49f3731be3e5066: e`Failed to get authorization URL: ${0}`,
130
+ sc4fc0e6eb8473f10: "Toast notifications disabled",
131
+ sc5e96a910aec44bb: e`Close ${0}`,
132
+ sc5f211aa0fe829a8: "← Prev",
133
+ sc653d15633466d0a: "Session list auto-synced",
134
+ sc690d6763d9a9d82: e` · ${0}`,
135
+ sc6c9cbda03a182ec: "Copy failed",
136
+ sc81820b7ef327434: "Sound notifications disabled",
137
+ sc8642c233baa3709: "Verifying identity...",
138
+ sc8da3cc71de63832: "Login",
139
+ sc992ab0858c53e28: "Edit",
140
+ sc9e494c8346b7cb5: "Other",
141
+ sca6fb271b73ed1e1: "Compress context to reduce token usage",
142
+ scad05556becd2c42: "Coming soon",
143
+ scb28f786166ab88f: "Session history",
144
+ scb489a1a173ac3f0: "Yes",
145
+ scd1969a73b8f18b6: "Click refresh to load",
146
+ scd257409357d9dba: "Plan",
147
+ scd423a09356c197d: "Settings",
148
+ scdd07a0935dbe208: "Language",
149
+ scde53b78f6a826d1: "No sessions yet",
150
+ sd0236d545cb80b16: "Show desktop notification popups",
151
+ sd06ce7085f313af5: "Compact",
152
+ sd11fb57c850fc938: "Type your answer…",
153
+ sd6033e5780676c2b: "Thinking process",
154
+ sd959e77c2a48c8e5: "Adjust chat message spacing",
155
+ sd9ad53251f2330a5: "Stop",
156
+ sdaf29b61b062ec42: "Split view",
157
+ sdc04230409cbaa04: "Message density",
158
+ sdce945c24ad44e16: "New session",
159
+ sdd9f19f38158a338: e`Send shortcut switched to ${0}`,
160
+ sddd11705d58eb498: "Compressing context...",
161
+ sded54abab00e3aa8: "Unsaved",
162
+ sdf41d8e301813b92: e`🔀 Forked from ${0}`,
163
+ sdfc63fc25f36f2c0: "Choose interface display language",
164
+ se03f11094613a52a: "Account",
165
+ se2f078a670065ad5: "No content yet",
166
+ se3de579dffbece39: "Automatically save changes when editing files",
167
+ se437504559428199: "Adjust interface text size (12–24px)",
168
+ se4952c108aaa10a6: "Type /goal &lt;your objective&gt; — AI plans, executes, and self-checks until done.",
169
+ se6d9e8aab546989b: "Set a goal and work continuously until it is achieved",
170
+ sea0d5bef4f2142e5: "Copied to clipboard",
171
+ seaa179773e22d3aa: "Preparing authorization...",
172
+ sebe7fcdde2daf169: "Sign in to continue",
173
+ sebf4dcb0999597b3: "Commands",
174
+ sf1136409548a9686: "Redo",
175
+ sf1380a0954b4a679: "Release",
176
+ sf14eef0954efc3b7: "Retry",
177
+ sf18fdd3ba5f7797a: "Attach file",
178
+ sf23abf0955854338: "Notifications",
179
+ sf886a1d8bd2479a9: "Voice input",
180
+ sfb9613db0964d8c0: "Saved",
181
+ sfba237d3fcfe2d80: e`Render failed: ${0}`,
182
+ sfcf02d7fbb1eef49: "Execute task in a loop"
183
+ }, d = { templates: s };
184
+ export {
185
+ d as default
186
+ };