kopia lustrzana https://github.com/transitive-bullshit/chatgpt-api
522 wiersze
18 KiB
JSON
522 wiersze
18 KiB
JSON
{
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"maxLength": 1024,
|
|
"minLength": 1,
|
|
"description": "Display name for the project. Max length 1024 characters."
|
|
},
|
|
"slug": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"description": "Unique project slug. Must be ascii-only, lower-case, and kebab-case with no spaces between 1 and 256 characters. If not provided, it will be derived by slugifying `name`."
|
|
},
|
|
"version": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"description": "Optional semantic version of the project as a semver string. Ex: 1.0.0, 0.0.1, 5.0.1, etc."
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"description": "A short description of the project."
|
|
},
|
|
"readme": {
|
|
"type": "string",
|
|
"description": "Optional markdown readme documenting the project (supports GitHub-flavored markdown)."
|
|
},
|
|
"icon": {
|
|
"type": "string",
|
|
"description": "Optional logo image to use for the project. Logos should have a square aspect ratio."
|
|
},
|
|
"sourceUrl": {
|
|
"type": "string",
|
|
"format": "uri",
|
|
"description": "Optional URL to the source code of the project (eg, GitHub repo)."
|
|
},
|
|
"homepageUrl": {
|
|
"type": "string",
|
|
"format": "uri",
|
|
"description": "Optional URL to the product's homepage."
|
|
},
|
|
"origin": {
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"location": {
|
|
"type": "string",
|
|
"const": "external",
|
|
"default": "external"
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"format": "uri",
|
|
"description": "Required base URL of the externally hosted origin API server. Must be a valid `https` URL.\n\nNOTE: Agentic currently only supports `external` API servers. If you'd like to host your API or MCP server on Agentic's infrastructure, please reach out to support@agentic.so."
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"const": "openapi"
|
|
},
|
|
"spec": {
|
|
"type": "string",
|
|
"description": "Local file path, URL, or JSON stringified OpenAPI spec describing the origin API server."
|
|
}
|
|
},
|
|
"required": [
|
|
"url",
|
|
"type",
|
|
"spec"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"location": {
|
|
"$ref": "#/properties/origin/anyOf/0/properties/location"
|
|
},
|
|
"url": {
|
|
"$ref": "#/properties/origin/anyOf/0/properties/url"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"const": "mcp"
|
|
},
|
|
"headers": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"url",
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"location": {
|
|
"$ref": "#/properties/origin/anyOf/0/properties/location"
|
|
},
|
|
"url": {
|
|
"$ref": "#/properties/origin/anyOf/0/properties/url"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"const": "raw"
|
|
}
|
|
},
|
|
"required": [
|
|
"url",
|
|
"type"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
],
|
|
"description": "Origin adapter is used to configure the origin API server downstream from Agentic's API gateway. It specifies whether the origin API server denoted by `url` is hosted externally or deployed internally to Agentic's infrastructure. It also specifies the format for how origin tools are defined: either an OpenAPI spec or an MCP server.\n\nNOTE: Agentic currently only supports `external` API servers. If you'd like to host your API or MCP server on Agentic's infrastructure, please reach out to support@agentic.so."
|
|
},
|
|
"pricingPlans": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"description": "Display name for the pricing plan (eg, \"Free\", \"Starter Monthly\", \"Pro Annual\", etc)"
|
|
},
|
|
"slug": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"description": "PricingPlan slug (eg, \"free\", \"starter-monthly\", \"pro-annual\", etc). Should be lower-cased and kebab-cased. Should be stable across deployments."
|
|
},
|
|
"interval": {
|
|
"type": "string",
|
|
"enum": [
|
|
"day",
|
|
"week",
|
|
"month",
|
|
"year"
|
|
],
|
|
"description": "The frequency at which a subscription is billed."
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"features": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"trialPeriodDays": {
|
|
"type": "number",
|
|
"minimum": 0
|
|
},
|
|
"rateLimit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"const": false
|
|
}
|
|
},
|
|
"required": [
|
|
"enabled"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"interval": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMinimum": 0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"minLength": 1
|
|
}
|
|
],
|
|
"description": "The interval at which the rate limit is applied. Either a positive integer expressed in seconds or a valid positive [ms](https://github.com/vercel/ms) string (eg, \"10s\", \"1m\", \"8h\", \"2d\", \"1w\", \"1y\", etc)."
|
|
},
|
|
"limit": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"description": "Maximum number of operations per interval (unitless)."
|
|
},
|
|
"mode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"strict",
|
|
"approximate"
|
|
],
|
|
"default": "approximate",
|
|
"description": "How to enforce the rate limit: \"strict\" (more precise but slower) or \"approximate\" (the default; faster and asynchronous but less precise)."
|
|
},
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
},
|
|
"required": [
|
|
"interval",
|
|
"limit"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"lineItems": {
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"slug": {
|
|
"type": "string"
|
|
},
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"usageType": {
|
|
"type": "string",
|
|
"const": "licensed"
|
|
},
|
|
"amount": {
|
|
"type": "number",
|
|
"minimum": 0
|
|
}
|
|
},
|
|
"required": [
|
|
"slug",
|
|
"usageType",
|
|
"amount"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"slug": {
|
|
"$ref": "#/properties/pricingPlans/items/properties/lineItems/items/anyOf/0/properties/slug"
|
|
},
|
|
"label": {
|
|
"$ref": "#/properties/pricingPlans/items/properties/lineItems/items/anyOf/0/properties/label"
|
|
},
|
|
"usageType": {
|
|
"type": "string",
|
|
"const": "metered"
|
|
},
|
|
"unitLabel": {
|
|
"type": "string"
|
|
},
|
|
"billingScheme": {
|
|
"type": "string",
|
|
"enum": [
|
|
"per_unit",
|
|
"tiered"
|
|
]
|
|
},
|
|
"unitAmount": {
|
|
"type": "number",
|
|
"minimum": 0
|
|
},
|
|
"tiersMode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"graduated",
|
|
"volume"
|
|
]
|
|
},
|
|
"tiers": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"unitAmount": {
|
|
"type": "number"
|
|
},
|
|
"flatAmount": {
|
|
"type": "number"
|
|
},
|
|
"upTo": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "inf"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"upTo"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"minItems": 1
|
|
},
|
|
"defaultAggregation": {
|
|
"type": "object",
|
|
"properties": {
|
|
"formula": {
|
|
"type": "string",
|
|
"enum": [
|
|
"sum",
|
|
"count"
|
|
],
|
|
"default": "sum"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"transformQuantity": {
|
|
"type": "object",
|
|
"properties": {
|
|
"divideBy": {
|
|
"type": "number",
|
|
"exclusiveMinimum": 0
|
|
},
|
|
"round": {
|
|
"type": "string",
|
|
"enum": [
|
|
"down",
|
|
"up"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"divideBy",
|
|
"round"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"slug",
|
|
"usageType",
|
|
"billingScheme"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
],
|
|
"description": "PricingPlanLineItems represent a single line-item in a Stripe Subscription. They map to a Stripe billing `Price` and possibly a corresponding Stripe `Meter` for usage-based line-items."
|
|
},
|
|
"minItems": 1,
|
|
"maxItems": 20
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"slug",
|
|
"lineItems"
|
|
],
|
|
"additionalProperties": false,
|
|
"description": "Represents the config for a Stripe subscription with one or more PricingPlanLineItems."
|
|
},
|
|
"minItems": 1,
|
|
"description": "List of PricingPlans configuring which Stripe subscriptions should be available for the project. Defaults to a single free plan which is useful for developing and testing your project.",
|
|
"default": [
|
|
{
|
|
"name": "Free",
|
|
"slug": "free",
|
|
"lineItems": [
|
|
{
|
|
"slug": "base",
|
|
"usageType": "licensed",
|
|
"amount": 0
|
|
}
|
|
],
|
|
"rateLimit": {
|
|
"enabled": true,
|
|
"interval": 60,
|
|
"limit": 1000,
|
|
"mode": "approximate"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"pricingIntervals": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/properties/pricingPlans/items/properties/interval"
|
|
},
|
|
"minItems": 1,
|
|
"description": "Optional list of billing intervals to enable in the pricingPlans.\n\nDefaults to a single monthly interval `['month']`.\n\nTo add support for annual pricing plans, for example, you can use: `['month', 'year']`.",
|
|
"default": [
|
|
"month"
|
|
]
|
|
},
|
|
"defaultRateLimit": {
|
|
"$ref": "#/properties/pricingPlans/items/properties/rateLimit",
|
|
"default": {
|
|
"enabled": true,
|
|
"interval": 60,
|
|
"limit": 1000,
|
|
"mode": "approximate"
|
|
}
|
|
},
|
|
"toolConfigs": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"pattern": "^[a-zA-Z_][a-zA-Z0-9_-]{0,63}$",
|
|
"description": "Agentic tool name"
|
|
},
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"pure": {
|
|
"type": "boolean"
|
|
},
|
|
"cacheControl": {
|
|
"type": "string"
|
|
},
|
|
"reportUsage": {
|
|
"type": "boolean"
|
|
},
|
|
"rateLimit": {
|
|
"$ref": "#/properties/pricingPlans/items/properties/rateLimit"
|
|
},
|
|
"inputSchemaAdditionalProperties": {
|
|
"type": "boolean"
|
|
},
|
|
"outputSchemaAdditionalProperties": {
|
|
"type": "boolean"
|
|
},
|
|
"pricingPlanOverridesMap": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"reportUsage": {
|
|
"type": "boolean"
|
|
},
|
|
"rateLimit": {
|
|
"$ref": "#/properties/pricingPlans/items/properties/rateLimit"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"propertyNames": {
|
|
"minLength": 1
|
|
},
|
|
"description": "Allows you to override this tool's behavior or disable it entirely for different pricing plans. This is a map of PricingPlan slug to PricingPlanToolOverrides for that plan."
|
|
},
|
|
"examples": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The display name of the example. If not given, defaults to `Example 1`, `Example 2`, etc."
|
|
},
|
|
"prompt": {
|
|
"type": "string",
|
|
"description": "The input prompt for agents to use when running this example."
|
|
},
|
|
"systemPrompt": {
|
|
"type": "string",
|
|
"description": "An optional system prompt for agents to use when running this example. Defaults to `You are a helpful assistant. Be as concise as possible.`"
|
|
},
|
|
"args": {
|
|
"type": "object",
|
|
"additionalProperties": {},
|
|
"description": "The arguments to pass to the tool for this example."
|
|
},
|
|
"featured": {
|
|
"type": "boolean",
|
|
"description": "Whether this example should be featured in the docs for the project."
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"description": "A description of the example."
|
|
}
|
|
},
|
|
"required": [
|
|
"prompt",
|
|
"args"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"description": "Examples of how to use this tool. Used to generate example usage in the tool's docs."
|
|
}
|
|
},
|
|
"required": [
|
|
"name"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"default": []
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"origin"
|
|
],
|
|
"additionalProperties": false,
|
|
"$schema": "https://json-schema.org/draft-07/schema",
|
|
"title": "Agentic Project Config Schema",
|
|
"description": "JSON Schema used by `agentic.config.{ts,js,json}` files to configure Agentic projects."
|
|
}
|