@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.
- package/corpus/README.md +1 -1
- package/corpus/core/CHANGELOG.md +16 -0
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/client/resources/ResourceTree.tsx +11 -5
- package/corpus/core/src/client/resources/ResourcesPanel.tsx +141 -18
- package/corpus/templates/clips/.agents/skills/meetings/SKILL.md +11 -1
- package/corpus/templates/clips/AGENTS.md +14 -4
- package/corpus/templates/clips/actions/update-meeting.ts +13 -3
- package/corpus/templates/clips/actions/view-screen.ts +1 -0
- package/corpus/templates/clips/app/components/meetings/share-meeting-dialog.tsx +96 -4
- package/corpus/templates/clips/app/i18n/en-US.ts +11 -0
- package/corpus/templates/clips/app/lib/public-meeting.ts +85 -0
- package/corpus/templates/clips/app/routes/_app.meetings.$meetingId.tsx +11 -1
- package/corpus/templates/clips/app/routes/share.$shareId.tsx +6 -7
- package/corpus/templates/clips/app/routes/share.meeting.$meetingId.tsx +241 -135
- package/corpus/templates/clips/changelog/2026-07-20-meeting-share-links-can-include-the-full-transcript-with-an-.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-20-opening-zoom-meeting-launches-native-app.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-20-recording-retries-the-default-mac-microphone-when-a-saved-in.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-20-shared-clips-now-tell-agents-to-wait-while-uploads-and-trans.md +6 -0
- package/corpus/templates/clips/desktop/src/app.tsx +7 -11
- package/corpus/templates/clips/desktop/src/lib/meeting-join-url.ts +1 -33
- package/corpus/templates/clips/desktop/src/lib/open-meeting-join-url.ts +22 -0
- package/corpus/templates/clips/desktop/src/lib/transcription-engine.ts +65 -2
- package/corpus/templates/clips/desktop/src/overlays/meeting-notification.tsx +2 -3
- package/corpus/templates/clips/server/db/schema.ts +3 -0
- package/corpus/templates/clips/server/lib/public-agent-context.ts +31 -21
- package/corpus/templates/clips/server/plugins/auth.ts +1 -0
- package/corpus/templates/clips/server/plugins/db.ts +6 -0
- package/corpus/templates/clips/server/routes/api/agent-transcript.json.get.ts +13 -3
- package/corpus/templates/clips/server/routes/api/public-meeting.get.ts +152 -0
- package/corpus/templates/clips/shared/agent-context.ts +60 -0
- package/corpus/templates/clips/shared/meeting-join-url.ts +31 -0
- package/corpus/templates/content/.agents/skills/document-editing/SKILL.md +9 -1
- package/corpus/templates/content/AGENTS.md +4 -1
- package/corpus/templates/content/actions/_content-spaces.ts +6 -1
- package/corpus/templates/content/actions/_database-row-batch.ts +15 -2
- package/corpus/templates/content/actions/_database-utils.ts +83 -15
- package/corpus/templates/content/actions/add-database-item.ts +3 -0
- package/corpus/templates/content/actions/connect-local-folder-source.ts +2 -1
- package/corpus/templates/content/actions/delete-content-database.ts +12 -9
- package/corpus/templates/content/actions/delete-database-items.ts +3 -2
- package/corpus/templates/content/actions/delete-document.ts +233 -6
- package/corpus/templates/content/actions/duplicate-database-item.ts +1 -0
- package/corpus/templates/content/actions/get-document.ts +4 -1
- package/corpus/templates/content/actions/list-content-databases.ts +1 -0
- package/corpus/templates/content/actions/list-documents.ts +1 -0
- package/corpus/templates/content/actions/list-trashed-content-databases.ts +8 -2
- package/corpus/templates/content/actions/list-trashed-documents.ts +50 -0
- package/corpus/templates/content/actions/permanently-delete-document.ts +28 -0
- package/corpus/templates/content/actions/pull-document.ts +15 -2
- package/corpus/templates/content/actions/restore-content-database.ts +48 -11
- package/corpus/templates/content/actions/restore-document.ts +28 -0
- package/corpus/templates/content/actions/search-documents.ts +2 -1
- package/corpus/templates/content/actions/view-screen.ts +2 -1
- package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +149 -55
- package/corpus/templates/content/app/components/editor/database/GalleryView.tsx +7 -2
- package/corpus/templates/content/app/components/editor/database/ListView.tsx +7 -2
- package/corpus/templates/content/app/components/editor/database/TimelineView.tsx +3 -0
- package/corpus/templates/content/app/components/editor/database/sidebar.tsx +26 -5
- package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +243 -163
- package/corpus/templates/content/app/components/sidebar/WorkspaceSourceMenu.tsx +154 -0
- package/corpus/templates/content/app/components/sidebar/select-content-space.ts +11 -0
- package/corpus/templates/content/app/hooks/use-content-database.ts +6 -0
- package/corpus/templates/content/app/hooks/use-documents.ts +57 -0
- package/corpus/templates/content/app/i18n-data.ts +83 -2
- package/corpus/templates/content/app/routes/_app.local-files.tsx +8 -1
- package/corpus/templates/content/changelog/2026-07-19-pages-now-move-to-a-reversible-trash-and-the-organization-pi.md +6 -0
- package/corpus/templates/content/changelog/2026-07-20-trash-actions-now-preserve-independent-archived-pages-enforc.md +6 -0
- package/corpus/templates/content/changelog/2026-07-20-workspace-toggles-now-stay-independently-open-or-closed-and-.md +6 -0
- package/corpus/templates/content/changelog/2026-07-20-workspaces-can-be-added-from-a-blank-workspace-or-a-connecte.md +6 -0
- package/corpus/templates/content/parity/matrix.md +1 -1
- package/corpus/templates/content/parity/matrix.ts +3 -0
- package/corpus/templates/content/server/db/schema.ts +2 -0
- package/corpus/templates/content/server/lib/public-documents.ts +8 -2
- package/corpus/templates/content/server/plugins/db.ts +52 -0
- package/corpus/templates/content/server/routes/api/document-agent-context.json.get.ts +2 -2
- package/corpus/templates/content/shared/api.ts +10 -0
- package/corpus/toolkit/CHANGELOG.md +6 -0
- package/corpus/toolkit/package.json +1 -1
- package/corpus/toolkit/src/ui/progress.tsx +3 -2
- package/dist/client/resources/ResourceTree.d.ts +3 -1
- package/dist/client/resources/ResourceTree.d.ts.map +1 -1
- package/dist/client/resources/ResourceTree.js +4 -4
- package/dist/client/resources/ResourceTree.js.map +1 -1
- package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
- package/dist/client/resources/ResourcesPanel.js +55 -6
- package/dist/client/resources/ResourcesPanel.js.map +1 -1
- package/dist/file-upload/actions/upload-image.d.ts +1 -1
- package/dist/notifications/routes.d.ts +3 -3
- package/dist/observability/routes.d.ts +5 -5
- package/dist/secrets/routes.d.ts +9 -9
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/package.json +3 -3
- package/src/client/resources/ResourceTree.tsx +11 -5
- 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?: {
|
|
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
|
-
|
|
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
|
-
|
|
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
|
<>
|