@agent-native/core 0.153.0 → 0.153.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.
Files changed (38) hide show
  1. package/corpus/templates/analytics/.agents/skills/adhoc-analysis/SKILL.md +21 -19
  2. package/corpus/templates/calendar/app/components/calendar/DayView.tsx +3 -2
  3. package/corpus/templates/calendar/app/components/calendar/WeekView.tsx +3 -2
  4. package/corpus/templates/calendar/app/lib/event-layout.ts +16 -35
  5. package/corpus/templates/clips/app/components/meetings/share-meeting-dialog.tsx +27 -55
  6. package/corpus/templates/clips/app/components/player/share-dialog.tsx +104 -66
  7. package/corpus/templates/clips/app/components/sharing/share-ui.tsx +45 -43
  8. package/corpus/templates/clips/app/routes/_app.meetings.$meetingId.tsx +0 -1
  9. package/corpus/templates/clips/desktop/src/app.tsx +818 -442
  10. package/corpus/templates/clips/desktop/src/styles.css +244 -2
  11. package/corpus/templates/clips/desktop/src-tauri/src/clips/mod.rs +2 -2
  12. package/corpus/templates/clips/desktop/src-tauri/src/lib.rs +1 -0
  13. package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +584 -1
  14. package/corpus/templates/clips/desktop/src-tauri/src/rewind_clip.rs +25 -0
  15. package/corpus/templates/clips/desktop/src-tauri/src/util.rs +1 -1
  16. package/corpus/templates/factory/app/routes/factory.tsx +0 -3
  17. package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +1 -1
  18. package/corpus/templates/slides/app/components/editor/ShareDialog.tsx +28 -25
  19. package/corpus/templates/slides/app/components/editor/SlideContextToolbar.tsx +50 -0
  20. package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +12 -60
  21. package/dist/agent/production-agent.d.ts +8 -0
  22. package/dist/agent/production-agent.js +25 -2
  23. package/dist/agent/run-manager.js +13 -3
  24. package/dist/client/AgentPanel.js +6 -4
  25. package/dist/client/org/WorkspaceNotice.js +7 -4
  26. package/dist/client/sharing/ShareButton.d.ts +2 -2
  27. package/dist/client/sharing/ShareButton.js +18 -13
  28. package/dist/client/sharing/ShareDialog.d.ts +1 -1
  29. package/dist/client/sharing/ShareDialog.js +16 -11
  30. package/dist/collab/awareness.d.ts +2 -2
  31. package/dist/collab/struct-routes.d.ts +1 -1
  32. package/dist/resources/handlers.d.ts +1 -1
  33. package/dist/server/auth.js +18 -4
  34. package/dist/server/better-auth-instance.js +8 -1
  35. package/dist/server/magic-link-attribution.d.ts +21 -0
  36. package/dist/server/magic-link-attribution.js +115 -0
  37. package/dist/server/realtime-token.d.ts +1 -1
  38. package/package.json +1 -1
@@ -14,7 +14,7 @@ import {
14
14
  IconWorld,
15
15
  } from "@tabler/icons-react";
16
16
  import { useQueryClient } from "@tanstack/react-query";
17
- import { useMemo, useState } from "react";
17
+ import { useMemo, useState, type ReactNode } from "react";
18
18
 
19
19
  import {
20
20
  Avatar as UserAvatar,
@@ -136,34 +136,19 @@ export function useResourceVisibilityMutation(
136
136
  }
137
137
 
138
138
  // ---------------------------------------------------------------------------
139
- // Header (title + owner)
139
+ // Compact section labels
140
140
  // ---------------------------------------------------------------------------
141
141
 
142
- export function ShareCardHeader({
143
- title,
144
- ownerEmail,
145
- reserveCloseButton = false,
142
+ export function ShareSectionLabel({
143
+ children,
144
+ className,
146
145
  }: {
147
- title: string;
148
- ownerEmail?: string | null;
149
- reserveCloseButton?: boolean;
146
+ children: ReactNode;
147
+ className?: string;
150
148
  }) {
151
- const t = useT();
152
149
  return (
153
- <div
154
- className={cn(
155
- "min-w-0 border-b border-border px-4 pb-3 pt-3",
156
- reserveCloseButton && "pe-12",
157
- )}
158
- >
159
- <div className="min-w-0 truncate text-sm font-semibold" title={title}>
160
- {title}
161
- </div>
162
- {ownerEmail ? (
163
- <div className="mt-0.5 truncate text-xs text-muted-foreground">
164
- {t("shareUi.owner", { email: ownerEmail })}
165
- </div>
166
- ) : null}
150
+ <div className={cn("text-xs font-medium text-muted-foreground", className)}>
151
+ {children}
167
152
  </div>
168
153
  );
169
154
  }
@@ -178,6 +163,7 @@ export function GeneralAccessSelect({
178
163
  isPending,
179
164
  onChange,
180
165
  publicDescription,
166
+ showDescription = true,
181
167
  }: {
182
168
  visibility: Visibility;
183
169
  canManage: boolean;
@@ -185,6 +171,7 @@ export function GeneralAccessSelect({
185
171
  onChange: (next: Visibility) => void;
186
172
  /** Override for the "public" visibility description (e.g. Clips comment hint). */
187
173
  publicDescription?: string;
174
+ showDescription?: boolean;
188
175
  }) {
189
176
  const t = useT();
190
177
  const meta = VIS_META[visibility];
@@ -195,9 +182,9 @@ export function GeneralAccessSelect({
195
182
 
196
183
  return (
197
184
  <div>
198
- <div className="mb-2 text-xs font-semibold">
185
+ <ShareSectionLabel className="mb-2">
199
186
  {t("shareUi.generalAccess")}
200
- </div>
187
+ </ShareSectionLabel>
201
188
  <div className="flex items-center gap-3">
202
189
  <span
203
190
  aria-hidden
@@ -222,7 +209,12 @@ export function GeneralAccessSelect({
222
209
  ))}
223
210
  </SelectContent>
224
211
  </Select>
225
- <div className="mt-0.5 text-xs text-muted-foreground">
212
+ <div
213
+ className={cn(
214
+ "mt-0.5 text-xs text-muted-foreground",
215
+ !showDescription && "sr-only",
216
+ )}
217
+ >
226
218
  {description}
227
219
  </div>
228
220
  </div>
@@ -238,25 +230,37 @@ export function GeneralAccessSelect({
238
230
  export function MakePublicCard({
239
231
  isPending,
240
232
  onMakePublic,
233
+ secondaryAction,
241
234
  }: {
242
235
  isPending: boolean;
243
236
  onMakePublic: () => void;
237
+ secondaryAction?: ReactNode;
244
238
  }) {
245
239
  const t = useT();
246
240
  return (
247
- <div className="rounded-md border border-border bg-muted/40 px-3 py-2.5">
248
- <p className="text-xs text-muted-foreground">
249
- {t("shareUi.restrictedLinkDescription")}
250
- </p>
251
- <Button
252
- type="button"
253
- size="sm"
254
- className="mt-2 h-7"
255
- onClick={onMakePublic}
256
- disabled={isPending}
257
- >
258
- {isPending ? t("shareUi.makingPublic") : t("shareUi.makePublicAndCopy")}
259
- </Button>
241
+ <div className="flex items-center justify-between gap-2 rounded-md bg-muted/40 px-3 py-2">
242
+ <p className="sr-only">{t("shareUi.restrictedLinkDescription")}</p>
243
+ <IconLock
244
+ aria-hidden
245
+ size={14}
246
+ strokeWidth={1.8}
247
+ className="text-muted-foreground"
248
+ />
249
+ <div className="flex items-center gap-2">
250
+ {secondaryAction}
251
+ <Button
252
+ type="button"
253
+ variant="outline"
254
+ size="sm"
255
+ className="h-7"
256
+ onClick={onMakePublic}
257
+ disabled={isPending}
258
+ >
259
+ {isPending
260
+ ? t("shareUi.makingPublic")
261
+ : t("shareUi.makePublicAndCopy")}
262
+ </Button>
263
+ </div>
260
264
  </div>
261
265
  );
262
266
  }
@@ -285,9 +289,7 @@ export function CopyField({
285
289
  return (
286
290
  <div>
287
291
  {label ? (
288
- <div className="mb-1 text-xs font-medium text-muted-foreground">
289
- {label}
290
- </div>
292
+ <ShareSectionLabel className="mb-1">{label}</ShareSectionLabel>
291
293
  ) : null}
292
294
  <div className="flex items-stretch gap-2">
293
295
  <Input
@@ -704,7 +704,6 @@ export default function MeetingDetailRoute() {
704
704
  ) : null}
705
705
  <ShareMeetingPopover
706
706
  meetingId={meeting.id}
707
- meetingTitle={meeting.title}
708
707
  shareTranscript={meeting.shareTranscript === true}
709
708
  transcriptReady={
710
709
  meeting.transcriptStatus === "ready" &&