@clowder-ai/companion 0.1.0-alpha.15 → 0.1.0-alpha.19

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/manifest.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "pluginId": "official.companion",
3
- "version": "0.1.0-alpha.15",
3
+ "version": "0.1.0-alpha.19",
4
4
  "contractVersion": "0.1.0",
5
5
  "name": "猫猫球",
6
6
  "icon": {
@@ -40,7 +40,7 @@
40
40
  "bridgeVersion": "1.3.0",
41
41
  "surface": {
42
42
  "entrypoint": "renderer/index.html",
43
- "integrity": "sha256-UH8VFfr3q9a5gI2pPPXinKzCTjaGI8ZdvrJngy6i+M0="
43
+ "integrity": "sha256-jaXXDHzwGVDNnFoOhrj5nvqAXMlf02Jw8CeC7Xay538="
44
44
  },
45
45
  "presentation": {
46
46
  "width": 300,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clowder-ai/companion",
3
- "version": "0.1.0-alpha.15",
3
+ "version": "0.1.0-alpha.19",
4
4
  "description": "The desktop voice body for your Clowder companion",
5
5
  "license": "MIT",
6
6
  "type": "module",
package/plugin.yaml CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "pluginId": "official.companion",
3
- "version": "0.1.0-alpha.15",
3
+ "version": "0.1.0-alpha.19",
4
4
  "contractVersion": "0.1.0",
5
5
  "name": "猫猫球",
6
6
  "icon": {
@@ -40,7 +40,7 @@
40
40
  "bridgeVersion": "1.3.0",
41
41
  "surface": {
42
42
  "entrypoint": "renderer/index.html",
43
- "integrity": "sha256-UH8VFfr3q9a5gI2pPPXinKzCTjaGI8ZdvrJngy6i+M0="
43
+ "integrity": "sha256-jaXXDHzwGVDNnFoOhrj5nvqAXMlf02Jw8CeC7Xay538="
44
44
  },
45
45
  "presentation": {
46
46
  "width": 300,
@@ -103,9 +103,10 @@
103
103
  </section>
104
104
  <section id="transcript" class="floating call-transcript" data-expanded="false" aria-label="这次通话的字幕" hidden>
105
105
  <div id="transcript-call-context" class="call-context transcript-call-context">
106
- <span class="status-dot" aria-hidden="true"></span><strong id="transcript-call-state"></strong><span id="transcript-call-mic-state"></span><span class="view-tag">字幕</span>
106
+ <span class="status-dot" aria-hidden="true"></span><strong id="transcript-call-state"></strong><span id="transcript-call-mic-state"></span>
107
107
  <small id="transcript-call-work" hidden></small>
108
108
  <div class="call-context-actions">
109
+ <button id="transcript-return" class="transcript-return" type="button" data-action="transcript-return"><span aria-hidden="true">‹</span><span>返回通话</span></button>
109
110
  <button id="transcript-mic" data-action="mute" aria-label="静音"><svg class="icon" aria-hidden="true"><use id="transcript-mic-icon" href="#i-mic"/></svg></button>
110
111
  <button id="transcript-expand" data-action="transcript-expand"><svg class="icon" aria-hidden="true"><use href="#i-expand"/></svg><span id="transcript-expand-label">展开</span></button>
111
112
  <button data-action="stop" class="destructive compact">挂断</button>
@@ -139,8 +139,14 @@ button:disabled { opacity: .45; cursor: default; }
139
139
  #chat small { color: var(--cafe-text-muted); font-size: 10px; padding: 0 14px 10px; }
140
140
  .call-transcript { width: 420px; height: 210px; display: flex; flex-direction: column; overflow: hidden; }
141
141
  .call-transcript[data-expanded="true"] { height: 500px; }
142
- .transcript-call-context { flex: none; grid-template-columns: auto auto auto auto 1fr auto; padding: 7px 10px; }
143
- .view-tag { border-radius: 999px; background: var(--desktop-rail); color: var(--desktop-body); padding: 2px 7px; font-size: 11px; }
142
+ .transcript-call-context { flex: none; grid-template-columns: auto minmax(0, 1fr) auto; gap: 5px; padding: 7px 8px; }
143
+ .transcript-call-context #transcript-call-state { min-width: 0; overflow-wrap: anywhere; }
144
+ .transcript-call-context #transcript-call-mic-state { grid-column: 2 / 4; grid-row: 2; min-width: 0; white-space: normal; overflow-wrap: anywhere; font-size: 11px; }
145
+ .transcript-call-context .call-context-actions { grid-column: 3; grid-row: 1; gap: 2px; }
146
+ .transcript-call-context .call-context-actions button { padding: 6px; }
147
+ .transcript-call-context .destructive.compact { min-width: 64px; padding-inline: 9px; }
148
+ .transcript-return { display: inline-flex; align-items: center; gap: 2px; border: 1px solid var(--desktop-line) !important; background: var(--desktop-work) !important; color: var(--desktop-body); padding: 3px 6px !important; font-size: 11px; font-weight: 500 !important; white-space: nowrap; }
149
+ .transcript-return:hover:not(:disabled) { background: var(--desktop-rail) !important; }
144
150
  #call-transcript-log { min-height: 0; flex: 1 1 auto; overflow-y: auto; padding: 8px 12px 5px; }
145
151
  .call-transcript-row { margin: 0 0 7px; white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.45; }
146
152
  .call-transcript-row.voice.user { color: var(--desktop-muted); font-size: 13px; font-weight: 400; }
@@ -81,6 +81,7 @@ if (!window.clowderCompanion) {
81
81
  if (kind === 'share') toggleScreen();
82
82
  if (kind === 'documents') void conversation.documents(conversation.identity?.documentsAllowed === false);
83
83
  if (kind === 'hide') void client.hide().catch(error => status(explainError(error)));
84
+ if (kind === 'transcript-return') void controls.show('actions');
84
85
  if (kind === 'transcript-expand') {
85
86
  const expanded = $('transcript').dataset.expanded !== 'true';
86
87
  $('transcript').dataset.expanded = String(expanded);