@agent-native/core 0.114.4 → 0.114.6

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 (95) hide show
  1. package/corpus/README.md +1 -1
  2. package/corpus/core/CHANGELOG.md +16 -0
  3. package/corpus/core/package.json +1 -1
  4. package/corpus/core/src/client/resources/ResourceTree.tsx +11 -5
  5. package/corpus/core/src/client/resources/ResourcesPanel.tsx +141 -18
  6. package/corpus/templates/clips/.agents/skills/meetings/SKILL.md +11 -1
  7. package/corpus/templates/clips/AGENTS.md +14 -4
  8. package/corpus/templates/clips/actions/update-meeting.ts +13 -3
  9. package/corpus/templates/clips/actions/view-screen.ts +1 -0
  10. package/corpus/templates/clips/app/components/meetings/share-meeting-dialog.tsx +96 -4
  11. package/corpus/templates/clips/app/i18n/en-US.ts +11 -0
  12. package/corpus/templates/clips/app/lib/public-meeting.ts +85 -0
  13. package/corpus/templates/clips/app/routes/_app.meetings.$meetingId.tsx +11 -1
  14. package/corpus/templates/clips/app/routes/share.$shareId.tsx +6 -7
  15. package/corpus/templates/clips/app/routes/share.meeting.$meetingId.tsx +241 -135
  16. package/corpus/templates/clips/changelog/2026-07-20-meeting-share-links-can-include-the-full-transcript-with-an-.md +6 -0
  17. package/corpus/templates/clips/changelog/2026-07-20-opening-zoom-meeting-launches-native-app.md +6 -0
  18. package/corpus/templates/clips/changelog/2026-07-20-recording-retries-the-default-mac-microphone-when-a-saved-in.md +6 -0
  19. package/corpus/templates/clips/changelog/2026-07-20-shared-clips-now-tell-agents-to-wait-while-uploads-and-trans.md +6 -0
  20. package/corpus/templates/clips/desktop/src/app.tsx +7 -11
  21. package/corpus/templates/clips/desktop/src/lib/meeting-join-url.ts +1 -33
  22. package/corpus/templates/clips/desktop/src/lib/open-meeting-join-url.ts +22 -0
  23. package/corpus/templates/clips/desktop/src/lib/transcription-engine.ts +65 -2
  24. package/corpus/templates/clips/desktop/src/overlays/meeting-notification.tsx +2 -3
  25. package/corpus/templates/clips/server/db/schema.ts +3 -0
  26. package/corpus/templates/clips/server/lib/public-agent-context.ts +31 -21
  27. package/corpus/templates/clips/server/plugins/auth.ts +1 -0
  28. package/corpus/templates/clips/server/plugins/db.ts +6 -0
  29. package/corpus/templates/clips/server/routes/api/agent-transcript.json.get.ts +13 -3
  30. package/corpus/templates/clips/server/routes/api/public-meeting.get.ts +152 -0
  31. package/corpus/templates/clips/shared/agent-context.ts +60 -0
  32. package/corpus/templates/clips/shared/meeting-join-url.ts +31 -0
  33. package/corpus/templates/content/.agents/skills/document-editing/SKILL.md +9 -1
  34. package/corpus/templates/content/AGENTS.md +4 -1
  35. package/corpus/templates/content/actions/_content-spaces.ts +6 -1
  36. package/corpus/templates/content/actions/_database-row-batch.ts +15 -2
  37. package/corpus/templates/content/actions/_database-utils.ts +83 -15
  38. package/corpus/templates/content/actions/add-database-item.ts +3 -0
  39. package/corpus/templates/content/actions/connect-local-folder-source.ts +2 -1
  40. package/corpus/templates/content/actions/delete-content-database.ts +12 -9
  41. package/corpus/templates/content/actions/delete-database-items.ts +3 -2
  42. package/corpus/templates/content/actions/delete-document.ts +233 -6
  43. package/corpus/templates/content/actions/duplicate-database-item.ts +1 -0
  44. package/corpus/templates/content/actions/get-document.ts +4 -1
  45. package/corpus/templates/content/actions/list-content-databases.ts +1 -0
  46. package/corpus/templates/content/actions/list-documents.ts +1 -0
  47. package/corpus/templates/content/actions/list-trashed-content-databases.ts +8 -2
  48. package/corpus/templates/content/actions/list-trashed-documents.ts +50 -0
  49. package/corpus/templates/content/actions/permanently-delete-document.ts +28 -0
  50. package/corpus/templates/content/actions/pull-document.ts +15 -2
  51. package/corpus/templates/content/actions/restore-content-database.ts +48 -11
  52. package/corpus/templates/content/actions/restore-document.ts +28 -0
  53. package/corpus/templates/content/actions/search-documents.ts +2 -1
  54. package/corpus/templates/content/actions/view-screen.ts +2 -1
  55. package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +149 -55
  56. package/corpus/templates/content/app/components/editor/database/GalleryView.tsx +7 -2
  57. package/corpus/templates/content/app/components/editor/database/ListView.tsx +7 -2
  58. package/corpus/templates/content/app/components/editor/database/TimelineView.tsx +3 -0
  59. package/corpus/templates/content/app/components/editor/database/sidebar.tsx +26 -5
  60. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +243 -163
  61. package/corpus/templates/content/app/components/sidebar/WorkspaceSourceMenu.tsx +154 -0
  62. package/corpus/templates/content/app/components/sidebar/select-content-space.ts +11 -0
  63. package/corpus/templates/content/app/hooks/use-content-database.ts +6 -0
  64. package/corpus/templates/content/app/hooks/use-documents.ts +57 -0
  65. package/corpus/templates/content/app/i18n-data.ts +83 -2
  66. package/corpus/templates/content/app/routes/_app.local-files.tsx +8 -1
  67. package/corpus/templates/content/changelog/2026-07-19-pages-now-move-to-a-reversible-trash-and-the-organization-pi.md +6 -0
  68. package/corpus/templates/content/changelog/2026-07-20-trash-actions-now-preserve-independent-archived-pages-enforc.md +6 -0
  69. package/corpus/templates/content/changelog/2026-07-20-workspace-toggles-now-stay-independently-open-or-closed-and-.md +6 -0
  70. package/corpus/templates/content/changelog/2026-07-20-workspaces-can-be-added-from-a-blank-workspace-or-a-connecte.md +6 -0
  71. package/corpus/templates/content/parity/matrix.md +1 -1
  72. package/corpus/templates/content/parity/matrix.ts +3 -0
  73. package/corpus/templates/content/server/db/schema.ts +2 -0
  74. package/corpus/templates/content/server/lib/public-documents.ts +8 -2
  75. package/corpus/templates/content/server/plugins/db.ts +52 -0
  76. package/corpus/templates/content/server/routes/api/document-agent-context.json.get.ts +2 -2
  77. package/corpus/templates/content/shared/api.ts +10 -0
  78. package/corpus/toolkit/CHANGELOG.md +6 -0
  79. package/corpus/toolkit/package.json +1 -1
  80. package/corpus/toolkit/src/ui/progress.tsx +3 -2
  81. package/dist/client/resources/ResourceTree.d.ts +3 -1
  82. package/dist/client/resources/ResourceTree.d.ts.map +1 -1
  83. package/dist/client/resources/ResourceTree.js +4 -4
  84. package/dist/client/resources/ResourceTree.js.map +1 -1
  85. package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
  86. package/dist/client/resources/ResourcesPanel.js +55 -6
  87. package/dist/client/resources/ResourcesPanel.js.map +1 -1
  88. package/dist/file-upload/actions/upload-image.d.ts +1 -1
  89. package/dist/notifications/routes.d.ts +3 -3
  90. package/dist/observability/routes.d.ts +5 -5
  91. package/dist/secrets/routes.d.ts +9 -9
  92. package/dist/server/transcribe-voice.d.ts +1 -1
  93. package/package.json +3 -3
  94. package/src/client/resources/ResourceTree.tsx +11 -5
  95. package/src/client/resources/ResourcesPanel.tsx +141 -18
@@ -0,0 +1,85 @@
1
+ import { appBasePath } from "@agent-native/core/client/api-path";
2
+
3
+ import type { TranscriptSegment } from "@/components/meetings/transcript-bubbles";
4
+
5
+ export interface PublicMeetingBullet {
6
+ text: string;
7
+ }
8
+
9
+ export interface PublicMeetingParticipant {
10
+ email: string;
11
+ name: string | null;
12
+ isOrganizer: boolean;
13
+ }
14
+
15
+ export interface PublicMeetingActionItem {
16
+ id: string;
17
+ text: string;
18
+ assigneeEmail: string | null;
19
+ completedAt: string | null;
20
+ }
21
+
22
+ export interface PublicMeetingTranscript {
23
+ status: string;
24
+ language: string | null;
25
+ fullText: string | null;
26
+ segments: TranscriptSegment[];
27
+ }
28
+
29
+ export interface PublicMeeting {
30
+ id: string;
31
+ title: string;
32
+ scheduledStart: string | null;
33
+ summaryMd: string;
34
+ bullets: PublicMeetingBullet[];
35
+ participants: PublicMeetingParticipant[];
36
+ actionItems: PublicMeetingActionItem[];
37
+ actualStart: string | null;
38
+ actualEnd: string | null;
39
+ transcriptStatus: string | null;
40
+ transcript?: PublicMeetingTranscript | null;
41
+ }
42
+
43
+ export interface PublicMeetingPayload {
44
+ meeting: PublicMeeting;
45
+ viewer: {
46
+ role: "owner" | "admin" | "editor" | "viewer";
47
+ canEdit: boolean;
48
+ isOwner: boolean;
49
+ } | null;
50
+ }
51
+
52
+ export interface PublicMeetingResult {
53
+ ok: boolean;
54
+ status: number;
55
+ data: PublicMeetingPayload | { error?: string };
56
+ }
57
+
58
+ export function publicMeetingUrl(
59
+ meetingId: string,
60
+ origin: string,
61
+ basePath: string,
62
+ ): string {
63
+ const url = new URL(`${basePath}/api/public-meeting`, origin);
64
+ url.searchParams.set("id", meetingId);
65
+ return url.toString();
66
+ }
67
+
68
+ export async function fetchPublicMeeting(
69
+ meetingId: string,
70
+ options: {
71
+ signal?: AbortSignal;
72
+ origin?: string;
73
+ basePath?: string;
74
+ } = {},
75
+ ): Promise<PublicMeetingResult> {
76
+ const origin = options.origin ?? window.location.origin;
77
+ const basePath = options.basePath ?? appBasePath();
78
+ const response = await fetch(publicMeetingUrl(meetingId, origin, basePath), {
79
+ signal: options.signal,
80
+ });
81
+ const data = (await response.json().catch(() => ({}))) as
82
+ | PublicMeetingPayload
83
+ | { error?: string };
84
+ return { ok: response.ok, status: response.status, data };
85
+ }
@@ -99,6 +99,7 @@ interface Meeting {
99
99
  recordingId?: string | null;
100
100
  recordingDurationMs?: number | null;
101
101
  transcriptStatus?: "pending" | "ready" | "failed" | "in_progress" | string;
102
+ shareTranscript?: boolean | null;
102
103
  summaryMd?: string | null;
103
104
  userNotesMd?: string | null;
104
105
  bulletsJson?: Bullet[] | null;
@@ -313,7 +314,10 @@ export default function MeetingDetailRoute() {
313
314
  meeting?: Omit<Meeting, "participants" | "segmentsJson"> | null;
314
315
  participants?: Participant[];
315
316
  actionItems?: ActionItem[];
316
- transcript?: { segmentsJson?: TranscriptSegment[] | null } | null;
317
+ transcript?: {
318
+ fullText?: string | null;
319
+ segmentsJson?: TranscriptSegment[] | null;
320
+ } | null;
317
321
  recording?: { id: string; durationMs?: number | null } | null;
318
322
  role?: "owner" | "admin" | "editor" | "viewer";
319
323
  };
@@ -682,6 +686,12 @@ export default function MeetingDetailRoute() {
682
686
  <ShareMeetingPopover
683
687
  meetingId={meeting.id}
684
688
  meetingTitle={meeting.title}
689
+ shareTranscript={meeting.shareTranscript === true}
690
+ transcriptReady={
691
+ meeting.transcriptStatus === "ready" &&
692
+ (segments.length > 0 ||
693
+ Boolean(data?.transcript?.fullText?.trim()))
694
+ }
685
695
  >
686
696
  <Button size="sm" className="shrink-0 gap-1.5">
687
697
  <IconShare3 className="h-4 w-4" />
@@ -69,6 +69,7 @@ import { getDb, schema } from "../../server/db";
69
69
  import { resolvePlayerThumbnailUrl } from "../../server/lib/player-thumbnail-url";
70
70
  import {
71
71
  buildAgentApiUrls,
72
+ buildAgentDiscoveryPayload,
72
73
  CLIPS_AGENT_ACCESS_PARAM,
73
74
  CLIP_AGENT_ACCESS_TOKEN_PREFIX,
74
75
  safeJsonForHtml,
@@ -305,20 +306,18 @@ function AgentDiscovery({
305
306
  recording,
306
307
  agentContextUrl,
307
308
  }: {
308
- recording: Pick<SharePageMetaRecording, "id" | "title"> | null;
309
+ recording: Pick<SharePageMetaRecording, "id" | "title" | "status"> | null;
309
310
  agentContextUrl: string | null;
310
311
  }) {
311
312
  const t = useT();
312
313
  if (!recording || !agentContextUrl) return null;
313
314
 
314
- const payload = {
315
- type: "agent-native.clip.discovery",
316
- clipId: recording.id,
315
+ const payload = buildAgentDiscoveryPayload({
316
+ recordingId: recording.id,
317
317
  title: recording.title,
318
+ status: recording.status,
318
319
  agentContextUrl,
319
- instructions:
320
- "Fetch agentContextUrl for the transcript and JPEG frame URLs. Fetch the frame URLs to SEE the screen, not just read the transcript.",
321
- };
320
+ });
322
321
 
323
322
  return (
324
323
  <>