Skip to content

Commit 04f109c

Browse files
v0.4.16: executions dashboard, UI fixes, zep tools, slack fixes
2 parents 2bc8c7b + 48eab7e commit 04f109c

File tree

120 files changed

+5409
-1658
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

120 files changed

+5409
-1658
lines changed

apps/docs/content/docs/en/tools/meta.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
"whatsapp",
7171
"wikipedia",
7272
"x",
73-
"youtube"
73+
"youtube",
74+
"zep"
7475
]
7576
}

apps/docs/content/docs/en/tools/microsoft_teams.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ Read content from a Microsoft Teams chat
113113
| Parameter | Type | Required | Description |
114114
| --------- | ---- | -------- | ----------- |
115115
| `chatId` | string | Yes | The ID of the chat to read from |
116+
| `includeAttachments` | boolean | No | Download and include message attachments \(hosted contents\) into storage |
116117

117118
#### Output
118119

@@ -125,6 +126,7 @@ Read content from a Microsoft Teams chat
125126
| `attachmentCount` | number | Total number of attachments found |
126127
| `attachmentTypes` | array | Types of attachments found |
127128
| `content` | string | Formatted content of chat messages |
129+
| `attachments` | file[] | Uploaded attachments for convenience \(flattened\) |
128130

129131
### `microsoft_teams_write_chat`
130132

@@ -158,6 +160,7 @@ Read content from a Microsoft Teams channel
158160
| --------- | ---- | -------- | ----------- |
159161
| `teamId` | string | Yes | The ID of the team to read from |
160162
| `channelId` | string | Yes | The ID of the channel to read from |
163+
| `includeAttachments` | boolean | No | Download and include message attachments \(hosted contents\) into storage |
161164

162165
#### Output
163166

@@ -171,6 +174,7 @@ Read content from a Microsoft Teams channel
171174
| `attachmentCount` | number | Total number of attachments found |
172175
| `attachmentTypes` | array | Types of attachments found |
173176
| `content` | string | Formatted content of channel messages |
177+
| `attachments` | file[] | Uploaded attachments for convenience \(flattened\) |
174178

175179
### `microsoft_teams_write_channel`
176180

apps/docs/content/docs/en/tools/outlook.mdx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,13 +206,15 @@ Read emails from Outlook
206206
| --------- | ---- | -------- | ----------- |
207207
| `folder` | string | No | Folder ID to read emails from \(default: Inbox\) |
208208
| `maxResults` | number | No | Maximum number of emails to retrieve \(default: 1, max: 10\) |
209+
| `includeAttachments` | boolean | No | Download and include email attachments |
209210

210211
#### Output
211212

212213
| Parameter | Type | Description |
213214
| --------- | ---- | ----------- |
214215
| `message` | string | Success or status message |
215216
| `results` | array | Array of email message objects |
217+
| `attachments` | file[] | All email attachments flattened from all emails |
216218

217219
### `outlook_forward`
218220

Lines changed: 246 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,246 @@
1+
---
2+
title: Zep
3+
description: Long-term memory for AI agents
4+
---
5+
6+
import { BlockInfoCard } from "@/components/ui/block-info-card"
7+
8+
<BlockInfoCard
9+
type="zep"
10+
color="#4F46E5"
11+
icon={true}
12+
iconSvg={`<svg className="block-icon"
13+
14+
15+
16+
viewBox='0 0 24 24'
17+
fill='none'
18+
xmlns='http://www.w3.org/2000/svg'
19+
>
20+
<path
21+
d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z'
22+
fill='currentColor'
23+
/>
24+
<path
25+
d='M12 6c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm0 10c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z'
26+
fill='currentColor'
27+
/>
28+
<circle cx='12' cy='12' r='2' fill='currentColor' />
29+
<path
30+
d='M8 8h8M8 16h8'
31+
stroke='currentColor'
32+
strokeWidth='1.5'
33+
strokeLinecap='round'
34+
/>
35+
</svg>`}
36+
/>
37+
38+
## Usage Instructions
39+
40+
Integrate Zep for long-term memory management. Create threads, add messages, retrieve context with AI-powered summaries and facts extraction.
41+
42+
43+
44+
## Tools
45+
46+
### `zep_create_thread`
47+
48+
Start a new conversation thread in Zep
49+
50+
#### Input
51+
52+
| Parameter | Type | Required | Description |
53+
| --------- | ---- | -------- | ----------- |
54+
| `threadId` | string | Yes | Unique identifier for the thread |
55+
| `userId` | string | Yes | User ID associated with the thread |
56+
| `apiKey` | string | Yes | Your Zep API key |
57+
58+
#### Output
59+
60+
| Parameter | Type | Description |
61+
| --------- | ---- | ----------- |
62+
| `threadId` | string | The thread ID |
63+
| `userId` | string | The user ID |
64+
| `uuid` | string | Internal UUID |
65+
| `createdAt` | string | Creation timestamp |
66+
| `projectUuid` | string | Project UUID |
67+
68+
### `zep_get_threads`
69+
70+
List all conversation threads
71+
72+
#### Input
73+
74+
| Parameter | Type | Required | Description |
75+
| --------- | ---- | -------- | ----------- |
76+
| `pageSize` | number | No | Number of threads to retrieve per page |
77+
| `pageNumber` | number | No | Page number for pagination |
78+
| `orderBy` | string | No | Field to order results by \(created_at, updated_at, user_id, thread_id\) |
79+
| `asc` | boolean | No | Order direction: true for ascending, false for descending |
80+
| `apiKey` | string | Yes | Your Zep API key |
81+
82+
#### Output
83+
84+
| Parameter | Type | Description |
85+
| --------- | ---- | ----------- |
86+
| `threads` | array | Array of thread objects |
87+
| `responseCount` | number | Number of threads in this response |
88+
| `totalCount` | number | Total number of threads available |
89+
90+
### `zep_delete_thread`
91+
92+
Delete a conversation thread from Zep
93+
94+
#### Input
95+
96+
| Parameter | Type | Required | Description |
97+
| --------- | ---- | -------- | ----------- |
98+
| `threadId` | string | Yes | Thread ID to delete |
99+
| `apiKey` | string | Yes | Your Zep API key |
100+
101+
#### Output
102+
103+
| Parameter | Type | Description |
104+
| --------- | ---- | ----------- |
105+
| `deleted` | boolean | Whether the thread was deleted |
106+
107+
### `zep_get_context`
108+
109+
Retrieve user context from a thread with summary or basic mode
110+
111+
#### Input
112+
113+
| Parameter | Type | Required | Description |
114+
| --------- | ---- | -------- | ----------- |
115+
| `threadId` | string | Yes | Thread ID to get context from |
116+
| `mode` | string | No | Context mode: "summary" \(natural language\) or "basic" \(raw facts\) |
117+
| `minRating` | number | No | Minimum rating by which to filter relevant facts |
118+
| `apiKey` | string | Yes | Your Zep API key |
119+
120+
#### Output
121+
122+
| Parameter | Type | Description |
123+
| --------- | ---- | ----------- |
124+
| `context` | string | The context string \(summary or basic\) |
125+
| `facts` | array | Extracted facts |
126+
| `entities` | array | Extracted entities |
127+
| `summary` | string | Conversation summary |
128+
129+
### `zep_get_messages`
130+
131+
Retrieve messages from a thread
132+
133+
#### Input
134+
135+
| Parameter | Type | Required | Description |
136+
| --------- | ---- | -------- | ----------- |
137+
| `threadId` | string | Yes | Thread ID to get messages from |
138+
| `limit` | number | No | Maximum number of messages to return |
139+
| `cursor` | string | No | Cursor for pagination |
140+
| `lastn` | number | No | Number of most recent messages to return \(overrides limit and cursor\) |
141+
| `apiKey` | string | Yes | Your Zep API key |
142+
143+
#### Output
144+
145+
| Parameter | Type | Description |
146+
| --------- | ---- | ----------- |
147+
| `messages` | array | Array of message objects |
148+
| `rowCount` | number | Number of messages in this response |
149+
| `totalCount` | number | Total number of messages in the thread |
150+
151+
### `zep_add_messages`
152+
153+
Add messages to an existing thread
154+
155+
#### Input
156+
157+
| Parameter | Type | Required | Description |
158+
| --------- | ---- | -------- | ----------- |
159+
| `threadId` | string | Yes | Thread ID to add messages to |
160+
| `messages` | json | Yes | Array of message objects with role and content |
161+
| `apiKey` | string | Yes | Your Zep API key |
162+
163+
#### Output
164+
165+
| Parameter | Type | Description |
166+
| --------- | ---- | ----------- |
167+
| `context` | string | Updated context after adding messages |
168+
| `messageIds` | array | Array of added message UUIDs |
169+
| `threadId` | string | The thread ID |
170+
171+
### `zep_add_user`
172+
173+
Create a new user in Zep
174+
175+
#### Input
176+
177+
| Parameter | Type | Required | Description |
178+
| --------- | ---- | -------- | ----------- |
179+
| `userId` | string | Yes | Unique identifier for the user |
180+
| `email` | string | No | User email address |
181+
| `firstName` | string | No | User first name |
182+
| `lastName` | string | No | User last name |
183+
| `metadata` | json | No | Additional metadata as JSON object |
184+
| `apiKey` | string | Yes | Your Zep API key |
185+
186+
#### Output
187+
188+
| Parameter | Type | Description |
189+
| --------- | ---- | ----------- |
190+
| `userId` | string | The user ID |
191+
| `email` | string | User email |
192+
| `firstName` | string | User first name |
193+
| `lastName` | string | User last name |
194+
| `uuid` | string | Internal UUID |
195+
| `createdAt` | string | Creation timestamp |
196+
| `metadata` | object | User metadata |
197+
198+
### `zep_get_user`
199+
200+
Retrieve user information from Zep
201+
202+
#### Input
203+
204+
| Parameter | Type | Required | Description |
205+
| --------- | ---- | -------- | ----------- |
206+
| `userId` | string | Yes | User ID to retrieve |
207+
| `apiKey` | string | Yes | Your Zep API key |
208+
209+
#### Output
210+
211+
| Parameter | Type | Description |
212+
| --------- | ---- | ----------- |
213+
| `userId` | string | The user ID |
214+
| `email` | string | User email |
215+
| `firstName` | string | User first name |
216+
| `lastName` | string | User last name |
217+
| `uuid` | string | Internal UUID |
218+
| `createdAt` | string | Creation timestamp |
219+
| `updatedAt` | string | Last update timestamp |
220+
| `metadata` | object | User metadata |
221+
222+
### `zep_get_user_threads`
223+
224+
List all conversation threads for a specific user
225+
226+
#### Input
227+
228+
| Parameter | Type | Required | Description |
229+
| --------- | ---- | -------- | ----------- |
230+
| `userId` | string | Yes | User ID to get threads for |
231+
| `limit` | number | No | Maximum number of threads to return |
232+
| `apiKey` | string | Yes | Your Zep API key |
233+
234+
#### Output
235+
236+
| Parameter | Type | Description |
237+
| --------- | ---- | ----------- |
238+
| `threads` | array | Array of thread objects for this user |
239+
| `userId` | string | The user ID |
240+
241+
242+
243+
## Notes
244+
245+
- Category: `tools`
246+
- Type: `zep`

apps/sim/app/(auth)/components/sso-login-button.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import { useRouter } from 'next/navigation'
44
import { Button } from '@/components/ui/button'
5-
import { env, isTruthy } from '@/lib/env'
5+
import { getEnv, isTruthy } from '@/lib/env'
66
import { cn } from '@/lib/utils'
77

88
interface SSOLoginButtonProps {
@@ -24,7 +24,7 @@ export function SSOLoginButton({
2424
}: SSOLoginButtonProps) {
2525
const router = useRouter()
2626

27-
if (!isTruthy(env.NEXT_PUBLIC_SSO_ENABLED)) {
27+
if (!isTruthy(getEnv('NEXT_PUBLIC_SSO_ENABLED'))) {
2828
return null
2929
}
3030

apps/sim/app/(auth)/login/login-form.tsx

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,9 @@ import { Input } from '@/components/ui/input'
1616
import { Label } from '@/components/ui/label'
1717
import { client } from '@/lib/auth-client'
1818
import { quickValidateEmail } from '@/lib/email/validation'
19-
import { env, isFalsy, isTruthy } from '@/lib/env'
19+
import { getEnv, isFalsy, isTruthy } from '@/lib/env'
2020
import { createLogger } from '@/lib/logs/console/logger'
21+
import { getBaseUrl } from '@/lib/urls/utils'
2122
import { cn } from '@/lib/utils'
2223
import { SocialLoginButtons } from '@/app/(auth)/components/social-login-buttons'
2324
import { SSOLoginButton } from '@/app/(auth)/components/sso-login-button'
@@ -322,7 +323,7 @@ export default function LoginPage({
322323
},
323324
body: JSON.stringify({
324325
email: forgotPasswordEmail,
325-
redirectTo: `${window.location.origin}/reset-password`,
326+
redirectTo: `${getBaseUrl()}/reset-password`,
326327
}),
327328
})
328329

@@ -367,8 +368,8 @@ export default function LoginPage({
367368
}
368369
}
369370

370-
const ssoEnabled = isTruthy(env.NEXT_PUBLIC_SSO_ENABLED)
371-
const emailEnabled = !isFalsy(env.NEXT_PUBLIC_EMAIL_PASSWORD_SIGNUP_ENABLED)
371+
const ssoEnabled = isTruthy(getEnv('NEXT_PUBLIC_SSO_ENABLED'))
372+
const emailEnabled = !isFalsy(getEnv('NEXT_PUBLIC_EMAIL_PASSWORD_SIGNUP_ENABLED'))
372373
const hasSocial = githubAvailable || googleAvailable
373374
const hasOnlySSO = ssoEnabled && !emailEnabled && !hasSocial
374375
const showTopSSO = hasOnlySSO
@@ -398,7 +399,7 @@ export default function LoginPage({
398399
)}
399400

400401
{/* Email/Password Form - show unless explicitly disabled */}
401-
{!isFalsy(env.NEXT_PUBLIC_EMAIL_PASSWORD_SIGNUP_ENABLED) && (
402+
{!isFalsy(getEnv('NEXT_PUBLIC_EMAIL_PASSWORD_SIGNUP_ENABLED')) && (
402403
<form onSubmit={onSubmit} className={`${inter.className} mt-8 space-y-8`}>
403404
<div className='space-y-6'>
404405
<div className='space-y-2'>
@@ -521,7 +522,7 @@ export default function LoginPage({
521522
)}
522523

523524
{/* Only show signup link if email/password signup is enabled */}
524-
{!isFalsy(env.NEXT_PUBLIC_EMAIL_PASSWORD_SIGNUP_ENABLED) && (
525+
{!isFalsy(getEnv('NEXT_PUBLIC_EMAIL_PASSWORD_SIGNUP_ENABLED')) && (
525526
<div className={`${inter.className} pt-6 text-center font-light text-[14px]`}>
526527
<span className='font-normal'>Don't have an account? </span>
527528
<Link

0 commit comments

Comments
 (0)