Skip to content

Commit 5bdfe15

Browse files
committed
chore: merge staging into feat/ollama-embedding-support
2 parents 50858d4 + 4c94f3c commit 5bdfe15

465 files changed

Lines changed: 24050 additions & 7491 deletions

File tree

Some content is hidden

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

.cursor/skills/add-hosted-key/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ In the block config (`blocks/blocks/{service}.ts`), add `hideWhenHosted: true` t
192192
},
193193
```
194194

195-
The visibility is controlled by `isSubBlockHiddenByHostedKey()` in `lib/workflows/subblocks/visibility.ts`, which checks the `isHosted` feature flag.
195+
The visibility is controlled by `isSubBlockHidden()` in `lib/workflows/subblocks/visibility.ts`, which checks both the `isHosted` feature flag (`hideWhenHosted`) and optional env var conditions (`hideWhenEnvSet`).
196196

197197
### Excluding Specific Operations from Hosted Key Support
198198

.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: 92 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}>
@@ -1285,6 +1324,17 @@ export function StartIcon(props: SVGProps<SVGSVGElement>) {
12851324
)
12861325
}
12871326

1327+
export function ProfoundIcon(props: SVGProps<SVGSVGElement>) {
1328+
return (
1329+
<svg width='1em' height='1em' viewBox='0 0 55 55' xmlns='http://www.w3.org/2000/svg' {...props}>
1330+
<path
1331+
fill='currentColor'
1332+
d='M0 36.685V21.349a7.017 7.017 0 0 1 2.906-5.69l19.742-14.25A7.443 7.443 0 0 1 27.004 0h.062c1.623 0 3.193.508 4.501 1.452l19.684 14.207a7.016 7.016 0 0 1 2.906 5.69v12.302a7.013 7.013 0 0 1-2.907 5.689L31.527 53.562A7.605 7.605 0 0 1 27.078 55a7.641 7.641 0 0 1-4.465-1.44c-2.581-1.859-6.732-4.855-6.732-4.855V29.777c0-.249.28-.393.482-.248l10.538 7.605c.106.077.249.077.355 0l13.005-9.386a.306.306 0 0 0 0-.496l-13.005-9.386a.303.303 0 0 0-.355 0L.482 36.933A.304.304 0 0 1 0 36.685Z'
1333+
/>
1334+
</svg>
1335+
)
1336+
}
1337+
12881338
export function PineconeIcon(props: SVGProps<SVGSVGElement>) {
12891339
return (
12901340
<svg
@@ -2030,6 +2080,19 @@ export function Mem0Icon(props: SVGProps<SVGSVGElement>) {
20302080
)
20312081
}
20322082

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+
20332096
export function EvernoteIcon(props: SVGProps<SVGSVGElement>) {
20342097
return (
20352098
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='#7fce2c'>
@@ -2141,6 +2204,17 @@ export function LangsmithIcon(props: SVGProps<SVGSVGElement>) {
21412204
)
21422205
}
21432206

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+
21442218
export function LemlistIcon(props: SVGProps<SVGSVGElement>) {
21452219
return (
21462220
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='24 24.92 132 132' fill='none'>
@@ -4491,6 +4565,24 @@ export function DynamoDBIcon(props: SVGProps<SVGSVGElement>) {
44914565
)
44924566
}
44934567

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+
44944586
export function SQSIcon(props: SVGProps<SVGSVGElement>) {
44954587
return (
44964588
<svg

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

Lines changed: 10 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,
@@ -126,6 +128,7 @@ import {
126128
PolymarketIcon,
127129
PostgresIcon,
128130
PosthogIcon,
131+
ProfoundIcon,
129132
PulseIcon,
130133
QdrantIcon,
131134
QuiverIcon,
@@ -139,6 +142,7 @@ import {
139142
S3Icon,
140143
SalesforceIcon,
141144
SearchIcon,
145+
SecretsManagerIcon,
142146
SendgridIcon,
143147
SentryIcon,
144148
SerperIcon,
@@ -154,6 +158,7 @@ import {
154158
StagehandIcon,
155159
StripeIcon,
156160
SupabaseIcon,
161+
TailscaleIcon,
157162
TavilyIcon,
158163
TelegramIcon,
159164
TextractIcon,
@@ -220,6 +225,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
220225
enrich: EnrichSoIcon,
221226
evernote: EvernoteIcon,
222227
exa: ExaAIIcon,
228+
extend_v2: ExtendIcon,
223229
fathom: FathomIcon,
224230
file_v3: DocumentIcon,
225231
firecrawl: FirecrawlIcon,
@@ -268,6 +274,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
268274
ketch: KetchIcon,
269275
knowledge: PackageSearchIcon,
270276
langsmith: LangsmithIcon,
277+
launchdarkly: LaunchDarklyIcon,
271278
lemlist: LemlistIcon,
272279
linear: LinearIcon,
273280
linkedin: LinkedInIcon,
@@ -302,6 +309,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
302309
polymarket: PolymarketIcon,
303310
postgresql: PostgresIcon,
304311
posthog: PosthogIcon,
312+
profound: ProfoundIcon,
305313
pulse_v2: PulseIcon,
306314
qdrant: QdrantIcon,
307315
quiver: QuiverIcon,
@@ -315,6 +323,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
315323
s3: S3Icon,
316324
salesforce: SalesforceIcon,
317325
search: SearchIcon,
326+
secrets_manager: SecretsManagerIcon,
318327
sendgrid: SendgridIcon,
319328
sentry: SentryIcon,
320329
serper: SerperIcon,
@@ -331,6 +340,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
331340
stripe: StripeIcon,
332341
stt_v2: STTIcon,
333342
supabase: SupabaseIcon,
343+
tailscale: TailscaleIcon,
334344
tavily: TavilyIcon,
335345
telegram: TelegramIcon,
336346
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)