@agent-native/core 0.197.0-nightly-20260929180759 → 0.197.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/templates/analytics/CHANGELOG.md +10 -0
- package/corpus/templates/assets/CHANGELOG.md +8 -0
- package/corpus/templates/calendar/CHANGELOG.md +18 -0
- package/corpus/templates/clips/CHANGELOG.md +19 -0
- package/corpus/templates/content/CHANGELOG.md +16 -0
- package/corpus/templates/content/actions/_database-property-setup.ts +33 -2
- package/corpus/templates/content/actions/_database-setup-discovery.ts +4 -4
- package/corpus/templates/content/actions/_property-utils.ts +9 -1
- package/corpus/templates/content/actions/_relation-values.ts +291 -0
- package/corpus/templates/content/actions/configure-document-property.ts +53 -1
- package/corpus/templates/content/actions/search-content-database-rows.ts +124 -0
- package/corpus/templates/content/actions/set-document-property.ts +21 -1
- package/corpus/templates/content/agent-native.config.ts +5 -0
- package/corpus/templates/content/app/components/editor/DocumentProperties.tsx +892 -189
- package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +7 -2
- package/corpus/templates/content/app/components/editor/database/navigation-state.ts +4 -1
- package/corpus/templates/content/app/hooks/use-content-database.ts +16 -2
- package/corpus/templates/content/app/hooks/use-document-properties.ts +65 -5
- package/corpus/templates/content/app/i18n-data.ts +28 -0
- package/corpus/templates/content/changelog/2026-09-28-link-rows-across-collections-with-relation-properties.md +6 -0
- package/corpus/templates/content/changelog/2026-09-29-related-pages-can-be-loaded-past-the-first-25-results.md +6 -0
- package/corpus/templates/content/parity/matrix.md +1 -1
- package/corpus/templates/content/parity/matrix.ts +1 -0
- package/corpus/templates/content/shared/api.ts +21 -0
- package/corpus/templates/content/shared/properties.ts +19 -0
- package/corpus/templates/crm/CHANGELOG.md +8 -0
- package/corpus/templates/design/CHANGELOG.md +33 -0
- package/corpus/templates/design/actions/clone-creative-context-design-native.ts +12 -3
- package/corpus/templates/design/actions/generate-design.ts +2 -29
- package/corpus/templates/design/actions/update-design.ts +33 -8
- package/corpus/templates/design/app/components/design/design-canvas/LocalNetworkAccessPrompt.tsx +2 -2
- package/corpus/templates/design/changelog/2026-09-29-design-tweak-controls-stay-intact-when-an-edit-contains-inva.md +6 -0
- package/corpus/templates/design/changelog/2026-09-29-the-chrome-fallback-guide-shows-the-local-network-allow-opti.md +6 -0
- package/corpus/templates/design/shared/tweak-definition-schema.ts +30 -0
- package/corpus/templates/dispatch/CHANGELOG.md +4 -0
- package/corpus/templates/mail/CHANGELOG.md +34 -0
- package/corpus/templates/mail/app/components/email/EmailList.tsx +29 -11
- package/corpus/templates/mail/app/components/layout/AppLayout.tsx +4 -4
- package/corpus/templates/mail/app/pages/InboxPage.tsx +34 -10
- package/corpus/templates/mail/changelog/2026-09-29-mail-loading-layout.md +6 -0
- package/corpus/templates/slides/CHANGELOG.md +19 -0
- package/dist/automation/index.d.ts +1 -1
- package/dist/client/AppShellSkeleton.js +97 -54
- package/dist/collab/awareness.d.ts +2 -2
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/file-upload/actions/upload-image.d.ts +2 -2
- package/dist/notifications/routes.d.ts +2 -2
- package/dist/observability/routes.d.ts +7 -7
- package/dist/secrets/routes.d.ts +6 -6
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/agent-engine-ollama-models-route.d.ts +1 -1
- package/dist/triggers/actions/manage-automation.d.ts +2 -2
- package/docs/content/versioning-and-stability.mdx +3 -2
- package/package.json +4 -4
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
export const tweakDefinitionsSchema = z.array(
|
|
4
|
+
z.object({
|
|
5
|
+
id: z.string(),
|
|
6
|
+
label: z.string(),
|
|
7
|
+
type: z.enum([
|
|
8
|
+
"color-swatch",
|
|
9
|
+
"color-swatches",
|
|
10
|
+
"segment",
|
|
11
|
+
"slider",
|
|
12
|
+
"toggle",
|
|
13
|
+
]),
|
|
14
|
+
options: z
|
|
15
|
+
.array(
|
|
16
|
+
z.object({
|
|
17
|
+
label: z.string(),
|
|
18
|
+
value: z.string(),
|
|
19
|
+
color: z.string().optional(),
|
|
20
|
+
}),
|
|
21
|
+
)
|
|
22
|
+
.optional(),
|
|
23
|
+
min: z.number().optional(),
|
|
24
|
+
max: z.number().optional(),
|
|
25
|
+
step: z.number().optional(),
|
|
26
|
+
defaultValue: z.union([z.string(), z.number(), z.boolean()]),
|
|
27
|
+
cssVar: z.string().optional(),
|
|
28
|
+
unit: z.string().optional(),
|
|
29
|
+
}),
|
|
30
|
+
);
|
|
@@ -3,16 +3,50 @@
|
|
|
3
3
|
All notable user-facing changes to Agent-Native Mail are documented here. Open it any
|
|
4
4
|
time from the command menu (Cmd+K → "What's new") or from Settings.
|
|
5
5
|
|
|
6
|
+
## 2026-09-29
|
|
7
|
+
|
|
8
|
+
### Improved
|
|
9
|
+
|
|
10
|
+
- Mail loading screens match the current inbox layout.
|
|
11
|
+
- Mail shows the first messages sooner and keeps them visible while background sync finishes.
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
- Existing compose drafts keep their attachments when revised
|
|
16
|
+
- Scheduled email changes refresh the inbox and schedule list
|
|
17
|
+
|
|
6
18
|
## 2026-09-28
|
|
7
19
|
|
|
8
20
|
### Improved
|
|
9
21
|
|
|
22
|
+
- AI triage now appears before Automations in Mail settings.
|
|
23
|
+
- The app canvas now meets the right chat sidebar without a dark seam or rounded corner.
|
|
24
|
+
- Google sign-in shows progress while authentication finishes.
|
|
25
|
+
- General and AI triage settings now share a consistent full-width layout.
|
|
26
|
+
- Mail background work stays within its time budget and checks fewer connected accounts per sweep.
|
|
27
|
+
- Mail onboarding saves inbox rules before provider setup and sorts recent mail after connection.
|
|
28
|
+
- Mail syncs large inboxes progressively with shared Gmail quota control and resumable bulk archiving.
|
|
29
|
+
- Settings now opens in the new layout, with Account, Connections, Agent, Organization, and app sections.
|
|
10
30
|
- Builder credit notices appear above sidebar actions in a full-width layout.
|
|
11
31
|
- Mail automation rules use a consistent neutral color treatment.
|
|
12
32
|
- Open the current agent conversation in a full-page view
|
|
13
33
|
|
|
14
34
|
### Fixed
|
|
15
35
|
|
|
36
|
+
- Your inbox now loads without getting stuck on loading placeholders.
|
|
37
|
+
- Inbox category tabs stay in the inbox view
|
|
38
|
+
- Inbox rule sorting now offers a retry when starting fails and reports undo errors.
|
|
39
|
+
- Large archives finish without manual retries
|
|
40
|
+
- Mail actions follow the active inbox tab and ignore rows retained from previous filters
|
|
41
|
+
- Mail automations start from the current inbox point after setup or a sync gap.
|
|
42
|
+
- Mail preserves sorting progress and undo access when a retry is needed
|
|
43
|
+
- Mail retries Gmail status errors and avoids repeating Google sign-in in manual setup.
|
|
44
|
+
- Mail setup keeps saved rules available when browser storage or onboarding completion fails.
|
|
45
|
+
- Mail setup stays recoverable when model settings or sorting status checks fail.
|
|
46
|
+
- Mail updates an existing compose draft in place when you ask for a revision.
|
|
47
|
+
- Rule backfills show why recent mail could not be processed
|
|
48
|
+
- Scheduled Mail jobs recover after interrupted sweeps without duplicating sends
|
|
49
|
+
- Search results no longer trigger a duplicate mailbox fetch
|
|
16
50
|
- Avoid automatic retries after Gmail quota cooldowns
|
|
17
51
|
|
|
18
52
|
## 2026-09-27
|
|
@@ -350,22 +350,40 @@ function MailLoadingState({
|
|
|
350
350
|
return (
|
|
351
351
|
<div className="flex h-full flex-col" ref={containerRef}>
|
|
352
352
|
<div className="flex-1 overflow-y-auto">
|
|
353
|
-
{
|
|
354
|
-
<div
|
|
355
|
-
key={i}
|
|
356
|
-
className="flex h-[48px] items-center gap-3 px-4 sm:h-[38px]"
|
|
357
|
-
>
|
|
358
|
-
<div className="h-2 w-2 shrink-0 animate-pulse rounded-full bg-muted" />
|
|
359
|
-
<div className="h-3 w-28 animate-pulse rounded bg-muted" />
|
|
360
|
-
<div className="h-3 flex-1 animate-pulse rounded bg-muted" />
|
|
361
|
-
<div className="h-3 w-12 animate-pulse rounded bg-muted" />
|
|
362
|
-
</div>
|
|
363
|
-
))}
|
|
353
|
+
<MailLoadingRows count={12} />
|
|
364
354
|
</div>
|
|
365
355
|
</div>
|
|
366
356
|
);
|
|
367
357
|
}
|
|
368
358
|
|
|
359
|
+
function MailLoadingRows({ count }: { count: number }) {
|
|
360
|
+
return (
|
|
361
|
+
<div aria-hidden="true">
|
|
362
|
+
{Array.from({ length: count }, (_, index) => (
|
|
363
|
+
<div
|
|
364
|
+
key={index}
|
|
365
|
+
className="email-list-row flex h-[48px] items-center px-3 sm:h-[38px]"
|
|
366
|
+
>
|
|
367
|
+
<div className="me-2 flex h-full w-5 shrink-0 items-center justify-center">
|
|
368
|
+
<div className="h-[7px] w-[7px] animate-pulse rounded-full bg-muted" />
|
|
369
|
+
</div>
|
|
370
|
+
<div className="me-3 flex w-[100px] shrink-0 items-center sm:w-[160px]">
|
|
371
|
+
<div className="h-3 w-3/4 animate-pulse rounded bg-muted" />
|
|
372
|
+
</div>
|
|
373
|
+
{index % 2 === 1 && (
|
|
374
|
+
<div className="me-2 h-4 w-14 shrink-0 animate-pulse rounded bg-muted" />
|
|
375
|
+
)}
|
|
376
|
+
<div className="flex min-w-0 flex-1 items-center gap-1.5 overflow-hidden">
|
|
377
|
+
<div className="h-3 w-36 shrink-0 animate-pulse rounded bg-muted" />
|
|
378
|
+
<div className="h-3 min-w-0 flex-1 animate-pulse rounded bg-muted" />
|
|
379
|
+
</div>
|
|
380
|
+
<div className="ms-2 h-3 w-12 shrink-0 animate-pulse rounded bg-muted" />
|
|
381
|
+
</div>
|
|
382
|
+
))}
|
|
383
|
+
</div>
|
|
384
|
+
);
|
|
385
|
+
}
|
|
386
|
+
|
|
369
387
|
const RATE_LIMIT_RETRY_MS = 60_000;
|
|
370
388
|
|
|
371
389
|
function getRateLimitRetryMs(error: {
|
|
@@ -1607,11 +1607,11 @@ function AppLayoutInner({ children }: AppLayoutProps) {
|
|
|
1607
1607
|
<>
|
|
1608
1608
|
{tabsLoading ? (
|
|
1609
1609
|
<nav className="flex w-max shrink-0 items-center gap-2 sm:w-auto sm:flex-1 sm:min-w-0 sm:overflow-x-auto sm:hide-scrollbar">
|
|
1610
|
-
{[
|
|
1610
|
+
{[96, 128, 98, 72, 84, 62].map((width, index) => (
|
|
1611
1611
|
<span
|
|
1612
|
-
key={
|
|
1613
|
-
className="h-
|
|
1614
|
-
style={{ width
|
|
1612
|
+
key={index}
|
|
1613
|
+
className="h-8 shrink-0 rounded-md bg-muted animate-pulse"
|
|
1614
|
+
style={{ width }}
|
|
1615
1615
|
/>
|
|
1616
1616
|
))}
|
|
1617
1617
|
</nav>
|
|
@@ -14,6 +14,7 @@ import { EmailList, InboxZero } from "@/components/email/EmailList";
|
|
|
14
14
|
import { EmailThread } from "@/components/email/EmailThread";
|
|
15
15
|
import { IntegrationsSidebar } from "@/components/email/IntegrationsSidebar";
|
|
16
16
|
import { GoogleConnectBanner } from "@/components/GoogleConnectBanner";
|
|
17
|
+
import { Skeleton } from "@/components/ui/skeleton";
|
|
17
18
|
import { useAccountFilter } from "@/hooks/use-account-filter";
|
|
18
19
|
import {
|
|
19
20
|
FOCUS_COMPOSE_DRAFT_EVENT,
|
|
@@ -170,6 +171,26 @@ function ContactPanel({
|
|
|
170
171
|
);
|
|
171
172
|
}
|
|
172
173
|
|
|
174
|
+
function ContactPanelSkeleton() {
|
|
175
|
+
return (
|
|
176
|
+
<div aria-hidden="true" className="flex h-full flex-col">
|
|
177
|
+
<div className="space-y-1.5 px-4 pt-4 pb-3">
|
|
178
|
+
<Skeleton className="h-4 w-8" />
|
|
179
|
+
<Skeleton className="h-3 w-40 max-w-full" />
|
|
180
|
+
<Skeleton className="h-3 w-28" />
|
|
181
|
+
</div>
|
|
182
|
+
<div className="flex items-center gap-2 px-4 py-2">
|
|
183
|
+
<Skeleton className="size-5 rounded-md" />
|
|
184
|
+
<Skeleton className="h-3 w-14" />
|
|
185
|
+
</div>
|
|
186
|
+
<div className="mx-4 h-px bg-border/30" />
|
|
187
|
+
<div className="px-4 py-2">
|
|
188
|
+
<Skeleton className="h-3 w-20" />
|
|
189
|
+
</div>
|
|
190
|
+
</div>
|
|
191
|
+
);
|
|
192
|
+
}
|
|
193
|
+
|
|
173
194
|
function formatSidebarSender(thread: ThreadSummary): string {
|
|
174
195
|
if (thread.messageCount <= 1) {
|
|
175
196
|
return thread.latestMessage.from.name || thread.latestMessage.from.email;
|
|
@@ -1115,17 +1136,20 @@ export function InboxPage() {
|
|
|
1115
1136
|
)}
|
|
1116
1137
|
</div>
|
|
1117
1138
|
|
|
1118
|
-
{
|
|
1119
|
-
{!emailListLoading && !(hasThread && isMaximized) && (
|
|
1139
|
+
{!(hasThread && isMaximized) && (
|
|
1120
1140
|
<div className="mail-contact-side-panel hidden w-[260px] shrink-0 flex-col border-s border-border/30 bg-muted/50 dark:bg-[var(--mail-sidebar-surface)]">
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1141
|
+
{emailListLoading ? (
|
|
1142
|
+
<ContactPanelSkeleton />
|
|
1143
|
+
) : (
|
|
1144
|
+
<ContactPanel
|
|
1145
|
+
emailId={contactEmailId}
|
|
1146
|
+
contactEmail={sidebarContactEmail}
|
|
1147
|
+
emails={emails}
|
|
1148
|
+
allowEmailSearch={
|
|
1149
|
+
!isInboxView || (googleStatus.isSuccess && !isGoogleConnected)
|
|
1150
|
+
}
|
|
1151
|
+
/>
|
|
1152
|
+
)}
|
|
1129
1153
|
</div>
|
|
1130
1154
|
)}
|
|
1131
1155
|
</div>
|
|
@@ -3,15 +3,34 @@
|
|
|
3
3
|
All notable user-facing changes to Agent-Native Slides are documented here. Open it any
|
|
4
4
|
time from the command menu (Cmd+K → "What's new").
|
|
5
5
|
|
|
6
|
+
## 2026-09-29
|
|
7
|
+
|
|
8
|
+
### Improved
|
|
9
|
+
|
|
10
|
+
- Settings pages now share the account layout, with dated updates that load in batches.
|
|
11
|
+
|
|
6
12
|
## 2026-09-28
|
|
7
13
|
|
|
8
14
|
### Improved
|
|
9
15
|
|
|
16
|
+
- The app canvas now meets the right chat sidebar without a dark seam or rounded corner.
|
|
17
|
+
- Center the home search field and keep prompt submission responsive while AI readiness is checked.
|
|
18
|
+
- Rotation controls are smaller and easier to see.
|
|
19
|
+
- Settings now opens in the new layout, with Account, Connections, Agent, Organization, and app sections.
|
|
20
|
+
- Slides now batch short deck creation and explain when layout measurements are not available.
|
|
10
21
|
- Starter prompts now sit below the chat composer
|
|
11
22
|
- The deck list search and import controls stay legible on narrow screens.
|
|
12
23
|
|
|
13
24
|
### Fixed
|
|
14
25
|
|
|
26
|
+
- Canceling reference selection restores the prompt and its attachments.
|
|
27
|
+
- Deck editor waits for sign-in before loading its workspace shell.
|
|
28
|
+
- Existing decks open to Recent, and the home prompt stays interactive while AI readiness is checked.
|
|
29
|
+
- Preserve home prompt state across imports and clarify upload, website, and template search results.
|
|
30
|
+
- Slides preserves backward text selections when editing starts
|
|
31
|
+
- Slides text editing keeps the caret steady through focus changes and input-method composition
|
|
32
|
+
- The home import control no longer clips its label
|
|
33
|
+
- Typing in Slides agent chat keeps every character in order
|
|
15
34
|
- The model picker shows available models when AI is configured.
|
|
16
35
|
- Reference attachments stay available when a new deck prompt starts a chat.
|
|
17
36
|
- Template menus stay available when you hover over a card.
|
|
@@ -139,8 +139,8 @@ export declare function createAutomationCallbackHandler(runtime: AutomationRunti
|
|
|
139
139
|
duplicate?: undefined;
|
|
140
140
|
eventId?: undefined;
|
|
141
141
|
} | {
|
|
142
|
+
error?: undefined;
|
|
142
143
|
accepted: boolean;
|
|
143
144
|
duplicate: boolean;
|
|
144
145
|
eventId: string;
|
|
145
|
-
error?: undefined;
|
|
146
146
|
}>;
|
|
@@ -69,68 +69,102 @@ function PromptLibraryLayout() {
|
|
|
69
69
|
}, "data-agent-native-app-skeleton-gallery-grid": "true", children: Array.from({ length: 8 }, (_, index) => (_jsxs("div", { style: { display: "flex", flexDirection: "column", gap: 10 }, children: [_jsx(Block, { style: { width: "100%", height: 144, borderRadius: 12 } }), _jsx(Block, { style: { width: `${56 + (index % 3) * 12}%`, height: 12 } })] }, index))) })] }) })] }));
|
|
70
70
|
}
|
|
71
71
|
function MailLayout() {
|
|
72
|
-
return (_jsxs(
|
|
72
|
+
return (_jsxs("div", { style: {
|
|
73
|
+
display: "flex",
|
|
74
|
+
minWidth: 0,
|
|
75
|
+
flex: 1,
|
|
76
|
+
flexDirection: "column",
|
|
77
|
+
containerName: "agent-native-main",
|
|
78
|
+
containerType: "inline-size",
|
|
79
|
+
}, children: [_jsxs("header", { "aria-hidden": "true", "data-agent-native-mail-header": "true", style: {
|
|
73
80
|
display: "flex",
|
|
74
|
-
|
|
81
|
+
height: 48,
|
|
75
82
|
flexShrink: 0,
|
|
76
|
-
flexDirection: "column",
|
|
77
83
|
alignItems: "center",
|
|
78
|
-
gap:
|
|
79
|
-
|
|
80
|
-
padding: "
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
84
|
+
gap: 4,
|
|
85
|
+
borderBottom: BORDER,
|
|
86
|
+
padding: "0 8px",
|
|
87
|
+
overflowX: "auto",
|
|
88
|
+
overflowY: "hidden",
|
|
89
|
+
overscrollBehaviorX: "contain",
|
|
90
|
+
scrollbarWidth: "none",
|
|
91
|
+
}, children: [_jsx("div", { style: {
|
|
92
|
+
position: "sticky",
|
|
93
|
+
insetInlineStart: 0,
|
|
94
|
+
zIndex: 1,
|
|
95
|
+
flexShrink: 0,
|
|
96
|
+
backgroundColor: "hsl(var(--background, 0 0% 100%))",
|
|
97
|
+
}, children: _jsx(Block, { style: { width: 32, height: 36, borderRadius: 6 } }) }), _jsxs("div", { style: {
|
|
98
|
+
display: "flex",
|
|
99
|
+
width: "max-content",
|
|
100
|
+
flexShrink: 0,
|
|
101
|
+
alignItems: "center",
|
|
102
|
+
gap: 8,
|
|
103
|
+
}, children: [_jsx(Block, { style: { width: 112, height: 32, borderRadius: 8 } }), [96, 128, 98, 72, 84, 62].map((width, index) => (_jsx(Block, { style: { width, height: 32, borderRadius: 8, flexShrink: 0 } }, index)))] }), _jsx("div", { style: { flex: 1, minWidth: 16 } }), _jsx(Block, { style: { width: 32, height: 36, borderRadius: 8, flexShrink: 0 } }), _jsx(Block, { style: { width: 32, height: 36, borderRadius: 8, flexShrink: 0 } }), _jsx(Block, { style: { width: 84, height: 32, borderRadius: 8, flexShrink: 0 } }), _jsx(Block, { style: { width: 26, height: 26, borderRadius: "50%", flexShrink: 0 } }), _jsx(Block, { style: { width: 32, height: 36, borderRadius: 8, flexShrink: 0 } }), _jsx(Block, { style: { width: 32, height: 36, borderRadius: 8, flexShrink: 0 } })] }), _jsxs("main", { style: {
|
|
90
104
|
display: "flex",
|
|
91
105
|
minWidth: 0,
|
|
92
106
|
flex: 1,
|
|
93
|
-
|
|
94
|
-
}, children: [
|
|
107
|
+
minHeight: 0,
|
|
108
|
+
}, children: [_jsx("section", { "aria-hidden": "true", "data-agent-native-mail-list": "true", style: {
|
|
95
109
|
display: "flex",
|
|
96
|
-
|
|
110
|
+
minWidth: 0,
|
|
111
|
+
flex: 1,
|
|
112
|
+
flexDirection: "column",
|
|
113
|
+
overflow: "hidden",
|
|
114
|
+
}, children: Array.from({ length: 12 }, (_, index) => (_jsxs("div", { style: {
|
|
115
|
+
display: "flex",
|
|
116
|
+
minHeight: 48,
|
|
117
|
+
flexShrink: 0,
|
|
118
|
+
alignItems: "center",
|
|
119
|
+
borderBottom: BORDER,
|
|
120
|
+
padding: "0 12px",
|
|
121
|
+
}, children: [_jsx("div", { style: {
|
|
122
|
+
display: "flex",
|
|
123
|
+
width: 20,
|
|
124
|
+
flexShrink: 0,
|
|
125
|
+
alignItems: "center",
|
|
126
|
+
justifyContent: "center",
|
|
127
|
+
marginRight: 8,
|
|
128
|
+
}, children: _jsx(Block, { style: { width: 7, height: 7, borderRadius: "50%" } }) }), _jsx("div", { "data-agent-native-mail-sender": "true", style: {
|
|
129
|
+
display: "flex",
|
|
130
|
+
width: 160,
|
|
131
|
+
flexShrink: 0,
|
|
132
|
+
alignItems: "center",
|
|
133
|
+
marginRight: 12,
|
|
134
|
+
}, children: _jsx(Block, { style: { width: `${88 + (index % 3) * 12}px`, height: 12 } }) }), index % 2 === 1 && (_jsx("div", { "data-agent-native-mail-label": "true", children: _jsx(Block, { style: {
|
|
135
|
+
width: 58,
|
|
136
|
+
height: 16,
|
|
137
|
+
borderRadius: 4,
|
|
138
|
+
marginRight: 8,
|
|
139
|
+
} }) })), _jsxs("div", { style: {
|
|
140
|
+
display: "flex",
|
|
141
|
+
minWidth: 0,
|
|
142
|
+
flex: 1,
|
|
143
|
+
alignItems: "center",
|
|
144
|
+
gap: 8,
|
|
145
|
+
}, children: [_jsx("div", { style: { width: 164, maxWidth: "75%", flexShrink: 0 }, children: _jsx(Block, { style: { width: "100%", height: 12 } }) }), _jsx("div", { style: { flex: 1, minWidth: 0 }, children: _jsx(Block, { style: { width: "100%", height: 12 } }) })] }), _jsx("div", { "data-agent-native-mail-time": "true", style: {
|
|
146
|
+
width: 52,
|
|
147
|
+
flexShrink: 0,
|
|
148
|
+
marginLeft: 8,
|
|
149
|
+
}, children: _jsx(Block, { style: { width: "100%", height: 11 } }) })] }, index))) }), _jsxs("aside", { "aria-hidden": "true", "data-agent-native-mail-inspector": "true", style: {
|
|
150
|
+
display: "flex",
|
|
151
|
+
width: 260,
|
|
97
152
|
flexShrink: 0,
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}, children: [_jsx(Block, { style: { width: "min(55%, 440px)", height: 32, borderRadius: 10 } }), _jsx("div", { style: { flex: 1 } }), _jsx(Block, { style: { width: 32, height: 32, borderRadius: 8 } }), _jsx(Block, { style: { width: 32, height: 32, borderRadius: 8 } })] }), _jsxs("section", { "aria-hidden": "true", style: { display: "flex", minHeight: 0, flex: 1 }, children: [_jsxs("div", { "data-agent-native-mail-list": "true", style: {
|
|
153
|
+
flexDirection: "column",
|
|
154
|
+
borderLeft: BORDER,
|
|
155
|
+
padding: 16,
|
|
156
|
+
}, children: [_jsxs("div", { style: {
|
|
103
157
|
display: "flex",
|
|
104
|
-
width: 360,
|
|
105
|
-
flexShrink: 0,
|
|
106
158
|
flexDirection: "column",
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
}, children: [_jsxs("div", { style: { display: "flex", gap: 8, padding: "4px 0 12px" }, children: [_jsx(Block, { style: { width: 68, height: 24, borderRadius: 12 } }), _jsx(Block, { style: { width: 72, height: 24, borderRadius: 12 } })] }), Array.from({ length: 8 }, (_, index) => (_jsxs("div", { style: {
|
|
112
|
-
display: "flex",
|
|
113
|
-
minHeight: 76,
|
|
114
|
-
flexDirection: "column",
|
|
115
|
-
justifyContent: "center",
|
|
116
|
-
gap: 9,
|
|
117
|
-
borderBottom: BORDER,
|
|
118
|
-
padding: "10px 4px",
|
|
119
|
-
}, children: [_jsxs("div", { style: {
|
|
120
|
-
display: "flex",
|
|
121
|
-
justifyContent: "space-between",
|
|
122
|
-
gap: 12,
|
|
123
|
-
}, children: [_jsx(Block, { style: { width: `${42 + (index % 3) * 10}%`, height: 13 } }), _jsx(Block, { style: { width: 36, height: 10 } })] }), _jsx(Block, { style: { width: `${66 + (index % 3) * 8}%`, height: 12 } }), _jsx(Block, { style: { width: `${52 + (index % 4) * 8}%`, height: 10 } })] }, index)))] }), _jsxs("div", { style: {
|
|
159
|
+
alignItems: "flex-start",
|
|
160
|
+
gap: 6,
|
|
161
|
+
padding: "16px 0 12px",
|
|
162
|
+
}, children: [_jsx(Block, { style: { width: 32, height: 14 } }), _jsx(Block, { style: { width: 160, height: 12 } }), _jsx(Block, { style: { width: 112, height: 11 } })] }), _jsxs("div", { style: {
|
|
124
163
|
display: "flex",
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
}, children: [_jsx(Block, { style: { width: "62%", height: 24, marginBottom: 12 } }), _jsx(Block, { style: { width: "38%", height: 13, marginBottom: 32 } }), Array.from({ length: 7 }, (_, index) => (_jsx(Block, { style: {
|
|
130
|
-
width: `${92 - (index % 3) * 8}%`,
|
|
131
|
-
height: 13,
|
|
132
|
-
marginBottom: 14,
|
|
133
|
-
} }, index)))] })] })] })] }));
|
|
164
|
+
alignItems: "center",
|
|
165
|
+
gap: 8,
|
|
166
|
+
padding: "8px 0",
|
|
167
|
+
}, children: [_jsx(Block, { style: { width: 20, height: 20, borderRadius: 6 } }), _jsx(Block, { style: { width: 56, height: 11 } })] }), _jsx("div", { style: { height: 1, margin: "0 0 0", borderTop: BORDER } }), _jsx(Block, { style: { width: 84, height: 11, marginTop: 8 } })] })] })] }));
|
|
134
168
|
}
|
|
135
169
|
function CalendarLayout() {
|
|
136
170
|
return (_jsxs(_Fragment, { children: [_jsx(Sidebar, {}), _jsx(Frame, { children: _jsxs("section", { "aria-hidden": "true", style: {
|
|
@@ -451,12 +485,21 @@ export function AppShellSkeleton({ ariaLabel = "Loading application", height = "
|
|
|
451
485
|
padding: 24px 0 0;
|
|
452
486
|
}
|
|
453
487
|
}
|
|
488
|
+
@container agent-native-main (max-width: 979px) {
|
|
489
|
+
[data-agent-native-mail-inspector] { display: none !important; }
|
|
490
|
+
}
|
|
491
|
+
[data-agent-native-mail-header]::-webkit-scrollbar { display: none; }
|
|
454
492
|
@media (max-width: 767px) {
|
|
455
|
-
[data-agent-native-app-skeleton-sidebar]
|
|
456
|
-
[data-agent-native-mail-folders] { display: none !important; }
|
|
493
|
+
[data-agent-native-app-skeleton-sidebar] { display: none !important; }
|
|
457
494
|
[data-agent-native-mail-list] { width: 100% !important; }
|
|
458
495
|
[data-agent-native-app-skeleton-layout="mail"] [data-agent-native-mail-list] { flex: 1; }
|
|
459
|
-
|
|
496
|
+
}
|
|
497
|
+
@media (max-width: 639px) {
|
|
498
|
+
[data-agent-native-mail-sender] { width: 100px !important; }
|
|
499
|
+
[data-agent-native-mail-label] { display: none !important; }
|
|
500
|
+
}
|
|
501
|
+
@media (min-width: 640px) {
|
|
502
|
+
[data-agent-native-mail-list] > div { min-height: 38px !important; }
|
|
460
503
|
}
|
|
461
504
|
` }), content ?? _jsx(DefaultLayout, {})] }));
|
|
462
505
|
}
|
|
@@ -38,19 +38,19 @@ export declare const postAwareness: import("h3").EventHandlerWithFetch<import("h
|
|
|
38
38
|
error: string;
|
|
39
39
|
states?: undefined;
|
|
40
40
|
} | {
|
|
41
|
+
error?: undefined;
|
|
41
42
|
states: {
|
|
42
43
|
clientId: number;
|
|
43
44
|
state: string;
|
|
44
45
|
}[];
|
|
45
|
-
error?: undefined;
|
|
46
46
|
}>>;
|
|
47
47
|
export declare const getActiveUsers: import("h3").EventHandlerWithFetch<import("h3").EventHandlerRequest, Promise<{
|
|
48
48
|
error: string;
|
|
49
49
|
users?: undefined;
|
|
50
50
|
} | {
|
|
51
|
+
error?: undefined;
|
|
51
52
|
users: {
|
|
52
53
|
clientId: number;
|
|
53
54
|
lastSeen: number;
|
|
54
55
|
}[];
|
|
55
|
-
error?: undefined;
|
|
56
56
|
}>>;
|
|
@@ -35,9 +35,9 @@ declare const _default: import("../../action.js").ActionDefinition<{
|
|
|
35
35
|
} | {
|
|
36
36
|
error: string;
|
|
37
37
|
url?: undefined;
|
|
38
|
-
id?: undefined;
|
|
39
38
|
provider?: undefined;
|
|
40
39
|
configured?: undefined;
|
|
40
|
+
id?: undefined;
|
|
41
41
|
} | {
|
|
42
42
|
url: string;
|
|
43
43
|
id: string;
|
|
@@ -46,9 +46,9 @@ declare const _default: import("../../action.js").ActionDefinition<{
|
|
|
46
46
|
error?: undefined;
|
|
47
47
|
} | {
|
|
48
48
|
url?: undefined;
|
|
49
|
-
id?: undefined;
|
|
50
49
|
provider?: undefined;
|
|
51
50
|
error: string;
|
|
52
51
|
configured: boolean;
|
|
52
|
+
id?: undefined;
|
|
53
53
|
}>;
|
|
54
54
|
export default _default;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
export declare function createNotificationsHandler(): import("h3").EventHandlerWithFetch<import("h3").EventHandlerRequest, Promise<"" | import("./types.js").Notification[] | {
|
|
2
2
|
count: number;
|
|
3
3
|
updated?: undefined;
|
|
4
|
-
ok?: undefined;
|
|
5
4
|
error?: undefined;
|
|
5
|
+
ok?: undefined;
|
|
6
6
|
} | {
|
|
7
7
|
count?: undefined;
|
|
8
8
|
updated: number;
|
|
9
|
-
ok?: undefined;
|
|
10
9
|
error?: undefined;
|
|
10
|
+
ok?: undefined;
|
|
11
11
|
} | {
|
|
12
12
|
count?: undefined;
|
|
13
13
|
updated?: undefined;
|
|
@@ -27,38 +27,38 @@ export declare function createObservabilityHandler(): import("h3").EventHandlerW
|
|
|
27
27
|
thumbsUpRate: number;
|
|
28
28
|
avgEvalScore: number;
|
|
29
29
|
} | {
|
|
30
|
-
id?: undefined;
|
|
31
30
|
error: string;
|
|
32
31
|
message: string;
|
|
33
32
|
summary?: undefined;
|
|
34
33
|
spans?: undefined;
|
|
34
|
+
id?: undefined;
|
|
35
35
|
ok?: undefined;
|
|
36
36
|
} | {
|
|
37
|
-
id?: undefined;
|
|
38
|
-
error?: undefined;
|
|
39
37
|
message?: undefined;
|
|
40
38
|
summary: import("./types.js").TraceSummary;
|
|
41
39
|
spans: import("./types.js").TraceSpan[];
|
|
40
|
+
id?: undefined;
|
|
41
|
+
error?: undefined;
|
|
42
42
|
ok?: undefined;
|
|
43
43
|
} | {
|
|
44
|
-
error?: undefined;
|
|
45
44
|
message?: undefined;
|
|
46
45
|
summary?: undefined;
|
|
47
46
|
spans?: undefined;
|
|
48
47
|
id: string;
|
|
48
|
+
error?: undefined;
|
|
49
49
|
ok?: undefined;
|
|
50
50
|
} | {
|
|
51
|
-
id?: undefined;
|
|
52
51
|
message?: undefined;
|
|
53
52
|
summary?: undefined;
|
|
54
53
|
spans?: undefined;
|
|
54
|
+
id?: undefined;
|
|
55
55
|
error: any;
|
|
56
56
|
ok?: undefined;
|
|
57
57
|
} | {
|
|
58
|
-
id?: undefined;
|
|
59
|
-
error?: undefined;
|
|
60
58
|
message?: undefined;
|
|
61
59
|
summary?: undefined;
|
|
62
60
|
spans?: undefined;
|
|
61
|
+
id?: undefined;
|
|
62
|
+
error?: undefined;
|
|
63
63
|
ok: boolean;
|
|
64
64
|
}>>;
|
package/dist/secrets/routes.d.ts
CHANGED
|
@@ -63,31 +63,31 @@ export declare function createWriteSecretHandler(): import("h3").EventHandlerWit
|
|
|
63
63
|
status?: undefined;
|
|
64
64
|
ok?: undefined;
|
|
65
65
|
} | {
|
|
66
|
+
error?: undefined;
|
|
66
67
|
errorCode?: undefined;
|
|
67
68
|
ok: boolean;
|
|
68
69
|
status: string;
|
|
69
|
-
error?: undefined;
|
|
70
70
|
} | {
|
|
71
71
|
error: string;
|
|
72
72
|
removed?: undefined;
|
|
73
73
|
ok?: undefined;
|
|
74
74
|
} | {
|
|
75
|
+
error?: undefined;
|
|
75
76
|
ok: boolean;
|
|
76
77
|
removed: boolean;
|
|
77
|
-
error?: undefined;
|
|
78
78
|
}>>;
|
|
79
79
|
export declare function createTestSecretHandler(): import("h3").EventHandlerWithFetch<import("h3").EventHandlerRequest, Promise<{
|
|
80
80
|
error: string;
|
|
81
81
|
note?: undefined;
|
|
82
82
|
ok?: undefined;
|
|
83
83
|
} | {
|
|
84
|
+
error?: undefined;
|
|
84
85
|
ok: boolean;
|
|
85
86
|
note?: undefined;
|
|
86
|
-
error?: undefined;
|
|
87
87
|
} | {
|
|
88
|
+
error?: undefined;
|
|
88
89
|
ok: boolean;
|
|
89
90
|
note: string;
|
|
90
|
-
error?: undefined;
|
|
91
91
|
} | {
|
|
92
92
|
note?: undefined;
|
|
93
93
|
ok: boolean;
|
|
@@ -115,11 +115,11 @@ export declare function createAdHocSecretHandler(): import("h3").EventHandlerWit
|
|
|
115
115
|
} | {
|
|
116
116
|
error: string;
|
|
117
117
|
} | {
|
|
118
|
+
error?: undefined;
|
|
118
119
|
ok: boolean;
|
|
119
120
|
key: string;
|
|
120
|
-
error?: undefined;
|
|
121
121
|
} | {
|
|
122
|
+
error?: undefined;
|
|
122
123
|
ok: boolean;
|
|
123
124
|
removed: boolean;
|
|
124
|
-
error?: undefined;
|
|
125
125
|
}>>;
|
|
@@ -66,12 +66,12 @@ export declare function createAgentEngineApiKeyHandler(): import("h3").EventHand
|
|
|
66
66
|
code: any;
|
|
67
67
|
} | {
|
|
68
68
|
errorCode?: undefined;
|
|
69
|
-
error?: undefined;
|
|
70
69
|
code?: undefined;
|
|
71
70
|
ok: boolean;
|
|
72
71
|
key: string;
|
|
73
72
|
baseUrlKey?: string;
|
|
74
73
|
scope: AgentEngineApiKeyScope;
|
|
75
74
|
defaultModel?: import("./agent-engine-default-model-route.js").SavedKeyDefaultModelOutcome;
|
|
75
|
+
error?: undefined;
|
|
76
76
|
}>>;
|
|
77
77
|
export {};
|