Compare commits

...

45 Commits

Author SHA1 Message Date
Waleed
e24f31cbce v0.5.27: sidebar updates, ssrf patches, gpt-5.2, stagehand fixes 2025-12-11 14:45:25 -08:00
Waleed
3b9cbeaa49 fix(tools): updated browser use and stagehand to use the latest models (#2319)
* fix(stagehand): incl stagehand in the standalone build

* fix(stagehand): updated browser use and stagehand to use the latest models
2025-12-11 14:39:25 -08:00
Waleed
c592e54118 fix(pg): for pg tools, use count isntead of length for number of rows impacted (#2317) 2025-12-11 14:03:00 -08:00
Waleed
d02499a915 fix(ollama): fixed messages array for ollama, added gpt-5.2 (#2315)
* fix(ollama): fixed messages array for ollama, added gpt-5.2

* ack PR comments
2025-12-11 13:51:51 -08:00
Siddharth Ganesan
c0bb85479d fix(parallel): variable resolution in collection (#2314)
* Fix var resolution in parallel

* Fix parallel

* Clean logs

* FIx loop error port
2025-12-11 13:51:22 -08:00
Waleed
b595273c3f fix(vuln): fix dns rebinding/ssrf vulnerability (#2316) 2025-12-11 13:42:28 -08:00
Emir Karabeg
193a15aca4 improvement(sidebar): auto-scroll (#2312)
* fix(sidebar): re-render auto-scroll

* improvement: sidebar-scrolling listener
2025-12-11 12:54:14 -08:00
Vikhyath Mondreti
39d5d797ec fix(workflow-changes): changes detected in autolayout (#2313) 2025-12-11 12:45:48 -08:00
Waleed
3fbd57caf1 v0.5.26: tool fixes, templates and knowledgebase fixes, deployment versions in logs 2025-12-11 00:52:13 -08:00
Waleed
3db8f82449 feat(deployment-version): capture deployment version in log (#2304)
* feat(deployment-version): capture deployment version in log

* improvement: terminal store, logs version, toolbar

---------

Co-authored-by: Emir Karabeg <emirkarabeg@berkeley.edu>
2025-12-11 00:34:08 -08:00
Waleed
207a14970b fix(dbs): remove harness from validation on user-provided db creds (#2308) 2025-12-11 00:25:48 -08:00
Waleed
0997989f36 fix(x): fix x optional tool params (#2307)
* fix(x): fix x optional tool params

* ack pr comments
2025-12-11 00:09:35 -08:00
Waleed
7fd912d8a9 fix(stagehand): upgraded stagehand sdk to remove deps incomptaible with bun runtime (#2305)
* fix(stagehand): upgraded stagehand sdk to remove deps incomptaible with bun runtime

* ack PR comments
2025-12-10 23:42:33 -08:00
Siddharth Ganesan
c550e4591c fix(condition): fix condition block for no outgoing edge (#2306)
* Fix condition block evaluation

* Lint
2025-12-10 23:24:27 -08:00
Emir Karabeg
a881dc1877 feat(sidebar): scroll to workflow/folder (#2302)
* feat(sidebar): scroll to workflow/folder

* improvement: sidebar scrolling optimizations
2025-12-10 22:08:10 -08:00
Waleed
da36c453b5 feat(i18n): update translations (#2303)
Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>
2025-12-10 22:07:18 -08:00
Waleed
635823664c fix(tools): fix perplexity & parallel ai tag dropdown inaccuracies (#2300)
* fix(tools): fix perplexity & parallel ai tag dropdown inaccuracies

* fixed stt, tts and added output conditions to conditionally display tag dropdown values based on other subblock values

* updated exa to match latest API
2025-12-10 21:46:31 -08:00
Waleed
14846ab05c feat(i18n): update translations (#2299)
Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>
2025-12-10 21:16:32 -08:00
Waleed
6c99c841f4 fix(tools): fixed zendesk tools, kb upload failure for md files, stronger typing (#2297)
* fix(tools): fixed zendesk tools, kb upload failure for md files, stronger typing

* ack PR comments
2025-12-10 20:42:16 -08:00
Waleed
37d7902fcd fix(dashboard): prevent dashboard from getting unmounted when on the logs page (#2298) 2025-12-10 20:41:26 -08:00
Emir Karabeg
1e563b1e0a fix(ui/ux): templates and knowledge pages (#2296) 2025-12-10 19:56:23 -08:00
Vikhyath Mondreti
b5da61377c v0.5.25: minor ui improvements, copilot billing fix 2025-12-10 18:32:27 -08:00
Vikhyath Mondreti
1d62ece915 fix(billing): copilot should directly deduct credit balance (#2294) 2025-12-10 18:25:36 -08:00
Emir Karabeg
bbab2ff732 improvement(ui/ux): small styling improvements (#2293)
* improvement: action-bar duplicate, copilot header name truncating, dashboard table scrolling

* improvement: workflow block handle positioning

* improvement: copilot notification fix message

* improvement: dashboard layout, popover hovering

* fix: filtering table into row, workflow name truncating
2025-12-10 17:20:59 -08:00
Waleed
18b7032494 v0.5.24: agent tool and UX improvements, redis service overhaul (#2291)
* feat(folders): add the ability to create a folder within a folder in popover (#2287)

* fix(agent): filter out empty params to ensure LLM can set tool params at runtime (#2288)

* fix(mcp): added backfill effect to add missing descriptions for mcp tools (#2290)

* fix(redis): cleanup access pattern across callsites (#2289)

* fix(redis): cleanup access pattern across callsites

* swap redis command to be non blocking

* improvement(log-details): polling, trace spans (#2292)

---------

Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
Co-authored-by: Emir Karabeg <78010029+emir-karabeg@users.noreply.github.com>
2025-12-10 13:09:21 -08:00
Emir Karabeg
76bc2fae83 improvement(log-details): polling, trace spans (#2292) 2025-12-10 13:08:24 -08:00
Vikhyath Mondreti
1cfe229056 fix(redis): cleanup access pattern across callsites (#2289)
* fix(redis): cleanup access pattern across callsites

* swap redis command to be non blocking
2025-12-10 12:37:33 -08:00
Waleed
6791d968b8 fix(mcp): added backfill effect to add missing descriptions for mcp tools (#2290) 2025-12-10 11:57:18 -08:00
Waleed
163db5cf50 fix(agent): filter out empty params to ensure LLM can set tool params at runtime (#2288) 2025-12-10 11:38:54 -08:00
Waleed
bbbb13af7e feat(folders): add the ability to create a folder within a folder in popover (#2287) 2025-12-10 11:19:57 -08:00
Waleed
b7bbef8620 v0.5.23: kb, logs, general ui improvements, token bucket rate limits, docs, mcp, autolayout improvements (#2286)
* fix(mcp): prevent redundant MCP server discovery calls at runtime, use cached tool schema instead (#2273)

* fix(mcp): prevent redundant MCP server discovery calls at runtime, use cached tool schema instead

* added backfill, added loading state for tools in settings > mcp

* fix tool inp

* feat(rate-limiter): token bucket algorithm  (#2270)

* fix(ratelimit): make deployed chat rate limited

* improvement(rate-limiter): use token bucket algo

* update docs

* fix

* fix type

* fix db rate limiter

* address greptile comments

* feat(i18n): update translations (#2275)

Co-authored-by: icecrasher321 <icecrasher321@users.noreply.github.com>

* fix(tools): updated kalshi and polymarket tools to accurately reflect outputs (#2274)

* feat(i18n): update translations (#2276)

Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>

* fix(autolayout): align by handle (#2277)

* fix(autolayout): align by handle

* use shared constants everywhere

* cleanup

* fix(copilot): fix custom tools (#2278)

* Fix title custom tool

* Checkpoitn (broken)

* Fix custom tool flash

* Edit workflow returns null fix

* Works

* Fix lint

* fix(ime): prevent form submission during IME composition steps (#2279)

* fix(ui): prevent form submission during IME composition steps

* chore(gitignore): add IntelliJ IDE files to .gitignore

---------

Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
Co-authored-by: Waleed <walif6@gmail.com>
Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>

* feat(ui): logs, kb, emcn (#2207)

* feat(kb): emcn alignment; sidebar: popover primary; settings-modal: expand

* feat: EMCN breadcrumb; improvement(KB): UI

* fix: hydration error

* improvement(KB): UI

* feat: emcn modal sizing, KB tags; refactor: deleted old sidebar

* feat(logs): UI

* fix: add documents modal name

* feat: logs, emcn, cursorrules; refactor: logs

* feat: dashboard

* feat: notifications; improvement: logs details

* fixed random rectangle on canvas

* fixed the name of the file to align

* fix build

---------

Co-authored-by: waleed <walif6@gmail.com>

* fix(creds): glitch allowing multiple credentials in an integration (#2282)

* improvement: custom tools modal, logs-details (#2283)

* fix(docs): fix copy page button and header hook (#2284)

* improvement(chat): add the ability to download files from the deployed chat (#2280)

* added teams download and chat download file

* Removed comments

* removed comments

* component structure and download all

* removed comments

* cleanup code

* fix empty files case

* small fix

* fix(container): resize heuristic improvement (#2285)

* estimate block height for resize based on subblocks

* fix hydration error

* make more conservative

---------

Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
Co-authored-by: icecrasher321 <icecrasher321@users.noreply.github.com>
Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>
Co-authored-by: Siddharth Ganesan <33737564+Sg312@users.noreply.github.com>
Co-authored-by: mosa <mosaxiv@gmail.com>
Co-authored-by: Emir Karabeg <78010029+emir-karabeg@users.noreply.github.com>
Co-authored-by: Adam Gough <77861281+aadamgough@users.noreply.github.com>
2025-12-10 00:57:58 -08:00
Vikhyath Mondreti
6fd4087a79 fix(container): resize heuristic improvement (#2285)
* estimate block height for resize based on subblocks

* fix hydration error

* make more conservative
2025-12-10 00:20:03 -08:00
Adam Gough
cb6e763714 improvement(chat): add the ability to download files from the deployed chat (#2280)
* added teams download and chat download file

* Removed comments

* removed comments

* component structure and download all

* removed comments

* cleanup code

* fix empty files case

* small fix
2025-12-09 22:08:03 -08:00
Waleed
d06b360b1d fix(docs): fix copy page button and header hook (#2284) 2025-12-09 21:58:54 -08:00
Emir Karabeg
0713580862 improvement: custom tools modal, logs-details (#2283) 2025-12-09 21:50:09 -08:00
Vikhyath Mondreti
f421f27d3f fix(creds): glitch allowing multiple credentials in an integration (#2282) 2025-12-09 21:07:14 -08:00
Emir Karabeg
0083c89fa5 feat(ui): logs, kb, emcn (#2207)
* feat(kb): emcn alignment; sidebar: popover primary; settings-modal: expand

* feat: EMCN breadcrumb; improvement(KB): UI

* fix: hydration error

* improvement(KB): UI

* feat: emcn modal sizing, KB tags; refactor: deleted old sidebar

* feat(logs): UI

* fix: add documents modal name

* feat: logs, emcn, cursorrules; refactor: logs

* feat: dashboard

* feat: notifications; improvement: logs details

* fixed random rectangle on canvas

* fixed the name of the file to align

* fix build

---------

Co-authored-by: waleed <walif6@gmail.com>
2025-12-09 20:50:28 -08:00
mosa
3cec449402 fix(ime): prevent form submission during IME composition steps (#2279)
* fix(ui): prevent form submission during IME composition steps

* chore(gitignore): add IntelliJ IDE files to .gitignore

---------

Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
Co-authored-by: Waleed <walif6@gmail.com>
Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>
2025-12-09 19:58:33 -08:00
Siddharth Ganesan
c5b3fcb181 fix(copilot): fix custom tools (#2278)
* Fix title custom tool

* Checkpoitn (broken)

* Fix custom tool flash

* Edit workflow returns null fix

* Works

* Fix lint
2025-12-09 17:42:17 -08:00
Vikhyath Mondreti
dd7db6e144 fix(autolayout): align by handle (#2277)
* fix(autolayout): align by handle

* use shared constants everywhere

* cleanup
2025-12-09 16:28:25 -08:00
Waleed
306043eedb feat(i18n): update translations (#2276)
Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>
2025-12-09 16:20:43 -08:00
Waleed
569598b39e fix(tools): updated kalshi and polymarket tools to accurately reflect outputs (#2274) 2025-12-09 15:35:36 -08:00
Waleed
cc66aa5a3e feat(i18n): update translations (#2275)
Co-authored-by: icecrasher321 <icecrasher321@users.noreply.github.com>
2025-12-09 15:25:03 -08:00
Vikhyath Mondreti
aea32d423f feat(rate-limiter): token bucket algorithm (#2270)
* fix(ratelimit): make deployed chat rate limited

* improvement(rate-limiter): use token bucket algo

* update docs

* fix

* fix type

* fix db rate limiter

* address greptile comments
2025-12-09 14:57:17 -08:00
Waleed
22abf98835 fix(mcp): prevent redundant MCP server discovery calls at runtime, use cached tool schema instead (#2273)
* fix(mcp): prevent redundant MCP server discovery calls at runtime, use cached tool schema instead

* added backfill, added loading state for tools in settings > mcp

* fix tool inp
2025-12-09 12:44:53 -08:00
578 changed files with 44066 additions and 24943 deletions

View File

@@ -0,0 +1,45 @@
---
description: EMCN component library patterns with CVA
globs: ["apps/sim/components/emcn/**"]
---
# EMCN Component Guidelines
## When to Use CVA vs Direct Styles
**Use CVA (class-variance-authority) when:**
- 2+ visual variants (primary, secondary, outline)
- Multiple sizes or state variations
- Example: Button with variants
**Use direct className when:**
- Single consistent style
- No variations needed
- Example: Label with one style
## Patterns
**With CVA:**
```tsx
const buttonVariants = cva('base-classes', {
variants: {
variant: { default: '...', primary: '...' },
size: { sm: '...', md: '...' }
}
})
export { Button, buttonVariants }
```
**Without CVA:**
```tsx
function Label({ className, ...props }) {
return <Primitive className={cn('single-style-classes', className)} {...props} />
}
```
## Rules
- Use Radix UI primitives for accessibility
- Export component and variants (if using CVA)
- TSDoc with usage examples
- Consistent tokens: `font-medium`, `text-[12px]`, `rounded-[4px]`
- Always use `transition-colors` for hover states

20
.cursor/rules/global.mdc Normal file
View File

@@ -0,0 +1,20 @@
---
description: Global coding standards that apply to all files
alwaysApply: true
---
# Global Standards
You are a professional software engineer. All code must follow best practices: accurate, readable, clean, and efficient.
## Logging
Use `logger.info`, `logger.warn`, `logger.error` instead of `console.log`.
## Comments
Use TSDoc for documentation. No `====` separators. No non-TSDoc comments.
## Styling
Never update global styles. Keep all styling local to components.
## Package Manager
Use `bun` and `bunx`, not `npm` and `npx`.

View File

@@ -0,0 +1,67 @@
---
description: Core architecture principles for the Sim app
globs: ["apps/sim/**"]
---
# Sim App Architecture
## Core Principles
1. **Single Responsibility**: Each component, hook, store has one clear purpose
2. **Composition Over Complexity**: Break down complex logic into smaller pieces
3. **Type Safety First**: TypeScript interfaces for all props, state, return types
4. **Predictable State**: Zustand for global state, useState for UI-only concerns
5. **Performance by Default**: useMemo, useCallback, refs appropriately
## File Organization
```
feature/
├── components/ # Feature components
│ └── sub-feature/ # Sub-feature with own components
├── hooks/ # Custom hooks
└── feature.tsx # Main component
```
## Naming Conventions
- **Components**: PascalCase (`WorkflowList`, `TriggerPanel`)
- **Hooks**: camelCase with `use` prefix (`useWorkflowOperations`)
- **Files**: kebab-case matching export (`workflow-list.tsx`)
- **Stores**: kebab-case in stores/ (`sidebar/store.ts`)
- **Constants**: SCREAMING_SNAKE_CASE
- **Interfaces**: PascalCase with suffix (`WorkflowListProps`)
## State Management
**useState**: UI-only concerns (dropdown open, hover, form inputs)
**Zustand**: Shared state, persistence, global app state
**useRef**: DOM refs, avoiding dependency issues, mutable non-reactive values
## Component Extraction
**Extract to separate file when:**
- Complex (50+ lines)
- Used across 2+ files
- Has own state/logic
**Keep inline when:**
- Simple (< 10 lines)
- Used in only 1 file
- Purely presentational
**Never import utilities from another component file.** Extract shared helpers to `lib/` or `utils/`.
## Utils Files
**Never create a `utils.ts` file for a single consumer.** Inline the logic directly in the consuming component.
**Create `utils.ts` when:**
- 2+ files import the same helper
**Prefer existing sources of truth:**
- Before duplicating logic, check if a centralized helper already exists (e.g., `lib/logs/get-trigger-options.ts`)
- Import from the source of truth rather than creating wrapper functions
**Location hierarchy:**
- `lib/` — App-wide utilities (auth, billing, core)
- `feature/utils.ts` — Feature-scoped utilities (used by 2+ components in the feature)
- Inline — Single-use helpers (define directly in the component)

View File

@@ -0,0 +1,64 @@
---
description: Component patterns and structure for React components
globs: ["apps/sim/**/*.tsx"]
---
# Component Patterns
## Structure Order
```typescript
'use client' // Only if using hooks
// 1. Imports (external → internal → relative)
// 2. Constants at module level
const CONFIG = { SPACING: 8 } as const
// 3. Props interface with TSDoc
interface ComponentProps {
/** Description */
requiredProp: string
optionalProp?: boolean
}
// 4. Component with TSDoc
export function Component({ requiredProp, optionalProp = false }: ComponentProps) {
// a. Refs
// b. External hooks (useParams, useRouter)
// c. Store hooks
// d. Custom hooks
// e. Local state
// f. useMemo computations
// g. useCallback handlers
// h. useEffect
// i. Return JSX
}
```
## Rules
1. Add `'use client'` when using React hooks
2. Always define props interface
3. TSDoc on component: description, @param, @returns
4. Extract constants with `as const`
5. Use Tailwind only, no inline styles
6. Semantic HTML (`aside`, `nav`, `article`)
7. Include ARIA attributes where appropriate
8. Optional chain callbacks: `onAction?.(id)`
## Factory Pattern with Caching
When generating components for a specific signature (e.g., icons):
```typescript
const cache = new Map<string, React.ComponentType<{ className?: string }>>()
function getColorIcon(color: string) {
if (cache.has(color)) return cache.get(color)!
const Icon = ({ className }: { className?: string }) => (
<div className={cn(className, 'rounded-[3px]')} style={{ backgroundColor: color, width: 10, height: 10 }} />
)
Icon.displayName = `ColorIcon(${color})`
cache.set(color, Icon)
return Icon
}
```

View File

@@ -0,0 +1,68 @@
---
description: Custom hook patterns and best practices
globs: ["apps/sim/**/use-*.ts", "apps/sim/**/hooks/**/*.ts"]
---
# Hook Patterns
## Structure
```typescript
import { createLogger } from '@/lib/logs/console/logger'
const logger = createLogger('useFeatureName')
interface UseFeatureProps {
id: string
onSuccess?: (result: Result) => void
}
/**
* Hook description.
* @param props - Configuration
* @returns State and operations
*/
export function useFeature({ id, onSuccess }: UseFeatureProps) {
// 1. Refs for stable dependencies
const idRef = useRef(id)
const onSuccessRef = useRef(onSuccess)
// 2. State
const [data, setData] = useState<Data | null>(null)
const [isLoading, setIsLoading] = useState(false)
const [error, setError] = useState<Error | null>(null)
// 3. Sync refs
useEffect(() => {
idRef.current = id
onSuccessRef.current = onSuccess
}, [id, onSuccess])
// 4. Operations with useCallback
const fetchData = useCallback(async () => {
setIsLoading(true)
try {
const result = await fetch(`/api/${idRef.current}`).then(r => r.json())
setData(result)
onSuccessRef.current?.(result)
} catch (err) {
setError(err as Error)
logger.error('Failed', { error: err })
} finally {
setIsLoading(false)
}
}, []) // Empty deps - using refs
// 5. Return grouped by state/operations
return { data, isLoading, error, fetchData }
}
```
## Rules
1. Single responsibility per hook
2. Props interface required
3. TSDoc required
4. Use logger, not console.log
5. Refs for stable callback dependencies
6. Wrap returned functions in useCallback
7. Always try/catch async operations
8. Track loading/error states

View File

@@ -0,0 +1,37 @@
---
description: Import patterns for the Sim application
globs: ["apps/sim/**/*.ts", "apps/sim/**/*.tsx"]
---
# Import Patterns
## EMCN Components
Import from `@/components/emcn`, never from subpaths like `@/components/emcn/components/modal/modal`.
**Exception**: CSS imports use actual file paths: `import '@/components/emcn/components/code/code.css'`
## Feature Components
Import from central folder indexes, not specific subfolders:
```typescript
// ✅ Correct
import { Dashboard, Sidebar } from '@/app/workspace/[workspaceId]/logs/components'
// ❌ Wrong
import { Dashboard } from '@/app/workspace/[workspaceId]/logs/components/dashboard'
```
## Internal vs External
- **Cross-feature**: Absolute paths through central index
- **Within feature**: Relative paths (`./components/...`, `../utils`)
## Import Order
1. React/core libraries
2. External libraries
3. UI components (`@/components/emcn`, `@/components/ui`)
4. Utilities (`@/lib/...`)
5. Feature imports from indexes
6. Relative imports
7. CSS imports
## Types
Use `type` keyword: `import type { WorkflowLog } from '...'`

View File

@@ -0,0 +1,57 @@
---
description: Zustand store patterns
globs: ["apps/sim/**/store.ts", "apps/sim/**/stores/**/*.ts"]
---
# Zustand Store Patterns
## Structure
```typescript
import { create } from 'zustand'
import { persist } from 'zustand/middleware'
interface FeatureState {
// State
items: Item[]
activeId: string | null
// Actions
setItems: (items: Item[]) => void
addItem: (item: Item) => void
clearState: () => void
}
const createInitialState = () => ({
items: [],
activeId: null,
})
export const useFeatureStore = create<FeatureState>()(
persist(
(set) => ({
...createInitialState(),
setItems: (items) => set({ items }),
addItem: (item) => set((state) => ({
items: [...state.items, item],
})),
clearState: () => set(createInitialState()),
}),
{
name: 'feature-state',
partialize: (state) => ({ items: state.items }),
}
)
)
```
## Rules
1. Interface includes state and actions
2. Extract config to module constants
3. TSDoc on store
4. Only persist what's needed
5. Immutable updates only - never mutate
6. Use `set((state) => ...)` when depending on previous state
7. Provide clear/reset actions

View File

@@ -0,0 +1,47 @@
---
description: Tailwind CSS and styling conventions
globs: ["apps/sim/**/*.tsx", "apps/sim/**/*.css"]
---
# Styling Rules
## Tailwind
1. **No inline styles** - Use Tailwind classes exclusively
2. **No duplicate dark classes** - Don't add `dark:` when value matches light mode
3. **Exact values** - Use design system values (`text-[14px]`, `h-[25px]`)
4. **Prefer px** - Use `px-[4px]` over `px-1`
5. **Transitions** - Add `transition-colors` for interactive states
## Conditional Classes
```typescript
import { cn } from '@/lib/utils'
<div className={cn(
'base-classes',
isActive && 'active-classes',
disabled ? 'opacity-60' : 'hover:bg-accent'
)} />
```
## CSS Variables for Dynamic Styles
```typescript
// In store setter
setSidebarWidth: (width) => {
set({ sidebarWidth: width })
document.documentElement.style.setProperty('--sidebar-width', `${width}px`)
}
// In component
<aside style={{ width: 'var(--sidebar-width)' }} />
```
## Anti-Patterns
```typescript
// ❌ Bad
<div style={{ width: 200 }}>
<div className='text-[var(--text-primary)] dark:text-[var(--text-primary)]'>
// ✅ Good
<div className='w-[200px]'>
<div className='text-[var(--text-primary)]'>
```

View File

@@ -0,0 +1,24 @@
---
description: TypeScript conventions and type safety
globs: ["apps/sim/**/*.ts", "apps/sim/**/*.tsx"]
---
# TypeScript Rules
1. **No `any`** - Use proper types or `unknown` with type guards
2. **Props interface** - Always define, even for simple components
3. **Callback types** - Full signature with params and return type
4. **Generics** - Use for reusable components/hooks
5. **Const assertions** - `as const` for constant objects/arrays
6. **Ref types** - Explicit: `useRef<HTMLDivElement>(null)`
## Anti-Patterns
```typescript
// ❌ Bad
const handleClick = (e: any) => {}
useEffect(() => { doSomething(prop) }, []) // Missing dep
// ✅ Good
const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {}
useEffect(() => { doSomething(prop) }, [prop])
```

View File

@@ -1,19 +0,0 @@
# Role
You are a professional software engineer. All code you write MUST follow best practices, ensuring accuracy, quality, readability, and cleanliness. You MUST make FOCUSED EDITS that are EFFICIENT and ELEGANT.
## Logs
ENSURE that you use the logger.info and logger.warn and logger.error instead of the console.log whenever you want to display logs.
## Comments
You must use TSDOC for comments. Do not use ==== for comments to separate sections. Do not leave any comments that are not TSDOC.
## Globals styles
You should not update the global styles unless it is absolutely necessary. Keep all styling local to components and files.
## Bun
Use bun and bunx not npm and npx

3
.gitignore vendored
View File

@@ -67,6 +67,9 @@ start-collector.sh
# VSCode
.vscode
# IntelliJ
.idea
## Helm Chart Tests
helm/sim/test
i18n.cache

47
CLAUDE.md Normal file
View File

@@ -0,0 +1,47 @@
# Expert Programming Standards
**You are tasked with implementing solutions that follow best practices. You MUST be accurate, elegant, and efficient as an expert programmer.**
---
# Role
You are a professional software engineer. All code you write MUST follow best practices, ensuring accuracy, quality, readability, and cleanliness. You MUST make FOCUSED EDITS that are EFFICIENT and ELEGANT.
## Logs
ENSURE that you use the logger.info and logger.warn and logger.error instead of the console.log whenever you want to display logs.
## Comments
You must use TSDOC for comments. Do not use ==== for comments to separate sections. Do not leave any comments that are not TSDOC.
## Global Styles
You should not update the global styles unless it is absolutely necessary. Keep all styling local to components and files.
## Bun
Use bun and bunx not npm and npx.
## Code Quality
- Write clean, maintainable code that follows the project's existing patterns
- Prefer composition over inheritance
- Keep functions small and focused on a single responsibility
- Use meaningful variable and function names
- Handle errors gracefully and provide useful error messages
- Write type-safe code with proper TypeScript types
## Testing
- Write tests for new functionality when appropriate
- Ensure existing tests pass before completing work
- Follow the project's testing conventions
## Performance
- Consider performance implications of your code
- Avoid unnecessary re-renders in React components
- Use appropriate data structures and algorithms
- Profile and optimize when necessary

View File

@@ -6,9 +6,10 @@ import Link from 'next/link'
import { notFound } from 'next/navigation'
import { PageNavigationArrows } from '@/components/docs-layout/page-navigation-arrows'
import { TOCFooter } from '@/components/docs-layout/toc-footer'
import { LLMCopyButton } from '@/components/page-actions'
import { StructuredData } from '@/components/structured-data'
import { CodeBlock } from '@/components/ui/code-block'
import { CopyPageButton } from '@/components/ui/copy-page-button'
import { Heading } from '@/components/ui/heading'
import { source } from '@/lib/source'
export default async function Page(props: { params: Promise<{ slug?: string[]; lang: string }> }) {
@@ -202,7 +203,7 @@ export default async function Page(props: { params: Promise<{ slug?: string[]; l
<div className='relative mt-6 sm:mt-0'>
<div className='absolute top-1 right-0 flex items-center gap-2'>
<div className='hidden sm:flex'>
<CopyPageButton markdownUrl={`${page.url}.mdx`} />
<LLMCopyButton markdownUrl={`${page.url}.mdx`} />
</div>
<PageNavigationArrows previous={neighbours?.previous} next={neighbours?.next} />
</div>
@@ -214,6 +215,12 @@ export default async function Page(props: { params: Promise<{ slug?: string[]; l
components={{
...defaultMdxComponents,
CodeBlock,
h1: (props) => <Heading as='h1' {...props} />,
h2: (props) => <Heading as='h2' {...props} />,
h3: (props) => <Heading as='h3' {...props} />,
h4: (props) => <Heading as='h4' {...props} />,
h5: (props) => <Heading as='h5' {...props} />,
h6: (props) => <Heading as='h6' {...props} />,
}}
/>
</DocsBody>

View File

@@ -2,6 +2,12 @@
@import "fumadocs-ui/css/neutral.css";
@import "fumadocs-ui/css/preset.css";
/* Prevent overscroll bounce effect on the page */
html,
body {
overscroll-behavior: none;
}
@theme {
--color-fd-primary: #802fff; /* Purple from control-bar component */
--font-geist-sans: var(--font-geist-sans);

View File

@@ -1,5 +1,6 @@
import { notFound } from 'next/navigation'
import { type NextRequest, NextResponse } from 'next/server'
import { i18n } from '@/lib/i18n'
import { getLLMText } from '@/lib/llms'
import { source } from '@/lib/source'
@@ -7,7 +8,16 @@ export const revalidate = false
export async function GET(_req: NextRequest, { params }: { params: Promise<{ slug?: string[] }> }) {
const { slug } = await params
const page = source.getPage(slug)
let lang: (typeof i18n.languages)[number] = i18n.defaultLanguage
let pageSlug = slug
if (slug && slug.length > 0 && i18n.languages.includes(slug[0] as typeof lang)) {
lang = slug[0] as typeof lang
pageSlug = slug.slice(1)
}
const page = source.getPage(pageSlug, lang)
if (!page) notFound()
return new NextResponse(await getLLMText(page), {

View File

@@ -4151,7 +4151,7 @@ export function DuckDuckGoIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='-108 -108 216 216'>
<circle r='108' fill='#d53' />
<circle r='96' fill='none' stroke='#ffffff' stroke-width='7' />
<circle r='96' fill='none' stroke='#ffffff' strokeWidth={7} />
<path
d='M-32-55C-62-48-51-6-51-6l19 93 7 3M-39-73h-8l11 4s-11 0-11 7c24-1 35 5 35 5'
fill='#ddd'

View File

@@ -1,55 +1,50 @@
'use client'
import { useState } from 'react'
import { useCopyButton } from 'fumadocs-ui/utils/use-copy-button'
import { Check, Copy } from 'lucide-react'
const cache = new Map<string, string>()
interface CopyPageButtonProps {
export function LLMCopyButton({
markdownUrl,
}: {
/**
* A URL to fetch the raw Markdown/MDX content of page
*/
markdownUrl: string
}
export function CopyPageButton({ markdownUrl }: CopyPageButtonProps) {
const [copied, setCopied] = useState(false)
}) {
const [isLoading, setLoading] = useState(false)
const handleCopy = async () => {
const [checked, onClick] = useCopyButton(async () => {
const cached = cache.get(markdownUrl)
if (cached) {
await navigator.clipboard.writeText(cached)
setCopied(true)
setTimeout(() => setCopied(false), 2000)
return
}
if (cached) return navigator.clipboard.writeText(cached)
setLoading(true)
try {
await navigator.clipboard.write([
new ClipboardItem({
'text/plain': fetch(markdownUrl).then(async (res) => {
const content = await res.text()
cache.set(markdownUrl, content)
return content
}),
}),
])
setCopied(true)
setTimeout(() => setCopied(false), 2000)
} catch (err) {
console.error('Failed to copy:', err)
} finally {
setLoading(false)
}
}
})
return (
<button
disabled={isLoading}
onClick={handleCopy}
onClick={onClick}
className='flex cursor-pointer items-center gap-1.5 rounded-lg border border-border/40 bg-background px-2.5 py-2 text-muted-foreground/60 text-sm leading-none transition-all hover:border-border hover:bg-accent/50 hover:text-muted-foreground'
aria-label={copied ? 'Copied to clipboard' : 'Copy page content'}
aria-label={checked ? 'Copied to clipboard' : 'Copy page content'}
>
{copied ? (
{checked ? (
<>
<Check className='h-3.5 w-3.5' />
<span>Copied</span>

View File

@@ -0,0 +1,58 @@
'use client'
import { type ComponentPropsWithoutRef, useState } from 'react'
import { Check, Link } from 'lucide-react'
import { cn } from '@/lib/utils'
type HeadingTag = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'
interface HeadingProps extends ComponentPropsWithoutRef<'h1'> {
as?: HeadingTag
}
export function Heading({ as, className, ...props }: HeadingProps) {
const [copied, setCopied] = useState(false)
const As = as ?? 'h1'
if (!props.id) {
return <As className={className} {...props} />
}
const handleClick = async (e: React.MouseEvent) => {
e.preventDefault()
const url = `${window.location.origin}${window.location.pathname}#${props.id}`
try {
await navigator.clipboard.writeText(url)
setCopied(true)
// Update URL hash without scrolling
window.history.pushState(null, '', `#${props.id}`)
setTimeout(() => setCopied(false), 2000)
} catch {
// Fallback: just navigate to the anchor
window.location.hash = props.id as string
}
}
return (
<As className={cn('group flex scroll-m-28 flex-row items-center gap-2', className)} {...props}>
<a data-card='' href={`#${props.id}`} className='peer' onClick={handleClick}>
{props.children}
</a>
{copied ? (
<Check
aria-hidden
className='size-3.5 shrink-0 text-green-500 opacity-100 transition-opacity'
/>
) : (
<Link
aria-hidden
className='size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity group-hover:opacity-100 peer-hover:opacity-100'
/>
)}
</As>
)
}

View File

@@ -27,14 +27,16 @@ Alle API-Antworten enthalten Informationen über Ihre Workflow-Ausführungslimit
"limits": {
"workflowExecutionRateLimit": {
"sync": {
"limit": 60, // Max sync workflow executions per minute
"remaining": 58, // Remaining sync workflow executions
"resetAt": "..." // When the window resets
"requestsPerMinute": 60, // Sustained rate limit per minute
"maxBurst": 120, // Maximum burst capacity
"remaining": 118, // Current tokens available (up to maxBurst)
"resetAt": "..." // When tokens next refill
},
"async": {
"limit": 60, // Max async workflow executions per minute
"remaining": 59, // Remaining async workflow executions
"resetAt": "..." // When the window resets
"requestsPerMinute": 200, // Sustained rate limit per minute
"maxBurst": 400, // Maximum burst capacity
"remaining": 398, // Current tokens available
"resetAt": "..." // When tokens next refill
}
},
"usage": {
@@ -46,7 +48,7 @@ Alle API-Antworten enthalten Informationen über Ihre Workflow-Ausführungslimit
}
```
**Hinweis:** Die Ratenbegrenzungen in der Antwort beziehen sich auf Workflow-Ausführungen. Die Ratenbegrenzungen für den Aufruf dieses API-Endpunkts befinden sich in den Antwort-Headern (`X-RateLimit-*`).
**Hinweis:** Ratenbegrenzungen verwenden einen Token-Bucket-Algorithmus. `remaining` kann `requestsPerMinute` bis zu `maxBurst` überschreiten, wenn du dein volles Kontingent in letzter Zeit nicht genutzt hast, was Burst-Traffic ermöglicht. Die Ratenbegrenzungen im Antworttext gelten für Workflow-Ausführungen. Die Ratenbegrenzungen für den Aufruf dieses API-Endpunkts befinden sich in den Antwort-Headern (`X-RateLimit-*`).
### Logs abfragen
@@ -110,13 +112,15 @@ Fragen Sie Workflow-Ausführungsprotokolle mit umfangreichen Filteroptionen ab.
"limits": {
"workflowExecutionRateLimit": {
"sync": {
"limit": 60,
"remaining": 58,
"requestsPerMinute": 60,
"maxBurst": 120,
"remaining": 118,
"resetAt": "2025-01-01T12:35:56.789Z"
},
"async": {
"limit": 60,
"remaining": 59,
"requestsPerMinute": 200,
"maxBurst": 400,
"remaining": 398,
"resetAt": "2025-01-01T12:35:56.789Z"
}
},
@@ -190,13 +194,15 @@ Rufen Sie detaillierte Informationen zu einem bestimmten Logeintrag ab.
"limits": {
"workflowExecutionRateLimit": {
"sync": {
"limit": 60,
"remaining": 58,
"requestsPerMinute": 60,
"maxBurst": 120,
"remaining": 118,
"resetAt": "2025-01-01T12:35:56.789Z"
},
"async": {
"limit": 60,
"remaining": 59,
"requestsPerMinute": 200,
"maxBurst": 400,
"remaining": 398,
"resetAt": "2025-01-01T12:35:56.789Z"
}
},
@@ -482,19 +488,27 @@ Fehlgeschlagene Webhook-Zustellungen werden mit exponentiellem Backoff und Jitte
## Rate-Limiting
Die API implementiert Rate-Limiting, um eine faire Nutzung zu gewährleisten:
Die API verwendet einen **Token-Bucket-Algorithmus** für die Ratenbegrenzung, der eine faire Nutzung ermöglicht und gleichzeitig Burst-Traffic zulässt:
- **Kostenloser Plan**: 10 Anfragen pro Minute
- **Pro-Plan**: 30 Anfragen pro Minute
- **Team-Plan**: 60 Anfragen pro Minute
- **Enterprise-Plan**: Individuelle Limits
| Plan | Anfragen/Minute | Burst-Kapazität |
|------|-----------------|----------------|
| Free | 10 | 20 |
| Pro | 30 | 60 |
| Team | 60 | 120 |
| Enterprise | 120 | 240 |
Rate-Limit-Informationen sind in den Antwort-Headern enthalten:
- `X-RateLimit-Limit`: Maximale Anfragen pro Zeitfenster
- `X-RateLimit-Remaining`: Verbleibende Anfragen im aktuellen Zeitfenster
- `X-RateLimit-Reset`: ISO-Zeitstempel, wann das Zeitfenster zurückgesetzt wird
**Wie es funktioniert:**
- Tokens werden mit der Rate `requestsPerMinute` aufgefüllt
- Du kannst im Leerlauf bis zu `maxBurst` Tokens ansammeln
- Jede Anfrage verbraucht 1 Token
- Die Burst-Kapazität ermöglicht die Bewältigung von Verkehrsspitzen
## Beispiel: Abfragen neuer Logs
Informationen zur Ratenbegrenzung sind in den Antwort-Headern enthalten:
- `X-RateLimit-Limit`: Anfragen pro Minute (Auffüllrate)
- `X-RateLimit-Remaining`: Aktuell verfügbare Tokens
- `X-RateLimit-Reset`: ISO-Zeitstempel, wann Tokens als nächstes aufgefüllt werden
## Beispiel: Abfragen nach neuen Logs
```javascript
let cursor = null;
@@ -541,7 +555,7 @@ async function pollLogs() {
setInterval(pollLogs, 30000);
```
## Beispiel: Verarbeiten von Webhooks
## Beispiel: Verarbeitung von Webhooks
```javascript
import express from 'express';

View File

@@ -147,8 +147,20 @@ curl -X GET -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" htt
{
"success": true,
"rateLimit": {
"sync": { "isLimited": false, "limit": 10, "remaining": 10, "resetAt": "2025-09-08T22:51:55.999Z" },
"async": { "isLimited": false, "limit": 50, "remaining": 50, "resetAt": "2025-09-08T22:51:56.155Z" },
"sync": {
"isLimited": false,
"requestsPerMinute": 25,
"maxBurst": 50,
"remaining": 50,
"resetAt": "2025-09-08T22:51:55.999Z"
},
"async": {
"isLimited": false,
"requestsPerMinute": 200,
"maxBurst": 400,
"remaining": 400,
"resetAt": "2025-09-08T22:51:56.155Z"
},
"authType": "api"
},
"usage": {
@@ -159,49 +171,54 @@ curl -X GET -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" htt
}
```
**Rate-Limit-Felder:**
- `requestsPerMinute`: Dauerhafte Rate-Begrenzung (Tokens werden mit dieser Rate aufgefüllt)
- `maxBurst`: Maximale Tokens, die Sie ansammeln können (Burst-Kapazität)
- `remaining`: Aktuell verfügbare Tokens (können bis zu `maxBurst` sein)
**Antwortfelder:**
- `currentPeriodCost` zeigt die Nutzung im aktuellen Abrechnungszeitraum
- `limit` wird aus individuellen Limits (Free/Pro) oder gebündelten Organisationslimits (Team/Enterprise) abgeleitet
- `currentPeriodCost` spiegelt die Nutzung in der aktuellen Abrechnungsperiode wider
- `limit` wird von individuellen Limits (Free/Pro) oder gepoolten Organisationslimits (Team/Enterprise) abgeleitet
- `plan` ist der aktive Plan mit der höchsten Priorität, der mit Ihrem Benutzer verknüpft ist
## Plan-Limits
Verschiedene Abonnementpläne haben unterschiedliche Nutzungslimits:
| Plan | Monatliches Nutzungslimit | Ratengrenze (pro Minute) |
| Plan | Monatliches Nutzungslimit | Rate-Limits (pro Minute) |
|------|-------------------|-------------------------|
| **Free** | $10 | 5 sync, 10 async |
| **Pro** | $100 | 10 sync, 50 async |
| **Team** | $500 (gebündelt) | 50 sync, 100 async |
| **Team** | $500 (gepoolt) | 50 sync, 100 async |
| **Enterprise** | Individuell | Individuell |
## Abrechnungsmodell
Sim verwendet ein **Basisabonnement + Überschreitung** Abrechnungsmodell:
Sim verwendet ein **Basisabonnement + Mehrverbrauch**-Abrechnungsmodell:
### Wie es funktioniert
**Pro Plan ($20/Monat):**
**Pro-Plan ($20/Monat):**
- Monatliches Abonnement beinhaltet $20 Nutzung
- Nutzung unter $20 → Keine zusätzlichen Kosten
- Nutzung über $20 → Zahlung der Überschreitung am Monatsende
- Beispiel: $35 Nutzung = $20 (Abonnement) + $15 (Überschreitung)
- Nutzung über $20 → Zahlen Sie den Mehrverbrauch am Monatsende
- Beispiel: $35 Nutzung = $20 (Abonnement) + $15 (Mehrverbrauch)
**Team Plan ($40/Benutzer/Monat):**
- Gebündelte Nutzung für alle Teammitglieder
- Überschreitung wird aus der Gesamtnutzung des Teams berechnet
**Team-Plan ($40/Benutzer/Monat):**
- Gepoolte Nutzung für alle Teammitglieder
- Mehrverbrauch wird aus der Gesamtnutzung des Teams berechnet
- Organisationsinhaber erhält eine Rechnung
**Enterprise Pläne:**
- Fester monatlicher Preis, keine Überschreitungen
**Enterprise-Pläne:**
- Fester monatlicher Preis, kein Mehrverbrauch
- Individuelle Nutzungslimits gemäß Vereinbarung
### Schwellenwertabrechnung
### Schwellenwert-Abrechnung
Wenn die nicht abgerechnete Überschreitung $50 erreicht, berechnet Sim automatisch den gesamten nicht abgerechneten Betrag.
Wenn der nicht abgerechnete Mehrverbrauch $50 erreicht, berechnet Sim automatisch den gesamten nicht abgerechneten Betrag.
**Beispiel:**
- Tag 10: $70 Überschreitung → Sofortige Abrechnung von $70
- Tag 10: $70 Mehrverbrauch → Sofortige Abrechnung von $70
- Tag 15: Zusätzliche $35 Nutzung ($105 insgesamt) → Bereits abgerechnet, keine Aktion
- Tag 20: Weitere $50 Nutzung ($155 insgesamt, $85 nicht abgerechnet) → Sofortige Abrechnung von $85

View File

@@ -46,11 +46,11 @@ Durchsuchen Sie das Web mit Exa AI. Liefert relevante Suchergebnisse mit Titeln,
| `type` | string | Nein | Suchtyp: neural, keyword, auto oder fast \(Standard: auto\) |
| `includeDomains` | string | Nein | Kommagetrennte Liste von Domains, die in den Ergebnissen enthalten sein sollen |
| `excludeDomains` | string | Nein | Kommagetrennte Liste von Domains, die aus den Ergebnissen ausgeschlossen werden sollen |
| `category` | string | Nein | Nach Kategorie filtern: company, research_paper, news_article, pdf, github, tweet, movie, song, personal_site |
| `category` | string | Nein | Nach Kategorie filtern: company, research paper, news, pdf, github, tweet, personal site, linkedin profile, financial report |
| `text` | boolean | Nein | Vollständigen Textinhalt in Ergebnissen einschließen \(Standard: false\) |
| `highlights` | boolean | Nein | Hervorgehobene Ausschnitte in Ergebnissen einschließen \(Standard: false\) |
| `summary` | boolean | Nein | KI-generierte Zusammenfassungen in Ergebnissen einschließen \(Standard: false\) |
| `livecrawl` | string | Nein | Live-Crawling-Modus: always, fallback oder never \(Standard: never\) |
| `livecrawl` | string | Nein | Live-Crawling-Modus: never \(Standard\), fallback, always oder preferred \(immer livecrawl versuchen, bei Fehlschlag auf Cache zurückgreifen\) |
| `apiKey` | string | Ja | Exa AI API-Schlüssel |
#### Ausgabe
@@ -69,11 +69,11 @@ Ruft den Inhalt von Webseiten mit Exa AI ab. Gibt den Titel, Textinhalt und opti
| --------- | ---- | -------- | ----------- |
| `urls` | string | Ja | Kommagetrennte Liste von URLs, von denen Inhalte abgerufen werden sollen |
| `text` | boolean | Nein | Wenn true, gibt den vollständigen Seitentext mit Standardeinstellungen zurück. Wenn false, deaktiviert die Textrückgabe. |
| `summaryQuery` | string | Nein | Abfrage zur Steuerung der Zusammenfassungserstellung |
| `subpages` | number | Nein | Anzahl der Unterseiten, die von den angegebenen URLs gecrawlt werden sollen |
| `summaryQuery` | string | Nein | Anfrage zur Steuerung der Zusammenfassungserstellung |
| `subpages` | number | Nein | Anzahl der Unterseiten, die von den bereitgestellten URLs gecrawlt werden sollen |
| `subpageTarget` | string | Nein | Kommagetrennte Schlüsselwörter zur Zielausrichtung auf bestimmte Unterseiten \(z.B. "docs,tutorial,about"\) |
| `highlights` | boolean | Nein | Hervorgehobene Ausschnitte in Ergebnissen einschließen \(Standard: false\) |
| `livecrawl` | string | Nein | Live-Crawling-Modus: always, fallback oder never \(Standard: never\) |
| `livecrawl` | string | Nein | Live-Crawling-Modus: never \(Standard\), fallback, always oder preferred \(immer livecrawl versuchen, bei Fehlschlag auf Cache zurückgreifen\) |
| `apiKey` | string | Ja | Exa AI API-Schlüssel |
#### Ausgabe
@@ -95,11 +95,10 @@ Finde Webseiten, die einer bestimmten URL ähnlich sind, mit Exa AI. Gibt eine L
| `text` | boolean | Nein | Ob der vollständige Text der ähnlichen Seiten eingeschlossen werden soll |
| `includeDomains` | string | Nein | Kommagetrennte Liste von Domains, die in den Ergebnissen enthalten sein sollen |
| `excludeDomains` | string | Nein | Kommagetrennte Liste von Domains, die aus den Ergebnissen ausgeschlossen werden sollen |
| `excludeSourceDomain` | boolean | Nein | Quell-Domain aus Ergebnissen ausschließen \(Standard: false\) |
| `category` | string | Nein | Nach Kategorie filtern: company, research_paper, news_article, pdf, github, tweet, movie, song, personal_site |
| `excludeSourceDomain` | boolean | Nein | Die Quell-Domain aus den Ergebnissen ausschließen \(Standard: false\) |
| `highlights` | boolean | Nein | Hervorgehobene Ausschnitte in Ergebnissen einschließen \(Standard: false\) |
| `summary` | boolean | Nein | KI-generierte Zusammenfassungen in Ergebnissen einschließen \(Standard: false\) |
| `livecrawl` | string | Nein | Live-Crawling-Modus: always, fallback oder never \(Standard: never\) |
| `livecrawl` | string | Nein | Live-Crawling-Modus: never \(Standard\), fallback, always oder preferred \(versucht immer livecrawl, fällt auf Cache zurück, wenn es fehlschlägt\) |
| `apiKey` | string | Ja | Exa AI API-Schlüssel |
#### Ausgabe

View File

@@ -49,8 +49,8 @@ Rufe eine Liste von Prognosemärkten von Kalshi mit optionaler Filterung ab
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Marktdaten und Metadaten |
| `markets` | array | Array von Markt-Objekten |
| `paging` | object | Paginierungscursor zum Abrufen weiterer Ergebnisse |
### `kalshi_get_market`
@@ -66,8 +66,7 @@ Rufe Details eines bestimmten Prognosemarkts nach Ticker ab
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Marktdaten und Metadaten |
| `market` | object | Markt-Objekt mit Details |
### `kalshi_get_events`
@@ -85,10 +84,10 @@ Rufe eine Liste von Events von Kalshi mit optionaler Filterung ab
#### Output
| Parameter | Type | Beschreibung |
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Ereignisdaten und Metadaten |
| `events` | array | Array von Ereignis-Objekten |
| `paging` | object | Paginierungscursor zum Abrufen weiterer Ergebnisse |
### `kalshi_get_event`
@@ -103,10 +102,9 @@ Details eines bestimmten Ereignisses anhand des Tickers abrufen
#### Output
| Parameter | Type | Beschreibung |
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Ereignisdaten und Metadaten |
| `event` | object | Ereignis-Objekt mit Details |
### `kalshi_get_balance`
@@ -121,10 +119,12 @@ Kontostand und Portfoliowert von Kalshi abrufen
#### Output
| Parameter | Type | Beschreibung |
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Kontostandsdaten und Metadaten |
| `balance` | number | Kontostand in Cent |
| `portfolioValue` | number | Portfoliowert in Cent |
| `balanceDollars` | number | Kontostand in Dollar |
| `portfolioValueDollars` | number | Portfoliowert in Dollar |
### `kalshi_get_positions`
@@ -146,8 +146,8 @@ Offene Positionen von Kalshi abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Positionsdaten und Metadaten |
| `positions` | array | Array von Positions-Objekten |
| `paging` | object | Paginierungscursor zum Abrufen weiterer Ergebnisse |
### `kalshi_get_orders`
@@ -169,8 +169,8 @@ Rufen Sie Ihre Bestellungen von Kalshi mit optionaler Filterung ab
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Bestelldaten und Metadaten |
| `orders` | array | Array von Auftrags-Objekten |
| `paging` | object | Paginierungscursor zum Abrufen weiterer Ergebnisse |
### `kalshi_get_order`
@@ -188,8 +188,7 @@ Rufen Sie Details zu einem bestimmten Auftrag anhand der ID von Kalshi ab
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Auftragsdaten |
| `order` | object | Auftrags-Objekt mit Details |
### `kalshi_get_orderbook`
@@ -205,8 +204,7 @@ Rufen Sie das Orderbuch (Ja- und Nein-Gebote) für einen bestimmten Markt ab
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Orderbuch-Daten und Metadaten |
| `orderbook` | object | Orderbuch mit Ja/Nein-Geboten und -Anfragen |
### `kalshi_get_trades`
@@ -223,8 +221,8 @@ Rufen Sie aktuelle Trades über alle Märkte hinweg ab
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Handelsdaten und Metadaten |
| `trades` | array | Array von Handelsobjekten |
| `paging` | object | Paginierungscursor zum Abrufen weiterer Ergebnisse |
### `kalshi_get_candlesticks`
@@ -244,8 +242,7 @@ OHLC-Kerzendaten für einen bestimmten Markt abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Kerzendaten und Metadaten |
| `candlesticks` | array | Array von OHLC-Kerzendaten |
### `kalshi_get_fills`
@@ -268,8 +265,8 @@ Ihr Portfolio abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Ausführungsdaten und Metadaten |
| `fills` | array | Array von Ausführungs-/Handelsobjekten |
| `paging` | object | Paginierungscursor zum Abrufen weiterer Ergebnisse |
### `kalshi_get_series_by_ticker`
@@ -285,8 +282,7 @@ Details einer bestimmten Marktserie nach Ticker abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Seriendaten und Metadaten |
| `series` | object | Serienobjekt mit Details |
### `kalshi_get_exchange_status`
@@ -301,8 +297,7 @@ Den aktuellen Status der Kalshi-Börse abrufen (Handel und Börsenaktivität)
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Börsenstatus-Daten und Metadaten |
| `status` | object | Börsenstatus mit trading_active und exchange_active Flags |
### `kalshi_create_order`
@@ -336,8 +331,7 @@ Eine neue Order auf einem Kalshi-Prognosemarkt erstellen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Erstellte Auftragsdaten |
| `order` | object | Das erstellte Auftragsobjekt |
### `kalshi_cancel_order`
@@ -355,8 +349,8 @@ Einen bestehenden Auftrag auf Kalshi stornieren
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Stornierte Auftragsdaten |
| `order` | object | Das stornierte Auftragsobjekt |
| `reducedBy` | number | Anzahl der stornierten Kontrakte |
### `kalshi_amend_order`
@@ -384,8 +378,7 @@ Preis oder Menge eines bestehenden Auftrags auf Kalshi ändern
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Geänderte Auftragsdaten |
| `order` | object | Das geänderte Auftragsobjekt |
## Hinweise

View File

@@ -91,11 +91,11 @@ Führen Sie umfassende tiefgehende Recherchen im Web mit Parallel AI durch. Synt
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `status` | string | Aufgabenstatus (laufend, abgeschlossen, fehlgeschlagen) |
| `status` | string | Aufgabenstatus (abgeschlossen, fehlgeschlagen) |
| `run_id` | string | Eindeutige ID für diese Rechercheaufgabe |
| `message` | string | Statusmeldung (für laufende Aufgaben) |
| `message` | string | Statusmeldung |
| `content` | object | Rechercheergebnisse (strukturiert basierend auf output_schema) |
| `basis` | array | Zitate und Quellen mit Auszügen und Vertrauensstufen |
| `basis` | array | Zitate und Quellen mit Begründung und Vertrauensstufen |
## Hinweise

View File

@@ -51,8 +51,9 @@ Generieren Sie Vervollständigungen mit Perplexity AI-Chatmodellen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Ergebnisse der Chat-Vervollständigung |
| `content` | string | Generierter Textinhalt |
| `model` | string | Für die Generierung verwendetes Modell |
| `usage` | object | Informationen zur Token-Nutzung |
### `perplexity_search`
@@ -76,8 +77,7 @@ Erhalte bewertete Suchergebnisse von Perplexity
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Suchergebnisse |
| `results` | array | Array von Suchergebnissen |
## Hinweise

View File

@@ -44,14 +44,14 @@ Rufen Sie eine Liste von Prognosemärkten von Polymarket mit optionaler Filterun
| `order` | string | Nein | Sortierfeld \(z.B. volumeNum, liquidityNum, startDate, endDate, createdAt\) |
| `ascending` | string | Nein | Sortierrichtung \(true für aufsteigend, false für absteigend\) |
| `tagId` | string | Nein | Nach Tag-ID filtern |
| `limit` | string | Nein | Anzahl der Ergebnisse pro Seite \(empfohlen: 25-50\) |
| `limit` | string | Nein | Anzahl der Ergebnisse pro Seite \(max 50\) |
| `offset` | string | Nein | Paginierungsoffset \(überspringe diese Anzahl an Ergebnissen\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Marktdaten und Metadaten |
### `polymarket_get_market`
@@ -80,11 +80,11 @@ Ruft eine Liste von Events von Polymarket mit optionaler Filterung ab
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `closed` | string | Nein | Nach geschlossenem Status filtern \(true/false\). Verwenden Sie false für nur aktive Events. |
| `closed` | string | Nein | Nach geschlossenem Status filtern \(true/false\). Verwenden Sie false für nur aktive Ereignisse. |
| `order` | string | Nein | Sortierfeld \(z.B. volume, liquidity, startDate, endDate, createdAt\) |
| `ascending` | string | Nein | Sortierrichtung \(true für aufsteigend, false für absteigend\) |
| `tagId` | string | Nein | Nach Tag-ID filtern |
| `limit` | string | Nein | Anzahl der Ergebnisse pro Seite \(empfohlen: 25-50\) |
| `limit` | string | Nein | Anzahl der Ergebnisse pro Seite \(max 50\) |
| `offset` | string | Nein | Paginierungsoffset \(überspringe diese Anzahl an Ergebnissen\) |
#### Ausgabe
@@ -107,10 +107,10 @@ Ruft Details eines bestimmten Events nach ID oder Slug ab
#### Output
| Parameter | Type | Beschreibung |
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Ereignisdaten und Metadaten |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Event-Daten und Metadaten |
### `polymarket_get_tags`
@@ -118,16 +118,16 @@ Verfügbare Tags zum Filtern von Märkten von Polymarket abrufen
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `limit` | string | Nein | Anzahl der Ergebnisse pro Seite \(empfohlen: 25-50\) |
| `limit` | string | Nein | Anzahl der Ergebnisse pro Seite \(max 50\) |
| `offset` | string | Nein | Paginierungsoffset \(überspringe diese Anzahl an Ergebnissen\) |
#### Output
| Parameter | Type | Beschreibung |
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Tag-Daten und Metadaten |
### `polymarket_search`
@@ -136,17 +136,17 @@ Nach Märkten, Ereignissen und Profilen auf Polymarket suchen
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `query` | string | Ja | Suchbegriff |
| `limit` | string | Nein | Anzahl der Ergebnisse pro Seite \(empfohlen: 25-50\) |
| `offset` | string | Nein | Paginierungsoffset \(überspringe diese Anzahl an Ergebnissen\) |
| `limit` | string | Nein | Anzahl der Ergebnisse pro Seite \(max 50\) |
| `offset` | string | Nein | Paginierungsoffset |
#### Output
| Parameter | Type | Beschreibung |
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Suchergebnisse und Metadaten |
### `polymarket_get_series`
@@ -155,17 +155,16 @@ Serien (verwandte Marktgruppen) von Polymarket abrufen
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `limit` | string | Nein | Anzahl der Ergebnisse pro Seite \(empfohlen: 25-50\) |
| `limit` | string | Nein | Anzahl der Ergebnisse pro Seite \(max 50\) |
| `offset` | string | Nein | Paginierungsoffset \(überspringe diese Anzahl an Ergebnissen\) |
#### Output
| Parameter | Type | Beschreibung |
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Seriendaten und Metadaten |
| `series` | array | Array von Serien-Objekten |
### `polymarket_get_series_by_id`
@@ -179,10 +178,9 @@ Eine bestimmte Serie (zugehörige Marktgruppe) anhand der ID von Polymarket abru
#### Output
| Parameter | Type | Beschreibung |
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Seriendaten und Metadaten |
| `series` | object | Serien-Objekt mit Details |
### `polymarket_get_orderbook`
@@ -196,10 +194,9 @@ Die Orderbuch-Zusammenfassung für einen bestimmten Token abrufen
#### Output
| Parameter | Type | Beschreibung |
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Orderbuch-Daten und Metadaten |
| `orderbook` | object | Orderbuch mit Geld- und Briefkurs-Arrays |
### `polymarket_get_price`
@@ -216,8 +213,7 @@ Den Marktpreis für einen bestimmten Token und eine bestimmte Seite abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Preisdaten und Metadaten |
| `price` | string | Marktpreis |
### `polymarket_get_midpoint`
@@ -233,8 +229,7 @@ Abrufen des Mittelpreises für einen bestimmten Token
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Mittelpreisdaten und Metadaten |
| `midpoint` | string | Mittelkurs |
### `polymarket_get_price_history`
@@ -254,8 +249,7 @@ Abrufen historischer Preisdaten für einen bestimmten Markttoken
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Preisverlaufsdaten und Metadaten |
| `history` | array | Array von Preisverlaufseinträgen mit Zeitstempel \(t\) und Preis \(p\) |
### `polymarket_get_last_trade_price`
@@ -271,8 +265,7 @@ Den letzten Handelspreis für einen bestimmten Token abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Letzter Handelspreis und Metadaten |
| `price` | string | Letzter Handelspreis |
### `polymarket_get_spread`
@@ -288,8 +281,7 @@ Die Geld-Brief-Spanne für einen bestimmten Token abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Spread-Daten und Metadaten |
| `spread` | object | Geld-Brief-Spanne mit Geld- und Briefkursen |
### `polymarket_get_tick_size`
@@ -305,8 +297,7 @@ Die minimale Tickgröße für einen bestimmten Token abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Tickgröße und Metadaten |
| `tickSize` | string | Minimale Tick-Größe |
### `polymarket_get_positions`
@@ -323,8 +314,7 @@ Benutzerpositionen von Polymarket abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Positionsdaten und Metadaten |
| `positions` | array | Array von Positions-Objekten |
### `polymarket_get_trades`
@@ -336,15 +326,14 @@ Handelshistorie von Polymarket abrufen
| --------- | ---- | -------- | ----------- |
| `user` | string | Nein | Wallet-Adresse des Benutzers zum Filtern von Trades |
| `market` | string | Nein | Markt-ID zum Filtern von Trades |
| `limit` | string | Nein | Anzahl der Ergebnisse pro Seite \(empfohlen: 25-50\) |
| `offset` | string | Nein | Paginierungsoffset \(überspringe so viele Ergebnisse\) |
| `limit` | string | Nein | Anzahl der Ergebnisse pro Seite \(max 50\) |
| `offset` | string | Nein | Paginierungsoffset \(überspringe diese Anzahl an Ergebnissen\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Handelsdaten und Metadaten |
| `trades` | array | Array von Handelsobjekten |
## Hinweise

View File

@@ -342,19 +342,30 @@ Eine E-Mail-Vorlage von SendGrid löschen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `messageId` | string | E-Mail-Nachrichten-ID (send_mail) |
| `message` | string | Status- oder Erfolgsmeldung |
| `messageId` | string | E-Mail-Nachrichten-ID \(send_mail\) |
| `to` | string | E-Mail-Adresse des Empfängers \(send_mail\) |
| `subject` | string | E-Mail-Betreff \(send_mail, create_template_version\) |
| `id` | string | Ressourcen-ID |
| `jobId` | string | Job-ID für asynchrone Operationen |
| `email` | string | E-Mail-Adresse |
| `firstName` | string | Vorname |
| `lastName` | string | Nachname |
| `email` | string | E-Mail-Adresse des Kontakts |
| `firstName` | string | Vorname des Kontakts |
| `lastName` | string | Nachname des Kontakts |
| `createdAt` | string | Erstellungszeitstempel |
| `updatedAt` | string | Zeitstempel der letzten Aktualisierung |
| `listIds` | json | Array von Listen-IDs, zu denen der Kontakt gehört |
| `customFields` | json | Benutzerdefinierte Feldwerte |
| `contacts` | json | Array von Kontakten |
| `contactCount` | number | Anzahl der Kontakte |
| `lists` | json | Array von Listen |
| `templates` | json | Array von Vorlagen |
| `message` | string | Status- oder Erfolgsmeldung |
| `name` | string | Ressourcenname |
| `templates` | json | Array von Vorlagen |
| `generation` | string | Vorlagengeneration |
| `versions` | json | Array von Vorlagenversionen |
| `templateId` | string | Vorlagen-ID |
| `active` | boolean | Ob die Vorlagenversion aktiv ist |
| `htmlContent` | string | HTML-Inhalt |
| `plainContent` | string | Nur-Text-Inhalt |
### `sendgrid_create_template_version`

View File

@@ -37,7 +37,7 @@ Verarbeitet einen bereitgestellten Gedanken/eine Anweisung und macht ihn für na
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `thought` | string | Ja | Der vom Benutzer im Thinking Step-Block bereitgestellte Denkprozess oder die Anweisung. |
| `thought` | string | Ja | Ihre interne Argumentation, Analyse oder Denkprozess. Nutzen Sie dies, um das Problem Schritt für Schritt zu durchdenken, bevor Sie antworten. |
#### Output

View File

@@ -31,39 +31,32 @@ Integrieren Sie Übersetzen in den Workflow. Kann Text in jede Sprache übersetz
## Tools
### `openai_chat`
### `llm_chat`
Senden Sie eine Chat-Completion-Anfrage an jeden unterstützten LLM-Anbieter
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `model` | string | Ja | Das zu verwendende Modell (z.B. gpt-4o, claude-sonnet-4-5, gemini-2.0-flash) |
| `systemPrompt` | string | Nein | System-Prompt zur Festlegung des Assistentenverhaltens |
| `context` | string | Ja | Die Benutzernachricht oder der Kontext, der an das Modell gesendet wird |
| `apiKey` | string | Nein | API-Schlüssel für den Anbieter (verwendet den Plattformschlüssel, wenn für gehostete Modelle nicht angegeben) |
| `temperature` | number | Nein | Temperatur für die Antwortgenerierung (0-2) |
| `maxTokens` | number | Nein | Maximale Tokens in der Antwort |
| `azureEndpoint` | string | Nein | Azure OpenAI-Endpunkt-URL |
| `azureApiVersion` | string | Nein | Azure OpenAI API-Version |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Übersetzter Text |
| `model` | string | Verwendetes Modell |
| `tokens` | json | Token-Nutzung |
| `content` | string | Der generierte Antwortinhalt |
| `model` | string | Das für die Generierung verwendete Modell |
| `tokens` | object | Informationen zur Token-Nutzung |
### `anthropic_chat`
### `google_chat`
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Übersetzter Text |
| `model` | string | Verwendetes Modell |
| `tokens` | json | Token-Nutzung |
## Notizen
## Hinweise
- Kategorie: `tools`
- Typ: `translate`

View File

@@ -250,9 +250,9 @@ Eine Mediendatei (Bild, Video, Dokument) zu WordPress.com hochladen
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Website-ID oder Domain \(z.B. 12345678 oder meinwebsite.wordpress.com\) |
| `file` | string | Ja | Base64-kodierte Dateidaten oder URL, von der die Datei abgerufen werden soll |
| `filename` | string | Ja | Dateiname mit Erweiterung \(z.B. bild.jpg\) |
| `siteId` | string | Ja | WordPress.com-Site-ID oder Domain \(z.B. 12345678 oder mysite.wordpress.com\) |
| `file` | file | Nein | Hochzuladende Datei \(UserFile-Objekt\) |
| `filename` | string | Nein | Optionale Überschreibung des Dateinamens \(z.B. bild.jpg\) |
| `title` | string | Nein | Medientitel |
| `caption` | string | Nein | Medienunterschrift |
| `altText` | string | Nein | Alternativer Text für Barrierefreiheit |

View File

@@ -170,28 +170,9 @@ Videos aus einer YouTube-Playlist abrufen.
| --------- | ---- | ----------- |
| `items` | array | Array von Videos in der Playlist |
### `youtube_related_videos`
Finde Videos, die mit einem bestimmten YouTube-Video verwandt sind.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `videoId` | string | Ja | YouTube-Video-ID, für die verwandte Videos gefunden werden sollen |
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden verwandten Videos \(1-50\) |
| `pageToken` | string | Nein | Page-Token für Paginierung |
| `apiKey` | string | Ja | YouTube API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `items` | array | Array von verwandten Videos |
### `youtube_comments`
Rufe Kommentare von einem YouTube-Video ab.
Kommentare von einem YouTube-Video abrufen.
#### Eingabe
@@ -200,7 +181,7 @@ Rufe Kommentare von einem YouTube-Video ab.
| `videoId` | string | Ja | YouTube-Video-ID |
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Kommentare |
| `order` | string | Nein | Reihenfolge der Kommentare: time oder relevance |
| `pageToken` | string | Nein | Page-Token für Paginierung |
| `pageToken` | string | Nein | Seitentoken für Paginierung |
| `apiKey` | string | Ja | YouTube API-Schlüssel |
#### Ausgabe

View File

@@ -73,8 +73,9 @@ Eine Liste von Tickets aus Zendesk mit optionaler Filterung abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Ticket-Daten und Metadaten |
| `tickets` | array | Array von Ticket-Objekten |
| `paging` | object | Paginierungsinformationen |
| `metadata` | object | Operationsmetadaten |
### `zendesk_get_ticket`
@@ -93,8 +94,8 @@ Ein einzelnes Ticket anhand der ID von Zendesk abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Ticket-Daten |
| `ticket` | object | Ticket-Objekt |
| `metadata` | object | Operationsmetadaten |
### `zendesk_create_ticket`
@@ -120,10 +121,10 @@ Ein neues Ticket in Zendesk erstellen mit Unterstützung für benutzerdefinierte
#### Output
| Parameter | Type | Description |
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Erstellte Ticket-Daten |
| `ticket` | object | Erstelltes Ticket-Objekt |
| `metadata` | object | Operationsmetadaten |
### `zendesk_create_tickets_bulk`
@@ -140,10 +141,10 @@ Erstellen Sie mehrere Tickets in Zendesk auf einmal (maximal 100)
#### Output
| Parameter | Type | Description |
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Status des Massenerstell-Jobs |
| `jobStatus` | object | Job-Status-Objekt |
| `metadata` | object | Operationsmetadaten |
### `zendesk_update_ticket`
@@ -171,8 +172,8 @@ Aktualisieren Sie ein bestehendes Ticket in Zendesk mit Unterstützung für benu
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Aktualisierte Ticket-Daten |
| `ticket` | object | Aktualisiertes Ticket-Objekt |
| `metadata` | object | Operationsmetadaten |
### `zendesk_update_tickets_bulk`
@@ -196,8 +197,8 @@ Mehrere Tickets in Zendesk auf einmal aktualisieren (max. 100)
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Status des Massenaktualisierungsauftrags |
| `jobStatus` | object | Job-Status-Objekt |
| `metadata` | object | Operationsmetadaten |
### `zendesk_delete_ticket`
@@ -216,8 +217,8 @@ Ein Ticket aus Zendesk löschen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Löschbestätigung |
| `deleted` | boolean | Löschvorgang erfolgreich |
| `metadata` | object | Operationsmetadaten |
### `zendesk_merge_tickets`
@@ -238,8 +239,8 @@ Mehrere Tickets in ein Zielticket zusammenführen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Status des Zusammenführungsauftrags |
| `jobStatus` | object | Job-Status-Objekt |
| `metadata` | object | Operationsmetadaten |
### `zendesk_get_users`
@@ -261,8 +262,9 @@ Eine Liste von Benutzern aus Zendesk mit optionaler Filterung abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Benutzerdaten und Metadaten |
| `users` | array | Array von Benutzerobjekten |
| `paging` | object | Paginierungsinformationen |
| `metadata` | object | Operationsmetadaten |
### `zendesk_get_user`
@@ -281,8 +283,8 @@ Einen einzelnen Benutzer anhand der ID von Zendesk abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Benutzerdaten |
| `user` | object | Benutzerobjekt |
| `metadata` | object | Operationsmetadaten |
### `zendesk_get_current_user`
@@ -300,8 +302,8 @@ Den aktuell authentifizierten Benutzer von Zendesk abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Daten des aktuellen Benutzers |
| `user` | object | Aktuelles Benutzerobjekt |
| `metadata` | object | Operationsmetadaten |
### `zendesk_search_users`
@@ -323,8 +325,9 @@ Nach Benutzern in Zendesk mit einer Abfragezeichenfolge suchen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Suchergebnisse für Benutzer |
| `users` | array | Array von Benutzerobjekten |
| `paging` | object | Paginierungsinformationen |
| `metadata` | object | Operationsmetadaten |
### `zendesk_create_user`
@@ -348,10 +351,10 @@ Einen neuen Benutzer in Zendesk erstellen
#### Output
| Parameter | Type | Beschreibung |
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Erstellte Benutzerdaten |
| `user` | object | Erstelltes Benutzerobjekt |
| `metadata` | object | Operationsmetadaten |
### `zendesk_create_users_bulk`
@@ -368,10 +371,10 @@ Erstellen mehrerer Benutzer in Zendesk mittels Massenimport
#### Output
| Parameter | Type | Beschreibung |
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Status des Massenimport-Jobs |
| `jobStatus` | object | Job-Statusobjekt |
| `metadata` | object | Operationsmetadaten |
### `zendesk_update_user`
@@ -398,8 +401,8 @@ Aktualisieren eines vorhandenen Benutzers in Zendesk
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Aktualisierte Benutzerdaten |
| `user` | object | Aktualisiertes Benutzerobjekt |
| `metadata` | object | Operationsmetadaten |
### `zendesk_update_users_bulk`
@@ -418,8 +421,8 @@ Mehrere Benutzer in Zendesk über Massenaktualisierung aktualisieren
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Status des Massenaktualisierungsauftrags |
| `jobStatus` | object | Job-Statusobjekt |
| `metadata` | object | Operationsmetadaten |
### `zendesk_delete_user`
@@ -438,8 +441,8 @@ Einen Benutzer aus Zendesk löschen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Daten des gelöschten Benutzers |
| `deleted` | boolean | Löscherfolg |
| `metadata` | object | Operationsmetadaten |
### `zendesk_get_organizations`
@@ -459,8 +462,9 @@ Eine Liste von Organisationen von Zendesk abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Organisationsdaten und Metadaten |
| `organizations` | array | Array von Organisationsobjekten |
| `paging` | object | Paginierungsinformationen |
| `metadata` | object | Operationsmetadaten |
### `zendesk_get_organization`
@@ -479,8 +483,8 @@ Eine einzelne Organisation anhand der ID von Zendesk abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Organisationsdaten |
| `organization` | object | Organisationsobjekt |
| `metadata` | object | Operationsmetadaten |
### `zendesk_autocomplete_organizations`
@@ -499,10 +503,11 @@ Autovervollständigung von Organisationen in Zendesk nach Namenspräfix (für Na
#### Output
| Parameter | Type | Beschreibung |
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Suchergebnisse für Organisationen |
| `organizations` | array | Array von Organisationsobjekten |
| `paging` | object | Paginierungsinformationen |
| `metadata` | object | Operationsmetadaten |
### `zendesk_create_organization`
@@ -524,10 +529,10 @@ Eine neue Organisation in Zendesk erstellen
#### Output
| Parameter | Type | Beschreibung |
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Daten der erstellten Organisation |
| `organization` | object | Erstelltes Organisationsobjekt |
| `metadata` | object | Operationsmetadaten |
### `zendesk_create_organizations_bulk`
@@ -546,8 +551,8 @@ Mehrere Organisationen in Zendesk über Massenimport erstellen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Status des Massenerfassungsauftrags |
| `jobStatus` | object | Job-Statusobjekt |
| `metadata` | object | Operationsmetadaten |
### `zendesk_update_organization`
@@ -572,8 +577,8 @@ Eine bestehende Organisation in Zendesk aktualisieren
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Aktualisierte Organisationsdaten |
| `organization` | object | Aktualisiertes Organisationsobjekt |
| `metadata` | object | Operationsmetadaten |
### `zendesk_delete_organization`
@@ -592,8 +597,8 @@ Eine Organisation aus Zendesk löschen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Gelöschte Organisationsdaten |
| `deleted` | boolean | Löscherfolg |
| `metadata` | object | Operationsmetadaten |
### `zendesk_search`
@@ -616,8 +621,9 @@ Einheitliche Suche über Tickets, Benutzer und Organisationen in Zendesk
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Suchergebnisse |
| `results` | array | Array von Ergebnisobjekten |
| `paging` | object | Paginierungsinformationen |
| `metadata` | object | Operationsmetadaten |
### `zendesk_search_count`
@@ -636,8 +642,8 @@ Zählen der Anzahl von Suchergebnissen, die einer Abfrage in Zendesk entsprechen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Suchergebnis-Anzahl |
| `count` | number | Anzahl der übereinstimmenden Ergebnisse |
| `metadata` | object | Operationsmetadaten |
## Hinweise

View File

@@ -27,14 +27,16 @@ All API responses include information about your workflow execution limits and u
"limits": {
"workflowExecutionRateLimit": {
"sync": {
"limit": 60, // Max sync workflow executions per minute
"remaining": 58, // Remaining sync workflow executions
"resetAt": "..." // When the window resets
"requestsPerMinute": 60, // Sustained rate limit per minute
"maxBurst": 120, // Maximum burst capacity
"remaining": 118, // Current tokens available (up to maxBurst)
"resetAt": "..." // When tokens next refill
},
"async": {
"limit": 60, // Max async workflow executions per minute
"remaining": 59, // Remaining async workflow executions
"resetAt": "..." // When the window resets
"requestsPerMinute": 200, // Sustained rate limit per minute
"maxBurst": 400, // Maximum burst capacity
"remaining": 398, // Current tokens available
"resetAt": "..." // When tokens next refill
}
},
"usage": {
@@ -46,7 +48,7 @@ All API responses include information about your workflow execution limits and u
}
```
**Note:** The rate limits in the response body are for workflow executions. The rate limits for calling this API endpoint are in the response headers (`X-RateLimit-*`).
**Note:** Rate limits use a token bucket algorithm. `remaining` can exceed `requestsPerMinute` up to `maxBurst` when you haven't used your full allowance recently, allowing for burst traffic. The rate limits in the response body are for workflow executions. The rate limits for calling this API endpoint are in the response headers (`X-RateLimit-*`).
### Query Logs
@@ -108,13 +110,15 @@ Query workflow execution logs with extensive filtering options.
"limits": {
"workflowExecutionRateLimit": {
"sync": {
"limit": 60,
"remaining": 58,
"requestsPerMinute": 60,
"maxBurst": 120,
"remaining": 118,
"resetAt": "2025-01-01T12:35:56.789Z"
},
"async": {
"limit": 60,
"remaining": 59,
"requestsPerMinute": 200,
"maxBurst": 400,
"remaining": 398,
"resetAt": "2025-01-01T12:35:56.789Z"
}
},
@@ -184,13 +188,15 @@ Retrieve detailed information about a specific log entry.
"limits": {
"workflowExecutionRateLimit": {
"sync": {
"limit": 60,
"remaining": 58,
"requestsPerMinute": 60,
"maxBurst": 120,
"remaining": 118,
"resetAt": "2025-01-01T12:35:56.789Z"
},
"async": {
"limit": 60,
"remaining": 59,
"requestsPerMinute": 200,
"maxBurst": 400,
"remaining": 398,
"resetAt": "2025-01-01T12:35:56.789Z"
}
},
@@ -467,17 +473,25 @@ Failed webhook deliveries are retried with exponential backoff and jitter:
## Rate Limiting
The API implements rate limiting to ensure fair usage:
The API uses a **token bucket algorithm** for rate limiting, providing fair usage while allowing burst traffic:
- **Free plan**: 10 requests per minute
- **Pro plan**: 30 requests per minute
- **Team plan**: 60 requests per minute
- **Enterprise plan**: Custom limits
| Plan | Requests/Minute | Burst Capacity |
|------|-----------------|----------------|
| Free | 10 | 20 |
| Pro | 30 | 60 |
| Team | 60 | 120 |
| Enterprise | 120 | 240 |
**How it works:**
- Tokens refill at `requestsPerMinute` rate
- You can accumulate up to `maxBurst` tokens when idle
- Each request consumes 1 token
- Burst capacity allows handling traffic spikes
Rate limit information is included in response headers:
- `X-RateLimit-Limit`: Maximum requests per window
- `X-RateLimit-Remaining`: Requests remaining in current window
- `X-RateLimit-Reset`: ISO timestamp when the window resets
- `X-RateLimit-Limit`: Requests per minute (refill rate)
- `X-RateLimit-Remaining`: Current tokens available
- `X-RateLimit-Reset`: ISO timestamp when tokens next refill
## Example: Polling for New Logs

View File

@@ -143,8 +143,20 @@ curl -X GET -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" htt
{
"success": true,
"rateLimit": {
"sync": { "isLimited": false, "limit": 10, "remaining": 10, "resetAt": "2025-09-08T22:51:55.999Z" },
"async": { "isLimited": false, "limit": 50, "remaining": 50, "resetAt": "2025-09-08T22:51:56.155Z" },
"sync": {
"isLimited": false,
"requestsPerMinute": 25,
"maxBurst": 50,
"remaining": 50,
"resetAt": "2025-09-08T22:51:55.999Z"
},
"async": {
"isLimited": false,
"requestsPerMinute": 200,
"maxBurst": 400,
"remaining": 400,
"resetAt": "2025-09-08T22:51:56.155Z"
},
"authType": "api"
},
"usage": {
@@ -155,6 +167,11 @@ curl -X GET -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" htt
}
```
**Rate Limit Fields:**
- `requestsPerMinute`: Sustained rate limit (tokens refill at this rate)
- `maxBurst`: Maximum tokens you can accumulate (burst capacity)
- `remaining`: Current tokens available (can be up to `maxBurst`)
**Response Fields:**
- `currentPeriodCost` reflects usage in the current billing period
- `limit` is derived from individual limits (Free/Pro) or pooled organization limits (Team/Enterprise)

View File

@@ -49,11 +49,11 @@ Search the web using Exa AI. Returns relevant search results with titles, URLs,
| `type` | string | No | Search type: neural, keyword, auto or fast \(default: auto\) |
| `includeDomains` | string | No | Comma-separated list of domains to include in results |
| `excludeDomains` | string | No | Comma-separated list of domains to exclude from results |
| `category` | string | No | Filter by category: company, research_paper, news_article, pdf, github, tweet, movie, song, personal_site |
| `category` | string | No | Filter by category: company, research paper, news, pdf, github, tweet, personal site, linkedin profile, financial report |
| `text` | boolean | No | Include full text content in results \(default: false\) |
| `highlights` | boolean | No | Include highlighted snippets in results \(default: false\) |
| `summary` | boolean | No | Include AI-generated summaries in results \(default: false\) |
| `livecrawl` | string | No | Live crawling mode: always, fallback, or never \(default: never\) |
| `livecrawl` | string | No | Live crawling mode: never \(default\), fallback, always, or preferred \(always try livecrawl, fall back to cache if fails\) |
| `apiKey` | string | Yes | Exa AI API Key |
#### Output
@@ -76,7 +76,7 @@ Retrieve the contents of webpages using Exa AI. Returns the title, text content,
| `subpages` | number | No | Number of subpages to crawl from the provided URLs |
| `subpageTarget` | string | No | Comma-separated keywords to target specific subpages \(e.g., "docs,tutorial,about"\) |
| `highlights` | boolean | No | Include highlighted snippets in results \(default: false\) |
| `livecrawl` | string | No | Live crawling mode: always, fallback, or never \(default: never\) |
| `livecrawl` | string | No | Live crawling mode: never \(default\), fallback, always, or preferred \(always try livecrawl, fall back to cache if fails\) |
| `apiKey` | string | Yes | Exa AI API Key |
#### Output
@@ -99,10 +99,9 @@ Find webpages similar to a given URL using Exa AI. Returns a list of similar lin
| `includeDomains` | string | No | Comma-separated list of domains to include in results |
| `excludeDomains` | string | No | Comma-separated list of domains to exclude from results |
| `excludeSourceDomain` | boolean | No | Exclude the source domain from results \(default: false\) |
| `category` | string | No | Filter by category: company, research_paper, news_article, pdf, github, tweet, movie, song, personal_site |
| `highlights` | boolean | No | Include highlighted snippets in results \(default: false\) |
| `summary` | boolean | No | Include AI-generated summaries in results \(default: false\) |
| `livecrawl` | string | No | Live crawling mode: always, fallback, or never \(default: never\) |
| `livecrawl` | string | No | Live crawling mode: never \(default\), fallback, always, or preferred \(always try livecrawl, fall back to cache if fails\) |
| `apiKey` | string | Yes | Exa AI API Key |
#### Output

View File

@@ -52,8 +52,8 @@ Retrieve a list of prediction markets from Kalshi with optional filtering
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Markets data and metadata |
| `markets` | array | Array of market objects |
| `paging` | object | Pagination cursor for fetching more results |
### `kalshi_get_market`
@@ -69,8 +69,7 @@ Retrieve details of a specific prediction market by ticker
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Market data and metadata |
| `market` | object | Market object with details |
### `kalshi_get_events`
@@ -90,8 +89,8 @@ Retrieve a list of events from Kalshi with optional filtering
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Events data and metadata |
| `events` | array | Array of event objects |
| `paging` | object | Pagination cursor for fetching more results |
### `kalshi_get_event`
@@ -108,8 +107,7 @@ Retrieve details of a specific event by ticker
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Event data and metadata |
| `event` | object | Event object with details |
### `kalshi_get_balance`
@@ -126,8 +124,10 @@ Retrieve your account balance and portfolio value from Kalshi
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Balance data and metadata |
| `balance` | number | Account balance in cents |
| `portfolioValue` | number | Portfolio value in cents |
| `balanceDollars` | number | Account balance in dollars |
| `portfolioValueDollars` | number | Portfolio value in dollars |
### `kalshi_get_positions`
@@ -149,8 +149,8 @@ Retrieve your open positions from Kalshi
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Positions data and metadata |
| `positions` | array | Array of position objects |
| `paging` | object | Pagination cursor for fetching more results |
### `kalshi_get_orders`
@@ -172,8 +172,8 @@ Retrieve your orders from Kalshi with optional filtering
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Orders data and metadata |
| `orders` | array | Array of order objects |
| `paging` | object | Pagination cursor for fetching more results |
### `kalshi_get_order`
@@ -191,8 +191,7 @@ Retrieve details of a specific order by ID from Kalshi
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Order data |
| `order` | object | Order object with details |
### `kalshi_get_orderbook`
@@ -208,8 +207,7 @@ Retrieve the orderbook (yes and no bids) for a specific market
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Orderbook data and metadata |
| `orderbook` | object | Orderbook with yes/no bids and asks |
### `kalshi_get_trades`
@@ -226,8 +224,8 @@ Retrieve recent trades across all markets
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Trades data and metadata |
| `trades` | array | Array of trade objects |
| `paging` | object | Pagination cursor for fetching more results |
### `kalshi_get_candlesticks`
@@ -247,8 +245,7 @@ Retrieve OHLC candlestick data for a specific market
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Candlestick data and metadata |
| `candlesticks` | array | Array of OHLC candlestick data |
### `kalshi_get_fills`
@@ -271,8 +268,8 @@ Retrieve your portfolio
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Fills data and metadata |
| `fills` | array | Array of fill/trade objects |
| `paging` | object | Pagination cursor for fetching more results |
### `kalshi_get_series_by_ticker`
@@ -288,8 +285,7 @@ Retrieve details of a specific market series by ticker
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Series data and metadata |
| `series` | object | Series object with details |
### `kalshi_get_exchange_status`
@@ -304,8 +300,7 @@ Retrieve the current status of the Kalshi exchange (trading and exchange activit
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Exchange status data and metadata |
| `status` | object | Exchange status with trading_active and exchange_active flags |
### `kalshi_create_order`
@@ -339,8 +334,7 @@ Create a new order on a Kalshi prediction market
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Created order data |
| `order` | object | The created order object |
### `kalshi_cancel_order`
@@ -358,8 +352,8 @@ Cancel an existing order on Kalshi
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Canceled order data |
| `order` | object | The canceled order object |
| `reducedBy` | number | Number of contracts canceled |
### `kalshi_amend_order`
@@ -387,8 +381,7 @@ Modify the price or quantity of an existing order on Kalshi
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Amended order data |
| `order` | object | The amended order object |

View File

@@ -94,11 +94,11 @@ Conduct comprehensive deep research across the web using Parallel AI. Synthesize
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `status` | string | Task status \(running, completed, failed\) |
| `status` | string | Task status \(completed, failed\) |
| `run_id` | string | Unique ID for this research task |
| `message` | string | Status message \(for running tasks\) |
| `message` | string | Status message |
| `content` | object | Research results \(structured based on output_schema\) |
| `basis` | array | Citations and sources with excerpts and confidence levels |
| `basis` | array | Citations and sources with reasoning and confidence levels |

View File

@@ -54,8 +54,9 @@ Generate completions using Perplexity AI chat models
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Chat completion results |
| `content` | string | Generated text content |
| `model` | string | Model used for generation |
| `usage` | object | Token usage information |
### `perplexity_search`
@@ -79,8 +80,7 @@ Get ranked search results from Perplexity
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Search results |
| `results` | array | Array of search results |

View File

@@ -47,15 +47,14 @@ Retrieve a list of prediction markets from Polymarket with optional filtering
| `order` | string | No | Sort field \(e.g., volumeNum, liquidityNum, startDate, endDate, createdAt\) |
| `ascending` | string | No | Sort direction \(true for ascending, false for descending\) |
| `tagId` | string | No | Filter by tag ID |
| `limit` | string | No | Number of results per page \(recommended: 25-50\) |
| `limit` | string | No | Number of results per page \(max 50\) |
| `offset` | string | No | Pagination offset \(skip this many results\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Markets data and metadata |
| `markets` | array | Array of market objects |
### `polymarket_get_market`
@@ -72,8 +71,7 @@ Retrieve details of a specific prediction market by ID or slug
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Market data and metadata |
| `market` | object | Market object with details |
### `polymarket_get_events`
@@ -87,15 +85,14 @@ Retrieve a list of events from Polymarket with optional filtering
| `order` | string | No | Sort field \(e.g., volume, liquidity, startDate, endDate, createdAt\) |
| `ascending` | string | No | Sort direction \(true for ascending, false for descending\) |
| `tagId` | string | No | Filter by tag ID |
| `limit` | string | No | Number of results per page \(recommended: 25-50\) |
| `limit` | string | No | Number of results per page \(max 50\) |
| `offset` | string | No | Pagination offset \(skip this many results\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Events data and metadata |
| `events` | array | Array of event objects |
### `polymarket_get_event`
@@ -112,8 +109,7 @@ Retrieve details of a specific event by ID or slug
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Event data and metadata |
| `event` | object | Event object with details |
### `polymarket_get_tags`
@@ -123,15 +119,14 @@ Retrieve available tags for filtering markets from Polymarket
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `limit` | string | No | Number of results per page \(recommended: 25-50\) |
| `limit` | string | No | Number of results per page \(max 50\) |
| `offset` | string | No | Pagination offset \(skip this many results\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Tags data and metadata |
| `tags` | array | Array of tag objects with id, label, and slug |
### `polymarket_search`
@@ -142,15 +137,14 @@ Search for markets, events, and profiles on Polymarket
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `query` | string | Yes | Search query term |
| `limit` | string | No | Number of results per page \(recommended: 25-50\) |
| `offset` | string | No | Pagination offset \(skip this many results\) |
| `limit` | string | No | Number of results per page \(max 50\) |
| `offset` | string | No | Pagination offset |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Search results and metadata |
| `results` | object | Search results containing markets, events, and profiles arrays |
### `polymarket_get_series`
@@ -160,15 +154,14 @@ Retrieve series (related market groups) from Polymarket
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `limit` | string | No | Number of results per page \(recommended: 25-50\) |
| `limit` | string | No | Number of results per page \(max 50\) |
| `offset` | string | No | Pagination offset \(skip this many results\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Series data and metadata |
| `series` | array | Array of series objects |
### `polymarket_get_series_by_id`
@@ -184,8 +177,7 @@ Retrieve a specific series (related market group) by ID from Polymarket
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Series data and metadata |
| `series` | object | Series object with details |
### `polymarket_get_orderbook`
@@ -201,8 +193,7 @@ Retrieve the order book summary for a specific token
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Orderbook data and metadata |
| `orderbook` | object | Order book with bids and asks arrays |
### `polymarket_get_price`
@@ -219,8 +210,7 @@ Retrieve the market price for a specific token and side
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Price data and metadata |
| `price` | string | Market price |
### `polymarket_get_midpoint`
@@ -236,8 +226,7 @@ Retrieve the midpoint price for a specific token
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Midpoint price data and metadata |
| `midpoint` | string | Midpoint price |
### `polymarket_get_price_history`
@@ -257,8 +246,7 @@ Retrieve historical price data for a specific market token
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Price history data and metadata |
| `history` | array | Array of price history entries with timestamp \(t\) and price \(p\) |
### `polymarket_get_last_trade_price`
@@ -274,8 +262,7 @@ Retrieve the last trade price for a specific token
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Last trade price and metadata |
| `price` | string | Last trade price |
### `polymarket_get_spread`
@@ -291,8 +278,7 @@ Retrieve the bid-ask spread for a specific token
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Spread data and metadata |
| `spread` | object | Bid-ask spread with bid and ask prices |
### `polymarket_get_tick_size`
@@ -308,8 +294,7 @@ Retrieve the minimum tick size for a specific token
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Tick size and metadata |
| `tickSize` | string | Minimum tick size |
### `polymarket_get_positions`
@@ -326,8 +311,7 @@ Retrieve user positions from Polymarket
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Positions data and metadata |
| `positions` | array | Array of position objects |
### `polymarket_get_trades`
@@ -339,15 +323,14 @@ Retrieve trade history from Polymarket
| --------- | ---- | -------- | ----------- |
| `user` | string | No | User wallet address to filter trades |
| `market` | string | No | Market ID to filter trades |
| `limit` | string | No | Number of results per page \(recommended: 25-50\) |
| `limit` | string | No | Number of results per page \(max 50\) |
| `offset` | string | No | Pagination offset \(skip this many results\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Trades data and metadata |
| `trades` | array | Array of trade objects |

View File

@@ -345,19 +345,30 @@ Delete an email template from SendGrid
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `message` | string | Status or success message |
| `messageId` | string | Email message ID \(send_mail\) |
| `to` | string | Recipient email address \(send_mail\) |
| `subject` | string | Email subject \(send_mail, create_template_version\) |
| `id` | string | Resource ID |
| `jobId` | string | Job ID for async operations |
| `email` | string | Email address |
| `firstName` | string | First name |
| `lastName` | string | Last name |
| `email` | string | Contact email address |
| `firstName` | string | Contact first name |
| `lastName` | string | Contact last name |
| `createdAt` | string | Creation timestamp |
| `updatedAt` | string | Last update timestamp |
| `listIds` | json | Array of list IDs the contact belongs to |
| `customFields` | json | Custom field values |
| `contacts` | json | Array of contacts |
| `contactCount` | number | Number of contacts |
| `lists` | json | Array of lists |
| `templates` | json | Array of templates |
| `message` | string | Status or success message |
| `name` | string | Resource name |
| `templates` | json | Array of templates |
| `generation` | string | Template generation |
| `versions` | json | Array of template versions |
| `templateId` | string | Template ID |
| `active` | boolean | Whether template version is active |
| `htmlContent` | string | HTML content |
| `plainContent` | string | Plain text content |
### `sendgrid_create_template_version`

View File

@@ -40,7 +40,7 @@ Processes a provided thought/instruction, making it available for subsequent ste
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `thought` | string | Yes | The thought process or instruction provided by the user in the Thinking Step block. |
| `thought` | string | Yes | Your internal reasoning, analysis, or thought process. Use this to think through the problem step by step before responding. |
#### Output

View File

@@ -34,38 +34,30 @@ Integrate Translate into the workflow. Can translate text to any language.
## Tools
### `openai_chat`
### `llm_chat`
Send a chat completion request to any supported LLM provider
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `model` | string | Yes | The model to use \(e.g., gpt-4o, claude-sonnet-4-5, gemini-2.0-flash\) |
| `systemPrompt` | string | No | System prompt to set the behavior of the assistant |
| `context` | string | Yes | The user message or context to send to the model |
| `apiKey` | string | No | API key for the provider \(uses platform key if not provided for hosted models\) |
| `temperature` | number | No | Temperature for response generation \(0-2\) |
| `maxTokens` | number | No | Maximum tokens in the response |
| `azureEndpoint` | string | No | Azure OpenAI endpoint URL |
| `azureApiVersion` | string | No | Azure OpenAI API version |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `content` | string | Translated text |
| `model` | string | Model used |
| `tokens` | json | Token usage |
### `anthropic_chat`
### `google_chat`
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `content` | string | Translated text |
| `model` | string | Model used |
| `tokens` | json | Token usage |
| `content` | string | The generated response content |
| `model` | string | The model used for generation |
| `tokens` | object | Token usage information |

View File

@@ -254,8 +254,8 @@ Upload a media file (image, video, document) to WordPress.com
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
| `file` | string | Yes | Base64 encoded file data or URL to fetch file from |
| `filename` | string | Yes | Filename with extension \(e.g., image.jpg\) |
| `file` | file | No | File to upload \(UserFile object\) |
| `filename` | string | No | Optional filename override \(e.g., image.jpg\) |
| `title` | string | No | Media title |
| `caption` | string | No | Media caption |
| `altText` | string | No | Alternative text for accessibility |

View File

@@ -173,25 +173,6 @@ Get videos from a YouTube playlist.
| --------- | ---- | ----------- |
| `items` | array | Array of videos in the playlist |
### `youtube_related_videos`
Find videos related to a specific YouTube video.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `videoId` | string | Yes | YouTube video ID to find related videos for |
| `maxResults` | number | No | Maximum number of related videos to return \(1-50\) |
| `pageToken` | string | No | Page token for pagination |
| `apiKey` | string | Yes | YouTube API Key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `items` | array | Array of related videos |
### `youtube_comments`
Get comments from a YouTube video.

View File

@@ -76,8 +76,9 @@ Retrieve a list of tickets from Zendesk with optional filtering
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Tickets data and metadata |
| `tickets` | array | Array of ticket objects |
| `paging` | object | Pagination information |
| `metadata` | object | Operation metadata |
### `zendesk_get_ticket`
@@ -96,8 +97,8 @@ Get a single ticket by ID from Zendesk
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Ticket data |
| `ticket` | object | Ticket object |
| `metadata` | object | Operation metadata |
### `zendesk_create_ticket`
@@ -125,8 +126,8 @@ Create a new ticket in Zendesk with support for custom fields
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Created ticket data |
| `ticket` | object | Created ticket object |
| `metadata` | object | Operation metadata |
### `zendesk_create_tickets_bulk`
@@ -145,8 +146,8 @@ Create multiple tickets in Zendesk at once (max 100)
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Bulk create job status |
| `jobStatus` | object | Job status object |
| `metadata` | object | Operation metadata |
### `zendesk_update_ticket`
@@ -174,8 +175,8 @@ Update an existing ticket in Zendesk with support for custom fields
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Updated ticket data |
| `ticket` | object | Updated ticket object |
| `metadata` | object | Operation metadata |
### `zendesk_update_tickets_bulk`
@@ -199,8 +200,8 @@ Update multiple tickets in Zendesk at once (max 100)
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Bulk update job status |
| `jobStatus` | object | Job status object |
| `metadata` | object | Operation metadata |
### `zendesk_delete_ticket`
@@ -219,8 +220,8 @@ Delete a ticket from Zendesk
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Delete confirmation |
| `deleted` | boolean | Deletion success |
| `metadata` | object | Operation metadata |
### `zendesk_merge_tickets`
@@ -241,8 +242,8 @@ Merge multiple tickets into a target ticket
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Merge job status |
| `jobStatus` | object | Job status object |
| `metadata` | object | Operation metadata |
### `zendesk_get_users`
@@ -264,8 +265,9 @@ Retrieve a list of users from Zendesk with optional filtering
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Users data and metadata |
| `users` | array | Array of user objects |
| `paging` | object | Pagination information |
| `metadata` | object | Operation metadata |
### `zendesk_get_user`
@@ -284,8 +286,8 @@ Get a single user by ID from Zendesk
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | User data |
| `user` | object | User object |
| `metadata` | object | Operation metadata |
### `zendesk_get_current_user`
@@ -303,8 +305,8 @@ Get the currently authenticated user from Zendesk
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Current user data |
| `user` | object | Current user object |
| `metadata` | object | Operation metadata |
### `zendesk_search_users`
@@ -326,8 +328,9 @@ Search for users in Zendesk using a query string
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Users search results |
| `users` | array | Array of user objects |
| `paging` | object | Pagination information |
| `metadata` | object | Operation metadata |
### `zendesk_create_user`
@@ -353,8 +356,8 @@ Create a new user in Zendesk
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Created user data |
| `user` | object | Created user object |
| `metadata` | object | Operation metadata |
### `zendesk_create_users_bulk`
@@ -373,8 +376,8 @@ Create multiple users in Zendesk using bulk import
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Bulk creation job status |
| `jobStatus` | object | Job status object |
| `metadata` | object | Operation metadata |
### `zendesk_update_user`
@@ -401,8 +404,8 @@ Update an existing user in Zendesk
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Updated user data |
| `user` | object | Updated user object |
| `metadata` | object | Operation metadata |
### `zendesk_update_users_bulk`
@@ -421,8 +424,8 @@ Update multiple users in Zendesk using bulk update
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Bulk update job status |
| `jobStatus` | object | Job status object |
| `metadata` | object | Operation metadata |
### `zendesk_delete_user`
@@ -441,8 +444,8 @@ Delete a user from Zendesk
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Deleted user data |
| `deleted` | boolean | Deletion success |
| `metadata` | object | Operation metadata |
### `zendesk_get_organizations`
@@ -462,8 +465,9 @@ Retrieve a list of organizations from Zendesk
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Organizations data and metadata |
| `organizations` | array | Array of organization objects |
| `paging` | object | Pagination information |
| `metadata` | object | Operation metadata |
### `zendesk_get_organization`
@@ -482,8 +486,8 @@ Get a single organization by ID from Zendesk
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Organization data |
| `organization` | object | Organization object |
| `metadata` | object | Operation metadata |
### `zendesk_autocomplete_organizations`
@@ -504,8 +508,9 @@ Autocomplete organizations in Zendesk by name prefix (for name matching/autocomp
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Organizations search results |
| `organizations` | array | Array of organization objects |
| `paging` | object | Pagination information |
| `metadata` | object | Operation metadata |
### `zendesk_create_organization`
@@ -529,8 +534,8 @@ Create a new organization in Zendesk
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Created organization data |
| `organization` | object | Created organization object |
| `metadata` | object | Operation metadata |
### `zendesk_create_organizations_bulk`
@@ -549,8 +554,8 @@ Create multiple organizations in Zendesk using bulk import
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Bulk creation job status |
| `jobStatus` | object | Job status object |
| `metadata` | object | Operation metadata |
### `zendesk_update_organization`
@@ -575,8 +580,8 @@ Update an existing organization in Zendesk
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Updated organization data |
| `organization` | object | Updated organization object |
| `metadata` | object | Operation metadata |
### `zendesk_delete_organization`
@@ -595,8 +600,8 @@ Delete an organization from Zendesk
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Deleted organization data |
| `deleted` | boolean | Deletion success |
| `metadata` | object | Operation metadata |
### `zendesk_search`
@@ -619,8 +624,9 @@ Unified search across tickets, users, and organizations in Zendesk
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Search results |
| `results` | array | Array of result objects |
| `paging` | object | Pagination information |
| `metadata` | object | Operation metadata |
### `zendesk_search_count`
@@ -639,8 +645,8 @@ Count the number of search results matching a query in Zendesk
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Search count result |
| `count` | number | Number of matching results |
| `metadata` | object | Operation metadata |

View File

@@ -27,14 +27,16 @@ Todas las respuestas de la API incluyen información sobre tus límites de ejecu
"limits": {
"workflowExecutionRateLimit": {
"sync": {
"limit": 60, // Max sync workflow executions per minute
"remaining": 58, // Remaining sync workflow executions
"resetAt": "..." // When the window resets
"requestsPerMinute": 60, // Sustained rate limit per minute
"maxBurst": 120, // Maximum burst capacity
"remaining": 118, // Current tokens available (up to maxBurst)
"resetAt": "..." // When tokens next refill
},
"async": {
"limit": 60, // Max async workflow executions per minute
"remaining": 59, // Remaining async workflow executions
"resetAt": "..." // When the window resets
"requestsPerMinute": 200, // Sustained rate limit per minute
"maxBurst": 400, // Maximum burst capacity
"remaining": 398, // Current tokens available
"resetAt": "..." // When tokens next refill
}
},
"usage": {
@@ -46,7 +48,7 @@ Todas las respuestas de la API incluyen información sobre tus límites de ejecu
}
```
**Nota:** Los límites de tasa en el cuerpo de la respuesta son para ejecuciones de flujos de trabajo. Los límites de tasa para llamar a este endpoint de la API están en los encabezados de respuesta (`X-RateLimit-*`).
**Nota:** Los límites de tasa utilizan un algoritmo de cubo de tokens. `remaining` puede exceder `requestsPerMinute` hasta `maxBurst` cuando no has usado tu asignación completa recientemente, permitiendo tráfico en ráfagas. Los límites de tasa en el cuerpo de la respuesta son para ejecuciones de flujo de trabajo. Los límites de tasa para llamar a este punto final de la API están en los encabezados de respuesta (`X-RateLimit-*`).
### Consultar registros
@@ -110,13 +112,15 @@ Consulta los registros de ejecución de flujos de trabajo con amplias opciones d
"limits": {
"workflowExecutionRateLimit": {
"sync": {
"limit": 60,
"remaining": 58,
"requestsPerMinute": 60,
"maxBurst": 120,
"remaining": 118,
"resetAt": "2025-01-01T12:35:56.789Z"
},
"async": {
"limit": 60,
"remaining": 59,
"requestsPerMinute": 200,
"maxBurst": 400,
"remaining": 398,
"resetAt": "2025-01-01T12:35:56.789Z"
}
},
@@ -190,13 +194,15 @@ Recupera información detallada sobre una entrada de registro específica.
"limits": {
"workflowExecutionRateLimit": {
"sync": {
"limit": 60,
"remaining": 58,
"requestsPerMinute": 60,
"maxBurst": 120,
"remaining": 118,
"resetAt": "2025-01-01T12:35:56.789Z"
},
"async": {
"limit": 60,
"remaining": 59,
"requestsPerMinute": 200,
"maxBurst": 400,
"remaining": 398,
"resetAt": "2025-01-01T12:35:56.789Z"
}
},
@@ -482,19 +488,27 @@ Las entregas de webhook fallidas se reintentan con retroceso exponencial y fluct
## Limitación de tasa
La API implementa limitación de tasa para asegurar un uso justo:
La API utiliza un **algoritmo de cubo de tokens** para limitar la tasa, proporcionando un uso justo mientras permite tráfico en ráfagas:
- **Plan gratuito**: 10 solicitudes por minuto
- **Plan Pro**: 30 solicitudes por minuto
- **Plan Team**: 60 solicitudes por minuto
- **Plan Enterprise**: Límites personalizados
| Plan | Solicitudes/Minuto | Capacidad de ráfaga |
|------|-----------------|----------------|
| Free | 10 | 20 |
| Pro | 30 | 60 |
| Team | 60 | 120 |
| Enterprise | 120 | 240 |
La información de límite de tasa se incluye en las cabeceras de respuesta:
- `X-RateLimit-Limit`: Solicitudes máximas por ventana
- `X-RateLimit-Remaining`: Solicitudes restantes en la ventana actual
- `X-RateLimit-Reset`: Marca de tiempo ISO cuando la ventana se reinicia
**Cómo funciona:**
- Los tokens se recargan a una tasa de `requestsPerMinute`
- Puedes acumular hasta `maxBurst` tokens cuando estás inactivo
- Cada solicitud consume 1 token
- La capacidad de ráfaga permite manejar picos de tráfico
## Ejemplo: Sondeo de nuevos registros
La información del límite de tasa se incluye en los encabezados de respuesta:
- `X-RateLimit-Limit`: Solicitudes por minuto (tasa de recarga)
- `X-RateLimit-Remaining`: Tokens disponibles actualmente
- `X-RateLimit-Reset`: Marca de tiempo ISO cuando los tokens se recargan nuevamente
## Ejemplo: Sondeo para nuevos registros
```javascript
let cursor = null;

View File

@@ -147,8 +147,20 @@ curl -X GET -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" htt
{
"success": true,
"rateLimit": {
"sync": { "isLimited": false, "limit": 10, "remaining": 10, "resetAt": "2025-09-08T22:51:55.999Z" },
"async": { "isLimited": false, "limit": 50, "remaining": 50, "resetAt": "2025-09-08T22:51:56.155Z" },
"sync": {
"isLimited": false,
"requestsPerMinute": 25,
"maxBurst": 50,
"remaining": 50,
"resetAt": "2025-09-08T22:51:55.999Z"
},
"async": {
"isLimited": false,
"requestsPerMinute": 200,
"maxBurst": 400,
"remaining": 400,
"resetAt": "2025-09-08T22:51:56.155Z"
},
"authType": "api"
},
"usage": {
@@ -159,6 +171,11 @@ curl -X GET -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" htt
}
```
**Campos de límite de tasa:**
- `requestsPerMinute`: Límite de tasa sostenida (los tokens se recargan a esta velocidad)
- `maxBurst`: Máximo de tokens que puedes acumular (capacidad de ráfaga)
- `remaining`: Tokens disponibles actualmente (puede ser hasta `maxBurst`)
**Campos de respuesta:**
- `currentPeriodCost` refleja el uso en el período de facturación actual
- `limit` se deriva de límites individuales (Gratuito/Pro) o límites agrupados de la organización (Equipo/Empresa)
@@ -170,38 +187,38 @@ Los diferentes planes de suscripción tienen diferentes límites de uso:
| Plan | Límite de uso mensual | Límites de tasa (por minuto) |
|------|-------------------|-------------------------|
| **Gratuito** | $10 | 5 sinc, 10 asinc |
| **Pro** | $100 | 10 sinc, 50 asinc |
| **Equipo** | $500 (agrupado) | 50 sinc, 100 asinc |
| **Gratuito** | $10 | 5 sincrónico, 10 asincrónico |
| **Pro** | $100 | 10 sincrónico, 50 asincrónico |
| **Equipo** | $500 (agrupado) | 50 sincrónico, 100 asincrónico |
| **Empresa** | Personalizado | Personalizado |
## Modelo de facturación
Sim utiliza un modelo de facturación de **suscripción base + exceso**:
Sim utiliza un modelo de facturación de **suscripción base + excedente**:
### Cómo funciona
**Plan Pro ($20/mes):**
- La suscripción mensual incluye $20 de uso
- Uso por debajo de $20 → Sin cargos adicionales
- Uso por encima de $20 → Pagas el exceso al final del mes
- Ejemplo: $35 de uso = $20 (suscripción) + $15 (exceso)
- Uso por encima de $20 → Pagas el excedente al final del mes
- Ejemplo: $35 de uso = $20 (suscripción) + $15 (excedente)
**Plan de equipo ($40/usuario/mes):**
**Plan de Equipo ($40/usuario/mes):**
- Uso agrupado entre todos los miembros del equipo
- Exceso calculado del uso total del equipo
- Excedente calculado del uso total del equipo
- El propietario de la organización recibe una sola factura
**Planes empresariales:**
- Precio mensual fijo, sin excesos
**Planes Empresariales:**
- Precio mensual fijo, sin excedentes
- Límites de uso personalizados según el acuerdo
### Facturación por umbral
Cuando el exceso no facturado alcanza los $50, Sim factura automáticamente el monto total no facturado.
Cuando el excedente no facturado alcanza los $50, Sim factura automáticamente el monto total no facturado.
**Ejemplo:**
- Día 10: $70 de exceso → Factura inmediata de $70
- Día 10: $70 de excedente → Factura inmediata de $70
- Día 15: $35 adicionales de uso ($105 en total) → Ya facturado, sin acción
- Día 20: Otros $50 de uso ($155 en total, $85 no facturados) → Factura inmediata de $85
@@ -209,8 +226,8 @@ Esto distribuye los cargos por exceso a lo largo del mes en lugar de una gran fa
## Mejores prácticas para la gestión de costos
1. **Monitorear regularmente**: Revisa tu panel de uso frecuentemente para evitar sorpresas
2. **Establecer presupuestos**: Usa los límites del plan como guías para tu gasto
1. **Monitorear regularmente**: Revisa tu panel de uso con frecuencia para evitar sorpresas
2. **Establecer presupuestos**: Utiliza los límites del plan como guías para tu gasto
3. **Optimizar flujos de trabajo**: Revisa las ejecuciones de alto costo y optimiza los prompts o la selección de modelos
4. **Usar modelos apropiados**: Ajusta la complejidad del modelo a los requisitos de la tarea
5. **Agrupar tareas similares**: Combina múltiples solicitudes cuando sea posible para reducir la sobrecarga

View File

@@ -46,11 +46,11 @@ Busca en la web usando Exa AI. Devuelve resultados de búsqueda relevantes con t
| `type` | string | No | Tipo de búsqueda: neural, keyword, auto o fast \(predeterminado: auto\) |
| `includeDomains` | string | No | Lista separada por comas de dominios a incluir en los resultados |
| `excludeDomains` | string | No | Lista separada por comas de dominios a excluir de los resultados |
| `category` | string | No | Filtrar por categoría: company, research_paper, news_article, pdf, github, tweet, movie, song, personal_site |
| `category` | string | No | Filtrar por categoría: company, research paper, news, pdf, github, tweet, personal site, linkedin profile, financial report |
| `text` | boolean | No | Incluir contenido de texto completo en los resultados \(predeterminado: false\) |
| `highlights` | boolean | No | Incluir fragmentos destacados en los resultados \(predeterminado: false\) |
| `summary` | boolean | No | Incluir resúmenes generados por IA en los resultados \(predeterminado: false\) |
| `livecrawl` | string | No | Modo de rastreo en vivo: always, fallback o never \(predeterminado: never\) |
| `livecrawl` | string | No | Modo de rastreo en vivo: never \(predeterminado\), fallback, always, o preferred \(siempre intenta livecrawl, recurre a caché si falla\) |
| `apiKey` | string | Sí | Clave API de Exa AI |
#### Salida
@@ -67,13 +67,13 @@ Recupera el contenido de páginas web usando Exa AI. Devuelve el título, conten
| Parámetro | Tipo | Obligatorio | Descripción |
| --------- | ---- | ---------- | ----------- |
| `urls` | string | Sí | Lista separada por comas de URLs de las que recuperar contenido |
| `urls` | string | Sí | Lista separada por comas de URLs para recuperar contenido |
| `text` | boolean | No | Si es true, devuelve el texto completo de la página con la configuración predeterminada. Si es false, desactiva la devolución de texto. |
| `summaryQuery` | string | No | Consulta para guiar la generación del resumen |
| `subpages` | number | No | Número de subpáginas a rastrear desde las URLs proporcionadas |
| `subpageTarget` | string | No | Palabras clave separadas por comas para dirigirse a subpáginas específicas \(por ejemplo, "docs,tutorial,about"\) |
| `highlights` | boolean | No | Incluir fragmentos destacados en los resultados \(predeterminado: false\) |
| `livecrawl` | string | No | Modo de rastreo en vivo: always, fallback o never \(predeterminado: never\) |
| `livecrawl` | string | No | Modo de rastreo en vivo: never \(predeterminado\), fallback, always, o preferred \(siempre intenta livecrawl, recurre a caché si falla\) |
| `apiKey` | string | Sí | Clave API de Exa AI |
#### Salida
@@ -96,10 +96,9 @@ Encuentra páginas web similares a una URL determinada utilizando Exa AI. Devuel
| `includeDomains` | string | No | Lista separada por comas de dominios a incluir en los resultados |
| `excludeDomains` | string | No | Lista separada por comas de dominios a excluir de los resultados |
| `excludeSourceDomain` | boolean | No | Excluir el dominio de origen de los resultados \(predeterminado: false\) |
| `category` | string | No | Filtrar por categoría: company, research_paper, news_article, pdf, github, tweet, movie, song, personal_site |
| `highlights` | boolean | No | Incluir fragmentos destacados en los resultados \(predeterminado: false\) |
| `summary` | boolean | No | Incluir resúmenes generados por IA en los resultados \(predeterminado: false\) |
| `livecrawl` | string | No | Modo de rastreo en vivo: always, fallback o never \(predeterminado: never\) |
| `livecrawl` | string | No | Modo de rastreo en vivo: never \(predeterminado\), fallback, always o preferred \(siempre intenta rastreo en vivo, recurre a caché si falla\) |
| `apiKey` | string | Sí | Clave API de Exa AI |
#### Salida

View File

@@ -49,8 +49,8 @@ Obtener una lista de mercados de predicción de Kalshi con filtrado opcional
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de mercados y metadatos |
| `markets` | array | Array de objetos de mercado |
| `paging` | object | Cursor de paginación para obtener más resultados |
### `kalshi_get_market`
@@ -66,8 +66,7 @@ Obtener detalles de un mercado de predicción específico por ticker
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos del mercado y metadatos |
| `market` | object | Objeto de mercado con detalles |
### `kalshi_get_events`
@@ -87,8 +86,8 @@ Obtener una lista de eventos de Kalshi con filtrado opcional
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos y metadatos de eventos |
| `events` | array | Array de objetos de eventos |
| `paging` | object | Cursor de paginación para obtener más resultados |
### `kalshi_get_event`
@@ -105,8 +104,7 @@ Recuperar detalles de un evento específico por ticker
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos y metadatos del evento |
| `event` | object | Objeto de evento con detalles |
### `kalshi_get_balance`
@@ -123,8 +121,10 @@ Recuperar el saldo de tu cuenta y el valor de la cartera desde Kalshi
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos y metadatos del saldo |
| `balance` | number | Saldo de la cuenta en centavos |
| `portfolioValue` | number | Valor de la cartera en centavos |
| `balanceDollars` | number | Saldo de la cuenta en dólares |
| `portfolioValueDollars` | number | Valor de la cartera en dólares |
### `kalshi_get_positions`
@@ -146,8 +146,8 @@ Recuperar tus posiciones abiertas desde Kalshi
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de posiciones y metadatos |
| `positions` | array | Array de objetos de posición |
| `paging` | object | Cursor de paginación para obtener más resultados |
### `kalshi_get_orders`
@@ -169,8 +169,8 @@ Recupera tus órdenes de Kalshi con filtrado opcional
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de órdenes y metadatos |
| `orders` | array | Array de objetos de órdenes |
| `paging` | object | Cursor de paginación para obtener más resultados |
### `kalshi_get_order`
@@ -188,8 +188,7 @@ Recupera detalles de una orden específica por ID desde Kalshi
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de la orden |
| `order` | object | Objeto de orden con detalles |
### `kalshi_get_orderbook`
@@ -205,8 +204,7 @@ Recupera el libro de órdenes (ofertas de sí y no) para un mercado específico
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos del libro de órdenes y metadatos |
| `orderbook` | object | Libro de órdenes con ofertas y demandas de sí/no |
### `kalshi_get_trades`
@@ -223,8 +221,8 @@ Recupera operaciones recientes de todos los mercados
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de operaciones y metadatos |
| `trades` | array | Array de objetos de operaciones |
| `paging` | object | Cursor de paginación para obtener más resultados |
### `kalshi_get_candlesticks`
@@ -244,8 +242,7 @@ Obtener datos de velas OHLC para un mercado específico
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de velas y metadatos |
| `candlesticks` | array | Array de datos de velas OHLC |
### `kalshi_get_fills`
@@ -268,8 +265,8 @@ Recuperar tu portafolio
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de ejecuciones y metadatos |
| `fills` | array | Array de objetos de ejecuciones/operaciones |
| `paging` | object | Cursor de paginación para obtener más resultados |
### `kalshi_get_series_by_ticker`
@@ -285,8 +282,7 @@ Obtener detalles de una serie de mercado específica por ticker
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de la serie y metadatos |
| `series` | object | Objeto de serie con detalles |
### `kalshi_get_exchange_status`
@@ -301,8 +297,7 @@ Obtener el estado actual del intercambio Kalshi (actividad de trading y del inte
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos del estado del intercambio y metadatos |
| `status` | object | Estado del exchange con indicadores trading_active y exchange_active |
### `kalshi_create_order`
@@ -336,8 +331,7 @@ Crear una nueva orden en un mercado de predicción de Kalshi
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de la orden creada |
| `order` | object | El objeto de orden creada |
### `kalshi_cancel_order`
@@ -355,8 +349,8 @@ Cancelar una orden existente en Kalshi
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de la orden cancelada |
| `order` | object | El objeto de orden cancelada |
| `reducedBy` | number | Número de contratos cancelados |
### `kalshi_amend_order`
@@ -384,8 +378,7 @@ Modificar el precio o la cantidad de una orden existente en Kalshi
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de la orden modificada |
| `order` | object | El objeto de orden modificada |
## Notas

View File

@@ -91,11 +91,11 @@ Realiza investigaciones exhaustivas y profundas en la web utilizando Parallel AI
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `status` | string | Estado de la tarea (en ejecución, completada, fallida) |
| `status` | string | Estado de la tarea (completada, fallida) |
| `run_id` | string | ID único para esta tarea de investigación |
| `message` | string | Mensaje de estado (para tareas en ejecución) |
| `message` | string | Mensaje de estado |
| `content` | object | Resultados de la investigación (estructurados según output_schema) |
| `basis` | array | Citas y fuentes con extractos y niveles de confianza |
| `basis` | array | Citas y fuentes con razonamiento y niveles de confianza |
## Notas

View File

@@ -51,8 +51,9 @@ Genera completados utilizando los modelos de chat de Perplexity AI
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Resultados del completado de chat |
| `content` | string | Contenido de texto generado |
| `model` | string | Modelo utilizado para la generación |
| `usage` | object | Información de uso de tokens |
### `perplexity_search`
@@ -76,8 +77,7 @@ Obtén resultados de búsqueda clasificados de Perplexity
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Resultados de búsqueda |
| `results` | array | Array de resultados de búsqueda |
## Notas

View File

@@ -38,21 +38,20 @@ Obtener una lista de mercados de predicción de Polymarket con filtrado opcional
#### Entrada
| Parámetro | Tipo | Obligatorio | Descripción |
| Parámetro | Tipo | Requerido | Descripción |
| --------- | ---- | -------- | ----------- |
| `closed` | string | No | Filtrar por estado cerrado \(true/false\). Use false para mostrar solo mercados activos. |
| `order` | string | No | Campo de ordenación \(p. ej., volumeNum, liquidityNum, startDate, endDate, createdAt\) |
| `ascending` | string | No | Dirección de ordenación \(true para ascendente, false para descendente\) |
| `tagId` | string | No | Filtrar por ID de etiqueta |
| `limit` | string | No | Número de resultados por página \(recomendado: 25-50\) |
| `limit` | string | No | Número de resultados por página \(máximo 50\) |
| `offset` | string | No | Desplazamiento de paginación \(omitir esta cantidad de resultados\) |
#### Salida
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de mercados y metadatos |
| `markets` | array | Array de objetos de mercado |
### `polymarket_get_market`
@@ -69,8 +68,7 @@ Obtener detalles de un mercado de predicción específico por ID o slug
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de mercado y metadatos |
| `market` | object | Objeto de mercado con detalles |
### `polymarket_get_events`
@@ -78,21 +76,20 @@ Obtener una lista de eventos de Polymarket con filtrado opcional
#### Entrada
| Parámetro | Tipo | Obligatorio | Descripción |
| Parámetro | Tipo | Requerido | Descripción |
| --------- | ---- | -------- | ----------- |
| `closed` | string | No | Filtrar por estado cerrado \(true/false\). Use false para mostrar solo eventos activos. |
| `order` | string | No | Campo de ordenación \(p. ej., volume, liquidity, startDate, endDate, createdAt\) |
| `ascending` | string | No | Dirección de ordenación \(true para ascendente, false para descendente\) |
| `tagId` | string | No | Filtrar por ID de etiqueta |
| `limit` | string | No | Número de resultados por página \(recomendado: 25-50\) |
| `limit` | string | No | Número de resultados por página \(máximo 50\) |
| `offset` | string | No | Desplazamiento de paginación \(omitir esta cantidad de resultados\) |
#### Salida
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de eventos y metadatos |
| `events` | array | Array de objetos de eventos |
### `polymarket_get_event`
@@ -109,8 +106,7 @@ Obtener detalles de un evento específico por ID o slug
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos y metadatos del evento |
| `event` | object | Objeto de evento con detalles |
### `polymarket_get_tags`
@@ -120,15 +116,14 @@ Obtener etiquetas disponibles para filtrar mercados de Polymarket
| Parámetro | Tipo | Obligatorio | Descripción |
| --------- | ---- | -------- | ----------- |
| `limit` | string | No | Número de resultados por página \(recomendado: 25-50\) |
| `limit` | string | No | Número de resultados por página \(máx 50\) |
| `offset` | string | No | Desplazamiento de paginación \(omitir esta cantidad de resultados\) |
#### Salida
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos y metadatos de etiquetas |
| `tags` | array | Array de objetos de etiquetas con id, etiqueta y slug |
### `polymarket_search`
@@ -139,15 +134,14 @@ Buscar mercados, eventos y perfiles en Polymarket
| Parámetro | Tipo | Obligatorio | Descripción |
| --------- | ---- | -------- | ----------- |
| `query` | string | Sí | Término de búsqueda |
| `limit` | string | No | Número de resultados por página \(recomendado: 25-50\) |
| `offset` | string | No | Desplazamiento de paginación \(omitir esta cantidad de resultados\) |
| `limit` | string | No | Número de resultados por página \(máx 50\) |
| `offset` | string | No | Desplazamiento de paginación |
#### Salida
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Resultados de búsqueda y metadatos |
| `results` | object | Resultados de búsqueda que contienen arrays de mercados, eventos y perfiles |
### `polymarket_get_series`
@@ -157,7 +151,7 @@ Obtener series (grupos de mercados relacionados) de Polymarket
| Parámetro | Tipo | Obligatorio | Descripción |
| --------- | ---- | -------- | ----------- |
| `limit` | string | No | Número de resultados por página \(recomendado: 25-50\) |
| `limit` | string | No | Número de resultados por página \(máx 50\) |
| `offset` | string | No | Desplazamiento de paginación \(omitir esta cantidad de resultados\) |
#### Salida
@@ -165,7 +159,7 @@ Obtener series (grupos de mercados relacionados) de Polymarket
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos y metadatos de la serie |
| `output` | object | Datos de series y metadatos |
### `polymarket_get_series_by_id`
@@ -182,7 +176,7 @@ Recuperar una serie específica (grupo de mercado relacionado) por ID desde Poly
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos y metadatos de la serie |
| `output` | object | Datos de serie y metadatos |
### `polymarket_get_orderbook`
@@ -199,7 +193,7 @@ Recuperar el resumen del libro de órdenes para un token específico
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos y metadatos del libro de órdenes |
| `output` | object | Datos del libro de órdenes y metadatos |
### `polymarket_get_price`
@@ -217,7 +211,7 @@ Recuperar el precio de mercado para un token y lado específicos
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de precio y metadatos |
| `output` | object | Datos de precio de mercado y metadatos |
### `polymarket_get_midpoint`
@@ -234,7 +228,7 @@ Recuperar el precio medio para un token específico
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos del precio medio y metadatos |
| `output` | object | Datos de precio medio y metadatos |
### `polymarket_get_price_history`
@@ -272,7 +266,7 @@ Recuperar el último precio de operación para un token específico
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Último precio de operación y metadatos |
| `output` | object | Datos del último precio de operación y metadatos |
### `polymarket_get_spread`
@@ -289,7 +283,7 @@ Recuperar el diferencial de oferta y demanda para un token específico
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos del diferencial y metadatos |
| `output` | object | Datos del diferencial de compra-venta y metadatos |
### `polymarket_get_tick_size`
@@ -306,7 +300,7 @@ Recuperar el tamaño mínimo de tick para un token específico
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Tamaño del tick y metadatos |
| `output` | object | Datos del tamaño mínimo de tick y metadatos |
### `polymarket_get_positions`
@@ -332,19 +326,18 @@ Recuperar historial de operaciones de Polymarket
#### Entrada
| Parámetro | Tipo | Requerido | Descripción |
| Parámetro | Tipo | Obligatorio | Descripción |
| --------- | ---- | -------- | ----------- |
| `user` | string | No | Dirección de la cartera del usuario para filtrar operaciones |
| `market` | string | No | ID de mercado para filtrar operaciones |
| `limit` | string | No | Número de resultados por página \(recomendado: 25-50\) |
| `limit` | string | No | Número de resultados por página \(máximo 50\) |
| `offset` | string | No | Desplazamiento de paginación \(omitir esta cantidad de resultados\) |
#### Salida
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de operaciones y metadatos |
| `trades` | array | Array de objetos de operaciones |
## Notas

View File

@@ -343,19 +343,30 @@ Eliminar una plantilla de correo electrónico de SendGrid
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `message` | string | Mensaje de estado o éxito |
| `messageId` | string | ID del mensaje de correo electrónico \(send_mail\) |
| `to` | string | Dirección de correo electrónico del destinatario \(send_mail\) |
| `subject` | string | Asunto del correo electrónico \(send_mail, create_template_version\) |
| `id` | string | ID del recurso |
| `jobId` | string | ID del trabajo para operaciones asíncronas |
| `email` | string | Dirección de correo electrónico |
| `firstName` | string | Nombre |
| `lastName` | string | Apellido |
| `jobId` | string | ID de trabajo para operaciones asíncronas |
| `email` | string | Dirección de correo electrónico del contacto |
| `firstName` | string | Nombre del contacto |
| `lastName` | string | Apellido del contacto |
| `createdAt` | string | Marca de tiempo de creación |
| `updatedAt` | string | Marca de tiempo de última actualización |
| `listIds` | json | Array de IDs de listas a las que pertenece el contacto |
| `customFields` | json | Valores de campos personalizados |
| `contacts` | json | Array de contactos |
| `contactCount` | number | Número de contactos |
| `lists` | json | Array de listas |
| `templates` | json | Array de plantillas |
| `message` | string | Estado o mensaje de éxito |
| `name` | string | Nombre del recurso |
| `templates` | json | Array de plantillas |
| `generation` | string | Generación de plantilla |
| `versions` | json | Array de versiones de plantilla |
| `templateId` | string | ID de plantilla |
| `active` | boolean | Si la versión de la plantilla está activa |
| `htmlContent` | string | Contenido HTML |
| `plainContent` | string | Contenido de texto plano |
### `sendgrid_create_template_version`

View File

@@ -35,9 +35,9 @@ Procesa un pensamiento/instrucción proporcionado, haciéndolo disponible para l
#### Entrada
| Parámetro | Tipo | Requerido | Descripción |
| Parámetro | Tipo | Obligatorio | Descripción |
| --------- | ---- | -------- | ----------- |
| `thought` | string | Sí | El proceso de pensamiento o instrucción proporcionado por el usuario en el bloque de Paso de Pensamiento. |
| `thought` | string | Sí | Tu razonamiento interno, análisis o proceso de pensamiento. Utiliza esto para analizar el problema paso a paso antes de responder. |
#### Salida

View File

@@ -31,37 +31,30 @@ Integra Translate en el flujo de trabajo. Puede traducir texto a cualquier idiom
## Herramientas
### `openai_chat`
### `llm_chat`
Envía una solicitud de completado de chat a cualquier proveedor de LLM compatible
#### Entrada
| Parámetro | Tipo | Requerido | Descripción |
| Parámetro | Tipo | Obligatorio | Descripción |
| --------- | ---- | -------- | ----------- |
| `model` | string | Sí | El modelo a utilizar \(p. ej., gpt-4o, claude-sonnet-4-5, gemini-2.0-flash\) |
| `systemPrompt` | string | No | Prompt del sistema para establecer el comportamiento del asistente |
| `context` | string | Sí | El mensaje del usuario o contexto para enviar al modelo |
| `apiKey` | string | No | Clave API para el proveedor \(usa la clave de la plataforma si no se proporciona para modelos alojados\) |
| `temperature` | number | No | Temperatura para la generación de respuestas \(0-2\) |
| `maxTokens` | number | No | Tokens máximos en la respuesta |
| `azureEndpoint` | string | No | URL del endpoint de Azure OpenAI |
| `azureApiVersion` | string | No | Versión de la API de Azure OpenAI |
#### Salida
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `content` | string | Texto traducido |
| `model` | string | Modelo utilizado |
| `tokens` | json | Uso de tokens |
### `anthropic_chat`
### `google_chat`
#### Entrada
| Parámetro | Tipo | Requerido | Descripción |
| --------- | ---- | -------- | ----------- |
#### Salida
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `content` | string | Texto traducido |
| `model` | string | Modelo utilizado |
| `tokens` | json | Uso de tokens |
| `content` | string | El contenido de la respuesta generada |
| `model` | string | El modelo utilizado para la generación |
| `tokens` | object | Información de uso de tokens |
## Notas

View File

@@ -251,12 +251,12 @@ Subir un archivo multimedia (imagen, video, documento) a WordPress.com
| Parámetro | Tipo | Obligatorio | Descripción |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Sí | ID del sitio o dominio de WordPress.com \(p. ej., 12345678 o misitio.wordpress.com\) |
| `file` | string | | Datos del archivo codificados en Base64 o URL para obtener el archivo |
| `filename` | string | | Nombre del archivo con extensión \(p. ej., imagen.jpg\) |
| `title` | string | No | Título del archivo multimedia |
| `caption` | string | No | Leyenda del archivo multimedia |
| `file` | file | No | Archivo para subir \(objeto UserFile\) |
| `filename` | string | No | Anulación opcional del nombre de archivo \(p. ej., imagen.jpg\) |
| `title` | string | No | Título del medio |
| `caption` | string | No | Leyenda del medio |
| `altText` | string | No | Texto alternativo para accesibilidad |
| `description` | string | No | Descripción del archivo multimedia |
| `description` | string | No | Descripción del medio |
#### Salida

View File

@@ -170,28 +170,9 @@ Obtener videos de una lista de reproducción de YouTube.
| --------- | ---- | ----------- |
| `items` | array | Array de videos en la lista de reproducción |
### `youtube_related_videos`
Encuentra videos relacionados con un video específico de YouTube.
#### Entrada
| Parámetro | Tipo | Obligatorio | Descripción |
| --------- | ---- | ----------- | ----------- |
| `videoId` | string | Sí | ID del video de YouTube para encontrar videos relacionados |
| `maxResults` | number | No | Número máximo de videos relacionados a devolver \(1-50\) |
| `pageToken` | string | No | Token de página para paginación |
| `apiKey` | string | Sí | Clave API de YouTube |
#### Salida
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `items` | array | Array de videos relacionados |
### `youtube_comments`
Obtiene comentarios de un video de YouTube.
Obtener comentarios de un video de YouTube.
#### Entrada

View File

@@ -73,8 +73,9 @@ Recupera una lista de tickets de Zendesk con filtrado opcional
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos y metadatos de los tickets |
| `tickets` | array | Array de objetos de ticket |
| `paging` | object | Información de paginación |
| `metadata` | object | Metadatos de la operación |
### `zendesk_get_ticket`
@@ -93,8 +94,8 @@ Obtener un solo ticket por ID desde Zendesk
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos del ticket |
| `ticket` | object | Objeto de ticket |
| `metadata` | object | Metadatos de la operación |
### `zendesk_create_ticket`
@@ -122,8 +123,8 @@ Crear un nuevo ticket en Zendesk con soporte para campos personalizados
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos del ticket creado |
| `ticket` | object | Objeto de ticket creado |
| `metadata` | object | Metadatos de la operación |
### `zendesk_create_tickets_bulk`
@@ -142,8 +143,8 @@ Crear múltiples tickets en Zendesk a la vez (máximo 100)
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Estado del trabajo de creación masiva |
| `jobStatus` | object | Objeto de estado del trabajo |
| `metadata` | object | Metadatos de la operación |
### `zendesk_update_ticket`
@@ -171,8 +172,8 @@ Actualizar un ticket existente en Zendesk con soporte para campos personalizados
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos actualizados del ticket |
| `ticket` | object | Objeto de ticket actualizado |
| `metadata` | object | Metadatos de la operación |
### `zendesk_update_tickets_bulk`
@@ -196,8 +197,8 @@ Actualizar múltiples tickets en Zendesk a la vez (máximo 100)
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Estado del trabajo de actualización masiva |
| `jobStatus` | object | Objeto de estado del trabajo |
| `metadata` | object | Metadatos de la operación |
### `zendesk_delete_ticket`
@@ -216,8 +217,8 @@ Eliminar un ticket de Zendesk
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Confirmación de eliminación |
| `deleted` | boolean | Éxito de la eliminación |
| `metadata` | object | Metadatos de la operación |
### `zendesk_merge_tickets`
@@ -238,8 +239,8 @@ Fusionar múltiples tickets en un ticket objetivo
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Estado del trabajo de fusión |
| `jobStatus` | object | Objeto de estado del trabajo |
| `metadata` | object | Metadatos de la operación |
### `zendesk_get_users`
@@ -261,8 +262,9 @@ Recuperar una lista de usuarios de Zendesk con filtrado opcional
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de usuarios y metadatos |
| `users` | array | Array de objetos de usuario |
| `paging` | object | Información de paginación |
| `metadata` | object | Metadatos de la operación |
### `zendesk_get_user`
@@ -281,8 +283,8 @@ Obtener un solo usuario por ID desde Zendesk
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos del usuario |
| `user` | object | Objeto de usuario |
| `metadata` | object | Metadatos de la operación |
### `zendesk_get_current_user`
@@ -300,8 +302,8 @@ Obtener el usuario actualmente autenticado desde Zendesk
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos del usuario actual |
| `user` | object | Objeto del usuario actual |
| `metadata` | object | Metadatos de la operación |
### `zendesk_search_users`
@@ -323,8 +325,9 @@ Buscar usuarios en Zendesk usando una cadena de consulta
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Resultados de búsqueda de usuarios |
| `users` | array | Array de objetos de usuario |
| `paging` | object | Información de paginación |
| `metadata` | object | Metadatos de la operación |
### `zendesk_create_user`
@@ -350,8 +353,8 @@ Crear un nuevo usuario en Zendesk
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos del usuario creado |
| `user` | object | Objeto del usuario creado |
| `metadata` | object | Metadatos de la operación |
### `zendesk_create_users_bulk`
@@ -370,8 +373,8 @@ Crear múltiples usuarios en Zendesk mediante importación masiva
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Estado del trabajo de creación masiva |
| `jobStatus` | object | Objeto de estado del trabajo |
| `metadata` | object | Metadatos de la operación |
### `zendesk_update_user`
@@ -398,8 +401,8 @@ Actualizar un usuario existente en Zendesk
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos actualizados del usuario |
| `user` | object | Objeto del usuario actualizado |
| `metadata` | object | Metadatos de la operación |
### `zendesk_update_users_bulk`
@@ -418,8 +421,8 @@ Actualizar múltiples usuarios en Zendesk usando actualización masiva
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Estado del trabajo de actualización masiva |
| `jobStatus` | object | Objeto de estado del trabajo |
| `metadata` | object | Metadatos de la operación |
### `zendesk_delete_user`
@@ -438,8 +441,8 @@ Eliminar un usuario de Zendesk
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos del usuario eliminado |
| `deleted` | boolean | Éxito de eliminación |
| `metadata` | object | Metadatos de la operación |
### `zendesk_get_organizations`
@@ -459,8 +462,9 @@ Obtener una lista de organizaciones de Zendesk
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos y metadatos de las organizaciones |
| `organizations` | array | Array de objetos de organización |
| `paging` | object | Información de paginación |
| `metadata` | object | Metadatos de la operación |
### `zendesk_get_organization`
@@ -479,8 +483,8 @@ Obtener una única organización por ID desde Zendesk
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de la organización |
| `organization` | object | Objeto de organización |
| `metadata` | object | Metadatos de la operación |
### `zendesk_autocomplete_organizations`
@@ -501,8 +505,9 @@ Autocompletar organizaciones en Zendesk por prefijo de nombre (para coincidencia
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Resultados de búsqueda de organizaciones |
| `organizations` | array | Array de objetos de organización |
| `paging` | object | Información de paginación |
| `metadata` | object | Metadatos de la operación |
### `zendesk_create_organization`
@@ -526,8 +531,8 @@ Crear una nueva organización en Zendesk
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de la organización creada |
| `organization` | object | Objeto de organización creada |
| `metadata` | object | Metadatos de la operación |
### `zendesk_create_organizations_bulk`
@@ -546,8 +551,8 @@ Crear múltiples organizaciones en Zendesk mediante importación masiva
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Estado del trabajo de creación masiva |
| `jobStatus` | object | Objeto de estado del trabajo |
| `metadata` | object | Metadatos de la operación |
### `zendesk_update_organization`
@@ -572,8 +577,8 @@ Actualizar una organización existente en Zendesk
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de la organización actualizada |
| `organization` | object | Objeto de organización actualizada |
| `metadata` | object | Metadatos de la operación |
### `zendesk_delete_organization`
@@ -592,8 +597,8 @@ Eliminar una organización de Zendesk
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Datos de la organización eliminada |
| `deleted` | boolean | Éxito de eliminación |
| `metadata` | object | Metadatos de la operación |
### `zendesk_search`
@@ -616,8 +621,9 @@ Búsqueda unificada a través de tickets, usuarios y organizaciones en Zendesk
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Resultados de la búsqueda |
| `results` | array | Array de objetos de resultado |
| `paging` | object | Información de paginación |
| `metadata` | object | Metadatos de la operación |
### `zendesk_search_count`
@@ -636,8 +642,8 @@ Contar el número de resultados de búsqueda que coinciden con una consulta en Z
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `success` | boolean | Estado de éxito de la operación |
| `output` | object | Resultado del recuento de búsqueda |
| `count` | number | Número de resultados coincidentes |
| `metadata` | object | Metadatos de la operación |
## Notas

View File

@@ -27,14 +27,16 @@ Toutes les réponses API incluent des informations sur vos limites d'exécution
"limits": {
"workflowExecutionRateLimit": {
"sync": {
"limit": 60, // Max sync workflow executions per minute
"remaining": 58, // Remaining sync workflow executions
"resetAt": "..." // When the window resets
"requestsPerMinute": 60, // Sustained rate limit per minute
"maxBurst": 120, // Maximum burst capacity
"remaining": 118, // Current tokens available (up to maxBurst)
"resetAt": "..." // When tokens next refill
},
"async": {
"limit": 60, // Max async workflow executions per minute
"remaining": 59, // Remaining async workflow executions
"resetAt": "..." // When the window resets
"requestsPerMinute": 200, // Sustained rate limit per minute
"maxBurst": 400, // Maximum burst capacity
"remaining": 398, // Current tokens available
"resetAt": "..." // When tokens next refill
}
},
"usage": {
@@ -46,7 +48,7 @@ Toutes les réponses API incluent des informations sur vos limites d'exécution
}
```
**Remarque :** Les limites de débit dans le corps de la réponse concernent les exécutions de workflow. Les limites de débit pour l'appel de ce point de terminaison API se trouvent dans les en-têtes de réponse (`X-RateLimit-*`).
**Remarque :** les limites de débit utilisent un algorithme de seau à jetons. `remaining` peut dépasser `requestsPerMinute` jusqu'à `maxBurst` lorsque vous n'avez pas utilisé récemment votre allocation complète, permettant ainsi un trafic en rafale. Les limites de débit dans le corps de la réponse concernent les exécutions de workflow. Les limites de débit pour appeler ce point de terminaison API se trouvent dans les en-têtes de réponse (`X-RateLimit-*`).
### Interrogation des journaux
@@ -110,13 +112,15 @@ Interrogez les journaux d'exécution des workflows avec de nombreuses options de
"limits": {
"workflowExecutionRateLimit": {
"sync": {
"limit": 60,
"remaining": 58,
"requestsPerMinute": 60,
"maxBurst": 120,
"remaining": 118,
"resetAt": "2025-01-01T12:35:56.789Z"
},
"async": {
"limit": 60,
"remaining": 59,
"requestsPerMinute": 200,
"maxBurst": 400,
"remaining": 398,
"resetAt": "2025-01-01T12:35:56.789Z"
}
},
@@ -190,13 +194,15 @@ Récupérer des informations détaillées sur une entrée de journal spécifique
"limits": {
"workflowExecutionRateLimit": {
"sync": {
"limit": 60,
"remaining": 58,
"requestsPerMinute": 60,
"maxBurst": 120,
"remaining": 118,
"resetAt": "2025-01-01T12:35:56.789Z"
},
"async": {
"limit": 60,
"remaining": 59,
"requestsPerMinute": 200,
"maxBurst": 400,
"remaining": 398,
"resetAt": "2025-01-01T12:35:56.789Z"
}
},
@@ -482,19 +488,27 @@ Les livraisons de webhook échouées sont réessayées avec un backoff exponenti
## Limitation de débit
L'API implémente une limitation de débit pour garantir une utilisation équitable :
L'API utilise un **algorithme de seau à jetons** pour limiter le débit, offrant une utilisation équitable tout en permettant des pics de trafic :
- **Plan gratuit** : 10 requêtes par minute
- **Plan Pro** : 30 requêtes par minute
- **Plan Équipe** : 60 requêtes par minute
- **Plan Entreprise** : Limites personnalisées
| Forfait | Requêtes/minute | Capacité de rafale |
|------|-----------------|----------------|
| Gratuit | 10 | 20 |
| Pro | 30 | 60 |
| Équipe | 60 | 120 |
| Entreprise | 120 | 240 |
Les informations de limitation de débit sont incluses dans les en-têtes de réponse :
- `X-RateLimit-Limit` : Nombre maximum de requêtes par fenêtre
- `X-RateLimit-Remaining` : Requêtes restantes dans la fenêtre actuelle
- `X-RateLimit-Reset` : Horodatage ISO indiquant quand la fenêtre se réinitialise
**Comment ça fonctionne :**
- Les jetons se rechargent au rythme de `requestsPerMinute`
- Vous pouvez accumuler jusqu'à `maxBurst` jetons en période d'inactivité
- Chaque requête consomme 1 jeton
- La capacité de rafale permet de gérer les pics de trafic
## Exemple : Polling pour nouveaux logs
Les informations sur les limites de débit sont incluses dans les en-têtes de réponse :
- `X-RateLimit-Limit` : requêtes par minute (taux de recharge)
- `X-RateLimit-Remaining` : jetons actuellement disponibles
- `X-RateLimit-Reset` : horodatage ISO indiquant quand les jetons seront rechargés
## Exemple : interrogation pour de nouveaux journaux
```javascript
let cursor = null;
@@ -541,7 +555,7 @@ async function pollLogs() {
setInterval(pollLogs, 30000);
```
## Exemple : Traitement des webhooks
## Exemple : traitement des webhooks
```javascript
import express from 'express';

View File

@@ -147,8 +147,20 @@ curl -X GET -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" htt
{
"success": true,
"rateLimit": {
"sync": { "isLimited": false, "limit": 10, "remaining": 10, "resetAt": "2025-09-08T22:51:55.999Z" },
"async": { "isLimited": false, "limit": 50, "remaining": 50, "resetAt": "2025-09-08T22:51:56.155Z" },
"sync": {
"isLimited": false,
"requestsPerMinute": 25,
"maxBurst": 50,
"remaining": 50,
"resetAt": "2025-09-08T22:51:55.999Z"
},
"async": {
"isLimited": false,
"requestsPerMinute": 200,
"maxBurst": 400,
"remaining": 400,
"resetAt": "2025-09-08T22:51:56.155Z"
},
"authType": "api"
},
"usage": {
@@ -159,6 +171,11 @@ curl -X GET -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" htt
}
```
**Champs de limite de débit :**
- `requestsPerMinute` : limite de débit soutenu (les jetons se rechargent à ce rythme)
- `maxBurst` : nombre maximum de jetons que vous pouvez accumuler (capacité de rafale)
- `remaining` : jetons actuellement disponibles (peut aller jusqu'à `maxBurst`)
**Champs de réponse :**
- `currentPeriodCost` reflète l'utilisation dans la période de facturation actuelle
- `limit` est dérivé des limites individuelles (Gratuit/Pro) ou des limites mutualisées de l'organisation (Équipe/Entreprise)
@@ -188,7 +205,7 @@ Sim utilise un modèle de facturation **abonnement de base + dépassement** :
- Exemple : 35 $ d'utilisation = 20 $ (abonnement) + 15 $ (dépassement)
**Forfait Équipe (40 $/siège/mois) :**
- Utilisation mutualisée entre tous les membres de l'équipe
- Utilisation mutualisée pour tous les membres de l'équipe
- Dépassement calculé à partir de l'utilisation totale de l'équipe
- Le propriétaire de l'organisation reçoit une seule facture

View File

@@ -42,15 +42,15 @@ Recherchez sur le web en utilisant Exa AI. Renvoie des résultats de recherche p
| --------- | ---- | ---------- | ----------- |
| `query` | chaîne | Oui | La requête de recherche à exécuter |
| `numResults` | nombre | Non | Nombre de résultats à retourner \(par défaut : 10, max : 25\) |
| `useAutoprompt` | booléen | Non | Utiliser l'autoprompt pour améliorer la requête \(par défaut : false\) |
| `useAutoprompt` | booléen | Non | Utiliser ou non l'autoprompt pour améliorer la requête \(par défaut : false\) |
| `type` | chaîne | Non | Type de recherche : neural, keyword, auto ou fast \(par défaut : auto\) |
| `includeDomains` | chaîne | Non | Liste de domaines à inclure dans les résultats, séparés par des virgules |
| `excludeDomains` | chaîne | Non | Liste de domaines à exclure des résultats, séparés par des virgules |
| `category` | chaîne | Non | Filtrer par catégorie : company, research_paper, news_article, pdf, github, tweet, movie, song, personal_site |
| `category` | chaîne | Non | Filtrer par catégorie : company, research paper, news, pdf, github, tweet, personal site, linkedin profile, financial report |
| `text` | booléen | Non | Inclure le contenu textuel complet dans les résultats \(par défaut : false\) |
| `highlights` | booléen | Non | Inclure des extraits surlignés dans les résultats \(par défaut : false\) |
| `summary` | booléen | Non | Inclure des résumés générés par IA dans les résultats \(par défaut : false\) |
| `livecrawl` | chaîne | Non | Mode d'exploration en direct : always, fallback, ou never \(par défaut : never\) |
| `livecrawl` | chaîne | Non | Mode d'exploration en direct : never \(par défaut\), fallback, always, ou preferred \(toujours essayer l'exploration en direct, revenir au cache en cas d'échec\) |
| `apiKey` | chaîne | Oui | Clé API Exa AI |
#### Sortie
@@ -67,13 +67,13 @@ Récupérer le contenu des pages web en utilisant Exa AI. Renvoie le titre, le c
| Paramètre | Type | Obligatoire | Description |
| --------- | ---- | ---------- | ----------- |
| `urls` | chaîne | Oui | Liste d'URLs séparées par des virgules pour récupérer du contenu |
| `text` | booléen | Non | Si vrai, renvoie le texte complet de la page avec les paramètres par défaut. Si faux, désactive le retour de texte. |
| `urls` | chaîne | Oui | Liste d'URLs séparées par des virgules pour récupérer le contenu |
| `text` | booléen | Non | Si true, renvoie le texte complet de la page avec les paramètres par défaut. Si false, désactive le retour du texte. |
| `summaryQuery` | chaîne | Non | Requête pour guider la génération du résumé |
| `subpages` | nombre | Non | Nombre de sous-pages à explorer à partir des URLs fournies |
| `subpageTarget` | chaîne | Non | Mots-clés séparés par des virgules pour cibler des sous-pages spécifiques \(ex. : "docs,tutorial,about"\) |
| `subpageTarget` | chaîne | Non | Mots-clés séparés par des virgules pour cibler des sous-pages spécifiques \(par exemple, "docs,tutorial,about"\) |
| `highlights` | booléen | Non | Inclure des extraits surlignés dans les résultats \(par défaut : false\) |
| `livecrawl` | chaîne | Non | Mode d'exploration en direct : always, fallback, ou never \(par défaut : never\) |
| `livecrawl` | chaîne | Non | Mode d'exploration en direct : never \(par défaut\), fallback, always, ou preferred \(toujours essayer l'exploration en direct, revenir au cache en cas d'échec\) |
| `apiKey` | chaîne | Oui | Clé API Exa AI |
#### Sortie
@@ -96,10 +96,9 @@ Trouvez des pages web similaires à une URL donnée en utilisant Exa AI. Renvoie
| `includeDomains` | chaîne | Non | Liste de domaines à inclure dans les résultats, séparés par des virgules |
| `excludeDomains` | chaîne | Non | Liste de domaines à exclure des résultats, séparés par des virgules |
| `excludeSourceDomain` | booléen | Non | Exclure le domaine source des résultats \(par défaut : false\) |
| `category` | chaîne | Non | Filtrer par catégorie : company, research_paper, news_article, pdf, github, tweet, movie, song, personal_site |
| `highlights` | booléen | Non | Inclure des extraits surlignés dans les résultats \(par défaut : false\) |
| `summary` | booléen | Non | Inclure des résumés générés par IA dans les résultats \(par défaut : false\) |
| `livecrawl` | chaîne | Non | Mode d'exploration en direct : always, fallback, ou never \(par défaut : never\) |
| `livecrawl` | chaîne | Non | Mode d'exploration en direct : never \(par défaut\), fallback, always, ou preferred \(toujours essayer l'exploration en direct, revenir au cache en cas d'échec\) |
| `apiKey` | chaîne | Oui | Clé API Exa AI |
#### Sortie

View File

@@ -49,8 +49,8 @@ Récupérer une liste de marchés prédictifs de Kalshi avec filtrage optionnel
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | booléen | Statut de réussite de l'opération |
| `output` | objet | Données des marchés et métadonnées |
| `markets` | array | Tableau d'objets de marché |
| `paging` | object | Curseur de pagination pour récupérer plus de résultats |
### `kalshi_get_market`
@@ -66,8 +66,7 @@ Récupérer les détails d'un marché prédictif spécifique par code
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | booléen | Statut de réussite de l'opération |
| `output` | objet | Données du marché et métadonnées |
| `market` | object | Objet de marché avec détails |
### `kalshi_get_events`
@@ -87,8 +86,8 @@ Récupérer une liste d'événements de Kalshi avec filtrage optionnel
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données et métadonnées des événements |
| `events` | array | Tableau d'objets d'événement |
| `paging` | object | Curseur de pagination pour récupérer plus de résultats |
### `kalshi_get_event`
@@ -105,8 +104,7 @@ Récupérer les détails d'un événement spécifique par ticker
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données et métadonnées de l'événement |
| `event` | object | Objet d'événement avec détails |
### `kalshi_get_balance`
@@ -123,8 +121,10 @@ Récupérer le solde de votre compte et la valeur de votre portefeuille depuis K
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données et métadonnées du solde |
| `balance` | number | Solde du compte en centimes |
| `portfolioValue` | number | Valeur du portefeuille en centimes |
| `balanceDollars` | number | Solde du compte en dollars |
| `portfolioValueDollars` | number | Valeur du portefeuille en dollars |
### `kalshi_get_positions`
@@ -146,8 +146,8 @@ Récupérer vos positions ouvertes depuis Kalshi
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données de positions et métadonnées |
| `positions` | array | Tableau d'objets de position |
| `paging` | object | Curseur de pagination pour récupérer plus de résultats |
### `kalshi_get_orders`
@@ -169,8 +169,8 @@ Récupérez vos ordres depuis Kalshi avec filtrage optionnel
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données des ordres et métadonnées |
| `orders` | array | Tableau d'objets d'ordre |
| `paging` | object | Curseur de pagination pour récupérer plus de résultats |
### `kalshi_get_order`
@@ -188,8 +188,7 @@ Récupérer les détails d'un ordre spécifique par ID depuis Kalshi
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données de l'ordre |
| `order` | object | Objet d'ordre avec détails |
### `kalshi_get_orderbook`
@@ -205,8 +204,7 @@ Récupérer le carnet d'ordres (offres oui et non) pour un marché spécifique
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données du carnet d'ordres et métadonnées |
| `orderbook` | objet | Carnet d'ordres avec offres et demandes oui/non |
### `kalshi_get_trades`
@@ -223,8 +221,8 @@ Récupérer les transactions récentes sur tous les marchés
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données des transactions et métadonnées |
| `trades` | tableau | Tableau d'objets de transactions |
| `paging` | objet | Curseur de pagination pour récupérer plus de résultats |
### `kalshi_get_candlesticks`
@@ -244,8 +242,7 @@ Récupérer les données de chandeliers OHLC pour un marché spécifique
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données de chandeliers et métadonnées |
| `candlesticks` | tableau | Tableau de données de chandeliers OHLC |
### `kalshi_get_fills`
@@ -268,8 +265,8 @@ Récupérer votre portefeuille
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données et métadonnées des exécutions |
| `fills` | tableau | Tableau d'objets d'exécutions/transactions |
| `paging` | objet | Curseur de pagination pour récupérer plus de résultats |
### `kalshi_get_series_by_ticker`
@@ -285,8 +282,7 @@ Récupérer les détails d'une série de marché spécifique par ticker
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données et métadonnées de la série |
| `series` | objet | Objet de série avec détails |
### `kalshi_get_exchange_status`
@@ -301,8 +297,7 @@ Récupérer le statut actuel de la plateforme d'échange Kalshi (activité de tr
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données et métadonnées du statut de l'échange |
| `status` | objet | Statut de l'échange avec indicateurs trading_active et exchange_active |
### `kalshi_create_order`
@@ -336,8 +331,7 @@ Créer un nouvel ordre sur un marché de prédiction Kalshi
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données de l'ordre créé |
| `order` | objet | L'objet de l'ordre créé |
### `kalshi_cancel_order`
@@ -355,8 +349,8 @@ Annuler un ordre existant sur Kalshi
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données de l'ordre annulé |
| `order` | objet | L'objet de l'ordre annulé |
| `reducedBy` | nombre | Nombre de contrats annulés |
### `kalshi_amend_order`
@@ -384,8 +378,7 @@ Modifier le prix ou la quantité d'un ordre existant sur Kalshi
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données de l'ordre modifié |
| `order` | objet | L'objet de l'ordre modifié |
## Notes

View File

@@ -91,11 +91,11 @@ Menez des recherches approfondies complètes sur le web en utilisant Parallel AI
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `status` | string | Statut de la tâche (en cours, terminée, échouée) |
| `status` | string | Statut de la tâche (terminée, échouée) |
| `run_id` | string | ID unique pour cette tâche de recherche |
| `message` | string | Message de statut (pour les tâches en cours) |
| `message` | string | Message de statut |
| `content` | object | Résultats de recherche (structurés selon output_schema) |
| `basis` | array | Citations et sources avec extraits et niveaux de confiance |
| `basis` | array | Citations et sources avec raisonnement et niveaux de confiance |
## Notes

View File

@@ -51,8 +51,9 @@ Générez des compléments à l'aide des modèles de chat Perplexity AI
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Résultats du complément de chat |
| `content` | string | Contenu de texte généré |
| `model` | string | Modèle utilisé pour la génération |
| `usage` | object | Informations sur l'utilisation des tokens |
### `perplexity_search`
@@ -76,8 +77,7 @@ Obtenez des résultats de recherche classés depuis Perplexity
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Résultats de recherche |
| `results` | array | Tableau dessultats de recherche |
## Notes

View File

@@ -40,19 +40,18 @@ Récupérer une liste des marchés prédictifs de Polymarket avec filtrage optio
| Paramètre | Type | Obligatoire | Description |
| --------- | ---- | ---------- | ----------- |
| `closed` | string | Non | Filtrer par statut fermé \(true/false\). Utilisez false pour les marchés actifs uniquement. |
| `order` | string | Non | Champ de tri \(par exemple, volumeNum, liquidityNum, startDate, endDate, createdAt\) |
| `closed` | string | Non | Filtrer par statut fermé \(true/false\). Utiliser false pour les marchés actifs uniquement. |
| `order` | string | Non | Champ de tri \(ex. volumeNum, liquidityNum, startDate, endDate, createdAt\) |
| `ascending` | string | Non | Direction de tri \(true pour ascendant, false pour descendant\) |
| `tagId` | string | Non | Filtrer par ID de tag |
| `limit` | string | Non | Nombre de résultats par page \(recommandé : 25-50\) |
| `limit` | string | Non | Nombre de résultats par page \(max 50\) |
| `offset` | string | Non | Décalage de pagination \(ignorer ce nombre de résultats\) |
#### Sortie
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | booléen | Statut de réussite de l'opération |
| `output` | objet | Données des marchés et métadonnées |
| `markets` | array | Tableau d'objets de marché |
### `polymarket_get_market`
@@ -69,8 +68,7 @@ Récupérer les détails d'un marché prédictif spécifique par ID ou slug
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données de marché et métadonnées |
| `market` | object | Objet de marché avec détails |
### `polymarket_get_events`
@@ -80,19 +78,18 @@ Récupérer une liste d'événements de Polymarket avec filtrage optionnel
| Paramètre | Type | Obligatoire | Description |
| --------- | ---- | ---------- | ----------- |
| `closed` | string | Non | Filtrer par statut fermé \(true/false\). Utilisez false pour les événements actifs uniquement. |
| `order` | string | Non | Champ de tri \(par exemple, volume, liquidity, startDate, endDate, createdAt\) |
| `closed` | string | Non | Filtrer par statut fermé \(true/false\). Utiliser false pour les événements actifs uniquement. |
| `order` | string | Non | Champ de tri \(ex. volume, liquidity, startDate, endDate, createdAt\) |
| `ascending` | string | Non | Direction de tri \(true pour ascendant, false pour descendant\) |
| `tagId` | string | Non | Filtrer par ID de tag |
| `limit` | string | Non | Nombre de résultats par page \(recommandé : 25-50\) |
| `limit` | string | Non | Nombre de résultats par page \(max 50\) |
| `offset` | string | Non | Décalage de pagination \(ignorer ce nombre de résultats\) |
#### Sortie
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données d'événements et métadonnées |
| `events` | array | Tableau d'objets d'événements |
### `polymarket_get_event`
@@ -109,8 +106,7 @@ Récupérer les détails d'un événement spécifique par ID ou slug
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données et métadonnées de l'événement |
| `event` | object | Objet d'événement avec détails |
### `polymarket_get_tags`
@@ -119,16 +115,15 @@ Récupérer les tags disponibles pour filtrer les marchés sur Polymarket
#### Entrée
| Paramètre | Type | Obligatoire | Description |
| --------- | ---- | -------- | ----------- |
| `limit` | string | Non | Nombre de résultats par page \(recommandé : 25-50\) |
| --------- | ---- | ---------- | ----------- |
| `limit` | string | Non | Nombre de résultats par page \(max 50\) |
| `offset` | string | Non | Décalage de pagination \(ignorer ce nombre de résultats\) |
#### Sortie
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données et métadonnées des tags |
| `tags` | array | Tableau d'objets de tags avec id, label et slug |
### `polymarket_search`
@@ -137,17 +132,16 @@ Rechercher des marchés, des événements et des profils sur Polymarket
#### Entrée
| Paramètre | Type | Obligatoire | Description |
| --------- | ---- | -------- | ----------- |
| --------- | ---- | ---------- | ----------- |
| `query` | string | Oui | Terme de recherche |
| `limit` | string | Non | Nombre de résultats par page \(recommandé : 25-50\) |
| `offset` | string | Non | Décalage de pagination \(ignorer ce nombre de résultats\) |
| `limit` | string | Non | Nombre de résultats par page \(max 50\) |
| `offset` | string | Non | Décalage de pagination |
#### Sortie
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Résultats de recherche et métadonnées |
| `results` | object | Résultats de recherche contenant des tableaux de marchés, d'événements et de profils |
### `polymarket_get_series`
@@ -156,8 +150,8 @@ Récupérer des séries (groupes de marchés liés) depuis Polymarket
#### Entrée
| Paramètre | Type | Obligatoire | Description |
| --------- | ---- | -------- | ----------- |
| `limit` | string | Non | Nombre de résultats par page \(recommandé : 25-50\) |
| --------- | ---- | ---------- | ----------- |
| `limit` | string | Non | Nombre de résultats par page \(max 50\) |
| `offset` | string | Non | Décalage de pagination \(ignorer ce nombre de résultats\) |
#### Sortie
@@ -165,7 +159,7 @@ Récupérer des séries (groupes de marchés liés) depuis Polymarket
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données et métadonnées de la série |
| `output` | object | Données des séries et métadonnées |
### `polymarket_get_series_by_id`
@@ -182,7 +176,7 @@ Récupérer une série spécifique (groupe de marché associé) par ID depuis Po
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données et métadonnées de la série |
| `output` | object | Données de série et métadonnées |
### `polymarket_get_orderbook`
@@ -199,7 +193,7 @@ Récupérer le résumé du carnet d'ordres pour un jeton spécifique
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données et métadonnées du carnet d'ordres |
| `output` | object | Données du carnet d'ordres et métadonnées |
### `polymarket_get_price`
@@ -217,7 +211,7 @@ Récupérer le prix du marché pour un jeton et un côté spécifiques
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données de prix et métadonnées |
| `output` | object | Données de prix du marché et métadonnées |
### `polymarket_get_midpoint`
@@ -255,7 +249,7 @@ Récupérer les données historiques de prix pour un jeton de marché spécifiqu
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données d'historique de prix et métadonnées |
| `output` | object | Données d'historique des prix et métadonnées |
### `polymarket_get_last_trade_price`
@@ -272,7 +266,7 @@ Récupérer le dernier prix de transaction pour un jeton spécifique
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Dernier prix de transaction et métadonnées |
| `output` | object | Données du dernier prix d'échange et métadonnées |
### `polymarket_get_spread`
@@ -289,7 +283,7 @@ Récupérer l'écart entre l'offre et la demande pour un jeton spécifique
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données d'écart et métadonnées |
| `output` | object | Données d'écart achat-vente et métadonnées |
### `polymarket_get_tick_size`
@@ -306,7 +300,7 @@ Récupérer la taille minimale du tick pour un jeton spécifique
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Taille du tick et métadonnées |
| `output` | object | Données de taille minimale de tick et métadonnées |
### `polymarket_get_positions`
@@ -336,15 +330,14 @@ Récupérer l'historique des transactions depuis Polymarket
| --------- | ---- | ---------- | ----------- |
| `user` | string | Non | Adresse du portefeuille de l'utilisateur pour filtrer les transactions |
| `market` | string | Non | ID de marché pour filtrer les transactions |
| `limit` | string | Non | Nombre de résultats par page \(recommandé : 25-50\) |
| `limit` | string | Non | Nombre de résultats par page \(max 50\) |
| `offset` | string | Non | Décalage de pagination \(ignorer ce nombre de résultats\) |
#### Sortie
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données des transactions et métadonnées |
| `trades` | array | Tableau d'objets de transactions |
## Notes

View File

@@ -342,20 +342,31 @@ Supprimer un modèle d'e-mail de SendGrid
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | booléen | Statut de réussite de l'opération |
| `messageId` | chaîne | ID du message e-mail \(send_mail\) |
| `id` | chaîne | ID de la ressource |
| `jobId` | chaîne | ID de tâche pour les opérations asynchrones |
| `email` | chaîne | Adresse e-mail |
| `firstName` | chaîne | Prénom |
| `lastName` | chaîne | Nom de famille |
| `success` | boolean | Statut de réussite de l'opération |
| `message` | string | Message d'état ou de réussite |
| `messageId` | string | ID du message e-mail \(send_mail\) |
| `to` | string | Adresse e-mail du destinataire \(send_mail\) |
| `subject` | string | Objet de l'e-mail \(send_mail, create_template_version\) |
| `id` | string | ID de la ressource |
| `jobId` | string | ID de tâche pour les opérations asynchrones |
| `email` | string | Adresse e-mail du contact |
| `firstName` | string | Prénom du contact |
| `lastName` | string | Nom de famille du contact |
| `createdAt` | string | Horodatage de création |
| `updatedAt` | string | Horodatage de dernière mise à jour |
| `listIds` | json | Tableau des ID de listes auxquelles le contact appartient |
| `customFields` | json | Valeurs des champs personnalisés |
| `contacts` | json | Tableau de contacts |
| `contactCount` | nombre | Nombre de contacts |
| `contactCount` | number | Nombre de contacts |
| `lists` | json | Tableau de listes |
| `name` | string | Nom de la ressource |
| `templates` | json | Tableau de modèles |
| `message` | chaîne | Statut ou message de réussite |
| `name` | chaîne | Nom de la ressource |
| `generation` | chaîne | Génération du modèle |
| `generation` | string | Génération du modèle |
| `versions` | json | Tableau des versions du modèle |
| `templateId` | string | ID du modèle |
| `active` | boolean | Si la version du modèle est active |
| `htmlContent` | string | Contenu HTML |
| `plainContent` | string | Contenu en texte brut |
### `sendgrid_create_template_version`

View File

@@ -36,8 +36,8 @@ Traite une réflexion/instruction fournie, la rendant disponible pour les étape
#### Entrée
| Paramètre | Type | Obligatoire | Description |
| --------- | ---- | ----------- | ----------- |
| `thought` | chaîne | Oui | Le processus de réflexion ou l'instruction fournie par l'utilisateur dans le bloc Étape de Réflexion. |
| --------- | ---- | -------- | ----------- |
| `thought` | chaîne | Oui | Votre raisonnement interne, analyse ou processus de réflexion. Utilisez ceci pour réfléchir au problème étape par étape avant de répondre. |
#### Sortie

View File

@@ -31,37 +31,30 @@ Intégrez Translate dans le flux de travail. Peut traduire du texte dans n'impor
## Outils
### `openai_chat`
### `llm_chat`
Envoyez une requête de complétion de chat à n'importe quel fournisseur de LLM pris en charge
#### Entrée
| Paramètre | Type | Obligatoire | Description |
| --------- | ---- | ----------- | ----------- |
| --------- | ---- | ---------- | ----------- |
| `model` | chaîne | Oui | Le modèle à utiliser (ex. : gpt-4o, claude-sonnet-4-5, gemini-2.0-flash) |
| `systemPrompt` | chaîne | Non | Instruction système pour définir le comportement de l'assistant |
| `context` | chaîne | Oui | Le message utilisateur ou le contexte à envoyer au modèle |
| `apiKey` | chaîne | Non | Clé API pour le fournisseur (utilise la clé de plateforme si non fournie pour les modèles hébergés) |
| `temperature` | nombre | Non | Température pour la génération de réponse (0-2) |
| `maxTokens` | nombre | Non | Nombre maximum de tokens dans la réponse |
| `azureEndpoint` | chaîne | Non | URL du point de terminaison Azure OpenAI |
| `azureApiVersion` | chaîne | Non | Version de l'API Azure OpenAI |
#### Sortie
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `content` | string | Texte traduit |
| `model` | string | Modèle utilisé |
| `tokens` | json | Utilisation des tokens |
### `anthropic_chat`
### `google_chat`
#### Entrée
| Paramètre | Type | Obligatoire | Description |
| --------- | ---- | ----------- | ----------- |
#### Sortie
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `content` | string | Texte traduit |
| `model` | string | Modèle utilisé |
| `tokens` | json | Utilisation des jetons |
| `content` | chaîne | Le contenu de la réponse générée |
| `model` | chaîne | Le modèle utilisé pour la génération |
| `tokens` | objet | Informations sur l'utilisation des tokens |
## Notes

View File

@@ -250,13 +250,13 @@ Télécharger un fichier média (image, vidéo, document) sur WordPress.com
| Paramètre | Type | Obligatoire | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Oui | ID du site WordPress.com ou domaine \(ex., 12345678 ou monsite.wordpress.com\) |
| `file` | string | Oui | Données du fichier encodées en Base64 ou URL pour récupérer le fichier |
| `filename` | string | Oui | Nom du fichier avec extension \(ex., image.jpg\) |
| `title` | string | Non | Titre du média |
| `caption` | string | Non | Légende du média |
| `altText` | string | Non | Texte alternatif pour l'accessibilité |
| `description` | string | Non | Description du média |
| `siteId` | chaîne | Oui | ID du site WordPress.com ou domaine \(ex., 12345678 ou monsite.wordpress.com\) |
| `file` | fichier | Non | Fichier à télécharger \(objet UserFile\) |
| `filename` | chaîne | Non | Remplacement optionnel du nom de fichier \(ex., image.jpg\) |
| `title` | chaîne | Non | Titre du média |
| `caption` | chaîne | Non | Légende du média |
| `altText` | chaîne | Non | Texte alternatif pour l'accessibilité |
| `description` | chaîne | Non | Description du média |
#### Sortie

View File

@@ -170,25 +170,6 @@ Obtenir les vidéos d'une playlist YouTube.
| --------- | ---- | ----------- |
| `items` | tableau | Tableau de vidéos dans la playlist |
### `youtube_related_videos`
Trouver des vidéos liées à une vidéo YouTube spécifique.
#### Entrée
| Paramètre | Type | Obligatoire | Description |
| --------- | ---- | ----------- | ----------- |
| `videoId` | chaîne | Oui | ID de la vidéo YouTube pour laquelle trouver des vidéos liées |
| `maxResults` | nombre | Non | Nombre maximum de vidéos liées à retourner \(1-50\) |
| `pageToken` | chaîne | Non | Jeton de page pour la pagination |
| `apiKey` | chaîne | Oui | Clé API YouTube |
#### Sortie
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `items` | tableau | Tableau de vidéos liées |
### `youtube_comments`
Obtenir les commentaires d'une vidéo YouTube.
@@ -207,7 +188,7 @@ Obtenir les commentaires d'une vidéo YouTube.
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `items` | tableau | Tableau de commentaires de la vidéo |
| `items` | tableau | Tableau des commentaires de la vidéo |
## Notes

View File

@@ -74,8 +74,9 @@ Récupérer une liste de tickets depuis Zendesk avec filtrage optionnel
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données et métadonnées des tickets |
| `tickets` | array | Tableau d'objets ticket |
| `paging` | object | Informations de pagination |
| `metadata` | object | Métadonnées de l'opération |
### `zendesk_get_ticket`
@@ -94,8 +95,8 @@ Obtenir un ticket unique par ID depuis Zendesk
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données du ticket |
| `ticket` | object | Objet ticket |
| `metadata` | object | Métadonnées de l'opération |
### `zendesk_create_ticket`
@@ -123,8 +124,8 @@ Créer un nouveau ticket dans Zendesk avec prise en charge des champs personnali
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données du ticket créé |
| `ticket` | object | Objet ticket créé |
| `metadata` | object | Métadonnées de l'opération |
### `zendesk_create_tickets_bulk`
@@ -143,8 +144,8 @@ Créer plusieurs tickets dans Zendesk en une seule fois (max 100)
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Statut de la tâche de création en masse |
| `jobStatus` | object | Objet statut de la tâche |
| `metadata` | object | Métadonnées de l'opération |
### `zendesk_update_ticket`
@@ -172,8 +173,8 @@ Mettre à jour un ticket existant dans Zendesk avec prise en charge des champs p
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données du ticket mis à jour |
| `ticket` | object | Objet ticket mis à jour |
| `metadata` | object | Métadonnées de l'opération |
### `zendesk_update_tickets_bulk`
@@ -197,8 +198,8 @@ Mettre à jour plusieurs tickets dans Zendesk en une seule fois (max 100)
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Statut de la tâche de mise à jour groupée |
| `jobStatus` | object | Objet statut de la tâche |
| `metadata` | object | Métadonnées de l'opération |
### `zendesk_delete_ticket`
@@ -217,8 +218,8 @@ Supprimer un ticket de Zendesk
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Confirmation de suppression |
| `deleted` | boolean | Succès de la suppression |
| `metadata` | object | Métadonnées de l'opération |
### `zendesk_merge_tickets`
@@ -239,8 +240,8 @@ Fusionner plusieurs tickets dans un ticket cible
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Statut de la tâche de fusion |
| `jobStatus` | object | Objet statut de la tâche |
| `metadata` | object | Métadonnées de l'opération |
### `zendesk_get_users`
@@ -262,8 +263,9 @@ Récupérer une liste d'utilisateurs de Zendesk avec filtrage optionnel
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données utilisateurs et métadonnées |
| `users` | array | Tableau d'objets utilisateur |
| `paging` | object | Informations de pagination |
| `metadata` | object | Métadonnées de l'opération |
### `zendesk_get_user`
@@ -282,8 +284,8 @@ Obtenir un utilisateur unique par ID depuis Zendesk
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données de l'utilisateur |
| `user` | object | Objet utilisateur |
| `metadata` | object | Métadonnées de l'opération |
### `zendesk_get_current_user`
@@ -301,8 +303,8 @@ Obtenir l'utilisateur actuellement authentifié depuis Zendesk
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données de l'utilisateur actuel |
| `user` | object | Objet de l'utilisateur actuel |
| `metadata` | object | Métadonnées de l'opération |
### `zendesk_search_users`
@@ -324,8 +326,9 @@ Rechercher des utilisateurs dans Zendesk à l'aide d'une chaîne de requête
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | booléen | Statut de réussite de l'opération |
| `output` | objet | Résultats de recherche d'utilisateurs |
| `users` | array | Tableau d'objets utilisateur |
| `paging` | object | Informations de pagination |
| `metadata` | object | Métadonnées de l'opération |
### `zendesk_create_user`
@@ -351,8 +354,8 @@ Créer un nouvel utilisateur dans Zendesk
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données de l'utilisateur créé |
| `user` | object | Objet utilisateur créé |
| `metadata` | object | Métadonnées de l'opération |
### `zendesk_create_users_bulk`
@@ -371,8 +374,8 @@ Créer plusieurs utilisateurs dans Zendesk en utilisant l'importation en masse
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Statut de la tâche de création en masse |
| `jobStatus` | object | Objet d'état de la tâche |
| `metadata` | object | Métadonnées de l'opération |
### `zendesk_update_user`
@@ -399,8 +402,8 @@ Mettre à jour un utilisateur existant dans Zendesk
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données utilisateur mises à jour |
| `user` | object | Objet utilisateur mis à jour |
| `metadata` | object | Métadonnées de l'opération |
### `zendesk_update_users_bulk`
@@ -419,8 +422,8 @@ Mettre à jour plusieurs utilisateurs dans Zendesk en utilisant la mise à jour
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Statut de la tâche de mise à jour en masse |
| `jobStatus` | object | Objet d'état de la tâche |
| `metadata` | object | Métadonnées de l'opération |
### `zendesk_delete_user`
@@ -439,8 +442,8 @@ Supprimer un utilisateur de Zendesk
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données de l'utilisateur supprimé |
| `deleted` | boolean | Succès de la suppression |
| `metadata` | object | Métadonnées de l'opération |
### `zendesk_get_organizations`
@@ -460,8 +463,9 @@ Récupérer une liste d'organisations depuis Zendesk
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | booléen | Statut de réussite de l'opération |
| `output` | objet | Données et métadonnées des organisations |
| `organizations` | array | Tableau d'objets d'organisation |
| `paging` | object | Informations de pagination |
| `metadata` | object | Métadonnées de l'opération |
### `zendesk_get_organization`
@@ -480,8 +484,8 @@ Obtenir une organisation unique par ID depuis Zendesk
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | booléen | Statut de réussite de l'opération |
| `output` | objet | Données de l'organisation |
| `organization` | object | Objet organisation |
| `metadata` | object | Métadonnées de l'opération |
### `zendesk_autocomplete_organizations`
@@ -502,8 +506,9 @@ Autocomplétion des organisations dans Zendesk par préfixe de nom (pour corresp
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Résultats de recherche des organisations |
| `organizations` | array | Tableau d'objets d'organisation |
| `paging` | object | Informations de pagination |
| `metadata` | object | Métadonnées de l'opération |
### `zendesk_create_organization`
@@ -527,8 +532,8 @@ Créer une nouvelle organisation dans Zendesk
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données de l'organisation créée |
| `organization` | object | Objet organisation créé |
| `metadata` | object | Métadonnées de l'opération |
### `zendesk_create_organizations_bulk`
@@ -547,8 +552,8 @@ Créer plusieurs organisations dans Zendesk en utilisant l'importation en masse
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Statut de la tâche de création en masse |
| `jobStatus` | object | Objet statut de la tâche |
| `metadata` | object | Métadonnées de l'opération |
### `zendesk_update_organization`
@@ -573,8 +578,8 @@ Mettre à jour une organisation existante dans Zendesk
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données de l'organisation mise à jour |
| `organization` | object | Objet organisation mis à jour |
| `metadata` | object | Métadonnées de l'opération |
### `zendesk_delete_organization`
@@ -593,8 +598,8 @@ Supprimer une organisation de Zendesk
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Données de l'organisation supprimée |
| `deleted` | boolean | Succès de la suppression |
| `metadata` | object | Métadonnées de l'opération |
### `zendesk_search`
@@ -617,8 +622,9 @@ Recherche unifiée à travers les tickets, utilisateurs et organisations dans Ze
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Résultats de recherche |
| `results` | array | Tableau d'objets résultats |
| `paging` | object | Informations de pagination |
| `metadata` | object | Métadonnées de l'opération |
### `zendesk_search_count`
@@ -637,8 +643,8 @@ Compter le nombre de résultats de recherche correspondant à une requête dans
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Statut de réussite de l'opération |
| `output` | object | Résultat du comptage de recherche |
| `count` | number | Nombre de résultats correspondants |
| `metadata` | object | Métadonnées de l'opération |
## Notes

View File

@@ -27,14 +27,16 @@ SimダッシュボードのユーザーセッティングからAPIキーを生
"limits": {
"workflowExecutionRateLimit": {
"sync": {
"limit": 60, // Max sync workflow executions per minute
"remaining": 58, // Remaining sync workflow executions
"resetAt": "..." // When the window resets
"requestsPerMinute": 60, // Sustained rate limit per minute
"maxBurst": 120, // Maximum burst capacity
"remaining": 118, // Current tokens available (up to maxBurst)
"resetAt": "..." // When tokens next refill
},
"async": {
"limit": 60, // Max async workflow executions per minute
"remaining": 59, // Remaining async workflow executions
"resetAt": "..." // When the window resets
"requestsPerMinute": 200, // Sustained rate limit per minute
"maxBurst": 400, // Maximum burst capacity
"remaining": 398, // Current tokens available
"resetAt": "..." // When tokens next refill
}
},
"usage": {
@@ -46,7 +48,7 @@ SimダッシュボードのユーザーセッティングからAPIキーを生
}
```
**注意** レスポンス本文のレート制限はワークフロー実行に関するものです。このAPIエンドポイントを呼び出すためのレート制限はレスポンスヘッダー`X-RateLimit-*`)にあります。
**注意:** レート制限はトークンバケットアルゴリズムを使用しています。最近の割り当てを完全に使用していない場合、`remaining`は`requestsPerMinute`を超えて`maxBurst`まで達することができ、バーストトラフィックを許可します。レスポンスボディのレート制限はワークフロー実行のためのものです。このAPIエンドポイントを呼び出すためのレート制限はレスポンスヘッダー`X-RateLimit-*`)にあります。
### ログの照会
@@ -110,13 +112,15 @@ SimダッシュボードのユーザーセッティングからAPIキーを生
"limits": {
"workflowExecutionRateLimit": {
"sync": {
"limit": 60,
"remaining": 58,
"requestsPerMinute": 60,
"maxBurst": 120,
"remaining": 118,
"resetAt": "2025-01-01T12:35:56.789Z"
},
"async": {
"limit": 60,
"remaining": 59,
"requestsPerMinute": 200,
"maxBurst": 400,
"remaining": 398,
"resetAt": "2025-01-01T12:35:56.789Z"
}
},
@@ -190,13 +194,15 @@ SimダッシュボードのユーザーセッティングからAPIキーを生
"limits": {
"workflowExecutionRateLimit": {
"sync": {
"limit": 60,
"remaining": 58,
"requestsPerMinute": 60,
"maxBurst": 120,
"remaining": 118,
"resetAt": "2025-01-01T12:35:56.789Z"
},
"async": {
"limit": 60,
"remaining": 59,
"requestsPerMinute": 200,
"maxBurst": 400,
"remaining": 398,
"resetAt": "2025-01-01T12:35:56.789Z"
}
},
@@ -482,17 +488,25 @@ Webhookシークレットを設定した場合、署名を検証してWebhookが
## レート制限
APIは公平な使用を確保するためにレート制限を実装しています:
APIは**トークンバケットアルゴリズム**をレート制限に使用し、バーストトラフィックを許可しながら公平な使用を提供します:
- **無料プラン**: 1分あたり10リクエスト
- **プロプラン**: 1分あたり30リクエスト
- **チームプラン**: 1分あたり60リクエスト
- **エンタープライズプラン**: カスタム制限
| プラン | リクエスト/分 | バースト容量 |
|------|-----------------|----------------|
| 無料 | 10 | 20 |
| プロ | 30 | 60 |
| チーム | 60 | 120 |
| エンタープライズ | 120 | 240 |
**仕組み:**
- トークンは`requestsPerMinute`のレートで補充されます
- アイドル状態のとき、最大`maxBurst`トークンまで蓄積できます
- 各リクエストは1トークンを消費します
- バースト容量によりトラフィックスパイクの処理が可能になります
レート制限情報はレスポンスヘッダーに含まれています:
- `X-RateLimit-Limit`: ウィンドウあたりの最大リクエスト数
- `X-RateLimit-Remaining`: 現在のウィンドウで残っているリクエスト数
- `X-RateLimit-Reset`: ウィンドウがリセットされるISOタイムスタンプ
- `X-RateLimit-Limit`1分あたりのリクエスト数(補充レート)
- `X-RateLimit-Remaining`:現在利用可能なトークン
- `X-RateLimit-Reset`:トークンが次に補充されるISOタイムスタンプ
## 例:新しいログのポーリング
@@ -541,7 +555,7 @@ async function pollLogs() {
setInterval(pollLogs, 30000);
```
## 例:Webhookの処理
## 例:ウェブフックの処理
```javascript
import express from 'express';

View File

@@ -147,8 +147,20 @@ curl -X GET -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" htt
{
"success": true,
"rateLimit": {
"sync": { "isLimited": false, "limit": 10, "remaining": 10, "resetAt": "2025-09-08T22:51:55.999Z" },
"async": { "isLimited": false, "limit": 50, "remaining": 50, "resetAt": "2025-09-08T22:51:56.155Z" },
"sync": {
"isLimited": false,
"requestsPerMinute": 25,
"maxBurst": 50,
"remaining": 50,
"resetAt": "2025-09-08T22:51:55.999Z"
},
"async": {
"isLimited": false,
"requestsPerMinute": 200,
"maxBurst": 400,
"remaining": 400,
"resetAt": "2025-09-08T22:51:56.155Z"
},
"authType": "api"
},
"usage": {
@@ -159,35 +171,40 @@ curl -X GET -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" htt
}
```
**レート制限フィールド:**
- `requestsPerMinute`:持続的なレート制限(トークンはこの速度で補充されます)
- `maxBurst`:蓄積できる最大トークン数(バースト容量)
- `remaining`:現在利用可能なトークン(最大で`maxBurst`まで)
**レスポンスフィールド:**
- `currentPeriodCost` は現在の請求期間の使用状況を反映します
- `limit` は個別の制限(無料/プロ)または組織のプール制限(チーム/エンタープライズ)から導出されます
- `plan` はユーザーに関連付けられた最優先のアクティブなプランです
- `currentPeriodCost`は現在の請求期間の使用状況を反映します
- `limit`は個別の制限(無料/プロ)または組織のプール制限(チーム/エンタープライズ)から派生します
- `plan`はユーザーに関連付けられた最優先のアクティブなプランです
## プラン制限
異なるサブスクリプションプランには異なる使用制限がります:
サブスクリプションプランによって使用制限が異なります:
| プラン | 月間使用制限 | レート制限(分あたり) |
|------|-------------------|-------------------------|
| **無料** | $10 | 5 同期、10 非同期 |
| **プロ** | $100 | 10 同期、50 非同期 |
| **チーム** | $500プール | 50 同期、100 非同期 |
| **無料** | $10 | 5同期、10非同期 |
| **プロ** | $100 | 10同期、50非同期 |
| **チーム** | $500プール | 50同期、100非同期 |
| **エンタープライズ** | カスタム | カスタム |
## 課金モデル
Simは**基本サブスクリプション + 超過分**の課金モデルを使用しています:
Simは**基本サブスクリプション+超過分**の課金モデルを使用しています:
### 仕組み
**プロプラン(月額$20**
- 月額サブスクリプションには$20分の使用量が含まれます
- 使用量が$20未満 → 追加料金なし
- 使用量が$20を超える → 月末に超過分を支払
- 使用量が$20を超える → 月末に超過分を支払
- 例:$35の使用量 = $20サブスクリプション+ $15超過分
**チームプラン(月額$40/シート**
**チームプラン(席あたり月額$40**
- チームメンバー全体でプールされた使用量
- チーム全体の使用量から超過分を計算
- 組織のオーナーが一括で請求を受ける
@@ -209,10 +226,10 @@ Simは**基本サブスクリプション + 超過分**の課金モデルを使
## コスト管理のベストプラクティス
1. **定期的な監視**: 予想外の事態を避けるため、使用状況ダッシュボードを頻繁に確認する
1. **定期的な監視**: 予期せぬ事態を避けるため、使用状況ダッシュボードを頻繁に確認する
2. **予算の設定**: プランの制限を支出のガードレールとして使用する
3. **ワークフローの最適化**: コストの高い実行を見直し、プロンプトやモデル選択を最適化する
4. **適切なモデルの使用**: タスクの要件に合わせてモデルの複雑さを調整す
4. **適切なモデルの使用**: タスクの要件にモデルの複雑さを合わせ
5. **類似タスクのバッチ処理**: 可能な場合は複数のリクエストを組み合わせてオーバーヘッドを削減する
## 次のステップ

View File

@@ -46,11 +46,11 @@ Exa AIを使用してウェブを検索します。タイトル、URL、テキ
| `type` | string | いいえ | 検索タイプneural、keyword、auto、またはfastデフォルトauto |
| `includeDomains` | string | いいえ | 結果に含めるドメインのカンマ区切りリスト |
| `excludeDomains` | string | いいえ | 結果から除外するドメインのカンマ区切りリスト |
| `category` | string | いいえ | カテゴリによるフィルタリングcompany、research_paper、news_article、pdf、github、tweet、movie、song、personal_site |
| `category` | string | いいえ | カテゴリによるフィルタリングcompany、research paper、news、pdf、github、tweet、personal site、linkedin profile、financial report |
| `text` | boolean | いいえ | 結果に全文コンテンツを含めるデフォルトfalse |
| `highlights` | boolean | いいえ | 結果にハイライトされたスニペットを含めるデフォルトfalse |
| `summary` | boolean | いいえ | 結果にAI生成の要約を含めるデフォルトfalse |
| `livecrawl` | string | いいえ | ライブクロールモード:always、fallback、またはneverデフォルトnever |
| `livecrawl` | string | いいえ | ライブクロールモード:neverデフォルト、fallback、always、またはpreferred常にライブクロールを試み、失敗した場合はキャッシュにフォールバック |
| `apiKey` | string | はい | Exa AI APIキー |
#### 出力
@@ -68,12 +68,12 @@ Exa AIを使用してウェブページのコンテンツを取得します。
| パラメータ | 型 | 必須 | 説明 |
| --------- | ---- | -------- | ----------- |
| `urls` | string | はい | コンテンツを取得するURLのカンマ区切りリスト |
| `text` | boolean | いいえ | trueの場合、デフォルト設定でページ全文を返します。falseの場合、テキスト返却を無効にします。 |
| `text` | boolean | いいえ | trueの場合、デフォルト設定で完全なページテキストを返します。falseの場合、テキスト返却を無効にします。 |
| `summaryQuery` | string | いいえ | 要約生成をガイドするクエリ |
| `subpages` | number | いいえ | 提供されたURLからクロールするサブページの数 |
| `subpageTarget` | string | いいえ | 特定のサブページを対象とするカンマ区切りキーワード(例:"docs,tutorial,about" |
| `subpageTarget` | string | いいえ | 特定のサブページをターゲットにするためのカンマ区切りキーワード(例:"docs,tutorial,about" |
| `highlights` | boolean | いいえ | 結果にハイライトされたスニペットを含めるデフォルトfalse |
| `livecrawl` | string | いいえ | ライブクロールモード:always、fallback、またはneverデフォルトnever |
| `livecrawl` | string | いいえ | ライブクロールモード:neverデフォルト、fallback、always、またはpreferred常にライブクロールを試み、失敗した場合はキャッシュにフォールバック |
| `apiKey` | string | はい | Exa AI APIキー |
#### 出力
@@ -96,10 +96,9 @@ Exa AIを使用して、指定されたURLに類似したウェブページを
| `includeDomains` | string | いいえ | 結果に含めるドメインのカンマ区切りリスト |
| `excludeDomains` | string | いいえ | 結果から除外するドメインのカンマ区切りリスト |
| `excludeSourceDomain` | boolean | いいえ | 結果からソースドメインを除外するデフォルトfalse |
| `category` | string | いいえ | カテゴリによるフィルタリングcompany、research_paper、news_article、pdf、github、tweet、movie、song、personal_site |
| `highlights` | boolean | いいえ | 結果にハイライトされたスニペットを含めるデフォルトfalse |
| `summary` | boolean | いいえ | 結果にAI生成の要約を含めるデフォルトfalse |
| `livecrawl` | string | いいえ | ライブクロールモード:always、fallback、またはneverデフォルトnever |
| `livecrawl` | string | いいえ | ライブクロールモード:neverデフォルト、fallback、always、またはpreferred常にライブクロールを試み、失敗した場合はキャッシュにフォールバック |
| `apiKey` | string | はい | Exa AI APIキー |
#### 出力

View File

@@ -49,8 +49,8 @@ Kalshiの予測市場をワークフローに統合します。市場一覧、
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 市場データとメタデータ |
| `markets` | array | 市場オブジェクトの配列 |
| `paging` | object | さらに結果を取得するためのページネーションカーソル |
### `kalshi_get_market`
@@ -66,8 +66,7 @@ Kalshiの予測市場をワークフローに統合します。市場一覧、
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 市場データとメタデータ |
| `market` | object | 詳細情報を含む市場オブジェクト |
### `kalshi_get_events`
@@ -87,8 +86,8 @@ Kalshiの予測市場をワークフローに統合します。市場一覧、
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | イベントデータとメタデータ |
| `events` | array | イベントオブジェクトの配列 |
| `paging` | object | さらに結果を取得するためのページネーションカーソル |
### `kalshi_get_event`
@@ -105,8 +104,7 @@ Kalshiの予測市場をワークフローに統合します。市場一覧、
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | イベントデータとメタデータ |
| `event` | object | 詳細情報を含むイベントオブジェクト |
### `kalshi_get_balance`
@@ -123,8 +121,10 @@ Kalshiからアカウント残高とポートフォリオ価値を取得
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 残高データとメタデータ |
| `balance` | number | セント単位のアカウント残高 |
| `portfolioValue` | number | セント単位のポートフォリオ価値 |
| `balanceDollars` | number | ドル単位のアカウント残高 |
| `portfolioValueDollars` | number | ドル単位のポートフォリオ価値 |
### `kalshi_get_positions`
@@ -146,8 +146,8 @@ Kalshiからオープンポジションを取得
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | ポジションデータとメタデータ |
| `positions` | array | ポジションオブジェクトの配列 |
| `paging` | object | さらに結果を取得するためのページネーションカーソル |
### `kalshi_get_orders`
@@ -169,8 +169,8 @@ Kalshiからオープンポジションを取得
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 注文データとメタデータ |
| `orders` | array | 注文オブジェクトの配列 |
| `paging` | object | さらに結果を取得するためのページネーションカーソル |
### `kalshi_get_order`
@@ -188,8 +188,7 @@ IDを指定してKalshiから特定の注文の詳細を取得する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 注文データ |
| `order` | object | 詳細情報を含む注文オブジェクト |
### `kalshi_get_orderbook`
@@ -205,8 +204,7 @@ IDを指定してKalshiから特定の注文の詳細を取得する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 注文板データとメタデータ |
| `orderbook` | object | yes/noの買い注文と売り注文を含むオーダーブック |
### `kalshi_get_trades`
@@ -223,8 +221,8 @@ IDを指定してKalshiから特定の注文の詳細を取得する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 取引データとメタデータ |
| `trades` | array | 取引オブジェクトの配列 |
| `paging` | object | さらに結果を取得するためのページネーションカーソル |
### `kalshi_get_candlesticks`
@@ -244,8 +242,7 @@ IDを指定してKalshiから特定の注文の詳細を取得する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | ローソク足データとメタデータ |
| `candlesticks` | array | OHLC始値・高値・安値・終値ローソク足データの配列 |
### `kalshi_get_fills`
@@ -268,8 +265,8 @@ IDを指定してKalshiから特定の注文の詳細を取得する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 約定データとメタデータ |
| `fills` | array | 約定/取引オブジェクトの配列 |
| `paging` | object | さらに結果を取得するためのページネーションカーソル |
### `kalshi_get_series_by_ticker`
@@ -285,8 +282,7 @@ IDを指定してKalshiから特定の注文の詳細を取得する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | シリーズデータとメタデータ |
| `series` | object | 詳細を含むシリーズオブジェクト |
### `kalshi_get_exchange_status`
@@ -301,8 +297,7 @@ Kalshi取引所の現在のステータス取引と取引所のアクティ
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 取引所ステータスデータとメタデータ |
| `status` | object | trading_activeとexchange_activeフラグを含む取引所ステータス |
### `kalshi_create_order`
@@ -336,8 +331,7 @@ Kalshi予測市場に新しい注文を作成する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 作成功ステータス |
| `output` | object | 作成された注文データ |
| `order` | object | 作成された注文オブジェクト |
### `kalshi_cancel_order`
@@ -355,8 +349,8 @@ Kalshiで既存の注文をキャンセルする
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | キャンセルされた注文データ |
| `order` | object | キャンセルされた注文オブジェクト |
| `reducedBy` | number | キャンセルされた契約数 |
### `kalshi_amend_order`
@@ -384,8 +378,7 @@ Kalshiで既存の注文の価格または数量を変更する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 変更された注文データ |
| `order` | object | 変更された注文オブジェクト |
## 注意事項

View File

@@ -91,11 +91,11 @@ Parallel AIを使用してウェブ全体で包括的な詳細調査を実施し
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `status` | string | タスクのステータス(実行中、完了、失敗) |
| `status` | string | タスクのステータス(完了、失敗) |
| `run_id` | string | この調査タスクの一意のID |
| `message` | string | ステータスメッセージ(実行中のタスク用) |
| `message` | string | ステータスメッセージ |
| `content` | object | 調査結果output_schemaに基づいて構造化 |
| `basis` | array | 引用と情報源(抜粋と信頼度レベルを含む) |
| `basis` | array | 引用と情報源(根拠と信頼度レベルを含む) |
## 注意事項

View File

@@ -51,8 +51,9 @@ Perplexity AIチャットモデルを使用して文章を生成する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作の成功ステータス |
| `output` | object | チャット生成結果 |
| `content` | string | 生成されたテキストコンテンツ |
| `model` | string | 生成に使用されたモデル |
| `usage` | object | トークン使用情報 |
### `perplexity_search`
@@ -76,8 +77,7 @@ Perplexityからランク付けされた検索結果を取得する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作の成功ステータス |
| `output` | object | 検索結果 |
| `results` | array | 検索結果の配列 |
## 注意事項

View File

@@ -40,11 +40,11 @@ Polymarketから予測市場のリストをオプションのフィルタリン
| パラメータ | 型 | 必須 | 説明 |
| --------- | ---- | -------- | ----------- |
| `closed` | string | いいえ | クローズ状態でフィルタリングtrue/false。アクティブなマーケットのみの場合はfalseを使用。 |
| `closed` | string | いいえ | クローズ状態でフィルタリングtrue/false。アクティブな市場のみの場合はfalseを使用。 |
| `order` | string | いいえ | ソートフィールドvolumeNum、liquidityNum、startDate、endDate、createdAt |
| `ascending` | string | いいえ | ソート方向昇順の場合はtrue、降順の場合はfalse |
| `tagId` | string | いいえ | タグIDでフィルタリング |
| `limit` | string | いいえ | ページあたりの結果数(推奨25-50 |
| `limit` | string | いいえ | ページあたりの結果数(最大50 |
| `offset` | string | いいえ | ページネーションオフセット(この数の結果をスキップ) |
#### 出力
@@ -84,7 +84,7 @@ Polymarketからイベントのリストを取得し、オプションでフィ
| `order` | string | いいえ | ソートフィールドvolume、liquidity、startDate、endDate、createdAt |
| `ascending` | string | いいえ | ソート方向昇順の場合はtrue、降順の場合はfalse |
| `tagId` | string | いいえ | タグIDでフィルタリング |
| `limit` | string | いいえ | ページあたりの結果数(推奨25-50 |
| `limit` | string | いいえ | ページあたりの結果数(最大50 |
| `offset` | string | いいえ | ページネーションオフセット(この数の結果をスキップ) |
#### 出力
@@ -120,7 +120,7 @@ Polymarketからマーケットのフィルタリング用の利用可能なタ
| パラメータ | 型 | 必須 | 説明 |
| --------- | ---- | -------- | ----------- |
| `limit` | string | いいえ | ページあたりの結果数(推奨25-50 |
| `limit` | string | いいえ | ページあたりの結果数(最大50 |
| `offset` | string | いいえ | ページネーションオフセット(この数の結果をスキップ) |
#### 出力
@@ -139,15 +139,15 @@ Polymarketでマーケット、イベント、プロフィールを検索する
| パラメータ | 型 | 必須 | 説明 |
| --------- | ---- | -------- | ----------- |
| `query` | string | はい | 検索クエリ用語 |
| `limit` | string | いいえ | ページあたりの結果数(推奨25-50 |
| `offset` | string | いいえ | ページネーションオフセット(この数の結果をスキップ) |
| `limit` | string | いいえ | ページあたりの結果数(最大50 |
| `offset` | string | いいえ | ページネーションオフセット |
#### 出力
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 検索結果とメタデータ |
| `output` | object | 検索結果データとメタデータ |
### `polymarket_get_series`
@@ -157,7 +157,7 @@ Polymarketからシリーズ関連するマーケットグループを取
| パラメータ | 型 | 必須 | 説明 |
| --------- | ---- | -------- | ----------- |
| `limit` | string | いいえ | ページあたりの結果数(推奨25-50 |
| `limit` | string | いいえ | ページあたりの結果数(最大50 |
| `offset` | string | いいえ | ページネーションオフセット(この数の結果をスキップ) |
#### 出力
@@ -199,7 +199,7 @@ PolymarketからIDで特定のシリーズ関連する市場グループ
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | オーダーブックデータとメタデータ |
| `output` | object | 注文台帳データとメタデータ |
### `polymarket_get_price`
@@ -217,7 +217,7 @@ PolymarketからIDで特定のシリーズ関連する市場グループ
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 価格データとメタデータ |
| `output` | object | 市場価格データとメタデータ |
### `polymarket_get_midpoint`
@@ -272,7 +272,7 @@ PolymarketからIDで特定のシリーズ関連する市場グループ
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 最終取引価格とメタデータ |
| `output` | object | 最終取引価格データとメタデータ |
### `polymarket_get_spread`
@@ -306,7 +306,7 @@ PolymarketからIDで特定のシリーズ関連する市場グループ
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | ティックサイズとメタデータ |
| `output` | object | 最小ティックサイズデータとメタデータ |
### `polymarket_get_positions`
@@ -336,15 +336,14 @@ Polymarketから取引履歴を取得する
| --------- | ---- | -------- | ----------- |
| `user` | string | いいえ | 取引をフィルタリングするユーザーウォレットアドレス |
| `market` | string | いいえ | 取引をフィルタリングするマーケットID |
| `limit` | string | いいえ | ページあたりの結果数(推奨25-50 |
| `limit` | string | いいえ | ページあたりの結果数(最大50 |
| `offset` | string | いいえ | ページネーションオフセット(この数の結果をスキップ) |
#### 出力
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 取引データとメタデータ |
| `trades` | array | 取引オブジェクトの配列 |
## 注意事項

View File

@@ -342,19 +342,30 @@ SendGridからメールテンプレートを削除する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `messageId` | string | メールメッセージIDsend_mail |
| `message` | string | ステータスまたは成功メッセージ |
| `messageId` | string | メールメッセージID \(send_mail\) |
| `to` | string | 受信者のメールアドレス \(send_mail\) |
| `subject` | string | メールの件名 \(send_mail, create_template_version\) |
| `id` | string | リソースID |
| `jobId` | string | 非同期操作のジョブID |
| `email` | string | メールアドレス |
| `firstName` | string | 名 |
| `lastName` | string | 姓 |
| `jobId` | string | 非同期操作のジョブID |
| `email` | string | 連絡先のメールアドレス |
| `firstName` | string | 連絡先の名 |
| `lastName` | string | 連絡先の姓 |
| `createdAt` | string | 作成タイムスタンプ |
| `updatedAt` | string | 最終更新タイムスタンプ |
| `listIds` | json | 連絡先が所属するリストIDの配列 |
| `customFields` | json | カスタムフィールドの値 |
| `contacts` | json | 連絡先の配列 |
| `contactCount` | number | 連絡先の数 |
| `lists` | json | リストの配列 |
| `templates` | json | テンプレートの配列 |
| `message` | string | ステータスまたは成功メッセージ |
| `name` | string | リソース名 |
| `generation` | string | テンプレート生成方法 |
| `templates` | json | テンプレートの配列 |
| `generation` | string | テンプレート世代 |
| `versions` | json | テンプレートバージョンの配列 |
| `templateId` | string | テンプレートID |
| `active` | boolean | テンプレートバージョンがアクティブかどうか |
| `htmlContent` | string | HTML内容 |
| `plainContent` | string | プレーンテキスト内容 |
### `sendgrid_create_template_version`

View File

@@ -37,7 +37,7 @@ Simでは、思考ツールによってエージェントがこのような意
| パラメータ | 型 | 必須 | 説明 |
| --------- | ---- | -------- | ----------- |
| `thought` | string | はい | 思考ステップブロックでユーザーが提供した思考プロセスまたは指示。 |
| `thought` | string | はい | あなたの内部的な推論、分析、または思考プロセス。これを使用して、応答する前に問題を段階的に考えてください。 |
#### 出力

View File

@@ -31,39 +31,32 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
## ツール
### `openai_chat`
### `llm_chat`
サポートされている任意のLLMプロバイダーにチャット完了リクエストを送信する
#### 入力
| パラメータ | 型 | 必須 | 説明 |
| --------- | ---- | -------- | ----------- |
| `model` | string | はい | 使用するモデルgpt-4o、claude-sonnet-4-5、gemini-2.0-flash |
| `systemPrompt` | string | いいえ | アシスタントの動作を設定するシステムプロンプト |
| `context` | string | はい | モデルに送信するユーザーメッセージまたはコンテキスト |
| `apiKey` | string | いいえ | プロバイダーのAPIキーホストされたモデルの場合、提供されなければプラットフォームキーを使用 |
| `temperature` | number | いいえ | レスポンス生成の温度0-2 |
| `maxTokens` | number | いいえ | レスポンスの最大トークン数 |
| `azureEndpoint` | string | いいえ | Azure OpenAIエンドポイントURL |
| `azureApiVersion` | string | いいえ | Azure OpenAI APIバージョン |
#### 出力
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `content` | string | 翻訳されたテキスト |
| `model` | string | 使用されたモデル |
| `tokens` | json | トークン使用 |
| `content` | string | 生成されたレスポンスの内容 |
| `model` | string | 生成に使用されたモデル |
| `tokens` | object | トークン使用情報 |
### `anthropic_chat`
### `google_chat`
#### 入力
| パラメータ | 型 | 必須 | 説明 |
| --------- | ---- | -------- | ----------- |
#### 出力
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `content` | string | 翻訳されたテキスト |
| `model` | string | 使用されたモデル |
| `tokens` | json | トークン使用量 |
## メモ
## 注意事項
- カテゴリー: `tools`
- タイプ: `translate`

View File

@@ -251,10 +251,10 @@ IDによってWordPress.comから単一のページを取得する
| パラメータ | 型 | 必須 | 説明 |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | はい | WordPress.comのサイトIDまたはドメイン \(例12345678またはmysite.wordpress.com\) |
| `file` | string | はい | Base64エンコードされたファイルデータまたはファイルを取得するURL |
| `filename` | string | はい | 拡張子付きのファイル名 \(image.jpg\) |
| `title` | string | いいえ | メディアタイトル |
| `caption` | string | いいえ | メディアキャプション |
| `file` | file | いいえ | アップロードするファイルUserFileオブジェクト |
| `filename` | string | いいえ | オプションのファイル名上書き(image.jpg |
| `title` | string | いいえ | メディアタイトル |
| `caption` | string | いいえ | メディアキャプション |
| `altText` | string | いいえ | アクセシビリティのための代替テキスト |
| `description` | string | いいえ | メディアの説明 |

View File

@@ -170,25 +170,6 @@ YouTube再生リストから動画を取得します。
| --------- | ---- | ----------- |
| `items` | array | プレイリスト内の動画の配列 |
### `youtube_related_videos`
特定のYouTube動画に関連する動画を検索します。
#### 入力
| パラメータ | 型 | 必須 | 説明 |
| --------- | ---- | -------- | ----------- |
| `videoId` | string | はい | 関連動画を検索するYouTube動画ID |
| `maxResults` | number | いいえ | 返す関連動画の最大数1-50 |
| `pageToken` | string | いいえ | ページネーション用のページトークン |
| `apiKey` | string | はい | YouTube APIキー |
#### 出力
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `items` | array | 関連動画の配列 |
### `youtube_comments`
YouTube動画からコメントを取得します。
@@ -199,7 +180,7 @@ YouTube動画からコメントを取得します。
| --------- | ---- | -------- | ----------- |
| `videoId` | string | はい | YouTube動画ID |
| `maxResults` | number | いいえ | 返すコメントの最大数 |
| `order` | string | いいえ | コメントの並び順timeまたはrelevance |
| `order` | string | いいえ | コメントの並び順time(時間順)またはrelevance(関連性順) |
| `pageToken` | string | いいえ | ページネーション用のページトークン |
| `apiKey` | string | はい | YouTube APIキー |
@@ -211,5 +192,5 @@ YouTube動画からコメントを取得します。
## 注意事項
- カテゴリ: `tools`
- カテゴリ: `tools`
- タイプ: `youtube`

View File

@@ -73,8 +73,9 @@ Zendeskをワークフローに統合します。チケットの取得、チケ
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | チケットデータとメタデータ |
| `tickets` | array | チケットオブジェクトの配列 |
| `paging` | object | ページネーション情報 |
| `metadata` | object | 操作メタデータ |
### `zendesk_get_ticket`
@@ -93,8 +94,8 @@ IDによってZendeskから単一のチケットを取得
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | チケットデータ |
| `ticket` | object | チケットオブジェクト |
| `metadata` | object | 操作メタデータ |
### `zendesk_create_ticket`
@@ -122,8 +123,8 @@ IDによってZendeskから単一のチケットを取得
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 作成功ステータス |
| `output` | object | 作成されたチケットデータ |
| `ticket` | object | 作成されたチケットオブジェクト |
| `metadata` | object | 操作メタデータ |
### `zendesk_create_tickets_bulk`
@@ -142,8 +143,8 @@ Zendeskで一度に複数のチケットを作成最大100件
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 一括作成ジョブステータ |
| `jobStatus` | object | ジョブステータスオブジェクト |
| `metadata` | object | 操作メタデータ |
### `zendesk_update_ticket`
@@ -171,8 +172,8 @@ Zendeskで一度に複数のチケットを作成最大100件
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 更新されたチケットデータ |
| `ticket` | object | 更新されたチケットオブジェクト |
| `metadata` | object | 操作メタデータ |
### `zendesk_update_tickets_bulk`
@@ -196,8 +197,8 @@ Zendeskで複数のチケットを一度に更新最大100件
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 一括更新ジョブのステータ |
| `jobStatus` | object | ジョブステータスオブジェクト |
| `metadata` | object | 操作メタデータ |
### `zendesk_delete_ticket`
@@ -216,8 +217,8 @@ Zendeskからチケットを削除
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 削除確認 |
| `deleted` | boolean | 削除成功 |
| `metadata` | object | 操作メタデータ |
### `zendesk_merge_tickets`
@@ -238,8 +239,8 @@ Zendeskからチケットを削除
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 統合ジョブステータ |
| `jobStatus` | object | ジョブステータスオブジェクト |
| `metadata` | object | 操作メタデータ |
### `zendesk_get_users`
@@ -261,8 +262,9 @@ Zendeskからチケットを削除
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | ユーザーデータとメタデータ |
| `users` | array | ユーザーオブジェクトの配列 |
| `paging` | object | ページネーション情報 |
| `metadata` | object | 操作メタデータ |
### `zendesk_get_user`
@@ -281,8 +283,8 @@ ZendeskからIDで単一のユーザーを取得
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | ユーザーデータ |
| `user` | object | ユーザーオブジェクト |
| `metadata` | object | 操作メタデータ |
### `zendesk_get_current_user`
@@ -300,8 +302,8 @@ Zendeskから現在認証されているユーザーを取得
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 現在のユーザーデータ |
| `user` | object | 現在のユーザーオブジェクト |
| `metadata` | object | 操作メタデータ |
### `zendesk_search_users`
@@ -323,8 +325,9 @@ Zendeskから現在認証されているユーザーを取得
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | ユーザー検索結果 |
| `users` | array | ユーザーオブジェクトの配列 |
| `paging` | object | ページネーション情報 |
| `metadata` | object | 操作メタデータ |
### `zendesk_create_user`
@@ -350,8 +353,8 @@ Zendeskに新しいユーザーを作成する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 作成功ステータス |
| `output` | object | 作成されたユーザーデータ |
| `user` | object | 作成されたユーザーオブジェクト |
| `metadata` | object | 操作メタデータ |
### `zendesk_create_users_bulk`
@@ -370,8 +373,8 @@ Zendeskに新しいユーザーを作成する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 一括作成ジョブのステータ |
| `jobStatus` | object | ジョブステータスオブジェクト |
| `metadata` | object | 操作メタデータ |
### `zendesk_update_user`
@@ -398,8 +401,8 @@ Zendeskの既存ユーザーを更新する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 更新されたユーザーデータ |
| `user` | object | 更新されたユーザーオブジェクト |
| `metadata` | object | 操作メタデータ |
### `zendesk_update_users_bulk`
@@ -418,8 +421,8 @@ Zendeskの既存ユーザーを更新する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 一括更新ジョブステータ |
| `jobStatus` | object | ジョブステータスオブジェクト |
| `metadata` | object | 操作メタデータ |
### `zendesk_delete_user`
@@ -438,8 +441,8 @@ Zendeskからユーザーを削除する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 削除されたユーザーデータ |
| `deleted` | boolean | 削除成功 |
| `metadata` | object | 操作メタデータ |
### `zendesk_get_organizations`
@@ -459,8 +462,9 @@ Zendeskから組織のリストを取得する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 組織データとメタデータ |
| `organizations` | array | 組織オブジェクトの配列 |
| `paging` | object | ページネーション情報 |
| `metadata` | object | 操作メタデータ |
### `zendesk_get_organization`
@@ -479,8 +483,8 @@ ZendeskからIDで単一の組織を取得する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 組織データ |
| `organization` | object | 組織オブジェクト |
| `metadata` | object | 操作メタデータ |
### `zendesk_autocomplete_organizations`
@@ -501,8 +505,9 @@ ZendeskからIDで単一の組織を取得する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 組織検索結果 |
| `organizations` | array | 組織オブジェクトの配列 |
| `paging` | object | ページネーション情報 |
| `metadata` | object | 操作メタデータ |
### `zendesk_create_organization`
@@ -526,8 +531,8 @@ Zendeskで新しい組織を作成する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 作成功ステータス |
| `output` | object | 作成された組織データ |
| `organization` | object | 作成された組織オブジェクト |
| `metadata` | object | 操作メタデータ |
### `zendesk_create_organizations_bulk`
@@ -546,8 +551,8 @@ Zendeskで新しい組織を作成する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 一括作成ジョブステータ |
| `jobStatus` | object | ジョブステータスオブジェクト |
| `metadata` | object | 操作メタデータ |
### `zendesk_update_organization`
@@ -572,8 +577,8 @@ Zendeskで既存の組織を更新する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 更新された組織データ |
| `organization` | object | 更新された組織オブジェクト |
| `metadata` | object | 操作メタデータ |
### `zendesk_delete_organization`
@@ -592,8 +597,8 @@ Zendeskから組織を削除する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 削除された組織データ |
| `deleted` | boolean | 削除成功 |
| `metadata` | object | 操作メタデータ |
### `zendesk_search`
@@ -616,8 +621,9 @@ Zendeskでチケット、ユーザー、組織を横断した統合検索
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 検索結果 |
| `results` | array | 結果オブジェクトの配列 |
| `paging` | object | ページネーション情報 |
| `metadata` | object | 操作メタデータ |
### `zendesk_search_count`
@@ -636,8 +642,8 @@ Zendeskでクエリに一致する検索結果の数をカウント
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功ステータス |
| `output` | object | 検索カウント結果 |
| `count` | number | 一致する結果の数 |
| `metadata` | object | 操作メタデータ |
## 注意事項

View File

@@ -27,14 +27,16 @@ curl -H "x-api-key: YOUR_API_KEY" \
"limits": {
"workflowExecutionRateLimit": {
"sync": {
"limit": 60, // Max sync workflow executions per minute
"remaining": 58, // Remaining sync workflow executions
"resetAt": "..." // When the window resets
"requestsPerMinute": 60, // Sustained rate limit per minute
"maxBurst": 120, // Maximum burst capacity
"remaining": 118, // Current tokens available (up to maxBurst)
"resetAt": "..." // When tokens next refill
},
"async": {
"limit": 60, // Max async workflow executions per minute
"remaining": 59, // Remaining async workflow executions
"resetAt": "..." // When the window resets
"requestsPerMinute": 200, // Sustained rate limit per minute
"maxBurst": 400, // Maximum burst capacity
"remaining": 398, // Current tokens available
"resetAt": "..." // When tokens next refill
}
},
"usage": {
@@ -46,7 +48,7 @@ curl -H "x-api-key: YOUR_API_KEY" \
}
```
**注意:** 响应正文中的速率限制是针对工作流执行。调用此 API 端点的速率限制在响应头中(`X-RateLimit-*`)。
**注意:** 速率限制使用令牌桶算法。`remaining` 可以超过 `requestsPerMinute` 达到 `maxBurst`,当您最近未使用全部配额时,允许突发流量。响应正文中的速率限制适用于工作流执行。调用此 API 端点的速率限制在响应头中(`X-RateLimit-*`)。
### 查询日志
@@ -110,13 +112,15 @@ curl -H "x-api-key: YOUR_API_KEY" \
"limits": {
"workflowExecutionRateLimit": {
"sync": {
"limit": 60,
"remaining": 58,
"requestsPerMinute": 60,
"maxBurst": 120,
"remaining": 118,
"resetAt": "2025-01-01T12:35:56.789Z"
},
"async": {
"limit": 60,
"remaining": 59,
"requestsPerMinute": 200,
"maxBurst": 400,
"remaining": 398,
"resetAt": "2025-01-01T12:35:56.789Z"
}
},
@@ -190,13 +194,15 @@ curl -H "x-api-key: YOUR_API_KEY" \
"limits": {
"workflowExecutionRateLimit": {
"sync": {
"limit": 60,
"remaining": 58,
"requestsPerMinute": 60,
"maxBurst": 120,
"remaining": 118,
"resetAt": "2025-01-01T12:35:56.789Z"
},
"async": {
"limit": 60,
"remaining": 59,
"requestsPerMinute": 200,
"maxBurst": 400,
"remaining": 398,
"resetAt": "2025-01-01T12:35:56.789Z"
}
},
@@ -482,17 +488,25 @@ curl -H "x-api-key: YOUR_API_KEY" \
## 速率限制
API 实现了速率限制以确保公平使用
API 使用 **令牌桶算法** 进行速率限制,在提供公平使用的同时允许突发流量
- **免费计划**:每分钟 10 次请求
- **专业计划**:每分钟 30 次请求
- **团队计划**:每分钟 60 次请求
- **企业计划**:自定义限制
| 计划 | 请求/分钟 | 突发容量 |
|------|-----------|----------|
| 免费 | 10 | 20 |
| 专业版 | 30 | 60 |
| 团队版 | 60 | 120 |
| 企业版 | 120 | 240 |
速率限制信息包含在响应标头中:
- `X-RateLimit-Limit`:每个窗口的最大请求数
- `X-RateLimit-Remaining`:当前窗口中剩余的请求数
- `X-RateLimit-Reset`:窗口重置时的 ISO 时间戳
**工作原理:**
- 令牌以 `requestsPerMinute` 的速率补充
- 空闲时最多可累积 `maxBurst` 个令牌
- 每个请求消耗 1 个令牌
- 突发容量允许处理流量高峰
速率限制信息包含在响应头中:
- `X-RateLimit-Limit`:每分钟请求数(补充速率)
- `X-RateLimit-Remaining`:当前可用令牌数
- `X-RateLimit-Reset`:令牌下次补充的 ISO 时间戳
## 示例:轮询新日志
@@ -541,7 +555,7 @@ async function pollLogs() {
setInterval(pollLogs, 30000);
```
## 示例:处理 Webhook
## 示例:处理 Webhooks
```javascript
import express from 'express';

View File

@@ -147,8 +147,20 @@ curl -X GET -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" htt
{
"success": true,
"rateLimit": {
"sync": { "isLimited": false, "limit": 10, "remaining": 10, "resetAt": "2025-09-08T22:51:55.999Z" },
"async": { "isLimited": false, "limit": 50, "remaining": 50, "resetAt": "2025-09-08T22:51:56.155Z" },
"sync": {
"isLimited": false,
"requestsPerMinute": 25,
"maxBurst": 50,
"remaining": 50,
"resetAt": "2025-09-08T22:51:55.999Z"
},
"async": {
"isLimited": false,
"requestsPerMinute": 200,
"maxBurst": 400,
"remaining": 400,
"resetAt": "2025-09-08T22:51:56.155Z"
},
"authType": "api"
},
"usage": {
@@ -159,6 +171,11 @@ curl -X GET -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" htt
}
```
**速率限制字段:**
- `requestsPerMinute`:持续速率限制(令牌以此速率补充)
- `maxBurst`:您可以累积的最大令牌数(突发容量)
- `remaining`:当前可用令牌数(最多可达 `maxBurst`
**响应字段:**
- `currentPeriodCost` 反映当前计费周期的使用情况
- `limit` 来源于个人限制(免费/专业)或组织池限制(团队/企业)
@@ -170,9 +187,9 @@ curl -X GET -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" htt
| 计划 | 每月使用限制 | 速率限制(每分钟) |
|------|-------------------|-------------------------|
| **免费** | $10 | 5 同步, 10 异步 |
| **专业** | $100 | 10 同步, 50 异步 |
| **团队** | $500共享 | 50 同步, 100 异步 |
| **免费** | $10 | 5 同步10 异步 |
| **专业** | $100 | 10 同步50 异步 |
| **团队** | $500共享 | 50 同步100 异步 |
| **企业** | 自定义 | 自定义 |
## 计费模式
@@ -187,9 +204,9 @@ Sim 使用 **基础订阅 + 超额** 的计费模式:
- 使用超过 $20 → 月底支付超额部分
- 示例:$35 使用 = $20订阅+ $15超额
**团队计划($40//月):**
- 团队成员共享使用额度
- 超额部分根据团队总使用量计算
**团队计划($40/每席位/月):**
- 团队成员之间共享使用额度
- 超额费用根据团队总使用量计算
- 组织所有者收到一张账单
**企业计划:**
@@ -198,20 +215,20 @@ Sim 使用 **基础订阅 + 超额** 的计费模式:
### 阈值计费
当未结算的超额费用达到 $50 时Sim 会自动结算全部未结算金额。
当未计费的超额费用达到 $50 时Sim 会自动计费全额未计费金额。
**示例:**
- 第 10 天:$70 超额 → 立即结算 $70
- 第 15 天:额外使用 $35总计 $105→ 已结算,无需操作
- 第 20 天:再使用 $50总计 $155结算 $85→ 立即结算 $85
- 第 10 天:$70 超额 → 立即计费 $70
- 第 15 天:额外使用 $35总计 $105→ 已计费,无需操作
- 第 20 天:再使用 $50总计 $155计费 $85→ 立即计费 $85
这将大量的超额费用分散到整个月,而不是在周期结束时收到一张大账单。
将大量的超额费用分散到整个月,而不是在周期结束时收到一张大账单。
## 成本管理最佳实践
1. **定期监控**:经常检查您的使用仪表板,避免意外情况
2. **设定预算**:使用计划限制作为支出控制的护栏
3. **优化工作流程**:审查高成本的执行情况,优化提示或模型选择
3. **优化工作流程**:审查高成本的执行操作,优化提示或模型选择
4. **使用合适的模型**:根据任务需求匹配模型复杂度
5. **批量处理相似任务**:尽可能合并多个请求以减少开销

View File

@@ -46,11 +46,11 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| `type` | string | 否 | 搜索类型neural、keyword、auto 或 fast \(默认值: auto\) |
| `includeDomains` | string | 否 | 用逗号分隔的域名列表,包含在结果中 |
| `excludeDomains` | string | 否 | 用逗号分隔的域名列表,从结果中排除 |
| `category` | string | 否 | 按类别筛选company、research_paper、news_article、pdf、github、tweet、movie、song、personal_site |
| `category` | string | 否 | 按类别筛选company、research paper、news、pdf、github、tweet、personal site、linkedin profile、financial report |
| `text` | boolean | 否 | 在结果中包含完整文本内容 \(默认值: false\) |
| `highlights` | boolean | 否 | 在结果中包含高亮片段 \(默认值: false\) |
| `summary` | boolean | 否 | 在结果中包含 AI 生成的摘要 \(默认值: false\) |
| `livecrawl` | string | 否 | 实时爬取模式:always、fallback 或 never \(默认值: never\) |
| `livecrawl` | string | 否 | 实时爬取模式:never \(默认值\)、fallback、always 或 preferred \(始终尝试实时爬取,失败时回退到缓存\) |
| `apiKey` | string | 是 | Exa AI API 密钥 |
#### 输出
@@ -67,13 +67,13 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 必需 | 描述 |
| --------- | ---- | -------- | ----------- |
| `urls` | string | 是 | 用逗号分隔的 URL 列表,用于获取内容 |
| `text` | boolean | 否 | 如果为 true则返回默认设置的完整页面文本。如果为 false则禁用文本返回。 |
| `urls` | string | 是 | 用逗号分隔的 URL 列表,用于检索内容 |
| `text` | boolean | 否 | 如果为 true则返回具有默认设置的完整页面文本。如果为 false则禁用文本返回。 |
| `summaryQuery` | string | 否 | 用于指导摘要生成的查询 |
| `subpages` | number | 否 | 从提供的 URL 爬取的子页面数量 |
| `subpages` | number | 否 | 从提供的 URL 爬取的子页面数量 |
| `subpageTarget` | string | 否 | 用逗号分隔的关键字,用于定位特定子页面 \(例如:"docs,tutorial,about"\) |
| `highlights` | boolean | 否 | 在结果中包含高亮片段 \(默认值: false\) |
| `livecrawl` | string | 否 | 实时爬取模式:always、fallback 或 never \(默认值: never\) |
| `livecrawl` | string | 否 | 实时爬取模式:never \(默认值\)、fallback、always 或 preferred \(始终尝试实时爬取,失败时回退到缓存\) |
| `apiKey` | string | 是 | Exa AI API 密钥 |
#### 输出
@@ -90,16 +90,15 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 必需 | 描述 |
| --------- | ---- | -------- | ----------- |
| `url` | string | 是 | 查找相似链接的 URL |
| `url` | string | 是 | 用于查找相似链接的 URL |
| `numResults` | number | 否 | 要返回的相似链接数量 \(默认值: 10最大值: 25\) |
| `text` | boolean | 否 | 是否包含相似页面的完整文本 |
| `includeDomains` | string | 否 | 用逗号分隔的域名列表,包含在结果中 |
| `excludeDomains` | string | 否 | 用逗号分隔的域名列表,从结果中排除 |
| `excludeSourceDomain` | boolean | 否 | 从结果中排除源域名 \(默认值: false\) |
| `category` | string | 否 | 按类别筛选company、research_paper、news_article、pdf、github、tweet、movie、song、personal_site |
| `highlights` | boolean | 否 | 在结果中包含高亮片段 \(默认值: false\) |
| `summary` | boolean | 否 | 在结果中包含 AI 生成的摘要 \(默认值: false\) |
| `livecrawl` | string | 否 | 实时爬取模式:always、fallback 或 never \(默认值: never\) |
| `livecrawl` | string | 否 | 实时爬取模式:never \(默认值\), fallback, always, 或 preferred \(始终尝试实时爬取,失败时回退到缓存\) |
| `apiKey` | string | 是 | Exa AI API 密钥 |
#### 输出

View File

@@ -49,8 +49,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 市场数据和元数据 |
| `markets` | array | 市场对象的数组 |
| `paging` | object | 用于获取更多结果的分页游标 |
### `kalshi_get_market`
@@ -66,8 +66,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 市场数据和元数据 |
| `market` | object | 包含详细信息的市场对象 |
### `kalshi_get_events`
@@ -87,8 +86,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 事件数据和元数据 |
| `events` | array | 事件对象的数组 |
| `paging` | object | 用于获取更多结果的分页游标 |
### `kalshi_get_event`
@@ -105,8 +104,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 事件数据和元数据 |
| `event` | object | 包含详细信息的事件对象 |
### `kalshi_get_balance`
@@ -123,8 +121,10 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 余额数据和元数据 |
| `balance` | number | 账户余额(以分为单位) |
| `portfolioValue` | number | 投资组合价值(以分为单位) |
| `balanceDollars` | number | 账户余额(以美元为单位) |
| `portfolioValueDollars` | number | 投资组合价值(以美元为单位) |
### `kalshi_get_positions`
@@ -146,8 +146,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 位置数据和元数据 |
| `positions` | array | 持仓对象的数组 |
| `paging` | object | 用于获取更多结果的分页游标 |
### `kalshi_get_orders`
@@ -169,8 +169,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 订单数据和元数据 |
| `orders` | array | 订单对象的数组 |
| `paging` | object | 用于获取更多结果的分页游标 |
### `kalshi_get_order`
@@ -188,8 +188,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 订单数据 |
| `order` | object | 包含详细信息的订单对象 |
### `kalshi_get_orderbook`
@@ -205,8 +204,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 订单簿数据和元数据 |
| `orderbook` | object | 包含买入/卖出报价的订单簿 |
### `kalshi_get_trades`
@@ -223,8 +221,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 交易数据和元数据 |
| `trades` | array | 交易对象的数组 |
| `paging` | object | 用于获取更多结果的分页游标 |
### `kalshi_get_candlesticks`
@@ -244,8 +242,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 蜡烛图数据和元数据 |
| `candlesticks` | array | OHLC 蜡烛图数据的数组 |
### `kalshi_get_fills`
@@ -268,8 +265,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 填充数据和元数据 |
| `fills` | array | 成交/交易对象的数组 |
| `paging` | object | 用于获取更多结果的分页游标 |
### `kalshi_get_series_by_ticker`
@@ -285,8 +282,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 系列数据和元数据 |
| `series` | object | 包含详细信息的系列对象 |
### `kalshi_get_exchange_status`
@@ -301,8 +297,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 交易所状态数据和元数据 |
| `status` | object | 包含 trading_active 和 exchange_active 标志的交易所状态 |
### `kalshi_create_order`
@@ -336,8 +331,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 创建的订单数据 |
| `order` | object | 创建的订单对象 |
### `kalshi_cancel_order`
@@ -355,8 +349,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 已取消的订单数据 |
| `order` | object | 已取消的订单对象 |
| `reducedBy` | number | 已取消的合约数量 |
### `kalshi_amend_order`
@@ -384,8 +378,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 修改后的订单数据 |
| `order` | object | 修改后的订单对象 |
## 注意

View File

@@ -91,11 +91,11 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `status` | string | 任务状态(运行中、已完成失败) |
| `status` | string | 任务状态(已完成失败) |
| `run_id` | string | 此研究任务的唯一 ID |
| `message` | string | 状态消息(针对运行中的任务) |
| `message` | string | 状态消息 |
| `content` | object | 研究结果(基于 output_schema 结构化) |
| `basis` | array | 引用和来源,包括摘录和置信度等级 |
| `basis` | array | 引用和来源,包括推理和置信度等级 |
## 注意

View File

@@ -51,8 +51,9 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 聊天补全结果 |
| `content` | string | 生成的文本内容 |
| `model` | string | 用于生成的模型 |
| `usage` | object | 令牌使用信息 |
### `perplexity_search`
@@ -76,8 +77,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 搜索结果 |
| `results` | array | 搜索结果数组 |
## 注意事项

View File

@@ -41,18 +41,17 @@ Polymarket 集成的主要功能包括:
| 参数 | 类型 | 必需 | 描述 |
| --------- | ---- | -------- | ----------- |
| `closed` | string | 否 | 按关闭状态筛选 \(true/false\)。使用 false 仅显示活跃市场。 |
| `order` | string | 否 | 排序字段 \(例如volumeNum, liquidityNum, startDate, endDate, createdAt\) |
| `ascending` | string | 否 | 排序方向 \(true 表示升序false 表示降序\) |
| `order` | string | 否 | 排序字段 \(例如volumeNum, liquidityNum, startDate, endDate, createdAt\) |
| `ascending` | string | 否 | 排序方向 \(true 升序false 降序\) |
| `tagId` | string | 否 | 按标签 ID 筛选 |
| `limit` | string | 否 | 每页结果数量 \(推荐25-50\) |
| `limit` | string | 否 | 每页结果数量 \(最大 50\) |
| `offset` | string | 否 | 分页偏移量 \(跳过此数量的结果\) |
#### 输出
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | 布尔值 | 操作成功状态 |
| `output` | 对象 | 市场数据和元数据 |
| `markets` | array | 市场对象数组 |
### `polymarket_get_market`
@@ -69,8 +68,7 @@ Polymarket 集成的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 市场数据和元数据 |
| `market` | object | 包含详细信息的市场对象 |
### `polymarket_get_events`
@@ -81,18 +79,17 @@ Polymarket 集成的主要功能包括:
| 参数 | 类型 | 必需 | 描述 |
| --------- | ---- | -------- | ----------- |
| `closed` | string | 否 | 按关闭状态筛选 \(true/false\)。使用 false 仅显示活跃事件。 |
| `order` | string | 否 | 排序字段 \(例如volume, liquidity, startDate, endDate, createdAt\) |
| `ascending` | string | 否 | 排序方向 \(true 表示升序false 表示降序\) |
| `order` | string | 否 | 排序字段 \(例如volume, liquidity, startDate, endDate, createdAt\) |
| `ascending` | string | 否 | 排序方向 \(true 升序false 降序\) |
| `tagId` | string | 否 | 按标签 ID 筛选 |
| `limit` | string | 否 | 每页结果数量 \(推荐25-50\) |
| `limit` | string | 否 | 每页结果数量 \(最大 50\) |
| `offset` | string | 否 | 分页偏移量 \(跳过此数量的结果\) |
#### 输出
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 事件数据和元数据 |
| `events` | 数组 | 事件对象的数组 |
### `polymarket_get_event`
@@ -109,8 +106,7 @@ Polymarket 集成的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 事件数据和元数据 |
| `event` | 对象 | 包含详细信息的事件对象 |
### `polymarket_get_tags`
@@ -120,15 +116,14 @@ Polymarket 集成的主要功能包括:
| 参数 | 类型 | 必需 | 描述 |
| --------- | ---- | -------- | ----------- |
| `limit` | string | 否 | 每页结果数量 \(推荐25-50\) |
| `offset` | string | 否 | 分页偏移量 \(跳过此数量的结果\) |
| `limit` | 字符串 | 否 | 每页结果数量 \(最多 50\) |
| `offset` | 字符串 | 否 | 分页偏移量 \(跳过此数量的结果\) |
#### 输出
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 标签数据和元数据 |
| `tags` | 数组 | 包含 id、标签和 slug 的标签对象数组 |
### `polymarket_search`
@@ -138,16 +133,15 @@ Polymarket 集成的主要功能包括:
| 参数 | 类型 | 必需 | 描述 |
| --------- | ---- | -------- | ----------- |
| `query` | string | 是 | 搜索查询词 |
| `limit` | string | 否 | 每页结果数量 \(推荐25-50\) |
| `offset` | string | 否 | 分页偏移量 \(跳过此数量的结果\) |
| `query` | 字符串 | 是 | 搜索查询词 |
| `limit` | 字符串 | 否 | 每页结果数量 \(最多 50\) |
| `offset` | 字符串 | 否 | 分页偏移量 |
#### 输出
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 搜索结果和元数据 |
| `results` | 对象 | 包含市场、事件和个人资料数组的搜索结果 |
### `polymarket_get_series`
@@ -157,15 +151,14 @@ Polymarket 集成的主要功能包括:
| 参数 | 类型 | 必需 | 描述 |
| --------- | ---- | -------- | ----------- |
| `limit` | string | 否 | 每页结果数量 \(推荐25-50\) |
| `offset` | string | 否 | 分页偏移量 \(跳过此数量的结果\) |
| `limit` | 字符串 | 否 | 每页结果数量 \(最多 50\) |
| `offset` | 字符串 | 否 | 分页偏移量 \(跳过此数量的结果\) |
#### 输出
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 系列数据和元数据 |
| `series` | 数组 | 系列对象的数组 |
### `polymarket_get_series_by_id`
@@ -181,8 +174,7 @@ Polymarket 集成的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 系列数据和元数据 |
| `series` | 对象 | 包含详细信息的系列对象 |
### `polymarket_get_orderbook`
@@ -198,8 +190,7 @@ Polymarket 集成的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 订单簿数据和元数据 |
| `orderbook` | 对象 | 包含买入和卖出数组的订单簿 |
### `polymarket_get_price`
@@ -216,8 +207,7 @@ Polymarket 集成的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 价格数据和元数据 |
| `price` | 字符串 | 市场价格 |
### `polymarket_get_midpoint`
@@ -233,8 +223,7 @@ Polymarket 集成的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 中间价格数据和元数据 |
| `midpoint` | 字符串 | 中点价格 |
### `polymarket_get_price_history`
@@ -254,8 +243,7 @@ Polymarket 集成的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 价格历史数据和元数据 |
| `history` | 数组 | 包含时间戳 \(t\) 和价格 \(p\) 的价格历史条目数组 |
### `polymarket_get_last_trade_price`
@@ -271,8 +259,7 @@ Polymarket 集成的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 最新交易价格和元数据 |
| `price` | 字符串 | 最新交易价格 |
### `polymarket_get_spread`
@@ -288,8 +275,7 @@ Polymarket 集成的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 价差数据和元数据 |
| `spread` | 对象 | 包含买价和卖价的买卖价差 |
### `polymarket_get_tick_size`
@@ -305,8 +291,7 @@ Polymarket 集成的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 跳动单位和元数据 |
| `tickSize` | 字符串 | 最小价格变动单位 |
### `polymarket_get_positions`
@@ -323,8 +308,7 @@ Polymarket 集成的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 持仓数据和元数据 |
| `positions` | 数组 | 持仓对象的数组 |
### `polymarket_get_trades`
@@ -334,17 +318,16 @@ Polymarket 集成的主要功能包括:
| 参数 | 类型 | 必需 | 描述 |
| --------- | ---- | -------- | ----------- |
| `user` | string | 否 | 用户钱包地址,用于筛选交易 |
| `market` | string | 否 | 市场 ID用于筛选交易 |
| `limit` | string | 否 | 每页结果数量推荐25-50 |
| `offset` | string | 否 | 分页偏移量跳过此数量的结果 |
| `user` | 字符串 | 否 | 用于筛选交易的用户钱包地址 |
| `market` | 字符串 | 否 | 用于筛选交易的市场 ID |
| `limit` | 字符串 | 否 | 每页结果数量 \(最多 50\) |
| `offset` | 字符串 | 否 | 分页偏移量 \(跳过此数量的结果\) |
#### 输出
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 交易数据和元数据 |
| `trades` | 数组 | 交易对象的数组 |
## 注意事项

View File

@@ -342,19 +342,30 @@ SendGrid 的主要功能包括:
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `messageId` | string | 电子邮件消息 ID \(send_mail\) |
| `message` | string | 状态或成功消息 |
| `messageId` | string | 邮件消息 ID \(send_mail\) |
| `to` | string | 收件人邮箱地址 \(send_mail\) |
| `subject` | string | 邮件主题 \(send_mail, create_template_version\) |
| `id` | string | 资源 ID |
| `jobId` | string | 异步操作的作业 ID |
| `email` | string | 电子邮件地址 |
| `firstName` | string | 名字 |
| `lastName` | string | 姓氏 |
| `email` | string | 联系人邮箱地址 |
| `firstName` | string | 联系人名字 |
| `lastName` | string | 联系人姓氏 |
| `createdAt` | string | 创建时间戳 |
| `updatedAt` | string | 最后更新时间戳 |
| `listIds` | json | 联系人所属列表 ID 的数组 |
| `customFields` | json | 自定义字段值 |
| `contacts` | json | 联系人数组 |
| `contactCount` | number | 联系人数 |
| `contactCount` | number | 联系人数 |
| `lists` | json | 列表数组 |
| `templates` | json | 模板数组 |
| `message` | string | 状态或成功消息 |
| `name` | string | 资源名称 |
| `generation` | string | 模板生成方式 |
| `templates` | json | 模板数组 |
| `generation` | string | 模板生成 |
| `versions` | json | 模板版本数组 |
| `templateId` | string | 模板 ID |
| `active` | boolean | 模板版本是否激活 |
| `htmlContent` | string | HTML 内容 |
| `plainContent` | string | 纯文本内容 |
### `sendgrid_create_template_version`

View File

@@ -37,7 +37,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 必需 | 描述 |
| --------- | ---- | -------- | ----------- |
| `thought` | 字符串 | 是 | 用户在思考步骤模块中提供的思考过程或指令。 |
| `thought` | 字符串 | 是 | 您的内部推理、分析或思考过程。使用此项逐步思考问题,然后再作出回应。 |
#### 输出

View File

@@ -31,39 +31,32 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
## 工具
### `openai_chat`
### `llm_chat`
向任何支持的 LLM 提供商发送聊天完成请求
#### 输入
| 参数 | 类型 | 必需 | 描述 |
| --------- | ---- | -------- | ----------- |
| `model` | string | 是 | 要使用的模型 \(例如gpt-4o、claude-sonnet-4-5、gemini-2.0-flash\) |
| `systemPrompt` | string | 否 | 设置助手行为的系统提示 |
| `context` | string | 是 | 要发送给模型的用户消息或上下文 |
| `apiKey` | string | 否 | 提供商的 API 密钥 \(如果未为托管模型提供,则使用平台密钥\) |
| `temperature` | number | 否 | 响应生成的温度 \(0-2\) |
| `maxTokens` | number | 否 | 响应的最大令牌数 |
| `azureEndpoint` | string | 否 | Azure OpenAI 端点 URL |
| `azureApiVersion` | string | 否 | Azure OpenAI API 版本 |
#### 输出
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `content` | string | 翻译后的文本 |
| `model` | string | 使用的模型 |
| `tokens` | json | 令牌使用情况 |
| `content` | string | 生成的响应内容 |
| `model` | string | 用于生成的模型 |
| `tokens` | object | 令牌使用信息 |
### `anthropic_chat`
## 注意
### `google_chat`
#### 输入
| 参数 | 类型 | 必需 | 描述 |
| --------- | ---- | -------- | ----------- |
#### 输出
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `content` | string | 翻译后的文本 |
| `model` | string | 使用的模型 |
| `tokens` | json | Token 使用情况 |
## 注意事项
- 类别:`tools`
- 类型:`translate`
- 类别: `tools`
- 类型: `translate`

View File

@@ -250,13 +250,13 @@ Sim 与 WordPress 的集成让您的代理可以自动化处理重要的网站
| 参数 | 类型 | 必需 | 描述 |
| --------- | ---- | -------- | ----------- |
| `siteId` | 字符串 | 是 | WordPress.com 站点 ID 或域名例如12345678 或 mysite.wordpress.com |
| `file` | 字符串 | | Base64 编码的文件数据或用于获取文件的 URL |
| `filename` | 字符串 | | 带扩展名的文件名(例如image.jpg |
| `title` | 字符串 | 否 | 媒体标题 |
| `caption` | 字符串 | 否 | 媒体说明 |
| `altText` | 字符串 | 否 | 用于无障碍的替代文本 |
| `description` | 字符串 | 否 | 媒体描述 |
| `siteId` | string | 是 | WordPress.com 站点 ID 或域名 \(例如12345678 或 mysite.wordpress.com\) |
| `file` | file | | 要上传的文件 \(UserFile 对象\) |
| `filename` | string | | 可选的文件名覆盖 \(例如image.jpg\) |
| `title` | string | 否 | 媒体标题 |
| `caption` | string | 否 | 媒体说明 |
| `altText` | string | 否 | 用于无障碍的替代文本 |
| `description` | string | 否 | 媒体描述 |
#### 输出

View File

@@ -170,28 +170,9 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| --------- | ---- | ----------- |
| `items` | 数组 | 播放列表中的视频数组 |
### `youtube_related_videos`
查找与特定 YouTube 视频相关的视频。
#### 输入
| 参数 | 类型 | 必需 | 描述 |
| --------- | ---- | -------- | ----------- |
| `videoId` | 字符串 | 是 | 用于查找相关视频的 YouTube 视频 ID |
| `maxResults` | 数字 | 否 | 返回相关视频的最大数量 \(1-50\) |
| `pageToken` | 字符串 | 否 | 分页的页面令牌 |
| `apiKey` | 字符串 | 是 | YouTube API 密钥 |
#### 输出
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `items` | 数组 | 相关视频的数组 |
### `youtube_comments`
从 YouTube 视频获取评论。
从 YouTube 视频获取评论。
#### 输入
@@ -207,7 +188,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `items` | 数组 | 视频评论数组 |
| `items` | 数组 | 视频中的评论数组 |
## 注意事项

View File

@@ -73,8 +73,9 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 工单数据和元数据 |
| `tickets` | array | 工单对象数组 |
| `paging` | object | 分页信息 |
| `metadata` | object | 操作元数据 |
### `zendesk_get_ticket`
@@ -93,8 +94,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 工单数据 |
| `ticket` | object | 工单对象 |
| `metadata` | object | 操作元数据 |
### `zendesk_create_ticket`
@@ -122,8 +123,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 创建的工单数据 |
| `ticket` | object | 创建的工单对象 |
| `metadata` | object | 操作元数据 |
### `zendesk_create_tickets_bulk`
@@ -142,8 +143,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 批量创建任务状态 |
| `jobStatus` | object | 任务状态对象 |
| `metadata` | object | 操作元数据 |
### `zendesk_update_ticket`
@@ -171,8 +172,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 更新的工单数据 |
| `ticket` | object | 更新的工单对象 |
| `metadata` | object | 操作元数据 |
### `zendesk_update_tickets_bulk`
@@ -196,8 +197,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 批量更新任务状态 |
| `jobStatus` | object | 任务状态对象 |
| `metadata` | object | 操作元数据 |
### `zendesk_delete_ticket`
@@ -216,8 +217,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 删除确认 |
| `deleted` | boolean | 删除成功 |
| `metadata` | object | 操作元数据 |
### `zendesk_merge_tickets`
@@ -238,8 +239,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 合并任务状态 |
| `jobStatus` | object | 任务状态对象 |
| `metadata` | object | 操作元数据 |
### `zendesk_get_users`
@@ -261,8 +262,9 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 用户数据和元数据 |
| `users` | array | 用户对象数组 |
| `paging` | object | 分页信息 |
| `metadata` | object | 操作元数据 |
### `zendesk_get_user`
@@ -281,8 +283,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 用户数据 |
| `user` | object | 用户对象 |
| `metadata` | object | 操作元数据 |
### `zendesk_get_current_user`
@@ -300,8 +302,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 当前用户数据 |
| `user` | object | 当前用户对象 |
| `metadata` | object | 操作元数据 |
### `zendesk_search_users`
@@ -323,8 +325,9 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 用户搜索结果 |
| `users` | array | 用户对象数组 |
| `paging` | object | 分页信息 |
| `metadata` | object | 操作元数据 |
### `zendesk_create_user`
@@ -350,8 +353,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 创建的用户数据 |
| `user` | object | 创建的用户对象 |
| `metadata` | object | 操作元数据 |
### `zendesk_create_users_bulk`
@@ -370,8 +373,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 批量创建任务状态 |
| `jobStatus` | object | 任务状态对象 |
| `metadata` | object | 操作元数据 |
### `zendesk_update_user`
@@ -398,8 +401,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 更新的用户数据 |
| `user` | object | 更新的用户对象 |
| `metadata` | object | 操作元数据 |
### `zendesk_update_users_bulk`
@@ -418,8 +421,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 批量更新任务状态 |
| `jobStatus` | object | 任务状态对象 |
| `metadata` | object | 操作元数据 |
### `zendesk_delete_user`
@@ -438,8 +441,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 已删除的用户数据 |
| `deleted` | boolean | 删除成功 |
| `metadata` | object | 操作元数据 |
### `zendesk_get_organizations`
@@ -459,8 +462,9 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 组织数据和元数据 |
| `organizations` | array | 组织对象数组 |
| `paging` | object | 分页信息 |
| `metadata` | object | 操作元数据 |
### `zendesk_get_organization`
@@ -479,8 +483,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 组织数据 |
| `organization` | object | 组织对象 |
| `metadata` | object | 操作元数据 |
### `zendesk_autocomplete_organizations`
@@ -501,8 +505,9 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 组织搜索结果 |
| `organizations` | array | 组织对象数组 |
| `paging` | object | 分页信息 |
| `metadata` | object | 操作元数据 |
### `zendesk_create_organization`
@@ -526,8 +531,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 创建的组织数据 |
| `organization` | object | 创建的组织对象 |
| `metadata` | object | 操作元数据 |
### `zendesk_create_organizations_bulk`
@@ -546,8 +551,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 批量创建任务状态 |
| `jobStatus` | object | 任务状态对象 |
| `metadata` | object | 操作元数据 |
### `zendesk_update_organization`
@@ -572,8 +577,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 更新后的组织数据 |
| `organization` | object | 更新的组织对象 |
| `metadata` | object | 操作元数据 |
### `zendesk_delete_organization`
@@ -592,8 +597,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 已删除的组织数据 |
| `deleted` | boolean | 删除成功 |
| `metadata` | object | 操作元数据 |
### `zendesk_search`
@@ -616,8 +621,9 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 搜索结果 |
| `results` | array | 结果对象的数组 |
| `paging` | object | 分页信息 |
| `metadata` | object | 操作元数据 |
### `zendesk_search_count`
@@ -636,8 +642,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `success` | boolean | 操作成功状态 |
| `output` | object | 搜索计数结果 |
| `count` | number | 匹配结果的数量 |
| `metadata` | object | 操作元数据 |
## 注意事项

View File

@@ -278,20 +278,14 @@ checksums:
content/42: 135fd99536465a8de4cd18eae682128f
content/43: bcadfc362b69078beee0088e5936c98b
content/44: e4824dd7acff8ac2bba07075c1bf5555
content/45: 09cf2346cf5ce107fae6c9f05ff79340
content/46: 00c6430ff11748e620cfe9309f9b76d0
content/45: 29d730395e60843523997a5440265c2b
content/46: f40cf8dcdbca5bdabddd2ccafe510827
content/47: 371d0e46b4bd2c23f559b8bc112f6955
content/48: a57680d79a2db023cabd03d74a357037
content/48: fb04fb808287bc585c7bef1622cc5929
content/49: bcadfc362b69078beee0088e5936c98b
content/50: f189d5068833ff066248bdec22ac14da
content/51: 29d730395e60843523997a5440265c2b
content/52: f40cf8dcdbca5bdabddd2ccafe510827
content/53: 371d0e46b4bd2c23f559b8bc112f6955
content/54: fb04fb808287bc585c7bef1622cc5929
content/55: bcadfc362b69078beee0088e5936c98b
content/56: 766eb78674c8d8a40cfd13eca533b7a4
content/57: b3f310d5ef115bea5a8b75bf25d7ea9a
content/58: 9f8b3ebb53dbde8abfb139b4a8bc0396
content/50: 766eb78674c8d8a40cfd13eca533b7a4
content/51: b3f310d5ef115bea5a8b75bf25d7ea9a
content/52: 9f8b3ebb53dbde8abfb139b4a8bc0396
31b5f846eb7f4b1751b4bd9233cc3e12:
meta/title: dc96f9cb0985d77c30f55927723f0175
meta/description: 15c7d592f04655f534458cd82180ba1f
@@ -560,19 +554,14 @@ checksums:
content/5: 821e6394b0a953e2b0842b04ae8f3105
content/6: 3e7ad55e438e18098a384877ec5d62e7
content/7: 9c8aa3f09c9b2bd50ea4cdff3598ea4e
content/8: ad28bec163e3e627e8741423286840bd
content/9: 371d0e46b4bd2c23f559b8bc112f6955
content/10: d71b6bb8e2dd6ce98101aec6a1dd77f2
content/11: bcadfc362b69078beee0088e5936c98b
content/12: adefb6abb806004812f51485919b8bf5
content/13: 6f45ac035872e548e43385c22ddac507
content/14: 8e7b622079252125355db846fbde9d96
content/15: 371d0e46b4bd2c23f559b8bc112f6955
content/16: d71b6bb8e2dd6ce98101aec6a1dd77f2
content/17: bcadfc362b69078beee0088e5936c98b
content/18: adefb6abb806004812f51485919b8bf5
content/19: b3f310d5ef115bea5a8b75bf25d7ea9a
content/20: 2bcdb5144797b6a7dd2d266331c9b95e
content/8: 6325adefb6e1520835225285b18b6a45
content/9: b7fa85fce9c7476fe132df189e27dac1
content/10: 371d0e46b4bd2c23f559b8bc112f6955
content/11: 985f435f721b00df4d13fa0a5552684c
content/12: bcadfc362b69078beee0088e5936c98b
content/13: 6af66efd0da20944a87fdb8d9defa358
content/14: b3f310d5ef115bea5a8b75bf25d7ea9a
content/15: 2bcdb5144797b6a7dd2d266331c9b95e
403c3b5c22a4dfef9c7dcfe7e5668348:
meta/title: 6ea728a87df2a68e40938bba653845d2
meta/description: 19eaaa8cac2b54c15a1c3f7d61b52457
@@ -588,7 +577,7 @@ checksums:
content/9: 55d3faa55bd37eb2f4ab74379410a5a9
content/10: b52a2ab3e371e2a6eca0d16c4b628f69
content/11: 371d0e46b4bd2c23f559b8bc112f6955
content/12: 870dadb88971694d23e19c63009e16e0
content/12: f629a1a44ad4cf0d2dd3eb43e8bdf5f9
content/13: bcadfc362b69078beee0088e5936c98b
content/14: 0fd095f0d3f37eac2be2be452b3ba1dc
content/15: b3f310d5ef115bea5a8b75bf25d7ea9a
@@ -1316,13 +1305,13 @@ checksums:
content/11: 371d0e46b4bd2c23f559b8bc112f6955
content/12: 6abb969d0ca1807d6401266ab8f50975
content/13: bcadfc362b69078beee0088e5936c98b
content/14: 8e69b5b320bb75e70df03437e894c776
content/14: 57008e827f0df4dc136962228c1c74a7
content/15: 3a3c262e00210fad2ff657eaf5aac97d
content/16: 10de36438cb6e1cec1535bee5cb73699
content/17: 371d0e46b4bd2c23f559b8bc112f6955
content/18: 0bd5204d7085a5b9dcfc82e1b3ed2714
content/19: bcadfc362b69078beee0088e5936c98b
content/20: d84fb23e5dfc9d41a177acd7dfb28e72
content/20: fbab8b16c84eb1264e43e99da04006bd
content/21: b3f310d5ef115bea5a8b75bf25d7ea9a
content/22: 568b0cef19d3e81ea300a5621ad42ab5
25de8a658947e92bca61370185aeda9d:
@@ -1354,7 +1343,7 @@ checksums:
content/23: 371d0e46b4bd2c23f559b8bc112f6955
content/24: 5a56ae7f7ba1a4385da43f822782b024
content/25: bcadfc362b69078beee0088e5936c98b
content/26: 98c3ad979dfde09dc41d1b6e370b38f5
content/26: 2f75132ca9307c0a90456a238e9a742b
content/27: b3f310d5ef115bea5a8b75bf25d7ea9a
content/28: 04857d373a5405ac83582efac37e1dc1
153fdbf063881f22370488d6b1b177be:
@@ -3513,19 +3502,19 @@ checksums:
content/9: b012197e65487ff167f2cbd78da85eac
content/10: 0cc2f207ef4e2f3ac0acf4cf9b3aba2c
content/11: 371d0e46b4bd2c23f559b8bc112f6955
content/12: 10980279b69aa6c6a1464f263ca25be6
content/12: 989c1aa1d50cf098f58aa7d1589f05dd
content/13: bcadfc362b69078beee0088e5936c98b
content/14: 3d15775cf6e0105686ea02f90008b64b
content/15: 4499d456d0b0166932b1cdcc55c21396
content/16: 58f73a8f3dfd938f5d211a9ce5df6770
content/17: 371d0e46b4bd2c23f559b8bc112f6955
content/18: cbf55c968ed5f0917b7269bf1eaa6afc
content/18: f1ad77da5d66a7bae33ec46c56b95ddf
content/19: bcadfc362b69078beee0088e5936c98b
content/20: e04f86af43c8bdc3e61d3935ba9e85fb
content/21: 9c18dfa51781c1e30cb2e2741b92b091
content/22: 8f86d82c91437004767ce62918f5ede6
content/23: 371d0e46b4bd2c23f559b8bc112f6955
content/24: be02ad818111831d726d6bca32c59fe7
content/24: e73c4bd6da7dbf85f5af136d078d0500
content/25: bcadfc362b69078beee0088e5936c98b
content/26: 9176672ef538cc624ee574133f9949e7
content/27: c9afca4e81299f2f696c4e988878b18d
@@ -4578,25 +4567,26 @@ checksums:
content/32: 7b5e2207a0d93fd434b92f2f290a8dd5
content/33: f950b8f58af1973a3e00393d860bce02
content/34: d5ff07fec9455183e1d93f7ddf1dab1b
content/35: 405286ad5695582bf752b48aeeef3928
content/36: 7bb928aba33a4013ad5f08487da5bbf9
content/37: dbbf313837f13ddfa4a8843d71cb9cc4
content/38: cf10560ae6defb8ee5da344fc6509f6e
content/39: c5dc6e5de6e45b17ee1f5eb567a18e2f
content/40: 332dab0588fb35dabb64b674ba6120eb
content/41: 714b3f99b0a8686bbb3434deb1f682b3
content/42: ba18ac99184b17d7e49bd1abdc814437
content/43: bed2b629274d55c38bd637e6a28dbc4a
content/44: 71487ae6f6fb1034d1787456de442e6d
content/45: 137d9874cf5ec8d09bd447f224cc7a7c
content/46: 6b5b4c3b2f98b8fc7dd908fef2605ce8
content/47: 3af6812662546ce647a55939241fd88e
content/48: 6a4d7f0ccb8c28303251d1ef7b3dcca7
content/49: 5dce779f77cc2b0abf12802a833df499
content/50: aa47ff01b631252f024eaaae0c773e42
content/51: 1266d1c7582bb617cdef56857be34f30
content/52: c2cef2688104adaf6641092f43d4969a
content/53: 089fc64b4589b2eaa371de7e04c4aed9
content/35: 5d2d85e082d9fdd3859fb5c788d5f9a3
content/36: 23a7de9c5adb6e07c28c23a9d4e03dc2
content/37: 7bb928aba33a4013ad5f08487da5bbf9
content/38: dbbf313837f13ddfa4a8843d71cb9cc4
content/39: cf10560ae6defb8ee5da344fc6509f6e
content/40: c5dc6e5de6e45b17ee1f5eb567a18e2f
content/41: 332dab0588fb35dabb64b674ba6120eb
content/42: 714b3f99b0a8686bbb3434deb1f682b3
content/43: ba18ac99184b17d7e49bd1abdc814437
content/44: bed2b629274d55c38bd637e6a28dbc4a
content/45: 71487ae6f6fb1034d1787456de442e6d
content/46: 137d9874cf5ec8d09bd447f224cc7a7c
content/47: 6b5b4c3b2f98b8fc7dd908fef2605ce8
content/48: 3af6812662546ce647a55939241fd88e
content/49: 6a4d7f0ccb8c28303251d1ef7b3dcca7
content/50: 5dce779f77cc2b0abf12802a833df499
content/51: aa47ff01b631252f024eaaae0c773e42
content/52: 1266d1c7582bb617cdef56857be34f30
content/53: c2cef2688104adaf6641092f43d4969a
content/54: 089fc64b4589b2eaa371de7e04c4aed9
722959335ba76c9d0097860e2ad5a952:
meta/title: 1f5b53b9904ec41d49c1e726e3d56b40
content/0: c2b41859d63a751682f0d9aec488e581
@@ -4638,8 +4628,8 @@ checksums:
content/5: a29eaf87ca102db3f76a230f3651e767
content/6: de14c379db04a8dec394bce98e250254
content/7: 342e6c2c1e62d359bb47afe2be506c9a
content/8: fda5abcc2ed8a952f1d71fdf5e9df3f0
content/9: 25390578c4e18022ac486438a39695f5
content/8: 87ae5ed07aa69cb7816ffbadb4abf3f7
content/9: 5f75d4e4c56a5e56fd4b51aaaadc12ca
content/10: 841c6cfb0d4eb481cdb81dd170220ea0
content/11: 5fedb9fbc9445df0bf90a6d47710b1a6
content/12: c0ac34bbe27e2ff5272773e755641b5b
@@ -4648,14 +4638,14 @@ checksums:
content/15: 7f611a62b68373a068eb5dee13e53416
content/16: b05fe494158f2a347ced83b8d91a1445
content/17: 7c3a4621fd5a0e235fa98d2d3b76c12f
content/18: a192e0ca07a6cad306fa96b9942b7db4
content/18: 8afd31ae50ad8c39689c25d9ffd530bc
content/19: 3304a33dfb626c6e2267c062e8956a9d
content/20: 6f09faac9d13188e039a75ddccebc214
content/21: a450f2a3dc78405c47859dd35084e385
content/22: c0ac34bbe27e2ff5272773e755641b5b
content/23: 747141da074489515b6173c29d273403
content/24: 620d49f6fa198176bf6e59685e246e2c
content/25: fbea753ec4fb70bb0f2b61005fd3db18
content/25: b83b4c7d69d3cee9bc6873fe3da4bdc3
content/26: 3304a33dfb626c6e2267c062e8956a9d
content/27: 59c0fe74307c15d310aa16b09e835ddd
content/28: 53b824557984ddecb9b8c3e695967bc9
@@ -4708,13 +4698,14 @@ checksums:
content/75: c13873edfa750ce6caa155ef2f3f1883
content/76: 0bc07e36a42f7e25d5426b6a9deaac02
content/77: 017c829dd54fde20fa9fac7712342236
content/78: ceba97287cca68b1291142a38175d6d8
content/79: 02072ea1e956490139dbe8bbb0bc3e16
content/80: 44871834b9cb423a9978843c08623979
content/81: 0b22ed8a7e64005c666505c48e09f715
content/82: 494dcadaea5e62eddd599700511ecee5
content/83: 8332b16a0bf7a4c862f5104e9ffeb98d
content/84: 90e2f984a874a8f954ddfd127ec8178a
content/78: 6a8e85d2a7c36c724f752b93471122ea
content/79: b8e19306e2311b611318f8f89bb67971
content/80: 9ddcf8728a2fb2f293894bef4ddc98b4
content/81: 836487497de0b58afd0abff2ae5f044a
content/82: 0b22ed8a7e64005c666505c48e09f715
content/83: 494dcadaea5e62eddd599700511ecee5
content/84: 8332b16a0bf7a4c862f5104e9ffeb98d
content/85: 90e2f984a874a8f954ddfd127ec8178a
0e322683b6d10e9fa8c9a17ff15a5fb1:
meta/title: a912b3c7fb996fefccb182cf5c4a3fbc
content/0: e1f8d4b13687e7d73b5b5fbb4cb6142d
@@ -46276,157 +46267,157 @@ checksums:
content/14: 371d0e46b4bd2c23f559b8bc112f6955
content/15: 03790a503987168076530036c1493fe5
content/16: bcadfc362b69078beee0088e5936c98b
content/17: 54e111a2489eba7bdff7b7fe4376b8a7
content/17: ea45046a2ff2b4b0d87c76fc6b97c408
content/18: 52c12f35ed540fb4095071b8febadbd6
content/19: 8b22b32d6e35d60ce06e26b8cdde7516
content/20: 371d0e46b4bd2c23f559b8bc112f6955
content/21: dea74d6e978d7a0cb2eb9d17c0d75743
content/22: bcadfc362b69078beee0088e5936c98b
content/23: 1b166ea32dff5f8de92b256fe48200d7
content/23: b99563e729dbe27993fdb4d95a46d8d5
content/24: 2e0c17af85edfb251596a7774ebc148f
content/25: f062fa5ca051bc3f3d208c8932508fc0
content/26: 371d0e46b4bd2c23f559b8bc112f6955
content/27: 43a06769b0b005d1e7d9028fc4e53665
content/28: bcadfc362b69078beee0088e5936c98b
content/29: 573530e346d195727862b03b380f40fc
content/29: 72c013f869e9976ad77f19655a1e8c08
content/30: 720be6a9405a4d31e16d25dc262eddb6
content/31: 0e47014b2ea303913c7129b3e4da290a
content/32: 371d0e46b4bd2c23f559b8bc112f6955
content/33: 490e114043914c0dd0b41a8a9eaa4d9d
content/34: bcadfc362b69078beee0088e5936c98b
content/35: 2aa59cb206803bd55848d1dbc4f02c24
content/35: 6e083e5204c044c175986bc4de65142f
content/36: afab481f543682e3c895d06bffff104b
content/37: 8f7732c5ac7c54dced63abc5531979f5
content/38: 371d0e46b4bd2c23f559b8bc112f6955
content/39: a1b3b3d3a6ae1ab701d5a138a65268e9
content/40: bcadfc362b69078beee0088e5936c98b
content/41: 209979bf1ba673df324a3e121a11c8a3
content/41: 3cfb80c9ee50d78855f92714695fd099
content/42: 963255b39dc080d1e7293b700e84614c
content/43: 3423e945033f3bae0146a6909ceedc8f
content/44: 371d0e46b4bd2c23f559b8bc112f6955
content/45: d41d7acef728fbaaec3398c4ff7b8fbe
content/46: bcadfc362b69078beee0088e5936c98b
content/47: cf3e596e8dd672a8d8d4857f51e9ab50
content/47: 6e083e5204c044c175986bc4de65142f
content/48: 9ab9aad5aa1e726435361084e272a014
content/49: 1d3de7001c97111aeb341e2fb5ec815a
content/50: 371d0e46b4bd2c23f559b8bc112f6955
content/51: 1b1a3fbf365b1595c261fb87488cb2ec
content/52: bcadfc362b69078beee0088e5936c98b
content/53: aa539c46a35e99f7440fa5c0d394c2db
content/53: 3386c2debe2e941da427f5c1904fa767
content/54: 60112dd6b483b56f99f4c16c9884b050
content/55: 547bcbaeb75e52e529f102fd008326af
content/56: 371d0e46b4bd2c23f559b8bc112f6955
content/57: aba9802d4a2ab9b4515aa98efcabb951
content/58: bcadfc362b69078beee0088e5936c98b
content/59: 42baf3d6d8998277e787dff34d0c9205
content/59: 6e083e5204c044c175986bc4de65142f
content/60: 78b20224accffac2854e9a92729474ec
content/61: 060052f51f91b3181ec5161788f7b8ca
content/62: 371d0e46b4bd2c23f559b8bc112f6955
content/63: bd6bc4020abf3ef5f6e3e680d5b28a14
content/64: bcadfc362b69078beee0088e5936c98b
content/65: 1b12c9e7e17dc8a545788c0e59039e85
content/65: cf03036e119b398bf5187e8289f3f94f
content/66: 9f56a114c0953177aed24db130781e6a
content/67: f6cfb33fdbaa58daf786ba40f7c0a7c4
content/68: 371d0e46b4bd2c23f559b8bc112f6955
content/69: 3b3d202acc98df0cf6b79e902aae2d7e
content/70: bcadfc362b69078beee0088e5936c98b
content/71: e57935e8dc8c529b7cd6d1bbd625c571
content/71: 2665d3aed70b1659e3b6e14310ff6ac3
content/72: 57a45f869a822311c41280e85410615f
content/73: 28a8643f2c30a6e2af1209e7c04af013
content/74: 371d0e46b4bd2c23f559b8bc112f6955
content/75: 927aaa7ff75ed5d79f338dab1b65a5d4
content/76: bcadfc362b69078beee0088e5936c98b
content/77: b920a5d942663ab36af04d7588767c22
content/77: 81ad1310cb520e2d27438070e9336192
content/78: 7d4b7f84297208d69bf1e76e5261862a
content/79: f9849f3e5c1253f99871a4a306a1d989
content/80: 371d0e46b4bd2c23f559b8bc112f6955
content/81: c1b61507ca0c8558ae4b63c1e816bb47
content/82: bcadfc362b69078beee0088e5936c98b
content/83: 1a337e24a2607d14708da299915edc97
content/83: cf03036e119b398bf5187e8289f3f94f
content/84: 636045dc118e3ba21f9d39376650122e
content/85: 97b39365b3102e15acac67ca2dbdda19
content/86: 371d0e46b4bd2c23f559b8bc112f6955
content/87: e36155b52053b654d4d37e51bb4942e6
content/88: bcadfc362b69078beee0088e5936c98b
content/89: c9e060877ac3730e4402be772ac46ce8
content/89: 5ca2489579987217db1a2c875b96d9f9
content/90: 1432d33da621fc006a55d406d02b9a37
content/91: fc8958b8145693dba3f21b6927623f6e
content/92: 371d0e46b4bd2c23f559b8bc112f6955
content/93: 0ceb2a6d432abc7ae35c5d702efd6138
content/94: bcadfc362b69078beee0088e5936c98b
content/95: 74ae0903eb838fb659541a8db6e8fa03
content/95: 6e083e5204c044c175986bc4de65142f
content/96: d278aa56d3be3d2573356cc6408ba158
content/97: 99a1c61fceaa1bc28862fac36ce2f4e7
content/98: 371d0e46b4bd2c23f559b8bc112f6955
content/99: 10f26827078049449566a718edaabcde
content/100: bcadfc362b69078beee0088e5936c98b
content/101: a50beaa2074bd143cd62b7fc23554f60
content/101: 1b4d8e47d7af5392c3b2d26ff2ded123
content/102: 9375b46687d820ca8bf3f4cee903569f
content/103: 8adabd834d3e643b995fa5e0bcaaa91e
content/104: 371d0e46b4bd2c23f559b8bc112f6955
content/105: e4be303f29ceeae8431191379edf2299
content/106: bcadfc362b69078beee0088e5936c98b
content/107: cf3e596e8dd672a8d8d4857f51e9ab50
content/107: 6e083e5204c044c175986bc4de65142f
content/108: 75ebf9b0cd4b860936f60f62bba9b01d
content/109: ec54d03fd37c2acf17f0b6ecc27e0e5c
content/110: 371d0e46b4bd2c23f559b8bc112f6955
content/111: c36524c25d5e4d2180b2466c21444be3
content/112: bcadfc362b69078beee0088e5936c98b
content/113: cec912475a9662b72d3266e24ccfeabf
content/113: 3386c2debe2e941da427f5c1904fa767
content/114: 9bf8d3e3fadd33bf0d1a3b2f1c191d76
content/115: 04c526cf6db7ae45bd6b69f4fbe3cec0
content/116: 371d0e46b4bd2c23f559b8bc112f6955
content/117: fd010a6f907ab6d156bcc8942c7d8fab
content/118: bcadfc362b69078beee0088e5936c98b
content/119: c46faeb199b61577a56855249a26ed15
content/119: 28e1ea07f7ed31c219d900a239011abc
content/120: d11520ec23cfe64d97182999af637729
content/121: 90b9a292124bf143507cedaea38afac8
content/122: 371d0e46b4bd2c23f559b8bc112f6955
content/123: b674e049685fa8b815185f8b0999148b
content/124: bcadfc362b69078beee0088e5936c98b
content/125: ba0b2310309adab963b529e3beb0c1b2
content/125: 3701c897476e40630b0c21084e502926
content/126: 401e619e5f586d7a98cb40919eb4e8c0
content/127: cd2944a378bdf25f5195d0213a92e5c5
content/128: 371d0e46b4bd2c23f559b8bc112f6955
content/129: 69176bce8f2277c0aab5ae5cb26036b9
content/130: bcadfc362b69078beee0088e5936c98b
content/131: 5ccf80dc8b3aa024fc35aefcfd7cb271
content/131: 28e1ea07f7ed31c219d900a239011abc
content/132: 741bf0308b6d0a358c53114cab40393a
content/133: 248f9e5380cbdd539a3e18722d72bcd1
content/134: 371d0e46b4bd2c23f559b8bc112f6955
content/135: c9ad4274c5941afc9ec3949a42c511b2
content/136: bcadfc362b69078beee0088e5936c98b
content/137: cae631cdfc9299fd10c6ed5cf956df77
content/137: 3238a9fa1c649af888db930ff0181397
content/138: 88092a1d9ebf0b96cc2263677ab7875e
content/139: 74e37cd1cf3f31a08e874966f08618e9
content/140: 371d0e46b4bd2c23f559b8bc112f6955
content/141: 3c2f509845fd8ebd43e2469f231b5ec6
content/142: bcadfc362b69078beee0088e5936c98b
content/143: 74ae0903eb838fb659541a8db6e8fa03
content/143: 6e083e5204c044c175986bc4de65142f
content/144: 3fa05da9a789cbe306e6e37532ea5b20
content/145: beea05186900898272601f78c7b4ffbc
content/146: 371d0e46b4bd2c23f559b8bc112f6955
content/147: 1c20c4e275db53d81e1a26d5be248df1
content/148: bcadfc362b69078beee0088e5936c98b
content/149: caa918a2c7e8f3f319dc5dde1f40e064
content/149: 8ba2ff0291d55fa722dc1ce0f00bf90c
content/150: d697e1dc249684ff4628ab7d847ebeec
content/151: 6530f207edacc508f1fffed44c6e3eea
content/152: 371d0e46b4bd2c23f559b8bc112f6955
content/153: 8abbb8779b9abb22a555a7529dde3c21
content/154: bcadfc362b69078beee0088e5936c98b
content/155: c1dab1cc1a29f4fc13632d7616e8e1f6
content/155: 3386c2debe2e941da427f5c1904fa767
content/156: a6ac06461462f71313b9a69d33c4713f
content/157: b83a3e027493b33566e157eae7b067bb
content/158: 371d0e46b4bd2c23f559b8bc112f6955
content/159: 654d2d9f89b93a4f46b846930b957f81
content/160: bcadfc362b69078beee0088e5936c98b
content/161: d84fb23e5dfc9d41a177acd7dfb28e72
content/161: bb4850d44287327333b0400dd7aa6bd9
content/162: 5e43194e8a59fd28d7c47b73f4c21c0a
content/163: 862627f89b796dd70b796b7a56989f02
content/164: 371d0e46b4bd2c23f559b8bc112f6955
content/165: 0590e327298a51c83d743ac718562a6a
content/166: bcadfc362b69078beee0088e5936c98b
content/167: 9b8ed8eaf45789402878e0c9b179f4ad
content/167: 0b9e2bbe5ee526600c866f3c8305dc87
content/168: b3f310d5ef115bea5a8b75bf25d7ea9a
content/169: 47663eb519251c4ba49564d0e7c36e94
41b4c06bb56053083938bcf6d958856d:
@@ -47364,7 +47355,7 @@ checksums:
content/98: 371d0e46b4bd2c23f559b8bc112f6955
content/99: 23aaf026b4d450b5bd6047e3acfe9a71
content/100: bcadfc362b69078beee0088e5936c98b
content/101: 7dec1de52492e6d0575c136baa1a8f92
content/101: 0c881f3d4490d2505a6f2258481370cb
content/102: 22512b23811c21236e3ec39743e30267
content/103: e70757a620b6d53b8232652c6f224100
content/104: 371d0e46b4bd2c23f559b8bc112f6955
@@ -47759,7 +47750,7 @@ checksums:
content/68: ada572e729e01d615e2bed27d33796cb
content/69: b45b536bf6f2547c9058fca134946283
content/70: 371d0e46b4bd2c23f559b8bc112f6955
content/71: a7ca3f5cb26e88ffcbb6972d13b8e0ab
content/71: 8b0984caf1aa8d793736f1c56b8c5e9a
content/72: bcadfc362b69078beee0088e5936c98b
content/73: 820449909a823294cef60f274eb7dd70
content/74: d676ef2d8dca4c76ca28bac77c6e83cb
@@ -48104,105 +48095,105 @@ checksums:
content/10: bb5d0521074c58da3f6b997faef887ae
content/11: 147f49b8a7a56cb60c881117480a71fb
content/12: 371d0e46b4bd2c23f559b8bc112f6955
content/13: 64096864823f19e5e62d794315454652
content/13: 8630b3b5b2372b19370c72091300ad36
content/14: bcadfc362b69078beee0088e5936c98b
content/15: 7311861512fa50f2c937d080692151e8
content/15: a85d1bc2e2dcee136f814dc84e7596d9
content/16: fbb677a4902291738c3a1f8b9303fd4a
content/17: 840eb13be6ecb8f1cf652ae9ea3f3dc8
content/18: 371d0e46b4bd2c23f559b8bc112f6955
content/19: 3dca9d793f1cf0619733a4aef965f385
content/20: bcadfc362b69078beee0088e5936c98b
content/21: 4634d3f690b2b1977d4555b2d4eee739
content/21: d25c6e706996660030e1ce66bcdb9e7e
content/22: 25e7fef7953155abe4219e03058c2f94
content/23: 1ba7d90c16ff260798c13836a74aad6a
content/24: 371d0e46b4bd2c23f559b8bc112f6955
content/25: 0f201f6957d27eaf9d1c4b4eab6ec8f7
content/25: d08681763f016af95e9608b1bab4c437
content/26: bcadfc362b69078beee0088e5936c98b
content/27: a88bd6e0708b4c3017be42eabc480947
content/27: 97d28b81355d5c4baf0775ffde238873
content/28: 528f164231d5bf39fcd8849734efebde
content/29: 6f779ec439c0e4b8e42370a6d3db4a5e
content/30: 371d0e46b4bd2c23f559b8bc112f6955
content/31: dee5cd45e0dcd6d19acf9081d0c8c805
content/32: bcadfc362b69078beee0088e5936c98b
content/33: b6656b4d0cb132b838d73e758850e3f9
content/33: fdba9cfce336484ab03fc2ac32bffea9
content/34: 78c6c8168c1295ea5aaab803874a6795
content/35: 566a0073bd48010fdaeac9388c100042
content/36: 371d0e46b4bd2c23f559b8bc112f6955
content/37: 13677e745575edf438b603aa13bac889
content/37: 7ea05e4c143f6c0d96d4f99b783a56f4
content/38: bcadfc362b69078beee0088e5936c98b
content/39: edb564cb480f1375dbc22c1553b1abe4
content/39: 68e2f713a365644dd8b8cffb8e16413c
content/40: 887cc3ce330dc18a3cf13692f28a4ade
content/41: c9b49024bd518a859dc76fb30eb46f94
content/42: 371d0e46b4bd2c23f559b8bc112f6955
content/43: 6c107c32338f118f6849c576107480f4
content/43: aed6b4d347aef9692e345670dfa3e683
content/44: bcadfc362b69078beee0088e5936c98b
content/45: fb073b94e2c2ca29212d093d5b103b87
content/45: 5862b3ba004ec511ea7f1dd972145348
content/46: 5f54ceacaf53a1db8bda5399ae205831
content/47: 3401fea610db18780a989ea02d8841aa
content/48: 371d0e46b4bd2c23f559b8bc112f6955
content/49: 13677e745575edf438b603aa13bac889
content/49: 7ea05e4c143f6c0d96d4f99b783a56f4
content/50: bcadfc362b69078beee0088e5936c98b
content/51: 08aaa5e1b8c8e8c146f68228e6d53792
content/51: 30f09d8ee99a42c072c44db4703a91a4
content/52: 19a1b9442970caf8758d0ffc7f179574
content/53: 10a83dde0830cd58d4cb19dd8a0c3649
content/54: 371d0e46b4bd2c23f559b8bc112f6955
content/55: c0d2832eacdb9bd8c8d9156019956cf7
content/56: bcadfc362b69078beee0088e5936c98b
content/57: 08aaa5e1b8c8e8c146f68228e6d53792
content/57: d05aa3c271674d80fd34fe5d7c0378fd
content/58: 17afc458eef6484867c139fd212d90d9
content/59: da1f2733213d33e0509dc557bc6c80a8
content/60: 371d0e46b4bd2c23f559b8bc112f6955
content/61: 42c3b4d062ae50f6ebaf9a7460a6fc5e
content/62: bcadfc362b69078beee0088e5936c98b
content/63: d6ec19129a153bc0667e76edb9c2953d
content/63: 35bbaf81608917e5e0f8e1822fd2d3f8
content/64: cc46a76f9ce04f5557e34fca2d6562c1
content/65: 7c3b126537de352cabfc495892892c1c
content/66: 371d0e46b4bd2c23f559b8bc112f6955
content/67: 954008ba49a8401ae8a22f7092e6ca23
content/68: bcadfc362b69078beee0088e5936c98b
content/69: b3764199e9c88e86cd0fe6935e539a25
content/69: e343008f5f0c6e61e389fd7ba47bd183
content/70: c635592e55ceed2da66ad0aa9c5f0ee5
content/71: 90bf1835ccec7f5ee9b7d5ffb3965654
content/72: 371d0e46b4bd2c23f559b8bc112f6955
content/73: 42c3b4d062ae50f6ebaf9a7460a6fc5e
content/74: bcadfc362b69078beee0088e5936c98b
content/75: 27eb346aea67fe81ed94fee3fa0e8bdf
content/75: 3b6142572f73f6f6a58951d0048010f5
content/76: a020f0e3fe6a3496a735851f230bce15
content/77: ca39beca950791eb4a75a8da900114bf
content/78: 371d0e46b4bd2c23f559b8bc112f6955
content/79: 2f5b4e0859d5314f6bf40be3ac13f641
content/80: bcadfc362b69078beee0088e5936c98b
content/81: bc8fff0a53b034c9383de92b55143450
content/81: 2c579b11630f6b898e520e734588c2a2
content/82: 67b79204dbe622e540a879638ef27f02
content/83: aed07dcfb7bcbcb4f8e1297276888f04
content/84: 371d0e46b4bd2c23f559b8bc112f6955
content/85: 42c3b4d062ae50f6ebaf9a7460a6fc5e
content/86: bcadfc362b69078beee0088e5936c98b
content/87: 4e1b6f9d3f1d760834a31d8b49faa01e
content/87: 4373349c4b00e00a7efa918a02fd0859
content/88: e0e21aa31b6b03674fb8e6a9167d809d
content/89: 6d55eb60d0264d211cd8e027885738fa
content/90: 371d0e46b4bd2c23f559b8bc112f6955
content/91: 42c3b4d062ae50f6ebaf9a7460a6fc5e
content/92: bcadfc362b69078beee0088e5936c98b
content/93: a31e86b6e03b7df7b9bd013f5c5b3d20
content/93: 5050b0f0d60755c98d93630e06da0c72
content/94: 8629b9c6f2ecbbacb248f9a65938555e
content/95: f69ca030edb0f0c9970a51250fbe1699
content/96: 371d0e46b4bd2c23f559b8bc112f6955
content/97: 42c3b4d062ae50f6ebaf9a7460a6fc5e
content/98: bcadfc362b69078beee0088e5936c98b
content/99: e2fc3018c16f1ae4f3e907fc33548d46
content/99: cdaf2dce3d06cfa70cf438b12e769007
content/100: e5d8665486fab89d1c60b9ab6cfe1c2e
content/101: 62c4501130fb887500df574e0c09c20d
content/102: 371d0e46b4bd2c23f559b8bc112f6955
content/103: 7e048124d93bb4cdcd6effb9b0c4b414
content/104: bcadfc362b69078beee0088e5936c98b
content/105: c463989e1754b17b2cc1a7b9fff68cb6
content/105: 6fe8446ecb76f21e5fa718b65e7ed421
content/106: 0b68d1e5df6bd6d9ea8be971c4f8bbbf
content/107: 13876fa5c17849a15f6d54647feb6ae5
content/108: 371d0e46b4bd2c23f559b8bc112f6955
content/109: 77a4b3016c40c377897e029411f1b8fd
content/109: 1824d8209db86f3c1fa3f5beed26e05c
content/110: bcadfc362b69078beee0088e5936c98b
content/111: 77916aef5f86264c96b85ab874c3c447
content/111: b3ec56f51a86f8eb02fa471b377171c5
content/112: b3f310d5ef115bea5a8b75bf25d7ea9a
content/113: 29208f859f7c25898a8bb435d3e744d0
54ec89df9800159df913e0955d2775e1:
@@ -48222,103 +48213,103 @@ checksums:
content/11: 371d0e46b4bd2c23f559b8bc112f6955
content/12: 78b6dd9f0a02aecf0d26bb37cd9a6854
content/13: bcadfc362b69078beee0088e5936c98b
content/14: 7311861512fa50f2c937d080692151e8
content/14: 45e4b48c07557ffff5956d9466295197
content/15: a29e8f758eeb0adc9d14cb3ecc9a3572
content/16: 3bb1094fb4f6bbacf4503db791290728
content/17: 371d0e46b4bd2c23f559b8bc112f6955
content/18: d185d2b7ceafeacce0f677a4649cb308
content/19: bcadfc362b69078beee0088e5936c98b
content/20: 4634d3f690b2b1977d4555b2d4eee739
content/20: d25c6e706996660030e1ce66bcdb9e7e
content/21: dd173220664de67767b3f0aad2808436
content/22: 059484693528bd0f6324763d7f32abeb
content/23: 371d0e46b4bd2c23f559b8bc112f6955
content/24: dfb2c2a7b6f5ddb86f9104defb6e8b5d
content/25: bcadfc362b69078beee0088e5936c98b
content/26: a88bd6e0708b4c3017be42eabc480947
content/26: 8dbf76672372fa4f655305255bab0568
content/27: 49e6762a44cc519ca70217ba8d90fbf7
content/28: 77451909a80759c6ebb246a526e6fd7b
content/29: 371d0e46b4bd2c23f559b8bc112f6955
content/30: 6edd84776ad45703537015af58f492cb
content/31: bcadfc362b69078beee0088e5936c98b
content/32: b6656b4d0cb132b838d73e758850e3f9
content/32: fdba9cfce336484ab03fc2ac32bffea9
content/33: a04ec00949bbb0a7c99bff8fd232e820
content/34: 3b42cf913c5f403544540b6244dc8e2e
content/35: 371d0e46b4bd2c23f559b8bc112f6955
content/36: bddd30707802c07aac61620721bfaf16
content/37: bcadfc362b69078beee0088e5936c98b
content/38: b622395040bf1aef193558d10a38c128
content/38: fa2c581e6fb204f5ddbd0ffcbf0f7123
content/39: 65de097e276f762b71d59fa7f9b0a207
content/40: 013f52c249b5919fdb6d96700b25f379
content/41: 371d0e46b4bd2c23f559b8bc112f6955
content/42: 8c33b1b3f984f011679b36b77801b936
content/43: bcadfc362b69078beee0088e5936c98b
content/44: c463989e1754b17b2cc1a7b9fff68cb6
content/44: af1f849f131fe114138b638d3dc9edd7
content/45: 353bd4e36dd70f288ff051157c0bbadb
content/46: 9ee4b0cc8813aeea6b991dabb05c0b2b
content/47: 371d0e46b4bd2c23f559b8bc112f6955
content/48: 93c01d42da765b2862a1c90e5c207f3a
content/49: bcadfc362b69078beee0088e5936c98b
content/50: cb25800f3f5e9a5688769ba1f1d101fb
content/50: 6af34cd425be8517ea6fb6a014621329
content/51: 0440d7abaca1a48b2ce63b48c97444a1
content/52: 4cb6ac8a34a8cc0d87a85a45dd9382b9
content/53: 371d0e46b4bd2c23f559b8bc112f6955
content/54: df651aea48c483f6163ae49e4f1fda5a
content/55: bcadfc362b69078beee0088e5936c98b
content/56: 90bd63383b8ba686aa71a192a945344a
content/56: cb3c2f1293d213df984c1273c5a4d14b
content/57: 0c321044b21a59eec7b04f91d6ad521f
content/58: d8a0a8ae22b5c2a0664f1172adf2c1d1
content/59: 371d0e46b4bd2c23f559b8bc112f6955
content/60: fcef3a88d9de7bfa5e308e4cece9136e
content/61: bcadfc362b69078beee0088e5936c98b
content/62: d6ec19129a153bc0667e76edb9c2953d
content/62: b7ed771bffa972a584913797325ee02b
content/63: ce48c0560ca3ddaad402f2bdd9d459f3
content/64: d96d5d108333391af5bc3ab6425c9f29
content/65: 371d0e46b4bd2c23f559b8bc112f6955
content/66: be92911dda52b245d2fda5b0c54527dc
content/67: bcadfc362b69078beee0088e5936c98b
content/68: 77916aef5f86264c96b85ab874c3c447
content/68: 43b7bd9c584decffb62fdc75409675a6
content/69: 85eba1d62b7cdd083d0a4991169d7162
content/70: d4dd284c2b688770d5c732a7e6dff3f0
content/71: 371d0e46b4bd2c23f559b8bc112f6955
content/72: ad3910637d3e53fef449e8a5aa74b1ef
content/73: bcadfc362b69078beee0088e5936c98b
content/74: 3f6664c231057ceadd9ac8cba5332b3e
content/74: 56a1ecf365a95c06e42fcf80dc28fb31
content/75: 4936debbcf6ba547fa7c9265f7dcf40f
content/76: 17a43ca41485e2f78ef7987c78a52e8b
content/77: 371d0e46b4bd2c23f559b8bc112f6955
content/78: b87a8359c3277447f29050ef280f4ceb
content/79: bcadfc362b69078beee0088e5936c98b
content/80: be30e8adfbab208f4b7b6fedc0559c19
content/80: a1414f8625473aca0b4635ebd8e50c34
content/81: 72de310caecaf16e8e74ff37a7fa46b0
content/82: 4738fdcfd44aa60f5bfd7f484be36360
content/83: 371d0e46b4bd2c23f559b8bc112f6955
content/84: 3ff5cc143dcf2514e730b4f68757a6cb
content/85: bcadfc362b69078beee0088e5936c98b
content/86: 08aaa5e1b8c8e8c146f68228e6d53792
content/86: d05aa3c271674d80fd34fe5d7c0378fd
content/87: a72a19e1aff8ea71d24df98f312d9ada
content/88: 0a0fecc6d1a70497410160ee0ea9e757
content/89: 371d0e46b4bd2c23f559b8bc112f6955
content/90: d71b6bb8e2dd6ce98101aec6a1dd77f2
content/91: bcadfc362b69078beee0088e5936c98b
content/92: 2e1b6ed9ba71ee98540f582bf5decd41
content/92: 55235554f8ac9d06bebf6827bb5a67a4
content/93: b37060e61c0433052dd02939aa60e412
content/94: c2184e718b1015489f82854fe48e6a37
content/95: 371d0e46b4bd2c23f559b8bc112f6955
content/96: 574cc410d9df4f37e7dc291491e13fe6
content/97: bcadfc362b69078beee0088e5936c98b
content/98: b06f1d576f491777f39a47401c77f268
content/98: 7f3282d2c35a26a84c97a5c8aec51bd8
content/99: 5070ca6b1d2cbd4f8450b15e8f46e446
content/100: 3edfc5e9d7138730bb73863616f3435e
content/101: 371d0e46b4bd2c23f559b8bc112f6955
content/102: 8d5f23e56e4606bacc7ac1f3b1cbe86b
content/103: bcadfc362b69078beee0088e5936c98b
content/104: 52f075cb7459e5cf8daf1f3e37ecd36b
content/104: c3013a47beb9b8db755de36615056c13
content/105: 82c709054f9e80781baa7d678ff03b24
content/106: 5a38d9ff2a65641f8f13e91db263cc9e
content/107: 371d0e46b4bd2c23f559b8bc112f6955
content/108: 71b47f694d04e8f1a8fa22723539fe47
content/109: bcadfc362b69078beee0088e5936c98b
content/110: 45b9563e3bcc50f89b39b015a9d46114
content/110: 4a0585b138348fe3806097c0542e8cb2
content/111: b3f310d5ef115bea5a8b75bf25d7ea9a
content/112: cbeffb4f92b38461ac320bc6fe7f7ef0
d58d2e8b125a994bcfb20ff98cfef0ad:

View File

@@ -13,6 +13,7 @@
"dependencies": {
"@tabler/icons-react": "^3.31.0",
"@vercel/og": "^0.6.5",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"fumadocs-core": "16.2.3",
"fumadocs-mdx": "14.1.0",

View File

@@ -1,777 +0,0 @@
# Sim App Architecture Guidelines
You are building features in the Sim app following the architecture. This file defines the patterns, structures, and conventions you must follow.
---
## Core Principles
1. **Single Responsibility Principle**: Each component, hook, and store should have one clear purpose
2. **Composition Over Complexity**: Break down complex logic into smaller, composable pieces
3. **Type Safety First**: Use TypeScript interfaces for all props, state, and return types
4. **Predictable State Management**: Use Zustand for global state, local state for UI-only concerns
5. **Performance by Default**: Use useMemo, useCallback, and refs appropriately
6. **Accessibility**: Include semantic HTML and ARIA attributes
7. **Documentation**: Use TSDoc for all public interfaces and keep it in sync with code changes
---
## File Organization
### Directory Structure
```
feature/
├── components/ # Feature components
│ ├── sub-feature/ # Sub-feature with its own components
│ │ ├── component.tsx
│ │ └── index.ts
├── hooks/ # Custom hooks for feature logic
│ ├── use-feature-logic.ts
│ └── use-another-hook.ts
└── feature.tsx # Main feature component
```
### Naming Conventions
- **Components**: PascalCase with descriptive names (`WorkflowList`, `TriggerPanel`)
- **Hooks**: camelCase with `use` prefix (`useWorkflowOperations`, `usePanelResize`)
- **Files**: kebab-case matching export name (`workflow-list.tsx`, `use-panel-resize.ts`)
- **Stores**: kebab-case in stores/ directory (`sidebar/store.ts`, `workflows/registry/store.ts`)
- **Constants**: SCREAMING_SNAKE_CASE at module level
- **Interfaces**: PascalCase with descriptive suffix (`WorkflowListProps`, `UseWorkspaceManagementProps`)
---
## Component Architecture
### Component Structure Template
```typescript
'use client' // Only if using hooks like useState, useEffect, etc.
import { useCallback, useMemo, useRef, useState } from 'react'
// Other imports organized: external, internal paths, relative
/**
* Constants - Define at module level before component
*/
const DEFAULT_VALUE = 100
const MIN_VALUE = 50
const MAX_VALUE = 200
const CONFIG = {
SPACING: 8,
ITEM_HEIGHT: 25,
} as const
interface ComponentProps {
/** Description of prop */
requiredProp: string
/** Description with default noted */
optionalProp?: boolean
onAction?: (id: string) => void
}
/**
* Component description explaining purpose and key features.
* Mention important integrations, hooks, or patterns used.
*
* @param props - Component props
* @returns JSX description
*/
export function ComponentName({
requiredProp,
optionalProp = false,
onAction,
}: ComponentProps) {
// 1. Refs first
const containerRef = useRef<HTMLDivElement>(null)
// 2. External hooks (router, params, context)
const params = useParams()
// 3. Store hooks
const { state, actions } = useStore()
// 4. Custom hooks (your feature hooks)
const { data, isLoading } = useCustomHook({ requiredProp })
// 5. Local state (UI-only concerns)
const [isOpen, setIsOpen] = useState(false)
// 6. Derived/computed values with useMemo
const filteredData = useMemo(() => {
return data.filter(item => item.active)
}, [data])
// 7. Callbacks with useCallback
const handleClick = useCallback((id: string) => {
onAction?.(id)
}, [onAction])
// 8. Effects
useEffect(() => {
// Setup logic
return () => {
// Cleanup logic
}
}, [])
// 9. Render helpers (if complex)
const renderItem = useCallback((item: Item) => (
<div key={item.id}>{item.name}</div>
), [])
// 10. Return JSX
return (
<div ref={containerRef} className='...' aria-label='...'>
{/* Section comments for clarity */}
{/* Header */}
<header>...</header>
{/* Content */}
<main>...</main>
</div>
)
}
```
### Component Rules
1. **Client Components**: Add `'use client'` directive when using React hooks
2. **Props Interface**: Always define TypeScript interface, even for simple props
3. **TSDoc Required and Up-to-Date**: Include description, @param, and @returns. Update TSDoc whenever props, behavior, or side effects change (including additions and deletions).
4. **Constants**: Extract magic numbers and config to module-level constants using `as const`
5. **No Inline Styles**: Use Tailwind classes exclusively (CSS variables for dynamic values)
6. **Section Comments**: Use comments to mark logical sections of JSX
7. **Semantic HTML**: Use appropriate elements (`aside`, `nav`, `article`, etc.)
8. **ARIA Attributes**: Include `aria-label`, `aria-orientation`, `role` where appropriate
9. **Refs for DOM**: Use refs for direct DOM access, not state
10. **Callback Props**: Always use optional chaining for callback props (`onAction?.(...)`)
---
## Custom Hooks Architecture
### Hook Structure Template
```typescript
import { useCallback, useEffect, useState } from 'react'
import { createLogger } from '@/lib/logs/console/logger'
const logger = createLogger('useFeatureName')
/**
* Constants specific to this hook
*/
const DEFAULT_CONFIG = {
timeout: 1000,
retries: 3,
} as const
interface UseFeatureNameProps {
/** Description of required prop */
id: string
/** Optional callback fired on success */
onSuccess?: (result: Result) => void
}
/**
* Custom hook to [clear description of purpose].
* [Additional context about what it manages or coordinates].
*
* @param props - Configuration object containing id and callbacks
* @returns Feature state and operations
*/
export function useFeatureName({ id, onSuccess }: UseFeatureNameProps) {
// 1. Refs (to avoid dependency issues)
const idRef = useRef(id)
const onSuccessRef = useRef(onSuccess)
// 2. State
const [data, setData] = useState<Data | null>(null)
const [isLoading, setIsLoading] = useState(false)
const [error, setError] = useState<Error | null>(null)
// 3. Update refs when values change
useEffect(() => {
idRef.current = id
onSuccessRef.current = onSuccess
}, [id, onSuccess])
// 4. Operations with useCallback (stable references)
const fetchData = useCallback(async () => {
setIsLoading(true)
setError(null)
try {
const response = await fetch(`/api/data/${idRef.current}`)
const result = await response.json()
setData(result)
onSuccessRef.current?.(result)
logger.info('Data fetched successfully', { id: idRef.current })
} catch (err) {
const error = err as Error
setError(error)
logger.error('Failed to fetch data', { error })
} finally {
setIsLoading(false)
}
}, []) // Empty deps because using refs
const updateData = useCallback(async (newData: Partial<Data>) => {
try {
logger.info('Updating data', { id: idRef.current, newData })
const response = await fetch(`/api/data/${idRef.current}`, {
method: 'PATCH',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(newData),
})
const result = await response.json()
setData(result)
return true
} catch (err) {
logger.error('Failed to update data', { error: err })
return false
}
}, [])
// 5. Effects
useEffect(() => {
if (id) {
fetchData()
}
}, [id, fetchData])
// 6. Return object - group by state and operations
return {
// State
data,
isLoading,
error,
// Operations
fetchData,
updateData,
}
}
```
### Hook Rules
1. **Single Responsibility**: Each hook manages one concern (data fetching, resize, navigation)
2. **Props Interface**: Define TypeScript interface for all parameters
3. **TSDoc Required and Up-to-Date**: Include clear description, @param, and @returns. Update TSDoc whenever inputs, outputs, behavior, or side effects change (including additions and deletions).
4. **Logger Usage**: Import and use logger instead of console.log
5. **Refs for Stable Deps**: Use refs to avoid recreating callbacks unnecessarily
6. **useCallback Always**: Wrap all returned functions in useCallback
7. **Grouped Returns**: Return object with comments separating State and Operations
8. **Error Handling**: Always try/catch async operations and log errors
9. **Loading States**: Track loading, error states for async operations
10. **Dependency Arrays**: Be explicit and correct with all dependency arrays
---
## Store Architecture (Zustand)
### Store Structure Template
```typescript
import { create } from 'zustand'
import { persist } from 'zustand/middleware'
/**
* Store state interface
*/
interface FeatureState {
// State properties
items: Item[]
activeId: string | null
isLoading: boolean
// Actions
setItems: (items: Item[]) => void
setActiveId: (id: string | null) => void
addItem: (item: Item) => void
removeItem: (id: string) => void
clearState: () => void
}
/**
* Constants - Configuration values
*/
const DEFAULT_CONFIG = {
maxItems: 100,
cacheTime: 3600,
} as const
/**
* Initial state factory
*/
const createInitialState = () => ({
items: [],
activeId: null,
isLoading: false,
})
/**
* Feature store managing [description].
* [Additional context about what this store coordinates].
*/
export const useFeatureStore = create<FeatureState>()(
persist(
(set, get) => ({
...createInitialState(),
setItems: (items) => set({ items }),
setActiveId: (id) => set({ activeId: id }),
addItem: (item) =>
set((state) => ({
items: [...state.items, item].slice(-DEFAULT_CONFIG.maxItems),
})),
removeItem: (id) =>
set((state) => ({
items: state.items.filter((item) => item.id !== id),
activeId: state.activeId === id ? null : state.activeId,
})),
clearState: () => set(createInitialState()),
}),
{
name: 'feature-state',
// Optionally customize what to persist
partialize: (state) => ({
items: state.items,
activeId: state.activeId,
}),
onRehydrateStorage: () => (state) => {
// Validate and transform persisted state if needed
if (state) {
// Enforce constraints
if (state.items.length > DEFAULT_CONFIG.maxItems) {
state.items = state.items.slice(-DEFAULT_CONFIG.maxItems)
}
}
},
}
)
)
```
### Store Rules
1. **Interface First**: Define TypeScript interface including both state and actions
2. **Constants**: Extract configuration values to module-level constants
3. **TSDoc on Store**: Document what the store manages
4. **Persist Strategically**: Only persist what's needed across sessions
5. **Validation**: Use onRehydrateStorage to validate persisted state
6. **Immutable Updates**: Use set() with new objects/arrays, never mutate
7. **Derived State**: Use getters or selectors, not stored computed values
8. **CSS Variables**: Update CSS variables in setters for hydration-safe dynamic styles
9. **Cleanup Actions**: Provide clear/reset actions for state cleanup
10. **Functional Updates**: Use `set((state) => ...)` when new state depends on old state
---
## State Management Strategy
### When to Use Local State (useState)
- UI-only concerns (dropdown open, hover states, form inputs)
- Component-scoped state not needed elsewhere
- Temporary state that doesn't need persistence
### When to Use Zustand Store
- Shared state across multiple components
- State that needs persistence (localStorage)
- Global application state (user, theme, settings)
- Complex state with many actions/reducers
### When to Use Refs (useRef)
- DOM element references
- Avoiding dependency issues in hooks
- Storing mutable values that don't trigger re-renders
- Accessing latest props/state in callbacks without recreating them
---
## CSS and Styling
### CSS Variables for Dynamic Styles
Use CSS variables for values that need to persist across hydration:
```typescript
// In store setter
setSidebarWidth: (width) => {
const clampedWidth = Math.max(MIN_WIDTH, Math.min(MAX_WIDTH, width))
set({ sidebarWidth: clampedWidth })
// Update CSS variable for immediate visual feedback
if (typeof window !== 'undefined') {
document.documentElement.style.setProperty('--sidebar-width', `${clampedWidth}px`)
}
}
// In component
<aside
className='sidebar-container'
style={{ width: 'var(--sidebar-width)' }}
>
```
### Tailwind Classes
1. **No Inline Styles**: Use Tailwind utility classes exclusively
2. **Dark Mode**: Include dark mode variants only when the value differs from light mode
3. **No Duplicate Dark Classes**: Never add a `dark:` class when the value is identical to the light mode class (e.g., `text-[var(--text-primary)] dark:text-[var(--text-primary)]` is redundant - just use `text-[var(--text-primary)]`)
4. **Exact Values**: Use exact values from design system (`text-[14px]`, `h-[25px]`)
5. **cn for Conditionals**: Use `cn()` from `@/lib/utils` for conditional classes (wraps clsx + tailwind-merge for conflict resolution)
6. **Consistent Spacing**: Use spacing tokens (`gap-[8px]`, `px-[14px]`)
7. **Transitions**: Add transitions for interactive states (`transition-colors`)
8. **Prefer px units**: Use arbitrary px values over scale utilities (e.g., `px-[4px]` instead of `px-1`)
```typescript
import { cn } from '@/lib/utils'
<div
className={cn(
'base-classes that-always-apply',
isActive && 'active-state-classes',
disabled ? 'cursor-not-allowed opacity-60' : 'cursor-pointer hover:bg-accent'
)}
>
```
---
## TypeScript Patterns
### Interface Conventions
```typescript
// Component props
interface ComponentNameProps {
requiredProp: string
optionalProp?: boolean
}
// Hook props
interface UseHookNameProps {
id: string
onSuccess?: () => void
}
// Store state
interface FeatureState {
data: Data[]
isLoading: boolean
actions: () => void
}
// Return types (if complex)
interface UseHookNameReturn {
state: State
actions: Actions
}
```
### Type Safety Rules
1. **No `any`**: Use proper types or `unknown` with type guards
2. **Props Interface**: Always define, even for simple components
3. **Callback Types**: Define full signature including parameters and return type
4. **Generic Types**: Use generics for reusable components/hooks
5. **Const Assertions**: Use `as const` for constant objects/arrays
6. **Type Guards**: Create type guards for runtime checks
7. **Ref Types**: Explicitly type refs (`useRef<HTMLDivElement>(null)`)
---
## Performance Patterns
### Memoization
```typescript
// useMemo for expensive computations
const sortedItems = useMemo(() => {
return items.sort((a, b) => a.name.localeCompare(b.name))
}, [items])
// useCallback for functions passed as props
const handleClick = useCallback((id: string) => {
onItemClick?.(id)
}, [onItemClick])
// useCallback for render functions
const renderItem = useCallback((item: Item) => (
<ItemComponent key={item.id} item={item} onClick={handleClick} />
), [handleClick])
```
### When to Memoize
1. **useMemo**: Expensive calculations, filtering/sorting large arrays, object creation in render
2. **useCallback**: Functions passed to child components, dependencies in other hooks, event handlers used in effects
3. **Don't Over-Memoize**: Simple calculations, primitives, or functions not passed down
### Refs for Avoiding Recreations
```typescript
// Pattern: Use refs to avoid function recreations
const onSuccessRef = useRef(onSuccess)
useEffect(() => {
onSuccessRef.current = onSuccess
}, [onSuccess])
const stableCallback = useCallback(() => {
// Use ref so this callback never needs to change
onSuccessRef.current?.()
}, []) // Empty deps!
```
---
## Logging and Debugging
### Logger Usage
```typescript
import { createLogger } from '@/lib/logs/console/logger'
const logger = createLogger('ComponentName')
// Use throughout component/hook
logger.info('User action', { userId, action })
logger.warn('Potential issue', { details })
logger.error('Operation failed', { error })
```
### Logging Rules
1. **No console.log**: Use logger.info/warn/error instead
2. **Logger Per File**: Create logger with component/hook name
3. **Structured Logging**: Pass objects with context, not just strings
4. **Log Levels**:
- `info`: Normal operations, user actions, state changes
- `warn`: Unusual but handled situations, deprecations
- `error`: Failures, exceptions, errors that need attention
---
## Linting and Formatting
### Automated Linting
**Do not manually fix linting errors.** The project uses automated linting tools that should handle formatting and style issues.
### Rules
1. **No Manual Fixes**: Do not attempt to manually reorder CSS classes, fix formatting, or address linter warnings
2. **Use Automated Tools**: If linting errors need to be fixed, run `bun run lint` to let the automated tools handle it
3. **Focus on Logic**: Concentrate on functionality, TypeScript correctness, and architectural patterns
4. **Let Tools Handle Style**: Biome and other linters will automatically format code according to project standards
### When Linting Matters
- **Syntax Errors**: Fix actual syntax errors that prevent compilation
- **Type Errors**: Address TypeScript type errors that indicate logic issues
- **Ignore Style Warnings**: CSS class order, formatting preferences, etc. will be handled by tooling
```bash
# If linting is required
bun run lint
```
---
## Code Quality Checklist
Before considering a component/hook complete, verify:
### Documentation
- [ ] TSDoc in sync with implementation after any change (params/returns/behavior/throws)
- [ ] TSDoc comment on component/hook/store
- [ ] Props interface documented with /** */ comments
- [ ] Complex logic explained with inline comments
- [ ] Section comments in JSX for clarity
### TypeScript
- [ ] All props have interface defined
- [ ] No `any` types used
- [ ] Refs properly typed
- [ ] Return types explicit for complex hooks
### Performance
- [ ] useMemo for expensive computations
- [ ] useCallback for functions passed as props
- [ ] Refs used to avoid unnecessary recreations
- [ ] No unnecessary re-renders
### Hooks
- [ ] Correct dependency arrays
- [ ] Cleanup in useEffect return functions
- [ ] Stable callback references with useCallback
- [ ] Logic extracted to custom hooks when reusable
### Styling
- [ ] No styles attributes (use className with Tailwind)
- [ ] Dark mode variants only when values differ from light mode
- [ ] No duplicate dark: classes with identical values
- [ ] Consistent spacing using design tokens
- [ ] cn() for conditional classes
### Accessibility
- [ ] Semantic HTML elements
- [ ] ARIA labels and roles where needed
- [ ] Keyboard navigation support
- [ ] Focus management
### State Management
- [ ] Local state for UI-only concerns
- [ ] Zustand for shared/persisted state
- [ ] No duplicate state
- [ ] Clear state update patterns
### Error Handling
- [ ] try/catch around async operations
- [ ] Error states tracked and displayed
- [ ] Loading states for async actions
- [ ] Failures logged with context
---
## Anti-Patterns to Avoid
### ❌ Don't Do This
```typescript
// ❌ Inline styles
<div style={{ width: 200, marginTop: 10 }}>
// ❌ Duplicate dark mode classes (same value as light mode)
<div className='text-[var(--text-primary)] dark:text-[var(--text-primary)]'>
<div className='bg-[var(--surface-9)] dark:bg-[var(--surface-9)]'>
<div className='hover:bg-[var(--border)] dark:hover:bg-[var(--border)]'>
// ❌ console.log
console.log('Debug info')
// ❌ any type
const handleClick = (e: any) => {}
// ❌ Missing dependencies
useEffect(() => {
doSomething(prop)
}, []) // Missing prop!
// ❌ Mutating state
const handleAdd = () => {
items.push(newItem) // Mutating!
setItems(items)
}
// ❌ No error handling
const fetchData = async () => {
const data = await fetch('/api/data')
setData(data)
}
// ❌ Complex logic in component
export function Component() {
const [data, setData] = useState([])
useEffect(() => {
// 50 lines of complex logic
}, [])
}
```
### ✅ Do This Instead
```typescript
// ✅ Tailwind classes
<div className='w-[200px] mt-[10px]'>
// ✅ No duplicate dark classes - CSS variables already handle theming
<div className='text-[var(--text-primary)]'>
<div className='bg-[var(--surface-9)]'>
<div className='hover:bg-[var(--border)]'>
// ✅ Only add dark: when values differ between modes
<div className='bg-[var(--surface-6)] dark:bg-[var(--surface-9)]'>
// ✅ Logger
logger.info('Debug info', { context })
// ✅ Proper types
const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {}
// ✅ Complete dependencies
useEffect(() => {
doSomething(prop)
}, [prop])
// ✅ Immutable updates
const handleAdd = () => {
setItems([...items, newItem])
}
// ✅ Error handling
const fetchData = async () => {
try {
const response = await fetch('/api/data')
if (!response.ok) throw new Error('Failed to fetch')
const data = await response.json()
setData(data)
} catch (error) {
logger.error('Fetch failed', { error })
setError(error)
}
}
// ✅ Extract to custom hook
export function Component() {
const { data, isLoading, error } = useFeatureData()
}
```
---
## Examples from Codebase
Study these files as reference implementations:
### Components
- `sidebar-new.tsx` - Main component structure, hook composition
- `workflow-list.tsx` - Complex component with drag-drop, memoization
- `blocks.tsx` - Simple panel component with resize
- `triggers.tsx` - Similar panel pattern
### Hooks
- `use-workspace-management.ts` - Complex hook with multiple operations, refs pattern
- `use-sidebar-resize.ts` - Simple focused hook with event listeners
- `use-workflow-operations.ts` - Hook coordinating store and navigation
- `use-panel-resize.ts` - Shared resize logic pattern
### Stores
- `stores/sidebar/store.ts` - Persist middleware, CSS variables, validation
---
## Summary
This architecture prioritizes:
1. **Separation of Concerns**: Components render, hooks contain logic, stores manage state
2. **Type Safety**: TypeScript everywhere with no escape hatches
3. **Performance**: Smart use of memoization and refs
4. **Maintainability**: Clear structure, documentation, and consistent patterns
5. **Developer Experience**: Logging, error handling, and clear interfaces
When in doubt, follow the patterns established in the sidebar-new component family.

View File

@@ -19,7 +19,7 @@ import {
ENTERPRISE_PLAN_FEATURES,
PRO_PLAN_FEATURES,
TEAM_PLAN_FEATURES,
} from '@/app/workspace/[workspaceId]/w/components/sidebar/components-new/settings-modal/components/subscription/plan-configs'
} from '@/app/workspace/[workspaceId]/w/components/sidebar/components/settings-modal/components/subscription/plan-configs'
const logger = createLogger('LandingPricing')

Some files were not shown because too many files have changed in this diff Show More