Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions api-reference/sdk/models/data-models.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4581,10 +4581,10 @@ Defines the time window and activity cap for a single batching scope.

### Notification Primitives

Types for the primitive components used to build custom notification interfaces. See [Notifications Primitives](/ui-customization/features/async/notifications/notifications-primitives) for usage examples.
Types for the primitive components used to build custom notification interfaces. See [Notifications Primitives](/ui-customization/features/async/notifications/notifications-panel/primitives) for usage examples.

#### NotificationsPrimitiveCommonProps
[Usage Examples →](/ui-customization/features/async/notifications/notifications-primitives#common-inputs)
[Usage Examples →](/ui-customization/features/async/notifications/notifications-panel/primitives#common-inputs)
---

Base props inherited by all Notification primitive components.
Expand Down
4 changes: 2 additions & 2 deletions async-collaboration/comments/customize-behavior.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6548,7 +6548,7 @@ commentElement.focusPageModeComposer();

Use this to act on clicks on the Sidebar Button at the bottom of the Comment Dialog.

![](images/customization/onSidebarOnCommentDialogClick.png)
![](/images/customization/onSidebarOnCommentDialogClick.png)

<Tabs>
<Tab title = "React / Next.js">
Expand Down Expand Up @@ -7929,7 +7929,7 @@ commentElement.disableInlineCommentMode();

- By default comments are single threaded.
- You can make it multithreaded by setting `multiThread` prop to `true`.
- If you had previously used a wireframe for the comment dialog, you will need to add the [multithread wireframe](/ui-customization/features/async/comments/multithread-comment-dialog).
- If you had previously used a wireframe for the comment dialog, you will need to add the [multithread wireframe](/ui-customization/features/async/comments/multithread-comments/wireframes).
- Default: `false`

<Tabs>
Expand Down
16 changes: 8 additions & 8 deletions backend-sdks/node.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3690,11 +3690,11 @@ These shared/nested config interfaces are referenced by the request types above.

```ts
interface ResponseFieldDescriptions { summary?: string; title?: string; description?: string; severity?: string; targetText?: string; suggestion?: string; isPageLevel?: string; issueType?: string; confidence?: string; htmlSelector?: string; findingType?: string; }
interface KnowledgeConfig { useMemory?: boolean; maxChunks?: number; /* 1..20 * / maxPatterns?: number; /* 1..20 * / maxActivities?: number; /* 1..20 * / }
interface KnowledgeConfig { useMemory?: boolean; maxChunks?: number; maxPatterns?: number; maxActivities?: number; }
type RestApiAuthConfig = { type: 'none' } | { type: 'bearer'; token: string } | { type: 'basic'; username: string; password: string } | { type: 'header'; headers: Record<string, string> };
interface RestApiEndpoint { url: string; description: string; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; auth?: RestApiAuthConfig; headers?: Record<string, string>; query?: Record<string, string>; body?: unknown; cacheTtlSeconds?: number; /* max 86400 */ timeoutMs?: number; /* max 30000 */ responsePath?: string; }
interface RestApiContextStrategyOptions { endpoints: RestApiEndpoint[]; /* 1..10 */ maxResponseBytes?: number; /* default 1000000, max 5000000 */ }
interface ContextGatheringConfig { strategies?: string[]; /* includes 'rest-api'; non-empty when present * / strategyOptions?: { 'rest-api'?: RestApiContextStrategyOptions } & Record<string, Record<string, unknown>>; }
interface RestApiEndpoint { url: string; description: string; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; auth?: RestApiAuthConfig; headers?: Record<string, string>; query?: Record<string, string>; body?: unknown; cacheTtlSeconds?: number; timeoutMs?: number; responsePath?: string; }
interface RestApiContextStrategyOptions { endpoints: RestApiEndpoint[]; maxResponseBytes?: number; }
interface ContextGatheringConfig { strategies?: string[]; strategyOptions?: { 'rest-api'?: RestApiContextStrategyOptions } & Record<string, Record<string, unknown>>; }
type McpAuthConfig = { type: 'none' } | { type: 'header'; headers: Record<string, string> };
interface McpServerConfig { url: string; auth?: McpAuthConfig; allowedTools?: string[]; }
interface AgentExecutionConfig { responseDescriptions?: ResponseFieldDescriptions; executionStrategy?: 'default' | 'ai' | 'service+ai' | 'stagehand-agent' | 'mcp-tools' | string; serviceId?: string; strategyOptions?: Record<string, Record<string, unknown>>; knowledge?: KnowledgeConfig; mcpServers?: McpServerConfig[]; }
Expand All @@ -3706,7 +3706,7 @@ interface AgentCrossPageConfig { enabled: boolean; targetProperty: string; pageD
interface AgentScopeConfig { pageScope?: string[]; pageScopeExclude?: string[]; contentTypes?: string[]; crossPage?: AgentCrossPageConfig; }
interface AgentSetupSampleFinding { message: string; elementSelector?: string; isCorrect?: boolean; }
interface AgentSetupSample { content: string; source: 'synthetic' | 'user-provided'; findings: AgentSetupSampleFinding[]; pmVerdict?: 'correct' | 'incorrect'; pmNotes?: string; }
interface AgentChecklistOrigin { checklistId: string; checklistVersion: number; /* int >= 0 * / sectionRefs: string[]; memoryRuleIds: string[]; deduplicatedFrom?: number; /* int >= 0 * / }
interface AgentChecklistOrigin { checklistId: string; checklistVersion: number; sectionRefs: string[]; memoryRuleIds: string[]; deduplicatedFrom?: number; }
interface AgentSetupConfig { setupSamples?: AgentSetupSample[]; checklistOrigin?: AgentChecklistOrigin; }
interface PromptUserContextField { id: string; title: string; type: string; example?: string; defaultValue?: string | number | boolean; }
interface PromptRefinerDemoFeedback { demoId: string; demoTitle: string; demoHtml: string; demoExpected: string; feedback: string; }
Expand Down Expand Up @@ -3972,9 +3972,9 @@ These shared/nested config interfaces are referenced by the request types above.
```ts
type MemoryKnowledgeMimeType = 'application/pdf' | 'text/csv' | 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' | 'text/plain';
interface MemoryDateRange { start: string | number; end: string | number; } // ISO-8601 string or ms epoch; server enforces start <= end
interface MemorySearchFilters { decision?: string; judgeType?: string; contentType?: string; reviewerId?: string; annotationId?: string; /* non-empty when present; triggers annotation shortcut * / dateRange?: MemoryDateRange; }
interface MemoryAlertConfig { enabled?: boolean; maxAlertsPerWeek?: number; /* int >= 0 * / enabledAlertTypes?: string[]; severityThreshold?: 'high' | 'medium' | 'low'; }
interface MemoryIngestInlineFile { base64: string; mimeType: MemoryKnowledgeMimeType; fileName: string; /* 1..255 * / fileSize: number; /* positive int, <= 5,242,880 (5 MB) * / }
interface MemorySearchFilters { decision?: string; judgeType?: string; contentType?: string; reviewerId?: string; annotationId?: string; dateRange?: MemoryDateRange; }
interface MemoryAlertConfig { enabled?: boolean; maxAlertsPerWeek?: number; enabledAlertTypes?: string[]; severityThreshold?: 'high' | 'medium' | 'low'; }
interface MemoryIngestInlineFile { base64: string; mimeType: MemoryKnowledgeMimeType; fileName: string; fileSize: number; }
```
*/}

Expand Down
8 changes: 4 additions & 4 deletions release-notes/version-5/sdk-changelog.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -605,7 +605,7 @@ contactElement.updateContactList(contacts, { filters: true });

### New Features

- [**Notifications**]: Added granular primitive components for `VeltNotificationsPanel` and `VeltNotificationsTool`, including — header tabs, content lists, settings accordion, skeleton, and more. Each primitive is standalone (not nested inside another) and supports `variant`, `darkMode`, `shadowDom`, and `parentLocalUIState` props. [Learn more →](/ui-customization/features/async/notifications/notifications-primitives)
- [**Notifications**]: Added granular primitive components for `VeltNotificationsPanel` and `VeltNotificationsTool`, including — header tabs, content lists, settings accordion, skeleton, and more. Each primitive is standalone (not nested inside another) and supports `variant`, `darkMode`, `shadowDom`, and `parentLocalUIState` props. [Learn more →](/ui-customization/features/async/notifications/notifications-panel/primitives)

- [**Workspace REST API**]: Added 20 endpoints to create and manage Velt workspace covering workspace creation, API key management, auth tokens, domain management, email and webhook configuration, and API key metadata. [Learn more →](/api-reference/rest-apis/v2/workspace/create)

Expand Down Expand Up @@ -933,7 +933,7 @@ Velt.setDataProviders({
### New Features

- [**UI Customization**]: Added Velt Comments Sidebar V2 — a complete redesign of the Comments Sidebar built on a flat primitive component architecture. Every section of the UI is an independently importable and composable primitive. The V2 sidebar ships with a unified filter model (replacing the legacy `minimalFilter` + `advancedFilters` system), CDK virtual scroll for large comment lists, a focused-thread view, a minimal actions dropdown, and a filter dropdown.
- All sections are fully wireframe-customizable and available as standalone primitives. See the [UI Customization docs](/ui-customization/features/async/comments/comment-sidebar-components-v2) for the complete wireframe structure and list of `VeltCommentsSidebarV2*` / `velt-comments-sidebar-*-v2` components.
- All sections are fully wireframe-customizable and available as standalone primitives. See the [UI Customization docs](/ui-customization/features/async/comments/comment-sidebar/comment-sidebar-v2-wireframes) for the complete wireframe structure and list of `VeltCommentsSidebarV2*` / `velt-comments-sidebar-*-v2` components.
<Tabs>
<Tab title="React / Next.js">
```jsx
Expand Down Expand Up @@ -1307,7 +1307,7 @@ commentElement.disableVisibilityOptions();
</Tab>
</Tabs>

The banner surface is fully wireframe-customizable via the new [`VeltCommentDialogWireframe.VisibilityBanner.*` / `velt-comment-dialog-visibility-banner-*`](/ui-customization/features/async/comments/comment-dialog-components#visibility-banner) family.
The banner surface is fully wireframe-customizable via the new [`VeltCommentDialogWireframe.VisibilityBanner.*` / `velt-comment-dialog-visibility-banner-*`](/ui-customization/features/async/comments/comment-dialog/wireframes#visibility-banner) family.

- [**Comments**]: Added `AddCommentRequest.visibility` field of type `CommentVisibilityConfig` to set comment visibility at creation time. Previously visibility could only be set after creation via `updateVisibility()`.

Expand Down Expand Up @@ -1537,7 +1537,7 @@ commentElement.on('visibilityOptionClicked').subscribe((event) => {
</Tab>
</Tabs>

To customize the dropdown via wireframes, you can refer to the [wireframe documentation](/ui-customization/features/async/comments/comment-dialog-components#visibility-dropdown-composer).
To customize the dropdown via wireframes, you can refer to the [wireframe documentation](/ui-customization/features/async/comments/comment-dialog/wireframes#visibility-dropdown-composer).

### Bug Fixes

Expand Down