@celigo/api-specs 0.2.18 → 0.2.20

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.
@@ -584,14 +584,22 @@ components:
584
584
  AI Agent configuration used by both AiAgentImport and GuardrailImport (ai_agent type).
585
585
 
586
586
  Configures which AI provider and model to use, along with instructions, parameter
587
- tuning, output format, and available tools. Three providers are supported:
587
+ tuning, output format, and available tools. Providers come in two families with
588
+ two configuration formats:
588
589
 
589
- - **openai**: OpenAI models (GPT-4, GPT-4o, GPT-4o-mini, GPT-5, etc.). Configure via the `openai` object.
590
- - **gemini**: Google Gemini models via the LiteLLM proxy. Configure via `litellm` with overrides in `litellm._overrides.gemini`.
591
- - **anthropic**: Anthropic Claude models via the LiteLLM proxy. Configure via `litellm` with overrides in `litellm._overrides.anthropic`.
590
+ - **Built-in providers** — each has its own configuration block.
591
+ - **openai**: OpenAI models (GPT-4.1, GPT-5, etc.). Configure via the `openai` object.
592
+ - **gemini**: Google Gemini models via the LiteLLM proxy. Configure via `litellm` with overrides in `litellm._overrides.gemini`.
593
+ - **anthropic**: Anthropic Claude models via the LiteLLM proxy. Configure via `litellm` with overrides in `litellm._overrides.anthropic`.
594
+ - **Catalog providers** — `mistral`, `xai`, `huggingface`, `deepseek`, `cohere`, `groq`. Added
595
+ as catalog data rather than platform code, they share one generic flat format:
596
+ `model`, `modelOptions`, `instructions`, `output`, and the `tools` / `prompts` /
597
+ `resources` arrays directly on this object.
592
598
 
593
- A `_connectionId` is optional (BYOK). If not provided on the parent import,
594
- platform-managed credentials are used.
599
+ A `_connectionId` on the parent import selects bring-your-own-key (BYOK)
600
+ credentials. Without one, built-in providers run on platform-managed
601
+ credentials; catalog providers have no platform-managed credentials, so they
602
+ save without a connection but cannot run until one is attached.
595
603
  required:
596
604
  - provider
597
605
  properties:
@@ -601,18 +609,224 @@ components:
601
609
  - openai
602
610
  - gemini
603
611
  - anthropic
612
+ - mistral
613
+ - xai
614
+ - huggingface
615
+ - deepseek
616
+ - cohere
617
+ - groq
604
618
  x-enumDescriptions:
605
- openai: Use OpenAI models via the OpenAI Responses API.
606
- gemini: Use Google Gemini models via the LiteLLM proxy.
607
- anthropic: Use Anthropic Claude models via the LiteLLM proxy.
619
+ openai: Use OpenAI models via the OpenAI Responses API (built-in; `openai` block).
620
+ gemini: Use Google Gemini models via the LiteLLM proxy (built-in; `litellm` block).
621
+ anthropic: Use Anthropic Claude models via the LiteLLM proxy (built-in; `litellm` block).
622
+ mistral: Use Mistral models (catalog provider; generic flat format, BYOK).
623
+ xai: Use xAI Grok models (catalog provider; generic flat format, BYOK).
624
+ huggingface: Use Hugging Face inference endpoint models (catalog provider; generic flat format, BYOK).
625
+ deepseek: Use DeepSeek models (catalog provider; generic flat format, BYOK).
626
+ cohere: Use Cohere models (catalog provider; generic flat format, BYOK).
627
+ groq: Use Groq-hosted models (catalog provider; generic flat format, BYOK).
608
628
  description: AI provider to use.
609
629
  x-celigo-ai-guidance:
610
630
  - |-
611
- - **openai**: Uses OpenAI Responses API. Configure via the `openai` object.
612
- - **gemini**: Uses Google Gemini via LiteLLM. Configure via `litellm` with
613
- Gemini-specific overrides in `litellm._overrides.gemini`.
614
- - **anthropic**: Uses Anthropic Claude via LiteLLM. Configure via `litellm` with
615
- Claude-specific overrides in `litellm._overrides.anthropic`.
631
+ The provider decides the configuration format, and the server rejects a
632
+ mismatch with 422 `invalid_provider_config_format`: `openai` needs the
633
+ `openai` block, `gemini` and `anthropic` need the `litellm` block (Gemini- or
634
+ Claude-specific settings under `litellm._overrides`), and the catalog
635
+ providers (`mistral`, `xai`, `huggingface`, `deepseek`, `cohere`, `groq`) need the
636
+ generic flat format — `model` and `modelOptions` directly on this object,
637
+ never an `openai` or `litellm` block.
638
+ - |-
639
+ Catalog providers are BYOK-only at run time: the agent saves without a
640
+ `_connectionId`, but its first run fails with 422 `invalid_request` ("No API
641
+ key configured for provider …"). Always attach an HTTP connection to the
642
+ vendor's API (token auth) when the provider is a catalog provider.
643
+ model:
644
+ type: string
645
+ description: |-
646
+ Model identifier for a catalog provider (generic flat format) — for example
647
+ `grok-4.6`. Built-in providers set the model inside their own block
648
+ (`openai.model`, `litellm.model`) instead.
649
+ x-celigo-ai-guidance:
650
+ - |-
651
+ Required for every catalog provider — omitting it or sending an empty string
652
+ fails the save with 422 `missing_required_field`.
653
+ - |-
654
+ Without a `_connectionId` on the parent import the model must be one the
655
+ catalog lists for the provider: an unknown id fails the save with 422
656
+ `model_not_found`, a listed-but-disabled id with 422 `model_disabled`. With a
657
+ `_connectionId` (BYOK) any model string saves — the server does not check it
658
+ against the catalog or the vendor.
659
+ modelOptions:
660
+ type: object
661
+ description: |-
662
+ Model tuning for a catalog provider (generic flat format). Which keys, values, and
663
+ ranges are accepted is defined per catalog model and validated on save when the
664
+ model is a catalog entry.
665
+ properties:
666
+ maxOutputTokens:
667
+ type: number
668
+ description: Maximum number of tokens the model may generate.
669
+ temperature:
670
+ type: number
671
+ description: Sampling temperature.
672
+ topP:
673
+ type: number
674
+ description: Nucleus sampling threshold.
675
+ reasoning_effort:
676
+ type: string
677
+ enum:
678
+ - low
679
+ - medium
680
+ - high
681
+ - xhigh
682
+ x-enumDescriptions:
683
+ low: Minimal reasoning before answering.
684
+ medium: Moderate reasoning.
685
+ high: Extensive reasoning.
686
+ xhigh: Maximum reasoning.
687
+ description: Reasoning depth for models that expose it.
688
+ x-celigo-ai-guidance:
689
+ - |-
690
+ When the model is a catalog entry, the server validates this object against
691
+ that model's schema and fails the save with 422 `invalid_model_options`
692
+ naming the key: unknown keys are rejected, `reasoning_effort` must be one of
693
+ the enum values where the model accepts it at all (xAI's `grok-4.6` does;
694
+ DeepSeek's `deepseek-chat` rejects the key), and numeric bounds apply —
695
+ on `grok-4.6`, `temperature` ≤ 2, `topP` ≤ 1, `maxOutputTokens` ≥ 100.
696
+ - |-
697
+ With a `_connectionId` and a model the catalog does not list, the object is
698
+ passed through unvalidated — send only options the vendor's API accepts.
699
+ instructions:
700
+ type: string
701
+ description: |-
702
+ System prompt for a catalog provider (generic flat format). Built-in providers
703
+ set it inside their own block (`openai.instructions`,
704
+ `litellm._overrides.anthropic.systemInstruction`).
705
+ output:
706
+ type: object
707
+ description: |-
708
+ Output format for a catalog provider (generic flat format). Built-in providers
709
+ configure it inside their own block (`openai.output`, `litellm.responseFormat`).
710
+ properties:
711
+ format:
712
+ type: object
713
+ description: Controls the structure of the model's output.
714
+ properties:
715
+ type:
716
+ type: string
717
+ enum:
718
+ - text
719
+ - json_schema
720
+ x-enumDescriptions:
721
+ text: Free-form text.
722
+ json_schema: Structured JSON conforming to `jsonSchema`.
723
+ description: Output type.
724
+ x-celigo-ai-guidance:
725
+ - |-
726
+ `blob` is not accepted here — the save fails with 422
727
+ `unsupported_output_format` naming the model (verified on `grok-4.6`).
728
+ name:
729
+ type: string
730
+ description: Name of the JSON schema, for `json_schema` output.
731
+ strict:
732
+ type: boolean
733
+ description: When true, the model must conform exactly to `jsonSchema`.
734
+ jsonSchema:
735
+ type: object
736
+ additionalProperties: true
737
+ description: JSON Schema the structured output must conform to, for `json_schema` output.
738
+ verbose:
739
+ type: string
740
+ description: Level of detail in the model's response, for models that expose it.
741
+ tools:
742
+ type: array
743
+ description: |-
744
+ Tools available to a catalog-provider agent (generic flat format). Entries mirror
745
+ the built-in providers' tool entries: a Celigo Tool by `_toolId`, an MCP server by
746
+ `_mcpConnectionId`, or a vendor web-search tool.
747
+ items:
748
+ type: object
749
+ properties:
750
+ type:
751
+ type: string
752
+ enum:
753
+ - tool
754
+ - mcp
755
+ - web_search
756
+ x-enumDescriptions:
757
+ tool: Reference a reusable Celigo Tool resource.
758
+ mcp: Connect to an MCP server for additional external tools.
759
+ web_search: Search the web for real-time information, where the vendor's model supports it.
760
+ description: Type of tool entry.
761
+ tool:
762
+ type: object
763
+ description: Reference to a Celigo Tool resource, used when type is "tool".
764
+ properties:
765
+ _toolId:
766
+ type: string
767
+ format: objectId
768
+ x-celigo-refModel: tools
769
+ description: The Celigo Tool to call.
770
+ mcp:
771
+ type: object
772
+ description: MCP server connection, used when type is "mcp".
773
+ properties:
774
+ _mcpConnectionId:
775
+ type: string
776
+ format: objectId
777
+ x-celigo-refModel: connections
778
+ description: Connection to the MCP server.
779
+ allowedTools:
780
+ type: array
781
+ description: |-
782
+ Specific tools to allow from the MCP server (all if omitted). Each entry
783
+ is either a plain tool name or an object carrying display metadata.
784
+ items:
785
+ type:
786
+ - string
787
+ - object
788
+ config:
789
+ type: object
790
+ additionalProperties: true
791
+ description: Tool-specific options for vendor-native tools (for example web-search settings).
792
+ x-celigo-ai-guidance:
793
+ - |-
794
+ References are checked on save: an unknown `_toolId` or `_mcpConnectionId`
795
+ fails with 422 `invalid_ref` naming the array index.
796
+ prompts:
797
+ type: array
798
+ description: |-
799
+ MCP prompt entries available to a catalog-provider agent (generic flat format).
800
+ Each entry references one MCP connection and the prompt names allowed from it.
801
+ items:
802
+ type: object
803
+ properties:
804
+ type:
805
+ type: string
806
+ enum:
807
+ - mcp
808
+ x-enumDescriptions:
809
+ mcp: Reference prompts exposed by an MCP server.
810
+ description: Type of prompt entry. Always "mcp".
811
+ mcp:
812
+ type: object
813
+ properties:
814
+ _mcpConnectionId:
815
+ type: string
816
+ format: objectId
817
+ x-celigo-refModel: connections
818
+ description: Connection to the MCP server that exposes the prompts.
819
+ allowedPrompts:
820
+ type: array
821
+ description: Prompt names the agent may fetch from the server.
822
+ items:
823
+ type: string
824
+ x-celigo-ai-guidance:
825
+ - |-
826
+ An unknown `_mcpConnectionId` fails the save with 422 `invalid_ref` naming
827
+ the array index.
828
+ resources:
829
+ $ref: '#/components/schemas/McpResources'
616
830
  openai:
617
831
  type: object
618
832
  description: |
@@ -643,10 +857,11 @@ components:
643
857
  x-celigo-ai-guidance:
644
858
  - |-
645
859
  With platform-managed credentials (no `_connectionId` on the parent
646
- import), the model must be on the platform's allowlist — an
647
- unlisted model fails the save with 422. A BYOK connection bypasses
648
- the allowlist and the model string is passed through to the
649
- provider as-is.
860
+ import), the model must be one the platform hosts. The save does not
861
+ check this — an unlisted model saves, and the agent's first run fails
862
+ with 422 `invalid_model`, whose message lists the hosted models. A
863
+ BYOK connection bypasses the hosted list and the model string is
864
+ passed through to the provider as-is.
650
865
  reasoning:
651
866
  type: object
652
867
  description: Controls depth of reasoning for complex tasks.
@@ -1049,6 +1264,13 @@ components:
1049
1264
  - claude-sonnet-4-6
1050
1265
  - claude-opus-4-7
1051
1266
  x-celigo-ui-override: Required by the AI agent configuration form. Encoded here to mirror the form so builders produce connectable configurations.
1267
+ x-celigo-ai-guidance:
1268
+ - |-
1269
+ With platform-managed credentials (no `_connectionId` on the parent
1270
+ import), the model must be one the platform hosts for the provider —
1271
+ Gemini and Anthropic Claude both have a hosted list. The save does not
1272
+ check this — an unlisted model saves, and the agent's first run fails
1273
+ with 422 `invalid_model`, whose message lists the hosted models.
1052
1274
  temperature:
1053
1275
  type: number
1054
1276
  minimum: 0
@@ -1703,6 +1925,22 @@ components:
1703
1925
  litellm:
1704
1926
  required:
1705
1927
  - model
1928
+ else:
1929
+ if:
1930
+ properties:
1931
+ provider:
1932
+ enum:
1933
+ - mistral
1934
+ - xai
1935
+ - huggingface
1936
+ - deepseek
1937
+ - cohere
1938
+ - groq
1939
+ required:
1940
+ - provider
1941
+ then:
1942
+ required:
1943
+ - model
1706
1944
  GuardrailConfig:
1707
1945
  type: object
1708
1946
  description: |-
@@ -2355,7 +2593,7 @@ components:
2355
2593
  type: string
2356
2594
  format: objectId
2357
2595
  x-celigo-refModel: connections
2358
- description: BYOK connection backing an `ai_agent` guardrail. Absent when platform-managed credentials are used.
2596
+ description: BYOK connection backing an `ai_agent` guardrail. Absent when a built-in provider runs on platform-managed credentials.
2359
2597
  examples:
2360
2598
  - 68ae48d6b5f755d2dd38c294
2361
2599
  _sourceId:
@@ -2489,7 +2727,12 @@ components:
2489
2727
  type: string
2490
2728
  format: objectId
2491
2729
  x-celigo-refModel: connections
2492
- description: Connection for BYOK (bring your own key). Only needed for `ai_agent` type guardrails. Optional — platform-managed credentials are used when omitted.
2730
+ description: |-
2731
+ Connection for BYOK (bring your own key) — only meaningful for `ai_agent` type
2732
+ guardrails. Optional for the built-in providers (`openai`, `gemini`, `anthropic`),
2733
+ which run on platform-managed credentials when it is omitted; catalog providers
2734
+ (`mistral`, `xai`, `huggingface`, `deepseek`, `cohere`, `groq`) have no platform-managed
2735
+ credentials and need it to run.
2493
2736
  examples:
2494
2737
  - 68ae48d6b5f755d2dd38c294
2495
2738
  adaptorType:
package/dist/iclient.yml CHANGED
@@ -1744,73 +1744,36 @@ components:
1744
1744
  items:
1745
1745
  type: string
1746
1746
  description: |-
1747
- Domain names used to validate OAuth URLs. Provide each
1748
- unique domain once (no scheme, no path).
1747
+ Registrable domains (`domain.com`, `domain.co.uk` — the host with its
1748
+ subdomains removed) of the OAuth URLs this client's credentials are
1749
+ sent to: the access token, authorization, and revoke URLs. Before an
1750
+ OAuth request leaves integrator.io, the target URL's registrable
1751
+ domain must appear here; a full hostname never matches.
1749
1752
  examples:
1750
1753
  - - domain.com
1751
1754
  - - domain.com
1752
1755
  - domain1.com
1753
1756
  - domain2.com
1757
+ - - microsoftonline.com
1758
+ - microsoft.com
1754
1759
  x-celigo-ai-guidance:
1755
1760
  - |-
1756
- Set this to the list of unique domain names used to validate the OAuth URLs (Authorization,
1757
- Access Token, Revoke Token).
1758
- In the UI, enter each unique domain name as comma-separated values;
1759
- if the same domain is used for each URL, provide it only once.
1760
- For multiple domains, set this to `["domain.com", "domain1.com",
1761
- "domain2.com"]`; if all URLs share the same domain (e.g.
1762
- `domain.com`), set this to `["domain.com"]`.
1763
- - |-
1764
- Example: if your URLs are:
1765
- - `https://<AccessTokenURL>.domain.com`
1766
- - `https://<RevokeTokenURL>.domain1.com`
1767
- - `https://<AuthorizationURL>.domain2.com`
1768
-
1769
- then set `validDomainNames` to: `["domain.com", "domain1.com", "domain2.com"]`.
1770
- - |-
1771
- ## TECHNICAL DETAILS:
1772
- - Stored as an array of strings.
1773
- - |-
1774
- ## FIELD BEHAVIOR:
1775
- - Array of domain names (no scheme, no path).
1776
- - Used to validate the OAuth URL domains (authorization/token/revoke).
1777
- - Provide each unique domain once.
1778
- - |-
1779
- ## DEPENDENCY CHAIN:
1780
- - Used alongside `oauth2.auth.uri`, `oauth2.token.uri`, and `oauth2.revoke.uri`.
1781
- - |-
1782
- ## IMPLEMENTATION GUIDANCE:
1783
- - Extract the domain portion from each OAuth URL and include it here.
1784
- - Do not include `https://` or any URL path/query—only the domain.
1785
- - Keep this list in sync if any OAuth URLs change.
1786
- - |-
1787
- ## EXAMPLES:
1788
- - ["domain.com"]
1789
- - ["domain.com", "domain1.com", "domain2.com"]
1790
- - |-
1791
- ## IMPORTANT NOTES:
1792
- - This is about **domains** for OAuth URLs, not full URLs.
1793
- - |-
1794
- Example: if your URLs are:
1795
- - `https://<AccessTokenURL>.domain.com`
1796
- - `https://<RevokeTokenURL>.domain1.com`
1797
- - `https://<AuthorizationURL>.domain2.com`
1798
- - |-
1799
- Set this to the list of unique domain names used to validate the OAuth URLs (Authorization,
1800
- Access Token, Revoke Token).
1801
- In the UI, enter each unique domain name as comma-separated values;
1802
- if the same domain is used for each URL, provide it only once.
1803
- For multiple domains, set this to `["domain.com", "domain1.com",
1804
- "domain2.com"]`; if all URLs share the same domain (e.g.
1805
- `domain.com`), set this to `["domain.com"]`.
1806
- - |-
1807
- Set this to the list of unique domain names used to validate the OAuth URLs (Authorization,
1808
- Access Token, Revoke Token).
1809
- In the UI, enter each unique domain name as comma-separated values;
1810
- if the same domain is used for each URL, provide it only once.
1811
- For multiple domains, set this to `["domain.com", "domain1.com",
1812
- "domain2.com"]`; if all URLs share the same domain (e.g.
1813
- `domain.com`), set this to `["domain.com"]`.
1761
+ Store the registrable domain, never the hostname. For the token URL
1762
+ `https://login.microsoftonline.com/<tenant>/oauth2/v2.0/token` the entry is
1763
+ `microsoftonline.com`; `login.microsoftonline.com` fails the connection test with
1764
+ `[invalid_domain] The domain of request url should be present in
1765
+ iClient.oauth2.validDomainNames` and no request is sent. Public suffixes are
1766
+ honoured: `auth.example.co.uk` → `example.co.uk`, not `co.uk`.
1767
+ - |-
1768
+ List the registrable domain of every OAuth URL on the client (token, authorization,
1769
+ revoke) once each — a missing token-URL domain is what blocks the connection.
1770
+ Celigo's connector setup guides also list the API host's registrable domain next to
1771
+ them (Microsoft: `microsoftonline.com`, `microsoft.com`); include it to match the
1772
+ guides — an extra entry is harmless.
1773
+ - |-
1774
+ When a connection using this client reports `[invalid_domain]`, the fix is this
1775
+ field — replace hostnames with registrable domains. The connection's base URI and
1776
+ ping path are where the request goes, not where the allow-list lives.
1814
1777
  failPath:
1815
1778
  type: string
1816
1779
  description: |-