@agent-native/core 0.90.3 → 0.90.5
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/bin/agent-native.js +25 -3
- package/corpus/README.md +1 -1
- package/corpus/core/CHANGELOG.md +17 -0
- package/corpus/core/bin/agent-native.js +25 -3
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/agent/durable-background.ts +18 -18
- package/corpus/core/src/agent/engine/ai-sdk-engine.ts +8 -2
- package/corpus/core/src/agent/engine/anthropic-engine.ts +11 -1
- package/corpus/core/src/agent/engine/index.ts +1 -0
- package/corpus/core/src/agent/engine/registry.ts +63 -2
- package/corpus/core/src/agent/production-agent.ts +22 -11
- package/corpus/core/src/agent/run-manager.ts +17 -6
- package/corpus/core/src/agent/run-store.ts +16 -11
- package/corpus/core/src/cli/create.ts +35 -0
- package/corpus/core/src/cli/design-connect.ts +263 -1
- package/corpus/core/src/cli/index.ts +84 -7
- package/corpus/core/src/cli/workspacify.ts +34 -0
- package/corpus/core/src/client/KeepTabOpenNotice.tsx +20 -15
- package/corpus/core/src/client/RunStuckBanner.tsx +14 -13
- package/corpus/core/src/client/agent-chat-adapter.ts +28 -17
- package/corpus/core/src/client/history/VersionHistoryPanel.tsx +77 -47
- package/corpus/core/src/client/history/index.ts +3 -0
- package/corpus/core/src/client/history/use-history.ts +28 -0
- package/corpus/core/src/client/index.ts +8 -0
- package/corpus/core/src/client/review/index.ts +5 -0
- package/corpus/core/src/client/review/use-review.ts +40 -2
- package/corpus/core/src/client/use-run-stuck-detection.ts +8 -5
- package/corpus/core/src/history/actions/create-resource-version.ts +11 -8
- package/corpus/core/src/history/index.ts +0 -1
- package/corpus/core/src/history/registry.ts +24 -12
- package/corpus/core/src/history/store.ts +84 -53
- package/corpus/core/src/review/actions/consume-review-feedback.ts +15 -5
- package/corpus/core/src/review/actions/delete-review-comment.ts +15 -3
- package/corpus/core/src/review/actions/resolve-review-thread.ts +12 -5
- package/corpus/core/src/review/index.ts +0 -5
- package/corpus/core/src/review/registry.ts +24 -12
- package/corpus/core/src/review/store.ts +10 -7
- package/corpus/core/src/server/agent-chat-plugin.ts +6 -0
- package/corpus/core/src/server/credential-provider.ts +13 -3
- package/corpus/templates/assets/actions/_preset-skeleton-validation.ts +11 -11
- package/corpus/templates/assets/actions/generate-image.ts +64 -28
- package/corpus/templates/assets/app/components/generation/GenerationResults.tsx +1 -1
- package/corpus/templates/assets/app/routes/brand-kits.$id_.presets.$presetId.tsx +91 -74
- package/corpus/templates/assets/server/lib/generation.ts +29 -4
- package/corpus/templates/assets/server/lib/image-processing.ts +131 -0
- package/corpus/templates/calendar/.agents/skills/event-management/SKILL.md +24 -2
- package/corpus/templates/calendar/AGENTS.md +3 -0
- package/corpus/templates/calendar/actions/create-event.ts +8 -34
- package/corpus/templates/calendar/actions/event-action-helpers.ts +52 -0
- package/corpus/templates/calendar/actions/manage-event-draft.ts +7 -34
- package/corpus/templates/calendar/actions/update-event.ts +10 -23
- package/corpus/templates/calendar/app/components/calendar/AttendeeAutocomplete.tsx +47 -0
- package/corpus/templates/calendar/app/components/calendar/CreateEventDialog.tsx +23 -0
- package/corpus/templates/calendar/app/components/calendar/EventAttendeesSection.tsx +59 -2
- package/corpus/templates/calendar/app/components/calendar/EventDetailPanel.tsx +40 -1
- package/corpus/templates/calendar/app/components/calendar/EventDetailPopover.tsx +34 -1
- package/corpus/templates/calendar/app/hooks/use-events.ts +6 -0
- package/corpus/templates/calendar/app/i18n/zh-TW.ts +4 -0
- package/corpus/templates/calendar/app/i18n-data.ts +40 -0
- package/corpus/templates/calendar/changelog/2026-07-07-you-can-mark-event-guests-as-optional-while-inviting-them-or.md +6 -0
- package/corpus/templates/calendar/server/handlers/events.ts +1 -0
- package/corpus/templates/calendar/server/lib/google-calendar.ts +4 -0
- package/corpus/templates/calendar/server/plugins/agent-chat.ts +1 -1
- package/corpus/templates/calendar/shared/api.ts +2 -0
- package/corpus/templates/clips/.agents/skills/ai-video-tools/SKILL.md +29 -3
- package/corpus/templates/clips/actions/generate-workflow.ts +19 -8
- package/corpus/templates/clips/actions/get-clips-ai-prefs.ts +36 -0
- package/corpus/templates/clips/actions/lib/clips-ai-prefs.ts +28 -0
- package/corpus/templates/clips/actions/regenerate-chapters.ts +21 -7
- package/corpus/templates/clips/actions/regenerate-summary.ts +26 -8
- package/corpus/templates/clips/actions/regenerate-title.ts +44 -7
- package/corpus/templates/clips/actions/update-clips-ai-prefs.ts +50 -0
- package/corpus/templates/clips/app/components/meetings/meeting-card.tsx +7 -2
- package/corpus/templates/clips/app/hooks/use-auto-title.ts +25 -10
- package/corpus/templates/clips/app/i18n/ar-SA.ts +28 -6
- package/corpus/templates/clips/app/i18n/de-DE.ts +28 -6
- package/corpus/templates/clips/app/i18n/en-US.ts +29 -6
- package/corpus/templates/clips/app/i18n/es-ES.ts +29 -6
- package/corpus/templates/clips/app/i18n/fr-FR.ts +30 -6
- package/corpus/templates/clips/app/i18n/hi-IN.ts +26 -6
- package/corpus/templates/clips/app/i18n/ja-JP.ts +27 -6
- package/corpus/templates/clips/app/i18n/ko-KR.ts +28 -6
- package/corpus/templates/clips/app/i18n/pt-BR.ts +28 -6
- package/corpus/templates/clips/app/i18n/zh-CN.ts +26 -6
- package/corpus/templates/clips/app/i18n/zh-TW.ts +25 -6
- package/corpus/templates/clips/app/routes/_app.meetings._index.tsx +73 -0
- package/corpus/templates/clips/app/routes/_app.settings._index.tsx +1 -0
- package/corpus/templates/clips/app/routes/r.$recordingId.tsx +70 -2
- package/corpus/templates/clips/changelog/2026-07-07-ai-tools-can-include-the-full-video-not-just-the-transcript-.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-07-clips-desktop-now-surfaces-meetings-and-dictate-directly-in-.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-07-meeting-notes-now-explain-exactly-how-to-start-granola-style.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-07-meeting-start-alerts-now-include-separate-start-notes-and-jo.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-07-recordings-start-more-predictably-and-newly-saved-clips-refr.md +6 -0
- package/corpus/templates/clips/chrome-extension/public/manifest.json +1 -1
- package/corpus/templates/clips/desktop/src/app.tsx +435 -105
- package/corpus/templates/clips/desktop/src/lib/recorder.ts +27 -21
- package/corpus/templates/clips/desktop/src/overlays/meeting-notification.tsx +23 -22
- package/corpus/templates/clips/desktop/src/styles.css +167 -2
- package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +1 -1
- package/corpus/templates/clips/desktop/src-tauri/src/notifications.rs +3 -7
- package/corpus/templates/clips/desktop/src-tauri/src/tray_meetings.rs +5 -4
- package/corpus/templates/clips/server/routes/_agent-native/clips/user-prefs.put.ts +16 -8
- package/corpus/templates/clips/shared/clips-ai-prefs.ts +81 -0
- package/corpus/templates/content/AGENTS.md +1 -0
- package/corpus/templates/content/actions/_database-source-utils.ts +73 -8
- package/corpus/templates/content/actions/_database-utils.ts +2 -1
- package/corpus/templates/content/actions/prepare-builder-source-review.ts +20 -1
- package/corpus/templates/content/actions/stage-builder-source-bulk-update.ts +663 -0
- package/corpus/templates/content/app/components/editor/DocumentProperties.tsx +33 -7
- package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +53 -4
- package/corpus/templates/content/app/components/editor/database/settings.tsx +24 -0
- package/corpus/templates/content/app/hooks/use-content-database.ts +70 -1
- package/corpus/templates/content/app/hooks/use-document-properties.ts +63 -5
- package/corpus/templates/content/app/i18n/zh-TW.ts +3 -0
- package/corpus/templates/content/app/i18n-data.ts +31 -0
- package/corpus/templates/content/changelog/2026-07-01-builder-source-rows-can-be-staged-in-bulk-with-a-reviewable.md +6 -0
- package/corpus/templates/content/changelog/2026-07-07-builder-backed-database-fields-now-edit-like-normal-content-fields.md +6 -0
- package/corpus/templates/content/parity/matrix.md +24 -24
- package/corpus/templates/content/parity/matrix.ts +2 -0
- package/corpus/templates/content/shared/api.ts +59 -4
- package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +16 -1
- package/corpus/templates/design/actions/add-localhost-screens.ts +1 -0
- package/corpus/templates/design/actions/connect-localhost.ts +26 -3
- package/corpus/templates/design/actions/open-visual-edit.ts +4 -37
- package/corpus/templates/design/app/components/design/DesignCanvas.tsx +362 -12
- package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +89 -14
- package/corpus/templates/design/app/components/design/bridge-security.ts +7 -1
- package/corpus/templates/design/app/components/design/multi-screen/types.ts +1 -1
- package/corpus/templates/design/app/i18n/zh-TW.ts +3 -0
- package/corpus/templates/design/app/i18n-data.ts +41 -0
- package/corpus/templates/design/changelog/2026-07-07-local-visual-edit-keeps-bridge-access-when-opening-previousl.md +6 -0
- package/corpus/templates/design/changelog/2026-07-07-local-visual-edit-now-keeps-the-live-app-connection-authenti.md +6 -0
- package/corpus/templates/design/changelog/2026-07-07-local-visual-edit-uses-live-app-iframes-for-click-to-edit-pr.md +6 -0
- package/dist/agent/durable-background.d.ts +12 -12
- package/dist/agent/durable-background.js +18 -18
- package/dist/agent/durable-background.js.map +1 -1
- package/dist/agent/engine/ai-sdk-engine.d.ts.map +1 -1
- package/dist/agent/engine/ai-sdk-engine.js +8 -2
- package/dist/agent/engine/ai-sdk-engine.js.map +1 -1
- package/dist/agent/engine/anthropic-engine.d.ts.map +1 -1
- package/dist/agent/engine/anthropic-engine.js +11 -1
- package/dist/agent/engine/anthropic-engine.js.map +1 -1
- package/dist/agent/engine/index.d.ts +1 -1
- package/dist/agent/engine/index.d.ts.map +1 -1
- package/dist/agent/engine/index.js +1 -1
- package/dist/agent/engine/index.js.map +1 -1
- package/dist/agent/engine/registry.d.ts +14 -0
- package/dist/agent/engine/registry.d.ts.map +1 -1
- package/dist/agent/engine/registry.js +56 -2
- package/dist/agent/engine/registry.js.map +1 -1
- package/dist/agent/production-agent.d.ts +2 -2
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +18 -11
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/run-manager.d.ts +7 -1
- package/dist/agent/run-manager.d.ts.map +1 -1
- package/dist/agent/run-manager.js +6 -1
- package/dist/agent/run-manager.js.map +1 -1
- package/dist/agent/run-store.d.ts +1 -1
- package/dist/agent/run-store.d.ts.map +1 -1
- package/dist/agent/run-store.js +15 -10
- package/dist/agent/run-store.js.map +1 -1
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +31 -0
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/design-connect.d.ts.map +1 -1
- package/dist/cli/design-connect.js +197 -1
- package/dist/cli/design-connect.js.map +1 -1
- package/dist/cli/index.js +76 -9
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/workspacify.d.ts.map +1 -1
- package/dist/cli/workspacify.js +30 -0
- package/dist/cli/workspacify.js.map +1 -1
- package/dist/client/KeepTabOpenNotice.d.ts +9 -10
- package/dist/client/KeepTabOpenNotice.d.ts.map +1 -1
- package/dist/client/KeepTabOpenNotice.js +8 -4
- package/dist/client/KeepTabOpenNotice.js.map +1 -1
- package/dist/client/RunStuckBanner.d.ts.map +1 -1
- package/dist/client/RunStuckBanner.js +14 -13
- package/dist/client/RunStuckBanner.js.map +1 -1
- package/dist/client/agent-chat-adapter.d.ts.map +1 -1
- package/dist/client/agent-chat-adapter.js +25 -17
- package/dist/client/agent-chat-adapter.js.map +1 -1
- package/dist/client/history/VersionHistoryPanel.d.ts +1 -1
- package/dist/client/history/VersionHistoryPanel.d.ts.map +1 -1
- package/dist/client/history/VersionHistoryPanel.js +12 -5
- package/dist/client/history/VersionHistoryPanel.js.map +1 -1
- package/dist/client/history/index.d.ts +1 -1
- package/dist/client/history/index.d.ts.map +1 -1
- package/dist/client/history/index.js +1 -1
- package/dist/client/history/index.js.map +1 -1
- package/dist/client/history/use-history.d.ts +12 -0
- package/dist/client/history/use-history.d.ts.map +1 -1
- package/dist/client/history/use-history.js +6 -0
- package/dist/client/history/use-history.js.map +1 -1
- package/dist/client/index.d.ts +2 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +2 -2
- package/dist/client/index.js.map +1 -1
- package/dist/client/review/index.d.ts +1 -1
- package/dist/client/review/index.d.ts.map +1 -1
- package/dist/client/review/index.js +1 -1
- package/dist/client/review/index.js.map +1 -1
- package/dist/client/review/use-review.d.ts +23 -0
- package/dist/client/review/use-review.d.ts.map +1 -1
- package/dist/client/review/use-review.js +8 -0
- package/dist/client/review/use-review.js.map +1 -1
- package/dist/client/use-run-stuck-detection.d.ts +1 -1
- package/dist/client/use-run-stuck-detection.d.ts.map +1 -1
- package/dist/client/use-run-stuck-detection.js +6 -4
- package/dist/client/use-run-stuck-detection.js.map +1 -1
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/file-upload/actions/upload-image.d.ts +1 -1
- package/dist/history/actions/create-resource-version.js +7 -4
- package/dist/history/actions/create-resource-version.js.map +1 -1
- package/dist/history/index.d.ts +1 -1
- package/dist/history/index.d.ts.map +1 -1
- package/dist/history/index.js +1 -1
- package/dist/history/index.js.map +1 -1
- package/dist/history/registry.d.ts.map +1 -1
- package/dist/history/registry.js +14 -12
- package/dist/history/registry.js.map +1 -1
- package/dist/history/store.d.ts.map +1 -1
- package/dist/history/store.js +74 -49
- package/dist/history/store.js.map +1 -1
- package/dist/notifications/routes.d.ts +1 -1
- package/dist/resources/handlers.d.ts +3 -3
- package/dist/review/actions/consume-review-feedback.d.ts +1 -0
- package/dist/review/actions/consume-review-feedback.js +8 -2
- package/dist/review/actions/consume-review-feedback.js.map +1 -1
- package/dist/review/actions/delete-review-comment.d.ts +2 -1
- package/dist/review/actions/delete-review-comment.js +11 -3
- package/dist/review/actions/delete-review-comment.js.map +1 -1
- package/dist/review/actions/resolve-review-thread.d.ts +2 -1
- package/dist/review/actions/resolve-review-thread.js +5 -2
- package/dist/review/actions/resolve-review-thread.js.map +1 -1
- package/dist/review/index.d.ts +1 -1
- package/dist/review/index.d.ts.map +1 -1
- package/dist/review/index.js +1 -1
- package/dist/review/index.js.map +1 -1
- package/dist/review/registry.d.ts.map +1 -1
- package/dist/review/registry.js +14 -12
- package/dist/review/registry.js.map +1 -1
- package/dist/review/store.d.ts +3 -3
- package/dist/review/store.d.ts.map +1 -1
- package/dist/review/store.js +7 -4
- package/dist/review/store.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +5 -0
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/credential-provider.d.ts +2 -0
- package/dist/server/credential-provider.d.ts.map +1 -1
- package/dist/server/credential-provider.js +13 -3
- package/dist/server/credential-provider.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Update Clips AI preferences for the current user.
|
|
3
|
+
*
|
|
4
|
+
* Merges into the shared `clips-user-prefs` object so playback/transcript
|
|
5
|
+
* preferences from Settings are preserved.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* pnpm action update-clips-ai-prefs --includeFullVideoInAi=true
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import { defineAction } from "@agent-native/core";
|
|
12
|
+
import { getRequestUserEmail } from "@agent-native/core/server/request-context";
|
|
13
|
+
import { getUserSetting, putUserSetting } from "@agent-native/core/settings";
|
|
14
|
+
import { z } from "zod";
|
|
15
|
+
|
|
16
|
+
import {
|
|
17
|
+
CLIPS_USER_PREFS_KEY,
|
|
18
|
+
type ClipsUserPrefs,
|
|
19
|
+
} from "../shared/clips-ai-prefs.js";
|
|
20
|
+
|
|
21
|
+
export default defineAction({
|
|
22
|
+
description:
|
|
23
|
+
"Update Clips AI tool preferences for the current user. When includeFullVideoInAi is true, default title/description generation and AI tools watch the full recording instead of relying on transcript alone. Full-video understanding requires a Gemini model (Builder Gemini or GEMINI_API_KEY).",
|
|
24
|
+
schema: z.object({
|
|
25
|
+
includeFullVideoInAi: z
|
|
26
|
+
.boolean()
|
|
27
|
+
.describe(
|
|
28
|
+
"When true, Clips AI tools watch the full video (screen + audio) with a Gemini model, not just the transcript.",
|
|
29
|
+
),
|
|
30
|
+
}),
|
|
31
|
+
run: async (args) => {
|
|
32
|
+
const email = getRequestUserEmail();
|
|
33
|
+
if (!email) throw new Error("Sign in required");
|
|
34
|
+
|
|
35
|
+
const existing = ((await getUserSetting(email, CLIPS_USER_PREFS_KEY)) ??
|
|
36
|
+
{}) as ClipsUserPrefs;
|
|
37
|
+
const next: ClipsUserPrefs = {
|
|
38
|
+
...existing,
|
|
39
|
+
includeFullVideoInAi: args.includeFullVideoInAi,
|
|
40
|
+
};
|
|
41
|
+
await putUserSetting(
|
|
42
|
+
email,
|
|
43
|
+
CLIPS_USER_PREFS_KEY,
|
|
44
|
+
next as Record<string, unknown>,
|
|
45
|
+
);
|
|
46
|
+
return {
|
|
47
|
+
includeFullVideoInAi: next.includeFullVideoInAi === true,
|
|
48
|
+
};
|
|
49
|
+
},
|
|
50
|
+
});
|
|
@@ -209,7 +209,7 @@ function relativeStartLabel(
|
|
|
209
209
|
/**
|
|
210
210
|
* <UpcomingMeetingCard /> — a not-yet-recorded calendar event (Granola-style).
|
|
211
211
|
* Recording is a native Clips desktop-app gesture, so the card just opens the
|
|
212
|
-
* meeting's notes ("Open") and links out to the call ("Join"). Buttons are
|
|
212
|
+
* meeting's notes ("Open notes") and links out to the call ("Join"). Buttons are
|
|
213
213
|
* NavLink/<a> siblings (never nested anchors) so the markup stays valid.
|
|
214
214
|
*/
|
|
215
215
|
export function UpcomingMeetingCard({
|
|
@@ -272,6 +272,11 @@ export function UpcomingMeetingCard({
|
|
|
272
272
|
<span>– {formatTime(meeting.scheduledEnd)}</span>
|
|
273
273
|
)}
|
|
274
274
|
</div>
|
|
275
|
+
<p className="mt-1.5 text-[11px] leading-snug text-muted-foreground">
|
|
276
|
+
{soon || isLive
|
|
277
|
+
? t("meetingCard.startFromDesktopNow")
|
|
278
|
+
: t("meetingCard.startFromDesktopLater")}
|
|
279
|
+
</p>
|
|
275
280
|
</NavLink>
|
|
276
281
|
|
|
277
282
|
<div className="flex items-center justify-between gap-2 pt-1">
|
|
@@ -302,7 +307,7 @@ export function UpcomingMeetingCard({
|
|
|
302
307
|
className="h-7 gap-1 px-2.5 text-xs cursor-pointer"
|
|
303
308
|
>
|
|
304
309
|
<NavLink to={`/meetings/${meeting.id}`}>
|
|
305
|
-
{
|
|
310
|
+
{t("meetingCard.openNotes")}
|
|
306
311
|
</NavLink>
|
|
307
312
|
</Button>
|
|
308
313
|
</div>
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
callAction,
|
|
17
17
|
sendToAgentChat,
|
|
18
18
|
} from "@agent-native/core/client";
|
|
19
|
+
import { fullVideoAiModelSelection } from "@shared/clips-ai-prefs";
|
|
19
20
|
import { useEffect, useRef } from "react";
|
|
20
21
|
|
|
21
22
|
import { useRecordings, type RecordingSummary } from "./use-library";
|
|
@@ -53,6 +54,7 @@ interface AiRequest {
|
|
|
53
54
|
agentsContext?: string;
|
|
54
55
|
thresholdMs?: number;
|
|
55
56
|
message?: string;
|
|
57
|
+
includeFullVideoInAi?: boolean;
|
|
56
58
|
}
|
|
57
59
|
|
|
58
60
|
const DISPATCHABLE_REQUESTS = new Set([
|
|
@@ -139,16 +141,7 @@ export function useAutoTitleBridge(): void {
|
|
|
139
141
|
if (dispatched.current.has(dispatchKey)) continue;
|
|
140
142
|
dispatched.current.add(dispatchKey);
|
|
141
143
|
|
|
142
|
-
|
|
143
|
-
message:
|
|
144
|
-
request.message ??
|
|
145
|
-
`Handle queued ${request.kind} work for recording ${rec.id}.`,
|
|
146
|
-
context: JSON.stringify(buildRequestContext(rec, request)),
|
|
147
|
-
submit: true,
|
|
148
|
-
openSidebar: false,
|
|
149
|
-
newTab: true,
|
|
150
|
-
background: true,
|
|
151
|
-
});
|
|
144
|
+
dispatchAiRequest(rec, request);
|
|
152
145
|
|
|
153
146
|
void clearRequest(rec.id);
|
|
154
147
|
} else if (isAutoTitleReplaceable(rec.title, rec.titleSource)) {
|
|
@@ -203,10 +196,32 @@ function buildRequestContext(rec: RecordingSummary, request: AiRequest) {
|
|
|
203
196
|
agentsContext: request.agentsContext ?? "",
|
|
204
197
|
transcriptStatus: request.transcriptStatus ?? "ready",
|
|
205
198
|
transcriptSegments: parseJsonArray(request.segmentsJson),
|
|
199
|
+
includeFullVideoInAi: request.includeFullVideoInAi === true,
|
|
206
200
|
request,
|
|
207
201
|
};
|
|
208
202
|
}
|
|
209
203
|
|
|
204
|
+
function dispatchAiRequest(rec: RecordingSummary, request: AiRequest) {
|
|
205
|
+
const includeFullVideo = request.includeFullVideoInAi === true;
|
|
206
|
+
const gemini = includeFullVideo ? fullVideoAiModelSelection() : null;
|
|
207
|
+
sendToAgentChat({
|
|
208
|
+
message:
|
|
209
|
+
request.message ??
|
|
210
|
+
`Handle queued ${request.kind} work for recording ${rec.id}.`,
|
|
211
|
+
context: JSON.stringify(buildRequestContext(rec, request)),
|
|
212
|
+
submit: true,
|
|
213
|
+
openSidebar: false,
|
|
214
|
+
newTab: true,
|
|
215
|
+
background: true,
|
|
216
|
+
...(gemini
|
|
217
|
+
? {
|
|
218
|
+
engine: gemini.engine,
|
|
219
|
+
model: gemini.model,
|
|
220
|
+
}
|
|
221
|
+
: {}),
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
|
|
210
225
|
function parseJsonArray(raw: string | undefined): unknown[] {
|
|
211
226
|
if (!raw) return [];
|
|
212
227
|
try {
|
|
@@ -197,6 +197,11 @@ const messages = {
|
|
|
197
197
|
edit: "تحرير",
|
|
198
198
|
aiTools: "أدوات الذكاء الاصطناعي",
|
|
199
199
|
enhanceRecording: "تعزيز هذا التسجيل",
|
|
200
|
+
includeFullVideo: "تضمين الفيديو الكامل",
|
|
201
|
+
includeFullVideoDescription:
|
|
202
|
+
"عند التشغيل، تشاهد أدوات الذكاء الاصطناعي التسجيل (Gemini فقط) لسياق الشاشة — وليس نسخة الصوت النصية فقط. ينطبق أيضاً على إنشاء العنوان والوصف الافتراضيين. يتطلب نموذج Gemini عبر Builder أو GEMINI_API_KEY.",
|
|
203
|
+
includeFullVideoOn: "ستستخدم أدوات الذكاء الاصطناعي الفيديو الكامل (Gemini)",
|
|
204
|
+
includeFullVideoOff: "ستستخدم أدوات الذكاء الاصطناعي النص فقط",
|
|
200
205
|
regenerateTitle: "إعادة إنشاء العنوان",
|
|
201
206
|
regenerateDescription: "إعادة إنشاء الوصف",
|
|
202
207
|
autoChapters: "فصول السيارات",
|
|
@@ -322,7 +327,7 @@ const messages = {
|
|
|
322
327
|
removing: "جارٍ الإزالة...",
|
|
323
328
|
remove: "يزيل",
|
|
324
329
|
desktopHint:
|
|
325
|
-
"
|
|
330
|
+
"لبدء الملاحظات، افتح Clips Desktop من شريط القوائم واختر Start Meeting Notes، أو انقر على Start notes عند ظهور التذكير. يلتقط Clips الميكروفون وصوت النظام ويكتب النص هنا.",
|
|
326
331
|
getDesktopApp: "احصل على تطبيق سطح المكتب",
|
|
327
332
|
generateNotesFailed: "تعذر إنشاء الملاحظات. حاول ثانية.",
|
|
328
333
|
attendee_one: "الحضور {{count}}",
|
|
@@ -996,7 +1001,11 @@ const messages = {
|
|
|
996
1001
|
inHours: "بعد {{count}} س",
|
|
997
1002
|
join: "انضمام",
|
|
998
1003
|
openNotes: "فتح الملاحظات",
|
|
999
|
-
open: "فتح",
|
|
1004
|
+
open: "فتح الملاحظات",
|
|
1005
|
+
startFromDesktopNow:
|
|
1006
|
+
"ابدأ الملاحظات المباشرة من تذكير سطح المكتب أو شريط القوائم.",
|
|
1007
|
+
startFromDesktopLater:
|
|
1008
|
+
"سيعرض Clips Desktop زر Start notes عندما يحين الوقت.",
|
|
1000
1009
|
},
|
|
1001
1010
|
transcriptBubbles: {
|
|
1002
1011
|
listening: "يستمع…",
|
|
@@ -1427,10 +1436,10 @@ const messages = {
|
|
|
1427
1436
|
"Google Calendar needs to be reconnected to keep showing your upcoming meetings. (مترجم)",
|
|
1428
1437
|
connectGoogleCalendar: "Connect Google Calendar (مترجم)",
|
|
1429
1438
|
desktopReminder:
|
|
1430
|
-
"
|
|
1439
|
+
"Connect Google Calendar, keep Clips Desktop open, then click Start notes from the reminder or the menu bar when your meeting begins. (مترجم)",
|
|
1431
1440
|
getDesktopApp: "Get desktop app (مترجم)",
|
|
1432
1441
|
requiredForReminders:
|
|
1433
|
-
"
|
|
1442
|
+
"Desktop captures mic + system audio for meeting transcription. (مترجم)",
|
|
1434
1443
|
calendarConnected: "Calendar connected (مترجم)",
|
|
1435
1444
|
calendarDisconnected: "Calendar disconnected (مترجم)",
|
|
1436
1445
|
calendarSettings: "Calendar settings (مترجم)",
|
|
@@ -1438,14 +1447,27 @@ const messages = {
|
|
|
1438
1447
|
"Connect Google Calendar for meeting reminders. (مترجم)",
|
|
1439
1448
|
disconnectGoogleCalendarTitle: "Disconnect Google Calendar? (مترجم)",
|
|
1440
1449
|
title: "Meetings (مترجم)",
|
|
1441
|
-
intro:
|
|
1450
|
+
intro:
|
|
1451
|
+
"Upcoming calendar meetings and your recorded notes. Start live notes from Clips Desktop at meeting time. (مترجم)",
|
|
1442
1452
|
searchPlaceholder: "Search meetings... (مترجم)",
|
|
1443
1453
|
clearSearch: "Clear search (مترجم)",
|
|
1444
1454
|
noMeetingsYet: "No meetings yet (مترجم)",
|
|
1445
1455
|
noMeetingsDescription:
|
|
1446
|
-
"
|
|
1456
|
+
"Connect your calendar and keep Clips Desktop open. When a meeting starts, use Start notes from the reminder or menu bar. (مترجم)",
|
|
1447
1457
|
noMeetingsMatch: 'No meetings match "{{query}}" (مترجم)',
|
|
1448
1458
|
refreshing: "Refreshing… (مترجم)",
|
|
1459
|
+
howToTriggerTitle: "How to trigger meeting notes (مترجم)",
|
|
1460
|
+
howToTriggerDescription:
|
|
1461
|
+
"Meeting notes are the Granola-style flow in Clips: calendar events appear here, the desktop app captures mic and system audio, and the transcript plus AI notes land back in this history. (مترجم)",
|
|
1462
|
+
guideCalendarTitle: "Connect Google Calendar (مترجم)",
|
|
1463
|
+
guideCalendarDescription:
|
|
1464
|
+
"Meetings are pulled from your calendar so Clips knows when to remind you. (مترجم)",
|
|
1465
|
+
guideDesktopTitle: "Keep Clips Desktop open (مترجم)",
|
|
1466
|
+
guideDesktopDescription:
|
|
1467
|
+
"Desktop capture is required for mic plus system-audio transcription. (مترجم)",
|
|
1468
|
+
guideStartTitle: "Click Start notes (مترجم)",
|
|
1469
|
+
guideStartDescription:
|
|
1470
|
+
"Use the desktop reminder or the menu-bar Start Meeting Notes item when the call begins. (مترجم)",
|
|
1449
1471
|
},
|
|
1450
1472
|
};
|
|
1451
1473
|
|
|
@@ -208,6 +208,11 @@ const messages = {
|
|
|
208
208
|
edit: "Bearbeiten",
|
|
209
209
|
aiTools: "KI-Tools",
|
|
210
210
|
enhanceRecording: "Verbessern Sie diese Aufnahme",
|
|
211
|
+
includeFullVideo: "Vollständiges Video einbeziehen",
|
|
212
|
+
includeFullVideoDescription:
|
|
213
|
+
"Wenn aktiviert, sehen sich KI-Tools die Aufnahme (nur Gemini) für Bildschirmkontext an — nicht nur das Audio-Transkript. Gilt auch für die Standardtitel- und -beschreibungsgenerierung. Erfordert ein Gemini-Modell über Builder oder GEMINI_API_KEY.",
|
|
214
|
+
includeFullVideoOn: "KI-Tools nutzen das vollständige Video (Gemini)",
|
|
215
|
+
includeFullVideoOff: "KI-Tools nutzen nur das Transkript",
|
|
211
216
|
regenerateTitle: "Titel neu generieren",
|
|
212
217
|
regenerateDescription: "Beschreibung neu generieren",
|
|
213
218
|
autoChapters: "Automatische Kapitel",
|
|
@@ -339,7 +344,7 @@ const messages = {
|
|
|
339
344
|
removing: "Entfernen...",
|
|
340
345
|
remove: "Entfernen",
|
|
341
346
|
desktopHint:
|
|
342
|
-
"
|
|
347
|
+
"Um Notizen zu starten, öffnen Sie Clips Desktop über die Menüleiste und wählen Sie Start Meeting Notes, oder klicken Sie auf Start notes, wenn die Erinnerung erscheint. Clips erfasst Mikrofon und Systemaudio und schreibt das Transkript hier.",
|
|
343
348
|
getDesktopApp: "Holen Sie sich die Desktop-App",
|
|
344
349
|
generateNotesFailed:
|
|
345
350
|
"Notizen konnten nicht generiert werden. Versuchen Sie es erneut.",
|
|
@@ -1023,7 +1028,11 @@ Alle sichtbaren Änderungen für Clips-Nutzer werden hier dokumentiert. Du kanns
|
|
|
1023
1028
|
inHours: "in {{count}} Std.",
|
|
1024
1029
|
join: "Beitreten",
|
|
1025
1030
|
openNotes: "Notizen öffnen",
|
|
1026
|
-
open: "
|
|
1031
|
+
open: "Notizen öffnen",
|
|
1032
|
+
startFromDesktopNow:
|
|
1033
|
+
"Starten Sie Live-Notizen über die Desktop-Erinnerung oder die Menüleiste.",
|
|
1034
|
+
startFromDesktopLater:
|
|
1035
|
+
"Clips Desktop zeigt Start notes an, wenn es Zeit ist.",
|
|
1027
1036
|
},
|
|
1028
1037
|
transcriptBubbles: {
|
|
1029
1038
|
listening: "Hört zu…",
|
|
@@ -1458,10 +1467,10 @@ Alle sichtbaren Änderungen für Clips-Nutzer werden hier dokumentiert. Du kanns
|
|
|
1458
1467
|
"Google Calendar needs to be reconnected to keep showing your upcoming meetings. (Lokalisiert)",
|
|
1459
1468
|
connectGoogleCalendar: "Connect Google Calendar (Lokalisiert)",
|
|
1460
1469
|
desktopReminder:
|
|
1461
|
-
"
|
|
1470
|
+
"Connect Google Calendar, keep Clips Desktop open, then click Start notes from the reminder or the menu bar when your meeting begins. (Lokalisiert)",
|
|
1462
1471
|
getDesktopApp: "Get desktop app (Lokalisiert)",
|
|
1463
1472
|
requiredForReminders:
|
|
1464
|
-
"
|
|
1473
|
+
"Desktop captures mic + system audio for meeting transcription. (Lokalisiert)",
|
|
1465
1474
|
calendarConnected: "Calendar connected (Lokalisiert)",
|
|
1466
1475
|
calendarDisconnected: "Calendar disconnected (Lokalisiert)",
|
|
1467
1476
|
calendarSettings: "Calendar settings (Lokalisiert)",
|
|
@@ -1469,14 +1478,27 @@ Alle sichtbaren Änderungen für Clips-Nutzer werden hier dokumentiert. Du kanns
|
|
|
1469
1478
|
"Connect Google Calendar for meeting reminders. (Lokalisiert)",
|
|
1470
1479
|
disconnectGoogleCalendarTitle: "Disconnect Google Calendar? (Lokalisiert)",
|
|
1471
1480
|
title: "Meetings (Lokalisiert)",
|
|
1472
|
-
intro:
|
|
1481
|
+
intro:
|
|
1482
|
+
"Upcoming calendar meetings and your recorded notes. Start live notes from Clips Desktop at meeting time. (Lokalisiert)",
|
|
1473
1483
|
searchPlaceholder: "Search meetings... (Lokalisiert)",
|
|
1474
1484
|
clearSearch: "Clear search (Lokalisiert)",
|
|
1475
1485
|
noMeetingsYet: "No meetings yet (Lokalisiert)",
|
|
1476
1486
|
noMeetingsDescription:
|
|
1477
|
-
"
|
|
1487
|
+
"Connect your calendar and keep Clips Desktop open. When a meeting starts, use Start notes from the reminder or menu bar. (Lokalisiert)",
|
|
1478
1488
|
noMeetingsMatch: 'No meetings match "{{query}}" (Lokalisiert)',
|
|
1479
1489
|
refreshing: "Refreshing… (Lokalisiert)",
|
|
1490
|
+
howToTriggerTitle: "How to trigger meeting notes (Lokalisiert)",
|
|
1491
|
+
howToTriggerDescription:
|
|
1492
|
+
"Meeting notes are the Granola-style flow in Clips: calendar events appear here, the desktop app captures mic and system audio, and the transcript plus AI notes land back in this history. (Lokalisiert)",
|
|
1493
|
+
guideCalendarTitle: "Connect Google Calendar (Lokalisiert)",
|
|
1494
|
+
guideCalendarDescription:
|
|
1495
|
+
"Meetings are pulled from your calendar so Clips knows when to remind you. (Lokalisiert)",
|
|
1496
|
+
guideDesktopTitle: "Keep Clips Desktop open (Lokalisiert)",
|
|
1497
|
+
guideDesktopDescription:
|
|
1498
|
+
"Desktop capture is required for mic plus system-audio transcription. (Lokalisiert)",
|
|
1499
|
+
guideStartTitle: "Click Start notes (Lokalisiert)",
|
|
1500
|
+
guideStartDescription:
|
|
1501
|
+
"Use the desktop reminder or the menu-bar Start Meeting Notes item when the call begins. (Lokalisiert)",
|
|
1480
1502
|
},
|
|
1481
1503
|
};
|
|
1482
1504
|
|
|
@@ -199,6 +199,11 @@ const messages = {
|
|
|
199
199
|
edit: "Edit",
|
|
200
200
|
aiTools: "AI tools",
|
|
201
201
|
enhanceRecording: "Enhance this recording",
|
|
202
|
+
includeFullVideo: "Include full video",
|
|
203
|
+
includeFullVideoDescription:
|
|
204
|
+
"When on, AI tools watch the recording (Gemini only) for on-screen context — not just the audio transcript. Also applies to default title and description generation. Requires a Gemini model via Builder or GEMINI_API_KEY.",
|
|
205
|
+
includeFullVideoOn: "AI tools will use the full video (Gemini)",
|
|
206
|
+
includeFullVideoOff: "AI tools will use the transcript only",
|
|
202
207
|
regenerateTitle: "Regenerate title",
|
|
203
208
|
regenerateDescription: "Regenerate description",
|
|
204
209
|
autoChapters: "Auto chapters",
|
|
@@ -324,7 +329,7 @@ const messages = {
|
|
|
324
329
|
removing: "Removing...",
|
|
325
330
|
remove: "Remove",
|
|
326
331
|
desktopHint:
|
|
327
|
-
"
|
|
332
|
+
"To start notes, open Clips Desktop from the menu bar and choose Start Meeting Notes, or click Start notes when the reminder appears. Clips captures mic + system audio and writes the transcript here.",
|
|
328
333
|
getDesktopApp: "Get desktop app",
|
|
329
334
|
generateNotesFailed: "Couldn't generate notes. Try again.",
|
|
330
335
|
attendee_one: "{{count}} attendee",
|
|
@@ -991,7 +996,11 @@ All notable user-facing changes to Clips are documented here. Open it any time f
|
|
|
991
996
|
inHours: "in {{count}} hr",
|
|
992
997
|
join: "Join",
|
|
993
998
|
openNotes: "Open notes",
|
|
994
|
-
open: "Open",
|
|
999
|
+
open: "Open notes",
|
|
1000
|
+
startFromDesktopNow:
|
|
1001
|
+
"Start live notes from the desktop reminder or menu bar.",
|
|
1002
|
+
startFromDesktopLater:
|
|
1003
|
+
"Clips Desktop will show Start notes when it is time.",
|
|
995
1004
|
},
|
|
996
1005
|
transcriptBubbles: {
|
|
997
1006
|
listening: "Listening…",
|
|
@@ -1417,23 +1426,37 @@ All notable user-facing changes to Clips are documented here. Open it any time f
|
|
|
1417
1426
|
"Google Calendar needs to be reconnected to keep showing your upcoming meetings.",
|
|
1418
1427
|
connectGoogleCalendar: "Connect Google Calendar",
|
|
1419
1428
|
desktopReminder:
|
|
1420
|
-
"
|
|
1429
|
+
"Connect Google Calendar, keep Clips Desktop open, then click Start notes from the reminder or the menu bar when your meeting begins.",
|
|
1421
1430
|
getDesktopApp: "Get desktop app",
|
|
1422
|
-
requiredForReminders:
|
|
1431
|
+
requiredForReminders:
|
|
1432
|
+
"Desktop captures mic + system audio for meeting transcription.",
|
|
1423
1433
|
calendarConnected: "Calendar connected",
|
|
1424
1434
|
calendarDisconnected: "Calendar disconnected",
|
|
1425
1435
|
calendarSettings: "Calendar settings",
|
|
1426
1436
|
connectCalendarReminder: "Connect Google Calendar for meeting reminders.",
|
|
1427
1437
|
disconnectGoogleCalendarTitle: "Disconnect Google Calendar?",
|
|
1428
1438
|
title: "Meetings",
|
|
1429
|
-
intro:
|
|
1439
|
+
intro:
|
|
1440
|
+
"Upcoming calendar meetings and your recorded notes. Start live notes from Clips Desktop at meeting time.",
|
|
1430
1441
|
searchPlaceholder: "Search meetings...",
|
|
1431
1442
|
clearSearch: "Clear search",
|
|
1432
1443
|
noMeetingsYet: "No meetings yet",
|
|
1433
1444
|
noMeetingsDescription:
|
|
1434
|
-
"
|
|
1445
|
+
"Connect your calendar and keep Clips Desktop open. When a meeting starts, use Start notes from the reminder or menu bar.",
|
|
1435
1446
|
noMeetingsMatch: 'No meetings match "{{query}}"',
|
|
1436
1447
|
refreshing: "Refreshing…",
|
|
1448
|
+
howToTriggerTitle: "How to trigger meeting notes",
|
|
1449
|
+
howToTriggerDescription:
|
|
1450
|
+
"Meeting notes are the Granola-style flow in Clips: calendar events appear here, the desktop app captures mic and system audio, and the transcript plus AI notes land back in this history.",
|
|
1451
|
+
guideCalendarTitle: "Connect Google Calendar",
|
|
1452
|
+
guideCalendarDescription:
|
|
1453
|
+
"Meetings are pulled from your calendar so Clips knows when to remind you.",
|
|
1454
|
+
guideDesktopTitle: "Keep Clips Desktop open",
|
|
1455
|
+
guideDesktopDescription:
|
|
1456
|
+
"Desktop capture is required for mic plus system-audio transcription.",
|
|
1457
|
+
guideStartTitle: "Click Start notes",
|
|
1458
|
+
guideStartDescription:
|
|
1459
|
+
"Use the desktop reminder or the menu-bar Start Meeting Notes item when the call begins.",
|
|
1437
1460
|
},
|
|
1438
1461
|
};
|
|
1439
1462
|
|
|
@@ -206,6 +206,12 @@ const messages = {
|
|
|
206
206
|
edit: "Editar",
|
|
207
207
|
aiTools: "herramientas de inteligencia artificial",
|
|
208
208
|
enhanceRecording: "Mejorar esta grabación",
|
|
209
|
+
includeFullVideo: "Incluir el video completo",
|
|
210
|
+
includeFullVideoDescription:
|
|
211
|
+
"Cuando está activado, las herramientas de IA miran la grabación (solo Gemini) para el contexto en pantalla, no solo la transcripción de audio. También se aplica a la generación predeterminada del título y la descripción. Requiere un modelo Gemini vía Builder o GEMINI_API_KEY.",
|
|
212
|
+
includeFullVideoOn:
|
|
213
|
+
"Las herramientas de IA usarán el video completo (Gemini)",
|
|
214
|
+
includeFullVideoOff: "Las herramientas de IA usarán solo la transcripción",
|
|
209
215
|
regenerateTitle: "Regenerar título",
|
|
210
216
|
regenerateDescription: "Regenerar descripción",
|
|
211
217
|
autoChapters: "capítulos automáticos",
|
|
@@ -334,7 +340,7 @@ const messages = {
|
|
|
334
340
|
removing: "Eliminando...",
|
|
335
341
|
remove: "Eliminar",
|
|
336
342
|
desktopHint:
|
|
337
|
-
"
|
|
343
|
+
"Para iniciar notas, abre Clips Desktop desde la barra de menús y elige Start Meeting Notes, o haz clic en Start notes cuando aparezca el recordatorio. Clips captura micrófono y audio del sistema, y escribe la transcripción aquí.",
|
|
338
344
|
getDesktopApp: "Obtener aplicación de escritorio",
|
|
339
345
|
generateNotesFailed: "No se pudieron generar notas. Intentar otra vez.",
|
|
340
346
|
attendee_one: "asistente {{count}}",
|
|
@@ -1014,7 +1020,11 @@ Todos los cambios visibles para los usuarios de Clips se documentan aquí. Puede
|
|
|
1014
1020
|
inHours: "en {{count}} h",
|
|
1015
1021
|
join: "Unirse",
|
|
1016
1022
|
openNotes: "Abrir notas",
|
|
1017
|
-
open: "Abrir",
|
|
1023
|
+
open: "Abrir notas",
|
|
1024
|
+
startFromDesktopNow:
|
|
1025
|
+
"Inicia notas en vivo desde el recordatorio de escritorio o la barra de menús.",
|
|
1026
|
+
startFromDesktopLater:
|
|
1027
|
+
"Clips Desktop mostrará Start notes cuando sea la hora.",
|
|
1018
1028
|
},
|
|
1019
1029
|
transcriptBubbles: {
|
|
1020
1030
|
listening: "Escuchando…",
|
|
@@ -1449,10 +1459,10 @@ Todos los cambios visibles para los usuarios de Clips se documentan aquí. Puede
|
|
|
1449
1459
|
"Google Calendar needs to be reconnected to keep showing your upcoming meetings. (Localizado)",
|
|
1450
1460
|
connectGoogleCalendar: "Connect Google Calendar (Localizado)",
|
|
1451
1461
|
desktopReminder:
|
|
1452
|
-
"
|
|
1462
|
+
"Connect Google Calendar, keep Clips Desktop open, then click Start notes from the reminder or the menu bar when your meeting begins. (Localizado)",
|
|
1453
1463
|
getDesktopApp: "Get desktop app (Localizado)",
|
|
1454
1464
|
requiredForReminders:
|
|
1455
|
-
"
|
|
1465
|
+
"Desktop captures mic + system audio for meeting transcription. (Localizado)",
|
|
1456
1466
|
calendarConnected: "Calendar connected (Localizado)",
|
|
1457
1467
|
calendarDisconnected: "Calendar disconnected (Localizado)",
|
|
1458
1468
|
calendarSettings: "Calendar settings (Localizado)",
|
|
@@ -1460,14 +1470,27 @@ Todos los cambios visibles para los usuarios de Clips se documentan aquí. Puede
|
|
|
1460
1470
|
"Connect Google Calendar for meeting reminders. (Localizado)",
|
|
1461
1471
|
disconnectGoogleCalendarTitle: "Disconnect Google Calendar? (Localizado)",
|
|
1462
1472
|
title: "Meetings (Localizado)",
|
|
1463
|
-
intro:
|
|
1473
|
+
intro:
|
|
1474
|
+
"Upcoming calendar meetings and your recorded notes. Start live notes from Clips Desktop at meeting time. (Localizado)",
|
|
1464
1475
|
searchPlaceholder: "Search meetings... (Localizado)",
|
|
1465
1476
|
clearSearch: "Clear search (Localizado)",
|
|
1466
1477
|
noMeetingsYet: "No meetings yet (Localizado)",
|
|
1467
1478
|
noMeetingsDescription:
|
|
1468
|
-
"
|
|
1479
|
+
"Connect your calendar and keep Clips Desktop open. When a meeting starts, use Start notes from the reminder or menu bar. (Localizado)",
|
|
1469
1480
|
noMeetingsMatch: 'No meetings match "{{query}}" (Localizado)',
|
|
1470
1481
|
refreshing: "Refreshing… (Localizado)",
|
|
1482
|
+
howToTriggerTitle: "How to trigger meeting notes (Localizado)",
|
|
1483
|
+
howToTriggerDescription:
|
|
1484
|
+
"Meeting notes are the Granola-style flow in Clips: calendar events appear here, the desktop app captures mic and system audio, and the transcript plus AI notes land back in this history. (Localizado)",
|
|
1485
|
+
guideCalendarTitle: "Connect Google Calendar (Localizado)",
|
|
1486
|
+
guideCalendarDescription:
|
|
1487
|
+
"Meetings are pulled from your calendar so Clips knows when to remind you. (Localizado)",
|
|
1488
|
+
guideDesktopTitle: "Keep Clips Desktop open (Localizado)",
|
|
1489
|
+
guideDesktopDescription:
|
|
1490
|
+
"Desktop capture is required for mic plus system-audio transcription. (Localizado)",
|
|
1491
|
+
guideStartTitle: "Click Start notes (Localizado)",
|
|
1492
|
+
guideStartDescription:
|
|
1493
|
+
"Use the desktop reminder or the menu-bar Start Meeting Notes item when the call begins. (Localizado)",
|
|
1471
1494
|
},
|
|
1472
1495
|
};
|
|
1473
1496
|
|
|
@@ -205,6 +205,13 @@ const messages = {
|
|
|
205
205
|
edit: "Modifier",
|
|
206
206
|
aiTools: "Outils d'IA",
|
|
207
207
|
enhanceRecording: "Améliorer cet enregistrement",
|
|
208
|
+
includeFullVideo: "Inclure la vidéo complète",
|
|
209
|
+
includeFullVideoDescription:
|
|
210
|
+
"Lorsque c'est activé, les outils d'IA regardent l'enregistrement (Gemini uniquement) pour le contexte à l'écran — pas seulement la transcription audio. S'applique aussi à la génération par défaut du titre et de la description. Nécessite un modèle Gemini via Builder ou GEMINI_API_KEY.",
|
|
211
|
+
includeFullVideoOn:
|
|
212
|
+
"Les outils d'IA utiliseront la vidéo complète (Gemini)",
|
|
213
|
+
includeFullVideoOff:
|
|
214
|
+
"Les outils d'IA utiliseront uniquement la transcription",
|
|
208
215
|
regenerateTitle: "Régénérer le titre",
|
|
209
216
|
regenerateDescription: "Régénérer la description",
|
|
210
217
|
autoChapters: "Chapitres automatiques",
|
|
@@ -334,7 +341,7 @@ const messages = {
|
|
|
334
341
|
removing: "Suppression...",
|
|
335
342
|
remove: "Retirer",
|
|
336
343
|
desktopHint:
|
|
337
|
-
"
|
|
344
|
+
"Pour démarrer les notes, ouvrez Clips Desktop dans la barre de menus et choisissez Start Meeting Notes, ou cliquez sur Start notes lorsque le rappel apparaît. Clips capture le micro et l'audio système, puis écrit la transcription ici.",
|
|
338
345
|
getDesktopApp: "Obtenir l'application de bureau",
|
|
339
346
|
generateNotesFailed: "Impossible de générer des notes. Essayer à nouveau.",
|
|
340
347
|
attendee_one: "participant {{count}}",
|
|
@@ -1016,7 +1023,11 @@ Tous les changements visibles par les utilisateurs de Clips sont documentés ici
|
|
|
1016
1023
|
inHours: "dans {{count}} h",
|
|
1017
1024
|
join: "Rejoindre",
|
|
1018
1025
|
openNotes: "Ouvrir les notes",
|
|
1019
|
-
open: "Ouvrir",
|
|
1026
|
+
open: "Ouvrir les notes",
|
|
1027
|
+
startFromDesktopNow:
|
|
1028
|
+
"Démarrez les notes en direct depuis le rappel bureau ou la barre de menus.",
|
|
1029
|
+
startFromDesktopLater:
|
|
1030
|
+
"Clips Desktop affichera Start notes au moment voulu.",
|
|
1020
1031
|
},
|
|
1021
1032
|
transcriptBubbles: {
|
|
1022
1033
|
listening: "Écoute…",
|
|
@@ -1451,10 +1462,10 @@ Tous les changements visibles par les utilisateurs de Clips sont documentés ici
|
|
|
1451
1462
|
"Google Calendar needs to be reconnected to keep showing your upcoming meetings. (Localisé)",
|
|
1452
1463
|
connectGoogleCalendar: "Connect Google Calendar (Localisé)",
|
|
1453
1464
|
desktopReminder:
|
|
1454
|
-
"
|
|
1465
|
+
"Connect Google Calendar, keep Clips Desktop open, then click Start notes from the reminder or the menu bar when your meeting begins. (Localisé)",
|
|
1455
1466
|
getDesktopApp: "Get desktop app (Localisé)",
|
|
1456
1467
|
requiredForReminders:
|
|
1457
|
-
"
|
|
1468
|
+
"Desktop captures mic + system audio for meeting transcription. (Localisé)",
|
|
1458
1469
|
calendarConnected: "Calendar connected (Localisé)",
|
|
1459
1470
|
calendarDisconnected: "Calendar disconnected (Localisé)",
|
|
1460
1471
|
calendarSettings: "Calendar settings (Localisé)",
|
|
@@ -1462,14 +1473,27 @@ Tous les changements visibles par les utilisateurs de Clips sont documentés ici
|
|
|
1462
1473
|
"Connect Google Calendar for meeting reminders. (Localisé)",
|
|
1463
1474
|
disconnectGoogleCalendarTitle: "Disconnect Google Calendar? (Localisé)",
|
|
1464
1475
|
title: "Meetings (Localisé)",
|
|
1465
|
-
intro:
|
|
1476
|
+
intro:
|
|
1477
|
+
"Upcoming calendar meetings and your recorded notes. Start live notes from Clips Desktop at meeting time. (Localisé)",
|
|
1466
1478
|
searchPlaceholder: "Search meetings... (Localisé)",
|
|
1467
1479
|
clearSearch: "Clear search (Localisé)",
|
|
1468
1480
|
noMeetingsYet: "No meetings yet (Localisé)",
|
|
1469
1481
|
noMeetingsDescription:
|
|
1470
|
-
"
|
|
1482
|
+
"Connect your calendar and keep Clips Desktop open. When a meeting starts, use Start notes from the reminder or menu bar. (Localisé)",
|
|
1471
1483
|
noMeetingsMatch: 'No meetings match "{{query}}" (Localisé)',
|
|
1472
1484
|
refreshing: "Refreshing… (Localisé)",
|
|
1485
|
+
howToTriggerTitle: "How to trigger meeting notes (Localisé)",
|
|
1486
|
+
howToTriggerDescription:
|
|
1487
|
+
"Meeting notes are the Granola-style flow in Clips: calendar events appear here, the desktop app captures mic and system audio, and the transcript plus AI notes land back in this history. (Localisé)",
|
|
1488
|
+
guideCalendarTitle: "Connect Google Calendar (Localisé)",
|
|
1489
|
+
guideCalendarDescription:
|
|
1490
|
+
"Meetings are pulled from your calendar so Clips knows when to remind you. (Localisé)",
|
|
1491
|
+
guideDesktopTitle: "Keep Clips Desktop open (Localisé)",
|
|
1492
|
+
guideDesktopDescription:
|
|
1493
|
+
"Desktop capture is required for mic plus system-audio transcription. (Localisé)",
|
|
1494
|
+
guideStartTitle: "Click Start notes (Localisé)",
|
|
1495
|
+
guideStartDescription:
|
|
1496
|
+
"Use the desktop reminder or the menu-bar Start Meeting Notes item when the call begins. (Localisé)",
|
|
1473
1497
|
},
|
|
1474
1498
|
};
|
|
1475
1499
|
|
|
@@ -197,6 +197,11 @@ const messages = {
|
|
|
197
197
|
edit: "संपादित करें",
|
|
198
198
|
aiTools: "एआई उपकरण",
|
|
199
199
|
enhanceRecording: "इस रिकॉर्डिंग को बेहतर बनाएं",
|
|
200
|
+
includeFullVideo: "पूरी वीडियो शामिल करें",
|
|
201
|
+
includeFullVideoDescription:
|
|
202
|
+
"चालू होने पर, AI टूल रिकॉर्डिंग देखते हैं (केवल Gemini) ऑन-स्क्रीन संदर्भ के लिए — केवल ऑडियो ट्रांसक्रिप्ट नहीं। यह डिफ़ॉल्ट शीर्षक और विवरण जनरेशन पर भी लागू होता है। Builder या GEMINI_API_KEY के ज़रिए Gemini मॉडल आवश्यक है।",
|
|
203
|
+
includeFullVideoOn: "AI टूल पूरी वीडियो का उपयोग करेंगे (Gemini)",
|
|
204
|
+
includeFullVideoOff: "AI टूल केवल ट्रांसक्रिप्ट का उपयोग करेंगे",
|
|
200
205
|
regenerateTitle: "शीर्षक पुन: उत्पन्न करें",
|
|
201
206
|
regenerateDescription: "विवरण पुनर्जीवित करें",
|
|
202
207
|
autoChapters: "ऑटो अध्याय",
|
|
@@ -322,7 +327,7 @@ const messages = {
|
|
|
322
327
|
removing: "हटाया जा रहा है...",
|
|
323
328
|
remove: "निकालना",
|
|
324
329
|
desktopHint:
|
|
325
|
-
"
|
|
330
|
+
"नोट्स शुरू करने के लिए, मेनू बार से Clips Desktop खोलें और Start Meeting Notes चुनें, या रिमाइंडर आने पर Start notes पर क्लिक करें। Clips माइक्रोफ़ोन और सिस्टम ऑडियो कैप्चर करके यहां ट्रांसक्रिप्ट लिखता है।",
|
|
326
331
|
getDesktopApp: "डेस्कटॉप ऐप प्राप्त करें",
|
|
327
332
|
generateNotesFailed: "नोट जनरेट नहीं किए जा सके. पुनः प्रयास करें।",
|
|
328
333
|
attendee_one: "{{count}} सहभागी",
|
|
@@ -985,7 +990,9 @@ Clips में उपयोगकर्ताओं को दिखने व
|
|
|
985
990
|
inHours: "{{count}} घंटे में",
|
|
986
991
|
join: "जुड़ें",
|
|
987
992
|
openNotes: "नोट्स खोलें",
|
|
988
|
-
open: "खोलें",
|
|
993
|
+
open: "नोट्स खोलें",
|
|
994
|
+
startFromDesktopNow: "डेस्कटॉप रिमाइंडर या मेनू बार से लाइव नोट्स शुरू करें।",
|
|
995
|
+
startFromDesktopLater: "समय होने पर Clips Desktop Start notes दिखाएगा।",
|
|
989
996
|
},
|
|
990
997
|
transcriptBubbles: {
|
|
991
998
|
listening: "सुन रहा है…",
|
|
@@ -1418,10 +1425,10 @@ Clips में उपयोगकर्ताओं को दिखने व
|
|
|
1418
1425
|
"Google Calendar needs to be reconnected to keep showing your upcoming meetings. (स्थानीयकृत)",
|
|
1419
1426
|
connectGoogleCalendar: "Connect Google Calendar (स्थानीयकृत)",
|
|
1420
1427
|
desktopReminder:
|
|
1421
|
-
"
|
|
1428
|
+
"Connect Google Calendar, keep Clips Desktop open, then click Start notes from the reminder or the menu bar when your meeting begins. (स्थानीयकृत)",
|
|
1422
1429
|
getDesktopApp: "Get desktop app (स्थानीयकृत)",
|
|
1423
1430
|
requiredForReminders:
|
|
1424
|
-
"
|
|
1431
|
+
"Desktop captures mic + system audio for meeting transcription. (स्थानीयकृत)",
|
|
1425
1432
|
calendarConnected: "Calendar connected (स्थानीयकृत)",
|
|
1426
1433
|
calendarDisconnected: "Calendar disconnected (स्थानीयकृत)",
|
|
1427
1434
|
calendarSettings: "Calendar settings (स्थानीयकृत)",
|
|
@@ -1429,14 +1436,27 @@ Clips में उपयोगकर्ताओं को दिखने व
|
|
|
1429
1436
|
"Connect Google Calendar for meeting reminders. (स्थानीयकृत)",
|
|
1430
1437
|
disconnectGoogleCalendarTitle: "Disconnect Google Calendar? (स्थानीयकृत)",
|
|
1431
1438
|
title: "Meetings (स्थानीयकृत)",
|
|
1432
|
-
intro:
|
|
1439
|
+
intro:
|
|
1440
|
+
"Upcoming calendar meetings and your recorded notes. Start live notes from Clips Desktop at meeting time. (स्थानीयकृत)",
|
|
1433
1441
|
searchPlaceholder: "Search meetings... (स्थानीयकृत)",
|
|
1434
1442
|
clearSearch: "Clear search (स्थानीयकृत)",
|
|
1435
1443
|
noMeetingsYet: "No meetings yet (स्थानीयकृत)",
|
|
1436
1444
|
noMeetingsDescription:
|
|
1437
|
-
"
|
|
1445
|
+
"Connect your calendar and keep Clips Desktop open. When a meeting starts, use Start notes from the reminder or menu bar. (स्थानीयकृत)",
|
|
1438
1446
|
noMeetingsMatch: 'No meetings match "{{query}}" (स्थानीयकृत)',
|
|
1439
1447
|
refreshing: "Refreshing… (स्थानीयकृत)",
|
|
1448
|
+
howToTriggerTitle: "How to trigger meeting notes (स्थानीयकृत)",
|
|
1449
|
+
howToTriggerDescription:
|
|
1450
|
+
"Meeting notes are the Granola-style flow in Clips: calendar events appear here, the desktop app captures mic and system audio, and the transcript plus AI notes land back in this history. (स्थानीयकृत)",
|
|
1451
|
+
guideCalendarTitle: "Connect Google Calendar (स्थानीयकृत)",
|
|
1452
|
+
guideCalendarDescription:
|
|
1453
|
+
"Meetings are pulled from your calendar so Clips knows when to remind you. (स्थानीयकृत)",
|
|
1454
|
+
guideDesktopTitle: "Keep Clips Desktop open (स्थानीयकृत)",
|
|
1455
|
+
guideDesktopDescription:
|
|
1456
|
+
"Desktop capture is required for mic plus system-audio transcription. (स्थानीयकृत)",
|
|
1457
|
+
guideStartTitle: "Click Start notes (स्थानीयकृत)",
|
|
1458
|
+
guideStartDescription:
|
|
1459
|
+
"Use the desktop reminder or the menu-bar Start Meeting Notes item when the call begins. (स्थानीयकृत)",
|
|
1440
1460
|
},
|
|
1441
1461
|
};
|
|
1442
1462
|
|