@agent-native/core 0.68.2 → 0.69.0
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 +12 -0
- package/corpus/core/docs/content/template-clips.md +12 -7
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/client/AgentPanel.tsx +2 -4
- package/corpus/core/src/extensions/content-patch.ts +12 -2
- package/corpus/core/src/extensions/web-search-tool.ts +45 -4
- package/corpus/core/src/secrets/register-framework-secrets.ts +7 -0
- package/corpus/core/src/server/social-og-image.ts +6 -1
- package/corpus/core/src/vite/client.ts +83 -1
- package/corpus/templates/clips/app/components/recorder/pre-record-panel.tsx +69 -13
- package/corpus/templates/clips/app/components/recorder/recorder-engine.ts +38 -2
- package/corpus/templates/clips/app/lib/capture-install-options.ts +2 -1
- package/corpus/templates/clips/app/lib/recorder-preferences.ts +67 -0
- package/corpus/templates/clips/app/routes/_app.trash.tsx +21 -0
- package/corpus/templates/clips/app/routes/record.tsx +14 -3
- package/corpus/templates/clips/chrome-extension/STORE_DRAFT.md +5 -2
- package/corpus/templates/content/vite.config.ts +37 -1
- package/corpus/templates/content/vitest.config.ts +3 -0
- package/dist/client/AgentPanel.d.ts +1 -1
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +1 -1
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/extensions/content-patch.d.ts.map +1 -1
- package/dist/extensions/content-patch.js +10 -2
- package/dist/extensions/content-patch.js.map +1 -1
- package/dist/extensions/web-search-tool.d.ts +5 -3
- package/dist/extensions/web-search-tool.d.ts.map +1 -1
- package/dist/extensions/web-search-tool.js +36 -4
- package/dist/extensions/web-search-tool.js.map +1 -1
- package/dist/secrets/register-framework-secrets.d.ts.map +1 -1
- package/dist/secrets/register-framework-secrets.js +6 -0
- package/dist/secrets/register-framework-secrets.js.map +1 -1
- package/dist/server/social-og-image.d.ts.map +1 -1
- package/dist/server/social-og-image.js +5 -1
- package/dist/server/social-og-image.js.map +1 -1
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +83 -1
- package/dist/vite/client.js.map +1 -1
- package/docs/content/template-clips.md +12 -7
- package/package.json +1 -1
|
@@ -88,6 +88,16 @@ export default function TrashRoute() {
|
|
|
88
88
|
};
|
|
89
89
|
|
|
90
90
|
const selectedIds = Array.from(selected);
|
|
91
|
+
const allSelected =
|
|
92
|
+
recordings.length > 0 && selected.size === recordings.length;
|
|
93
|
+
|
|
94
|
+
const toggleSelectAll = () => {
|
|
95
|
+
setSelected((prev) =>
|
|
96
|
+
prev.size === recordings.length
|
|
97
|
+
? new Set()
|
|
98
|
+
: new Set(recordings.map((r) => r.id)),
|
|
99
|
+
);
|
|
100
|
+
};
|
|
91
101
|
|
|
92
102
|
return (
|
|
93
103
|
<div className="flex flex-1 flex-col min-h-0">
|
|
@@ -96,6 +106,17 @@ export default function TrashRoute() {
|
|
|
96
106
|
<div className="ml-auto flex items-center gap-2">
|
|
97
107
|
{selectedIds.length > 0 && (
|
|
98
108
|
<>
|
|
109
|
+
<span className="text-sm text-muted-foreground">
|
|
110
|
+
{selectedIds.length} selected
|
|
111
|
+
</span>
|
|
112
|
+
<Button
|
|
113
|
+
size="sm"
|
|
114
|
+
variant="ghost"
|
|
115
|
+
className="gap-1.5"
|
|
116
|
+
onClick={toggleSelectAll}
|
|
117
|
+
>
|
|
118
|
+
{allSelected ? "Deselect all" : "Select all"}
|
|
119
|
+
</Button>
|
|
99
120
|
<Button
|
|
100
121
|
size="sm"
|
|
101
122
|
variant="outline"
|
|
@@ -53,6 +53,10 @@ import {
|
|
|
53
53
|
compressBlobIfTooLarge,
|
|
54
54
|
formatMb,
|
|
55
55
|
} from "@/lib/compress";
|
|
56
|
+
import {
|
|
57
|
+
loadRecorderPreferences,
|
|
58
|
+
saveRecorderPreferences,
|
|
59
|
+
} from "@/lib/recorder-preferences";
|
|
56
60
|
import { cn } from "@/lib/utils";
|
|
57
61
|
|
|
58
62
|
// Client-side app-state writer (the server module pulls in Node's `events`
|
|
@@ -718,7 +722,14 @@ export default function RecordRoute() {
|
|
|
718
722
|
const [isPaused, setIsPaused] = useState(false);
|
|
719
723
|
const [elapsedMs, setElapsedMs] = useState(0);
|
|
720
724
|
const [cameraStream, setCameraStream] = useState<MediaStream | null>(null);
|
|
721
|
-
const [cameraSize, setCameraSize] = useState<CameraBubbleSize>(
|
|
725
|
+
const [cameraSize, setCameraSize] = useState<CameraBubbleSize>(
|
|
726
|
+
() => loadRecorderPreferences().cameraSize ?? "md",
|
|
727
|
+
);
|
|
728
|
+
// Remember the bubble size across visits alongside the panel's selections.
|
|
729
|
+
const handleCameraSizeChange = useCallback((size: CameraBubbleSize) => {
|
|
730
|
+
setCameraSize(size);
|
|
731
|
+
saveRecorderPreferences({ cameraSize: size });
|
|
732
|
+
}, []);
|
|
722
733
|
const [previewStream, setPreviewStream] = useState<MediaStream | null>(null);
|
|
723
734
|
// The capture surface the user actually picked in the browser's native screen
|
|
724
735
|
// picker (authority over the requested `displaySurface` hint). Drives whether
|
|
@@ -2058,7 +2069,7 @@ export default function RecordRoute() {
|
|
|
2058
2069
|
onImportLoom={importLoom}
|
|
2059
2070
|
importingLoom={loomImporting}
|
|
2060
2071
|
cameraSize={cameraSize}
|
|
2061
|
-
onCameraSizeChange={
|
|
2072
|
+
onCameraSizeChange={handleCameraSizeChange}
|
|
2062
2073
|
/>
|
|
2063
2074
|
) : (
|
|
2064
2075
|
<StorageSetupCard
|
|
@@ -2137,7 +2148,7 @@ export default function RecordRoute() {
|
|
|
2137
2148
|
<CameraBubble
|
|
2138
2149
|
stream={cameraStream}
|
|
2139
2150
|
size={cameraSize}
|
|
2140
|
-
onSizeChange={
|
|
2151
|
+
onSizeChange={handleCameraSizeChange}
|
|
2141
2152
|
hidden={
|
|
2142
2153
|
(uiState !== "recording" && uiState !== "countdown") ||
|
|
2143
2154
|
hideBubbleForFullScreenCapture
|
|
@@ -6,6 +6,8 @@ Name: Agent-Native Clips
|
|
|
6
6
|
|
|
7
7
|
Chrome Web Store item ID: `baoipacpchggcdigagnajakiidcgcffn`
|
|
8
8
|
|
|
9
|
+
Chrome Web Store URL: `https://chromewebstore.google.com/detail/baoipacpchggcdigagnajakiidcgcffn`
|
|
10
|
+
|
|
9
11
|
Summary: Start Clips recordings from Chrome with optional redacted console and network diagnostics.
|
|
10
12
|
|
|
11
13
|
Category: Productivity
|
|
@@ -61,7 +63,8 @@ approved and there is a stable public URL.
|
|
|
61
63
|
|
|
62
64
|
- `VITE_CLIPS_CHROME_EXTENSION_ENABLED=1` reveals the Chrome option beside
|
|
63
65
|
Clips desktop prompts.
|
|
64
|
-
- `VITE_CLIPS_CHROME_EXTENSION_URL
|
|
65
|
-
|
|
66
|
+
- `VITE_CLIPS_CHROME_EXTENSION_URL` overrides the default install URL
|
|
67
|
+
(`https://chromewebstore.google.com/detail/baoipacpchggcdigagnajakiidcgcffn`)
|
|
68
|
+
if a deployment uses a different listing.
|
|
66
69
|
- Leave both unset while submitting the draft so production continues to send
|
|
67
70
|
users directly to the desktop app.
|
|
@@ -346,6 +346,42 @@ const dynamicLocalComponentDirs = (() => {
|
|
|
346
346
|
}
|
|
347
347
|
})();
|
|
348
348
|
|
|
349
|
+
const cloudflareSsrStubs =
|
|
350
|
+
process.env.NITRO_PRESET === "cloudflare_pages"
|
|
351
|
+
? [
|
|
352
|
+
"@assistant-ui/react",
|
|
353
|
+
"@tiptap/core",
|
|
354
|
+
"@tiptap/extension-blockquote",
|
|
355
|
+
"@tiptap/extension-code-block-lowlight",
|
|
356
|
+
"@tiptap/extension-collaboration",
|
|
357
|
+
"@tiptap/extension-collaboration-caret",
|
|
358
|
+
"@tiptap/extension-image",
|
|
359
|
+
"@tiptap/extension-link",
|
|
360
|
+
"@tiptap/extension-placeholder",
|
|
361
|
+
"@tiptap/extension-table",
|
|
362
|
+
"@tiptap/extension-table-cell",
|
|
363
|
+
"@tiptap/extension-table-header",
|
|
364
|
+
"@tiptap/extension-table-row",
|
|
365
|
+
"@tiptap/extension-task-item",
|
|
366
|
+
"@tiptap/extension-task-list",
|
|
367
|
+
"@tiptap/pm",
|
|
368
|
+
"@tiptap/react",
|
|
369
|
+
"@tiptap/starter-kit",
|
|
370
|
+
"@xterm/addon-fit",
|
|
371
|
+
"@xterm/addon-web-links",
|
|
372
|
+
"@xterm/xterm",
|
|
373
|
+
"katex",
|
|
374
|
+
"lowlight",
|
|
375
|
+
"prettier",
|
|
376
|
+
"react-markdown",
|
|
377
|
+
"remark-gfm",
|
|
378
|
+
"remark-mdx",
|
|
379
|
+
"tiptap-markdown",
|
|
380
|
+
"yjs",
|
|
381
|
+
"y-protocols",
|
|
382
|
+
]
|
|
383
|
+
: [];
|
|
384
|
+
|
|
349
385
|
export default defineConfig({
|
|
350
386
|
plugins: [contentLocalComponentsPlugin(), reactRouter()],
|
|
351
387
|
fsAllow: [
|
|
@@ -354,7 +390,7 @@ export default defineConfig({
|
|
|
354
390
|
],
|
|
355
391
|
// shiki only runs in AssistantChat's useEffect — keep it out of the
|
|
356
392
|
// CF Pages Functions bundle (25 MiB limit).
|
|
357
|
-
ssrStubs: ["shiki"],
|
|
393
|
+
ssrStubs: ["shiki", ...cloudflareSsrStubs],
|
|
358
394
|
optimizeDeps: {
|
|
359
395
|
include: [
|
|
360
396
|
"yjs",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
*/
|
|
23
23
|
import React from "react";
|
|
24
24
|
import type { MultiTabAssistantChatHeaderProps } from "./MultiTabAssistantChat.js";
|
|
25
|
-
import {
|
|
25
|
+
import type { AssistantChatProps } from "./AssistantChat.js";
|
|
26
26
|
export declare function getAgentPanelChatTabGroups(tabs: MultiTabAssistantChatHeaderProps["tabs"], activeTabId: string): {
|
|
27
27
|
activeTab: import("./MultiTabAssistantChat.js").ChatTab | undefined;
|
|
28
28
|
childTabs: import("./MultiTabAssistantChat.js").ChatTab[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentPanel.d.ts","sourceRoot":"","sources":["../../src/client/AgentPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KASN,MAAM,OAAO,CAAC;AA6Cf,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AACnF,OAAO,
|
|
1
|
+
{"version":3,"file":"AgentPanel.d.ts","sourceRoot":"","sources":["../../src/client/AgentPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -35,7 +35,7 @@ import { RunsTrayMenuItem } from "./progress/RunsTray.js";
|
|
|
35
35
|
const MultiTabAssistantChatLazy = lazy(() => import("./MultiTabAssistantChat.js").then((m) => ({
|
|
36
36
|
default: m.MultiTabAssistantChat,
|
|
37
37
|
})));
|
|
38
|
-
import { assistantUiRecoverableRenderErrorKind
|
|
38
|
+
import { assistantUiRecoverableRenderErrorKind } from "./assistant-ui-recovery.js";
|
|
39
39
|
import { useDevMode } from "./use-dev-mode.js";
|
|
40
40
|
import { useScreenRefreshKey } from "./use-db-sync.js";
|
|
41
41
|
import { useQuery, useQueryClient } from "@tanstack/react-query";
|