@bubblelab/bubble-core 0.1.169 → 0.1.172
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bubble-bundle.d.ts +161 -116
- package/dist/bubble-factory.d.ts.map +1 -1
- package/dist/bubble-factory.js +4 -0
- package/dist/bubble-factory.js.map +1 -1
- package/dist/bubbles/service-bubble/ai-agent.d.ts +108 -108
- package/dist/bubbles/service-bubble/airtable.d.ts +100 -100
- package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.d.ts +2 -2
- package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.d.ts +8 -8
- package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.d.ts +2 -2
- package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.d.ts +22 -22
- package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-detail.d.ts +38 -38
- package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.d.ts +52 -52
- package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.d.ts +6 -6
- package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.d.ts +12 -12
- package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.d.ts +12 -12
- package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts +126 -126
- package/dist/bubbles/service-bubble/apify/apify.d.ts +22 -22
- package/dist/bubbles/service-bubble/ashby/ashby.d.ts +114 -114
- package/dist/bubbles/service-bubble/ashby/ashby.schema.d.ts +2 -2
- package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +5 -5
- package/dist/bubbles/service-bubble/browserbase/browserbase.schema.d.ts +1 -1
- package/dist/bubbles/service-bubble/capability-pipeline.js +2 -2
- package/dist/bubbles/service-bubble/capability-pipeline.js.map +1 -1
- package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +78 -78
- package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts +24 -24
- package/dist/bubbles/service-bubble/firecrawl.d.ts +278 -278
- package/dist/bubbles/service-bubble/followupboss.d.ts +4 -4
- package/dist/bubbles/service-bubble/github.d.ts +12 -12
- package/dist/bubbles/service-bubble/gmail.d.ts +104 -104
- package/dist/bubbles/service-bubble/google-calendar.d.ts +80 -80
- package/dist/bubbles/service-bubble/google-drive.d.ts +40 -40
- package/dist/bubbles/service-bubble/http.d.ts +6 -6
- package/dist/bubbles/service-bubble/insforge-db.d.ts +8 -8
- package/dist/bubbles/service-bubble/jira/jira.d.ts +16 -16
- package/dist/bubbles/service-bubble/jira/jira.schema.d.ts +36 -36
- package/dist/bubbles/service-bubble/linear/index.d.ts +5 -0
- package/dist/bubbles/service-bubble/linear/index.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/linear/index.js +5 -0
- package/dist/bubbles/service-bubble/linear/index.js.map +1 -0
- package/dist/bubbles/service-bubble/linear/linear.d.ts +1695 -0
- package/dist/bubbles/service-bubble/linear/linear.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/linear/linear.integration.flow.d.ts +33 -0
- package/dist/bubbles/service-bubble/linear/linear.integration.flow.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/linear/linear.integration.flow.js +432 -0
- package/dist/bubbles/service-bubble/linear/linear.integration.flow.js.map +1 -0
- package/dist/bubbles/service-bubble/linear/linear.js +463 -0
- package/dist/bubbles/service-bubble/linear/linear.js.map +1 -0
- package/dist/bubbles/service-bubble/linear/linear.schema.d.ts +2059 -0
- package/dist/bubbles/service-bubble/linear/linear.schema.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/linear/linear.schema.js +444 -0
- package/dist/bubbles/service-bubble/linear/linear.schema.js.map +1 -0
- package/dist/bubbles/service-bubble/linear/linear.utils.d.ts +24 -0
- package/dist/bubbles/service-bubble/linear/linear.utils.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/linear/linear.utils.js +288 -0
- package/dist/bubbles/service-bubble/linear/linear.utils.js.map +1 -0
- package/dist/bubbles/service-bubble/notion/notion.d.ts +272 -272
- package/dist/bubbles/service-bubble/notion/property-schemas.d.ts +8 -8
- package/dist/bubbles/service-bubble/postgresql.d.ts +8 -8
- package/dist/bubbles/service-bubble/posthog/posthog.d.ts +9 -9
- package/dist/bubbles/service-bubble/posthog/posthog.schema.d.ts +15 -15
- package/dist/bubbles/service-bubble/resend.d.ts +4 -4
- package/dist/bubbles/service-bubble/sendsafely/sendsafely.d.ts +4 -4
- package/dist/bubbles/service-bubble/slack/slack.d.ts +296 -296
- package/dist/bubbles/service-bubble/stripe/stripe.d.ts +39 -39
- package/dist/bubbles/service-bubble/stripe/stripe.schema.d.ts +28 -28
- package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.d.ts +6 -6
- package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.d.ts +8 -8
- package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +10 -10
- package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +385 -385
- package/dist/bubbles/tool-bubble/list-capabilities-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/people-search-tool.d.ts +10 -10
- package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +10 -10
- package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +60 -60
- package/dist/bubbles/tool-bubble/twitter-tool.d.ts +134 -134
- package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/web-extract-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/yc-scraper-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/youtube-tool.d.ts +20 -20
- package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +22 -22
- package/dist/bubbles/workflow-bubble/parse-document.workflow.d.ts +10 -10
- package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +44 -44
- package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +36 -36
- package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +8 -8
- package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +44 -44
- package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts +10 -10
- package/dist/bubbles.json +1375 -10
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/bubbles.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": "2.0.0",
|
|
3
|
-
"generatedAt": "2026-02-
|
|
4
|
-
"totalCount":
|
|
3
|
+
"generatedAt": "2026-02-18T05:16:17.377Z",
|
|
4
|
+
"totalCount": 67,
|
|
5
5
|
"bubbles": [
|
|
6
6
|
{
|
|
7
7
|
"name": "hello-world",
|
|
@@ -203,6 +203,7 @@
|
|
|
203
203
|
"google/gemini-3-pro-image-preview",
|
|
204
204
|
"google/gemini-3-flash-preview",
|
|
205
205
|
"anthropic/claude-sonnet-4-5",
|
|
206
|
+
"anthropic/claude-sonnet-4-6",
|
|
206
207
|
"anthropic/claude-opus-4-5",
|
|
207
208
|
"anthropic/claude-opus-4-6",
|
|
208
209
|
"anthropic/claude-haiku-4-5",
|
|
@@ -280,6 +281,7 @@
|
|
|
280
281
|
"google/gemini-3-pro-image-preview",
|
|
281
282
|
"google/gemini-3-flash-preview",
|
|
282
283
|
"anthropic/claude-sonnet-4-5",
|
|
284
|
+
"anthropic/claude-sonnet-4-6",
|
|
283
285
|
"anthropic/claude-opus-4-5",
|
|
284
286
|
"anthropic/claude-opus-4-6",
|
|
285
287
|
"anthropic/claude-haiku-4-5",
|
|
@@ -590,7 +592,7 @@
|
|
|
590
592
|
],
|
|
591
593
|
"additionalProperties": false
|
|
592
594
|
},
|
|
593
|
-
"usageExample": "// Example usage of ai-agent bubble\nconst aiAgent = new AIAgentBubble({\n message: \"example string\", // The message or question to send to the AI agent,\n images: [{ type: \"base64\" // default, data: \"example string\", mimeType: \"image/png\" // default, description: \"example string\" }] // example for array, // Array of base64 encoded images to include with the message (for multimodal AI models). Example: [{type: \"base64\", data: \"base64...\", mimeType: \"image/png\", description: \"A beautiful image of a cat\"}] or [{type: \"url\", url: \"https://example.com/image.png\", description: \"A beautiful image of a cat\"}],\n conversationHistory: [{ role: \"user\" // options: \"user\", \"assistant\", \"tool\" // The role of the message sender, content: \"example string\" // The message content, toolCallId: \"example string\" // Tool call ID for tool messages, name: \"example string\" // Tool name for tool messages }], // Previous conversation messages for multi-turn conversations. When provided, messages are sent as separate turns to enable KV cache optimization. Format: [{role: \"user\", content: \"...\"}, {role: \"assistant\", content: \"...\"}, ...],\n systemPrompt: \"You are a helpful AI assistant\" // default, // System prompt that defines the AI agents behavior and personality,\n name: \"AI Agent\" // default, // A friendly name for the AI agent,\n model: { model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-opus-4-6\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/z-ai/glm-4.7\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/anthropic/claude-opus-4.5\", \"openrouter/anthropic/claude-opus-4.6\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\" // AI model to use (format: provider/model-name)., temperature: 1 // default // Temperature for response randomness (0 = deterministic, 2 = very random), maxTokens: 64000 // default // Maximum number of tokens to generate in response, keep at default of 40000 unless the response is expected to be certain length, reasoningEffort: \"low\" // options: \"low\", \"medium\", \"high\" // Reasoning effort for model. If not specified, uses primary model reasoningEffort., maxRetries: 3 // default // Maximum number of retries for API calls (default: 3). Useful for handling transient errors like 503 Service Unavailable., provider: [\"example string\"] // Providers for ai agent (open router only)., jsonMode: false // default // When true, returns clean JSON response, you must provide the exact JSON schema in the system prompt, backupModel: { model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-opus-4-6\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/z-ai/glm-4.7\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/anthropic/claude-opus-4.5\", \"openrouter/anthropic/claude-opus-4.6\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\" // Backup AI model to use if the primary model fails (format: provider/model-name)., temperature: 42 // Temperature for backup model. If not specified, uses primary model temperature., maxTokens: 42 // Max tokens for backup model. If not specified, uses primary model maxTokens., reasoningEffort: \"low\" // options: \"low\", \"medium\", \"high\" // Reasoning effort for backup model. If not specified, uses primary model reasoningEffort., maxRetries: 42 // Max retries for backup model. If not specified, uses primary model maxRetries. } // structure // Backup model configuration to use if the primary model fails. } // structure, // AI model configuration including provider, temperature, and tokens, retries, and json mode. Always include this.,\n tools: [{ name: \"web-search-tool\" // options: \"web-search-tool\", \"web-scrape-tool\", \"web-crawl-tool\", \"web-extract-tool\", \"research-agent-tool\", \"reddit-scrape-tool\", \"instagram-tool\", \"list-bubbles-tool\", \"list-capabilities-tool\", \"get-bubble-details-tool\", \"get-trigger-detail-tool\", \"bubbleflow-validation-tool\", \"code-edit-tool\", \"chart-js-tool\", \"amazon-shopping-tool\", \"linkedin-tool\", \"tiktok-tool\", \"twitter-tool\", \"google-maps-tool\", \"youtube-tool\", \"people-search-tool\", \"sql-query-tool\" // Name of the tool type or tool bubble to enable for the AI agent, config: {} // Configuration for the tool or tool bubble }] // example for array, // Array of pre-registered tools the AI agent can use. Can be tool types (web-search-tool, web-scrape-tool, web-crawl-tool, web-extract-tool, instagram-tool). If using image models, set the tools to [],\n customTools: [{ name: \"example string\" // Unique name for your custom tool (e.g., \"calculate-tax\"), description: \"example string\" // Description of what the tool does - helps the AI know when to use it, schema: {} // Zod schema object defining the tool parameters. Can be either a plain object (e.g., { amount: z.number() }) or a Zod object directly (e.g., z.object({ amount: z.number() })). }] // example for array, // Array of custom runtime-defined tools with their own schemas and functions. Use this to add domain-specific tools without pre-registration. Example: [{ name: \"calculate-tax\", description: \"Calculates sales tax\", schema: { amount: z.number() }, func: async (input) => {...} }],\n maxIterations: 40 // default, // Maximum number of iterations for the agent workflow, 5 iterations per turn of conversation,\n streaming: false // default, // Enable real-time streaming of tokens, tool calls, and iteration progress,\n capabilities: [{ id: \"example string\" // Capability ID (e.g., \"google-doc-knowledge-base\"), inputs: { \"example_key\": [\"example string\"] } // structure // Input parameter values for this capability }] // example for array, // Capabilities that extend the agent with bundled tools, prompts, and credentials. Example: [{ id: \"google-doc-knowledge-base\", inputs: { docId: \"your-doc-id\" } }],\n expectedOutputSchema: \"example string\", // Zod schema or JSON schema string that defines the expected structure of the AI response. When provided, automatically enables JSON mode and instructs the AI to output in the exact format. Example: z.object({ summary: z.string(), items: z.array(z.object({ name: z.string(), score: z.number() })) }),\n memoryEnabled: true // default, // Enable persistent memory across conversations. When true, the agent can recall and save information about people, topics, and events between conversations.,\n});\n\nconst result = await aiAgent.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// response: string // The AI agents final response to the user message. For text responses, returns plain text. If JSON mode is enabled, returns a JSON string. For image generation models (like gemini-2.5-flash-image-preview), returns base64-encoded image data with data URI format (data:image/png;base64,...),\n// reasoning: string | null | undefined // The reasoning/thinking tokens from the model (if available). Present for deep research models and reasoning models.,\n// toolCalls: { tool: string // Name of the tool that was called, input: unknown // Input parameters passed to the tool, output: unknown // Output returned by the tool }[] // Array of tool calls made during the conversation,\n// iterations: number // Number of back-and-forth iterations in the agent workflow,\n// totalCost: number | undefined // Total cost in USD for this request (includes tokens + web search for deep research models),\n// error: string // Error message of the run, undefined if successful,\n// success: boolean // Whether the agent execution completed successfully\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
595
|
+
"usageExample": "// Example usage of ai-agent bubble\nconst aiAgent = new AIAgentBubble({\n message: \"example string\", // The message or question to send to the AI agent,\n images: [{ type: \"base64\" // default, data: \"example string\", mimeType: \"image/png\" // default, description: \"example string\" }] // example for array, // Array of base64 encoded images to include with the message (for multimodal AI models). Example: [{type: \"base64\", data: \"base64...\", mimeType: \"image/png\", description: \"A beautiful image of a cat\"}] or [{type: \"url\", url: \"https://example.com/image.png\", description: \"A beautiful image of a cat\"}],\n conversationHistory: [{ role: \"user\" // options: \"user\", \"assistant\", \"tool\" // The role of the message sender, content: \"example string\" // The message content, toolCallId: \"example string\" // Tool call ID for tool messages, name: \"example string\" // Tool name for tool messages }], // Previous conversation messages for multi-turn conversations. When provided, messages are sent as separate turns to enable KV cache optimization. Format: [{role: \"user\", content: \"...\"}, {role: \"assistant\", content: \"...\"}, ...],\n systemPrompt: \"You are a helpful AI assistant\" // default, // System prompt that defines the AI agents behavior and personality,\n name: \"AI Agent\" // default, // A friendly name for the AI agent,\n model: { model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-sonnet-4-6\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-opus-4-6\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/z-ai/glm-4.7\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/anthropic/claude-opus-4.5\", \"openrouter/anthropic/claude-opus-4.6\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\" // AI model to use (format: provider/model-name)., temperature: 1 // default // Temperature for response randomness (0 = deterministic, 2 = very random), maxTokens: 64000 // default // Maximum number of tokens to generate in response, keep at default of 40000 unless the response is expected to be certain length, reasoningEffort: \"low\" // options: \"low\", \"medium\", \"high\" // Reasoning effort for model. If not specified, uses primary model reasoningEffort., maxRetries: 3 // default // Maximum number of retries for API calls (default: 3). Useful for handling transient errors like 503 Service Unavailable., provider: [\"example string\"] // Providers for ai agent (open router only)., jsonMode: false // default // When true, returns clean JSON response, you must provide the exact JSON schema in the system prompt, backupModel: { model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-sonnet-4-6\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-opus-4-6\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/z-ai/glm-4.7\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/anthropic/claude-opus-4.5\", \"openrouter/anthropic/claude-opus-4.6\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\" // Backup AI model to use if the primary model fails (format: provider/model-name)., temperature: 42 // Temperature for backup model. If not specified, uses primary model temperature., maxTokens: 42 // Max tokens for backup model. If not specified, uses primary model maxTokens., reasoningEffort: \"low\" // options: \"low\", \"medium\", \"high\" // Reasoning effort for backup model. If not specified, uses primary model reasoningEffort., maxRetries: 42 // Max retries for backup model. If not specified, uses primary model maxRetries. } // structure // Backup model configuration to use if the primary model fails. } // structure, // AI model configuration including provider, temperature, and tokens, retries, and json mode. Always include this.,\n tools: [{ name: \"web-search-tool\" // options: \"web-search-tool\", \"web-scrape-tool\", \"web-crawl-tool\", \"web-extract-tool\", \"research-agent-tool\", \"reddit-scrape-tool\", \"instagram-tool\", \"list-bubbles-tool\", \"list-capabilities-tool\", \"get-bubble-details-tool\", \"get-trigger-detail-tool\", \"bubbleflow-validation-tool\", \"code-edit-tool\", \"chart-js-tool\", \"amazon-shopping-tool\", \"linkedin-tool\", \"tiktok-tool\", \"twitter-tool\", \"google-maps-tool\", \"youtube-tool\", \"people-search-tool\", \"sql-query-tool\" // Name of the tool type or tool bubble to enable for the AI agent, config: {} // Configuration for the tool or tool bubble }] // example for array, // Array of pre-registered tools the AI agent can use. Can be tool types (web-search-tool, web-scrape-tool, web-crawl-tool, web-extract-tool, instagram-tool). If using image models, set the tools to [],\n customTools: [{ name: \"example string\" // Unique name for your custom tool (e.g., \"calculate-tax\"), description: \"example string\" // Description of what the tool does - helps the AI know when to use it, schema: {} // Zod schema object defining the tool parameters. Can be either a plain object (e.g., { amount: z.number() }) or a Zod object directly (e.g., z.object({ amount: z.number() })). }] // example for array, // Array of custom runtime-defined tools with their own schemas and functions. Use this to add domain-specific tools without pre-registration. Example: [{ name: \"calculate-tax\", description: \"Calculates sales tax\", schema: { amount: z.number() }, func: async (input) => {...} }],\n maxIterations: 40 // default, // Maximum number of iterations for the agent workflow, 5 iterations per turn of conversation,\n streaming: false // default, // Enable real-time streaming of tokens, tool calls, and iteration progress,\n capabilities: [{ id: \"example string\" // Capability ID (e.g., \"google-doc-knowledge-base\"), inputs: { \"example_key\": [\"example string\"] } // structure // Input parameter values for this capability }] // example for array, // Capabilities that extend the agent with bundled tools, prompts, and credentials. Example: [{ id: \"google-doc-knowledge-base\", inputs: { docId: \"your-doc-id\" } }],\n expectedOutputSchema: \"example string\", // Zod schema or JSON schema string that defines the expected structure of the AI response. When provided, automatically enables JSON mode and instructs the AI to output in the exact format. Example: z.object({ summary: z.string(), items: z.array(z.object({ name: z.string(), score: z.number() })) }),\n memoryEnabled: true // default, // Enable persistent memory across conversations. When true, the agent can recall and save information about people, topics, and events between conversations.,\n});\n\nconst result = await aiAgent.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// response: string // The AI agents final response to the user message. For text responses, returns plain text. If JSON mode is enabled, returns a JSON string. For image generation models (like gemini-2.5-flash-image-preview), returns base64-encoded image data with data URI format (data:image/png;base64,...),\n// reasoning: string | null | undefined // The reasoning/thinking tokens from the model (if available). Present for deep research models and reasoning models.,\n// toolCalls: { tool: string // Name of the tool that was called, input: unknown // Input parameters passed to the tool, output: unknown // Output returned by the tool }[] // Array of tool calls made during the conversation,\n// iterations: number // Number of back-and-forth iterations in the agent workflow,\n// totalCost: number | undefined // Total cost in USD for this request (includes tokens + web search for deep research models),\n// error: string // Error message of the run, undefined if successful,\n// success: boolean // Whether the agent execution completed successfully\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
594
596
|
"requiredCredentials": [
|
|
595
597
|
"OPENAI_CRED",
|
|
596
598
|
"GOOGLE_GEMINI_CRED",
|
|
@@ -32319,6 +32321,7 @@
|
|
|
32319
32321
|
"google/gemini-3-pro-image-preview",
|
|
32320
32322
|
"google/gemini-3-flash-preview",
|
|
32321
32323
|
"anthropic/claude-sonnet-4-5",
|
|
32324
|
+
"anthropic/claude-sonnet-4-6",
|
|
32322
32325
|
"anthropic/claude-opus-4-5",
|
|
32323
32326
|
"anthropic/claude-opus-4-6",
|
|
32324
32327
|
"anthropic/claude-haiku-4-5",
|
|
@@ -32417,7 +32420,7 @@
|
|
|
32417
32420
|
],
|
|
32418
32421
|
"additionalProperties": false
|
|
32419
32422
|
},
|
|
32420
|
-
"usageExample": "// Example usage of slack-notifier bubble\nconst slackNotifier = new SlackNotifierWorkflowBubble({\n contentToFormat: \"example string\", // Raw content or data to format for Slack,\n originalUserQuery: \"example string\", // Original user question or context,\n targetChannel: \"example string\", // Slack channel name (without #) or channel ID,\n messageTitle: \"example string\", // Custom title for the Slack message,\n messageStyle: \"professional\" // options: \"professional\", \"casual\", \"technical\", \"concise\", \"detailed\", // Style and tone for message formatting,\n includeFormatting: true // default, // Include emojis and rich Slack formatting,\n maxMessageLength: 3000 // default, // Maximum message length for Slack,\n aiModel: { model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-opus-4-6\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/z-ai/glm-4.7\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/anthropic/claude-opus-4.5\", \"openrouter/anthropic/claude-opus-4.6\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\", temperature: 0.3 // default, maxTokens: 50000 // default }, // AI model settings for content formatting,\n});\n\nconst result = await slackNotifier.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// success: boolean,\n// error: string,\n// messageInfo: { messageTimestamp: string | undefined, channelId: string | undefined, channelName: string | undefined, formattedMessage: string | undefined, messageLength: number | undefined } | undefined,\n// formattingInfo: { modelUsed: string | undefined, wasTruncated: boolean, originalLength: number | undefined } | undefined\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
32423
|
+
"usageExample": "// Example usage of slack-notifier bubble\nconst slackNotifier = new SlackNotifierWorkflowBubble({\n contentToFormat: \"example string\", // Raw content or data to format for Slack,\n originalUserQuery: \"example string\", // Original user question or context,\n targetChannel: \"example string\", // Slack channel name (without #) or channel ID,\n messageTitle: \"example string\", // Custom title for the Slack message,\n messageStyle: \"professional\" // options: \"professional\", \"casual\", \"technical\", \"concise\", \"detailed\", // Style and tone for message formatting,\n includeFormatting: true // default, // Include emojis and rich Slack formatting,\n maxMessageLength: 3000 // default, // Maximum message length for Slack,\n aiModel: { model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-sonnet-4-6\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-opus-4-6\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/z-ai/glm-4.7\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/anthropic/claude-opus-4.5\", \"openrouter/anthropic/claude-opus-4.6\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\", temperature: 0.3 // default, maxTokens: 50000 // default }, // AI model settings for content formatting,\n});\n\nconst result = await slackNotifier.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// success: boolean,\n// error: string,\n// messageInfo: { messageTimestamp: string | undefined, channelId: string | undefined, channelName: string | undefined, formattedMessage: string | undefined, messageLength: number | undefined } | undefined,\n// formattingInfo: { modelUsed: string | undefined, wasTruncated: boolean, originalLength: number | undefined } | undefined\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
32421
32424
|
"requiredCredentials": [
|
|
32422
32425
|
"SLACK_CRED",
|
|
32423
32426
|
"SLACK_API",
|
|
@@ -32495,6 +32498,7 @@
|
|
|
32495
32498
|
"google/gemini-3-pro-image-preview",
|
|
32496
32499
|
"google/gemini-3-flash-preview",
|
|
32497
32500
|
"anthropic/claude-sonnet-4-5",
|
|
32501
|
+
"anthropic/claude-sonnet-4-6",
|
|
32498
32502
|
"anthropic/claude-opus-4-5",
|
|
32499
32503
|
"anthropic/claude-opus-4-6",
|
|
32500
32504
|
"anthropic/claude-haiku-4-5",
|
|
@@ -32677,7 +32681,7 @@
|
|
|
32677
32681
|
],
|
|
32678
32682
|
"additionalProperties": false
|
|
32679
32683
|
},
|
|
32680
|
-
"usageExample": "// Example usage of slack-data-assistant bubble\nconst slackDataAssistant = new SlackDataAssistantWorkflow({\n slackChannel: \"example string\", // Slack channel ID where the bot will respond,\n slackThreadTs: \"example string\", // Thread timestamp if replying to a thread,\n userQuestion: \"example string\", // The user question from Slack,\n userName: \"example string\", // Name of the user asking the question,\n name: \"Data Assistant\" // default, // Name of the AI assistant (e.g., \"DataBot\", \"Analytics Assistant\"),\n dataSourceType: \"postgresql\" // options: \"postgresql\", \"mysql\", \"sqlite\", \"mariadb\", \"mssql\", // Type of database to analyze,\n databaseUrl: \"example string\", // Database connection URL (if not using credentials),\n ignoreSSLErrors: false // default, // Ignore SSL certificate errors for database connection,\n aiModel: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-opus-4-6\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/z-ai/glm-4.7\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/anthropic/claude-opus-4.5\", \"openrouter/anthropic/claude-opus-4.6\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\", // AI model to use for query generation,\n temperature: 0.3 // default, // Temperature for AI responses (lower = more focused),\n verbosity: \"1\" // options: \"1\", \"2\", \"3\", \"4\", \"5\", // Response verbosity level (1=concise, 5=comprehensive),\n technicality: \"1\" // options: \"1\", \"2\", \"3\", \"4\", \"5\", // Technical complexity level (1=plain English, 5=expert),\n includeQuery: true // default, // Include the SQL query in the response,\n includeExplanation: true // default, // Include query explanation in the response,\n injectedMetadata: { tables: { \"example_key\": { \"example_key\": \"example string\" } }, tableNotes: { \"example_key\": \"example string\" }, rules: [\"example string\"] }, // Additional database context injected from user credentials metadata,\n additionalContext: \"example string\", // Additional context about how to answer the question,\n maxQueries: 20 // default, // Maximum number of queries to run,\n});\n\nconst result = await slackDataAssistant.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// success: boolean // Whether the workflow completed successfully,\n// error: string // Error message if workflow failed,\n// query: string | undefined // Generated SQL query,\n// queryExplanation: string | undefined // Explanation of the query,\n// queryResults: Record<string, unknown>[] | undefined // Results from the database query,\n// formattedResponse: string | undefined // Formatted response for Slack,\n// slackBlocks: unknown[] | undefined // Slack block kit formatted message,\n// slackMessageTs: string | undefined // Timestamp of sent Slack message,\n// isDataQuestion: boolean | undefined // Whether the question was data-related,\n// metadata: { executionTime: number // Total execution time in milliseconds, rowCount: number | undefined // Number of rows returned, wordCount: number | undefined // Word count of response } | undefined\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
32684
|
+
"usageExample": "// Example usage of slack-data-assistant bubble\nconst slackDataAssistant = new SlackDataAssistantWorkflow({\n slackChannel: \"example string\", // Slack channel ID where the bot will respond,\n slackThreadTs: \"example string\", // Thread timestamp if replying to a thread,\n userQuestion: \"example string\", // The user question from Slack,\n userName: \"example string\", // Name of the user asking the question,\n name: \"Data Assistant\" // default, // Name of the AI assistant (e.g., \"DataBot\", \"Analytics Assistant\"),\n dataSourceType: \"postgresql\" // options: \"postgresql\", \"mysql\", \"sqlite\", \"mariadb\", \"mssql\", // Type of database to analyze,\n databaseUrl: \"example string\", // Database connection URL (if not using credentials),\n ignoreSSLErrors: false // default, // Ignore SSL certificate errors for database connection,\n aiModel: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-sonnet-4-6\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-opus-4-6\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/z-ai/glm-4.7\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/anthropic/claude-opus-4.5\", \"openrouter/anthropic/claude-opus-4.6\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\", // AI model to use for query generation,\n temperature: 0.3 // default, // Temperature for AI responses (lower = more focused),\n verbosity: \"1\" // options: \"1\", \"2\", \"3\", \"4\", \"5\", // Response verbosity level (1=concise, 5=comprehensive),\n technicality: \"1\" // options: \"1\", \"2\", \"3\", \"4\", \"5\", // Technical complexity level (1=plain English, 5=expert),\n includeQuery: true // default, // Include the SQL query in the response,\n includeExplanation: true // default, // Include query explanation in the response,\n injectedMetadata: { tables: { \"example_key\": { \"example_key\": \"example string\" } }, tableNotes: { \"example_key\": \"example string\" }, rules: [\"example string\"] }, // Additional database context injected from user credentials metadata,\n additionalContext: \"example string\", // Additional context about how to answer the question,\n maxQueries: 20 // default, // Maximum number of queries to run,\n});\n\nconst result = await slackDataAssistant.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// success: boolean // Whether the workflow completed successfully,\n// error: string // Error message if workflow failed,\n// query: string | undefined // Generated SQL query,\n// queryExplanation: string | undefined // Explanation of the query,\n// queryResults: Record<string, unknown>[] | undefined // Results from the database query,\n// formattedResponse: string | undefined // Formatted response for Slack,\n// slackBlocks: unknown[] | undefined // Slack block kit formatted message,\n// slackMessageTs: string | undefined // Timestamp of sent Slack message,\n// isDataQuestion: boolean | undefined // Whether the question was data-related,\n// metadata: { executionTime: number // Total execution time in milliseconds, rowCount: number | undefined // Number of rows returned, wordCount: number | undefined // Word count of response } | undefined\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
32681
32685
|
"requiredCredentials": [
|
|
32682
32686
|
"DATABASE_CRED",
|
|
32683
32687
|
"SLACK_CRED",
|
|
@@ -32759,6 +32763,7 @@
|
|
|
32759
32763
|
"google/gemini-3-pro-image-preview",
|
|
32760
32764
|
"google/gemini-3-flash-preview",
|
|
32761
32765
|
"anthropic/claude-sonnet-4-5",
|
|
32766
|
+
"anthropic/claude-sonnet-4-6",
|
|
32762
32767
|
"anthropic/claude-opus-4-5",
|
|
32763
32768
|
"anthropic/claude-opus-4-6",
|
|
32764
32769
|
"anthropic/claude-haiku-4-5",
|
|
@@ -33084,7 +33089,7 @@
|
|
|
33084
33089
|
],
|
|
33085
33090
|
"additionalProperties": false
|
|
33086
33091
|
},
|
|
33087
|
-
"usageExample": "// Example usage of slack-formatter-agent bubble\nconst slackFormatterAgent = new SlackFormatterAgentBubble({\n message: \"example string\", // The message or question to send to the AI agent,\n verbosity: \"1\" // options: \"1\", \"2\", \"3\", \"4\", \"5\", // Response verbosity level (1-5): 1=concise bullet points, 5=comprehensive explanations,\n technicality: \"1\" // options: \"1\", \"2\", \"3\", \"4\", \"5\", // Technical complexity level (1-5): 1=plain English, 5=expert terminology,\n includeBlockKit: true // default, // Include Slack Block Kit JSON for rich formatting,\n includeQuery: false // default, // Include the query that was executed in the response,\n includeExplanation: false // default, // Include explanation of what the query does and why it was chosen,\n model: { model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-opus-4-6\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/z-ai/glm-4.7\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/anthropic/claude-opus-4.5\", \"openrouter/anthropic/claude-opus-4.6\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\" // AI model to use (format: provider/model-name), temperature: 0.7 // default // Temperature for response randomness (0 = deterministic, 2 = very random), maxTokens: 10000 // default // Maximum number of tokens to generate in response } // structure, // AI model configuration including provider, temperature, and tokens,\n tools: [{ name: \"example string\" // Name of the tool bubble to enable for the AI agent, config: {} // Configuration for the tool bubble }] // example for array, // Array of tool bubbles the AI agent can use,\n maxIterations: 10 // default, // Maximum number of iterations for the agent workflow,\n additionalContext: \"example string\", // Additional context about how to answer the question,\n});\n\nconst result = await slackFormatterAgent.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// response: string // The AI agents formatted response in Slack markdown,\n// blocks: { type: \"section\" | \"header\" | \"divider\" | \"context\" | \"actions\" | \"input\" | \"file\" | \"image\" | \"table\", text: { type: \"plain_text\" | \"mrkdwn\", text: string, emoji: boolean | undefined, verbatim: boolean | undefined } | undefined, block_id: string | undefined, accessory: unknown | undefined, fields: { type: \"plain_text\" | \"mrkdwn\", text: string, emoji: boolean | undefined, verbatim: boolean | undefined }[] | undefined, element: unknown | undefined, label: unknown | undefined, hint: unknown | undefined, optional: boolean | undefined, alt_text: string | undefined, image_url: string | undefined, title: { type: \"plain_text\", text: string, emoji: boolean | undefined } | undefined, elements: { type: \"plain_text\" | \"mrkdwn\", text: string, emoji: boolean | undefined, verbatim: boolean | undefined }[] | undefined }[] | undefined // Slack Block Kit formatted blocks for rich message display,\n// metadata: { verbosityLevel: string // Applied verbosity level, technicalityLevel: string // Applied technicality level, wordCount: number // Total word count of response, blockCount: number | undefined // Number of Slack blocks generated } // Metadata about the formatting,\n// toolCalls: { tool: string // Name of the tool that was called, input: unknown // Input parameters passed to the tool, output: unknown // Output returned by the tool }[] | undefined // Array of tool calls made during the conversation,\n// iterations: number // Number of back-and-forth iterations in the agent workflow,\n// error: string // Error message of the run, undefined if successful,\n// success: boolean // Whether the agent execution completed successfully\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
33092
|
+
"usageExample": "// Example usage of slack-formatter-agent bubble\nconst slackFormatterAgent = new SlackFormatterAgentBubble({\n message: \"example string\", // The message or question to send to the AI agent,\n verbosity: \"1\" // options: \"1\", \"2\", \"3\", \"4\", \"5\", // Response verbosity level (1-5): 1=concise bullet points, 5=comprehensive explanations,\n technicality: \"1\" // options: \"1\", \"2\", \"3\", \"4\", \"5\", // Technical complexity level (1-5): 1=plain English, 5=expert terminology,\n includeBlockKit: true // default, // Include Slack Block Kit JSON for rich formatting,\n includeQuery: false // default, // Include the query that was executed in the response,\n includeExplanation: false // default, // Include explanation of what the query does and why it was chosen,\n model: { model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-sonnet-4-6\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-opus-4-6\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/z-ai/glm-4.7\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/anthropic/claude-opus-4.5\", \"openrouter/anthropic/claude-opus-4.6\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\" // AI model to use (format: provider/model-name), temperature: 0.7 // default // Temperature for response randomness (0 = deterministic, 2 = very random), maxTokens: 10000 // default // Maximum number of tokens to generate in response } // structure, // AI model configuration including provider, temperature, and tokens,\n tools: [{ name: \"example string\" // Name of the tool bubble to enable for the AI agent, config: {} // Configuration for the tool bubble }] // example for array, // Array of tool bubbles the AI agent can use,\n maxIterations: 10 // default, // Maximum number of iterations for the agent workflow,\n additionalContext: \"example string\", // Additional context about how to answer the question,\n});\n\nconst result = await slackFormatterAgent.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// response: string // The AI agents formatted response in Slack markdown,\n// blocks: { type: \"section\" | \"header\" | \"divider\" | \"context\" | \"actions\" | \"input\" | \"file\" | \"image\" | \"table\", text: { type: \"plain_text\" | \"mrkdwn\", text: string, emoji: boolean | undefined, verbatim: boolean | undefined } | undefined, block_id: string | undefined, accessory: unknown | undefined, fields: { type: \"plain_text\" | \"mrkdwn\", text: string, emoji: boolean | undefined, verbatim: boolean | undefined }[] | undefined, element: unknown | undefined, label: unknown | undefined, hint: unknown | undefined, optional: boolean | undefined, alt_text: string | undefined, image_url: string | undefined, title: { type: \"plain_text\", text: string, emoji: boolean | undefined } | undefined, elements: { type: \"plain_text\" | \"mrkdwn\", text: string, emoji: boolean | undefined, verbatim: boolean | undefined }[] | undefined }[] | undefined // Slack Block Kit formatted blocks for rich message display,\n// metadata: { verbosityLevel: string // Applied verbosity level, technicalityLevel: string // Applied technicality level, wordCount: number // Total word count of response, blockCount: number | undefined // Number of Slack blocks generated } // Metadata about the formatting,\n// toolCalls: { tool: string // Name of the tool that was called, input: unknown // Input parameters passed to the tool, output: unknown // Output returned by the tool }[] | undefined // Array of tool calls made during the conversation,\n// iterations: number // Number of back-and-forth iterations in the agent workflow,\n// error: string // Error message of the run, undefined if successful,\n// success: boolean // Whether the agent execution completed successfully\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
33088
33093
|
"requiredCredentials": [
|
|
33089
33094
|
"OPENAI_CRED",
|
|
33090
33095
|
"GOOGLE_GEMINI_CRED",
|
|
@@ -33874,6 +33879,7 @@
|
|
|
33874
33879
|
"google/gemini-3-pro-image-preview",
|
|
33875
33880
|
"google/gemini-3-flash-preview",
|
|
33876
33881
|
"anthropic/claude-sonnet-4-5",
|
|
33882
|
+
"anthropic/claude-sonnet-4-6",
|
|
33877
33883
|
"anthropic/claude-opus-4-5",
|
|
33878
33884
|
"anthropic/claude-opus-4-6",
|
|
33879
33885
|
"anthropic/claude-haiku-4-5",
|
|
@@ -34031,6 +34037,7 @@
|
|
|
34031
34037
|
"google/gemini-3-pro-image-preview",
|
|
34032
34038
|
"google/gemini-3-flash-preview",
|
|
34033
34039
|
"anthropic/claude-sonnet-4-5",
|
|
34040
|
+
"anthropic/claude-sonnet-4-6",
|
|
34034
34041
|
"anthropic/claude-opus-4-5",
|
|
34035
34042
|
"anthropic/claude-opus-4-6",
|
|
34036
34043
|
"anthropic/claude-haiku-4-5",
|
|
@@ -34387,7 +34394,7 @@
|
|
|
34387
34394
|
}
|
|
34388
34395
|
]
|
|
34389
34396
|
},
|
|
34390
|
-
"usageExample": "// Identify example\nconst pdfOcrWorkflow_identify = new PDFOcrWorkflow({\n mode: \"identify\", // Identify form fields and generate descriptive names\n pdfData: \"example string\", // Base64 encoded PDF data\n discoveryOptions: { targetPage: 42 // Extract fields from specific page only (default: all pages) } // structure, // Options for PDF field discovery\n imageOptions: { format: \"png\" // options: \"png\", \"jpeg\" // Output image format, quality: 0.8 // default // JPEG quality (0.1-1.0, only for JPEG format), dpi: 150 // default // Output DPI (dots per inch), pages: [42] // Specific page numbers to convert (1-indexed). If not provided, converts all pages } // structure, // Options for PDF to images conversion\n aiOptions: { model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-opus-4-6\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/z-ai/glm-4.7\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/anthropic/claude-opus-4.5\", \"openrouter/anthropic/claude-opus-4.6\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\" // AI model to use for field identification, temperature: 0.3 // default // Temperature for AI responses (lower = more consistent), maxTokens: 50000 // default // Maximum tokens for AI response, jsonMode: true // default // Enable JSON mode to ensure clean JSON output } // structure, // AI agent configuration options\n});\n\nconst result = await pdfOcrWorkflow_identify.action();\n// outputSchema for result.data when operation === 'identify':\n// {\n// mode: \"identify\" // Result from identify mode,\n// extractedFields: { id: number // Field ID from discovery or auto-generated, fieldName: string // Descriptive name generated based on PDF content, confidence: number // AI confidence in the field identification (0.0-1.0) }[] // Array of identified fields with descriptive names,\n// discoveryData: { totalFields: number, fieldsWithCoordinates: number, pages: number[] } // Summary of field discovery results,\n// imageData: { totalPages: number, convertedPages: number, format: string, dpi: number } // Summary of image conversion results,\n// aiAnalysis: { model: string, iterations: number, processingTime: number | undefined } // AI analysis metadata,\n// success: boolean // Whether the workflow completed successfully,\n// error: string // Error message if workflow failed\n// }\n\n\n// Autofill example\nconst pdfOcrWorkflow_autofill = new PDFOcrWorkflow({\n mode: \"autofill\", // Identify form fields and autofill with client information\n pdfData: \"example string\", // Base64 encoded PDF data\n clientInformation: \"example string\", // Free text containing client information to use for autofilling form fields\n discoveryOptions: { targetPage: 42 // Extract fields from specific page only (default: all pages) } // structure, // Options for PDF field discovery\n imageOptions: { format: \"png\" // options: \"png\", \"jpeg\" // Output image format, quality: 0.8 // default // JPEG quality (0.1-1.0, only for JPEG format), dpi: 150 // default // Output DPI (dots per inch), pages: [42] // Specific page numbers to convert (1-indexed). If not provided, converts all pages } // structure, // Options for PDF to images conversion\n aiOptions: { model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-opus-4-6\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/z-ai/glm-4.7\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/anthropic/claude-opus-4.5\", \"openrouter/anthropic/claude-opus-4.6\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\" // AI model to use for field identification and autofill, temperature: 0.3 // default // Temperature for AI responses (lower = more consistent), maxTokens: 50000 // default // Maximum tokens for AI response, jsonMode: true // default // Enable JSON mode to ensure clean JSON output } // structure, // AI agent configuration options\n});\n\nconst result = await pdfOcrWorkflow_autofill.action();\n// outputSchema for result.data when operation === 'autofill':\n// {\n// mode: \"autofill\" // Result from autofill mode,\n// extractedFields: { id: number // Field ID from discovery or auto-generated, originalFieldName: string | undefined // Original field name from discovery for precise matching, fieldName: string // Descriptive name generated based on PDF content, value: string // Value to fill in the field based on client information, confidence: number // AI confidence in the field identification and value assignment (0.0-1.0) }[] // Array of identified fields with values for autofill,\n// filledPdfData: string // Base64 encoded filled PDF data,\n// discoveryData: { totalFields: number, fieldsWithCoordinates: number, pages: number[] } // Summary of field discovery results,\n// imageData: { totalPages: number, convertedPages: number, format: string, dpi: number } // Summary of image conversion results,\n// aiAnalysis: { model: string, iterations: number, processingTime: number | undefined } // AI analysis metadata,\n// fillResults: { filledFields: number, successfullyFilled: number } // Summary of PDF filling results,\n// success: boolean // Whether the workflow completed successfully,\n// error: string // Error message if workflow failed\n// }\n\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`pdf-ocr-workflow failed: ${result.error}`);\n}\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
34397
|
+
"usageExample": "// Identify example\nconst pdfOcrWorkflow_identify = new PDFOcrWorkflow({\n mode: \"identify\", // Identify form fields and generate descriptive names\n pdfData: \"example string\", // Base64 encoded PDF data\n discoveryOptions: { targetPage: 42 // Extract fields from specific page only (default: all pages) } // structure, // Options for PDF field discovery\n imageOptions: { format: \"png\" // options: \"png\", \"jpeg\" // Output image format, quality: 0.8 // default // JPEG quality (0.1-1.0, only for JPEG format), dpi: 150 // default // Output DPI (dots per inch), pages: [42] // Specific page numbers to convert (1-indexed). If not provided, converts all pages } // structure, // Options for PDF to images conversion\n aiOptions: { model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-sonnet-4-6\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-opus-4-6\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/z-ai/glm-4.7\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/anthropic/claude-opus-4.5\", \"openrouter/anthropic/claude-opus-4.6\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\" // AI model to use for field identification, temperature: 0.3 // default // Temperature for AI responses (lower = more consistent), maxTokens: 50000 // default // Maximum tokens for AI response, jsonMode: true // default // Enable JSON mode to ensure clean JSON output } // structure, // AI agent configuration options\n});\n\nconst result = await pdfOcrWorkflow_identify.action();\n// outputSchema for result.data when operation === 'identify':\n// {\n// mode: \"identify\" // Result from identify mode,\n// extractedFields: { id: number // Field ID from discovery or auto-generated, fieldName: string // Descriptive name generated based on PDF content, confidence: number // AI confidence in the field identification (0.0-1.0) }[] // Array of identified fields with descriptive names,\n// discoveryData: { totalFields: number, fieldsWithCoordinates: number, pages: number[] } // Summary of field discovery results,\n// imageData: { totalPages: number, convertedPages: number, format: string, dpi: number } // Summary of image conversion results,\n// aiAnalysis: { model: string, iterations: number, processingTime: number | undefined } // AI analysis metadata,\n// success: boolean // Whether the workflow completed successfully,\n// error: string // Error message if workflow failed\n// }\n\n\n// Autofill example\nconst pdfOcrWorkflow_autofill = new PDFOcrWorkflow({\n mode: \"autofill\", // Identify form fields and autofill with client information\n pdfData: \"example string\", // Base64 encoded PDF data\n clientInformation: \"example string\", // Free text containing client information to use for autofilling form fields\n discoveryOptions: { targetPage: 42 // Extract fields from specific page only (default: all pages) } // structure, // Options for PDF field discovery\n imageOptions: { format: \"png\" // options: \"png\", \"jpeg\" // Output image format, quality: 0.8 // default // JPEG quality (0.1-1.0, only for JPEG format), dpi: 150 // default // Output DPI (dots per inch), pages: [42] // Specific page numbers to convert (1-indexed). If not provided, converts all pages } // structure, // Options for PDF to images conversion\n aiOptions: { model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-sonnet-4-6\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-opus-4-6\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/z-ai/glm-4.7\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/anthropic/claude-opus-4.5\", \"openrouter/anthropic/claude-opus-4.6\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\" // AI model to use for field identification and autofill, temperature: 0.3 // default // Temperature for AI responses (lower = more consistent), maxTokens: 50000 // default // Maximum tokens for AI response, jsonMode: true // default // Enable JSON mode to ensure clean JSON output } // structure, // AI agent configuration options\n});\n\nconst result = await pdfOcrWorkflow_autofill.action();\n// outputSchema for result.data when operation === 'autofill':\n// {\n// mode: \"autofill\" // Result from autofill mode,\n// extractedFields: { id: number // Field ID from discovery or auto-generated, originalFieldName: string | undefined // Original field name from discovery for precise matching, fieldName: string // Descriptive name generated based on PDF content, value: string // Value to fill in the field based on client information, confidence: number // AI confidence in the field identification and value assignment (0.0-1.0) }[] // Array of identified fields with values for autofill,\n// filledPdfData: string // Base64 encoded filled PDF data,\n// discoveryData: { totalFields: number, fieldsWithCoordinates: number, pages: number[] } // Summary of field discovery results,\n// imageData: { totalPages: number, convertedPages: number, format: string, dpi: number } // Summary of image conversion results,\n// aiAnalysis: { model: string, iterations: number, processingTime: number | undefined } // AI analysis metadata,\n// fillResults: { filledFields: number, successfullyFilled: number } // Summary of PDF filling results,\n// success: boolean // Whether the workflow completed successfully,\n// error: string // Error message if workflow failed\n// }\n\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`pdf-ocr-workflow failed: ${result.error}`);\n}\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
34391
34398
|
"requiredCredentials": [
|
|
34392
34399
|
"GOOGLE_GEMINI_CRED",
|
|
34393
34400
|
"OPENAI_CRED",
|
|
@@ -34495,6 +34502,7 @@
|
|
|
34495
34502
|
"google/gemini-3-pro-image-preview",
|
|
34496
34503
|
"google/gemini-3-flash-preview",
|
|
34497
34504
|
"anthropic/claude-sonnet-4-5",
|
|
34505
|
+
"anthropic/claude-sonnet-4-6",
|
|
34498
34506
|
"anthropic/claude-opus-4-5",
|
|
34499
34507
|
"anthropic/claude-opus-4-6",
|
|
34500
34508
|
"anthropic/claude-haiku-4-5",
|
|
@@ -34719,7 +34727,7 @@
|
|
|
34719
34727
|
],
|
|
34720
34728
|
"additionalProperties": false
|
|
34721
34729
|
},
|
|
34722
|
-
"usageExample": "// Example usage of generate-document-workflow bubble\nconst generateDocumentWorkflow = new GenerateDocumentWorkflow({\n documents: [{ content: \"example string\", index: 42, metadata: { originalFilename: \"example string\", pageCount: 42, uploadedImages: [{ pageNumber: 42, fileName: \"example string\", fileUrl: \"example string\" }] } }], // Array of document objects with content, index, and metadata,\n outputDescription: \"example string\", // Description of what the user wants to extract (e.g., \"expense tracking with vendor, amount, date, category\"),\n outputFormat: \"html\" // options: \"html\", \"csv\", \"json\", // Output format for the structured data,\n aiOptions: { model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-opus-4-6\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/z-ai/glm-4.7\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/anthropic/claude-opus-4.5\", \"openrouter/anthropic/claude-opus-4.6\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\" // AI model to use for document analysis, temperature: 0.1 // default // Temperature for AI responses (lower = more consistent), maxTokens: 50000 // default // Maximum tokens for AI response, jsonMode: true // default // Enable JSON mode to ensure clean JSON output } // structure, // AI agent configuration options,\n});\n\nconst result = await generateDocumentWorkflow.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// columns: { name: string // Column name, type: \"string\" | \"number\" | \"integer\" | \"float\" | \"date\" | \"boolean\" // Data type of the column, description: string // Description of what this column contains }[] // Column definitions for the structured data,\n// rows: Record<string, unknown>[] // Array of data rows extracted from documents,\n// metadata: { totalDocuments: number // Number of documents processed, totalRows: number // Number of data rows extracted, totalColumns: number // Number of columns in the result, processingTime: number // Processing time in milliseconds, extractedFrom: string[] // Summary of document sources } // Metadata about the extraction process,\n// generatedFiles: { html: string | undefined // Generated HTML table, csv: string | undefined // Generated CSV data, json: string | undefined // Generated JSON data } // Generated files in requested formats,\n// aiAnalysis: { model: string // AI model used, iterations: number // Number of AI iterations, processingTime: number | undefined // AI processing time } // AI analysis metadata,\n// success: boolean // Whether the workflow completed successfully,\n// error: string // Error message if workflow failed\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
34730
|
+
"usageExample": "// Example usage of generate-document-workflow bubble\nconst generateDocumentWorkflow = new GenerateDocumentWorkflow({\n documents: [{ content: \"example string\", index: 42, metadata: { originalFilename: \"example string\", pageCount: 42, uploadedImages: [{ pageNumber: 42, fileName: \"example string\", fileUrl: \"example string\" }] } }], // Array of document objects with content, index, and metadata,\n outputDescription: \"example string\", // Description of what the user wants to extract (e.g., \"expense tracking with vendor, amount, date, category\"),\n outputFormat: \"html\" // options: \"html\", \"csv\", \"json\", // Output format for the structured data,\n aiOptions: { model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-sonnet-4-6\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-opus-4-6\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/z-ai/glm-4.7\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/anthropic/claude-opus-4.5\", \"openrouter/anthropic/claude-opus-4.6\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\" // AI model to use for document analysis, temperature: 0.1 // default // Temperature for AI responses (lower = more consistent), maxTokens: 50000 // default // Maximum tokens for AI response, jsonMode: true // default // Enable JSON mode to ensure clean JSON output } // structure, // AI agent configuration options,\n});\n\nconst result = await generateDocumentWorkflow.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// columns: { name: string // Column name, type: \"string\" | \"number\" | \"integer\" | \"float\" | \"date\" | \"boolean\" // Data type of the column, description: string // Description of what this column contains }[] // Column definitions for the structured data,\n// rows: Record<string, unknown>[] // Array of data rows extracted from documents,\n// metadata: { totalDocuments: number // Number of documents processed, totalRows: number // Number of data rows extracted, totalColumns: number // Number of columns in the result, processingTime: number // Processing time in milliseconds, extractedFrom: string[] // Summary of document sources } // Metadata about the extraction process,\n// generatedFiles: { html: string | undefined // Generated HTML table, csv: string | undefined // Generated CSV data, json: string | undefined // Generated JSON data } // Generated files in requested formats,\n// aiAnalysis: { model: string // AI model used, iterations: number // Number of AI iterations, processingTime: number | undefined // AI processing time } // AI analysis metadata,\n// success: boolean // Whether the workflow completed successfully,\n// error: string // Error message if workflow failed\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
34723
34731
|
"requiredCredentials": [
|
|
34724
34732
|
"GOOGLE_GEMINI_CRED",
|
|
34725
34733
|
"OPENAI_CRED",
|
|
@@ -34851,6 +34859,7 @@
|
|
|
34851
34859
|
"google/gemini-3-pro-image-preview",
|
|
34852
34860
|
"google/gemini-3-flash-preview",
|
|
34853
34861
|
"anthropic/claude-sonnet-4-5",
|
|
34862
|
+
"anthropic/claude-sonnet-4-6",
|
|
34854
34863
|
"anthropic/claude-opus-4-5",
|
|
34855
34864
|
"anthropic/claude-opus-4-6",
|
|
34856
34865
|
"anthropic/claude-haiku-4-5",
|
|
@@ -35138,7 +35147,7 @@
|
|
|
35138
35147
|
],
|
|
35139
35148
|
"additionalProperties": false
|
|
35140
35149
|
},
|
|
35141
|
-
"usageExample": "// Example usage of parse-document-workflow bubble\nconst parseDocumentWorkflow = new ParseDocumentWorkflow({\n documentData: \"example string\", // Base64 encoded document data (PDF or image) OR R2 file URL starting with https://,\n documentType: \"pdf\" // options: \"pdf\", \"image\", // Type of document being processed,\n isFileUrl: false // default, // Set to true if documentData is an R2 file URL instead of base64,\n conversionOptions: { preserveStructure: true // default // Maintain original document structure and hierarchy, includeVisualDescriptions: true // default // Include detailed descriptions of charts, images, and diagrams, extractNumericalData: true // default // Extract specific numerical values from charts and tables, combinePages: false // default // Deprecated: Pages are always kept separate with clear headers } // structure, // Options for document conversion and parsing,\n imageOptions: { format: \"png\" // options: \"png\", \"jpeg\" // Output image format for PDF conversion, quality: 0.9 // default // Image quality (0.1-1.0, higher = better quality), dpi: 200 // default // Output DPI for PDF conversion (higher = better quality), pages: [42] // Specific page numbers to process (1-indexed) } // structure, // Options for PDF to images conversion,\n aiOptions: { model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-opus-4-6\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/z-ai/glm-4.7\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/anthropic/claude-opus-4.5\", \"openrouter/anthropic/claude-opus-4.6\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\" // AI model to use for document analysis and conversion, temperature: 0.4 // default // Temperature for AI responses (balanced for accuracy vs recitation), maxTokens: 2000 // default // Maximum tokens for AI response, jsonMode: false // default // Use JSON mode for structured output } // structure, // AI agent configuration options,\n storageOptions: { uploadImages: false // default // Whether to upload converted page images to S3, bucketName: \"example string\" // S3 bucket name for image uploads, pageImageUrls: [{ pageNumber: 42, uploadUrl: \"example string\", fileName: \"example string\" }] // Pre-generated upload URLs for page images, userId: \"example string\" // User ID for secure file isolation }, // Storage options for uploading page images,\n});\n\nconst result = await parseDocumentWorkflow.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// markdown: string // Generated markdown content from the document,\n// pages: { pageNumber: number // Page number (1-indexed), markdown: string // Markdown content for this page, hasCharts: boolean // Whether this page contains charts or graphs, hasTables: boolean // Whether this page contains tables, hasImages: boolean // Whether this page contains images }[] // Per-page analysis results,\n// metadata: { totalPages: number // Total number of pages processed, processedPages: number // Number of pages successfully processed, hasVisualElements: boolean // Whether document contains charts, tables, or images, processingTime: number // Total processing time in milliseconds, imageFormat: string // Image format used for conversion, imageDpi: number // DPI used for image conversion } // Metadata about the parsing process,\n// conversionSummary: { totalCharacters: number // Total characters in generated markdown, tablesExtracted: number // Number of tables converted to markdown, chartsDescribed: number // Number of charts and graphs described, imagesDescribed: number // Number of images described } // Summary of conversion results,\n// aiAnalysis: { model: string // AI model used for analysis, iterations: number // Number of AI iterations, processingTime: number // AI processing time in milliseconds } // AI analysis metadata,\n// uploadedImages: { pageNumber: number, fileName: string, fileUrl: string | undefined, uploaded: boolean }[] | undefined // Information about uploaded page images,\n// success: boolean // Whether the workflow completed successfully,\n// error: string // Error message if workflow failed\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
35150
|
+
"usageExample": "// Example usage of parse-document-workflow bubble\nconst parseDocumentWorkflow = new ParseDocumentWorkflow({\n documentData: \"example string\", // Base64 encoded document data (PDF or image) OR R2 file URL starting with https://,\n documentType: \"pdf\" // options: \"pdf\", \"image\", // Type of document being processed,\n isFileUrl: false // default, // Set to true if documentData is an R2 file URL instead of base64,\n conversionOptions: { preserveStructure: true // default // Maintain original document structure and hierarchy, includeVisualDescriptions: true // default // Include detailed descriptions of charts, images, and diagrams, extractNumericalData: true // default // Extract specific numerical values from charts and tables, combinePages: false // default // Deprecated: Pages are always kept separate with clear headers } // structure, // Options for document conversion and parsing,\n imageOptions: { format: \"png\" // options: \"png\", \"jpeg\" // Output image format for PDF conversion, quality: 0.9 // default // Image quality (0.1-1.0, higher = better quality), dpi: 200 // default // Output DPI for PDF conversion (higher = better quality), pages: [42] // Specific page numbers to process (1-indexed) } // structure, // Options for PDF to images conversion,\n aiOptions: { model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-sonnet-4-6\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-opus-4-6\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/z-ai/glm-4.7\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/anthropic/claude-opus-4.5\", \"openrouter/anthropic/claude-opus-4.6\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\" // AI model to use for document analysis and conversion, temperature: 0.4 // default // Temperature for AI responses (balanced for accuracy vs recitation), maxTokens: 2000 // default // Maximum tokens for AI response, jsonMode: false // default // Use JSON mode for structured output } // structure, // AI agent configuration options,\n storageOptions: { uploadImages: false // default // Whether to upload converted page images to S3, bucketName: \"example string\" // S3 bucket name for image uploads, pageImageUrls: [{ pageNumber: 42, uploadUrl: \"example string\", fileName: \"example string\" }] // Pre-generated upload URLs for page images, userId: \"example string\" // User ID for secure file isolation }, // Storage options for uploading page images,\n});\n\nconst result = await parseDocumentWorkflow.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// markdown: string // Generated markdown content from the document,\n// pages: { pageNumber: number // Page number (1-indexed), markdown: string // Markdown content for this page, hasCharts: boolean // Whether this page contains charts or graphs, hasTables: boolean // Whether this page contains tables, hasImages: boolean // Whether this page contains images }[] // Per-page analysis results,\n// metadata: { totalPages: number // Total number of pages processed, processedPages: number // Number of pages successfully processed, hasVisualElements: boolean // Whether document contains charts, tables, or images, processingTime: number // Total processing time in milliseconds, imageFormat: string // Image format used for conversion, imageDpi: number // DPI used for image conversion } // Metadata about the parsing process,\n// conversionSummary: { totalCharacters: number // Total characters in generated markdown, tablesExtracted: number // Number of tables converted to markdown, chartsDescribed: number // Number of charts and graphs described, imagesDescribed: number // Number of images described } // Summary of conversion results,\n// aiAnalysis: { model: string // AI model used for analysis, iterations: number // Number of AI iterations, processingTime: number // AI processing time in milliseconds } // AI analysis metadata,\n// uploadedImages: { pageNumber: number, fileName: string, fileUrl: string | undefined, uploaded: boolean }[] | undefined // Information about uploaded page images,\n// success: boolean // Whether the workflow completed successfully,\n// error: string // Error message if workflow failed\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
35142
35151
|
"requiredCredentials": [
|
|
35143
35152
|
"GOOGLE_GEMINI_CRED",
|
|
35144
35153
|
"OPENAI_CRED",
|
|
@@ -36548,6 +36557,7 @@
|
|
|
36548
36557
|
"google/gemini-3-pro-image-preview",
|
|
36549
36558
|
"google/gemini-3-flash-preview",
|
|
36550
36559
|
"anthropic/claude-sonnet-4-5",
|
|
36560
|
+
"anthropic/claude-sonnet-4-6",
|
|
36551
36561
|
"anthropic/claude-opus-4-5",
|
|
36552
36562
|
"anthropic/claude-opus-4-6",
|
|
36553
36563
|
"anthropic/claude-haiku-4-5",
|
|
@@ -36632,7 +36642,7 @@
|
|
|
36632
36642
|
],
|
|
36633
36643
|
"additionalProperties": false
|
|
36634
36644
|
},
|
|
36635
|
-
"usageExample": "// Example usage of research-agent-tool bubble\nconst researchAgentTool = new ResearchAgentTool({\n task: \"example string\", // The research task that requires searching the internet and gathering information,\n expectedResultSchema: \"example string\", // Zod schema that defines the expected structure of the research result. Example: z.object({ trends: z.array(z.string()).describe(\"An array of trends\"), summary: z.string().describe(\"A summary of the trends\") }),\n model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-opus-4-6\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/z-ai/glm-4.7\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/anthropic/claude-opus-4.5\", \"openrouter/anthropic/claude-opus-4.6\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\", // Model to use for the research agent (default: google/gemini-3-pro-preview),\n maxTokens: 40000 // default, // Maximum number of tokens for the research agent (default: 40000),\n maxIterations: 400 // default, // Maximum number of iterations for the research agent (default: 100),\n});\n\nconst result = await researchAgentTool.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// result: unknown // The research result matching the expected JSON schema structure, parsed to object,\n// summary: string // 1-2 sentence summary of what research was conducted and completed,\n// sourcesUsed: string[] // Array of URLs and sources that were searched and scraped during research,\n// iterationsUsed: number // Number of AI agent iterations used to complete the research,\n// success: boolean // Whether the research task was completed successfully,\n// error: string // Error message if research failed\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
36645
|
+
"usageExample": "// Example usage of research-agent-tool bubble\nconst researchAgentTool = new ResearchAgentTool({\n task: \"example string\", // The research task that requires searching the internet and gathering information,\n expectedResultSchema: \"example string\", // Zod schema that defines the expected structure of the research result. Example: z.object({ trends: z.array(z.string()).describe(\"An array of trends\"), summary: z.string().describe(\"A summary of the trends\") }),\n model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-sonnet-4-6\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-opus-4-6\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/z-ai/glm-4.7\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/anthropic/claude-opus-4.5\", \"openrouter/anthropic/claude-opus-4.6\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\", // Model to use for the research agent (default: google/gemini-3-pro-preview),\n maxTokens: 40000 // default, // Maximum number of tokens for the research agent (default: 40000),\n maxIterations: 400 // default, // Maximum number of iterations for the research agent (default: 100),\n});\n\nconst result = await researchAgentTool.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// result: unknown // The research result matching the expected JSON schema structure, parsed to object,\n// summary: string // 1-2 sentence summary of what research was conducted and completed,\n// sourcesUsed: string[] // Array of URLs and sources that were searched and scraped during research,\n// iterationsUsed: number // Number of AI agent iterations used to complete the research,\n// success: boolean // Whether the research task was completed successfully,\n// error: string // Error message if research failed\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
36636
36646
|
"requiredCredentials": [
|
|
36637
36647
|
"FIRECRAWL_API_KEY",
|
|
36638
36648
|
"GOOGLE_GEMINI_CRED",
|
|
@@ -65701,6 +65711,1361 @@
|
|
|
65701
65711
|
"requiredCredentials": [
|
|
65702
65712
|
"POSTHOG_API_KEY"
|
|
65703
65713
|
]
|
|
65714
|
+
},
|
|
65715
|
+
{
|
|
65716
|
+
"name": "linear",
|
|
65717
|
+
"alias": "linear",
|
|
65718
|
+
"type": "service",
|
|
65719
|
+
"shortDescription": "Linear integration for issue tracking and project management",
|
|
65720
|
+
"useCase": "General purpose bubble for various workflow needs",
|
|
65721
|
+
"outputSchema": "Complex schema - see usage example for structure",
|
|
65722
|
+
"inputJsonSchema": {
|
|
65723
|
+
"anyOf": [
|
|
65724
|
+
{
|
|
65725
|
+
"type": "object",
|
|
65726
|
+
"properties": {
|
|
65727
|
+
"operation": {
|
|
65728
|
+
"type": "string",
|
|
65729
|
+
"enum": [
|
|
65730
|
+
"search"
|
|
65731
|
+
],
|
|
65732
|
+
"description": "Search for issues with text query and filters"
|
|
65733
|
+
},
|
|
65734
|
+
"query": {
|
|
65735
|
+
"type": "string",
|
|
65736
|
+
"description": "Text to search for in issue titles and descriptions"
|
|
65737
|
+
},
|
|
65738
|
+
"teamId": {
|
|
65739
|
+
"type": "string",
|
|
65740
|
+
"description": "Filter by team ID"
|
|
65741
|
+
},
|
|
65742
|
+
"assigneeId": {
|
|
65743
|
+
"type": "string",
|
|
65744
|
+
"description": "Filter by assignee user ID"
|
|
65745
|
+
},
|
|
65746
|
+
"stateId": {
|
|
65747
|
+
"type": "string",
|
|
65748
|
+
"description": "Filter by workflow state ID"
|
|
65749
|
+
},
|
|
65750
|
+
"labelId": {
|
|
65751
|
+
"type": "string",
|
|
65752
|
+
"description": "Filter by label ID"
|
|
65753
|
+
},
|
|
65754
|
+
"projectId": {
|
|
65755
|
+
"type": "string",
|
|
65756
|
+
"description": "Filter by project ID"
|
|
65757
|
+
},
|
|
65758
|
+
"priority": {
|
|
65759
|
+
"type": "number",
|
|
65760
|
+
"minimum": 0,
|
|
65761
|
+
"maximum": 4,
|
|
65762
|
+
"description": "Filter by priority (0=No priority, 1=Urgent, 2=High, 3=Medium, 4=Low)"
|
|
65763
|
+
},
|
|
65764
|
+
"limit": {
|
|
65765
|
+
"type": "number",
|
|
65766
|
+
"minimum": 1,
|
|
65767
|
+
"maximum": 100,
|
|
65768
|
+
"default": 50,
|
|
65769
|
+
"description": "Maximum number of issues to return (1-100)"
|
|
65770
|
+
},
|
|
65771
|
+
"includeArchived": {
|
|
65772
|
+
"type": "boolean",
|
|
65773
|
+
"default": false,
|
|
65774
|
+
"description": "Include archived issues in results"
|
|
65775
|
+
},
|
|
65776
|
+
"credentials": {
|
|
65777
|
+
"type": "object",
|
|
65778
|
+
"additionalProperties": {
|
|
65779
|
+
"type": "string"
|
|
65780
|
+
},
|
|
65781
|
+
"description": "Credentials (injected at runtime)"
|
|
65782
|
+
}
|
|
65783
|
+
},
|
|
65784
|
+
"required": [
|
|
65785
|
+
"operation"
|
|
65786
|
+
],
|
|
65787
|
+
"additionalProperties": false
|
|
65788
|
+
},
|
|
65789
|
+
{
|
|
65790
|
+
"type": "object",
|
|
65791
|
+
"properties": {
|
|
65792
|
+
"operation": {
|
|
65793
|
+
"type": "string",
|
|
65794
|
+
"enum": [
|
|
65795
|
+
"get"
|
|
65796
|
+
],
|
|
65797
|
+
"description": "Get details for a specific issue"
|
|
65798
|
+
},
|
|
65799
|
+
"identifier": {
|
|
65800
|
+
"type": "string",
|
|
65801
|
+
"minLength": 1,
|
|
65802
|
+
"description": "Issue identifier (e.g., \"LIN-123\") or issue ID"
|
|
65803
|
+
},
|
|
65804
|
+
"credentials": {
|
|
65805
|
+
"type": "object",
|
|
65806
|
+
"additionalProperties": {
|
|
65807
|
+
"type": "string"
|
|
65808
|
+
},
|
|
65809
|
+
"description": "Credentials (injected at runtime)"
|
|
65810
|
+
}
|
|
65811
|
+
},
|
|
65812
|
+
"required": [
|
|
65813
|
+
"operation",
|
|
65814
|
+
"identifier"
|
|
65815
|
+
],
|
|
65816
|
+
"additionalProperties": false
|
|
65817
|
+
},
|
|
65818
|
+
{
|
|
65819
|
+
"type": "object",
|
|
65820
|
+
"properties": {
|
|
65821
|
+
"operation": {
|
|
65822
|
+
"type": "string",
|
|
65823
|
+
"enum": [
|
|
65824
|
+
"create"
|
|
65825
|
+
],
|
|
65826
|
+
"description": "Create a new issue in Linear"
|
|
65827
|
+
},
|
|
65828
|
+
"teamId": {
|
|
65829
|
+
"type": "string",
|
|
65830
|
+
"minLength": 1,
|
|
65831
|
+
"description": "Team ID to create the issue in"
|
|
65832
|
+
},
|
|
65833
|
+
"title": {
|
|
65834
|
+
"type": "string",
|
|
65835
|
+
"minLength": 1,
|
|
65836
|
+
"description": "Issue title"
|
|
65837
|
+
},
|
|
65838
|
+
"description": {
|
|
65839
|
+
"type": "string",
|
|
65840
|
+
"description": "Issue description (supports markdown)"
|
|
65841
|
+
},
|
|
65842
|
+
"assigneeId": {
|
|
65843
|
+
"type": "string",
|
|
65844
|
+
"description": "Assignee user ID. Leave empty for unassigned"
|
|
65845
|
+
},
|
|
65846
|
+
"priority": {
|
|
65847
|
+
"type": "number",
|
|
65848
|
+
"minimum": 0,
|
|
65849
|
+
"maximum": 4,
|
|
65850
|
+
"description": "Issue priority (0=No priority, 1=Urgent, 2=High, 3=Medium, 4=Low)"
|
|
65851
|
+
},
|
|
65852
|
+
"stateId": {
|
|
65853
|
+
"type": "string",
|
|
65854
|
+
"description": "Workflow state ID. If not set, uses the team default"
|
|
65855
|
+
},
|
|
65856
|
+
"stateName": {
|
|
65857
|
+
"type": "string",
|
|
65858
|
+
"description": "Workflow state name (e.g., \"In Progress\"). Resolved to ID automatically. Use this instead of stateId for convenience"
|
|
65859
|
+
},
|
|
65860
|
+
"labelIds": {
|
|
65861
|
+
"type": "array",
|
|
65862
|
+
"items": {
|
|
65863
|
+
"type": "string"
|
|
65864
|
+
},
|
|
65865
|
+
"description": "Label IDs to apply"
|
|
65866
|
+
},
|
|
65867
|
+
"projectId": {
|
|
65868
|
+
"type": "string",
|
|
65869
|
+
"description": "Project ID to associate with"
|
|
65870
|
+
},
|
|
65871
|
+
"dueDate": {
|
|
65872
|
+
"type": "string",
|
|
65873
|
+
"description": "Due date in YYYY-MM-DD format"
|
|
65874
|
+
},
|
|
65875
|
+
"parentId": {
|
|
65876
|
+
"type": "string",
|
|
65877
|
+
"description": "Parent issue ID for sub-issues"
|
|
65878
|
+
},
|
|
65879
|
+
"estimate": {
|
|
65880
|
+
"type": "number",
|
|
65881
|
+
"description": "Issue estimate (points)"
|
|
65882
|
+
},
|
|
65883
|
+
"credentials": {
|
|
65884
|
+
"type": "object",
|
|
65885
|
+
"additionalProperties": {
|
|
65886
|
+
"type": "string"
|
|
65887
|
+
},
|
|
65888
|
+
"description": "Credentials (injected at runtime)"
|
|
65889
|
+
}
|
|
65890
|
+
},
|
|
65891
|
+
"required": [
|
|
65892
|
+
"operation",
|
|
65893
|
+
"teamId",
|
|
65894
|
+
"title"
|
|
65895
|
+
],
|
|
65896
|
+
"additionalProperties": false
|
|
65897
|
+
},
|
|
65898
|
+
{
|
|
65899
|
+
"type": "object",
|
|
65900
|
+
"properties": {
|
|
65901
|
+
"operation": {
|
|
65902
|
+
"type": "string",
|
|
65903
|
+
"enum": [
|
|
65904
|
+
"update"
|
|
65905
|
+
],
|
|
65906
|
+
"description": "Update an existing issue"
|
|
65907
|
+
},
|
|
65908
|
+
"id": {
|
|
65909
|
+
"type": "string",
|
|
65910
|
+
"minLength": 1,
|
|
65911
|
+
"description": "Issue ID (UUID) or identifier (e.g., \"LIN-123\")"
|
|
65912
|
+
},
|
|
65913
|
+
"title": {
|
|
65914
|
+
"type": "string",
|
|
65915
|
+
"minLength": 1,
|
|
65916
|
+
"description": "New issue title"
|
|
65917
|
+
},
|
|
65918
|
+
"description": {
|
|
65919
|
+
"type": "string",
|
|
65920
|
+
"description": "New description (supports markdown)"
|
|
65921
|
+
},
|
|
65922
|
+
"assigneeId": {
|
|
65923
|
+
"type": "string",
|
|
65924
|
+
"nullable": true,
|
|
65925
|
+
"description": "New assignee user ID or null to unassign"
|
|
65926
|
+
},
|
|
65927
|
+
"priority": {
|
|
65928
|
+
"type": "number",
|
|
65929
|
+
"minimum": 0,
|
|
65930
|
+
"maximum": 4,
|
|
65931
|
+
"description": "New priority (0=No priority, 1=Urgent, 2=High, 3=Medium, 4=Low)"
|
|
65932
|
+
},
|
|
65933
|
+
"stateId": {
|
|
65934
|
+
"type": "string",
|
|
65935
|
+
"description": "New workflow state ID"
|
|
65936
|
+
},
|
|
65937
|
+
"stateName": {
|
|
65938
|
+
"type": "string",
|
|
65939
|
+
"description": "New workflow state name (e.g., \"Done\"). Resolved to ID automatically"
|
|
65940
|
+
},
|
|
65941
|
+
"labels": {
|
|
65942
|
+
"type": "object",
|
|
65943
|
+
"properties": {
|
|
65944
|
+
"add": {
|
|
65945
|
+
"type": "array",
|
|
65946
|
+
"items": {
|
|
65947
|
+
"type": "string"
|
|
65948
|
+
},
|
|
65949
|
+
"description": "Label IDs or names to add to the issue"
|
|
65950
|
+
},
|
|
65951
|
+
"remove": {
|
|
65952
|
+
"type": "array",
|
|
65953
|
+
"items": {
|
|
65954
|
+
"type": "string"
|
|
65955
|
+
},
|
|
65956
|
+
"description": "Label IDs or names to remove from the issue"
|
|
65957
|
+
}
|
|
65958
|
+
},
|
|
65959
|
+
"additionalProperties": false,
|
|
65960
|
+
"description": "Label modifications"
|
|
65961
|
+
},
|
|
65962
|
+
"projectId": {
|
|
65963
|
+
"type": "string",
|
|
65964
|
+
"nullable": true,
|
|
65965
|
+
"description": "New project ID or null to remove from project"
|
|
65966
|
+
},
|
|
65967
|
+
"dueDate": {
|
|
65968
|
+
"type": "string",
|
|
65969
|
+
"nullable": true,
|
|
65970
|
+
"description": "New due date (YYYY-MM-DD) or null to clear"
|
|
65971
|
+
},
|
|
65972
|
+
"estimate": {
|
|
65973
|
+
"type": "number",
|
|
65974
|
+
"nullable": true,
|
|
65975
|
+
"description": "New estimate (points) or null to clear"
|
|
65976
|
+
},
|
|
65977
|
+
"credentials": {
|
|
65978
|
+
"type": "object",
|
|
65979
|
+
"additionalProperties": {
|
|
65980
|
+
"type": "string"
|
|
65981
|
+
},
|
|
65982
|
+
"description": "Credentials (injected at runtime)"
|
|
65983
|
+
}
|
|
65984
|
+
},
|
|
65985
|
+
"required": [
|
|
65986
|
+
"operation",
|
|
65987
|
+
"id"
|
|
65988
|
+
],
|
|
65989
|
+
"additionalProperties": false
|
|
65990
|
+
},
|
|
65991
|
+
{
|
|
65992
|
+
"type": "object",
|
|
65993
|
+
"properties": {
|
|
65994
|
+
"operation": {
|
|
65995
|
+
"type": "string",
|
|
65996
|
+
"enum": [
|
|
65997
|
+
"list_teams"
|
|
65998
|
+
],
|
|
65999
|
+
"description": "List all teams"
|
|
66000
|
+
},
|
|
66001
|
+
"credentials": {
|
|
66002
|
+
"type": "object",
|
|
66003
|
+
"additionalProperties": {
|
|
66004
|
+
"type": "string"
|
|
66005
|
+
},
|
|
66006
|
+
"description": "Credentials (injected at runtime)"
|
|
66007
|
+
}
|
|
66008
|
+
},
|
|
66009
|
+
"required": [
|
|
66010
|
+
"operation"
|
|
66011
|
+
],
|
|
66012
|
+
"additionalProperties": false
|
|
66013
|
+
},
|
|
66014
|
+
{
|
|
66015
|
+
"type": "object",
|
|
66016
|
+
"properties": {
|
|
66017
|
+
"operation": {
|
|
66018
|
+
"type": "string",
|
|
66019
|
+
"enum": [
|
|
66020
|
+
"list_projects"
|
|
66021
|
+
],
|
|
66022
|
+
"description": "List projects, optionally filtered by team"
|
|
66023
|
+
},
|
|
66024
|
+
"teamId": {
|
|
66025
|
+
"type": "string",
|
|
66026
|
+
"description": "Filter projects by team ID"
|
|
66027
|
+
},
|
|
66028
|
+
"limit": {
|
|
66029
|
+
"type": "number",
|
|
66030
|
+
"minimum": 1,
|
|
66031
|
+
"maximum": 100,
|
|
66032
|
+
"default": 50,
|
|
66033
|
+
"description": "Maximum number of projects to return"
|
|
66034
|
+
},
|
|
66035
|
+
"includeArchived": {
|
|
66036
|
+
"type": "boolean",
|
|
66037
|
+
"default": false,
|
|
66038
|
+
"description": "Include archived projects"
|
|
66039
|
+
},
|
|
66040
|
+
"credentials": {
|
|
66041
|
+
"type": "object",
|
|
66042
|
+
"additionalProperties": {
|
|
66043
|
+
"type": "string"
|
|
66044
|
+
},
|
|
66045
|
+
"description": "Credentials (injected at runtime)"
|
|
66046
|
+
}
|
|
66047
|
+
},
|
|
66048
|
+
"required": [
|
|
66049
|
+
"operation"
|
|
66050
|
+
],
|
|
66051
|
+
"additionalProperties": false
|
|
66052
|
+
},
|
|
66053
|
+
{
|
|
66054
|
+
"type": "object",
|
|
66055
|
+
"properties": {
|
|
66056
|
+
"operation": {
|
|
66057
|
+
"type": "string",
|
|
66058
|
+
"enum": [
|
|
66059
|
+
"list_workflow_states"
|
|
66060
|
+
],
|
|
66061
|
+
"description": "List workflow states for a team"
|
|
66062
|
+
},
|
|
66063
|
+
"teamId": {
|
|
66064
|
+
"type": "string",
|
|
66065
|
+
"minLength": 1,
|
|
66066
|
+
"description": "Team ID to get workflow states for"
|
|
66067
|
+
},
|
|
66068
|
+
"credentials": {
|
|
66069
|
+
"type": "object",
|
|
66070
|
+
"additionalProperties": {
|
|
66071
|
+
"type": "string"
|
|
66072
|
+
},
|
|
66073
|
+
"description": "Credentials (injected at runtime)"
|
|
66074
|
+
}
|
|
66075
|
+
},
|
|
66076
|
+
"required": [
|
|
66077
|
+
"operation",
|
|
66078
|
+
"teamId"
|
|
66079
|
+
],
|
|
66080
|
+
"additionalProperties": false
|
|
66081
|
+
},
|
|
66082
|
+
{
|
|
66083
|
+
"type": "object",
|
|
66084
|
+
"properties": {
|
|
66085
|
+
"operation": {
|
|
66086
|
+
"type": "string",
|
|
66087
|
+
"enum": [
|
|
66088
|
+
"add_comment"
|
|
66089
|
+
],
|
|
66090
|
+
"description": "Add a comment to an issue"
|
|
66091
|
+
},
|
|
66092
|
+
"issueId": {
|
|
66093
|
+
"type": "string",
|
|
66094
|
+
"minLength": 1,
|
|
66095
|
+
"description": "Issue ID (UUID) or identifier (e.g., \"LIN-123\")"
|
|
66096
|
+
},
|
|
66097
|
+
"body": {
|
|
66098
|
+
"type": "string",
|
|
66099
|
+
"minLength": 1,
|
|
66100
|
+
"description": "Comment text (supports markdown)"
|
|
66101
|
+
},
|
|
66102
|
+
"credentials": {
|
|
66103
|
+
"type": "object",
|
|
66104
|
+
"additionalProperties": {
|
|
66105
|
+
"type": "string"
|
|
66106
|
+
},
|
|
66107
|
+
"description": "Credentials (injected at runtime)"
|
|
66108
|
+
}
|
|
66109
|
+
},
|
|
66110
|
+
"required": [
|
|
66111
|
+
"operation",
|
|
66112
|
+
"issueId",
|
|
66113
|
+
"body"
|
|
66114
|
+
],
|
|
66115
|
+
"additionalProperties": false
|
|
66116
|
+
},
|
|
66117
|
+
{
|
|
66118
|
+
"type": "object",
|
|
66119
|
+
"properties": {
|
|
66120
|
+
"operation": {
|
|
66121
|
+
"type": "string",
|
|
66122
|
+
"enum": [
|
|
66123
|
+
"get_comments"
|
|
66124
|
+
],
|
|
66125
|
+
"description": "Get comments for an issue"
|
|
66126
|
+
},
|
|
66127
|
+
"issueId": {
|
|
66128
|
+
"type": "string",
|
|
66129
|
+
"minLength": 1,
|
|
66130
|
+
"description": "Issue ID (UUID) or identifier (e.g., \"LIN-123\")"
|
|
66131
|
+
},
|
|
66132
|
+
"limit": {
|
|
66133
|
+
"type": "number",
|
|
66134
|
+
"minimum": 1,
|
|
66135
|
+
"maximum": 100,
|
|
66136
|
+
"default": 50,
|
|
66137
|
+
"description": "Maximum number of comments to return"
|
|
66138
|
+
},
|
|
66139
|
+
"credentials": {
|
|
66140
|
+
"type": "object",
|
|
66141
|
+
"additionalProperties": {
|
|
66142
|
+
"type": "string"
|
|
66143
|
+
},
|
|
66144
|
+
"description": "Credentials (injected at runtime)"
|
|
66145
|
+
}
|
|
66146
|
+
},
|
|
66147
|
+
"required": [
|
|
66148
|
+
"operation",
|
|
66149
|
+
"issueId"
|
|
66150
|
+
],
|
|
66151
|
+
"additionalProperties": false
|
|
66152
|
+
},
|
|
66153
|
+
{
|
|
66154
|
+
"type": "object",
|
|
66155
|
+
"properties": {
|
|
66156
|
+
"operation": {
|
|
66157
|
+
"type": "string",
|
|
66158
|
+
"enum": [
|
|
66159
|
+
"list_labels"
|
|
66160
|
+
],
|
|
66161
|
+
"description": "List labels, optionally filtered by team"
|
|
66162
|
+
},
|
|
66163
|
+
"teamId": {
|
|
66164
|
+
"type": "string",
|
|
66165
|
+
"description": "Filter labels by team ID"
|
|
66166
|
+
},
|
|
66167
|
+
"credentials": {
|
|
66168
|
+
"type": "object",
|
|
66169
|
+
"additionalProperties": {
|
|
66170
|
+
"type": "string"
|
|
66171
|
+
},
|
|
66172
|
+
"description": "Credentials (injected at runtime)"
|
|
66173
|
+
}
|
|
66174
|
+
},
|
|
66175
|
+
"required": [
|
|
66176
|
+
"operation"
|
|
66177
|
+
],
|
|
66178
|
+
"additionalProperties": false
|
|
66179
|
+
}
|
|
66180
|
+
]
|
|
66181
|
+
},
|
|
66182
|
+
"outputJsonSchema": {
|
|
66183
|
+
"anyOf": [
|
|
66184
|
+
{
|
|
66185
|
+
"type": "object",
|
|
66186
|
+
"properties": {
|
|
66187
|
+
"operation": {
|
|
66188
|
+
"type": "string",
|
|
66189
|
+
"enum": [
|
|
66190
|
+
"search"
|
|
66191
|
+
]
|
|
66192
|
+
},
|
|
66193
|
+
"success": {
|
|
66194
|
+
"type": "boolean",
|
|
66195
|
+
"description": "Whether the operation was successful"
|
|
66196
|
+
},
|
|
66197
|
+
"issues": {
|
|
66198
|
+
"type": "array",
|
|
66199
|
+
"items": {
|
|
66200
|
+
"type": "object",
|
|
66201
|
+
"properties": {
|
|
66202
|
+
"id": {
|
|
66203
|
+
"type": "string",
|
|
66204
|
+
"description": "Issue ID"
|
|
66205
|
+
},
|
|
66206
|
+
"identifier": {
|
|
66207
|
+
"type": "string",
|
|
66208
|
+
"description": "Issue identifier (e.g., \"LIN-123\")"
|
|
66209
|
+
},
|
|
66210
|
+
"title": {
|
|
66211
|
+
"type": "string",
|
|
66212
|
+
"description": "Issue title"
|
|
66213
|
+
},
|
|
66214
|
+
"description": {
|
|
66215
|
+
"type": "string",
|
|
66216
|
+
"nullable": true,
|
|
66217
|
+
"description": "Issue description (markdown)"
|
|
66218
|
+
},
|
|
66219
|
+
"priority": {
|
|
66220
|
+
"type": "number",
|
|
66221
|
+
"description": "Priority (0=No priority, 1=Urgent, 2=High, 3=Medium, 4=Low)"
|
|
66222
|
+
},
|
|
66223
|
+
"priorityLabel": {
|
|
66224
|
+
"type": "string",
|
|
66225
|
+
"description": "Priority label (e.g., \"High\")"
|
|
66226
|
+
},
|
|
66227
|
+
"state": {
|
|
66228
|
+
"type": "object",
|
|
66229
|
+
"properties": {
|
|
66230
|
+
"id": {
|
|
66231
|
+
"type": "string",
|
|
66232
|
+
"description": "Workflow state ID"
|
|
66233
|
+
},
|
|
66234
|
+
"name": {
|
|
66235
|
+
"type": "string",
|
|
66236
|
+
"description": "State name (e.g., \"Todo\", \"In Progress\", \"Done\")"
|
|
66237
|
+
},
|
|
66238
|
+
"type": {
|
|
66239
|
+
"type": "string",
|
|
66240
|
+
"description": "State type (backlog, unstarted, started, completed, cancelled)"
|
|
66241
|
+
},
|
|
66242
|
+
"color": {
|
|
66243
|
+
"type": "string",
|
|
66244
|
+
"description": "State color"
|
|
66245
|
+
}
|
|
66246
|
+
},
|
|
66247
|
+
"required": [
|
|
66248
|
+
"id",
|
|
66249
|
+
"name"
|
|
66250
|
+
],
|
|
66251
|
+
"additionalProperties": true,
|
|
66252
|
+
"description": "Current state"
|
|
66253
|
+
},
|
|
66254
|
+
"assignee": {
|
|
66255
|
+
"type": "object",
|
|
66256
|
+
"properties": {
|
|
66257
|
+
"id": {
|
|
66258
|
+
"type": "string",
|
|
66259
|
+
"description": "User ID"
|
|
66260
|
+
},
|
|
66261
|
+
"name": {
|
|
66262
|
+
"type": "string",
|
|
66263
|
+
"description": "User display name"
|
|
66264
|
+
},
|
|
66265
|
+
"email": {
|
|
66266
|
+
"type": "string",
|
|
66267
|
+
"description": "User email address"
|
|
66268
|
+
}
|
|
66269
|
+
},
|
|
66270
|
+
"required": [
|
|
66271
|
+
"id"
|
|
66272
|
+
],
|
|
66273
|
+
"additionalProperties": true,
|
|
66274
|
+
"description": "Assigned user",
|
|
66275
|
+
"nullable": true
|
|
66276
|
+
},
|
|
66277
|
+
"team": {
|
|
66278
|
+
"type": "object",
|
|
66279
|
+
"properties": {
|
|
66280
|
+
"id": {
|
|
66281
|
+
"type": "string",
|
|
66282
|
+
"description": "Team ID"
|
|
66283
|
+
},
|
|
66284
|
+
"name": {
|
|
66285
|
+
"type": "string",
|
|
66286
|
+
"description": "Team name"
|
|
66287
|
+
},
|
|
66288
|
+
"key": {
|
|
66289
|
+
"type": "string",
|
|
66290
|
+
"description": "Team key (e.g., \"LIN\")"
|
|
66291
|
+
}
|
|
66292
|
+
},
|
|
66293
|
+
"required": [
|
|
66294
|
+
"id",
|
|
66295
|
+
"name",
|
|
66296
|
+
"key"
|
|
66297
|
+
],
|
|
66298
|
+
"additionalProperties": true,
|
|
66299
|
+
"description": "Team"
|
|
66300
|
+
},
|
|
66301
|
+
"project": {
|
|
66302
|
+
"type": "object",
|
|
66303
|
+
"properties": {
|
|
66304
|
+
"id": {
|
|
66305
|
+
"type": "string",
|
|
66306
|
+
"description": "Project ID"
|
|
66307
|
+
},
|
|
66308
|
+
"name": {
|
|
66309
|
+
"type": "string",
|
|
66310
|
+
"description": "Project name"
|
|
66311
|
+
},
|
|
66312
|
+
"state": {
|
|
66313
|
+
"type": "string",
|
|
66314
|
+
"description": "Project state"
|
|
66315
|
+
}
|
|
66316
|
+
},
|
|
66317
|
+
"required": [
|
|
66318
|
+
"id",
|
|
66319
|
+
"name"
|
|
66320
|
+
],
|
|
66321
|
+
"additionalProperties": true,
|
|
66322
|
+
"description": "Project",
|
|
66323
|
+
"nullable": true
|
|
66324
|
+
},
|
|
66325
|
+
"labels": {
|
|
66326
|
+
"type": "object",
|
|
66327
|
+
"properties": {
|
|
66328
|
+
"nodes": {
|
|
66329
|
+
"type": "array",
|
|
66330
|
+
"items": {
|
|
66331
|
+
"type": "object",
|
|
66332
|
+
"properties": {
|
|
66333
|
+
"id": {
|
|
66334
|
+
"type": "string",
|
|
66335
|
+
"description": "Label ID"
|
|
66336
|
+
},
|
|
66337
|
+
"name": {
|
|
66338
|
+
"type": "string",
|
|
66339
|
+
"description": "Label name"
|
|
66340
|
+
},
|
|
66341
|
+
"color": {
|
|
66342
|
+
"type": "string",
|
|
66343
|
+
"description": "Label color"
|
|
66344
|
+
}
|
|
66345
|
+
},
|
|
66346
|
+
"required": [
|
|
66347
|
+
"id",
|
|
66348
|
+
"name"
|
|
66349
|
+
],
|
|
66350
|
+
"additionalProperties": true,
|
|
66351
|
+
"description": "Linear label"
|
|
66352
|
+
}
|
|
66353
|
+
}
|
|
66354
|
+
},
|
|
66355
|
+
"additionalProperties": false,
|
|
66356
|
+
"description": "Issue labels"
|
|
66357
|
+
},
|
|
66358
|
+
"createdAt": {
|
|
66359
|
+
"type": "string",
|
|
66360
|
+
"description": "Creation timestamp"
|
|
66361
|
+
},
|
|
66362
|
+
"updatedAt": {
|
|
66363
|
+
"type": "string",
|
|
66364
|
+
"description": "Last update timestamp"
|
|
66365
|
+
},
|
|
66366
|
+
"dueDate": {
|
|
66367
|
+
"type": "string",
|
|
66368
|
+
"nullable": true,
|
|
66369
|
+
"description": "Due date (YYYY-MM-DD)"
|
|
66370
|
+
},
|
|
66371
|
+
"url": {
|
|
66372
|
+
"type": "string",
|
|
66373
|
+
"description": "Issue URL"
|
|
66374
|
+
}
|
|
66375
|
+
},
|
|
66376
|
+
"additionalProperties": true,
|
|
66377
|
+
"description": "Linear issue"
|
|
66378
|
+
},
|
|
66379
|
+
"description": "Found issues"
|
|
66380
|
+
},
|
|
66381
|
+
"total": {
|
|
66382
|
+
"type": "number",
|
|
66383
|
+
"description": "Total matching issues"
|
|
66384
|
+
},
|
|
66385
|
+
"error": {
|
|
66386
|
+
"type": "string",
|
|
66387
|
+
"description": "Error message if operation failed"
|
|
66388
|
+
}
|
|
66389
|
+
},
|
|
66390
|
+
"required": [
|
|
66391
|
+
"operation",
|
|
66392
|
+
"success",
|
|
66393
|
+
"error"
|
|
66394
|
+
],
|
|
66395
|
+
"additionalProperties": false
|
|
66396
|
+
},
|
|
66397
|
+
{
|
|
66398
|
+
"type": "object",
|
|
66399
|
+
"properties": {
|
|
66400
|
+
"operation": {
|
|
66401
|
+
"type": "string",
|
|
66402
|
+
"enum": [
|
|
66403
|
+
"get"
|
|
66404
|
+
]
|
|
66405
|
+
},
|
|
66406
|
+
"success": {
|
|
66407
|
+
"type": "boolean",
|
|
66408
|
+
"description": "Whether the operation was successful"
|
|
66409
|
+
},
|
|
66410
|
+
"issue": {
|
|
66411
|
+
"type": "object",
|
|
66412
|
+
"properties": {
|
|
66413
|
+
"id": {
|
|
66414
|
+
"type": "string",
|
|
66415
|
+
"description": "Issue ID"
|
|
66416
|
+
},
|
|
66417
|
+
"identifier": {
|
|
66418
|
+
"type": "string",
|
|
66419
|
+
"description": "Issue identifier (e.g., \"LIN-123\")"
|
|
66420
|
+
},
|
|
66421
|
+
"title": {
|
|
66422
|
+
"type": "string",
|
|
66423
|
+
"description": "Issue title"
|
|
66424
|
+
},
|
|
66425
|
+
"description": {
|
|
66426
|
+
"type": "string",
|
|
66427
|
+
"nullable": true,
|
|
66428
|
+
"description": "Issue description (markdown)"
|
|
66429
|
+
},
|
|
66430
|
+
"priority": {
|
|
66431
|
+
"type": "number",
|
|
66432
|
+
"description": "Priority (0=No priority, 1=Urgent, 2=High, 3=Medium, 4=Low)"
|
|
66433
|
+
},
|
|
66434
|
+
"priorityLabel": {
|
|
66435
|
+
"type": "string",
|
|
66436
|
+
"description": "Priority label (e.g., \"High\")"
|
|
66437
|
+
},
|
|
66438
|
+
"state": {
|
|
66439
|
+
"type": "object",
|
|
66440
|
+
"properties": {
|
|
66441
|
+
"id": {
|
|
66442
|
+
"type": "string",
|
|
66443
|
+
"description": "Workflow state ID"
|
|
66444
|
+
},
|
|
66445
|
+
"name": {
|
|
66446
|
+
"type": "string",
|
|
66447
|
+
"description": "State name (e.g., \"Todo\", \"In Progress\", \"Done\")"
|
|
66448
|
+
},
|
|
66449
|
+
"type": {
|
|
66450
|
+
"type": "string",
|
|
66451
|
+
"description": "State type (backlog, unstarted, started, completed, cancelled)"
|
|
66452
|
+
},
|
|
66453
|
+
"color": {
|
|
66454
|
+
"type": "string",
|
|
66455
|
+
"description": "State color"
|
|
66456
|
+
}
|
|
66457
|
+
},
|
|
66458
|
+
"required": [
|
|
66459
|
+
"id",
|
|
66460
|
+
"name"
|
|
66461
|
+
],
|
|
66462
|
+
"additionalProperties": true,
|
|
66463
|
+
"description": "Current state"
|
|
66464
|
+
},
|
|
66465
|
+
"assignee": {
|
|
66466
|
+
"type": "object",
|
|
66467
|
+
"properties": {
|
|
66468
|
+
"id": {
|
|
66469
|
+
"type": "string",
|
|
66470
|
+
"description": "User ID"
|
|
66471
|
+
},
|
|
66472
|
+
"name": {
|
|
66473
|
+
"type": "string",
|
|
66474
|
+
"description": "User display name"
|
|
66475
|
+
},
|
|
66476
|
+
"email": {
|
|
66477
|
+
"type": "string",
|
|
66478
|
+
"description": "User email address"
|
|
66479
|
+
}
|
|
66480
|
+
},
|
|
66481
|
+
"required": [
|
|
66482
|
+
"id"
|
|
66483
|
+
],
|
|
66484
|
+
"additionalProperties": true,
|
|
66485
|
+
"description": "Assigned user",
|
|
66486
|
+
"nullable": true
|
|
66487
|
+
},
|
|
66488
|
+
"team": {
|
|
66489
|
+
"type": "object",
|
|
66490
|
+
"properties": {
|
|
66491
|
+
"id": {
|
|
66492
|
+
"type": "string",
|
|
66493
|
+
"description": "Team ID"
|
|
66494
|
+
},
|
|
66495
|
+
"name": {
|
|
66496
|
+
"type": "string",
|
|
66497
|
+
"description": "Team name"
|
|
66498
|
+
},
|
|
66499
|
+
"key": {
|
|
66500
|
+
"type": "string",
|
|
66501
|
+
"description": "Team key (e.g., \"LIN\")"
|
|
66502
|
+
}
|
|
66503
|
+
},
|
|
66504
|
+
"required": [
|
|
66505
|
+
"id",
|
|
66506
|
+
"name",
|
|
66507
|
+
"key"
|
|
66508
|
+
],
|
|
66509
|
+
"additionalProperties": true,
|
|
66510
|
+
"description": "Team"
|
|
66511
|
+
},
|
|
66512
|
+
"project": {
|
|
66513
|
+
"type": "object",
|
|
66514
|
+
"properties": {
|
|
66515
|
+
"id": {
|
|
66516
|
+
"type": "string",
|
|
66517
|
+
"description": "Project ID"
|
|
66518
|
+
},
|
|
66519
|
+
"name": {
|
|
66520
|
+
"type": "string",
|
|
66521
|
+
"description": "Project name"
|
|
66522
|
+
},
|
|
66523
|
+
"state": {
|
|
66524
|
+
"type": "string",
|
|
66525
|
+
"description": "Project state"
|
|
66526
|
+
}
|
|
66527
|
+
},
|
|
66528
|
+
"required": [
|
|
66529
|
+
"id",
|
|
66530
|
+
"name"
|
|
66531
|
+
],
|
|
66532
|
+
"additionalProperties": true,
|
|
66533
|
+
"description": "Project",
|
|
66534
|
+
"nullable": true
|
|
66535
|
+
},
|
|
66536
|
+
"labels": {
|
|
66537
|
+
"type": "object",
|
|
66538
|
+
"properties": {
|
|
66539
|
+
"nodes": {
|
|
66540
|
+
"type": "array",
|
|
66541
|
+
"items": {
|
|
66542
|
+
"type": "object",
|
|
66543
|
+
"properties": {
|
|
66544
|
+
"id": {
|
|
66545
|
+
"type": "string",
|
|
66546
|
+
"description": "Label ID"
|
|
66547
|
+
},
|
|
66548
|
+
"name": {
|
|
66549
|
+
"type": "string",
|
|
66550
|
+
"description": "Label name"
|
|
66551
|
+
},
|
|
66552
|
+
"color": {
|
|
66553
|
+
"type": "string",
|
|
66554
|
+
"description": "Label color"
|
|
66555
|
+
}
|
|
66556
|
+
},
|
|
66557
|
+
"required": [
|
|
66558
|
+
"id",
|
|
66559
|
+
"name"
|
|
66560
|
+
],
|
|
66561
|
+
"additionalProperties": true,
|
|
66562
|
+
"description": "Linear label"
|
|
66563
|
+
}
|
|
66564
|
+
}
|
|
66565
|
+
},
|
|
66566
|
+
"additionalProperties": false,
|
|
66567
|
+
"description": "Issue labels"
|
|
66568
|
+
},
|
|
66569
|
+
"createdAt": {
|
|
66570
|
+
"type": "string",
|
|
66571
|
+
"description": "Creation timestamp"
|
|
66572
|
+
},
|
|
66573
|
+
"updatedAt": {
|
|
66574
|
+
"type": "string",
|
|
66575
|
+
"description": "Last update timestamp"
|
|
66576
|
+
},
|
|
66577
|
+
"dueDate": {
|
|
66578
|
+
"type": "string",
|
|
66579
|
+
"nullable": true,
|
|
66580
|
+
"description": "Due date (YYYY-MM-DD)"
|
|
66581
|
+
},
|
|
66582
|
+
"url": {
|
|
66583
|
+
"type": "string",
|
|
66584
|
+
"description": "Issue URL"
|
|
66585
|
+
}
|
|
66586
|
+
},
|
|
66587
|
+
"additionalProperties": true,
|
|
66588
|
+
"description": "Issue details"
|
|
66589
|
+
},
|
|
66590
|
+
"error": {
|
|
66591
|
+
"type": "string",
|
|
66592
|
+
"description": "Error message if operation failed"
|
|
66593
|
+
}
|
|
66594
|
+
},
|
|
66595
|
+
"required": [
|
|
66596
|
+
"operation",
|
|
66597
|
+
"success",
|
|
66598
|
+
"error"
|
|
66599
|
+
],
|
|
66600
|
+
"additionalProperties": false
|
|
66601
|
+
},
|
|
66602
|
+
{
|
|
66603
|
+
"type": "object",
|
|
66604
|
+
"properties": {
|
|
66605
|
+
"operation": {
|
|
66606
|
+
"type": "string",
|
|
66607
|
+
"enum": [
|
|
66608
|
+
"create"
|
|
66609
|
+
]
|
|
66610
|
+
},
|
|
66611
|
+
"success": {
|
|
66612
|
+
"type": "boolean",
|
|
66613
|
+
"description": "Whether the operation was successful"
|
|
66614
|
+
},
|
|
66615
|
+
"issue": {
|
|
66616
|
+
"type": "object",
|
|
66617
|
+
"properties": {
|
|
66618
|
+
"id": {
|
|
66619
|
+
"type": "string",
|
|
66620
|
+
"description": "Created issue ID"
|
|
66621
|
+
},
|
|
66622
|
+
"identifier": {
|
|
66623
|
+
"type": "string",
|
|
66624
|
+
"description": "Created issue identifier"
|
|
66625
|
+
},
|
|
66626
|
+
"url": {
|
|
66627
|
+
"type": "string",
|
|
66628
|
+
"description": "Issue URL"
|
|
66629
|
+
}
|
|
66630
|
+
},
|
|
66631
|
+
"required": [
|
|
66632
|
+
"id",
|
|
66633
|
+
"identifier"
|
|
66634
|
+
],
|
|
66635
|
+
"additionalProperties": false,
|
|
66636
|
+
"description": "Created issue info"
|
|
66637
|
+
},
|
|
66638
|
+
"error": {
|
|
66639
|
+
"type": "string",
|
|
66640
|
+
"description": "Error message if operation failed"
|
|
66641
|
+
}
|
|
66642
|
+
},
|
|
66643
|
+
"required": [
|
|
66644
|
+
"operation",
|
|
66645
|
+
"success",
|
|
66646
|
+
"error"
|
|
66647
|
+
],
|
|
66648
|
+
"additionalProperties": false
|
|
66649
|
+
},
|
|
66650
|
+
{
|
|
66651
|
+
"type": "object",
|
|
66652
|
+
"properties": {
|
|
66653
|
+
"operation": {
|
|
66654
|
+
"type": "string",
|
|
66655
|
+
"enum": [
|
|
66656
|
+
"update"
|
|
66657
|
+
]
|
|
66658
|
+
},
|
|
66659
|
+
"success": {
|
|
66660
|
+
"type": "boolean",
|
|
66661
|
+
"description": "Whether the operation was successful"
|
|
66662
|
+
},
|
|
66663
|
+
"issue": {
|
|
66664
|
+
"type": "object",
|
|
66665
|
+
"properties": {
|
|
66666
|
+
"id": {
|
|
66667
|
+
"type": "string",
|
|
66668
|
+
"description": "Updated issue ID"
|
|
66669
|
+
},
|
|
66670
|
+
"identifier": {
|
|
66671
|
+
"type": "string",
|
|
66672
|
+
"description": "Updated issue identifier"
|
|
66673
|
+
}
|
|
66674
|
+
},
|
|
66675
|
+
"required": [
|
|
66676
|
+
"id",
|
|
66677
|
+
"identifier"
|
|
66678
|
+
],
|
|
66679
|
+
"additionalProperties": false,
|
|
66680
|
+
"description": "Updated issue info"
|
|
66681
|
+
},
|
|
66682
|
+
"error": {
|
|
66683
|
+
"type": "string",
|
|
66684
|
+
"description": "Error message if operation failed"
|
|
66685
|
+
}
|
|
66686
|
+
},
|
|
66687
|
+
"required": [
|
|
66688
|
+
"operation",
|
|
66689
|
+
"success",
|
|
66690
|
+
"error"
|
|
66691
|
+
],
|
|
66692
|
+
"additionalProperties": false
|
|
66693
|
+
},
|
|
66694
|
+
{
|
|
66695
|
+
"type": "object",
|
|
66696
|
+
"properties": {
|
|
66697
|
+
"operation": {
|
|
66698
|
+
"type": "string",
|
|
66699
|
+
"enum": [
|
|
66700
|
+
"list_teams"
|
|
66701
|
+
]
|
|
66702
|
+
},
|
|
66703
|
+
"success": {
|
|
66704
|
+
"type": "boolean",
|
|
66705
|
+
"description": "Whether the operation was successful"
|
|
66706
|
+
},
|
|
66707
|
+
"teams": {
|
|
66708
|
+
"type": "array",
|
|
66709
|
+
"items": {
|
|
66710
|
+
"type": "object",
|
|
66711
|
+
"properties": {
|
|
66712
|
+
"id": {
|
|
66713
|
+
"type": "string",
|
|
66714
|
+
"description": "Team ID"
|
|
66715
|
+
},
|
|
66716
|
+
"name": {
|
|
66717
|
+
"type": "string",
|
|
66718
|
+
"description": "Team name"
|
|
66719
|
+
},
|
|
66720
|
+
"key": {
|
|
66721
|
+
"type": "string",
|
|
66722
|
+
"description": "Team key (e.g., \"LIN\")"
|
|
66723
|
+
}
|
|
66724
|
+
},
|
|
66725
|
+
"required": [
|
|
66726
|
+
"id",
|
|
66727
|
+
"name",
|
|
66728
|
+
"key"
|
|
66729
|
+
],
|
|
66730
|
+
"additionalProperties": true,
|
|
66731
|
+
"description": "Linear team"
|
|
66732
|
+
},
|
|
66733
|
+
"description": "Available teams"
|
|
66734
|
+
},
|
|
66735
|
+
"error": {
|
|
66736
|
+
"type": "string",
|
|
66737
|
+
"description": "Error message if operation failed"
|
|
66738
|
+
}
|
|
66739
|
+
},
|
|
66740
|
+
"required": [
|
|
66741
|
+
"operation",
|
|
66742
|
+
"success",
|
|
66743
|
+
"error"
|
|
66744
|
+
],
|
|
66745
|
+
"additionalProperties": false
|
|
66746
|
+
},
|
|
66747
|
+
{
|
|
66748
|
+
"type": "object",
|
|
66749
|
+
"properties": {
|
|
66750
|
+
"operation": {
|
|
66751
|
+
"type": "string",
|
|
66752
|
+
"enum": [
|
|
66753
|
+
"list_projects"
|
|
66754
|
+
]
|
|
66755
|
+
},
|
|
66756
|
+
"success": {
|
|
66757
|
+
"type": "boolean",
|
|
66758
|
+
"description": "Whether the operation was successful"
|
|
66759
|
+
},
|
|
66760
|
+
"projects": {
|
|
66761
|
+
"type": "array",
|
|
66762
|
+
"items": {
|
|
66763
|
+
"type": "object",
|
|
66764
|
+
"properties": {
|
|
66765
|
+
"id": {
|
|
66766
|
+
"type": "string",
|
|
66767
|
+
"description": "Project ID"
|
|
66768
|
+
},
|
|
66769
|
+
"name": {
|
|
66770
|
+
"type": "string",
|
|
66771
|
+
"description": "Project name"
|
|
66772
|
+
},
|
|
66773
|
+
"state": {
|
|
66774
|
+
"type": "string",
|
|
66775
|
+
"description": "Project state"
|
|
66776
|
+
}
|
|
66777
|
+
},
|
|
66778
|
+
"required": [
|
|
66779
|
+
"id",
|
|
66780
|
+
"name"
|
|
66781
|
+
],
|
|
66782
|
+
"additionalProperties": true,
|
|
66783
|
+
"description": "Linear project"
|
|
66784
|
+
},
|
|
66785
|
+
"description": "Available projects"
|
|
66786
|
+
},
|
|
66787
|
+
"error": {
|
|
66788
|
+
"type": "string",
|
|
66789
|
+
"description": "Error message if operation failed"
|
|
66790
|
+
}
|
|
66791
|
+
},
|
|
66792
|
+
"required": [
|
|
66793
|
+
"operation",
|
|
66794
|
+
"success",
|
|
66795
|
+
"error"
|
|
66796
|
+
],
|
|
66797
|
+
"additionalProperties": false
|
|
66798
|
+
},
|
|
66799
|
+
{
|
|
66800
|
+
"type": "object",
|
|
66801
|
+
"properties": {
|
|
66802
|
+
"operation": {
|
|
66803
|
+
"type": "string",
|
|
66804
|
+
"enum": [
|
|
66805
|
+
"list_workflow_states"
|
|
66806
|
+
]
|
|
66807
|
+
},
|
|
66808
|
+
"success": {
|
|
66809
|
+
"type": "boolean",
|
|
66810
|
+
"description": "Whether the operation was successful"
|
|
66811
|
+
},
|
|
66812
|
+
"states": {
|
|
66813
|
+
"type": "array",
|
|
66814
|
+
"items": {
|
|
66815
|
+
"type": "object",
|
|
66816
|
+
"properties": {
|
|
66817
|
+
"id": {
|
|
66818
|
+
"type": "string",
|
|
66819
|
+
"description": "Workflow state ID"
|
|
66820
|
+
},
|
|
66821
|
+
"name": {
|
|
66822
|
+
"type": "string",
|
|
66823
|
+
"description": "State name (e.g., \"Todo\", \"In Progress\", \"Done\")"
|
|
66824
|
+
},
|
|
66825
|
+
"type": {
|
|
66826
|
+
"type": "string",
|
|
66827
|
+
"description": "State type (backlog, unstarted, started, completed, cancelled)"
|
|
66828
|
+
},
|
|
66829
|
+
"color": {
|
|
66830
|
+
"type": "string",
|
|
66831
|
+
"description": "State color"
|
|
66832
|
+
}
|
|
66833
|
+
},
|
|
66834
|
+
"required": [
|
|
66835
|
+
"id",
|
|
66836
|
+
"name"
|
|
66837
|
+
],
|
|
66838
|
+
"additionalProperties": true,
|
|
66839
|
+
"description": "Linear workflow state"
|
|
66840
|
+
},
|
|
66841
|
+
"description": "Workflow states"
|
|
66842
|
+
},
|
|
66843
|
+
"error": {
|
|
66844
|
+
"type": "string",
|
|
66845
|
+
"description": "Error message if operation failed"
|
|
66846
|
+
}
|
|
66847
|
+
},
|
|
66848
|
+
"required": [
|
|
66849
|
+
"operation",
|
|
66850
|
+
"success",
|
|
66851
|
+
"error"
|
|
66852
|
+
],
|
|
66853
|
+
"additionalProperties": false
|
|
66854
|
+
},
|
|
66855
|
+
{
|
|
66856
|
+
"type": "object",
|
|
66857
|
+
"properties": {
|
|
66858
|
+
"operation": {
|
|
66859
|
+
"type": "string",
|
|
66860
|
+
"enum": [
|
|
66861
|
+
"add_comment"
|
|
66862
|
+
]
|
|
66863
|
+
},
|
|
66864
|
+
"success": {
|
|
66865
|
+
"type": "boolean",
|
|
66866
|
+
"description": "Whether the operation was successful"
|
|
66867
|
+
},
|
|
66868
|
+
"comment": {
|
|
66869
|
+
"type": "object",
|
|
66870
|
+
"properties": {
|
|
66871
|
+
"id": {
|
|
66872
|
+
"type": "string",
|
|
66873
|
+
"description": "Comment ID"
|
|
66874
|
+
},
|
|
66875
|
+
"body": {
|
|
66876
|
+
"type": "string",
|
|
66877
|
+
"description": "Comment body (markdown)"
|
|
66878
|
+
},
|
|
66879
|
+
"user": {
|
|
66880
|
+
"type": "object",
|
|
66881
|
+
"properties": {
|
|
66882
|
+
"id": {
|
|
66883
|
+
"type": "string",
|
|
66884
|
+
"description": "User ID"
|
|
66885
|
+
},
|
|
66886
|
+
"name": {
|
|
66887
|
+
"type": "string",
|
|
66888
|
+
"description": "User display name"
|
|
66889
|
+
},
|
|
66890
|
+
"email": {
|
|
66891
|
+
"type": "string",
|
|
66892
|
+
"description": "User email address"
|
|
66893
|
+
}
|
|
66894
|
+
},
|
|
66895
|
+
"required": [
|
|
66896
|
+
"id"
|
|
66897
|
+
],
|
|
66898
|
+
"additionalProperties": true,
|
|
66899
|
+
"description": "Comment author",
|
|
66900
|
+
"nullable": true
|
|
66901
|
+
},
|
|
66902
|
+
"createdAt": {
|
|
66903
|
+
"type": "string",
|
|
66904
|
+
"description": "Creation timestamp"
|
|
66905
|
+
},
|
|
66906
|
+
"updatedAt": {
|
|
66907
|
+
"type": "string",
|
|
66908
|
+
"description": "Last update timestamp"
|
|
66909
|
+
}
|
|
66910
|
+
},
|
|
66911
|
+
"required": [
|
|
66912
|
+
"id"
|
|
66913
|
+
],
|
|
66914
|
+
"additionalProperties": true,
|
|
66915
|
+
"description": "Created comment"
|
|
66916
|
+
},
|
|
66917
|
+
"error": {
|
|
66918
|
+
"type": "string",
|
|
66919
|
+
"description": "Error message if operation failed"
|
|
66920
|
+
}
|
|
66921
|
+
},
|
|
66922
|
+
"required": [
|
|
66923
|
+
"operation",
|
|
66924
|
+
"success",
|
|
66925
|
+
"error"
|
|
66926
|
+
],
|
|
66927
|
+
"additionalProperties": false
|
|
66928
|
+
},
|
|
66929
|
+
{
|
|
66930
|
+
"type": "object",
|
|
66931
|
+
"properties": {
|
|
66932
|
+
"operation": {
|
|
66933
|
+
"type": "string",
|
|
66934
|
+
"enum": [
|
|
66935
|
+
"get_comments"
|
|
66936
|
+
]
|
|
66937
|
+
},
|
|
66938
|
+
"success": {
|
|
66939
|
+
"type": "boolean",
|
|
66940
|
+
"description": "Whether the operation was successful"
|
|
66941
|
+
},
|
|
66942
|
+
"comments": {
|
|
66943
|
+
"type": "array",
|
|
66944
|
+
"items": {
|
|
66945
|
+
"type": "object",
|
|
66946
|
+
"properties": {
|
|
66947
|
+
"id": {
|
|
66948
|
+
"type": "string",
|
|
66949
|
+
"description": "Comment ID"
|
|
66950
|
+
},
|
|
66951
|
+
"body": {
|
|
66952
|
+
"type": "string",
|
|
66953
|
+
"description": "Comment body (markdown)"
|
|
66954
|
+
},
|
|
66955
|
+
"user": {
|
|
66956
|
+
"type": "object",
|
|
66957
|
+
"properties": {
|
|
66958
|
+
"id": {
|
|
66959
|
+
"type": "string",
|
|
66960
|
+
"description": "User ID"
|
|
66961
|
+
},
|
|
66962
|
+
"name": {
|
|
66963
|
+
"type": "string",
|
|
66964
|
+
"description": "User display name"
|
|
66965
|
+
},
|
|
66966
|
+
"email": {
|
|
66967
|
+
"type": "string",
|
|
66968
|
+
"description": "User email address"
|
|
66969
|
+
}
|
|
66970
|
+
},
|
|
66971
|
+
"required": [
|
|
66972
|
+
"id"
|
|
66973
|
+
],
|
|
66974
|
+
"additionalProperties": true,
|
|
66975
|
+
"description": "Comment author",
|
|
66976
|
+
"nullable": true
|
|
66977
|
+
},
|
|
66978
|
+
"createdAt": {
|
|
66979
|
+
"type": "string",
|
|
66980
|
+
"description": "Creation timestamp"
|
|
66981
|
+
},
|
|
66982
|
+
"updatedAt": {
|
|
66983
|
+
"type": "string",
|
|
66984
|
+
"description": "Last update timestamp"
|
|
66985
|
+
}
|
|
66986
|
+
},
|
|
66987
|
+
"required": [
|
|
66988
|
+
"id"
|
|
66989
|
+
],
|
|
66990
|
+
"additionalProperties": true,
|
|
66991
|
+
"description": "Linear comment"
|
|
66992
|
+
},
|
|
66993
|
+
"description": "Issue comments"
|
|
66994
|
+
},
|
|
66995
|
+
"total": {
|
|
66996
|
+
"type": "number",
|
|
66997
|
+
"description": "Total comments"
|
|
66998
|
+
},
|
|
66999
|
+
"error": {
|
|
67000
|
+
"type": "string",
|
|
67001
|
+
"description": "Error message if operation failed"
|
|
67002
|
+
}
|
|
67003
|
+
},
|
|
67004
|
+
"required": [
|
|
67005
|
+
"operation",
|
|
67006
|
+
"success",
|
|
67007
|
+
"error"
|
|
67008
|
+
],
|
|
67009
|
+
"additionalProperties": false
|
|
67010
|
+
},
|
|
67011
|
+
{
|
|
67012
|
+
"type": "object",
|
|
67013
|
+
"properties": {
|
|
67014
|
+
"operation": {
|
|
67015
|
+
"type": "string",
|
|
67016
|
+
"enum": [
|
|
67017
|
+
"list_labels"
|
|
67018
|
+
]
|
|
67019
|
+
},
|
|
67020
|
+
"success": {
|
|
67021
|
+
"type": "boolean",
|
|
67022
|
+
"description": "Whether the operation was successful"
|
|
67023
|
+
},
|
|
67024
|
+
"labels": {
|
|
67025
|
+
"type": "array",
|
|
67026
|
+
"items": {
|
|
67027
|
+
"type": "object",
|
|
67028
|
+
"properties": {
|
|
67029
|
+
"id": {
|
|
67030
|
+
"type": "string",
|
|
67031
|
+
"description": "Label ID"
|
|
67032
|
+
},
|
|
67033
|
+
"name": {
|
|
67034
|
+
"type": "string",
|
|
67035
|
+
"description": "Label name"
|
|
67036
|
+
},
|
|
67037
|
+
"color": {
|
|
67038
|
+
"type": "string",
|
|
67039
|
+
"description": "Label color"
|
|
67040
|
+
}
|
|
67041
|
+
},
|
|
67042
|
+
"required": [
|
|
67043
|
+
"id",
|
|
67044
|
+
"name"
|
|
67045
|
+
],
|
|
67046
|
+
"additionalProperties": true,
|
|
67047
|
+
"description": "Linear label"
|
|
67048
|
+
},
|
|
67049
|
+
"description": "Available labels"
|
|
67050
|
+
},
|
|
67051
|
+
"error": {
|
|
67052
|
+
"type": "string",
|
|
67053
|
+
"description": "Error message if operation failed"
|
|
67054
|
+
}
|
|
67055
|
+
},
|
|
67056
|
+
"required": [
|
|
67057
|
+
"operation",
|
|
67058
|
+
"success",
|
|
67059
|
+
"error"
|
|
67060
|
+
],
|
|
67061
|
+
"additionalProperties": false
|
|
67062
|
+
}
|
|
67063
|
+
]
|
|
67064
|
+
},
|
|
67065
|
+
"usageExample": "// Search example\nconst linear_search = new LinearBubble({\n operation: \"search\", // Search for issues with text query and filters\n query: \"example string\", // Text to search for in issue titles and descriptions\n teamId: \"example string\", // Filter by team ID\n assigneeId: \"example string\", // Filter by assignee user ID\n stateId: \"example string\", // Filter by workflow state ID\n labelId: \"example string\", // Filter by label ID\n projectId: \"example string\", // Filter by project ID\n priority: 42, // Filter by priority (0=No priority, 1=Urgent, 2=High, 3=Medium, 4=Low)\n limit: 50 // default, // Maximum number of issues to return (1-100)\n includeArchived: false // default, // Include archived issues in results\n});\n\nconst result = await linear_search.action();\n// outputSchema for result.data when operation === 'search':\n// {\n// operation: \"search\",\n// success: boolean // Whether the operation was successful,\n// issues: { id: string | undefined // Issue ID, identifier: string | undefined // Issue identifier (e.g., \"LIN-123\"), title: string | undefined // Issue title, description: string | null | undefined // Issue description (markdown), priority: number | undefined // Priority (0=No priority, 1=Urgent, 2=High, 3=Medium, 4=Low), priorityLabel: string | undefined // Priority label (e.g., \"High\"), state: { id: string // Workflow state ID, name: string // State name (e.g., \"Todo\", \"In Progress\", \"Done\"), type: string | undefined // State type (backlog, unstarted, started, completed, cancelled), color: string | undefined // State color } | undefined // Current state, assignee: { id: string // User ID, name: string | undefined // User display name, email: string | undefined // User email address } | null | undefined // Assigned user, team: { id: string // Team ID, name: string // Team name, key: string // Team key (e.g., \"LIN\") } | undefined // Team, project: { id: string // Project ID, name: string // Project name, state: string | undefined // Project state } | null | undefined // Project, labels: { nodes: { id: string // Label ID, name: string // Label name, color: string | undefined // Label color }[] | undefined } | undefined // Issue labels, createdAt: string | undefined // Creation timestamp, updatedAt: string | undefined // Last update timestamp, dueDate: string | null | undefined // Due date (YYYY-MM-DD), url: string | undefined // Issue URL }[] | undefined // Found issues,\n// total: number | undefined // Total matching issues,\n// error: string // Error message if operation failed\n// }\n\n\n// Get example\nconst linear_get = new LinearBubble({\n operation: \"get\", // Get details for a specific issue\n identifier: \"example string\", // Issue identifier (e.g., \"LIN-123\") or issue ID\n});\n\nconst result = await linear_get.action();\n// outputSchema for result.data when operation === 'get':\n// {\n// operation: \"get\",\n// success: boolean // Whether the operation was successful,\n// issue: { id: string | undefined // Issue ID, identifier: string | undefined // Issue identifier (e.g., \"LIN-123\"), title: string | undefined // Issue title, description: string | null | undefined // Issue description (markdown), priority: number | undefined // Priority (0=No priority, 1=Urgent, 2=High, 3=Medium, 4=Low), priorityLabel: string | undefined // Priority label (e.g., \"High\"), state: { id: string // Workflow state ID, name: string // State name (e.g., \"Todo\", \"In Progress\", \"Done\"), type: string | undefined // State type (backlog, unstarted, started, completed, cancelled), color: string | undefined // State color } | undefined // Current state, assignee: { id: string // User ID, name: string | undefined // User display name, email: string | undefined // User email address } | null | undefined // Assigned user, team: { id: string // Team ID, name: string // Team name, key: string // Team key (e.g., \"LIN\") } | undefined // Team, project: { id: string // Project ID, name: string // Project name, state: string | undefined // Project state } | null | undefined // Project, labels: { nodes: { id: string // Label ID, name: string // Label name, color: string | undefined // Label color }[] | undefined } | undefined // Issue labels, createdAt: string | undefined // Creation timestamp, updatedAt: string | undefined // Last update timestamp, dueDate: string | null | undefined // Due date (YYYY-MM-DD), url: string | undefined // Issue URL } | undefined // Issue details,\n// error: string // Error message if operation failed\n// }\n\n\n// Create example\nconst linear_create = new LinearBubble({\n operation: \"create\", // Create a new issue in Linear\n teamId: \"example string\", // Team ID to create the issue in\n title: \"example string\", // Issue title\n description: \"example string\", // Issue description (supports markdown)\n assigneeId: \"example string\", // Assignee user ID. Leave empty for unassigned\n priority: 42, // Issue priority (0=No priority, 1=Urgent, 2=High, 3=Medium, 4=Low)\n stateId: \"example string\", // Workflow state ID. If not set, uses the team default\n stateName: \"example string\", // Workflow state name (e.g., \"In Progress\"). Resolved to ID automatically. Use this instead of stateId for convenience\n labelIds: [\"example string\"], // Label IDs to apply\n projectId: \"example string\", // Project ID to associate with\n dueDate: \"example string\", // Due date in YYYY-MM-DD format\n parentId: \"example string\", // Parent issue ID for sub-issues\n estimate: 42, // Issue estimate (points)\n});\n\nconst result = await linear_create.action();\n// outputSchema for result.data when operation === 'create':\n// {\n// operation: \"create\",\n// success: boolean // Whether the operation was successful,\n// issue: { id: string // Created issue ID, identifier: string // Created issue identifier, url: string | undefined // Issue URL } | undefined // Created issue info,\n// error: string // Error message if operation failed\n// }\n\n\n// Update example\nconst linear_update = new LinearBubble({\n operation: \"update\", // Update an existing issue\n id: \"example string\", // Issue ID (UUID) or identifier (e.g., \"LIN-123\")\n title: \"example string\", // New issue title\n description: \"example string\", // New description (supports markdown)\n assigneeId: \"example string\", // New assignee user ID or null to unassign\n priority: 42, // New priority (0=No priority, 1=Urgent, 2=High, 3=Medium, 4=Low)\n stateId: \"example string\", // New workflow state ID\n stateName: \"example string\", // New workflow state name (e.g., \"Done\"). Resolved to ID automatically\n labels: { add: [\"example string\"] // Label IDs or names to add to the issue, remove: [\"example string\"] // Label IDs or names to remove from the issue }, // Label modifications\n projectId: \"example string\", // New project ID or null to remove from project\n dueDate: \"example string\", // New due date (YYYY-MM-DD) or null to clear\n estimate: 42, // New estimate (points) or null to clear\n});\n\nconst result = await linear_update.action();\n// outputSchema for result.data when operation === 'update':\n// {\n// operation: \"update\",\n// success: boolean // Whether the operation was successful,\n// issue: { id: string // Updated issue ID, identifier: string // Updated issue identifier } | undefined // Updated issue info,\n// error: string // Error message if operation failed\n// }\n\n\n// List Teams example\nconst linear_list_teams = new LinearBubble({\n operation: \"list_teams\", // List all teams\n});\n\nconst result = await linear_list_teams.action();\n// outputSchema for result.data when operation === 'list_teams':\n// {\n// operation: \"list_teams\",\n// success: boolean // Whether the operation was successful,\n// teams: { id: string // Team ID, name: string // Team name, key: string // Team key (e.g., \"LIN\") }[] | undefined // Available teams,\n// error: string // Error message if operation failed\n// }\n\n\n// List Projects example\nconst linear_list_projects = new LinearBubble({\n operation: \"list_projects\", // List projects, optionally filtered by team\n teamId: \"example string\", // Filter projects by team ID\n limit: 50 // default, // Maximum number of projects to return\n includeArchived: false // default, // Include archived projects\n});\n\nconst result = await linear_list_projects.action();\n// outputSchema for result.data when operation === 'list_projects':\n// {\n// operation: \"list_projects\",\n// success: boolean // Whether the operation was successful,\n// projects: { id: string // Project ID, name: string // Project name, state: string | undefined // Project state }[] | undefined // Available projects,\n// error: string // Error message if operation failed\n// }\n\n\n// List Workflow States example\nconst linear_list_workflow_states = new LinearBubble({\n operation: \"list_workflow_states\", // List workflow states for a team\n teamId: \"example string\", // Team ID to get workflow states for\n});\n\nconst result = await linear_list_workflow_states.action();\n// outputSchema for result.data when operation === 'list_workflow_states':\n// {\n// operation: \"list_workflow_states\",\n// success: boolean // Whether the operation was successful,\n// states: { id: string // Workflow state ID, name: string // State name (e.g., \"Todo\", \"In Progress\", \"Done\"), type: string | undefined // State type (backlog, unstarted, started, completed, cancelled), color: string | undefined // State color }[] | undefined // Workflow states,\n// error: string // Error message if operation failed\n// }\n\n\n// Add Comment example\nconst linear_add_comment = new LinearBubble({\n operation: \"add_comment\", // Add a comment to an issue\n issueId: \"example string\", // Issue ID (UUID) or identifier (e.g., \"LIN-123\")\n body: \"example string\", // Comment text (supports markdown)\n});\n\nconst result = await linear_add_comment.action();\n// outputSchema for result.data when operation === 'add_comment':\n// {\n// operation: \"add_comment\",\n// success: boolean // Whether the operation was successful,\n// comment: { id: string // Comment ID, body: string | undefined // Comment body (markdown), user: { id: string // User ID, name: string | undefined // User display name, email: string | undefined // User email address } | null | undefined // Comment author, createdAt: string | undefined // Creation timestamp, updatedAt: string | undefined // Last update timestamp } | undefined // Created comment,\n// error: string // Error message if operation failed\n// }\n\n\n// Get Comments example\nconst linear_get_comments = new LinearBubble({\n operation: \"get_comments\", // Get comments for an issue\n issueId: \"example string\", // Issue ID (UUID) or identifier (e.g., \"LIN-123\")\n limit: 50 // default, // Maximum number of comments to return\n});\n\nconst result = await linear_get_comments.action();\n// outputSchema for result.data when operation === 'get_comments':\n// {\n// operation: \"get_comments\",\n// success: boolean // Whether the operation was successful,\n// comments: { id: string // Comment ID, body: string | undefined // Comment body (markdown), user: { id: string // User ID, name: string | undefined // User display name, email: string | undefined // User email address } | null | undefined // Comment author, createdAt: string | undefined // Creation timestamp, updatedAt: string | undefined // Last update timestamp }[] | undefined // Issue comments,\n// total: number | undefined // Total comments,\n// error: string // Error message if operation failed\n// }\n\n\n// List Labels example\nconst linear_list_labels = new LinearBubble({\n operation: \"list_labels\", // List labels, optionally filtered by team\n teamId: \"example string\", // Filter labels by team ID\n});\n\nconst result = await linear_list_labels.action();\n// outputSchema for result.data when operation === 'list_labels':\n// {\n// operation: \"list_labels\",\n// success: boolean // Whether the operation was successful,\n// labels: { id: string // Label ID, name: string // Label name, color: string | undefined // Label color }[] | undefined // Available labels,\n// error: string // Error message if operation failed\n// }\n\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`linear failed: ${result.error}`);\n}\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
67066
|
+
"requiredCredentials": [
|
|
67067
|
+
"LINEAR_CRED"
|
|
67068
|
+
]
|
|
65704
67069
|
}
|
|
65705
67070
|
]
|
|
65706
67071
|
}
|