@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.
package/dist/tool.yml CHANGED
@@ -4887,11 +4887,13 @@ components:
4887
4887
  When true, rate-limit errors from the target system trigger automatic recovery: concurrency
4888
4888
  drops to 1, the rate-limited requests are retried with doubling waits (1 to 1024 minutes,
4889
4889
  after which the flag switches itself off), and concurrency climbs back toward
4890
- `targetConcurrencyLevel`. While true, `concurrencyLevel` is platform-managed and writes to
4891
- it are ignored — `targetConcurrencyLevel` is the lever.
4890
+ `targetConcurrencyLevel`. While true, `targetConcurrencyLevel` is the throughput lever: a
4891
+ `concurrencyLevel` sent in a PUT is ignored, and one sent in a PATCH is stored but the
4892
+ recovery machinery moves it back toward the target.
4892
4893
  x-celigo-ai-guidance:
4893
- - To change throughput while this is true, write `targetConcurrencyLevel`; a `concurrencyLevel` write returns 200 and changes nothing.
4894
- - Turning it on copies `concurrencyLevel` into `targetConcurrencyLevel`; turning it off copies the target back into `concurrencyLevel` and unsets the target.
4894
+ - To change throughput while this is true, write `targetConcurrencyLevel`; a `concurrencyLevel` sent in a PUT returns 200 and changes nothing.
4895
+ - Turning it on copies `concurrencyLevel` into `targetConcurrencyLevel`; turning it off unsets the target and leaves `concurrencyLevel` at its current value, which may be below the old target if a recovery was in progress. A `targetConcurrencyLevel` written while this is false is unset by the save.
4896
+ - These four settings (`concurrencyLevel`, `targetConcurrencyLevel`, `_borrowConcurrencyFromConnectionId`, this flag) accept a credential-free `PATCH /v1/connections/{_id}`. A PUT must re-send the credentials — omitting them or echoing their masked `******` values clears them.
4895
4897
  enableMicroBatchForOneToMany:
4896
4898
  type: boolean
4897
4899
  default: true
@@ -6168,7 +6170,7 @@ components:
6168
6170
  Higher values increase throughput but may trigger API rate limits.
6169
6171
  Set this based on the target API's rate limit documentation.
6170
6172
  Values above the account's licensed maximum (25 standard, 50 with an Environments license) are silently clamped down.
6171
- Platform-managed while `autoRecoverRateLimitErrors` is true — writes are ignored; set `targetConcurrencyLevel` instead.
6173
+ Platform-managed while `autoRecoverRateLimitErrors` is true — a PUT ignores the value and the recovery machinery moves it toward the target; set `targetConcurrencyLevel` instead.
6172
6174
  minimum: 1
6173
6175
  maximum: 50
6174
6176
  default: 25
@@ -16602,7 +16604,7 @@ components:
16602
16604
  For most file imports, you need at minimum:
16603
16605
  - `fileName`: The output file name (supports Handlebars like `{{timestamp}}`)
16604
16606
  - `type`: The file format (json, csv, xml, xlsx)
16605
- - `skipAggregation`: Usually `false` for standard imports
16607
+ - `aggregation.type`: How the run's records are batched into files (`all` for one file per run)
16606
16608
 
16607
16609
  **Example (S3 Import)**
16608
16610
 
@@ -16610,7 +16612,7 @@ components:
16610
16612
  {
16611
16613
  "file": {
16612
16614
  "fileName": "customers-{{timestamp}}.json",
16613
- "skipAggregation": false,
16615
+ "aggregation": { "type": "all" },
16614
16616
  "type": "json"
16615
16617
  },
16616
16618
  "s3": {
@@ -16652,18 +16654,22 @@ components:
16652
16654
  skipAggregation:
16653
16655
  type: boolean
16654
16656
  description: |-
16655
- Controls whether records are aggregated into a single file or processed individually.
16656
-
16657
- **Values**
16658
- - `false` (DEFAULT): Records are aggregated into a single output file
16659
- - `true`: Each record is written as a separate file
16660
-
16661
- **When to use**
16662
- - **`false`**: Standard batch imports where all records go into one file
16663
- - **`true`**: When each record needs its own file (e.g., individual documents)
16664
-
16665
- **Default:** `false`
16657
+ Legacy companion of `aggregation.type`: `true` when the run's records are written one
16658
+ file per page, `false` when they are combined across the run or grouped by key.
16659
+ Validation reads the value sent — an EDI file definition needs `true` unless
16660
+ `aggregation.type` is `key`, and `batchSize` needs `true` — then the save rewrites it
16661
+ from `aggregation.type`, so send the two as a consistent pair.
16666
16662
  default: false
16663
+ x-celigo-ai-guidance:
16664
+ - |-
16665
+ Send `skipAggregation` and `aggregation.type` as a consistent pair, exactly as the UI
16666
+ does: `page` with `true`; `all` or `key` with `false`. Validation reads the SENT flag —
16667
+ a `file.type: filedefinition` import saved with `page` and no `skipAggregation: true`
16668
+ fails with 422 `not_supported` ("Aggregation is not supported for EDI files, please set
16669
+ skipAggregation to true in Imports"), and `batchSize` fails with 422 `not_supported`
16670
+ ("File imports do not support batching with aggregation") unless the sent flag is
16671
+ `true`. The SAVED flag is then derived from `aggregation.type`, so this flag alone never
16672
+ says which mode is active — read `aggregation.type`. It does not mean one file per record.
16667
16673
  type:
16668
16674
  type: string
16669
16675
  enum:
@@ -16769,7 +16775,15 @@ components:
16769
16775
  - When target system has file size limitations
16770
16776
 
16771
16777
  **Note**
16772
- - Only applicable when `skipAggregation` is `true`
16778
+ - Offered when records are written one file per page (`aggregation.type: page` with
16779
+ `skipAggregation: true`)
16780
+ x-celigo-ai-guidance:
16781
+ - |-
16782
+ Probed for `all` and `page`: the save rejects `batchSize` with 422 `not_supported`
16783
+ ("File imports do not support batching with aggregation") when the sent
16784
+ `skipAggregation` is not `true`, and accepts it with `page` + `skipAggregation: true`.
16785
+ The `key` + `batchSize` combination has not been probed (it needs a B2B Manager
16786
+ account) — treat it as unverified, neither allowed nor forbidden.
16773
16787
  encrypt:
16774
16788
  type: boolean
16775
16789
  description: |-
@@ -16875,21 +16889,45 @@ components:
16875
16889
  aggregation:
16876
16890
  type: object
16877
16891
  description: |-
16878
- Controls how records are batched into output files. Newer imports use this object; the
16879
- legacy skipAggregation flag is the older equivalent.
16892
+ Controls how a flow run's records are batched into output files — the transfer form's
16893
+ "How many files would you like to generate?" setting. The legacy `skipAggregation` flag
16894
+ mirrors `type` and is maintained by the platform.
16880
16895
  properties:
16881
16896
  type:
16882
16897
  type: string
16883
16898
  enum:
16884
16899
  - all
16885
16900
  - page
16901
+ - key
16886
16902
  x-enumDescriptions:
16887
- all: Aggregate every record from the flow run into a single output file.
16888
- page: Write one output file per page of records.
16889
- description: Whether all records across the flow run go to one file, or one file is written per page.
16903
+ all: One file per flow run — every record from the run (per export, or per request on real-time flows) in a single file
16904
+ page: One file per page of records
16905
+ key: One file per aggregation key — EDI file definitions only; records sharing the key derived from the file definition's document type are combined into one document
16906
+ description: |-
16907
+ Which batches of a run's records become separate output files. EDI file definitions
16908
+ (`file.type: filedefinition`) are written per page or per key, never per run; `key`
16909
+ is accepted only for them and only when the account has B2B Manager. The grouping
16910
+ key and the line-item loop it merges come from the EDI file definition's document
16911
+ type, so there is no separate key field to configure.
16890
16912
  examples:
16891
16913
  - all
16892
16914
  - page
16915
+ - key
16916
+ x-celigo-ai-guidance:
16917
+ - |-
16918
+ Validated on save: an unknown value fails with 422 `enum`; `key` fails with 422
16919
+ `not_supported` unless `file.type` is `filedefinition` ("Aggregation type key is
16920
+ only supported for file type filedefinition") and the account has B2B Manager
16921
+ ("Aggregation type key is only supported for B2B Manager").
16922
+ - |-
16923
+ For `file.type: filedefinition` send `page` (with `skipAggregation: true`) or `key`
16924
+ (with `false`); `all` is not an EDI option — the validator enforces this through the
16925
+ `skipAggregation` rule (see that field). For every other file type the choices are
16926
+ `all` and `page`. The UI offers exactly these splits.
16927
+ - |-
16928
+ A user asking where the "aggregation key" is configured is asking about this
16929
+ field: the key itself is derived from the file definition's document type, never
16930
+ entered.
16893
16931
  lookups:
16894
16932
  type: array
16895
16933
  description: |-
@@ -17140,14 +17178,22 @@ components:
17140
17178
  AI Agent configuration used by both AiAgentImport and GuardrailImport (ai_agent type).
17141
17179
 
17142
17180
  Configures which AI provider and model to use, along with instructions, parameter
17143
- tuning, output format, and available tools. Three providers are supported:
17144
-
17145
- - **openai**: OpenAI models (GPT-4, GPT-4o, GPT-4o-mini, GPT-5, etc.). Configure via the `openai` object.
17146
- - **gemini**: Google Gemini models via the LiteLLM proxy. Configure via `litellm` with overrides in `litellm._overrides.gemini`.
17147
- - **anthropic**: Anthropic Claude models via the LiteLLM proxy. Configure via `litellm` with overrides in `litellm._overrides.anthropic`.
17148
-
17149
- A `_connectionId` is optional (BYOK). If not provided on the parent import,
17150
- platform-managed credentials are used.
17181
+ tuning, output format, and available tools. Providers come in two families with
17182
+ two configuration formats:
17183
+
17184
+ - **Built-in providers** — each has its own configuration block.
17185
+ - **openai**: OpenAI models (GPT-4.1, GPT-5, etc.). Configure via the `openai` object.
17186
+ - **gemini**: Google Gemini models via the LiteLLM proxy. Configure via `litellm` with overrides in `litellm._overrides.gemini`.
17187
+ - **anthropic**: Anthropic Claude models via the LiteLLM proxy. Configure via `litellm` with overrides in `litellm._overrides.anthropic`.
17188
+ - **Catalog providers** — `mistral`, `xai`, `huggingface`, `deepseek`, `cohere`, `groq`. Added
17189
+ as catalog data rather than platform code, they share one generic flat format:
17190
+ `model`, `modelOptions`, `instructions`, `output`, and the `tools` / `prompts` /
17191
+ `resources` arrays directly on this object.
17192
+
17193
+ A `_connectionId` on the parent import selects bring-your-own-key (BYOK)
17194
+ credentials. Without one, built-in providers run on platform-managed
17195
+ credentials; catalog providers have no platform-managed credentials, so they
17196
+ save without a connection but cannot run until one is attached.
17151
17197
  required:
17152
17198
  - provider
17153
17199
  properties:
@@ -17157,18 +17203,224 @@ components:
17157
17203
  - openai
17158
17204
  - gemini
17159
17205
  - anthropic
17206
+ - mistral
17207
+ - xai
17208
+ - huggingface
17209
+ - deepseek
17210
+ - cohere
17211
+ - groq
17160
17212
  x-enumDescriptions:
17161
- openai: Use OpenAI models via the OpenAI Responses API.
17162
- gemini: Use Google Gemini models via the LiteLLM proxy.
17163
- anthropic: Use Anthropic Claude models via the LiteLLM proxy.
17213
+ openai: Use OpenAI models via the OpenAI Responses API (built-in; `openai` block).
17214
+ gemini: Use Google Gemini models via the LiteLLM proxy (built-in; `litellm` block).
17215
+ anthropic: Use Anthropic Claude models via the LiteLLM proxy (built-in; `litellm` block).
17216
+ mistral: Use Mistral models (catalog provider; generic flat format, BYOK).
17217
+ xai: Use xAI Grok models (catalog provider; generic flat format, BYOK).
17218
+ huggingface: Use Hugging Face inference endpoint models (catalog provider; generic flat format, BYOK).
17219
+ deepseek: Use DeepSeek models (catalog provider; generic flat format, BYOK).
17220
+ cohere: Use Cohere models (catalog provider; generic flat format, BYOK).
17221
+ groq: Use Groq-hosted models (catalog provider; generic flat format, BYOK).
17164
17222
  description: AI provider to use.
17165
17223
  x-celigo-ai-guidance:
17166
17224
  - |-
17167
- - **openai**: Uses OpenAI Responses API. Configure via the `openai` object.
17168
- - **gemini**: Uses Google Gemini via LiteLLM. Configure via `litellm` with
17169
- Gemini-specific overrides in `litellm._overrides.gemini`.
17170
- - **anthropic**: Uses Anthropic Claude via LiteLLM. Configure via `litellm` with
17171
- Claude-specific overrides in `litellm._overrides.anthropic`.
17225
+ The provider decides the configuration format, and the server rejects a
17226
+ mismatch with 422 `invalid_provider_config_format`: `openai` needs the
17227
+ `openai` block, `gemini` and `anthropic` need the `litellm` block (Gemini- or
17228
+ Claude-specific settings under `litellm._overrides`), and the catalog
17229
+ providers (`mistral`, `xai`, `huggingface`, `deepseek`, `cohere`, `groq`) need the
17230
+ generic flat format — `model` and `modelOptions` directly on this object,
17231
+ never an `openai` or `litellm` block.
17232
+ - |-
17233
+ Catalog providers are BYOK-only at run time: the agent saves without a
17234
+ `_connectionId`, but its first run fails with 422 `invalid_request` ("No API
17235
+ key configured for provider …"). Always attach an HTTP connection to the
17236
+ vendor's API (token auth) when the provider is a catalog provider.
17237
+ model:
17238
+ type: string
17239
+ description: |-
17240
+ Model identifier for a catalog provider (generic flat format) — for example
17241
+ `grok-4.6`. Built-in providers set the model inside their own block
17242
+ (`openai.model`, `litellm.model`) instead.
17243
+ x-celigo-ai-guidance:
17244
+ - |-
17245
+ Required for every catalog provider — omitting it or sending an empty string
17246
+ fails the save with 422 `missing_required_field`.
17247
+ - |-
17248
+ Without a `_connectionId` on the parent import the model must be one the
17249
+ catalog lists for the provider: an unknown id fails the save with 422
17250
+ `model_not_found`, a listed-but-disabled id with 422 `model_disabled`. With a
17251
+ `_connectionId` (BYOK) any model string saves — the server does not check it
17252
+ against the catalog or the vendor.
17253
+ modelOptions:
17254
+ type: object
17255
+ description: |-
17256
+ Model tuning for a catalog provider (generic flat format). Which keys, values, and
17257
+ ranges are accepted is defined per catalog model and validated on save when the
17258
+ model is a catalog entry.
17259
+ properties:
17260
+ maxOutputTokens:
17261
+ type: number
17262
+ description: Maximum number of tokens the model may generate.
17263
+ temperature:
17264
+ type: number
17265
+ description: Sampling temperature.
17266
+ topP:
17267
+ type: number
17268
+ description: Nucleus sampling threshold.
17269
+ reasoning_effort:
17270
+ type: string
17271
+ enum:
17272
+ - low
17273
+ - medium
17274
+ - high
17275
+ - xhigh
17276
+ x-enumDescriptions:
17277
+ low: Minimal reasoning before answering.
17278
+ medium: Moderate reasoning.
17279
+ high: Extensive reasoning.
17280
+ xhigh: Maximum reasoning.
17281
+ description: Reasoning depth for models that expose it.
17282
+ x-celigo-ai-guidance:
17283
+ - |-
17284
+ When the model is a catalog entry, the server validates this object against
17285
+ that model's schema and fails the save with 422 `invalid_model_options`
17286
+ naming the key: unknown keys are rejected, `reasoning_effort` must be one of
17287
+ the enum values where the model accepts it at all (xAI's `grok-4.6` does;
17288
+ DeepSeek's `deepseek-chat` rejects the key), and numeric bounds apply —
17289
+ on `grok-4.6`, `temperature` ≤ 2, `topP` ≤ 1, `maxOutputTokens` ≥ 100.
17290
+ - |-
17291
+ With a `_connectionId` and a model the catalog does not list, the object is
17292
+ passed through unvalidated — send only options the vendor's API accepts.
17293
+ instructions:
17294
+ type: string
17295
+ description: |-
17296
+ System prompt for a catalog provider (generic flat format). Built-in providers
17297
+ set it inside their own block (`openai.instructions`,
17298
+ `litellm._overrides.anthropic.systemInstruction`).
17299
+ output:
17300
+ type: object
17301
+ description: |-
17302
+ Output format for a catalog provider (generic flat format). Built-in providers
17303
+ configure it inside their own block (`openai.output`, `litellm.responseFormat`).
17304
+ properties:
17305
+ format:
17306
+ type: object
17307
+ description: Controls the structure of the model's output.
17308
+ properties:
17309
+ type:
17310
+ type: string
17311
+ enum:
17312
+ - text
17313
+ - json_schema
17314
+ x-enumDescriptions:
17315
+ text: Free-form text.
17316
+ json_schema: Structured JSON conforming to `jsonSchema`.
17317
+ description: Output type.
17318
+ x-celigo-ai-guidance:
17319
+ - |-
17320
+ `blob` is not accepted here — the save fails with 422
17321
+ `unsupported_output_format` naming the model (verified on `grok-4.6`).
17322
+ name:
17323
+ type: string
17324
+ description: Name of the JSON schema, for `json_schema` output.
17325
+ strict:
17326
+ type: boolean
17327
+ description: When true, the model must conform exactly to `jsonSchema`.
17328
+ jsonSchema:
17329
+ type: object
17330
+ additionalProperties: true
17331
+ description: JSON Schema the structured output must conform to, for `json_schema` output.
17332
+ verbose:
17333
+ type: string
17334
+ description: Level of detail in the model's response, for models that expose it.
17335
+ tools:
17336
+ type: array
17337
+ description: |-
17338
+ Tools available to a catalog-provider agent (generic flat format). Entries mirror
17339
+ the built-in providers' tool entries: a Celigo Tool by `_toolId`, an MCP server by
17340
+ `_mcpConnectionId`, or a vendor web-search tool.
17341
+ items:
17342
+ type: object
17343
+ properties:
17344
+ type:
17345
+ type: string
17346
+ enum:
17347
+ - tool
17348
+ - mcp
17349
+ - web_search
17350
+ x-enumDescriptions:
17351
+ tool: Reference a reusable Celigo Tool resource.
17352
+ mcp: Connect to an MCP server for additional external tools.
17353
+ web_search: Search the web for real-time information, where the vendor's model supports it.
17354
+ description: Type of tool entry.
17355
+ tool:
17356
+ type: object
17357
+ description: Reference to a Celigo Tool resource, used when type is "tool".
17358
+ properties:
17359
+ _toolId:
17360
+ type: string
17361
+ format: objectId
17362
+ x-celigo-refModel: tools
17363
+ description: The Celigo Tool to call.
17364
+ mcp:
17365
+ type: object
17366
+ description: MCP server connection, used when type is "mcp".
17367
+ properties:
17368
+ _mcpConnectionId:
17369
+ type: string
17370
+ format: objectId
17371
+ x-celigo-refModel: connections
17372
+ description: Connection to the MCP server.
17373
+ allowedTools:
17374
+ type: array
17375
+ description: |-
17376
+ Specific tools to allow from the MCP server (all if omitted). Each entry
17377
+ is either a plain tool name or an object carrying display metadata.
17378
+ items:
17379
+ type:
17380
+ - string
17381
+ - object
17382
+ config:
17383
+ type: object
17384
+ additionalProperties: true
17385
+ description: Tool-specific options for vendor-native tools (for example web-search settings).
17386
+ x-celigo-ai-guidance:
17387
+ - |-
17388
+ References are checked on save: an unknown `_toolId` or `_mcpConnectionId`
17389
+ fails with 422 `invalid_ref` naming the array index.
17390
+ prompts:
17391
+ type: array
17392
+ description: |-
17393
+ MCP prompt entries available to a catalog-provider agent (generic flat format).
17394
+ Each entry references one MCP connection and the prompt names allowed from it.
17395
+ items:
17396
+ type: object
17397
+ properties:
17398
+ type:
17399
+ type: string
17400
+ enum:
17401
+ - mcp
17402
+ x-enumDescriptions:
17403
+ mcp: Reference prompts exposed by an MCP server.
17404
+ description: Type of prompt entry. Always "mcp".
17405
+ mcp:
17406
+ type: object
17407
+ properties:
17408
+ _mcpConnectionId:
17409
+ type: string
17410
+ format: objectId
17411
+ x-celigo-refModel: connections
17412
+ description: Connection to the MCP server that exposes the prompts.
17413
+ allowedPrompts:
17414
+ type: array
17415
+ description: Prompt names the agent may fetch from the server.
17416
+ items:
17417
+ type: string
17418
+ x-celigo-ai-guidance:
17419
+ - |-
17420
+ An unknown `_mcpConnectionId` fails the save with 422 `invalid_ref` naming
17421
+ the array index.
17422
+ resources:
17423
+ $ref: '#/components/schemas/McpResources'
17172
17424
  openai:
17173
17425
  type: object
17174
17426
  description: |
@@ -17199,10 +17451,11 @@ components:
17199
17451
  x-celigo-ai-guidance:
17200
17452
  - |-
17201
17453
  With platform-managed credentials (no `_connectionId` on the parent
17202
- import), the model must be on the platform's allowlist — an
17203
- unlisted model fails the save with 422. A BYOK connection bypasses
17204
- the allowlist and the model string is passed through to the
17205
- provider as-is.
17454
+ import), the model must be one the platform hosts. The save does not
17455
+ check this — an unlisted model saves, and the agent's first run fails
17456
+ with 422 `invalid_model`, whose message lists the hosted models. A
17457
+ BYOK connection bypasses the hosted list and the model string is
17458
+ passed through to the provider as-is.
17206
17459
  reasoning:
17207
17460
  type: object
17208
17461
  description: Controls depth of reasoning for complex tasks.
@@ -17605,6 +17858,13 @@ components:
17605
17858
  - claude-sonnet-4-6
17606
17859
  - claude-opus-4-7
17607
17860
  x-celigo-ui-override: Required by the AI agent configuration form. Encoded here to mirror the form so builders produce connectable configurations.
17861
+ x-celigo-ai-guidance:
17862
+ - |-
17863
+ With platform-managed credentials (no `_connectionId` on the parent
17864
+ import), the model must be one the platform hosts for the provider —
17865
+ Gemini and Anthropic Claude both have a hosted list. The save does not
17866
+ check this — an unlisted model saves, and the agent's first run fails
17867
+ with 422 `invalid_model`, whose message lists the hosted models.
17608
17868
  temperature:
17609
17869
  type: number
17610
17870
  minimum: 0
@@ -18259,6 +18519,22 @@ components:
18259
18519
  litellm:
18260
18520
  required:
18261
18521
  - model
18522
+ else:
18523
+ if:
18524
+ properties:
18525
+ provider:
18526
+ enum:
18527
+ - mistral
18528
+ - xai
18529
+ - huggingface
18530
+ - deepseek
18531
+ - cohere
18532
+ - groq
18533
+ required:
18534
+ - provider
18535
+ then:
18536
+ required:
18537
+ - model
18262
18538
  GuardrailConfig:
18263
18539
  type: object
18264
18540
  description: |-
@@ -20028,7 +20304,7 @@ components:
20028
20304
  MongodbImport: MongoDB database import for document-based operations.
20029
20305
  DynamodbImport: Amazon DynamoDB import for NoSQL table operations.
20030
20306
  WrapperImport: Custom adaptor import built outside of Celigo (rarely used).
20031
- AiAgentImport: AI agent import using OpenAI, Gemini, or Anthropic Claude models for data processing.
20307
+ AiAgentImport: AI agent import using OpenAI, Gemini, Anthropic Claude, or a BYOK catalog provider (Mistral, xAI, Hugging Face, DeepSeek, Cohere, Groq) for data processing.
20032
20308
  GuardrailImport: Safety and compliance check import for PII detection, moderation, or AI evaluation.
20033
20309
  FileSystemImport: Local or network file system import.
20034
20310
  ToolImport: Import that executes a reusable Celigo Tool resource.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celigo/api-specs",
3
- "version": "0.2.18",
3
+ "version": "0.2.20",
4
4
  "private": false,
5
5
  "description": "Public OpenAPI bundles (dist/) and the celigo-cli lint schema pack (schemas.json).",
6
6
  "keywords": [