Skip to content

Commit d581009

Browse files
authored
v0.6.19: vllm fixes, loading improevments, reactquery standardization, new gpt 5.4 models, fireworks provider support, launchdarkly, tailscale, extend integrations
2 parents 7d0fdef + dcebe3a commit d581009

File tree

284 files changed

+11911
-2522
lines changed

Some content is hidden

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

284 files changed

+11911
-2522
lines changed

.github/workflows/ci.yml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ name: CI
22

33
on:
44
push:
5-
branches: [main, staging]
5+
branches: [main, staging, dev]
66
pull_request:
7-
branches: [main, staging]
7+
branches: [main, staging, dev]
88

99
concurrency:
1010
group: ci-${{ github.ref }}
@@ -23,7 +23,7 @@ jobs:
2323
detect-version:
2424
name: Detect Version
2525
runs-on: blacksmith-4vcpu-ubuntu-2404
26-
if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/staging')
26+
if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/staging' || github.ref == 'refs/heads/dev')
2727
outputs:
2828
version: ${{ steps.extract.outputs.version }}
2929
is_release: ${{ steps.extract.outputs.is_release }}
@@ -49,7 +49,7 @@ jobs:
4949
build-amd64:
5050
name: Build AMD64
5151
needs: [test-build, detect-version]
52-
if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/staging')
52+
if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/staging' || github.ref == 'refs/heads/dev')
5353
runs-on: blacksmith-8vcpu-ubuntu-2404
5454
permissions:
5555
contents: read
@@ -75,8 +75,8 @@ jobs:
7575
- name: Configure AWS credentials
7676
uses: aws-actions/configure-aws-credentials@v4
7777
with:
78-
role-to-assume: ${{ github.ref == 'refs/heads/main' && secrets.AWS_ROLE_TO_ASSUME || secrets.STAGING_AWS_ROLE_TO_ASSUME }}
79-
aws-region: ${{ github.ref == 'refs/heads/main' && secrets.AWS_REGION || secrets.STAGING_AWS_REGION }}
78+
role-to-assume: ${{ github.ref == 'refs/heads/main' && secrets.AWS_ROLE_TO_ASSUME || github.ref == 'refs/heads/dev' && secrets.DEV_AWS_ROLE_TO_ASSUME || secrets.STAGING_AWS_ROLE_TO_ASSUME }}
79+
aws-region: ${{ github.ref == 'refs/heads/main' && secrets.AWS_REGION || github.ref == 'refs/heads/dev' && secrets.DEV_AWS_REGION || secrets.STAGING_AWS_REGION }}
8080

8181
- name: Login to Amazon ECR
8282
id: login-ecr
@@ -109,6 +109,8 @@ jobs:
109109
# ECR tags (always build for ECR)
110110
if [ "${{ github.ref }}" = "refs/heads/main" ]; then
111111
ECR_TAG="latest"
112+
elif [ "${{ github.ref }}" = "refs/heads/dev" ]; then
113+
ECR_TAG="dev"
112114
else
113115
ECR_TAG="staging"
114116
fi

.github/workflows/images.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ jobs:
3636
- name: Configure AWS credentials
3737
uses: aws-actions/configure-aws-credentials@v4
3838
with:
39-
role-to-assume: ${{ github.ref == 'refs/heads/main' && secrets.AWS_ROLE_TO_ASSUME || secrets.STAGING_AWS_ROLE_TO_ASSUME }}
40-
aws-region: ${{ github.ref == 'refs/heads/main' && secrets.AWS_REGION || secrets.STAGING_AWS_REGION }}
39+
role-to-assume: ${{ github.ref == 'refs/heads/main' && secrets.AWS_ROLE_TO_ASSUME || github.ref == 'refs/heads/dev' && secrets.DEV_AWS_ROLE_TO_ASSUME || secrets.STAGING_AWS_ROLE_TO_ASSUME }}
40+
aws-region: ${{ github.ref == 'refs/heads/main' && secrets.AWS_REGION || github.ref == 'refs/heads/dev' && secrets.DEV_AWS_REGION || secrets.STAGING_AWS_REGION }}
4141

4242
- name: Login to Amazon ECR
4343
id: login-ecr
@@ -70,6 +70,8 @@ jobs:
7070
# ECR tags (always build for ECR)
7171
if [ "${{ github.ref }}" = "refs/heads/main" ]; then
7272
ECR_TAG="latest"
73+
elif [ "${{ github.ref }}" = "refs/heads/dev" ]; then
74+
ECR_TAG="dev"
7375
else
7476
ECR_TAG="staging"
7577
fi

apps/docs/components/icons.tsx

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -683,6 +683,45 @@ export function SerperIcon(props: SVGProps<SVGSVGElement>) {
683683
)
684684
}
685685

686+
export function TailscaleIcon(props: SVGProps<SVGSVGElement>) {
687+
return (
688+
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='none' {...props}>
689+
<path
690+
fill='currentColor'
691+
opacity={0.2}
692+
d='M65.6 127.7c35.3 0 63.9-28.6 63.9-63.9S100.9 0 65.6 0 1.8 28.6 1.8 63.9s28.6 63.8 63.8 63.8'
693+
/>
694+
<path
695+
fill='currentColor'
696+
d='M65.6 318.1c35.3 0 63.9-28.6 63.9-63.9s-28.6-63.9-63.9-63.9S1.8 219 1.8 254.2s28.6 63.9 63.8 63.9'
697+
/>
698+
<path
699+
fill='currentColor'
700+
opacity={0.2}
701+
d='M65.6 512c35.3 0 63.9-28.6 63.9-63.9s-28.6-63.9-63.9-63.9-63.8 28.7-63.8 63.9S30.4 512 65.6 512'
702+
/>
703+
<path
704+
fill='currentColor'
705+
d='M257.2 318.1c35.3 0 63.9-28.6 63.9-63.9s-28.6-63.9-63.9-63.9-63.9 28.6-63.9 63.9 28.6 63.9 63.9 63.9m0 193.9c35.3 0 63.9-28.6 63.9-63.9s-28.6-63.9-63.9-63.9-63.9 28.6-63.9 63.9 28.6 63.9 63.9 63.9'
706+
/>
707+
<path
708+
fill='currentColor'
709+
opacity={0.2}
710+
d='M257.2 127.7c35.3 0 63.9-28.6 63.9-63.9S292.5 0 257.2 0s-63.9 28.6-63.9 63.9 28.6 63.8 63.9 63.8m189.2 0c35.3 0 63.9-28.6 63.9-63.9S481.6 0 446.4 0c-35.3 0-63.9 28.6-63.9 63.9s28.6 63.8 63.9 63.8'
711+
/>
712+
<path
713+
fill='currentColor'
714+
d='M446.4 318.1c35.3 0 63.9-28.6 63.9-63.9s-28.6-63.9-63.9-63.9-63.9 28.6-63.9 63.9 28.6 63.9 63.9 63.9'
715+
/>
716+
<path
717+
fill='currentColor'
718+
opacity={0.2}
719+
d='M446.4 512c35.3 0 63.9-28.6 63.9-63.9s-28.6-63.9-63.9-63.9-63.9 28.6-63.9 63.9 28.6 63.9 63.9 63.9'
720+
/>
721+
</svg>
722+
)
723+
}
724+
686725
export function TavilyIcon(props: SVGProps<SVGSVGElement>) {
687726
return (
688727
<svg viewBox='0 0 600 600' xmlns='http://www.w3.org/2000/svg' {...props}>
@@ -2041,6 +2080,19 @@ export function Mem0Icon(props: SVGProps<SVGSVGElement>) {
20412080
)
20422081
}
20432082

2083+
export function ExtendIcon(props: SVGProps<SVGSVGElement>) {
2084+
return (
2085+
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='0 0 33 18' fill='none'>
2086+
<path
2087+
clipRule='evenodd'
2088+
d='M16.2893 0C16.6984 1.91708e-05 17.1074 0.0970011 17.5103 0.293745C22.3018 2.63326 27.0841 4.98521 31.8693 7.33722C32.3003 7.54649 32.5721 7.9868 32.5721 8.46461V9.51422C32.5721 9.99522 32.3004 10.4357 31.8693 10.645C31.8693 10.645 19.5816 16.6732 17.5542 17.6634C17.1357 17.8696 16.692 17.9727 16.2859 17.9727C15.8799 17.9727 15.4707 17.8758 15.0615 17.6759C12.8124 16.5795 1.9646 11.2604 0.705842 10.6419C0.274826 10.4295 2.31482e-05 9.99216 0 9.51117V8.46461C4.59913e-05 7.98366 0.271816 7.54656 0.702792 7.33417C5.8977 4.7819 15.0599 0.301869 15.1021 0.281239C15.4957 0.0938275 15.8801 0 16.2893 0ZM16.2859 2.96124C16.1516 2.96126 16.0173 2.98909 15.8924 3.05153L4.28874 8.77696C4.11382 8.86442 4.11382 9.10831 4.28874 9.19577L15.8924 14.9209C16.0173 14.9802 16.1516 15.0115 16.2859 15.0115C16.4202 15.0115 16.5548 14.9802 16.6797 14.9209L28.2864 9.19577C28.4582 9.10831 28.4582 8.86442 28.2864 8.77696L16.6797 3.05153C16.5548 2.98906 16.4202 2.96124 16.2859 2.96124Z'
2089+
fill='currentColor'
2090+
fillRule='evenodd'
2091+
/>
2092+
</svg>
2093+
)
2094+
}
2095+
20442096
export function EvernoteIcon(props: SVGProps<SVGSVGElement>) {
20452097
return (
20462098
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='#7fce2c'>
@@ -2152,6 +2204,17 @@ export function LangsmithIcon(props: SVGProps<SVGSVGElement>) {
21522204
)
21532205
}
21542206

2207+
export function LaunchDarklyIcon(props: SVGProps<SVGSVGElement>) {
2208+
return (
2209+
<svg {...props} viewBox='0 0 216 214.94' fill='none' xmlns='http://www.w3.org/2000/svg'>
2210+
<path
2211+
fill='currentColor'
2212+
d='M109.8,214.94a4.87,4.87,0,0,1-4.26-2.66,4.5,4.5,0,0,1,.44-4.82l50.49-69.53L68,174.11a4.61,4.61,0,0,1-1.9.41,4.77,4.77,0,0,1-4.52-3.4,4.57,4.57,0,0,1,2-5.21L141.33,120,4.41,112.13a4.69,4.69,0,0,1,0-9.36l137-7.87L63.61,49a4.56,4.56,0,0,1-1.94-5.2,4.74,4.74,0,0,1,4.51-3.4,4.6,4.6,0,0,1,1.9.4L156.5,77,106,7.48a4.56,4.56,0,0,1-.44-4.83A4.84,4.84,0,0,1,109.84,0a4.59,4.59,0,0,1,3.28,1.41L213.77,102.05a7.65,7.65,0,0,1,0,10.8L113.08,213.53A4.59,4.59,0,0,1,109.8,214.94Z'
2213+
/>
2214+
</svg>
2215+
)
2216+
}
2217+
21552218
export function LemlistIcon(props: SVGProps<SVGSVGElement>) {
21562219
return (
21572220
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='24 24.92 132 132' fill='none'>
@@ -4502,6 +4565,24 @@ export function DynamoDBIcon(props: SVGProps<SVGSVGElement>) {
45024565
)
45034566
}
45044567

4568+
export function SecretsManagerIcon(props: SVGProps<SVGSVGElement>) {
4569+
return (
4570+
<svg {...props} viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'>
4571+
<defs>
4572+
<linearGradient x1='0%' y1='100%' x2='100%' y2='0%' id='secretsManagerGradient'>
4573+
<stop stopColor='#BD0816' offset='0%' />
4574+
<stop stopColor='#FF5252' offset='100%' />
4575+
</linearGradient>
4576+
</defs>
4577+
<rect fill='url(#secretsManagerGradient)' width='80' height='80' />
4578+
<path
4579+
d='M38.76,43.36 C38.76,44.044 39.317,44.6 40,44.6 C40.684,44.6 41.24,44.044 41.24,43.36 C41.24,42.676 40.684,42.12 40,42.12 C39.317,42.12 38.76,42.676 38.76,43.36 L38.76,43.36 Z M36.76,43.36 C36.76,41.573 38.213,40.12 40,40.12 C41.787,40.12 43.24,41.573 43.24,43.36 C43.24,44.796 42.296,46.002 41,46.426 L41,49 L39,49 L39,46.426 C37.704,46.002 36.76,44.796 36.76,43.36 L36.76,43.36 Z M49,38 L31,38 L31,51 L49,51 L49,48 L46,48 L46,46 L49,46 L49,43 L46,43 L46,41 L49,41 L49,38 Z M34,36 L45.999,36 L46,31 C46.001,28.384 43.143,26.002 40.004,26 L40.001,26 C38.472,26 36.928,26.574 35.763,27.575 C34.643,28.537 34,29.786 34,31.001 L34,36 Z M48,31.001 L47.999,36 L50,36 C50.553,36 51,36.448 51,37 L51,52 C51,52.552 50.553,53 50,53 L30,53 C29.447,53 29,52.552 29,52 L29,37 C29,36.448 29.447,36 30,36 L32,36 L32,31 C32.001,29.202 32.897,27.401 34.459,26.058 C35.982,24.75 38.001,24 40.001,24 L40.004,24 C44.265,24.002 48.001,27.273 48,31.001 L48,31.001 Z M19.207,55.049 L20.828,53.877 C18.093,50.097 16.581,45.662 16.396,41 L19,41 L19,39 L16.399,39 C16.598,34.366 18.108,29.957 20.828,26.198 L19.207,25.025 C16.239,29.128 14.599,33.942 14.399,39 L12,39 L12,41 L14.396,41 C14.582,46.086 16.224,50.926 19.207,55.049 L19.207,55.049 Z M53.838,59.208 C50.069,61.936 45.648,63.446 41,63.639 L41,61 L39,61 L39,63.639 C34.352,63.447 29.93,61.937 26.159,59.208 L24.988,60.828 C29.1,63.805 33.928,65.445 39,65.639 L39,68 L41,68 L41,65.639 C46.072,65.445 50.898,63.805 55.01,60.828 L53.838,59.208 Z M26.159,20.866 C29.93,18.138 34.352,16.628 39,16.436 L39,19 L41,19 L41,16.436 C45.648,16.628 50.069,18.138 53.838,20.866 L55.01,19.246 C50.898,16.27 46.072,14.63 41,14.436 L41,12 L39,12 L39,14.436 C33.928,14.629 29.1,16.269 24.988,19.246 L26.159,20.866 Z M65.599,39 C65.399,33.942 63.759,29.128 60.79,25.025 L59.169,26.198 C61.89,29.957 63.4,34.366 63.599,39 L61,39 L61,41 L63.602,41 C63.416,45.662 61.905,50.097 59.169,53.877 L60.79,55.049 C63.774,50.926 65.415,46.086 65.602,41 L68,41 L68,39 L65.599,39 Z M56.386,25.064 L64.226,17.224 L62.812,15.81 L54.972,23.65 L56.386,25.064 Z M23.612,55.01 L15.772,62.85 L17.186,64.264 L25.026,56.424 L23.612,55.01 Z M28.666,27.253 L13.825,12.413 L12.411,13.827 L27.252,28.667 L28.666,27.253 Z M54.193,52.78 L67.586,66.173 L66.172,67.587 L52.779,54.194 L54.193,52.78 Z'
4580+
fill='#FFFFFF'
4581+
/>
4582+
</svg>
4583+
)
4584+
}
4585+
45054586
export function SQSIcon(props: SVGProps<SVGSVGElement>) {
45064587
return (
45074588
<svg

apps/docs/components/ui/icon-mapping.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ import {
4545
EnrichSoIcon,
4646
EvernoteIcon,
4747
ExaAIIcon,
48+
ExtendIcon,
4849
EyeIcon,
4950
FathomIcon,
5051
FirecrawlIcon,
@@ -91,6 +92,7 @@ import {
9192
KalshiIcon,
9293
KetchIcon,
9394
LangsmithIcon,
95+
LaunchDarklyIcon,
9496
LemlistIcon,
9597
LinearIcon,
9698
LinkedInIcon,
@@ -140,6 +142,7 @@ import {
140142
S3Icon,
141143
SalesforceIcon,
142144
SearchIcon,
145+
SecretsManagerIcon,
143146
SendgridIcon,
144147
SentryIcon,
145148
SerperIcon,
@@ -155,6 +158,7 @@ import {
155158
StagehandIcon,
156159
StripeIcon,
157160
SupabaseIcon,
161+
TailscaleIcon,
158162
TavilyIcon,
159163
TelegramIcon,
160164
TextractIcon,
@@ -221,6 +225,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
221225
enrich: EnrichSoIcon,
222226
evernote: EvernoteIcon,
223227
exa: ExaAIIcon,
228+
extend_v2: ExtendIcon,
224229
fathom: FathomIcon,
225230
file_v3: DocumentIcon,
226231
firecrawl: FirecrawlIcon,
@@ -269,6 +274,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
269274
ketch: KetchIcon,
270275
knowledge: PackageSearchIcon,
271276
langsmith: LangsmithIcon,
277+
launchdarkly: LaunchDarklyIcon,
272278
lemlist: LemlistIcon,
273279
linear: LinearIcon,
274280
linkedin: LinkedInIcon,
@@ -317,6 +323,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
317323
s3: S3Icon,
318324
salesforce: SalesforceIcon,
319325
search: SearchIcon,
326+
secrets_manager: SecretsManagerIcon,
320327
sendgrid: SendgridIcon,
321328
sentry: SentryIcon,
322329
serper: SerperIcon,
@@ -333,6 +340,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
333340
stripe: StripeIcon,
334341
stt_v2: STTIcon,
335342
supabase: SupabaseIcon,
343+
tailscale: TailscaleIcon,
336344
tavily: TavilyIcon,
337345
telegram: TelegramIcon,
338346
textract_v2: TextractIcon,

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

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,35 @@ List tasks in Attio, optionally filtered by record, assignee, or completion stat
359359
|`createdAt` | string | When the task was created |
360360
| `count` | number | Number of tasks returned |
361361

362+
### `attio_get_task`
363+
364+
Get a single task by ID from Attio
365+
366+
#### Input
367+
368+
| Parameter | Type | Required | Description |
369+
| --------- | ---- | -------- | ----------- |
370+
| `taskId` | string | Yes | The ID of the task to retrieve |
371+
372+
#### Output
373+
374+
| Parameter | Type | Description |
375+
| --------- | ---- | ----------- |
376+
| `taskId` | string | The task ID |
377+
| `content` | string | The task content |
378+
| `deadlineAt` | string | The task deadline |
379+
| `isCompleted` | boolean | Whether the task is completed |
380+
| `linkedRecords` | array | Records linked to this task |
381+
|`targetObjectId` | string | The linked object ID |
382+
|`targetRecordId` | string | The linked record ID |
383+
| `assignees` | array | Task assignees |
384+
|`type` | string | The assignee actor type \(e.g. workspace-member\) |
385+
|`id` | string | The assignee actor ID |
386+
| `createdByActor` | object | The actor who created this task |
387+
|`type` | string | The actor type \(e.g. workspace-member, api-token, system\) |
388+
|`id` | string | The actor ID |
389+
| `createdAt` | string | When the task was created |
390+
362391
### `attio_create_task`
363392

364393
Create a task in Attio
@@ -1012,8 +1041,8 @@ Update a webhook in Attio (target URL and/or subscriptions)
10121041
| Parameter | Type | Required | Description |
10131042
| --------- | ---- | -------- | ----------- |
10141043
| `webhookId` | string | Yes | The webhook ID to update |
1015-
| `targetUrl` | string | Yes | HTTPS target URL for webhook delivery |
1016-
| `subscriptions` | string | Yes | JSON array of subscriptions, e.g. \[\{"event_type":"note.created"\}\] |
1044+
| `targetUrl` | string | No | HTTPS target URL for webhook delivery |
1045+
| `subscriptions` | string | No | JSON array of subscriptions, e.g. \[\{"event_type":"note.created"\}\] |
10171046

10181047
#### Output
10191048

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
---
2+
title: Extend
3+
description: Parse and extract content from documents
4+
---
5+
6+
import { BlockInfoCard } from "@/components/ui/block-info-card"
7+
8+
<BlockInfoCard
9+
type="extend_v2"
10+
color="#000000"
11+
/>
12+
13+
## Usage Instructions
14+
15+
Integrate Extend AI into the workflow. Parse and extract structured content from documents or file references.
16+
17+
18+
19+
## Tools
20+
21+
### `extend_parser`
22+
23+
#### Input
24+
25+
| Parameter | Type | Required | Description |
26+
| --------- | ---- | -------- | ----------- |
27+
| `filePath` | string | No | URL to a document to be processed |
28+
| `file` | file | No | Document file to be processed |
29+
| `fileUpload` | object | No | File upload data from file-upload component |
30+
| `outputFormat` | string | No | Target output format \(markdown or spatial\). Defaults to markdown. |
31+
| `chunking` | string | No | Chunking strategy \(page, document, or section\). Defaults to page. |
32+
| `engine` | string | No | Parsing engine \(parse_performance or parse_light\). Defaults to parse_performance. |
33+
| `apiKey` | string | Yes | Extend API key |
34+
35+
#### Output
36+
37+
This tool does not produce any outputs.
38+
39+

0 commit comments

Comments
 (0)