> ## Documentation Index
> Fetch the complete documentation index at: https://docs.outlit.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Outlit is the product that monitors customers and completes approved customer work. The customer context interfaces are the API, CLI, MCP server, and skills. Canonical references on this site: /api-reference/introduction for API concepts and authentication, /openapi.json for the public API contract, /cli/overview for the CLI, /ai-integrations/mcp for MCP. Prefer the `outlit` CLI or MCP tools for agent tasks; cite page sources when answering.

# Call a tool

> Call customer intelligence tools through the public tool gateway.

## Authentication

Pass an Outlit API key in the `Authorization` header as `Bearer ok_...`.

## Request body

```json theme={null}
{
  "tool": "outlit_list_customers",
  "input": {
    "limit": 10,
    "billingStatus": "PAYING"
  }
}
```

`tool` is a public tool name. The table below lists the main tools; [Integration tools](/api-reference/integrations)
also documents two compatibility handoff tools. `input` is the tool-specific object, validated
against the shared `@outlit/tools` contract before the tool runs.

## Supported tools

### Customers and people

| Tool | Purpose |
| - | - |
| `outlit_list_customers` | Browse and filter customers by billing status, activity recency, revenue, traits, or name |
| `outlit_list_users` | Browse and filter users by journey stage, activity recency, customer, traits, email, or name |
| `outlit_get_customer` | Get full details for one customer, with optional related sections |
| `outlit_get_customer_relationship` | Bounded relationship read model: categorized statements with source labels (no raw fact IDs or quotes) |
| `outlit_get_customer_credits` | Read imported credit pools, remaining credits, burn rate, and runway for one customer |

### Identity

| Tool | Purpose |
| - | - |
| `outlit_get_customer_identity` | Read a customer's identity coverage and bounded possible-split records |
| `outlit_list_identity_merge_suggestions` | Browse saved identity merge suggestions and history |
| `outlit_reject_identity_merge_suggestion` | Reject one saved suggestion by exact ID |
| `outlit_merge_customers` | Preview then execute a two-phase customer merge by exact UUIDs |
| `outlit_get_customer_merge_status` | Track a merge operation by its operation ID |

### Attention

| Tool | Purpose |
| - | - |
| `outlit_list_attention_items` | List authorized open or resolved attention items (bounded fields, `preparedActionUrl`) |
| `outlit_get_attention_item` | Retrieve one attention item by exact UUID |

### Access

| Tool | Purpose |
| - | - |
| `outlit_list_workspace_users` | Browse internal workspace users such as CSMs, managers, account owners, and admins |
| `outlit_assign_customer_owner` | Assign an active workspace member as the customer's primary owner |
| `outlit_grant_customer_access` | Share a customer with an active workspace member as a Viewer or Editor |
| `outlit_update_customer_access` | Change an existing customer collaborator between Viewer and Editor |
| `outlit_revoke_customer_access` | Remove a collaborator's explicit access to a customer |

### Timeline and sources

| Tool | Purpose |
| - | - |
| `outlit_get_timeline` | Get chronological customer activity across product, billing, support, and conversation channels |
| `outlit_list_facts` | Browse stored customer facts and evidence |
| `outlit_get_fact` | Retrieve one exact customer fact |
| `outlit_get_source` | Retrieve one exact source record behind a fact or search result |
| `outlit_list_sources` | List concrete source records such as calls, emails, calendar events, support tickets, Slack conversations, or opportunities |
| `outlit_search_customer_context` | Search customer context semantically |

### Analytics

| Tool | Purpose |
| - | - |
| `outlit_query` | Run SQL against customer intelligence views |
| `outlit_schema` | Inspect available analytics views |

### Features

| Tool | Purpose |
| - | - |
| `outlit_list_features` | Read configured Features, exact historical usage, eligible sources, and ready, partial, or unavailable candidate discovery |
| `outlit_create_feature` | Create or idempotently return one Feature observed by one event rule |
| `outlit_archive_feature` | Archive a Feature using its opaque id and current revision when another active feature remains |
| `outlit_get_customer_features` | Read exact historical Feature usage for one authorized customer |

### Configuration

| Tool | Purpose |
| - | - |
| `outlit_list_destinations` | List destinations with masked configuration |
| `outlit_get_destination` | Read one destination with masked configuration |
| `outlit_create_destination` | Create a delivery destination |
| `outlit_update_destination` | Update a destination |
| `outlit_enable_destination` | Enable a destination |
| `outlit_disable_destination` | Disable a destination |
| `outlit_archive_destination` | Archive a destination |
| `outlit_get_integration_capabilities` | Check supported setup steps without sending credentials |
| `outlit_setup_integration` | Complete a supported credential, mapping, or browser handoff step |
| `outlit_get_integration_status` | Read whether an integration is configured and ready |
| `outlit_begin_integration_setup` | Start an older browser handoff without sending credentials |
| `outlit_get_integration_setup_status` | Check the status of an older authentication handoff |
| `outlit_get_customer_activation` | Read the configured activation event |
| `outlit_preview_customer_activation` | Preview an event against past activity without changing activation |
| `outlit_update_customer_activation` | Set the ordinary activation event |
| `outlit_get_workspace_settings` | Read supported workspace settings |
| `outlit_update_workspace_settings` | Update a supported workspace setting |

### Feedback

| Tool | Purpose |
| - | - |
| `outlit_submit_feedback` | Submit product feedback — bugs, ideas, or agent friction — to the Outlit team |

`outlit_submit_feedback` accepts `body` (required, trimmed, non-empty, at most 20,000
characters), optional `area` (trimmed, non-empty, at most 100 characters), and optional
`context` (a JSON object of at most 16 KiB serialized, for diagnostics such as the surface
or client version — never secrets or unnecessary customer data). It returns the recorded
feedback `id` and `createdAt` timestamp.

Submissions require authentication and are rate limited under a dedicated quota; they do not
consume paid plan API-call quota. Feedback is product intake, not a support ticket, and does
not guarantee a reply.

For schema-driven clients, `@outlit/tools` publishes tool input schemas as `publicToolContracts`.

## TypeScript client

Use `@outlit/tools` when you want the same tool names and input contracts that power the CLI, Pi package, and public tool gateway:

```bash theme={null}
npm install @outlit/tools
```

```typescript theme={null}
import { createOutlitClient, publicToolContracts } from "@outlit/tools"

const outlit = createOutlitClient({
  apiKey: process.env.OUTLIT_API_KEY!,
})

const result = await outlit.callTool(
  publicToolContracts.outlit_search_customer_context.toolName,
  {
    query: "What pricing concerns came up recently?",
    customer: "acme.com",
    sourceTypes: ["CALL", "EMAIL", "SUPPORT_TICKET", "OPPORTUNITY"],
    topK: 5,
  },
)
```

The package also exports `publicToolContracts`, `publicToolNames`, server-defined `consumerToolPolicies`, `defaultToolNames`, `analyticalToolNames`, `piToolNames`, `cliToolNames`, `allPublicToolNames`, `publicOpenApiTransports`, `toolGatewayTransport`, `apiKeyValidationTransport`, `toolGatewayErrorCodes`, `toolGatewayErrorSchema`, `ingestTransport`, and enum lists such as `customerSourceTypes`. `OPPORTUNITY` is the canonical CRM opportunity source type; `CRM` and `CRM_OPPORTUNITY` are accepted input aliases.

## Examples

### List paying customers

```bash theme={null}
curl -X POST https://app.outlit.ai/api/tools/call \
  -H "Authorization: Bearer ok_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "tool": "outlit_list_customers",
    "input": {
      "billingStatus": "PAYING",
      "limit": 10
    }
  }'
```

### Get customer details

```json theme={null}
{
  "tool": "outlit_get_customer",
  "input": {
    "customer": "acme.com",
    "include": ["users", "revenue", "recentTimeline"],
    "timeframe": "30d"
  }
}
```

### Search customer context

```json theme={null}
{
  "tool": "outlit_search_customer_context",
  "input": {
    "customer": "acme.com",
    "query": "What renewal concerns came up recently?",
    "sourceTypes": ["EMAIL", "CALL", "SUPPORT_TICKET", "OPPORTUNITY"],
    "after": "2026-01-01T00:00:00Z",
    "topK": 5
  }
}
```

Omit `customer` to search across all customers. The top-level `customer` is the
customer you scoped to, or `null` for a search across customers. Each `source` and
`fact` result also carries a `customer` (`id`, `name`, `domain`) naming the customer
it belongs to. A result's `customer` is `null` when it can't be attributed to exactly
one customer you can read. Servers that predate the field omit it, so treat a missing
`customer` like `null`.

```json theme={null}
{
  "tool": "outlit_search_customer_context",
  "input": {
    "query": "Who raised security concerns?",
    "topK": 5
  }
}
```

Example response with two source results:

```json theme={null}
{
  "customer": null,
  "results": [
    {
      "kind": "source",
      "score": 0.91,
      "sourceType": "EMAIL",
      "sourceId": "email_123",
      "customer": { "id": "cust_123", "name": "Acme", "domain": "acme.com" },
      "occurredAt": "2026-08-12T14:05:00Z",
      "title": "Security review before renewal",
      "permalink": null,
      "matchCount": 1,
      "matches": [{ "text": "Can you send your SOC 2 Type II report before we renew?" }]
    },
    {
      "kind": "source",
      "score": 0.87,
      "sourceType": "CALL",
      "sourceId": "call_456",
      "customer": { "id": "cust_789", "name": "Globex", "domain": "globex.com" },
      "occurredAt": "2026-08-20T16:00:00Z",
      "title": "Q3 business review",
      "permalink": null,
      "matchCount": 2,
      "matches": [{ "text": "Their CISO asked about data residency and SSO enforcement." }]
    }
  ]
}
```

### List active contact transition facts

```json theme={null}
{
  "tool": "outlit_list_facts",
  "input": {
    "customer": "acme.com",
    "status": ["ACTIVE"],
    "sourceTypes": ["CALL", "OPPORTUNITY"],
    "factTypes": ["CONTACT_DEPARTURE", "CONTACT_POSITION_CHANGE", "CONTACT_DISENGAGEMENT"],
    "after": "2026-01-01T00:00:00Z",
    "limit": 20
  }
}
```

### Open one source record

```json theme={null}
{
  "tool": "outlit_get_source",
  "input": {
    "sourceType": "OPPORTUNITY",
    "sourceId": "opp_123"
  }
}
```

### Read exact source content

Exact lookup can include a `contentPage` with bounded content segments. The default
page size is 10 segments, with a maximum of 100. Pass the returned
`contentPage.page.nextCursor` with the same source type and ID when
`contentPage.page.hasMore` is true. Check `contentPage.completeness` before treating
the content as complete.

```json theme={null}
{
  "tool": "outlit_get_source",
  "input": {
    "sourceType": "CALL",
    "sourceId": "call_123",
    "limit": 10
  }
}
```

Example response with complete content:

```json theme={null}
{
  "sourceType": "CALL",
  "sourceId": "call_123",
  "occurredAt": "2026-09-01T12:00:00Z",
  "title": "Renewal discussion",
  "summary": "The customer asked for a renewal proposal.",
  "permalink": null,
  "provider": "gong",
  "customer": { "id": "cust_123", "name": "Acme", "domain": "acme.com" },
  "participants": [],
  "record": {},
  "contentPage": {
    "sourceType": "CALL",
    "sourceId": "call_123",
    "contentKind": "call_transcript",
    "segments": [{ "id": "segment_1", "text": "Please send the renewal proposal." }],
    "page": { "returned": 1, "hasMore": false, "nextCursor": null },
    "completeness": { "status": "complete", "omittedFields": [] }
  }
}
```

### Follow person profile evidence

When a fact or search result references a `PERSON_PROFILE` source, use its source ID
for exact lookup. Replace the example ID with the ID from that reference.

```json theme={null}
{
  "tool": "outlit_get_source",
  "input": {
    "sourceType": "PERSON_PROFILE",
    "sourceId": "snapshot_123"
  }
}
```

### Read customer features

```json theme={null}
{
  "tool": "outlit_get_customer_features",
  "input": {
    "customer": "acme.com",
    "weeks": 12
  }
}
```

Feature usage is factual historical evidence. A feature can report complete or partial counts,
no matches in the requested window, or unavailable source evidence. Unavailable evidence is not
converted to zero. Archive is the available self-service lifecycle action.
Creating a Feature also creates the supporting weekly event-count and active-days metrics inside
Outlit; those metrics are not separate public resources.

### Submit product feedback

```json theme={null}
{
  "tool": "outlit_submit_feedback",
  "input": {
    "body": "The merge preview did not list the losing record's traits.",
    "area": "customers",
    "context": { "surface": "cli", "command": "customers merge" }
  }
}
```

Returns `{ "id": "10000000-0000-4000-8000-000000000004", "createdAt": "2026-09-28T12:00:00.000Z" }`. See
[Feedback](#feedback) for input limits. Feedback is product intake, not a support ticket.

## Response

The response is the selected tool's JSON result. List tools return paginated collections; exact lookup tools return the matched record or an error when the record cannot be found. Search returns grouped artifact-level `source` and `fact` results, not raw vector chunks. Fact results include provenance fields such as `sourceType`, `sourceId`, `sourceOccurredAt`, `sourceQuote`, and `permalink` when available.

Money amounts such as `currentMrr`, `lifetimeRevenue`, and `accountImportance.arrCents` are in the billing provider's units for the currency they were billed in. For USD, EUR, GBP, and CAD these are cents: divide by 100 (for example, 1234500 is $12,345 in USD). Other currencies follow the provider's amount rules (see [Stripe's currency docs](https://docs.stripe.com/currencies)), so don't assume a divisor for them. Attention items return the currency alongside `arrCents`; customer results don't name it. ARR is 12 × `currentMrr` in the same units. The example below is for a customer billed in USD, so `"currentMrr": 25000` is $250 MRR.

Example list response:

```json theme={null}
{
  "items": [
    {
      "id": "cus_123",
      "name": "Acme",
      "domain": "acme.com",
      "billingStatus": "PAYING",
      "activatedAt": "2026-01-15T09:30:00.000Z",
      "firstSeenAt": "2025-12-02T17:05:00.000Z",
      "lastActivityAt": "2026-04-10T18:22:11.000Z",
      "contactCount": 42,
      "currentMrr": 25000,
      "mrrCalculationStatus": "calculated",
      "owner": null,
      "daysSinceActivity": 3
    }
  ],
  "pagination": {
    "hasMore": true,
    "nextCursor": "cursor_abc",
    "total": 128
  }
}
```

## Error responses

Invalid JSON, unknown tool names, or invalid tool inputs return `400`:

```json theme={null}
{
  "code": "INVALID_TOOL_INPUT",
  "message": "Invalid tool input",
  "retryable": false,
  "requestId": "req_123"
}
```

Invalid credentials return `401`. Plan API-call limits can return `402` or `429` with a stable billing `code`.


## OpenAPI

````yaml openapi.json POST /api/tools/call
openapi: 3.1.0
info:
  title: Outlit Public API
  version: 1.0.0
  description: >-
    Generated from Outlit Core's capability catalog and public protocol
    transport contracts.
servers:
  - url: https://app.outlit.ai
security:
  - bearerAuth: []
paths:
  /api/tools/call:
    post:
      summary: Call a tool
      operationId: callTool
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_list_customers
                    input:
                      $ref: '#/components/schemas/ToolInput_outlit_list_customers'
                  required:
                    - tool
                  additionalProperties: false
                  title: List customers
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_list_users
                    input:
                      $ref: '#/components/schemas/ToolInput_outlit_list_users'
                  required:
                    - tool
                  additionalProperties: false
                  title: List users
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_list_workspace_users
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_list_workspace_users
                  required:
                    - tool
                  additionalProperties: false
                  title: List workspace users
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_get_customer
                    input:
                      $ref: '#/components/schemas/ToolInput_outlit_get_customer'
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Get customer
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_get_customer_relationship
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_get_customer_relationship
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Get customer relationship
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_assign_customer_owner
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_assign_customer_owner
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Assign customer owner
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_grant_customer_access
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_grant_customer_access
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Grant customer access
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_update_customer_access
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_update_customer_access
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Update customer access
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_revoke_customer_access
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_revoke_customer_access
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Revoke customer access
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_get_timeline
                    input:
                      $ref: '#/components/schemas/ToolInput_outlit_get_timeline'
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Get timeline
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_list_facts
                    input:
                      $ref: '#/components/schemas/ToolInput_outlit_list_facts'
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: List facts
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_get_fact
                    input:
                      $ref: '#/components/schemas/ToolInput_outlit_get_fact'
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Get fact
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_get_source
                    input:
                      $ref: '#/components/schemas/ToolInput_outlit_get_source'
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Get source
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_list_sources
                    input:
                      $ref: '#/components/schemas/ToolInput_outlit_list_sources'
                  required:
                    - tool
                  additionalProperties: false
                  title: List sources
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_search_customer_context
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_search_customer_context
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Search customer context
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_query
                    input:
                      $ref: '#/components/schemas/ToolInput_outlit_query'
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Query analytics
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_schema
                    input:
                      $ref: '#/components/schemas/ToolInput_outlit_schema'
                  required:
                    - tool
                  additionalProperties: false
                  title: Inspect analytics schema
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_list_destinations
                    input:
                      $ref: '#/components/schemas/ToolInput_outlit_list_destinations'
                  required:
                    - tool
                  additionalProperties: false
                  title: List destinations
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_get_destination
                    input:
                      $ref: '#/components/schemas/ToolInput_outlit_get_destination'
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Get destination
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_create_destination
                    input:
                      $ref: '#/components/schemas/ToolInput_outlit_create_destination'
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Create destination
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_update_destination
                    input:
                      $ref: '#/components/schemas/ToolInput_outlit_update_destination'
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Update destination
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_enable_destination
                    input:
                      $ref: '#/components/schemas/ToolInput_outlit_enable_destination'
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Enable destination
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_disable_destination
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_disable_destination
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Disable destination
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_archive_destination
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_archive_destination
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Archive destination
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_submit_feedback
                    input:
                      $ref: '#/components/schemas/ToolInput_outlit_submit_feedback'
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Submit feedback
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_get_integration_capabilities
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_get_integration_capabilities
                  required:
                    - tool
                  additionalProperties: false
                  title: Get integration capabilities
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_begin_integration_setup
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_begin_integration_setup
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Begin integration setup
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_get_integration_setup_status
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_get_integration_setup_status
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Get integration setup status
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_get_integration_status
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_get_integration_status
                  required:
                    - tool
                  additionalProperties: false
                  title: Get integration status
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_setup_integration
                    input:
                      $ref: '#/components/schemas/ToolInput_outlit_setup_integration'
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Set up integration
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_get_customer_activation
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_get_customer_activation
                  required:
                    - tool
                  additionalProperties: false
                  title: Get customer activation
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_preview_customer_activation
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_preview_customer_activation
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Preview customer activation
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_update_customer_activation
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_update_customer_activation
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Update customer activation
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_get_workspace_settings
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_get_workspace_settings
                  required:
                    - tool
                  additionalProperties: false
                  title: Get workspace settings
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_update_workspace_settings
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_update_workspace_settings
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Update workspace settings
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_list_features
                    input:
                      $ref: '#/components/schemas/ToolInput_outlit_list_features'
                  required:
                    - tool
                  additionalProperties: false
                  title: List features
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_create_feature
                    input:
                      $ref: '#/components/schemas/ToolInput_outlit_create_feature'
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Create feature
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_archive_feature
                    input:
                      $ref: '#/components/schemas/ToolInput_outlit_archive_feature'
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Archive feature
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_get_customer_features
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_get_customer_features
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Get customer features
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_get_customer_credits
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_get_customer_credits
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Get customer credits
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_list_attention_items
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_list_attention_items
                  required:
                    - tool
                  additionalProperties: false
                  title: List attention items
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_get_attention_item
                    input:
                      $ref: '#/components/schemas/ToolInput_outlit_get_attention_item'
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Get attention item
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_get_customer_identity
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_get_customer_identity
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Get customer identity
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_list_identity_merge_suggestions
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_list_identity_merge_suggestions
                  required:
                    - tool
                  additionalProperties: false
                  title: List identity merge suggestions
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_reject_identity_merge_suggestion
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_reject_identity_merge_suggestion
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Reject identity merge suggestion
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_merge_customers
                    input:
                      $ref: '#/components/schemas/ToolInput_outlit_merge_customers'
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Merge customers
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_get_customer_merge_status
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_get_customer_merge_status
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Get customer merge status
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_list_scoped_repairs
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_list_scoped_repairs
                  required:
                    - tool
                  additionalProperties: false
                  title: List scoped repairs
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_preview_scoped_repair
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_preview_scoped_repair
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Preview scoped repair
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_execute_scoped_repair
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_execute_scoped_repair
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Execute scoped repair
                - type: object
                  properties:
                    tool:
                      type: string
                      const: outlit_verify_scoped_repair
                    input:
                      $ref: >-
                        #/components/schemas/ToolInput_outlit_verify_scoped_repair
                  required:
                    - tool
                    - input
                  additionalProperties: false
                  title: Verify scoped repair
              discriminator:
                propertyName: tool
      responses:
        '200':
          description: Capability output
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/ToolOutput_outlit_list_customers'
                  - $ref: '#/components/schemas/ToolOutput_outlit_list_users'
                  - $ref: >-
                      #/components/schemas/ToolOutput_outlit_list_workspace_users
                  - $ref: '#/components/schemas/ToolOutput_outlit_get_customer'
                  - $ref: >-
                      #/components/schemas/ToolOutput_outlit_get_customer_relationship
                  - $ref: >-
                      #/components/schemas/ToolOutput_outlit_assign_customer_owner
                  - $ref: >-
                      #/components/schemas/ToolOutput_outlit_grant_customer_access
                  - $ref: >-
                      #/components/schemas/ToolOutput_outlit_update_customer_access
                  - $ref: >-
                      #/components/schemas/ToolOutput_outlit_revoke_customer_access
                  - $ref: '#/components/schemas/ToolOutput_outlit_get_timeline'
                  - $ref: '#/components/schemas/ToolOutput_outlit_list_facts'
                  - $ref: '#/components/schemas/ToolOutput_outlit_get_fact'
                  - $ref: '#/components/schemas/ToolOutput_outlit_get_source'
                  - $ref: '#/components/schemas/ToolOutput_outlit_list_sources'
                  - $ref: >-
                      #/components/schemas/ToolOutput_outlit_search_customer_context
                  - $ref: '#/components/schemas/ToolOutput_outlit_query'
                  - $ref: '#/components/schemas/ToolOutput_outlit_schema'
                  - $ref: '#/components/schemas/ToolOutput_outlit_list_destinations'
                  - $ref: '#/components/schemas/ToolOutput_outlit_get_destination'
                  - $ref: '#/components/schemas/ToolOutput_outlit_create_destination'
                  - $ref: '#/components/schemas/ToolOutput_outlit_update_destination'
                  - $ref: '#/components/schemas/ToolOutput_outlit_enable_destination'
                  - $ref: '#/components/schemas/ToolOutput_outlit_disable_destination'
                  - $ref: '#/components/schemas/ToolOutput_outlit_archive_destination'
                  - $ref: '#/components/schemas/ToolOutput_outlit_submit_feedback'
                  - $ref: >-
                      #/components/schemas/ToolOutput_outlit_get_integration_capabilities
                  - $ref: >-
                      #/components/schemas/ToolOutput_outlit_begin_integration_setup
                  - $ref: >-
                      #/components/schemas/ToolOutput_outlit_get_integration_setup_status
                  - $ref: >-
                      #/components/schemas/ToolOutput_outlit_get_integration_status
                  - $ref: '#/components/schemas/ToolOutput_outlit_setup_integration'
                  - $ref: >-
                      #/components/schemas/ToolOutput_outlit_get_customer_activation
                  - $ref: >-
                      #/components/schemas/ToolOutput_outlit_preview_customer_activation
                  - $ref: >-
                      #/components/schemas/ToolOutput_outlit_update_customer_activation
                  - $ref: >-
                      #/components/schemas/ToolOutput_outlit_get_workspace_settings
                  - $ref: >-
                      #/components/schemas/ToolOutput_outlit_update_workspace_settings
                  - $ref: '#/components/schemas/ToolOutput_outlit_list_features'
                  - $ref: '#/components/schemas/ToolOutput_outlit_create_feature'
                  - $ref: '#/components/schemas/ToolOutput_outlit_archive_feature'
                  - $ref: >-
                      #/components/schemas/ToolOutput_outlit_get_customer_features
                  - $ref: >-
                      #/components/schemas/ToolOutput_outlit_get_customer_credits
                  - $ref: >-
                      #/components/schemas/ToolOutput_outlit_list_attention_items
                  - $ref: '#/components/schemas/ToolOutput_outlit_get_attention_item'
                  - $ref: >-
                      #/components/schemas/ToolOutput_outlit_get_customer_identity
                  - $ref: >-
                      #/components/schemas/ToolOutput_outlit_list_identity_merge_suggestions
                  - $ref: >-
                      #/components/schemas/ToolOutput_outlit_reject_identity_merge_suggestion
                  - $ref: '#/components/schemas/ToolOutput_outlit_merge_customers'
                  - $ref: >-
                      #/components/schemas/ToolOutput_outlit_get_customer_merge_status
                  - $ref: '#/components/schemas/ToolOutput_outlit_list_scoped_repairs'
                  - $ref: >-
                      #/components/schemas/ToolOutput_outlit_preview_scoped_repair
                  - $ref: >-
                      #/components/schemas/ToolOutput_outlit_execute_scoped_repair
                  - $ref: >-
                      #/components/schemas/ToolOutput_outlit_verify_scoped_repair
        '400':
          description: Invalid tool call
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayError'
        '401':
          description: Invalid credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayError'
        '402':
          description: Billing action required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayError'
        '403':
          description: Capability not authorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayError'
        '404':
          description: Requested resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayError'
        '409':
          description: Capability request conflicts with current state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayError'
        '413':
          description: Tool gateway error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayError'
        '422':
          description: Capability request could not be processed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayError'
        '429':
          description: Rate or plan limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayError'
        '500':
          description: Tool gateway failure
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayError'
        '502':
          description: Invalid capability implementation output
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayError'
        '503':
          description: Capability temporarily unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayError'
components:
  schemas:
    ToolInput_outlit_list_customers:
      type: object
      properties:
        activatedSince:
          description: Filter customers activated at or after this ISO-8601 datetime
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        billingStatus:
          description: Filter by billing status
          type: string
          enum:
            - NONE
            - TRIALING
            - PAYING
            - PAST_DUE
            - CHURNED
        hasActivityInLast:
          description: Filter customers with activity in the last N days
          type: string
          enum:
            - 7d
            - 14d
            - 30d
            - 90d
        noActivityInLast:
          description: Filter customers with NO activity in the last N days
          type: string
          enum:
            - 7d
            - 14d
            - 30d
            - 90d
        mrrAbove:
          description: >-
            Minimum MRR, in currentMrr's units (10000 is $100 for a customer
            billed in USD)
          type: number
          minimum: 0
        mrrBelow:
          description: Maximum MRR, in currentMrr's units
          type: number
          minimum: 0
        traitFilters:
          description: Filter by exact trait values using key/value pairs
          type: object
          propertyNames:
            type: string
            pattern: ^[A-Za-z0-9_-]{1,100}$
          additionalProperties:
            anyOf:
              - type: string
                maxLength: 500
              - type: number
              - type: boolean
        search:
          description: Search by customer name or domain (case-insensitive)
          type: string
          maxLength: 500
        ownerId:
          description: Filter customers by internal owner user ID
          type: string
          maxLength: 500
        ownerEmail:
          description: Filter customers by internal owner email address
          type: string
          maxLength: 500
        hasOwner:
          description: Filter customers by whether they have an owner
          type: boolean
        limit:
          description: Results per page (max 1000)
          default: 50
          type: number
          minimum: 1
          maximum: 1000
        cursor:
          description: Pagination cursor from previous response
          type: string
        orderBy:
          description: Field to order results by
          default: last_activity_at
          type: string
          enum:
            - last_activity_at
            - first_seen_at
            - name
            - mrr_cents
        orderDirection:
          description: Sort direction
          default: desc
          type: string
          enum:
            - asc
            - desc
    ToolInput_outlit_list_users:
      type: object
      properties:
        journeyStage:
          description: Filter by user journey stage
          type: string
          enum:
            - DISCOVERED
            - SIGNED_UP
            - ACTIVATED
            - ENGAGED
            - INACTIVE
        customerId:
          description: Filter users by customer ID
          type: string
          maxLength: 500
        traitFilters:
          description: Filter by exact trait values using key/value pairs
          type: object
          propertyNames:
            type: string
            pattern: ^[A-Za-z0-9_-]{1,100}$
          additionalProperties:
            anyOf:
              - type: string
                maxLength: 500
              - type: number
              - type: boolean
        hasActivityInLast:
          description: >-
            Filter users active within this window. Format: Nd, Nh, or Nm (e.g.,
            '7d', '24h', '90m')
          type: string
          pattern: ^\d+(d|h|m)$
        noActivityInLast:
          description: >-
            Filter users NOT active within this window. Format: Nd, Nh, or Nm
            (e.g., '30d', '2h')
          type: string
          pattern: ^\d+(d|h|m)$
        search:
          description: Search by user email or name (case-insensitive)
          type: string
          maxLength: 500
        limit:
          description: Results per page (max 1000)
          default: 50
          type: number
          minimum: 1
          maximum: 1000
        cursor:
          description: Pagination cursor from previous response
          type: string
        orderBy:
          description: Field to order by
          default: last_activity_at
          type: string
          enum:
            - last_activity_at
            - first_seen_at
            - email
        orderDirection:
          description: Sort direction
          default: desc
          type: string
          enum:
            - asc
            - desc
    ToolInput_outlit_list_workspace_users:
      type: object
      properties:
        search:
          description: >-
            Search internal workspace users by name, email, title, role, or
            territory
          type: string
          maxLength: 500
        role:
          description: Filter internal workspace users by role metadata when available
          type: string
          maxLength: 100
        managerEmail:
          description: >-
            Filter internal workspace users by manager email metadata when
            available
          type: string
          maxLength: 500
        hasOwnedCustomers:
          description: >-
            When true, return only members who own customers; when false, return
            only members who own none
          type: boolean
        limit:
          description: Results per page (max 1000)
          default: 50
          type: number
          minimum: 1
          maximum: 1000
        cursor:
          description: Pagination cursor from previous response
          type: string
        orderBy:
          description: Field to order workspace users by
          default: owned_customer_count
          type: string
          enum:
            - name
            - email
            - owned_customer_count
        orderDirection:
          description: Sort direction
          default: desc
          type: string
          enum:
            - asc
            - desc
    ToolInput_outlit_get_customer:
      type: object
      properties:
        customer:
          type: string
          minLength: 1
          maxLength: 500
          description: Customer ID, domain, or name to look up
        include:
          description: Additional data sections to include in the response
          type: array
          items:
            type: string
            enum:
              - users
              - revenue
              - recentTimeline
              - behaviorMetrics
              - enrichment
        timeframe:
          description: 'Timeframe for timeline and behavior metrics (default: 30d)'
          default: 30d
          type: string
          enum:
            - 7d
            - 14d
            - 30d
            - 90d
      required:
        - customer
    ToolInput_outlit_get_customer_relationship:
      type: object
      properties:
        customer:
          type: string
          minLength: 1
          maxLength: 500
          description: Customer ID, domain, or exact customer name to look up
      required:
        - customer
      additionalProperties: false
    ToolInput_outlit_assign_customer_owner:
      type: object
      properties:
        customerId:
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        targetUserId:
          type: string
          minLength: 1
          maxLength: 500
      required:
        - customerId
        - targetUserId
    ToolInput_outlit_grant_customer_access:
      type: object
      properties:
        customerId:
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        targetUserId:
          type: string
          minLength: 1
          maxLength: 500
        role:
          type: string
          enum:
            - VIEWER
            - EDITOR
      required:
        - customerId
        - targetUserId
        - role
    ToolInput_outlit_update_customer_access:
      type: object
      properties:
        customerId:
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        targetUserId:
          type: string
          minLength: 1
          maxLength: 500
        role:
          type: string
          enum:
            - VIEWER
            - EDITOR
      required:
        - customerId
        - targetUserId
        - role
    ToolInput_outlit_revoke_customer_access:
      type: object
      properties:
        customerId:
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        targetUserId:
          type: string
          minLength: 1
          maxLength: 500
      required:
        - customerId
        - targetUserId
    ToolInput_outlit_get_timeline:
      type: object
      properties:
        customer:
          type: string
          minLength: 1
          maxLength: 200
          description: Customer ID or domain
        channels:
          description: >-
            Filter by event channel. When omitted, defaults to the relationship
            channels COMMUNICATION, MEETING, SUPPORT, CRM, and BILLING. PRODUCT,
            IDENTITY, DOCUMENT, and SYSTEM are included only when listed here.
            Pass channels:["PRODUCT"] to read the weekly product usage
            aggregate, and combine with productDetail to also return individual
            product events.
          type: array
          items:
            type: string
            enum:
              - PRODUCT
              - COMMUNICATION
              - MEETING
              - CRM
              - BILLING
              - SUPPORT
              - IDENTITY
              - DOCUMENT
              - SYSTEM
        productDetail:
          description: >-
            Controls whether PRODUCT-channel rows appear in `events` when
            channels includes PRODUCT. "none" (default): product activity is
            returned only as the `product` weekly usage aggregate — no product
            telemetry rows. "material": also include individual product events
            that match the organization's configured value-feature event names
            (each keeps an `id` usable for citations); when the organization has
            no configured value features this returns no product rows, but the
            `product` aggregate is still returned. "raw": include every product
            event, including autocapture, pageview, feature-flag, and identity
            telemetry — large; request only when the aggregate and material
            events are insufficient.
          type: string
          enum:
            - none
            - material
            - raw
        includeMetadata:
          description: >-
            Include each event's raw metadata/properties payload. Default false:
            events return compact fields only, keeping the response small. Pass
            true only when a specific metadata field is needed.
          type: boolean
        eventTypes:
          description: Filter by event type
          type: array
          items:
            type: string
        timeframe:
          description: >-
            Relative time window (default: 30d). Cannot be used with
            startDate/endDate.
          type: string
          enum:
            - 7d
            - 14d
            - 30d
            - 90d
            - all
        startDate:
          description: >-
            Start of time window, inclusive (ISO 8601 UTC, e.g.
            '2025-01-01T00:00:00.000Z'). Cannot be used with timeframe.
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        endDate:
          description: >-
            End of time window, inclusive of the instant it names (ISO 8601 UTC,
            e.g. '2025-01-31T23:59:59.999Z'). Use millisecond precision:
            timestamps are stored to the millisecond, so '...T23:59:59Z'
            includes only the first instant of that second and excludes the rest
            of it. Cannot be used with timeframe.
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        limit:
          description: Results per page (max 1000)
          default: 50
          type: number
          minimum: 1
          maximum: 1000
        cursor:
          description: Pagination cursor from previous response
          type: string
      required:
        - customer
    ToolInput_outlit_list_facts:
      type: object
      properties:
        customer:
          type: string
          minLength: 1
          maxLength: 500
          description: Customer ID or domain
        status:
          description: Optional fact status filter
          type: array
          items:
            type: string
            enum:
              - ACTIVE
              - ACKNOWLEDGED
              - RESOLVED
              - SNOOZED
              - CANDIDATE
        sourceTypes:
          description: Optional generic source types to restrict fact results to.
          type: array
          items:
            type: string
            enum:
              - EMAIL
              - CALL
              - CALENDAR_EVENT
              - SUPPORT_TICKET
              - OPPORTUNITY
              - SLACK
              - PERSON_PROFILE
              - CRM
              - CRM_OPPORTUNITY
        factTypes:
          description: >-
            Optional customer-memory fact type filters; omit to retrieve across
            types. Choose types relevant to the question. Anomaly detector fact
            types are not supported.

            CUSTOM: A custom customer fact whose meaning is given by its content
            and supporting evidence.

            COMPANY_CHANGE: Changes to the customer company, such as leadership,
            staffing, structure, or office location.

            FUNDING_REVENUE: The customer company's funding, revenue, financial
            health, or burn rate.

            TECHNOLOGY: Changes to the customer's technology stack, including
            migrations, adoption, or deprecation.

            STRATEGY: The customer company's strategic direction, pivots,
            markets, or business priorities.

            COMPETITIVE: The customer's consideration of competing products,
            including evaluations, switching intent, or RFPs.

            SENTIMENT: The customer's expressed satisfaction, frustration,
            praise, or complaints about the product.

            EXPANSION: Potential growth in the customer's use or purchase of the
            product through new use cases, users, or departments.

            CHURN_RISK: The customer reducing or ending use of the
            organization's product; exclude the customer's own customers
            churning, generic complaints without reduction intent, unrelated
            budget changes, and unrelated vendor notices

            TIMELINE: Stated dates or deadlines for customer decisions,
            launches, renewals, or other milestones.

            BUDGET: The customer's budget, spending approval status, or
            procurement process.

            DECISION_MAKER: Who influences or approves the customer's purchasing
            or implementation decisions.

            REQUIREMENTS: Specific product capabilities, features, or
            integrations the customer requests or requires.

            BLOCKER: An obstacle preventing the customer's launch, renewal,
            expansion, implementation, integration, or successful product use.

            COMMITMENT: A promise, obligation, agreed next step, approval, or
            decision by the customer or vendor.

            SUCCESS_CRITERION: An explicitly customer-stated desired outcome or
            condition for getting value from the product, including qualitative
            outcomes without invented metrics or deadlines.

            PRODUCT_USAGE: How the customer uses, adopts, abandons, or works
            around specific product capabilities.

            CONTACT_INFO: A customer contact's title, professional
            responsibilities, team membership, or reporting chain.

            CONTACT_PREFERENCE: A customer contact's communication preferences,
            availability, timezone, or meeting style.

            CONTACT_DEPARTURE: A known customer contact explicitly left or is
            leaving the customer's company; exclude vacation, parental or
            medical leave, ordinary out-of-office notices, candidates, and
            people discussed as part of the customer's own business

            CONTACT_POSITION_CHANGE: A known customer contact changed title,
            department, team, or professional responsibility; do not use this
            for an Outlit relationship role change, and use CONTACT_DEPARTURE
            when the person left the company

            CONTACT_DISENGAGEMENT: A known customer contact explicitly stopped
            participating, organizing, responding, or owning the initiative; a
            single unanswered message, scheduling friction, or an out-of-office
            notice is insufficient

            CHAMPION_RISK: Historical broad relationship-risk fact retained for
            existing rows and occurrences; new extraction uses specific
            contact-transition Fact types
          type: array
          items:
            type: string
            enum:
              - CUSTOM
              - COMPANY_CHANGE
              - FUNDING_REVENUE
              - TECHNOLOGY
              - STRATEGY
              - COMPETITIVE
              - SENTIMENT
              - EXPANSION
              - CHURN_RISK
              - TIMELINE
              - BUDGET
              - DECISION_MAKER
              - REQUIREMENTS
              - BLOCKER
              - COMMITMENT
              - SUCCESS_CRITERION
              - PRODUCT_USAGE
              - CONTACT_INFO
              - CONTACT_PREFERENCE
              - CONTACT_DEPARTURE
              - CONTACT_POSITION_CHANGE
              - CONTACT_DISENGAGEMENT
              - CHAMPION_RISK
        factCategories:
          description: >-
            Optional public fact category filters. Supported values: MEMORY,
            RELATIONSHIP, CUSTOM.
          type: array
          items:
            type: string
            enum:
              - MEMORY
              - RELATIONSHIP
              - CUSTOM
        after:
          description: ISO 8601 datetime lower bound
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        before:
          description: ISO 8601 datetime upper bound
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        limit:
          description: Results per page (max 100)
          default: 50
          type: integer
          minimum: 1
          maximum: 100
        cursor:
          description: Pagination cursor from previous response
          type: string
      required:
        - customer
    ToolInput_outlit_get_fact:
      type: object
      properties:
        factId:
          type: string
          minLength: 1
          maxLength: 500
          description: Exact fact ID to retrieve
        include:
          description: >-
            Optional best-effort expansions. Use include=['evidence'] to request
            evidence when available; unsupported include values are ignored.
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 100
      required:
        - factId
    ToolInput_outlit_get_source:
      type: object
      properties:
        sourceType:
          type: string
          enum:
            - EMAIL
            - CALL
            - CALENDAR_EVENT
            - SUPPORT_TICKET
            - OPPORTUNITY
            - SLACK
            - PERSON_PROFILE
            - CRM
            - CRM_OPPORTUNITY
            - EXTRACTED
        sourceId:
          type: string
          minLength: 1
          maxLength: 500
        limit:
          description: Exact content segments per page (default 10, maximum 100).
          type: integer
          minimum: 1
          maximum: 100
        cursor:
          description: >-
            Opaque cursor returned by a previous exact lookup for the same
            source.
          type: string
          minLength: 1
          maxLength: 2000
      required:
        - sourceType
        - sourceId
    ToolInput_outlit_list_sources:
      type: object
      properties:
        sourceType:
          description: Generic source type to list.
          type: string
          enum:
            - EMAIL
            - CALL
            - CALENDAR_EVENT
            - SUPPORT_TICKET
            - OPPORTUNITY
            - SLACK
            - PERSON_PROFILE
            - CRM
            - CRM_OPPORTUNITY
        customer:
          description: Customer ID, domain, or name to scope source listing.
          type: string
          minLength: 1
          maxLength: 200
        after:
          description: ISO 8601 datetime lower bound.
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        before:
          description: ISO 8601 datetime upper bound.
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        participant:
          description: Participant email or name to filter source records.
          type: string
          minLength: 1
          maxLength: 500
        provider:
          description: Provider identifier such as gmail, gong, or google-calendar.
          type: string
          minLength: 1
          maxLength: 200
        hasTranscript:
          description: Filter call sources by transcript presence.
          type: boolean
        limit:
          description: Results per page.
          default: 50
          type: integer
          minimum: 1
          maximum: 100
        cursor:
          description: Pagination cursor.
          type: string
          minLength: 1
          maxLength: 2000
      additionalProperties: false
    ToolInput_outlit_search_customer_context:
      type: object
      properties:
        customer:
          description: Customer ID, domain, or name. Omit to search across all customers.
          anyOf:
            - type: string
              minLength: 1
              maxLength: 500
            - type: 'null'
        query:
          type: string
          minLength: 2
          maxLength: 2000
          description: Natural language query or topic to search for.
        topK:
          description: Maximum number of artifact results to return (default 20).
          type: integer
          minimum: 1
          maximum: 50
        after:
          description: ISO 8601 datetime lower bound
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        before:
          description: ISO 8601 datetime upper bound
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        sourceTypes:
          description: Optional generic source types to restrict the search to.
          type: array
          items:
            type: string
            enum:
              - EMAIL
              - CALL
              - CALENDAR_EVENT
              - SUPPORT_TICKET
              - OPPORTUNITY
              - SLACK
              - PERSON_PROFILE
              - CRM
              - CRM_OPPORTUNITY
      required:
        - query
      additionalProperties: false
    ToolInput_outlit_query:
      type: object
      properties:
        sql:
          type: string
          minLength: 1
          maxLength: 10000
          description: SQL SELECT query to execute
        limit:
          description: Max rows to return (default 1000, max 10000)
          default: 1000
          type: integer
          minimum: 1
          maximum: 10000
      required:
        - sql
    ToolInput_outlit_schema:
      type: object
      properties:
        table:
          description: Specific analytics view to describe. Omit to list all views.
          type: string
          enum:
            - activity
            - customers
            - users
            - revenue
    ToolInput_outlit_list_destinations:
      type: object
      properties: {}
      additionalProperties: false
    ToolInput_outlit_get_destination:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
      additionalProperties: false
    ToolInput_outlit_create_destination:
      type: object
      properties:
        type:
          type: string
          const: SLACK_CHANNEL
        channelId:
          type: string
          minLength: 1
          maxLength: 191
        label:
          type: string
          minLength: 1
          maxLength: 120
        enabled:
          default: true
          type: boolean
        isDefault:
          default: false
          type: boolean
      required:
        - type
        - channelId
        - label
      additionalProperties: false
    ToolInput_outlit_update_destination:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        type:
          type: string
          const: SLACK_CHANNEL
        label:
          type: string
          minLength: 1
          maxLength: 120
        isDefault:
          type: boolean
          const: true
      required:
        - id
        - type
      additionalProperties: false
    ToolInput_outlit_enable_destination:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
      additionalProperties: false
    ToolInput_outlit_disable_destination:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
      additionalProperties: false
    ToolInput_outlit_archive_destination:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
      additionalProperties: false
    ToolInput_outlit_submit_feedback:
      type: object
      properties:
        body:
          type: string
          minLength: 1
          maxLength: 20000
        area:
          type: string
          minLength: 1
          maxLength: 100
        context:
          type: object
          propertyNames:
            type: string
          additionalProperties: {}
      required:
        - body
      additionalProperties: false
    ToolInput_outlit_get_integration_capabilities:
      type: object
      properties:
        provider:
          type: string
          minLength: 1
          maxLength: 80
      additionalProperties: false
    ToolInput_outlit_begin_integration_setup:
      type: object
      properties:
        provider:
          type: string
          minLength: 1
          maxLength: 80
      required:
        - provider
      additionalProperties: false
    ToolInput_outlit_get_integration_setup_status:
      type: object
      properties:
        sessionId:
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - sessionId
      additionalProperties: false
    ToolInput_outlit_get_integration_status:
      type: object
      properties:
        provider:
          type: string
          enum:
            - salesforce
            - hubspot
            - attio
            - slack
            - google-calendar
            - google-mail
            - granola
            - gong
            - fireflies
            - ergo
            - pylon
            - stripe
            - mixpanel
            - posthog
            - supabase
            - clerk
            - autumn
      additionalProperties: false
    ToolInput_outlit_setup_integration:
      anyOf:
        - type: object
          properties:
            provider:
              type: string
              enum:
                - salesforce
                - hubspot
                - attio
            configuration:
              type: object
              properties:
                kind:
                  type: string
                  const: crm_mapping
                mappings:
                  minItems: 1
                  type: array
                  items:
                    type: object
                    properties:
                      pipelineId:
                        type: string
                        minLength: 1
                      pipelineName:
                        type: string
                      mappings:
                        type: array
                        items:
                          type: object
                          properties:
                            outlitStage:
                              type: string
                              enum:
                                - Created
                                - Quoting
                                - Negotiation
                                - Won
                                - Lost
                            crmStages:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                  name:
                                    type: string
                                required:
                                  - id
                                  - name
                                additionalProperties: false
                          required:
                            - outlitStage
                            - crmStages
                          additionalProperties: false
                    required:
                      - pipelineId
                      - pipelineName
                      - mappings
                    additionalProperties: false
                confirm:
                  type: boolean
                  const: true
              required:
                - kind
                - mappings
                - confirm
              additionalProperties: false
          required:
            - provider
          additionalProperties: false
        - type: object
          properties:
            provider:
              type: string
              enum:
                - slack
                - google-calendar
                - google-mail
                - gong
          required:
            - provider
          additionalProperties: false
        - type: object
          properties:
            provider:
              type: string
              const: stripe
            connectionMode:
              type: string
              const: oauth
          required:
            - provider
          additionalProperties: false
        - type: object
          properties:
            provider:
              type: string
              const: stripe
            connectionMode:
              type: string
              const: restricted_key
            credentials:
              type: object
              properties:
                apiKey:
                  type: string
                  minLength: 1
                  pattern: ^rk_.*
              required:
                - apiKey
              additionalProperties: false
          required:
            - provider
            - connectionMode
          additionalProperties: false
        - type: object
          properties:
            provider:
              type: string
              const: granola
            credentials:
              type: object
              properties:
                apiKey:
                  type: string
                  minLength: 1
                authScope:
                  default: personal
                  type: string
                  enum:
                    - personal
                    - enterprise
                enterpriseKeyAcknowledged:
                  default: false
                  type: boolean
              required:
                - apiKey
              additionalProperties: false
          required:
            - provider
          additionalProperties: false
        - type: object
          properties:
            provider:
              type: string
              const: ergo
            credentials:
              type: object
              properties:
                apiKey:
                  type: string
                  minLength: 1
              required:
                - apiKey
              additionalProperties: false
          required:
            - provider
          additionalProperties: false
        - type: object
          properties:
            provider:
              type: string
              const: fireflies
            credentials:
              type: object
              properties:
                apiKey:
                  type: string
                  minLength: 1
              required:
                - apiKey
              additionalProperties: false
          required:
            - provider
          additionalProperties: false
        - type: object
          properties:
            provider:
              type: string
              const: pylon
            credentials:
              type: object
              properties:
                apiToken:
                  type: string
                  minLength: 1
              required:
                - apiToken
              additionalProperties: false
          required:
            - provider
          additionalProperties: false
        - type: object
          properties:
            provider:
              type: string
              const: mixpanel
            credentials:
              type: object
              properties:
                username:
                  type: string
                  minLength: 1
                secret:
                  type: string
                  minLength: 1
                projectId:
                  type: string
                  minLength: 1
                  maxLength: 64
                region:
                  type: string
                  enum:
                    - us
                    - eu
                    - in
              required:
                - username
                - secret
                - projectId
                - region
              additionalProperties: false
            configuration:
              type: object
              properties:
                kind:
                  type: string
                  const: mixpanel_mapping
                mapping:
                  oneOf:
                    - type: object
                      properties:
                        mode:
                          type: string
                          const: group_key
                        groupKey:
                          type: string
                          minLength: 1
                      required:
                        - mode
                        - groupKey
                      additionalProperties: false
                    - type: object
                      properties:
                        mode:
                          type: string
                          const: event_property
                        propertyName:
                          type: string
                          minLength: 1
                      required:
                        - mode
                        - propertyName
                      additionalProperties: false
                    - type: object
                      properties:
                        mode:
                          type: string
                          const: email_domain
                      required:
                        - mode
                      additionalProperties: false
                confirm:
                  type: boolean
                  const: true
              required:
                - kind
                - mapping
                - confirm
              additionalProperties: false
          required:
            - provider
          additionalProperties: false
        - type: object
          properties:
            provider:
              type: string
              const: posthog
            credentials:
              type: object
              properties:
                apiKey:
                  type: string
                  minLength: 10
                  pattern: ^phx_.*
                region:
                  type: string
                  enum:
                    - us
                    - eu
                projectId:
                  type: string
                  minLength: 1
                  pattern: ^\d+$
              required:
                - apiKey
                - region
                - projectId
              additionalProperties: false
          required:
            - provider
          additionalProperties: false
        - type: object
          properties:
            provider:
              type: string
              enum:
                - clerk
                - supabase
          required:
            - provider
          additionalProperties: false
        - type: object
          properties:
            provider:
              type: string
              const: autumn
            credentials:
              type: object
              properties:
                apiKey:
                  type: string
                  minLength: 1
              required:
                - apiKey
              additionalProperties: false
          required:
            - provider
          additionalProperties: false
    ToolInput_outlit_get_customer_activation:
      type: object
      properties: {}
      additionalProperties: false
    ToolInput_outlit_preview_customer_activation:
      type: object
      properties:
        eventName:
          type: string
          minLength: 1
          maxLength: 191
        lookbackDays:
          default: 30
          type: integer
          minimum: 1
          maximum: 90
        exampleLimit:
          default: 10
          type: integer
          minimum: 1
          maximum: 20
      required:
        - eventName
      additionalProperties: false
    ToolInput_outlit_update_customer_activation:
      type: object
      properties:
        eventName:
          anyOf:
            - type: string
              minLength: 1
              maxLength: 191
            - type: 'null'
      required:
        - eventName
      additionalProperties: false
    ToolInput_outlit_get_workspace_settings:
      type: object
      properties: {}
      additionalProperties: false
    ToolInput_outlit_update_workspace_settings:
      type: object
      properties:
        defaultTimezone:
          type: string
          minLength: 1
        customerOwnership:
          type: object
          properties:
            defaultOwnerUserId:
              anyOf:
                - type: string
                  minLength: 1
                  maxLength: 191
                - type: 'null'
          required:
            - defaultOwnerUserId
          additionalProperties: false
      additionalProperties: false
    ToolInput_outlit_list_features:
      type: object
      properties:
        sourceKey:
          type: string
          pattern: ^metric_source_v1_[a-f0-9]{32}$
        weeks:
          default: 12
          type: integer
          minimum: 1
          maximum: 53
        candidateLimit:
          default: 100
          type: integer
          minimum: 1
          maximum: 100
      additionalProperties: false
    ToolInput_outlit_create_feature:
      type: object
      properties:
        sourceKey:
          type: string
          pattern: ^metric_source_v1_[a-f0-9]{32}$
        eventName:
          type: string
          minLength: 1
          maxLength: 191
        featureKey:
          type: string
          maxLength: 64
          pattern: ^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$
        name:
          type: string
          minLength: 1
          maxLength: 255
        propertyFilters:
          default: []
          maxItems: 5
          type: array
          items:
            oneOf:
              - type: object
                properties:
                  property:
                    type: string
                    minLength: 1
                    maxLength: 191
                  operator:
                    type: string
                    const: equals
                  value:
                    oneOf:
                      - type: object
                        properties:
                          type:
                            type: string
                            const: string
                          value:
                            type: string
                            maxLength: 191
                        required:
                          - type
                          - value
                        additionalProperties: false
                      - type: object
                        properties:
                          type:
                            type: string
                            const: number
                          value:
                            type: number
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                        required:
                          - type
                          - value
                        additionalProperties: false
                      - type: object
                        properties:
                          type:
                            type: string
                            const: boolean
                          value:
                            type: boolean
                        required:
                          - type
                          - value
                        additionalProperties: false
                required:
                  - property
                  - operator
                  - value
                additionalProperties: false
              - type: object
                properties:
                  property:
                    type: string
                    minLength: 1
                    maxLength: 191
                  operator:
                    type: string
                    const: exists
                required:
                  - property
                  - operator
                additionalProperties: false
      required:
        - sourceKey
        - eventName
        - featureKey
        - name
      additionalProperties: false
    ToolInput_outlit_archive_feature:
      type: object
      properties:
        id:
          type: string
          pattern: ^value_feature_v1_[a-f0-9]{32}$
        revision:
          type: string
          pattern: ^value_feature_revision_v1_[a-f0-9]{32}$
      required:
        - id
        - revision
      additionalProperties: false
    ToolInput_outlit_get_customer_features:
      type: object
      properties:
        customer:
          type: string
          minLength: 1
          maxLength: 500
        weeks:
          default: 12
          type: integer
          minimum: 1
          maximum: 53
        includeWeeklyUsage:
          default: false
          type: boolean
      required:
        - customer
      additionalProperties: false
    ToolInput_outlit_get_customer_credits:
      type: object
      properties:
        customer:
          type: string
          minLength: 1
          maxLength: 500
          description: Customer ID, domain, or exact name
      required:
        - customer
      additionalProperties: false
    ToolInput_outlit_list_attention_items:
      type: object
      properties:
        status:
          description: 'Attention lifecycle to list (default: open)'
          default: open
          type: string
          enum:
            - open
            - resolved
        customerId:
          description: Filter by exact customer ID
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        limit:
          description: 'Results per page (default: 25, max: 100)'
          default: 25
          type: integer
          minimum: 1
          maximum: 100
        cursor:
          description: Opaque cursor from a previous response with the same filters
          type: string
          minLength: 1
          maxLength: 2000
      additionalProperties: false
    ToolInput_outlit_get_attention_item:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Exact Attention item ID
      required:
        - id
      additionalProperties: false
    ToolInput_outlit_get_customer_identity:
      type: object
      properties:
        customerId:
          type: string
          minLength: 1
          maxLength: 191
      required:
        - customerId
      additionalProperties: false
    ToolInput_outlit_list_identity_merge_suggestions:
      type: object
      properties:
        customerId:
          type: string
          minLength: 1
          maxLength: 191
        suggestionId:
          type: string
          minLength: 1
          maxLength: 191
        cursor:
          type: string
          minLength: 1
          maxLength: 2000
        status:
          type: string
          enum:
            - suggested
            - processing
            - merged
            - rejected
        confidence:
          type: string
          enum:
            - HIGH
            - MEDIUM
            - LOW
        limit:
          default: 50
          type: integer
          minimum: 1
          maximum: 100
      additionalProperties: false
    ToolInput_outlit_reject_identity_merge_suggestion:
      type: object
      properties:
        suggestionId:
          type: string
          minLength: 1
          maxLength: 191
        reviewNotes:
          type: string
          maxLength: 10000
      required:
        - suggestionId
      additionalProperties: false
    ToolInput_outlit_merge_customers:
      type: object
      properties:
        survivingCustomerId:
          type: string
          minLength: 1
          maxLength: 191
        duplicateCustomerId:
          type: string
          minLength: 1
          maxLength: 191
        suggestionId:
          type: string
          minLength: 1
          maxLength: 191
          description: >-
            Eligible saved suggestion for this exact pair. Required if either
            record is INDIVIDUAL; optional for two COMPANY records.
        reviewNotes:
          type: string
          maxLength: 10000
        dryRun:
          default: true
          type: boolean
        previewToken:
          type: string
          minLength: 1
          maxLength: 4096
        requestId:
          type: string
          minLength: 1
          maxLength: 191
      required:
        - survivingCustomerId
        - duplicateCustomerId
      additionalProperties: false
    ToolInput_outlit_get_customer_merge_status:
      type: object
      properties:
        operationId:
          type: string
          minLength: 1
          maxLength: 191
      required:
        - operationId
      additionalProperties: false
    ToolInput_outlit_list_scoped_repairs:
      type: object
      properties:
        limit:
          default: 10
          type: integer
          minimum: 1
          maximum: 20
        cursor:
          type: string
          minLength: 1
          maxLength: 191
      additionalProperties: false
    ToolInput_outlit_preview_scoped_repair:
      type: object
      properties:
        findingId:
          type: string
          minLength: 1
          maxLength: 191
        expectedFingerprint:
          type: string
          minLength: 1
          maxLength: 191
        candidate:
          type: object
          properties:
            version:
              type: number
              const: 1
            action:
              type: string
              enum:
                - rehome_contact
                - rehome_crm_account
                - reattribute_stripe_customer
                - rehome_source_corpus
            organizationId:
              type: string
              minLength: 1
              maxLength: 191
            sourceCustomerId:
              type: string
              minLength: 1
              maxLength: 191
            targetCustomerId:
              type: string
              minLength: 1
              maxLength: 191
            evidenceRef:
              type: string
              minLength: 1
              maxLength: 191
            provenance:
              type: string
              const: exact_source_manifest
            manifest: {}
          required:
            - version
            - action
            - organizationId
            - sourceCustomerId
            - targetCustomerId
            - evidenceRef
            - provenance
            - manifest
          additionalProperties: false
      required:
        - findingId
        - expectedFingerprint
      additionalProperties: false
    ToolInput_outlit_execute_scoped_repair:
      type: object
      properties:
        findingId:
          type: string
          minLength: 1
          maxLength: 191
        planDigest:
          type: string
          pattern: ^[a-f0-9]{64}$
        reason:
          type: string
          minLength: 10
          maxLength: 2000
        resume:
          default: false
          type: boolean
      required:
        - findingId
        - planDigest
        - reason
      additionalProperties: false
    ToolInput_outlit_verify_scoped_repair:
      type: object
      properties:
        findingId:
          type: string
          minLength: 1
          maxLength: 191
      required:
        - findingId
      additionalProperties: false
    ToolOutput_outlit_list_customers:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                anyOf:
                  - type: string
                  - type: 'null'
              domain:
                anyOf:
                  - type: string
                  - type: 'null'
              billingStatus:
                type: string
                enum:
                  - NONE
                  - TRIALING
                  - PAYING
                  - PAST_DUE
                  - CHURNED
              activatedAt:
                anyOf:
                  - type: string
                  - type: 'null'
              firstSeenAt:
                anyOf:
                  - type: string
                  - type: 'null'
              lastActivityAt:
                anyOf:
                  - type: string
                  - type: 'null'
              contactCount:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              currentMrr:
                anyOf:
                  - type: number
                  - type: 'null'
                description: >-
                  Monthly recurring revenue as an integer amount in the billing
                  provider's units for the customer's currency, which this
                  result doesn't name. For USD, EUR, GBP and CAD this is cents:
                  divide by 100 (e.g. 1234500 is $12,345, USD). Other currencies
                  follow the provider's amount rules (Stripe's currency docs),
                  so don't assume a divisor for them. ARR is 12 × this value in
                  the same units. Null unless mrrCalculationStatus is
                  calculated.
              mrrCalculationStatus:
                type: string
                enum:
                  - calculated
                  - mixed_currency
                  - unavailable
              owner:
                anyOf:
                  - type: object
                    properties:
                      id:
                        type: string
                      email:
                        type: string
                      name:
                        type: string
                    required:
                      - id
                      - email
                      - name
                    additionalProperties: false
                  - type: 'null'
              daysSinceActivity:
                anyOf:
                  - type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  - type: 'null'
            required:
              - id
              - name
              - domain
              - billingStatus
              - activatedAt
              - firstSeenAt
              - lastActivityAt
              - contactCount
              - currentMrr
              - mrrCalculationStatus
              - owner
              - daysSinceActivity
            additionalProperties: false
        pagination:
          type: object
          properties:
            hasMore:
              type: boolean
            nextCursor:
              anyOf:
                - type: string
                - type: 'null'
            total:
              type: integer
              minimum: 0
              maximum: 9007199254740991
          required:
            - hasMore
            - nextCursor
            - total
          additionalProperties: false
      required:
        - items
        - pagination
      additionalProperties: false
      title: List customers
    ToolOutput_outlit_list_users:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              email:
                anyOf:
                  - type: string
                  - type: 'null'
              name:
                anyOf:
                  - type: string
                  - type: 'null'
              customerId:
                type: string
              customerName:
                anyOf:
                  - type: string
                  - type: 'null'
              customerDomain:
                anyOf:
                  - type: string
                  - type: 'null'
              journeyStage:
                type: string
                enum:
                  - DISCOVERED
                  - SIGNED_UP
                  - ACTIVATED
                  - ENGAGED
                  - INACTIVE
              lastActivityAt:
                anyOf:
                  - type: string
                  - type: 'null'
              daysSinceActivity:
                anyOf:
                  - type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  - type: 'null'
              relationshipRole:
                anyOf:
                  - type: string
                  - type: 'null'
              jobTitle:
                anyOf:
                  - type: string
                  - type: 'null'
              department:
                anyOf:
                  - type: string
                  - type: 'null'
              employmentStartDate:
                anyOf:
                  - type: string
                    pattern: ^\d{4}-\d{2}-\d{2}$
                  - type: 'null'
            required:
              - id
              - email
              - name
              - customerId
              - customerName
              - customerDomain
              - journeyStage
              - lastActivityAt
              - daysSinceActivity
              - relationshipRole
              - jobTitle
              - department
              - employmentStartDate
            additionalProperties: false
        pagination:
          type: object
          properties:
            hasMore:
              type: boolean
            nextCursor:
              anyOf:
                - type: string
                - type: 'null'
            total:
              type: integer
              minimum: 0
              maximum: 9007199254740991
          required:
            - hasMore
            - nextCursor
            - total
          additionalProperties: false
      required:
        - items
        - pagination
      additionalProperties: false
      title: List users
    ToolOutput_outlit_list_workspace_users:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              email:
                type: string
              name:
                type: string
              title:
                anyOf:
                  - type: string
                  - type: 'null'
              role:
                anyOf:
                  - type: string
                  - type: 'null'
              managerEmail:
                anyOf:
                  - type: string
                  - type: 'null'
              territory:
                anyOf:
                  - type: string
                  - type: 'null'
              linkedinUrl:
                anyOf:
                  - type: string
                  - type: 'null'
              ownedCustomerCount:
                type: integer
                minimum: 0
                maximum: 9007199254740991
            required:
              - id
              - email
              - name
              - title
              - role
              - managerEmail
              - territory
              - linkedinUrl
              - ownedCustomerCount
            additionalProperties: false
        pagination:
          type: object
          properties:
            hasMore:
              type: boolean
            nextCursor:
              anyOf:
                - type: string
                - type: 'null'
            total:
              type: integer
              minimum: 0
              maximum: 9007199254740991
          required:
            - hasMore
            - nextCursor
            - total
          additionalProperties: false
      required:
        - items
        - pagination
      additionalProperties: false
      title: List workspace users
    ToolOutput_outlit_get_customer:
      type: object
      properties:
        customer:
          type: object
          properties:
            id:
              type: string
            name:
              anyOf:
                - type: string
                - type: 'null'
            domain:
              anyOf:
                - type: string
                - type: 'null'
            billingStatus:
              type: string
              enum:
                - NONE
                - TRIALING
                - PAYING
                - PAST_DUE
                - CHURNED
            activatedAt:
              anyOf:
                - type: string
                - type: 'null'
            firstSeenAt:
              anyOf:
                - type: string
                - type: 'null'
            lastActivityAt:
              anyOf:
                - type: string
                - type: 'null'
            owner:
              anyOf:
                - type: object
                  properties:
                    id:
                      type: string
                    email:
                      type: string
                    name:
                      type: string
                  required:
                    - id
                    - email
                    - name
                  additionalProperties: false
                - type: 'null'
          required:
            - id
            - name
            - domain
            - billingStatus
            - activatedAt
            - firstSeenAt
            - lastActivityAt
            - owner
          additionalProperties: false
        users:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              email:
                anyOf:
                  - type: string
                  - type: 'null'
              name:
                anyOf:
                  - type: string
                  - type: 'null'
              journeyStage:
                type: string
                enum:
                  - DISCOVERED
                  - SIGNED_UP
                  - ACTIVATED
                  - ENGAGED
                  - INACTIVE
              lastActivityAt:
                anyOf:
                  - type: string
                  - type: 'null'
              relationshipRole:
                anyOf:
                  - type: string
                  - type: 'null'
              jobTitle:
                anyOf:
                  - type: string
                  - type: 'null'
              department:
                anyOf:
                  - type: string
                  - type: 'null'
              employmentStartDate:
                anyOf:
                  - type: string
                    pattern: ^\d{4}-\d{2}-\d{2}$
                  - type: 'null'
            required:
              - id
              - email
              - name
              - journeyStage
              - lastActivityAt
              - relationshipRole
              - jobTitle
              - department
              - employmentStartDate
            additionalProperties: false
        revenue:
          type: object
          properties:
            currentMrr:
              anyOf:
                - type: number
                - type: 'null'
              description: >-
                Monthly recurring revenue as an integer amount in the billing
                provider's units for the customer's currency, which this result
                doesn't name. For USD, EUR, GBP and CAD this is cents: divide by
                100 (e.g. 1234500 is $12,345, USD). Other currencies follow the
                provider's amount rules (Stripe's currency docs), so don't
                assume a divisor for them. ARR is 12 × this value in the same
                units. Null unless mrrCalculationStatus is calculated.
            mrrCalculationStatus:
              type: string
              enum:
                - calculated
                - mixed_currency
                - unavailable
            lifetimeRevenue:
              type: number
              description: >-
                Lifetime revenue in the billing provider's units for the
                currency it was billed in, like currentMrr: cents for USD, EUR,
                GBP and CAD, so divide by 100. Other currencies follow the
                provider's amount rules, so don't assume a divisor for them.
            activeSubscriptions:
              type: integer
              minimum: 0
              maximum: 9007199254740991
          required:
            - currentMrr
            - mrrCalculationStatus
            - lifetimeRevenue
            - activeSubscriptions
          additionalProperties: false
        recentTimeline:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
              title:
                anyOf:
                  - type: string
                  - type: 'null'
              contact:
                anyOf:
                  - type: string
                  - type: 'null'
              occurredAt:
                type: string
            required:
              - type
              - title
              - contact
              - occurredAt
            additionalProperties: false
        behaviorMetrics:
          type: object
          properties:
            activityCount:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            activeUsers:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            lastEmailAt:
              anyOf:
                - type: string
                - type: 'null'
            lastMeetingAt:
              anyOf:
                - type: string
                - type: 'null'
          required:
            - activityCount
            - activeUsers
            - lastEmailAt
            - lastMeetingAt
          additionalProperties: false
        enrichment:
          type: object
          properties:
            status:
              type: string
              enum:
                - MISSING
                - FRESH
                - STALE
                - FAILED
                - NO_MATCH
                - INPUT_CHANGED
            provider:
              anyOf:
                - type: string
                - type: 'null'
            providerEntityId:
              anyOf:
                - type: string
                - type: 'null'
            summary:
              anyOf:
                - type: object
                  properties:
                    name:
                      anyOf:
                        - type: string
                        - type: 'null'
                    domain:
                      anyOf:
                        - type: string
                        - type: 'null'
                    websiteUrl:
                      anyOf:
                        - type: string
                        - type: 'null'
                    description:
                      anyOf:
                        - type: string
                        - type: 'null'
                    logoUrl:
                      anyOf:
                        - type: string
                        - type: 'null'
                    linkedinUrl:
                      anyOf:
                        - type: string
                        - type: 'null'
                    yearFounded:
                      anyOf:
                        - type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                        - type: 'null'
                    companyType:
                      anyOf:
                        - type: string
                        - type: 'null'
                    employeeCountRange:
                      anyOf:
                        - type: string
                        - type: 'null'
                    headcount:
                      anyOf:
                        - type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                        - type: 'null'
                    industry:
                      anyOf:
                        - type: string
                        - type: 'null'
                    categories:
                      type: array
                      items:
                        type: string
                    markets:
                      type: array
                      items:
                        type: string
                    headquarters:
                      anyOf:
                        - type: string
                        - type: 'null'
                    fundingSummary:
                      anyOf:
                        - type: object
                          properties:
                            totalInvestmentUsd:
                              anyOf:
                                - type: number
                                - type: 'null'
                            lastRoundType:
                              anyOf:
                                - type: string
                                - type: 'null'
                            lastRoundAmountUsd:
                              anyOf:
                                - type: number
                                - type: 'null'
                            lastFundraiseDate:
                              anyOf:
                                - type: string
                                - type: 'null'
                            investors:
                              type: array
                              items:
                                type: string
                          required:
                            - totalInvestmentUsd
                            - lastRoundType
                            - lastRoundAmountUsd
                            - lastFundraiseDate
                            - investors
                          additionalProperties: false
                        - type: 'null'
                    hiringSummary:
                      anyOf:
                        - type: object
                          properties:
                            openingsCount:
                              anyOf:
                                - type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                - type: 'null'
                            recentTitles:
                              type: array
                              items:
                                type: string
                          required:
                            - openingsCount
                            - recentTitles
                          additionalProperties: false
                        - type: 'null'
                    followerSummary:
                      anyOf:
                        - type: object
                          properties:
                            count:
                              anyOf:
                                - type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                - type: 'null'
                            growth:
                              type: object
                              propertyNames:
                                type: string
                              additionalProperties:
                                anyOf:
                                  - type: number
                                  - type: 'null'
                          required:
                            - count
                            - growth
                          additionalProperties: false
                        - type: 'null'
                  additionalProperties: false
                - type: 'null'
            match:
              anyOf:
                - type: object
                  propertyNames:
                    type: string
                  additionalProperties: {}
                - type: 'null'
            lastSuccessfulRefreshAt:
              anyOf:
                - type: string
                - type: 'null'
            lastAttemptAt:
              anyOf:
                - type: string
                - type: 'null'
            expiresAt:
              anyOf:
                - type: string
                - type: 'null'
            error:
              anyOf:
                - type: object
                  properties:
                    class:
                      type: string
                    message:
                      type: string
                    retryable:
                      type: boolean
                  required:
                    - class
                    - message
                  additionalProperties: false
                - type: 'null'
          required:
            - status
            - provider
            - providerEntityId
            - summary
            - match
            - lastSuccessfulRefreshAt
            - lastAttemptAt
            - expiresAt
            - error
          additionalProperties: false
      required:
        - customer
      additionalProperties: false
      title: Get customer
    ToolOutput_outlit_get_customer_relationship:
      type: object
      properties:
        customer:
          type: object
          properties:
            id:
              type: string
            name:
              anyOf:
                - type: string
                - type: 'null'
            domain:
              anyOf:
                - type: string
                - type: 'null'
          required:
            - id
            - name
            - domain
          additionalProperties: false
        relationship:
          type: object
          properties:
            summary:
              anyOf:
                - type: string
                  minLength: 1
                  maxLength: 240
                - type: 'null'
            items:
              maxItems: 8
              type: array
              items:
                type: object
                properties:
                  category:
                    type: string
                    minLength: 1
                    maxLength: 120
                  statement:
                    type: string
                    minLength: 1
                    maxLength: 500
                  observedAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      - type: 'null'
                  sourceLabels:
                    maxItems: 4
                    type: array
                    items:
                      type: string
                      minLength: 1
                      maxLength: 100
                required:
                  - category
                  - statement
                  - observedAt
                  - sourceLabels
                additionalProperties: false
            updatedAt:
              anyOf:
                - type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                - type: 'null'
          required:
            - summary
            - items
            - updatedAt
          additionalProperties: false
      required:
        - customer
        - relationship
      additionalProperties: false
      title: Get customer relationship
    ToolOutput_outlit_assign_customer_owner:
      type: object
      properties:
        customerId:
          type: string
        ownerId:
          type: string
        previousOwnerId:
          anyOf:
            - type: string
            - type: 'null'
      required:
        - customerId
        - ownerId
        - previousOwnerId
      additionalProperties: false
      title: Assign customer owner
    ToolOutput_outlit_grant_customer_access:
      type: object
      properties:
        access:
          type: object
          properties:
            customerId:
              type: string
            userId:
              type: string
            role:
              type: string
              enum:
                - VIEWER
                - EDITOR
            grantedById:
              anyOf:
                - type: string
                - type: 'null'
          required:
            - customerId
            - userId
            - role
            - grantedById
          additionalProperties: false
      required:
        - access
      additionalProperties: false
      title: Grant customer access
    ToolOutput_outlit_update_customer_access:
      type: object
      properties:
        access:
          type: object
          properties:
            customerId:
              type: string
            userId:
              type: string
            role:
              type: string
              enum:
                - VIEWER
                - EDITOR
            grantedById:
              anyOf:
                - type: string
                - type: 'null'
          required:
            - customerId
            - userId
            - role
            - grantedById
          additionalProperties: false
      required:
        - access
      additionalProperties: false
      title: Update customer access
    ToolOutput_outlit_revoke_customer_access:
      type: object
      properties:
        customerId:
          type: string
        userId:
          type: string
      required:
        - customerId
        - userId
      additionalProperties: false
      title: Revoke customer access
    ToolOutput_outlit_get_timeline:
      type: object
      properties:
        events:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: >-
                  Stable event identifier. Pass as timeline_event eventId when
                  citing this event.
              eventType:
                type: string
              eventName:
                type: string
              channel:
                type: string
                enum:
                  - PRODUCT
                  - COMMUNICATION
                  - MEETING
                  - CRM
                  - BILLING
                  - SUPPORT
                  - IDENTITY
                  - DOCUMENT
                  - SYSTEM
              title:
                anyOf:
                  - type: string
                  - type: 'null'
              summary:
                anyOf:
                  - type: string
                  - type: 'null'
                description: >-
                  Bounded display summary, truncated past roughly 2 KB. Use
                  outlit_get_source on sourceType/sourceId for the full
                  underlying content.
              occurredAt:
                type: string
                format: date-time
                pattern: >-
                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
              contact:
                anyOf:
                  - type: string
                  - type: 'null'
              sourceType:
                anyOf:
                  - type: string
                  - type: 'null'
              sourceId:
                anyOf:
                  - type: string
                  - type: 'null'
              sourceRef:
                description: >-
                  Canonical source handle for this event, emitted only when
                  outlit_get_source can retrieve the underlying record; omitted
                  when the event is marked unreadable.
                type: object
                properties:
                  sourceType:
                    type: string
                  sourceId:
                    type: string
                required:
                  - sourceType
                  - sourceId
                additionalProperties: false
              unreadable:
                description: >-
                  Present only when the event's underlying source record cannot
                  be retrieved via outlit_get_source. Do not retry source
                  lookups for this event.
                type: boolean
                const: true
              unreadableReason:
                description: >-
                  Why the event's source is unreadable, e.g. unresolved_source
                  or ambiguous_source.
                type: string
              metadata:
                description: >-
                  Raw event properties. Present only when the request set
                  includeMetadata:true.
                type: object
                propertyNames:
                  type: string
                additionalProperties: {}
            required:
              - id
              - eventType
              - eventName
              - channel
              - title
              - summary
              - occurredAt
              - contact
              - sourceType
              - sourceId
            additionalProperties: false
        pagination:
          type: object
          properties:
            hasMore:
              type: boolean
            nextCursor:
              anyOf:
                - type: string
                - type: 'null'
            effectiveLimit:
              type: integer
              minimum: 1
              maximum: 9007199254740991
              description: >-
                The maximum number of events a page of this response can
                contain. Responses can hold fewer events than requested when
                hosted response-size limits apply; callers should rely on
                pagination.hasMore/nextCursor rather than event count to detect
                truncation.
          required:
            - hasMore
            - nextCursor
            - effectiveLimit
          additionalProperties: false
        product:
          description: >-
            Present when the request's channels include PRODUCT. Weekly product
            usage aggregate for the requested window: value-feature event counts
            and distinct active users per UTC week, plus the window's top
            value-feature event names. Individual product events appear in
            `events` only when productDetail is "material" or "raw".
          type: object
          properties:
            windowStartAt:
              type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
              description: >-
                Start of the aggregate coverage window: the UTC week containing
                the requested start (or the earliest retained week).
            windowEndAt:
              type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
              description: End of the aggregate coverage window (the request end bound)
            weeklyBuckets:
              type: array
              items:
                type: object
                properties:
                  weekStartAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    description: Start of the bucket's UTC week (Monday 00:00:00Z)
                  events:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                    description: >-
                      Events in this week matching the organization's configured
                      value features
                  activeUsers:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                    description: Distinct users with product activity this week
                required:
                  - weekStartAt
                  - events
                  - activeUsers
                additionalProperties: false
              description: UTC week buckets covering the requested window, oldest first
            topEventNames:
              type: array
              items:
                type: object
                properties:
                  eventName:
                    type: string
                  events:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                required:
                  - eventName
                  - events
                additionalProperties: false
              description: >-
                Most frequent configured value-feature event names across the
                window
          required:
            - windowStartAt
            - windowEndAt
            - weeklyBuckets
            - topEventNames
          additionalProperties: false
        productUnavailable:
          description: >-
            Present only when channels included PRODUCT but the weekly usage
            aggregate could not be computed. Report product usage as unavailable
            — never as zero or absent usage. When configured value-feature names
            are still known, material product events are returned in `events`
            instead of the aggregate.
          type: object
          properties:
            reason:
              type: string
              description: >-
                Machine-readable reason the usage aggregate could not be
                computed
          required:
            - reason
          additionalProperties: false
      required:
        - events
        - pagination
      additionalProperties: false
      title: Get timeline
    ToolOutput_outlit_list_facts:
      type: object
      properties:
        customer:
          type: object
          properties:
            id:
              type: string
            name:
              anyOf:
                - type: string
                - type: 'null'
            domain:
              anyOf:
                - type: string
                - type: 'null'
          required:
            - id
            - name
            - domain
          additionalProperties: false
        facts:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                minLength: 1
                maxLength: 500
              assertion:
                type: string
                minLength: 1
                maxLength: 20000
              reasoning:
                anyOf:
                  - type: string
                    maxLength: 20000
                  - type: 'null'
              factType:
                type: string
                minLength: 1
                maxLength: 200
              factCategory:
                type: string
                minLength: 1
                maxLength: 200
              status:
                type: string
                enum:
                  - ACTIVE
                  - ACKNOWLEDGED
                  - RESOLVED
                  - SNOOZED
                  - CANDIDATE
              confidence:
                type: number
                minimum: 0
                maximum: 1
              priority:
                anyOf:
                  - type: string
                    maxLength: 100
                  - type: 'null'
              occurredAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  - type: 'null'
              detectedAt:
                type: string
                format: date-time
                pattern: >-
                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
              validFrom:
                type: string
                format: date-time
                pattern: >-
                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
              validUntil:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  - type: 'null'
              linkedSourceRef:
                anyOf:
                  - type: object
                    properties:
                      sourceType:
                        type: string
                        enum:
                          - EMAIL
                          - CALL
                          - CALENDAR_EVENT
                          - SUPPORT_TICKET
                          - OPPORTUNITY
                          - SLACK
                          - PERSON_PROFILE
                      sourceId:
                        type: string
                        minLength: 1
                        maxLength: 500
                      occurredAt:
                        anyOf:
                          - type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                          - type: 'null'
                      permalink:
                        anyOf:
                          - type: string
                            maxLength: 2000
                          - type: 'null'
                    required:
                      - sourceType
                      - sourceId
                      - occurredAt
                      - permalink
                    additionalProperties: false
                  - type: 'null'
              sourceMetadata:
                anyOf:
                  - type: object
                    properties:
                      sourceType:
                        anyOf:
                          - type: string
                            enum:
                              - EMAIL
                              - CALL
                              - CALENDAR_EVENT
                              - SUPPORT_TICKET
                              - OPPORTUNITY
                              - SLACK
                              - PERSON_PROFILE
                          - type: 'null'
                      sourceId:
                        anyOf:
                          - type: string
                            maxLength: 500
                          - type: 'null'
                      sourceOccurredAt:
                        anyOf:
                          - type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                          - type: 'null'
                      sourceQuote:
                        anyOf:
                          - type: string
                            maxLength: 20000
                          - type: 'null'
                      permalink:
                        anyOf:
                          - type: string
                            maxLength: 2000
                          - type: 'null'
                    required:
                      - sourceType
                      - sourceId
                      - sourceOccurredAt
                      - sourceQuote
                      - permalink
                    additionalProperties: false
                  - type: 'null'
              evidenceCount:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              metricName:
                anyOf:
                  - type: string
                    maxLength: 200
                  - type: 'null'
              metricValue:
                anyOf:
                  - type: number
                  - type: 'null'
              metricPreviousValue:
                anyOf:
                  - type: number
                  - type: 'null'
              metricDelta:
                anyOf:
                  - type: number
                  - type: 'null'
              metricUnit:
                anyOf:
                  - type: string
                    maxLength: 100
                  - type: 'null'
              periodStart:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  - type: 'null'
              periodEnd:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  - type: 'null'
              changePointDate:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  - type: 'null'
              occurrenceCount:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              lastDetectedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  - type: 'null'
              severity:
                anyOf:
                  - type: string
                    maxLength: 100
                  - type: 'null'
              evidence:
                anyOf:
                  - type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          maxLength: 500
                        sourceType:
                          anyOf:
                            - type: string
                              enum:
                                - EMAIL
                                - CALL
                                - CALENDAR_EVENT
                                - SUPPORT_TICKET
                                - OPPORTUNITY
                                - SLACK
                                - PERSON_PROFILE
                            - type: 'null'
                        sourceId:
                          anyOf:
                            - type: string
                              maxLength: 500
                            - type: 'null'
                        excerpt:
                          anyOf:
                            - type: string
                              maxLength: 20000
                            - type: 'null'
                        metadata:
                          anyOf:
                            - type: object
                              propertyNames:
                                type: string
                              additionalProperties: {}
                            - type: 'null'
                      required:
                        - id
                        - sourceType
                        - sourceId
                        - excerpt
                        - metadata
                      additionalProperties: false
                  - type: 'null'
            required:
              - id
              - assertion
              - reasoning
              - factType
              - factCategory
              - status
              - confidence
              - priority
              - occurredAt
              - detectedAt
              - validFrom
              - validUntil
              - evidenceCount
              - metricName
              - metricValue
              - metricPreviousValue
              - metricDelta
              - metricUnit
              - periodStart
              - periodEnd
              - changePointDate
              - occurrenceCount
              - lastDetectedAt
              - severity
            additionalProperties: false
        pagination:
          type: object
          properties:
            hasMore:
              type: boolean
            nextCursor:
              anyOf:
                - type: string
                - type: 'null'
          required:
            - hasMore
            - nextCursor
          additionalProperties: false
      required:
        - customer
        - facts
        - pagination
      additionalProperties: false
      title: List facts
    ToolOutput_outlit_get_fact:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 500
        assertion:
          type: string
          minLength: 1
          maxLength: 20000
        reasoning:
          anyOf:
            - type: string
              maxLength: 20000
            - type: 'null'
        factType:
          type: string
          minLength: 1
          maxLength: 200
        factCategory:
          type: string
          minLength: 1
          maxLength: 200
        status:
          type: string
          enum:
            - ACTIVE
            - ACKNOWLEDGED
            - RESOLVED
            - SNOOZED
            - CANDIDATE
        confidence:
          type: number
          minimum: 0
          maximum: 1
        priority:
          anyOf:
            - type: string
              maxLength: 100
            - type: 'null'
        occurredAt:
          anyOf:
            - type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
            - type: 'null'
        detectedAt:
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        validFrom:
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        validUntil:
          anyOf:
            - type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
            - type: 'null'
        linkedSourceRef:
          anyOf:
            - type: object
              properties:
                sourceType:
                  type: string
                  enum:
                    - EMAIL
                    - CALL
                    - CALENDAR_EVENT
                    - SUPPORT_TICKET
                    - OPPORTUNITY
                    - SLACK
                    - PERSON_PROFILE
                sourceId:
                  type: string
                  minLength: 1
                  maxLength: 500
                occurredAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                permalink:
                  anyOf:
                    - type: string
                      maxLength: 2000
                    - type: 'null'
              required:
                - sourceType
                - sourceId
                - occurredAt
                - permalink
              additionalProperties: false
            - type: 'null'
        sourceMetadata:
          anyOf:
            - type: object
              properties:
                sourceType:
                  anyOf:
                    - type: string
                      enum:
                        - EMAIL
                        - CALL
                        - CALENDAR_EVENT
                        - SUPPORT_TICKET
                        - OPPORTUNITY
                        - SLACK
                        - PERSON_PROFILE
                    - type: 'null'
                sourceId:
                  anyOf:
                    - type: string
                      maxLength: 500
                    - type: 'null'
                sourceOccurredAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                sourceQuote:
                  anyOf:
                    - type: string
                      maxLength: 20000
                    - type: 'null'
                permalink:
                  anyOf:
                    - type: string
                      maxLength: 2000
                    - type: 'null'
              required:
                - sourceType
                - sourceId
                - sourceOccurredAt
                - sourceQuote
                - permalink
              additionalProperties: false
            - type: 'null'
        evidenceCount:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        metricName:
          anyOf:
            - type: string
              maxLength: 200
            - type: 'null'
        metricValue:
          anyOf:
            - type: number
            - type: 'null'
        metricPreviousValue:
          anyOf:
            - type: number
            - type: 'null'
        metricDelta:
          anyOf:
            - type: number
            - type: 'null'
        metricUnit:
          anyOf:
            - type: string
              maxLength: 100
            - type: 'null'
        periodStart:
          anyOf:
            - type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
            - type: 'null'
        periodEnd:
          anyOf:
            - type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
            - type: 'null'
        changePointDate:
          anyOf:
            - type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
            - type: 'null'
        occurrenceCount:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        lastDetectedAt:
          anyOf:
            - type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
            - type: 'null'
        severity:
          anyOf:
            - type: string
              maxLength: 100
            - type: 'null'
        evidence:
          anyOf:
            - type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    maxLength: 500
                  sourceType:
                    anyOf:
                      - type: string
                        enum:
                          - EMAIL
                          - CALL
                          - CALENDAR_EVENT
                          - SUPPORT_TICKET
                          - OPPORTUNITY
                          - SLACK
                          - PERSON_PROFILE
                      - type: 'null'
                  sourceId:
                    anyOf:
                      - type: string
                        maxLength: 500
                      - type: 'null'
                  excerpt:
                    anyOf:
                      - type: string
                        maxLength: 20000
                      - type: 'null'
                  metadata:
                    anyOf:
                      - type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                      - type: 'null'
                required:
                  - id
                  - sourceType
                  - sourceId
                  - excerpt
                  - metadata
                additionalProperties: false
            - type: 'null'
      required:
        - id
        - assertion
        - reasoning
        - factType
        - factCategory
        - status
        - confidence
        - priority
        - occurredAt
        - detectedAt
        - validFrom
        - validUntil
        - evidenceCount
        - metricName
        - metricValue
        - metricPreviousValue
        - metricDelta
        - metricUnit
        - periodStart
        - periodEnd
        - changePointDate
        - occurrenceCount
        - lastDetectedAt
        - severity
      additionalProperties: false
      title: Get fact
    ToolOutput_outlit_get_source:
      type: object
      properties:
        sourceType:
          type: string
          enum:
            - EMAIL
            - CALL
            - CALENDAR_EVENT
            - SUPPORT_TICKET
            - OPPORTUNITY
            - SLACK
            - PERSON_PROFILE
        sourceId:
          type: string
          minLength: 1
          maxLength: 500
        occurredAt:
          anyOf:
            - type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
            - type: 'null'
        title:
          anyOf:
            - type: string
              maxLength: 1000
            - type: 'null'
        summary:
          anyOf:
            - type: string
              maxLength: 20000
            - type: 'null'
        permalink:
          anyOf:
            - type: string
              maxLength: 2000
            - type: 'null'
        provider:
          anyOf:
            - type: string
              maxLength: 200
            - type: 'null'
        customer:
          anyOf:
            - type: object
              properties:
                id:
                  type: string
                  minLength: 1
                  maxLength: 500
                name:
                  type: string
                  minLength: 1
                  maxLength: 500
                domain:
                  type: string
                  minLength: 1
                  maxLength: 500
              required:
                - id
                - name
                - domain
              additionalProperties: false
            - type: 'null'
        participants:
          type: array
          items:
            type: object
            properties:
              email:
                anyOf:
                  - type: string
                    format: email
                    pattern: >-
                      ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                  - type: 'null'
              name:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: 'null'
              role:
                type: string
                maxLength: 100
              affiliation:
                anyOf:
                  - type: string
                    enum:
                      - internal
                      - external
                      - unknown
                  - type: 'null'
              resolvedUserId:
                anyOf:
                  - type: string
                    maxLength: 500
                  - type: 'null'
            required:
              - email
              - name
              - role
              - affiliation
              - resolvedUserId
            additionalProperties: false
        record:
          type: object
          propertyNames:
            type: string
          additionalProperties: {}
        contentPage:
          type: object
          properties:
            sourceType:
              type: string
              enum:
                - EMAIL
                - CALL
                - CALENDAR_EVENT
                - SUPPORT_TICKET
                - OPPORTUNITY
                - SLACK
                - PERSON_PROFILE
            sourceId:
              type: string
              minLength: 1
              maxLength: 500
            contentKind:
              type: string
              enum:
                - email_body
                - call_transcript
                - support_thread
                - slack_thread
            segments:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    minLength: 1
                    maxLength: 1000
                  occurredAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  authorLabel:
                    type: string
                    maxLength: 500
                  text:
                    type: string
                required:
                  - id
                  - text
                additionalProperties: false
            page:
              type: object
              properties:
                returned:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                hasMore:
                  type: boolean
                nextCursor:
                  anyOf:
                    - type: string
                      maxLength: 2000
                    - type: 'null'
              required:
                - returned
                - hasMore
                - nextCursor
              additionalProperties: false
            completeness:
              type: object
              properties:
                status:
                  type: string
                  enum:
                    - complete
                    - partial
                    - unavailable
                reason:
                  type: string
                  maxLength: 1000
                omittedFields:
                  type: array
                  items:
                    type: string
                    maxLength: 500
              required:
                - status
                - omittedFields
              additionalProperties: false
          required:
            - sourceType
            - sourceId
            - contentKind
            - segments
            - page
            - completeness
          additionalProperties: false
      required:
        - sourceType
        - sourceId
        - occurredAt
        - title
        - summary
        - permalink
        - provider
        - customer
        - participants
        - record
      additionalProperties: false
      title: Get source
    ToolOutput_outlit_list_sources:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            properties:
              sourceType:
                type: string
                enum:
                  - EMAIL
                  - CALL
                  - CALENDAR_EVENT
                  - SUPPORT_TICKET
                  - OPPORTUNITY
                  - SLACK
                  - PERSON_PROFILE
              sourceId:
                type: string
                minLength: 1
                maxLength: 500
              occurredAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  - type: 'null'
              title:
                anyOf:
                  - type: string
                    maxLength: 1000
                  - type: 'null'
              summary:
                anyOf:
                  - type: string
                    maxLength: 20000
                  - type: 'null'
              permalink:
                anyOf:
                  - type: string
                    maxLength: 2000
                  - type: 'null'
              provider:
                anyOf:
                  - type: string
                    maxLength: 200
                  - type: 'null'
              customer:
                anyOf:
                  - type: object
                    properties:
                      id:
                        type: string
                        minLength: 1
                        maxLength: 500
                      name:
                        type: string
                        minLength: 1
                        maxLength: 500
                      domain:
                        type: string
                        minLength: 1
                        maxLength: 500
                    required:
                      - id
                      - name
                      - domain
                    additionalProperties: false
                  - type: 'null'
              participants:
                type: array
                items:
                  type: object
                  properties:
                    email:
                      anyOf:
                        - type: string
                          format: email
                          pattern: >-
                            ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                        - type: 'null'
                    name:
                      anyOf:
                        - type: string
                          maxLength: 500
                        - type: 'null'
                    role:
                      type: string
                      maxLength: 100
                    affiliation:
                      anyOf:
                        - type: string
                          enum:
                            - internal
                            - external
                            - unknown
                        - type: 'null'
                    resolvedUserId:
                      anyOf:
                        - type: string
                          maxLength: 500
                        - type: 'null'
                  required:
                    - email
                    - name
                    - role
                    - affiliation
                    - resolvedUserId
                  additionalProperties: false
              record:
                type: object
                propertyNames:
                  type: string
                additionalProperties: {}
              contentPage:
                type: object
                properties:
                  sourceType:
                    type: string
                    enum:
                      - EMAIL
                      - CALL
                      - CALENDAR_EVENT
                      - SUPPORT_TICKET
                      - OPPORTUNITY
                      - SLACK
                      - PERSON_PROFILE
                  sourceId:
                    type: string
                    minLength: 1
                    maxLength: 500
                  contentKind:
                    type: string
                    enum:
                      - email_body
                      - call_transcript
                      - support_thread
                      - slack_thread
                  segments:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          minLength: 1
                          maxLength: 1000
                        occurredAt:
                          type: string
                          format: date-time
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                        authorLabel:
                          type: string
                          maxLength: 500
                        text:
                          type: string
                      required:
                        - id
                        - text
                      additionalProperties: false
                  page:
                    type: object
                    properties:
                      returned:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      hasMore:
                        type: boolean
                      nextCursor:
                        anyOf:
                          - type: string
                            maxLength: 2000
                          - type: 'null'
                    required:
                      - returned
                      - hasMore
                      - nextCursor
                    additionalProperties: false
                  completeness:
                    type: object
                    properties:
                      status:
                        type: string
                        enum:
                          - complete
                          - partial
                          - unavailable
                      reason:
                        type: string
                        maxLength: 1000
                      omittedFields:
                        type: array
                        items:
                          type: string
                          maxLength: 500
                    required:
                      - status
                      - omittedFields
                    additionalProperties: false
                required:
                  - sourceType
                  - sourceId
                  - contentKind
                  - segments
                  - page
                  - completeness
                additionalProperties: false
            required:
              - sourceType
              - sourceId
              - occurredAt
              - title
              - summary
              - permalink
              - provider
              - customer
              - participants
              - record
            additionalProperties: false
        pagination:
          type: object
          properties:
            hasMore:
              type: boolean
            nextCursor:
              anyOf:
                - type: string
                - type: 'null'
          required:
            - hasMore
            - nextCursor
          additionalProperties: false
      required:
        - items
        - pagination
      additionalProperties: false
      title: List sources
    ToolOutput_outlit_search_customer_context:
      type: object
      properties:
        customer:
          anyOf:
            - type: object
              properties:
                id:
                  type: string
                name:
                  anyOf:
                    - type: string
                    - type: 'null'
                domain:
                  anyOf:
                    - type: string
                    - type: 'null'
              required:
                - id
                - name
                - domain
              additionalProperties: false
            - type: 'null'
        results:
          type: array
          items:
            oneOf:
              - type: object
                properties:
                  kind:
                    type: string
                    const: fact
                  score:
                    type: number
                  customer:
                    description: >-
                      The customer this result belongs to. Null when it can't be
                      attributed to exactly one customer the caller can read.
                    anyOf:
                      - type: object
                        properties:
                          id:
                            type: string
                          name:
                            anyOf:
                              - type: string
                              - type: 'null'
                          domain:
                            anyOf:
                              - type: string
                              - type: 'null'
                        required:
                          - id
                          - name
                          - domain
                        additionalProperties: false
                      - type: 'null'
                  matchCount:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  matches:
                    maxItems: 2
                    type: array
                    items:
                      type: object
                      properties:
                        text:
                          type: string
                        occurredAt:
                          type: string
                          format: date-time
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      required:
                        - text
                      additionalProperties: false
                  fact:
                    type: object
                    properties:
                      id:
                        type: string
                        minLength: 1
                        maxLength: 500
                      assertion:
                        type: string
                        minLength: 1
                        maxLength: 20000
                      reasoning:
                        anyOf:
                          - type: string
                            maxLength: 20000
                          - type: 'null'
                      factType:
                        type: string
                        minLength: 1
                        maxLength: 200
                      factCategory:
                        type: string
                        minLength: 1
                        maxLength: 200
                      status:
                        type: string
                        enum:
                          - ACTIVE
                          - ACKNOWLEDGED
                          - RESOLVED
                          - SNOOZED
                          - CANDIDATE
                      confidence:
                        type: number
                        minimum: 0
                        maximum: 1
                      priority:
                        anyOf:
                          - type: string
                            maxLength: 100
                          - type: 'null'
                      occurredAt:
                        anyOf:
                          - type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                          - type: 'null'
                      detectedAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      validFrom:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      validUntil:
                        anyOf:
                          - type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                          - type: 'null'
                      linkedSourceRef:
                        anyOf:
                          - type: object
                            properties:
                              sourceType:
                                type: string
                                enum:
                                  - EMAIL
                                  - CALL
                                  - CALENDAR_EVENT
                                  - SUPPORT_TICKET
                                  - OPPORTUNITY
                                  - SLACK
                                  - PERSON_PROFILE
                              sourceId:
                                type: string
                                minLength: 1
                                maxLength: 500
                              occurredAt:
                                anyOf:
                                  - type: string
                                    format: date-time
                                    pattern: >-
                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                                  - type: 'null'
                              permalink:
                                anyOf:
                                  - type: string
                                    maxLength: 2000
                                  - type: 'null'
                            required:
                              - sourceType
                              - sourceId
                              - occurredAt
                              - permalink
                            additionalProperties: false
                          - type: 'null'
                      sourceMetadata:
                        anyOf:
                          - type: object
                            properties:
                              sourceType:
                                anyOf:
                                  - type: string
                                    enum:
                                      - EMAIL
                                      - CALL
                                      - CALENDAR_EVENT
                                      - SUPPORT_TICKET
                                      - OPPORTUNITY
                                      - SLACK
                                      - PERSON_PROFILE
                                  - type: 'null'
                              sourceId:
                                anyOf:
                                  - type: string
                                    maxLength: 500
                                  - type: 'null'
                              sourceOccurredAt:
                                anyOf:
                                  - type: string
                                    format: date-time
                                    pattern: >-
                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                                  - type: 'null'
                              sourceQuote:
                                anyOf:
                                  - type: string
                                    maxLength: 20000
                                  - type: 'null'
                              permalink:
                                anyOf:
                                  - type: string
                                    maxLength: 2000
                                  - type: 'null'
                            required:
                              - sourceType
                              - sourceId
                              - sourceOccurredAt
                              - sourceQuote
                              - permalink
                            additionalProperties: false
                          - type: 'null'
                      evidenceCount:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      metricName:
                        anyOf:
                          - type: string
                            maxLength: 200
                          - type: 'null'
                      metricValue:
                        anyOf:
                          - type: number
                          - type: 'null'
                      metricPreviousValue:
                        anyOf:
                          - type: number
                          - type: 'null'
                      metricDelta:
                        anyOf:
                          - type: number
                          - type: 'null'
                      metricUnit:
                        anyOf:
                          - type: string
                            maxLength: 100
                          - type: 'null'
                      periodStart:
                        anyOf:
                          - type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                          - type: 'null'
                      periodEnd:
                        anyOf:
                          - type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                          - type: 'null'
                      changePointDate:
                        anyOf:
                          - type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                          - type: 'null'
                      occurrenceCount:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      lastDetectedAt:
                        anyOf:
                          - type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                          - type: 'null'
                      severity:
                        anyOf:
                          - type: string
                            maxLength: 100
                          - type: 'null'
                      evidence:
                        anyOf:
                          - type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                  maxLength: 500
                                sourceType:
                                  anyOf:
                                    - type: string
                                      enum:
                                        - EMAIL
                                        - CALL
                                        - CALENDAR_EVENT
                                        - SUPPORT_TICKET
                                        - OPPORTUNITY
                                        - SLACK
                                        - PERSON_PROFILE
                                    - type: 'null'
                                sourceId:
                                  anyOf:
                                    - type: string
                                      maxLength: 500
                                    - type: 'null'
                                excerpt:
                                  anyOf:
                                    - type: string
                                      maxLength: 20000
                                    - type: 'null'
                                metadata:
                                  anyOf:
                                    - type: object
                                      propertyNames:
                                        type: string
                                      additionalProperties: {}
                                    - type: 'null'
                              required:
                                - id
                                - sourceType
                                - sourceId
                                - excerpt
                                - metadata
                              additionalProperties: false
                          - type: 'null'
                    required:
                      - id
                      - assertion
                      - reasoning
                      - factType
                      - factCategory
                      - status
                      - confidence
                      - priority
                      - occurredAt
                      - detectedAt
                      - validFrom
                      - validUntil
                      - evidenceCount
                      - metricName
                      - metricValue
                      - metricPreviousValue
                      - metricDelta
                      - metricUnit
                      - periodStart
                      - periodEnd
                      - changePointDate
                      - occurrenceCount
                      - lastDetectedAt
                      - severity
                    additionalProperties: false
                required:
                  - kind
                  - score
                  - matchCount
                  - matches
                  - fact
                additionalProperties: false
              - type: object
                properties:
                  kind:
                    type: string
                    const: source
                  score:
                    type: number
                  sourceType:
                    type: string
                    enum:
                      - EMAIL
                      - CALL
                      - CALENDAR_EVENT
                      - SUPPORT_TICKET
                      - OPPORTUNITY
                      - SLACK
                      - PERSON_PROFILE
                  sourceId:
                    type: string
                  customer:
                    description: >-
                      The customer this result belongs to. Null when it can't be
                      attributed to exactly one customer the caller can read.
                    anyOf:
                      - type: object
                        properties:
                          id:
                            type: string
                          name:
                            anyOf:
                              - type: string
                              - type: 'null'
                          domain:
                            anyOf:
                              - type: string
                              - type: 'null'
                        required:
                          - id
                          - name
                          - domain
                        additionalProperties: false
                      - type: 'null'
                  occurredAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      - type: 'null'
                  title:
                    anyOf:
                      - type: string
                      - type: 'null'
                  permalink:
                    anyOf:
                      - type: string
                      - type: 'null'
                  matchCount:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  matches:
                    maxItems: 2
                    type: array
                    items:
                      type: object
                      properties:
                        text:
                          type: string
                        occurredAt:
                          type: string
                          format: date-time
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      required:
                        - text
                      additionalProperties: false
                  context:
                    type: object
                    properties:
                      text:
                        type: string
                      sourceRef:
                        type: object
                        properties:
                          sourceType:
                            type: string
                            const: SLACK
                          sourceId:
                            type: string
                        required:
                          - sourceType
                          - sourceId
                        additionalProperties: false
                    required:
                      - text
                      - sourceRef
                    additionalProperties: false
                required:
                  - kind
                  - score
                  - sourceType
                  - sourceId
                  - occurredAt
                  - title
                  - permalink
                  - matchCount
                  - matches
                additionalProperties: false
      required:
        - customer
        - results
      additionalProperties: false
      title: Search customer context
    ToolOutput_outlit_query:
      type: object
      properties:
        success:
          type: boolean
          const: true
        data:
          type: array
          items:
            type: object
            propertyNames:
              type: string
            additionalProperties: {}
        metadata:
          type: object
          properties:
            rowsReturned:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            executionTimeMs:
              type: number
              minimum: 0
            truncated:
              type: boolean
          required:
            - rowsReturned
            - executionTimeMs
            - truncated
          additionalProperties: false
      required:
        - success
        - data
        - metadata
      additionalProperties: false
      title: Query analytics
    ToolOutput_outlit_schema:
      anyOf:
        - type: object
          properties:
            name:
              type: string
              enum:
                - activity
                - customers
                - users
                - revenue
            description:
              type: string
            columns:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                  type:
                    type: string
                  description:
                    type: string
                required:
                  - name
                  - type
                  - description
                additionalProperties: false
            exampleQueries:
              type: array
              items:
                type: string
          required:
            - name
            - description
            - columns
            - exampleQueries
          additionalProperties: false
        - type: object
          properties:
            views:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                    enum:
                      - activity
                      - customers
                      - users
                      - revenue
                  description:
                    type: string
                  columns:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                        type:
                          type: string
                        description:
                          type: string
                      required:
                        - name
                        - type
                        - description
                      additionalProperties: false
                  exampleQueries:
                    type: array
                    items:
                      type: string
                required:
                  - name
                  - description
                  - columns
                  - exampleQueries
                additionalProperties: false
            tables:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                    enum:
                      - activity
                      - customers
                      - users
                      - revenue
                  description:
                    type: string
                  columns:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                        type:
                          type: string
                        description:
                          type: string
                      required:
                        - name
                        - type
                        - description
                      additionalProperties: false
                  exampleQueries:
                    type: array
                    items:
                      type: string
                required:
                  - name
                  - description
                  - columns
                  - exampleQueries
                additionalProperties: false
          required:
            - views
            - tables
          additionalProperties: false
      title: Inspect analytics schema
    ToolOutput_outlit_list_destinations:
      type: object
      properties:
        destinations:
          type: array
          items:
            oneOf:
              - type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  name:
                    type: string
                    minLength: 1
                  description:
                    anyOf:
                      - type: string
                      - type: 'null'
                  enabled:
                    type: boolean
                  syncStatus:
                    type: string
                    enum:
                      - PENDING_PROVIDER_SYNC
                      - SYNCED
                      - PROVIDER_ERROR
                      - DISABLED_BY_PROVIDER
                  lastSyncedAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      - type: 'null'
                  isDefault:
                    type: boolean
                  archivedAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      - type: 'null'
                  createdAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  updatedAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  provider:
                    type: string
                    const: SLACK
                  kind:
                    type: string
                    const: SLACK_CHANNEL
                  maskedConfig:
                    anyOf:
                      - type: object
                        properties:
                          channelId:
                            type: string
                          label:
                            type: string
                        required:
                          - channelId
                        additionalProperties: false
                      - type: 'null'
                required:
                  - id
                  - name
                  - description
                  - enabled
                  - syncStatus
                  - lastSyncedAt
                  - isDefault
                  - archivedAt
                  - createdAt
                  - updatedAt
                  - provider
                  - kind
                  - maskedConfig
                additionalProperties: false
              - type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  name:
                    type: string
                    minLength: 1
                  description:
                    anyOf:
                      - type: string
                      - type: 'null'
                  enabled:
                    type: boolean
                  syncStatus:
                    type: string
                    enum:
                      - PENDING_PROVIDER_SYNC
                      - SYNCED
                      - PROVIDER_ERROR
                      - DISABLED_BY_PROVIDER
                  lastSyncedAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      - type: 'null'
                  isDefault:
                    type: boolean
                  archivedAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      - type: 'null'
                  createdAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  updatedAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  provider:
                    type: string
                    enum:
                      - OUTPOST
                      - WEBHOOK
                  kind:
                    type: string
                    const: WEBHOOK_ENDPOINT
                  maskedConfig:
                    type: 'null'
                required:
                  - id
                  - name
                  - description
                  - enabled
                  - syncStatus
                  - lastSyncedAt
                  - isDefault
                  - archivedAt
                  - createdAt
                  - updatedAt
                  - provider
                  - kind
                  - maskedConfig
                additionalProperties: false
              - type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  name:
                    type: string
                    minLength: 1
                  description:
                    anyOf:
                      - type: string
                      - type: 'null'
                  enabled:
                    type: boolean
                  syncStatus:
                    type: string
                    enum:
                      - PENDING_PROVIDER_SYNC
                      - SYNCED
                      - PROVIDER_ERROR
                      - DISABLED_BY_PROVIDER
                  lastSyncedAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      - type: 'null'
                  isDefault:
                    type: boolean
                  archivedAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      - type: 'null'
                  createdAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  updatedAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  provider:
                    type: string
                    const: EMAIL
                  kind:
                    type: string
                    const: EMAIL_RECIPIENTS
                  maskedConfig:
                    anyOf:
                      - type: object
                        properties:
                          recipientMode:
                            type: string
                            enum:
                              - org_admins
                              - explicit
                          recipientCount:
                            type: integer
                            minimum: 0
                            maximum: 50
                        required:
                          - recipientMode
                          - recipientCount
                        additionalProperties: false
                      - type: 'null'
                required:
                  - id
                  - name
                  - description
                  - enabled
                  - syncStatus
                  - lastSyncedAt
                  - isDefault
                  - archivedAt
                  - createdAt
                  - updatedAt
                  - provider
                  - kind
                  - maskedConfig
                additionalProperties: false
      required:
        - destinations
      additionalProperties: false
      title: List destinations
    ToolOutput_outlit_get_destination:
      type: object
      properties:
        destination:
          oneOf:
            - type: object
              properties:
                id:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                name:
                  type: string
                  minLength: 1
                description:
                  anyOf:
                    - type: string
                    - type: 'null'
                enabled:
                  type: boolean
                syncStatus:
                  type: string
                  enum:
                    - PENDING_PROVIDER_SYNC
                    - SYNCED
                    - PROVIDER_ERROR
                    - DISABLED_BY_PROVIDER
                lastSyncedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                isDefault:
                  type: boolean
                archivedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                createdAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                updatedAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                provider:
                  type: string
                  const: SLACK
                kind:
                  type: string
                  const: SLACK_CHANNEL
                maskedConfig:
                  anyOf:
                    - type: object
                      properties:
                        channelId:
                          type: string
                        label:
                          type: string
                      required:
                        - channelId
                      additionalProperties: false
                    - type: 'null'
              required:
                - id
                - name
                - description
                - enabled
                - syncStatus
                - lastSyncedAt
                - isDefault
                - archivedAt
                - createdAt
                - updatedAt
                - provider
                - kind
                - maskedConfig
              additionalProperties: false
            - type: object
              properties:
                id:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                name:
                  type: string
                  minLength: 1
                description:
                  anyOf:
                    - type: string
                    - type: 'null'
                enabled:
                  type: boolean
                syncStatus:
                  type: string
                  enum:
                    - PENDING_PROVIDER_SYNC
                    - SYNCED
                    - PROVIDER_ERROR
                    - DISABLED_BY_PROVIDER
                lastSyncedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                isDefault:
                  type: boolean
                archivedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                createdAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                updatedAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                provider:
                  type: string
                  enum:
                    - OUTPOST
                    - WEBHOOK
                kind:
                  type: string
                  const: WEBHOOK_ENDPOINT
                maskedConfig:
                  type: 'null'
              required:
                - id
                - name
                - description
                - enabled
                - syncStatus
                - lastSyncedAt
                - isDefault
                - archivedAt
                - createdAt
                - updatedAt
                - provider
                - kind
                - maskedConfig
              additionalProperties: false
            - type: object
              properties:
                id:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                name:
                  type: string
                  minLength: 1
                description:
                  anyOf:
                    - type: string
                    - type: 'null'
                enabled:
                  type: boolean
                syncStatus:
                  type: string
                  enum:
                    - PENDING_PROVIDER_SYNC
                    - SYNCED
                    - PROVIDER_ERROR
                    - DISABLED_BY_PROVIDER
                lastSyncedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                isDefault:
                  type: boolean
                archivedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                createdAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                updatedAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                provider:
                  type: string
                  const: EMAIL
                kind:
                  type: string
                  const: EMAIL_RECIPIENTS
                maskedConfig:
                  anyOf:
                    - type: object
                      properties:
                        recipientMode:
                          type: string
                          enum:
                            - org_admins
                            - explicit
                        recipientCount:
                          type: integer
                          minimum: 0
                          maximum: 50
                      required:
                        - recipientMode
                        - recipientCount
                      additionalProperties: false
                    - type: 'null'
              required:
                - id
                - name
                - description
                - enabled
                - syncStatus
                - lastSyncedAt
                - isDefault
                - archivedAt
                - createdAt
                - updatedAt
                - provider
                - kind
                - maskedConfig
              additionalProperties: false
      required:
        - destination
      additionalProperties: false
      title: Get destination
    ToolOutput_outlit_create_destination:
      type: object
      properties:
        destination:
          oneOf:
            - type: object
              properties:
                id:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                name:
                  type: string
                  minLength: 1
                description:
                  anyOf:
                    - type: string
                    - type: 'null'
                enabled:
                  type: boolean
                syncStatus:
                  type: string
                  enum:
                    - PENDING_PROVIDER_SYNC
                    - SYNCED
                    - PROVIDER_ERROR
                    - DISABLED_BY_PROVIDER
                lastSyncedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                isDefault:
                  type: boolean
                archivedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                createdAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                updatedAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                provider:
                  type: string
                  const: SLACK
                kind:
                  type: string
                  const: SLACK_CHANNEL
                maskedConfig:
                  anyOf:
                    - type: object
                      properties:
                        channelId:
                          type: string
                        label:
                          type: string
                      required:
                        - channelId
                      additionalProperties: false
                    - type: 'null'
              required:
                - id
                - name
                - description
                - enabled
                - syncStatus
                - lastSyncedAt
                - isDefault
                - archivedAt
                - createdAt
                - updatedAt
                - provider
                - kind
                - maskedConfig
              additionalProperties: false
            - type: object
              properties:
                id:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                name:
                  type: string
                  minLength: 1
                description:
                  anyOf:
                    - type: string
                    - type: 'null'
                enabled:
                  type: boolean
                syncStatus:
                  type: string
                  enum:
                    - PENDING_PROVIDER_SYNC
                    - SYNCED
                    - PROVIDER_ERROR
                    - DISABLED_BY_PROVIDER
                lastSyncedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                isDefault:
                  type: boolean
                archivedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                createdAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                updatedAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                provider:
                  type: string
                  enum:
                    - OUTPOST
                    - WEBHOOK
                kind:
                  type: string
                  const: WEBHOOK_ENDPOINT
                maskedConfig:
                  type: 'null'
              required:
                - id
                - name
                - description
                - enabled
                - syncStatus
                - lastSyncedAt
                - isDefault
                - archivedAt
                - createdAt
                - updatedAt
                - provider
                - kind
                - maskedConfig
              additionalProperties: false
            - type: object
              properties:
                id:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                name:
                  type: string
                  minLength: 1
                description:
                  anyOf:
                    - type: string
                    - type: 'null'
                enabled:
                  type: boolean
                syncStatus:
                  type: string
                  enum:
                    - PENDING_PROVIDER_SYNC
                    - SYNCED
                    - PROVIDER_ERROR
                    - DISABLED_BY_PROVIDER
                lastSyncedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                isDefault:
                  type: boolean
                archivedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                createdAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                updatedAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                provider:
                  type: string
                  const: EMAIL
                kind:
                  type: string
                  const: EMAIL_RECIPIENTS
                maskedConfig:
                  anyOf:
                    - type: object
                      properties:
                        recipientMode:
                          type: string
                          enum:
                            - org_admins
                            - explicit
                        recipientCount:
                          type: integer
                          minimum: 0
                          maximum: 50
                      required:
                        - recipientMode
                        - recipientCount
                      additionalProperties: false
                    - type: 'null'
              required:
                - id
                - name
                - description
                - enabled
                - syncStatus
                - lastSyncedAt
                - isDefault
                - archivedAt
                - createdAt
                - updatedAt
                - provider
                - kind
                - maskedConfig
              additionalProperties: false
      required:
        - destination
      additionalProperties: false
      title: Create destination
    ToolOutput_outlit_update_destination:
      type: object
      properties:
        destination:
          oneOf:
            - type: object
              properties:
                id:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                name:
                  type: string
                  minLength: 1
                description:
                  anyOf:
                    - type: string
                    - type: 'null'
                enabled:
                  type: boolean
                syncStatus:
                  type: string
                  enum:
                    - PENDING_PROVIDER_SYNC
                    - SYNCED
                    - PROVIDER_ERROR
                    - DISABLED_BY_PROVIDER
                lastSyncedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                isDefault:
                  type: boolean
                archivedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                createdAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                updatedAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                provider:
                  type: string
                  const: SLACK
                kind:
                  type: string
                  const: SLACK_CHANNEL
                maskedConfig:
                  anyOf:
                    - type: object
                      properties:
                        channelId:
                          type: string
                        label:
                          type: string
                      required:
                        - channelId
                      additionalProperties: false
                    - type: 'null'
              required:
                - id
                - name
                - description
                - enabled
                - syncStatus
                - lastSyncedAt
                - isDefault
                - archivedAt
                - createdAt
                - updatedAt
                - provider
                - kind
                - maskedConfig
              additionalProperties: false
            - type: object
              properties:
                id:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                name:
                  type: string
                  minLength: 1
                description:
                  anyOf:
                    - type: string
                    - type: 'null'
                enabled:
                  type: boolean
                syncStatus:
                  type: string
                  enum:
                    - PENDING_PROVIDER_SYNC
                    - SYNCED
                    - PROVIDER_ERROR
                    - DISABLED_BY_PROVIDER
                lastSyncedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                isDefault:
                  type: boolean
                archivedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                createdAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                updatedAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                provider:
                  type: string
                  enum:
                    - OUTPOST
                    - WEBHOOK
                kind:
                  type: string
                  const: WEBHOOK_ENDPOINT
                maskedConfig:
                  type: 'null'
              required:
                - id
                - name
                - description
                - enabled
                - syncStatus
                - lastSyncedAt
                - isDefault
                - archivedAt
                - createdAt
                - updatedAt
                - provider
                - kind
                - maskedConfig
              additionalProperties: false
            - type: object
              properties:
                id:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                name:
                  type: string
                  minLength: 1
                description:
                  anyOf:
                    - type: string
                    - type: 'null'
                enabled:
                  type: boolean
                syncStatus:
                  type: string
                  enum:
                    - PENDING_PROVIDER_SYNC
                    - SYNCED
                    - PROVIDER_ERROR
                    - DISABLED_BY_PROVIDER
                lastSyncedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                isDefault:
                  type: boolean
                archivedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                createdAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                updatedAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                provider:
                  type: string
                  const: EMAIL
                kind:
                  type: string
                  const: EMAIL_RECIPIENTS
                maskedConfig:
                  anyOf:
                    - type: object
                      properties:
                        recipientMode:
                          type: string
                          enum:
                            - org_admins
                            - explicit
                        recipientCount:
                          type: integer
                          minimum: 0
                          maximum: 50
                      required:
                        - recipientMode
                        - recipientCount
                      additionalProperties: false
                    - type: 'null'
              required:
                - id
                - name
                - description
                - enabled
                - syncStatus
                - lastSyncedAt
                - isDefault
                - archivedAt
                - createdAt
                - updatedAt
                - provider
                - kind
                - maskedConfig
              additionalProperties: false
      required:
        - destination
      additionalProperties: false
      title: Update destination
    ToolOutput_outlit_enable_destination:
      type: object
      properties:
        destination:
          oneOf:
            - type: object
              properties:
                id:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                name:
                  type: string
                  minLength: 1
                description:
                  anyOf:
                    - type: string
                    - type: 'null'
                enabled:
                  type: boolean
                syncStatus:
                  type: string
                  enum:
                    - PENDING_PROVIDER_SYNC
                    - SYNCED
                    - PROVIDER_ERROR
                    - DISABLED_BY_PROVIDER
                lastSyncedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                isDefault:
                  type: boolean
                archivedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                createdAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                updatedAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                provider:
                  type: string
                  const: SLACK
                kind:
                  type: string
                  const: SLACK_CHANNEL
                maskedConfig:
                  anyOf:
                    - type: object
                      properties:
                        channelId:
                          type: string
                        label:
                          type: string
                      required:
                        - channelId
                      additionalProperties: false
                    - type: 'null'
              required:
                - id
                - name
                - description
                - enabled
                - syncStatus
                - lastSyncedAt
                - isDefault
                - archivedAt
                - createdAt
                - updatedAt
                - provider
                - kind
                - maskedConfig
              additionalProperties: false
            - type: object
              properties:
                id:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                name:
                  type: string
                  minLength: 1
                description:
                  anyOf:
                    - type: string
                    - type: 'null'
                enabled:
                  type: boolean
                syncStatus:
                  type: string
                  enum:
                    - PENDING_PROVIDER_SYNC
                    - SYNCED
                    - PROVIDER_ERROR
                    - DISABLED_BY_PROVIDER
                lastSyncedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                isDefault:
                  type: boolean
                archivedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                createdAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                updatedAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                provider:
                  type: string
                  enum:
                    - OUTPOST
                    - WEBHOOK
                kind:
                  type: string
                  const: WEBHOOK_ENDPOINT
                maskedConfig:
                  type: 'null'
              required:
                - id
                - name
                - description
                - enabled
                - syncStatus
                - lastSyncedAt
                - isDefault
                - archivedAt
                - createdAt
                - updatedAt
                - provider
                - kind
                - maskedConfig
              additionalProperties: false
            - type: object
              properties:
                id:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                name:
                  type: string
                  minLength: 1
                description:
                  anyOf:
                    - type: string
                    - type: 'null'
                enabled:
                  type: boolean
                syncStatus:
                  type: string
                  enum:
                    - PENDING_PROVIDER_SYNC
                    - SYNCED
                    - PROVIDER_ERROR
                    - DISABLED_BY_PROVIDER
                lastSyncedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                isDefault:
                  type: boolean
                archivedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                createdAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                updatedAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                provider:
                  type: string
                  const: EMAIL
                kind:
                  type: string
                  const: EMAIL_RECIPIENTS
                maskedConfig:
                  anyOf:
                    - type: object
                      properties:
                        recipientMode:
                          type: string
                          enum:
                            - org_admins
                            - explicit
                        recipientCount:
                          type: integer
                          minimum: 0
                          maximum: 50
                      required:
                        - recipientMode
                        - recipientCount
                      additionalProperties: false
                    - type: 'null'
              required:
                - id
                - name
                - description
                - enabled
                - syncStatus
                - lastSyncedAt
                - isDefault
                - archivedAt
                - createdAt
                - updatedAt
                - provider
                - kind
                - maskedConfig
              additionalProperties: false
      required:
        - destination
      additionalProperties: false
      title: Enable destination
    ToolOutput_outlit_disable_destination:
      type: object
      properties:
        destination:
          oneOf:
            - type: object
              properties:
                id:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                name:
                  type: string
                  minLength: 1
                description:
                  anyOf:
                    - type: string
                    - type: 'null'
                enabled:
                  type: boolean
                syncStatus:
                  type: string
                  enum:
                    - PENDING_PROVIDER_SYNC
                    - SYNCED
                    - PROVIDER_ERROR
                    - DISABLED_BY_PROVIDER
                lastSyncedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                isDefault:
                  type: boolean
                archivedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                createdAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                updatedAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                provider:
                  type: string
                  const: SLACK
                kind:
                  type: string
                  const: SLACK_CHANNEL
                maskedConfig:
                  anyOf:
                    - type: object
                      properties:
                        channelId:
                          type: string
                        label:
                          type: string
                      required:
                        - channelId
                      additionalProperties: false
                    - type: 'null'
              required:
                - id
                - name
                - description
                - enabled
                - syncStatus
                - lastSyncedAt
                - isDefault
                - archivedAt
                - createdAt
                - updatedAt
                - provider
                - kind
                - maskedConfig
              additionalProperties: false
            - type: object
              properties:
                id:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                name:
                  type: string
                  minLength: 1
                description:
                  anyOf:
                    - type: string
                    - type: 'null'
                enabled:
                  type: boolean
                syncStatus:
                  type: string
                  enum:
                    - PENDING_PROVIDER_SYNC
                    - SYNCED
                    - PROVIDER_ERROR
                    - DISABLED_BY_PROVIDER
                lastSyncedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                isDefault:
                  type: boolean
                archivedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                createdAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                updatedAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                provider:
                  type: string
                  enum:
                    - OUTPOST
                    - WEBHOOK
                kind:
                  type: string
                  const: WEBHOOK_ENDPOINT
                maskedConfig:
                  type: 'null'
              required:
                - id
                - name
                - description
                - enabled
                - syncStatus
                - lastSyncedAt
                - isDefault
                - archivedAt
                - createdAt
                - updatedAt
                - provider
                - kind
                - maskedConfig
              additionalProperties: false
            - type: object
              properties:
                id:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                name:
                  type: string
                  minLength: 1
                description:
                  anyOf:
                    - type: string
                    - type: 'null'
                enabled:
                  type: boolean
                syncStatus:
                  type: string
                  enum:
                    - PENDING_PROVIDER_SYNC
                    - SYNCED
                    - PROVIDER_ERROR
                    - DISABLED_BY_PROVIDER
                lastSyncedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                isDefault:
                  type: boolean
                archivedAt:
                  anyOf:
                    - type: string
                      format: date-time
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    - type: 'null'
                createdAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                updatedAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                provider:
                  type: string
                  const: EMAIL
                kind:
                  type: string
                  const: EMAIL_RECIPIENTS
                maskedConfig:
                  anyOf:
                    - type: object
                      properties:
                        recipientMode:
                          type: string
                          enum:
                            - org_admins
                            - explicit
                        recipientCount:
                          type: integer
                          minimum: 0
                          maximum: 50
                      required:
                        - recipientMode
                        - recipientCount
                      additionalProperties: false
                    - type: 'null'
              required:
                - id
                - name
                - description
                - enabled
                - syncStatus
                - lastSyncedAt
                - isDefault
                - archivedAt
                - createdAt
                - updatedAt
                - provider
                - kind
                - maskedConfig
              additionalProperties: false
      required:
        - destination
      additionalProperties: false
      title: Disable destination
    ToolOutput_outlit_archive_destination:
      type: object
      properties:
        destination:
          type: object
          properties:
            id:
              type: string
              format: uuid
              pattern: >-
                ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            archivedAt:
              type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          required:
            - id
            - archivedAt
          additionalProperties: false
      required:
        - destination
      additionalProperties: false
      title: Archive destination
    ToolOutput_outlit_submit_feedback:
      type: object
      properties:
        id:
          type: string
        createdAt:
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
      required:
        - id
        - createdAt
      additionalProperties: false
      title: Submit feedback
    ToolOutput_outlit_get_integration_capabilities:
      type: object
      properties:
        providers:
          type: array
          items:
            type: object
            properties:
              provider:
                type: string
                minLength: 1
                maxLength: 80
              name:
                type: string
                minLength: 1
                maxLength: 120
              category:
                type: string
                enum:
                  - crm
                  - communication
                  - storage
                  - calls
                  - calendar
                  - analytics
                  - billing
                  - support
              authType:
                type: string
                enum:
                  - oauth
                  - api_key
                  - basic_auth
              setupMode:
                type: string
                enum:
                  - browser_handoff
                  - human_controlled
              browserHandoffAvailable:
                type: boolean
            required:
              - provider
              - name
              - category
              - authType
              - setupMode
              - browserHandoffAvailable
            additionalProperties: false
        preferredSetupVersion:
          type: number
          const: 1
      required:
        - providers
      additionalProperties: false
      title: Get integration capabilities
    ToolOutput_outlit_begin_integration_setup:
      type: object
      properties:
        provider:
          type: string
          minLength: 1
          maxLength: 80
        state:
          type: string
          enum:
            - handoff_ready
            - already_connected
        sessionId:
          anyOf:
            - type: string
              format: uuid
              pattern: >-
                ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: 'null'
        connectUrl:
          anyOf:
            - type: string
              format: uri
            - type: 'null'
        expiresAt:
          anyOf:
            - type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
            - type: 'null'
      required:
        - provider
        - state
        - sessionId
        - connectUrl
        - expiresAt
      additionalProperties: false
      title: Begin integration setup
    ToolOutput_outlit_get_integration_setup_status:
      type: object
      properties:
        provider:
          anyOf:
            - type: string
              minLength: 1
              maxLength: 80
            - type: 'null'
        status:
          type: string
          enum:
            - expired
            - pending
            - connected
            - failed
      required:
        - provider
        - status
      additionalProperties: false
      title: Get integration setup status
    ToolOutput_outlit_get_integration_status:
      type: object
      properties:
        integrations:
          type: array
          items:
            type: object
            properties:
              provider:
                type: string
                minLength: 1
                maxLength: 80
              name:
                type: string
                minLength: 1
                maxLength: 120
              category:
                type: string
                enum:
                  - crm
                  - communication
                  - storage
                  - calls
                  - calendar
                  - analytics
                  - billing
                  - support
              status:
                type: string
                enum:
                  - not_connected
                  - awaiting_auth
                  - setup_required
                  - ready
                  - requires_intervention
            required:
              - provider
              - name
              - category
              - status
            additionalProperties: false
      required:
        - integrations
      additionalProperties: false
      title: Get integration status
    ToolOutput_outlit_setup_integration:
      type: object
      properties:
        provider:
          type: string
          enum:
            - salesforce
            - hubspot
            - attio
            - slack
            - google-calendar
            - google-mail
            - granola
            - gong
            - fireflies
            - ergo
            - pylon
            - stripe
            - mixpanel
            - posthog
            - supabase
            - clerk
            - autumn
        name:
          type: string
          minLength: 1
          maxLength: 120
        category:
          type: string
          enum:
            - crm
            - communication
            - storage
            - calls
            - calendar
            - analytics
            - billing
            - support
        status:
          type: string
          enum:
            - not_connected
            - awaiting_auth
            - setup_required
            - ready
            - requires_intervention
        next:
          anyOf:
            - anyOf:
                - type: object
                  properties:
                    kind:
                      type: string
                      const: browser_handoff
                    purpose:
                      type: string
                      enum:
                        - authentication
                        - recovery
                        - external_setup
                    url:
                      type: string
                      format: uri
                    sessionId:
                      anyOf:
                        - type: string
                          format: uuid
                          pattern: >-
                            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        - type: 'null'
                    expiresAt:
                      anyOf:
                        - type: string
                          format: date-time
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                        - type: 'null'
                  required:
                    - kind
                    - purpose
                    - url
                    - sessionId
                    - expiresAt
                  additionalProperties: false
                - type: object
                  properties:
                    kind:
                      type: string
                      const: crm_mapping
                    recommendation:
                      minItems: 1
                      type: array
                      items:
                        type: object
                        properties:
                          pipelineId:
                            type: string
                            minLength: 1
                          pipelineName:
                            type: string
                          mappings:
                            type: array
                            items:
                              type: object
                              properties:
                                outlitStage:
                                  type: string
                                  enum:
                                    - Created
                                    - Quoting
                                    - Negotiation
                                    - Won
                                    - Lost
                                crmStages:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                      name:
                                        type: string
                                    required:
                                      - id
                                      - name
                                    additionalProperties: false
                              required:
                                - outlitStage
                                - crmStages
                              additionalProperties: false
                        required:
                          - pipelineId
                          - pipelineName
                          - mappings
                        additionalProperties: false
                  required:
                    - kind
                    - recommendation
                  additionalProperties: false
                - type: object
                  properties:
                    kind:
                      type: string
                      const: mixpanel_mapping
                    preview:
                      type: object
                      properties:
                        sampleSize:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        sampleWindowStartAt:
                          type: string
                          format: date-time
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                        sampleWindowEndAt:
                          type: string
                          format: date-time
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                        accountKeyCoveragePct:
                          type: number
                          minimum: 0
                          maximum: 100
                        emailOrDomainCoveragePct:
                          type: number
                          minimum: 0
                          maximum: 100
                        unmappedPct:
                          type: number
                          minimum: 0
                          maximum: 100
                        matchedCustomerCount:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        opaqueOnlyUnmappedCount:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        candidateAccountKeys:
                          type: array
                          items:
                            type: object
                            properties:
                              key:
                                type: string
                              count:
                                type: integer
                                minimum: 0
                                maximum: 9007199254740991
                              coveragePct:
                                type: number
                                minimum: 0
                                maximum: 100
                            required:
                              - key
                              - count
                              - coveragePct
                            additionalProperties: false
                        unmappedReasons:
                          type: array
                          items:
                            type: object
                            properties:
                              reason:
                                type: string
                                enum:
                                  - missing_account_key
                                  - missing_email_or_domain
                                  - no_matching_customer
                              count:
                                type: integer
                                minimum: 0
                                maximum: 9007199254740991
                            required:
                              - reason
                              - count
                            additionalProperties: false
                        warnings:
                          type: array
                          items:
                            type: string
                      required:
                        - sampleSize
                        - sampleWindowStartAt
                        - sampleWindowEndAt
                        - accountKeyCoveragePct
                        - emailOrDomainCoveragePct
                        - unmappedPct
                        - matchedCustomerCount
                        - opaqueOnlyUnmappedCount
                        - candidateAccountKeys
                        - unmappedReasons
                        - warnings
                      additionalProperties: false
                  required:
                    - kind
                    - preview
                  additionalProperties: false
            - type: 'null'
        error:
          anyOf:
            - type: object
              properties:
                code:
                  type: string
                  enum:
                    - OWNER_REQUIRED
                    - CONNECTION_CONFLICT
                    - CREDENTIAL_REQUIRED
                    - CREDENTIAL_REJECTED
                    - LEGACY_CONNECTION_REQUIRED
                    - HANDOFF_UNAVAILABLE
                    - SYNC_START_FAILED
                    - TRANSIENT_FAILURE
                message:
                  type: string
                retryable:
                  type: boolean
              required:
                - code
                - message
                - retryable
              additionalProperties: false
            - type: 'null'
      required:
        - provider
        - name
        - category
        - status
        - next
        - error
      additionalProperties: false
      title: Set up integration
    ToolOutput_outlit_get_customer_activation:
      type: object
      properties:
        activation:
          type: object
          properties:
            eventName:
              anyOf:
                - type: string
                  minLength: 1
                  maxLength: 191
                - type: 'null'
          required:
            - eventName
          additionalProperties: false
      required:
        - activation
      additionalProperties: false
      title: Get customer activation
    ToolOutput_outlit_preview_customer_activation:
      type: object
      properties:
        preview:
          type: object
          properties:
            eventName:
              type: string
              minLength: 1
              maxLength: 191
            evaluatedFrom:
              type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
            evaluatedTo:
              type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
            evaluatedEventCount:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            matchedCustomerCount:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            alreadyActivatedCustomerCount:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            wouldActivateCustomerCount:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            evaluatedContactOccurrenceCount:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            matchedContactCount:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            alreadyActivatedContactCount:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            wouldActivateContactCount:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            contactTruncated:
              type: boolean
            customerTruncated:
              type: boolean
            truncated:
              type: boolean
            examples:
              type: array
              items:
                type: object
                properties:
                  customer:
                    type: object
                    properties:
                      id:
                        type: string
                        minLength: 1
                      name:
                        type: string
                        minLength: 1
                      domain:
                        type: string
                        minLength: 1
                    required:
                      - id
                      - name
                      - domain
                    additionalProperties: false
                  activatedAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      - type: 'null'
                  firstMatchedAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  eventId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                required:
                  - customer
                  - activatedAt
                  - firstMatchedAt
                  - eventId
                additionalProperties: false
          required:
            - eventName
            - evaluatedFrom
            - evaluatedTo
            - evaluatedEventCount
            - matchedCustomerCount
            - alreadyActivatedCustomerCount
            - wouldActivateCustomerCount
            - evaluatedContactOccurrenceCount
            - matchedContactCount
            - alreadyActivatedContactCount
            - wouldActivateContactCount
            - contactTruncated
            - customerTruncated
            - truncated
            - examples
          additionalProperties: false
      required:
        - preview
      additionalProperties: false
      title: Preview customer activation
    ToolOutput_outlit_update_customer_activation:
      type: object
      properties:
        activation:
          type: object
          properties:
            eventName:
              anyOf:
                - type: string
                  minLength: 1
                  maxLength: 191
                - type: 'null'
          required:
            - eventName
          additionalProperties: false
        changed:
          type: boolean
      required:
        - activation
        - changed
      additionalProperties: false
      title: Update customer activation
    ToolOutput_outlit_get_workspace_settings:
      type: object
      properties:
        settings:
          type: object
          properties:
            defaultTimezone:
              type: string
              minLength: 1
            customerOwnership:
              type: object
              properties:
                defaultOwnerUserId:
                  anyOf:
                    - type: string
                      minLength: 1
                      maxLength: 191
                    - type: 'null'
              required:
                - defaultOwnerUserId
              additionalProperties: false
          required:
            - defaultTimezone
            - customerOwnership
          additionalProperties: false
      required:
        - settings
      additionalProperties: false
      title: Get workspace settings
    ToolOutput_outlit_update_workspace_settings:
      type: object
      properties:
        settings:
          type: object
          properties:
            defaultTimezone:
              type: string
              minLength: 1
            customerOwnership:
              type: object
              properties:
                defaultOwnerUserId:
                  anyOf:
                    - type: string
                      minLength: 1
                      maxLength: 191
                    - type: 'null'
              required:
                - defaultOwnerUserId
              additionalProperties: false
          required:
            - defaultTimezone
            - customerOwnership
          additionalProperties: false
      required:
        - settings
      additionalProperties: false
      title: Update workspace settings
    ToolOutput_outlit_list_features:
      type: object
      properties:
        sources:
          type: array
          items:
            type: object
            properties:
              sourceKey:
                type: string
                pattern: ^metric_source_v1_[a-f0-9]{32}$
              provider:
                type: string
                enum:
                  - outlit_sdk
                  - posthog
                  - mixpanel
              label:
                type: string
                minLength: 1
                maxLength: 255
              readiness:
                type: string
                enum:
                  - READY
                  - WARMING
                  - BLOCKED
            required:
              - sourceKey
              - provider
              - label
              - readiness
            additionalProperties: false
        selectedSourceKey:
          anyOf:
            - type: string
              pattern: ^metric_source_v1_[a-f0-9]{32}$
            - type: 'null'
        workspaceActiveFeatureCount:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        features:
          maxItems: 100
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                pattern: ^value_feature_v1_[a-f0-9]{32}$
              revision:
                type: string
                pattern: ^value_feature_revision_v1_[a-f0-9]{32}$
              sourceKey:
                type: string
                pattern: ^metric_source_v1_[a-f0-9]{32}$
              featureKey:
                type: string
                maxLength: 64
                pattern: ^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$
              name:
                type: string
                minLength: 1
                maxLength: 255
              rule:
                type: object
                properties:
                  eventName:
                    type: string
                    minLength: 1
                    maxLength: 191
                  propertyFilters:
                    maxItems: 5
                    type: array
                    items:
                      oneOf:
                        - type: object
                          properties:
                            property:
                              type: string
                              minLength: 1
                              maxLength: 191
                            operator:
                              type: string
                              const: equals
                            value:
                              oneOf:
                                - type: object
                                  properties:
                                    type:
                                      type: string
                                      const: string
                                    value:
                                      type: string
                                      maxLength: 191
                                  required:
                                    - type
                                    - value
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    type:
                                      type: string
                                      const: number
                                    value:
                                      type: number
                                      minimum: -9007199254740991
                                      maximum: 9007199254740991
                                  required:
                                    - type
                                    - value
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    type:
                                      type: string
                                      const: boolean
                                    value:
                                      type: boolean
                                  required:
                                    - type
                                    - value
                                  additionalProperties: false
                          required:
                            - property
                            - operator
                            - value
                          additionalProperties: false
                        - type: object
                          properties:
                            property:
                              type: string
                              minLength: 1
                              maxLength: 191
                            operator:
                              type: string
                              const: exists
                          required:
                            - property
                            - operator
                          additionalProperties: false
                required:
                  - eventName
                  - propertyFilters
                additionalProperties: false
              evidence:
                oneOf:
                  - type: object
                    properties:
                      window:
                        type: object
                        properties:
                          startAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          endAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        required:
                          - startAt
                          - endAt
                        additionalProperties: false
                      coverage:
                        type: string
                        enum:
                          - complete
                          - partial
                      eventCount:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      activeDays:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      activeWeeks:
                        type: integer
                        minimum: 0
                        maximum: 53
                      firstObservedAt:
                        anyOf:
                          - type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          - type: 'null'
                      lastObservedAt:
                        anyOf:
                          - type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          - type: 'null'
                      distinctCustomers:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                    required:
                      - window
                      - coverage
                      - eventCount
                      - activeDays
                      - activeWeeks
                      - firstObservedAt
                      - lastObservedAt
                      - distinctCustomers
                    additionalProperties: false
                  - type: object
                    properties:
                      window:
                        type: object
                        properties:
                          startAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          endAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        required:
                          - startAt
                          - endAt
                        additionalProperties: false
                      coverage:
                        type: string
                        const: unavailable
                      reason:
                        type: string
                        enum:
                          - SOURCE_BLOCKED
                          - SOURCE_NOT_READY
                          - QUERY_FAILED
                    required:
                      - window
                      - coverage
                      - reason
                    additionalProperties: false
            required:
              - id
              - revision
              - sourceKey
              - featureKey
              - name
              - rule
              - evidence
            additionalProperties: false
        candidates:
          oneOf:
            - type: object
              properties:
                status:
                  type: string
                  const: ready
                items:
                  maxItems: 100
                  type: array
                  items:
                    type: object
                    properties:
                      eventName:
                        type: string
                        minLength: 1
                        maxLength: 191
                      eventCount:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      distinctCustomers:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      activeWeeks:
                        type: integer
                        minimum: 1
                        maximum: 53
                      propertyKeys:
                        maxItems: 10
                        type: array
                        items:
                          type: string
                          minLength: 1
                          maxLength: 191
                    required:
                      - eventName
                      - eventCount
                      - distinctCustomers
                      - activeWeeks
                      - propertyKeys
                    additionalProperties: false
                truncated:
                  type: boolean
              required:
                - status
                - items
                - truncated
              additionalProperties: false
            - type: object
              properties:
                status:
                  type: string
                  const: partial
                items:
                  maxItems: 100
                  type: array
                  items:
                    type: object
                    properties:
                      eventName:
                        type: string
                        minLength: 1
                        maxLength: 191
                      eventCount:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      distinctCustomers:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      activeWeeks:
                        type: integer
                        minimum: 1
                        maximum: 53
                      propertyKeys:
                        maxItems: 10
                        type: array
                        items:
                          type: string
                          minLength: 1
                          maxLength: 191
                    required:
                      - eventName
                      - eventCount
                      - distinctCustomers
                      - activeWeeks
                      - propertyKeys
                    additionalProperties: false
                truncated:
                  type: boolean
              required:
                - status
                - items
                - truncated
              additionalProperties: false
            - type: object
              properties:
                status:
                  type: string
                  const: unavailable
                reason:
                  type: string
                  enum:
                    - SOURCE_BLOCKED
                    - SOURCE_NOT_READY
                    - QUERY_FAILED
              required:
                - status
                - reason
              additionalProperties: false
      required:
        - sources
        - selectedSourceKey
        - workspaceActiveFeatureCount
        - features
        - candidates
      additionalProperties: false
      title: List features
    ToolOutput_outlit_create_feature:
      type: object
      properties:
        created:
          type: boolean
        feature:
          type: object
          properties:
            id:
              type: string
              pattern: ^value_feature_v1_[a-f0-9]{32}$
            revision:
              type: string
              pattern: ^value_feature_revision_v1_[a-f0-9]{32}$
            sourceKey:
              type: string
              pattern: ^metric_source_v1_[a-f0-9]{32}$
            featureKey:
              type: string
              maxLength: 64
              pattern: ^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$
            name:
              type: string
              minLength: 1
              maxLength: 255
            rule:
              type: object
              properties:
                eventName:
                  type: string
                  minLength: 1
                  maxLength: 191
                propertyFilters:
                  maxItems: 5
                  type: array
                  items:
                    oneOf:
                      - type: object
                        properties:
                          property:
                            type: string
                            minLength: 1
                            maxLength: 191
                          operator:
                            type: string
                            const: equals
                          value:
                            oneOf:
                              - type: object
                                properties:
                                  type:
                                    type: string
                                    const: string
                                  value:
                                    type: string
                                    maxLength: 191
                                required:
                                  - type
                                  - value
                                additionalProperties: false
                              - type: object
                                properties:
                                  type:
                                    type: string
                                    const: number
                                  value:
                                    type: number
                                    minimum: -9007199254740991
                                    maximum: 9007199254740991
                                required:
                                  - type
                                  - value
                                additionalProperties: false
                              - type: object
                                properties:
                                  type:
                                    type: string
                                    const: boolean
                                  value:
                                    type: boolean
                                required:
                                  - type
                                  - value
                                additionalProperties: false
                        required:
                          - property
                          - operator
                          - value
                        additionalProperties: false
                      - type: object
                        properties:
                          property:
                            type: string
                            minLength: 1
                            maxLength: 191
                          operator:
                            type: string
                            const: exists
                        required:
                          - property
                          - operator
                        additionalProperties: false
              required:
                - eventName
                - propertyFilters
              additionalProperties: false
          required:
            - id
            - revision
            - sourceKey
            - featureKey
            - name
            - rule
          additionalProperties: false
      required:
        - created
        - feature
      additionalProperties: false
      title: Create feature
    ToolOutput_outlit_archive_feature:
      type: object
      properties:
        archived:
          type: boolean
          const: true
        feature:
          type: object
          properties:
            id:
              type: string
              pattern: ^value_feature_v1_[a-f0-9]{32}$
            revision:
              type: string
              pattern: ^value_feature_revision_v1_[a-f0-9]{32}$
          required:
            - id
            - revision
          additionalProperties: false
      required:
        - archived
        - feature
      additionalProperties: false
      title: Archive feature
    ToolOutput_outlit_get_customer_features:
      type: object
      properties:
        customer:
          type: object
          properties:
            id:
              type: string
              minLength: 1
              maxLength: 191
            name:
              type: string
              minLength: 1
              maxLength: 255
          required:
            - id
            - name
          additionalProperties: false
        events:
          type: string
          enum:
            - available
            - unavailable
          description: >-
            Whether configured event features could be enumerated and their
            evidence reads attempted. Individual event coverage may still be
            unavailable. If unavailable, event features are omitted and stored
            provider features remain independently readable.
        features:
          maxItems: 4100
          type: array
          items:
            oneOf:
              - type: object
                properties:
                  id:
                    type: string
                    pattern: ^value_feature_v1_[a-f0-9]{32}$
                  revision:
                    type: string
                    pattern: ^value_feature_revision_v1_[a-f0-9]{32}$
                  kind:
                    type: string
                    const: event
                  sourceKey:
                    type: string
                    pattern: ^metric_source_v1_[a-f0-9]{32}$
                  source:
                    type: object
                    properties:
                      provider:
                        type: string
                        enum:
                          - outlit_sdk
                          - posthog
                          - mixpanel
                      connection:
                        anyOf:
                          - type: string
                          - type: 'null'
                      scope:
                        type: string
                      label:
                        anyOf:
                          - type: string
                          - type: 'null'
                    required:
                      - provider
                      - connection
                      - scope
                      - label
                    additionalProperties: false
                  featureKey:
                    type: string
                    maxLength: 64
                    pattern: ^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$
                  name:
                    type: string
                    minLength: 1
                    maxLength: 255
                  rule:
                    type: object
                    properties:
                      eventName:
                        type: string
                        minLength: 1
                        maxLength: 191
                      propertyFilters:
                        maxItems: 5
                        type: array
                        items:
                          oneOf:
                            - type: object
                              properties:
                                property:
                                  type: string
                                  minLength: 1
                                  maxLength: 191
                                operator:
                                  type: string
                                  const: equals
                                value:
                                  oneOf:
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          const: string
                                        value:
                                          type: string
                                          maxLength: 191
                                      required:
                                        - type
                                        - value
                                      additionalProperties: false
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          const: number
                                        value:
                                          type: number
                                          minimum: -9007199254740991
                                          maximum: 9007199254740991
                                      required:
                                        - type
                                        - value
                                      additionalProperties: false
                                    - type: object
                                      properties:
                                        type:
                                          type: string
                                          const: boolean
                                        value:
                                          type: boolean
                                      required:
                                        - type
                                        - value
                                      additionalProperties: false
                              required:
                                - property
                                - operator
                                - value
                              additionalProperties: false
                            - type: object
                              properties:
                                property:
                                  type: string
                                  minLength: 1
                                  maxLength: 191
                                operator:
                                  type: string
                                  const: exists
                              required:
                                - property
                                - operator
                              additionalProperties: false
                    required:
                      - eventName
                      - propertyFilters
                    additionalProperties: false
                  evidence:
                    oneOf:
                      - type: object
                        properties:
                          window:
                            type: object
                            properties:
                              startAt:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                              endAt:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                            required:
                              - startAt
                              - endAt
                            additionalProperties: false
                          coverage:
                            type: string
                            enum:
                              - complete
                              - partial
                          eventCount:
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          activeDays:
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          activeWeeks:
                            type: integer
                            minimum: 0
                            maximum: 53
                          firstObservedAt:
                            anyOf:
                              - type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                              - type: 'null'
                          lastObservedAt:
                            anyOf:
                              - type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                              - type: 'null'
                          weeklyUsage:
                            maxItems: 53
                            type: array
                            items:
                              oneOf:
                                - type: object
                                  properties:
                                    weekStartAt:
                                      type: string
                                      format: date-time
                                      pattern: >-
                                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                    coverage:
                                      type: string
                                      enum:
                                        - complete
                                        - partial
                                    eventCount:
                                      type: integer
                                      minimum: 0
                                      maximum: 9007199254740991
                                    activeDays:
                                      type: integer
                                      minimum: 0
                                      maximum: 7
                                  required:
                                    - weekStartAt
                                    - coverage
                                    - eventCount
                                    - activeDays
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    weekStartAt:
                                      type: string
                                      format: date-time
                                      pattern: >-
                                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                    coverage:
                                      type: string
                                      const: unavailable
                                  required:
                                    - weekStartAt
                                    - coverage
                                  additionalProperties: false
                        required:
                          - window
                          - coverage
                          - eventCount
                          - activeDays
                          - activeWeeks
                          - firstObservedAt
                          - lastObservedAt
                        additionalProperties: false
                      - type: object
                        properties:
                          window:
                            type: object
                            properties:
                              startAt:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                              endAt:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                            required:
                              - startAt
                              - endAt
                            additionalProperties: false
                          coverage:
                            type: string
                            const: unavailable
                          reason:
                            type: string
                            enum:
                              - SOURCE_BLOCKED
                              - SOURCE_NOT_READY
                              - QUERY_FAILED
                        required:
                          - window
                          - coverage
                          - reason
                        additionalProperties: false
                required:
                  - id
                  - revision
                  - kind
                  - sourceKey
                  - source
                  - featureKey
                  - name
                  - rule
                  - evidence
                additionalProperties: false
              - type: object
                properties:
                  kind:
                    type: string
                    const: metered
                  id:
                    type: string
                    minLength: 1
                    maxLength: 2048
                  name:
                    type: string
                    minLength: 1
                    maxLength: 2048
                  source:
                    type: object
                    properties:
                      provider:
                        type: string
                        const: autumn
                      connection:
                        anyOf:
                          - type: string
                          - type: 'null'
                      account:
                        type: string
                      environment:
                        type: string
                        enum:
                          - sandbox
                          - live
                      observed:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      stale:
                        type: boolean
                    required:
                      - provider
                      - connection
                      - account
                      - environment
                      - observed
                      - stale
                    additionalProperties: false
                  unit:
                    type: string
                    const: provider_defined
                    description: >-
                      This feature's own units; never sum across features or
                      with linked event counts.
                  reported:
                    anyOf:
                      - type: number
                      - type: 'null'
                    description: >-
                      Provider-reported balance usage, independent of the
                      requested history window.
                  links:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          pattern: ^value_feature_v1_[a-f0-9]{32}$
                        source:
                          type: string
                          pattern: ^metric_source_v1_[a-f0-9]{32}$
                        feature:
                          anyOf:
                            - type: object
                              properties:
                                id:
                                  type: string
                                  pattern: ^value_feature_v1_[a-f0-9]{32}$
                                revision:
                                  type: string
                                  pattern: ^value_feature_revision_v1_[a-f0-9]{32}$
                                kind:
                                  type: string
                                  const: event
                                sourceKey:
                                  type: string
                                  pattern: ^metric_source_v1_[a-f0-9]{32}$
                                source:
                                  type: object
                                  properties:
                                    provider:
                                      type: string
                                      enum:
                                        - outlit_sdk
                                        - posthog
                                        - mixpanel
                                    connection:
                                      anyOf:
                                        - type: string
                                        - type: 'null'
                                    scope:
                                      type: string
                                    label:
                                      anyOf:
                                        - type: string
                                        - type: 'null'
                                  required:
                                    - provider
                                    - connection
                                    - scope
                                    - label
                                  additionalProperties: false
                                featureKey:
                                  type: string
                                  maxLength: 64
                                  pattern: ^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$
                                name:
                                  type: string
                                  minLength: 1
                                  maxLength: 255
                                rule:
                                  type: object
                                  properties:
                                    eventName:
                                      type: string
                                      minLength: 1
                                      maxLength: 191
                                    propertyFilters:
                                      maxItems: 5
                                      type: array
                                      items:
                                        oneOf:
                                          - type: object
                                            properties:
                                              property:
                                                type: string
                                                minLength: 1
                                                maxLength: 191
                                              operator:
                                                type: string
                                                const: equals
                                              value:
                                                oneOf:
                                                  - type: object
                                                    properties:
                                                      type:
                                                        type: string
                                                        const: string
                                                      value:
                                                        type: string
                                                        maxLength: 191
                                                    required:
                                                      - type
                                                      - value
                                                    additionalProperties: false
                                                  - type: object
                                                    properties:
                                                      type:
                                                        type: string
                                                        const: number
                                                      value:
                                                        type: number
                                                        minimum: -9007199254740991
                                                        maximum: 9007199254740991
                                                    required:
                                                      - type
                                                      - value
                                                    additionalProperties: false
                                                  - type: object
                                                    properties:
                                                      type:
                                                        type: string
                                                        const: boolean
                                                      value:
                                                        type: boolean
                                                    required:
                                                      - type
                                                      - value
                                                    additionalProperties: false
                                            required:
                                              - property
                                              - operator
                                              - value
                                            additionalProperties: false
                                          - type: object
                                            properties:
                                              property:
                                                type: string
                                                minLength: 1
                                                maxLength: 191
                                              operator:
                                                type: string
                                                const: exists
                                            required:
                                              - property
                                              - operator
                                            additionalProperties: false
                                  required:
                                    - eventName
                                    - propertyFilters
                                  additionalProperties: false
                                evidence:
                                  oneOf:
                                    - type: object
                                      properties:
                                        window:
                                          type: object
                                          properties:
                                            startAt:
                                              type: string
                                              format: date-time
                                              pattern: >-
                                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                            endAt:
                                              type: string
                                              format: date-time
                                              pattern: >-
                                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                          required:
                                            - startAt
                                            - endAt
                                          additionalProperties: false
                                        coverage:
                                          type: string
                                          enum:
                                            - complete
                                            - partial
                                        eventCount:
                                          type: integer
                                          minimum: 0
                                          maximum: 9007199254740991
                                        activeDays:
                                          type: integer
                                          minimum: 0
                                          maximum: 9007199254740991
                                        activeWeeks:
                                          type: integer
                                          minimum: 0
                                          maximum: 53
                                        firstObservedAt:
                                          anyOf:
                                            - type: string
                                              format: date-time
                                              pattern: >-
                                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                            - type: 'null'
                                        lastObservedAt:
                                          anyOf:
                                            - type: string
                                              format: date-time
                                              pattern: >-
                                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                            - type: 'null'
                                        weeklyUsage:
                                          maxItems: 53
                                          type: array
                                          items:
                                            oneOf:
                                              - type: object
                                                properties:
                                                  weekStartAt:
                                                    type: string
                                                    format: date-time
                                                    pattern: >-
                                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                                  coverage:
                                                    type: string
                                                    enum:
                                                      - complete
                                                      - partial
                                                  eventCount:
                                                    type: integer
                                                    minimum: 0
                                                    maximum: 9007199254740991
                                                  activeDays:
                                                    type: integer
                                                    minimum: 0
                                                    maximum: 7
                                                required:
                                                  - weekStartAt
                                                  - coverage
                                                  - eventCount
                                                  - activeDays
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  weekStartAt:
                                                    type: string
                                                    format: date-time
                                                    pattern: >-
                                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                                  coverage:
                                                    type: string
                                                    const: unavailable
                                                required:
                                                  - weekStartAt
                                                  - coverage
                                                additionalProperties: false
                                      required:
                                        - window
                                        - coverage
                                        - eventCount
                                        - activeDays
                                        - activeWeeks
                                        - firstObservedAt
                                        - lastObservedAt
                                      additionalProperties: false
                                    - type: object
                                      properties:
                                        window:
                                          type: object
                                          properties:
                                            startAt:
                                              type: string
                                              format: date-time
                                              pattern: >-
                                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                            endAt:
                                              type: string
                                              format: date-time
                                              pattern: >-
                                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                          required:
                                            - startAt
                                            - endAt
                                          additionalProperties: false
                                        coverage:
                                          type: string
                                          const: unavailable
                                        reason:
                                          type: string
                                          enum:
                                            - SOURCE_BLOCKED
                                            - SOURCE_NOT_READY
                                            - QUERY_FAILED
                                      required:
                                        - window
                                        - coverage
                                        - reason
                                      additionalProperties: false
                              required:
                                - id
                                - revision
                                - kind
                                - sourceKey
                                - source
                                - featureKey
                                - name
                                - rule
                                - evidence
                              additionalProperties: false
                            - type: 'null'
                          description: >-
                            Linked Outlit definition and event evidence, or null
                            when unavailable. Never added to provider
                            quantities.
                      required:
                        - id
                        - source
                        - feature
                      additionalProperties: false
                  evidence:
                    type: object
                    properties:
                      window:
                        type: object
                        properties:
                          startAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          endAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        required:
                          - startAt
                          - endAt
                        additionalProperties: false
                      coverage:
                        type: string
                        enum:
                          - complete
                          - partial
                          - unavailable
                      quantity:
                        anyOf:
                          - type: number
                            minimum: 0
                          - type: 'null'
                      days:
                        anyOf:
                          - type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          - type: 'null'
                      weeks:
                        anyOf:
                          - type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          - type: 'null'
                      first:
                        anyOf:
                          - type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          - type: 'null'
                        description: >-
                          First positive daily observation in the requested
                          window, at UTC day precision.
                      last:
                        anyOf:
                          - type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          - type: 'null'
                        description: >-
                          Latest positive daily observation in the requested
                          window, at UTC day precision.
                      weekly:
                        maxItems: 53
                        type: array
                        items:
                          oneOf:
                            - type: object
                              properties:
                                start:
                                  type: string
                                  format: date-time
                                  pattern: >-
                                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                coverage:
                                  type: string
                                  enum:
                                    - complete
                                    - partial
                                quantity:
                                  type: number
                                  minimum: 0
                                days:
                                  type: integer
                                  minimum: 0
                                  maximum: 7
                              required:
                                - start
                                - coverage
                                - quantity
                                - days
                              additionalProperties: false
                            - type: object
                              properties:
                                start:
                                  type: string
                                  format: date-time
                                  pattern: >-
                                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                coverage:
                                  type: string
                                  const: unavailable
                              required:
                                - start
                                - coverage
                              additionalProperties: false
                    required:
                      - window
                      - coverage
                      - quantity
                      - days
                      - weeks
                      - first
                      - last
                    additionalProperties: false
                required:
                  - kind
                  - id
                  - name
                  - source
                  - unit
                  - reported
                  - links
                  - evidence
                additionalProperties: false
        sources:
          type: array
          items:
            type: object
            properties:
              provider:
                type: string
                const: autumn
              status:
                type: string
                enum:
                  - not_connected
                  - unavailable
                  - no_match
                  - available
              truncated:
                type: boolean
            required:
              - provider
              - status
              - truncated
            additionalProperties: false
      required:
        - customer
        - events
        - features
        - sources
      additionalProperties: false
      title: Get customer features
    ToolOutput_outlit_get_customer_credits:
      type: object
      properties:
        customer:
          type: object
          properties:
            id:
              type: string
              minLength: 1
            name:
              type: string
              minLength: 1
          required:
            - id
            - name
          additionalProperties: false
        status:
          type: string
          enum:
            - not_connected
            - unavailable
            - no_match
            - available
        credits:
          maxItems: 4000
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                minLength: 1
              name:
                anyOf:
                  - type: string
                  - type: 'null'
              source:
                type: object
                properties:
                  provider:
                    type: string
                    const: autumn
                  connection:
                    type: string
                    minLength: 1
                  account:
                    type: string
                    minLength: 1
                  environment:
                    type: string
                    enum:
                      - sandbox
                      - live
                required:
                  - provider
                  - connection
                  - account
                  - environment
                additionalProperties: false
              observed:
                type: string
                format: date-time
                pattern: >-
                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              stale:
                type: boolean
              scope:
                type: string
                const: customer
                description: Customer-level pool; excludes entity balances.
              granted:
                anyOf:
                  - type: number
                  - type: 'null'
              remaining:
                anyOf:
                  - type: number
                  - type: 'null'
              unlimited:
                type: boolean
              overage:
                type: boolean
              reset:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  - type: 'null'
              burn:
                type: object
                properties:
                  rate:
                    anyOf:
                      - type: number
                        minimum: 0
                      - type: 'null'
                    description: >-
                      Average daily usage over the trailing rate window (28
                      days, shrinking to the covered history with a seven-day
                      floor). See scope before interpreting this as pool
                      deductions.
                  scope:
                    type: string
                    enum:
                      - customer_balance
                      - account
                  rateBasis:
                    description: >-
                      Length of the trailing window the forecast rate averages
                      over.
                    anyOf:
                      - type: object
                        properties:
                          kind:
                            type: string
                            const: trailing
                          days:
                            type: integer
                            exclusiveMinimum: 0
                            maximum: 9007199254740991
                        required:
                          - kind
                          - days
                        additionalProperties: false
                      - type: 'null'
                  paceSinceReset:
                    description: >-
                      Context-only average daily usage since the current grant
                      period started; never the forecast rate.
                    anyOf:
                      - type: number
                        minimum: 0
                      - type: 'null'
                  periodStart:
                    description: >-
                      UTC day the current grant period started, when derivable
                      from the reset interval.
                    anyOf:
                      - type: string
                        format: date
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                      - type: 'null'
                  change:
                    anyOf:
                      - type: number
                      - type: 'null'
                    description: >-
                      Percentage change in customer-balance burn rate versus the
                      preceding equal-length window. Null when either window is
                      incomplete or the prior rate is zero.
                  changeDays:
                    description: >-
                      Days in each side of the percentage comparison: 28 when
                      covered, else 7.
                    anyOf:
                      - type: integer
                        exclusiveMinimum: 0
                        maximum: 9007199254740991
                      - type: 'null'
                  days:
                    anyOf:
                      - type: number
                        minimum: 0
                      - type: 'null'
                    description: >-
                      Estimated days until exhaustion. Null when an estimate is
                      unavailable or the allowance resets first.
                  depletion:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      - type: 'null'
                  status:
                    type: string
                    enum:
                      - available
                      - stale
                      - incomplete
                      - unknown_scope
                      - no_usage
                      - unlimited
                      - reset_due
                      - exhausted
                      - beyond_range
                      - through_reset
                  window:
                    type: object
                    properties:
                      start:
                        anyOf:
                          - type: string
                            format: date
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                          - type: 'null'
                      end:
                        anyOf:
                          - type: string
                            format: date
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                          - type: 'null'
                    required:
                      - start
                      - end
                    additionalProperties: false
                    description: UTC dates for the rate window; end is exclusive.
                  trend:
                    maxItems: 14
                    type: array
                    items:
                      type: object
                      properties:
                        date:
                          type: string
                          format: date
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                        usage:
                          anyOf:
                            - type: number
                              minimum: 0
                            - type: 'null'
                        rate:
                          anyOf:
                            - type: number
                              minimum: 0
                            - type: 'null'
                      required:
                        - date
                        - usage
                        - rate
                      additionalProperties: false
                    description: >-
                      Daily customer-balance deductions and seven-day rolling
                      rates. Missing observations remain null.
                required:
                  - rate
                  - scope
                  - change
                  - days
                  - depletion
                  - status
                  - window
                  - trend
                additionalProperties: false
              signalKind:
                type: string
                enum:
                  - expansion_risk
                  - trial_conversion
                  - none
                  - unknown_plan
                description: >-
                  Plan-aware routing for the credit signal. unknown_plan means
                  the provider snapshot carried no product list, so the plan
                  could not be classified.
              configurationNotes:
                maxItems: 20
                type: array
                items:
                  type: string
                  maxLength: 500
            required:
              - id
              - name
              - source
              - observed
              - stale
              - scope
              - granted
              - remaining
              - unlimited
              - overage
              - reset
              - burn
            additionalProperties: false
        truncated:
          type: boolean
      required:
        - customer
        - status
        - credits
        - truncated
      additionalProperties: false
      description: >-
        Credit pools read from stored provider snapshots. An available empty
        list means no credit pools were found in the matched snapshots. No
        provider refresh is triggered.
      title: Get customer credits
    ToolOutput_outlit_list_attention_items:
      type: object
      properties:
        items:
          maxItems: 100
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                minLength: 1
                maxLength: 500
              customer:
                type: object
                properties:
                  id:
                    type: string
                    minLength: 1
                    maxLength: 500
                  name:
                    type: string
                    minLength: 1
                    maxLength: 500
                  domain:
                    type: string
                    maxLength: 253
                  ownerName:
                    anyOf:
                      - type: string
                        minLength: 1
                        maxLength: 500
                      - type: 'null'
                required:
                  - id
                  - name
                  - domain
                  - ownerName
                additionalProperties: false
              title:
                type: string
                minLength: 1
                maxLength: 240
              priority:
                type: string
                enum:
                  - NORMAL
                  - HIGH
                  - URGENT
              evidenceCount:
                type: integer
                minimum: 0
                maximum: 50
              lifecycle:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - open
                      - resolved
                  customerVisibleAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  resolvedAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      - type: 'null'
                  reopenedAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      - type: 'null'
                  createdAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  updatedAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  materialUpdateAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      - type: 'null'
                required:
                  - status
                  - customerVisibleAt
                  - resolvedAt
                  - reopenedAt
                  - createdAt
                  - updatedAt
                  - materialUpdateAt
                additionalProperties: false
              accountImportance:
                type: object
                properties:
                  arrCents:
                    anyOf:
                      - type: number
                        minimum: 0
                      - type: 'null'
                    description: >-
                      Annual recurring revenue (12 × billing MRR) in the billing
                      provider's units for the currency field. For USD, EUR, GBP
                      and CAD this is cents: divide by 100 (e.g. 1234500 is
                      $12,345, USD). For other currencies, use the provider's
                      amount rules for that currency (Stripe's currency docs)
                      rather than assuming a divisor.
                  currency:
                    anyOf:
                      - type: string
                        pattern: ^[A-Z]{3}$
                      - type: 'null'
                  arrShareWithinCurrency:
                    anyOf:
                      - type: number
                        minimum: 0
                        maximum: 1
                      - type: 'null'
                    description: >-
                      Organization ARR share among customers using the same
                      currency
                  arrPercentileWithinCurrency:
                    anyOf:
                      - type: number
                        minimum: 0
                        maximum: 100
                      - type: 'null'
                    description: ARR percentile among customers using the same currency
                  segments:
                    maxItems: 50
                    type: array
                    items:
                      type: string
                      minLength: 1
                      maxLength: 240
                required:
                  - arrCents
                  - currency
                  - arrShareWithinCurrency
                  - arrPercentileWithinCurrency
                  - segments
                additionalProperties: false
              preparedActionUrl:
                anyOf:
                  - type: string
                    maxLength: 2000
                    format: uri
                  - type: 'null'
            required:
              - id
              - customer
              - title
              - priority
              - evidenceCount
              - lifecycle
              - accountImportance
              - preparedActionUrl
            additionalProperties: false
        pagination:
          type: object
          properties:
            hasMore:
              type: boolean
            nextCursor:
              anyOf:
                - type: string
                  minLength: 1
                  maxLength: 2000
                - type: 'null'
            total:
              type: integer
              minimum: 0
              maximum: 9007199254740991
          required:
            - hasMore
            - nextCursor
            - total
          additionalProperties: false
      required:
        - items
        - pagination
      additionalProperties: false
      title: List attention items
    ToolOutput_outlit_get_attention_item:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 500
        customer:
          type: object
          properties:
            id:
              type: string
              minLength: 1
              maxLength: 500
            name:
              type: string
              minLength: 1
              maxLength: 500
            domain:
              type: string
              maxLength: 253
            ownerName:
              anyOf:
                - type: string
                  minLength: 1
                  maxLength: 500
                - type: 'null'
          required:
            - id
            - name
            - domain
            - ownerName
          additionalProperties: false
        title:
          type: string
          minLength: 1
          maxLength: 240
        priority:
          type: string
          enum:
            - NORMAL
            - HIGH
            - URGENT
        evidenceCount:
          type: integer
          minimum: 0
          maximum: 50
        lifecycle:
          type: object
          properties:
            status:
              type: string
              enum:
                - open
                - resolved
            customerVisibleAt:
              type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
            resolvedAt:
              anyOf:
                - type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                - type: 'null'
            reopenedAt:
              anyOf:
                - type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                - type: 'null'
            createdAt:
              type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
            updatedAt:
              type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
            materialUpdateAt:
              anyOf:
                - type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                - type: 'null'
          required:
            - status
            - customerVisibleAt
            - resolvedAt
            - reopenedAt
            - createdAt
            - updatedAt
            - materialUpdateAt
          additionalProperties: false
        accountImportance:
          type: object
          properties:
            arrCents:
              anyOf:
                - type: number
                  minimum: 0
                - type: 'null'
              description: >-
                Annual recurring revenue (12 × billing MRR) in the billing
                provider's units for the currency field. For USD, EUR, GBP and
                CAD this is cents: divide by 100 (e.g. 1234500 is $12,345, USD).
                For other currencies, use the provider's amount rules for that
                currency (Stripe's currency docs) rather than assuming a
                divisor.
            currency:
              anyOf:
                - type: string
                  pattern: ^[A-Z]{3}$
                - type: 'null'
            arrShareWithinCurrency:
              anyOf:
                - type: number
                  minimum: 0
                  maximum: 1
                - type: 'null'
              description: Organization ARR share among customers using the same currency
            arrPercentileWithinCurrency:
              anyOf:
                - type: number
                  minimum: 0
                  maximum: 100
                - type: 'null'
              description: ARR percentile among customers using the same currency
            segments:
              maxItems: 50
              type: array
              items:
                type: string
                minLength: 1
                maxLength: 240
          required:
            - arrCents
            - currency
            - arrShareWithinCurrency
            - arrPercentileWithinCurrency
            - segments
          additionalProperties: false
        preparedActionUrl:
          anyOf:
            - type: string
              maxLength: 2000
              format: uri
            - type: 'null'
        whatChanged:
          type: string
          minLength: 1
          maxLength: 8000
        whyItMatters:
          type: string
          minLength: 1
          maxLength: 8000
        uncertainty:
          anyOf:
            - type: string
              minLength: 1
              maxLength: 8000
            - type: 'null'
        priorityReason:
          type: string
          minLength: 1
          maxLength: 8000
        timeline:
          maxItems: 20
          type: array
          items:
            type: object
            properties:
              title:
                type: string
                minLength: 1
                maxLength: 240
              explanation:
                type: string
                minLength: 1
                maxLength: 4000
              observedAt:
                type: string
                format: date-time
                pattern: >-
                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
            required:
              - title
              - explanation
              - observedAt
            additionalProperties: false
        evidence:
          maxItems: 20
          type: array
          items:
            type: object
            properties:
              role:
                type: string
                enum:
                  - supporting
                  - contradictory
                  - context
              kind:
                type: string
                enum:
                  - metric
                  - communication
                  - record
                  - event
              title:
                type: string
                minLength: 1
                maxLength: 500
              observedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  - type: 'null'
              window:
                anyOf:
                  - type: object
                    properties:
                      start:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      end:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    required:
                      - start
                      - end
                    additionalProperties: false
                  - type: 'null'
              sourceLabel:
                type: string
                minLength: 1
                maxLength: 240
            required:
              - role
              - kind
              - title
              - observedAt
              - window
              - sourceLabel
            additionalProperties: false
        latestUpdate:
          anyOf:
            - type: object
              properties:
                updatedAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                summary:
                  type: string
                  minLength: 1
                  maxLength: 8000
              required:
                - updatedAt
                - summary
              additionalProperties: false
            - type: 'null'
      required:
        - id
        - customer
        - title
        - priority
        - evidenceCount
        - lifecycle
        - accountImportance
        - preparedActionUrl
        - whatChanged
        - whyItMatters
        - uncertainty
        - priorityReason
        - timeline
        - evidence
        - latestUpdate
      additionalProperties: false
      title: Get attention item
    ToolOutput_outlit_get_customer_identity:
      type: object
      properties:
        customerId:
          type: string
          minLength: 1
          maxLength: 191
        checkedAt:
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        evidenceCutoffAt:
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        basis:
          type: string
          const: unchanged_records_at_cutoff
        window:
          type: object
          properties:
            after:
              type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            before:
              type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
          required:
            - after
            - before
          additionalProperties: false
        coverage:
          type: object
          properties:
            status:
              type: string
              enum:
                - complete_within_bounds
                - incomplete
            reasons:
              maxItems: 20
              type: array
              items:
                type: string
                minLength: 1
                maxLength: 500
          required:
            - status
            - reasons
          additionalProperties: false
        limits:
          type: object
          properties:
            calls:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            domains:
              type: integer
              minimum: 0
              maximum: 9007199254740991
            candidates:
              type: integer
              minimum: 0
              maximum: 9007199254740991
          required:
            - calls
            - domains
            - candidates
          additionalProperties: false
        candidates:
          maxItems: 10
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                minLength: 1
                maxLength: 191
              name:
                type: string
                maxLength: 500
              domain:
                type: string
                maxLength: 500
              type:
                type: string
                enum:
                  - COMPANY
                  - INDIVIDUAL
              reasons:
                maxItems: 50
                type: array
                items:
                  type: object
                  properties:
                    kind:
                      type: string
                      const: participant_domain
                    domain:
                      type: string
                      maxLength: 253
                    sourceType:
                      type: string
                      const: CALL
                    sourceId:
                      type: string
                      minLength: 1
                      maxLength: 191
                    field:
                      type: string
                      const: participants.email
                  required:
                    - kind
                    - domain
                    - sourceType
                    - sourceId
                    - field
                  additionalProperties: false
            required:
              - id
              - name
              - domain
              - type
              - reasons
            additionalProperties: false
      required:
        - customerId
        - checkedAt
        - window
        - coverage
        - limits
        - candidates
      additionalProperties: false
      title: Get customer identity
    ToolOutput_outlit_list_identity_merge_suggestions:
      type: object
      properties:
        suggestions:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                minLength: 1
                maxLength: 191
              status:
                type: string
                enum:
                  - suggested
                  - processing
                  - merged
                  - rejected
              proposalStatus:
                type: string
                enum:
                  - PROPOSED
                  - STAGED
                  - STALE
                  - REJECTED
                  - APPLIED
              confidence:
                type: string
                enum:
                  - HIGH
                  - MEDIUM
                  - LOW
              survivor:
                type: object
                properties:
                  id:
                    type: string
                    minLength: 1
                    maxLength: 191
                  name:
                    type: string
                    minLength: 1
                    maxLength: 500
                  domain:
                    anyOf:
                      - type: string
                        minLength: 1
                        maxLength: 500
                      - type: 'null'
                  type:
                    type: string
                    enum:
                      - COMPANY
                      - INDIVIDUAL
                  status:
                    anyOf:
                      - type: string
                        enum:
                          - PROVISIONAL
                          - ACTIVE
                          - CHURNED
                          - MERGED
                      - type: 'null'
                  billingStatus:
                    anyOf:
                      - type: string
                      - type: 'null'
                  identifierCount:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  contactCount:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                required:
                  - id
                  - name
                  - domain
                  - type
                  - status
                  - identifierCount
                  - contactCount
                additionalProperties: false
              duplicate:
                type: object
                properties:
                  id:
                    type: string
                    minLength: 1
                    maxLength: 191
                  name:
                    type: string
                    minLength: 1
                    maxLength: 500
                  domain:
                    anyOf:
                      - type: string
                        minLength: 1
                        maxLength: 500
                      - type: 'null'
                  type:
                    type: string
                    enum:
                      - COMPANY
                      - INDIVIDUAL
                  status:
                    anyOf:
                      - type: string
                        enum:
                          - PROVISIONAL
                          - ACTIVE
                          - CHURNED
                          - MERGED
                      - type: 'null'
                  billingStatus:
                    anyOf:
                      - type: string
                      - type: 'null'
                  identifierCount:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  contactCount:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                required:
                  - id
                  - name
                  - domain
                  - type
                  - status
                  - identifierCount
                  - contactCount
                additionalProperties: false
              reviewNotes:
                anyOf:
                  - type: string
                    maxLength: 10000
                  - type: 'null'
              reviewedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  - type: 'null'
              reviewedByName:
                anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 500
                  - type: 'null'
              appliedAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  - type: 'null'
              appliedByName:
                anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 500
                  - type: 'null'
              createdAt:
                type: string
                format: date-time
                pattern: >-
                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
              explanation:
                type: array
                items:
                  type: string
                  minLength: 1
                  maxLength: 1000
              impact:
                type: object
                properties:
                  identifiers:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  users:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  activities:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  visitors:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  billingEvents:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  facts:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  supportTickets:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  calls:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  accessEntries:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  analyticsEvents:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  analyticsDimensions:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  analyticsAvailable:
                    type: boolean
                  opportunities:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  revenueSnapshots:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                required:
                  - identifiers
                  - users
                  - activities
                  - visitors
                  - billingEvents
                  - facts
                  - supportTickets
                  - calls
                  - accessEntries
                  - analyticsEvents
                  - analyticsDimensions
                additionalProperties: false
              scope:
                type: object
                properties:
                  survivor:
                    type: object
                    properties:
                      shape:
                        type: string
                        enum:
                          - provisional
                          - established
                          - unknown
                      billingStatus:
                        anyOf:
                          - type: string
                          - type: 'null'
                      hasIndependentCrmIdentity:
                        type: boolean
                      hasIndependentStripeIdentity:
                        type: boolean
                    required:
                      - shape
                      - billingStatus
                      - hasIndependentCrmIdentity
                      - hasIndependentStripeIdentity
                    additionalProperties: false
                  duplicate:
                    type: object
                    properties:
                      shape:
                        type: string
                        enum:
                          - provisional
                          - established
                          - unknown
                      billingStatus:
                        anyOf:
                          - type: string
                          - type: 'null'
                      hasIndependentCrmIdentity:
                        type: boolean
                      hasIndependentStripeIdentity:
                        type: boolean
                    required:
                      - shape
                      - billingStatus
                      - hasIndependentCrmIdentity
                      - hasIndependentStripeIdentity
                    additionalProperties: false
                  payingAccountsAffected:
                    anyOf:
                      - type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      - type: 'null'
                  availability:
                    type: object
                    properties:
                      currentCounts:
                        type: boolean
                      analytics:
                        type: boolean
                    required:
                      - currentCounts
                      - analytics
                    additionalProperties: false
                  moves:
                    type: object
                    properties:
                      contacts:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      analyticsEvents:
                        anyOf:
                          - type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          - type: 'null'
                      analyticsDimensions:
                        anyOf:
                          - type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          - type: 'null'
                      billingEvents:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      revenueSnapshots:
                        anyOf:
                          - type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          - type: 'null'
                      calls:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      facts:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      opportunities:
                        anyOf:
                          - type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          - type: 'null'
                      tickets:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                    required:
                      - contacts
                      - analyticsEvents
                      - analyticsDimensions
                      - billingEvents
                      - revenueSnapshots
                      - calls
                      - facts
                      - opportunities
                      - tickets
                    additionalProperties: false
                  conflicts:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                        message:
                          type: string
                        scope:
                          type: string
                        sourceIdentities:
                          type: array
                          items:
                            type: string
                        survivorIdentities:
                          type: array
                          items:
                            type: string
                      required:
                        - code
                        - message
                        - scope
                        - sourceIdentities
                        - survivorIdentities
                      additionalProperties: false
                  supportingEvidence:
                    type: array
                    items:
                      type: string
                required:
                  - survivor
                  - duplicate
                  - payingAccountsAffected
                  - availability
                  - moves
                  - conflicts
                  - supportingEvidence
                additionalProperties: false
              mergeBlockedReason:
                anyOf:
                  - type: string
                  - type: 'null'
              reviewedPairOptions:
                type: array
                items:
                  type: array
                  prefixItems:
                    - type: string
                    - type: string
              candidateCustomers:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      minLength: 1
                      maxLength: 191
                    name:
                      type: string
                      minLength: 1
                      maxLength: 500
                    domain:
                      anyOf:
                        - type: string
                          minLength: 1
                          maxLength: 500
                        - type: 'null'
                    type:
                      type: string
                      enum:
                        - COMPANY
                        - INDIVIDUAL
                    status:
                      anyOf:
                        - type: string
                          enum:
                            - PROVISIONAL
                            - ACTIVE
                            - CHURNED
                            - MERGED
                        - type: 'null'
                    billingStatus:
                      anyOf:
                        - type: string
                        - type: 'null'
                    identifierCount:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    contactCount:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                  required:
                    - id
                    - name
                    - domain
                    - type
                    - status
                    - identifierCount
                    - contactCount
                  additionalProperties: false
              impactScope:
                type: string
                enum:
                  - single_source
                  - cluster_sources
              latestJob:
                anyOf:
                  - type: object
                    properties:
                      id:
                        type: string
                        minLength: 1
                        maxLength: 191
                      operationId:
                        anyOf:
                          - type: string
                            minLength: 1
                            maxLength: 191
                          - type: 'null'
                        description: >-
                          Pass to outlit_get_customer_merge_status. Null when
                          this job has no matching tracked operation.
                      status:
                        type: string
                        enum:
                          - QUEUED
                          - RUNNING
                          - COMPLETED
                          - FAILED
                      createdAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      updatedAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    required:
                      - id
                      - operationId
                      - status
                      - createdAt
                      - updatedAt
                    additionalProperties: false
                  - type: 'null'
              jevEvidence:
                description: >-
                  Jev advisory model evidence scoped to this suggestion's
                  customers. Uncalibrated and never part of eligibility,
                  confidence, or recommended action.
                anyOf:
                  - type: object
                    properties:
                      computedAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      expiresAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      expired:
                        type: boolean
                      pairs:
                        minItems: 1
                        type: array
                        items:
                          type: object
                          properties:
                            incoming:
                              type: object
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 191
                                name:
                                  type: string
                                  minLength: 1
                                  maxLength: 500
                                domain:
                                  anyOf:
                                    - type: string
                                      minLength: 1
                                      maxLength: 500
                                    - type: 'null'
                                type:
                                  type: string
                                  enum:
                                    - COMPANY
                                    - INDIVIDUAL
                                status:
                                  anyOf:
                                    - type: string
                                      enum:
                                        - PROVISIONAL
                                        - ACTIVE
                                        - CHURNED
                                        - MERGED
                                    - type: 'null'
                                billingStatus:
                                  anyOf:
                                    - type: string
                                    - type: 'null'
                                identifierCount:
                                  type: integer
                                  minimum: 0
                                  maximum: 9007199254740991
                                contactCount:
                                  type: integer
                                  minimum: 0
                                  maximum: 9007199254740991
                              required:
                                - id
                                - name
                                - domain
                                - type
                                - status
                                - identifierCount
                                - contactCount
                              additionalProperties: false
                            candidate:
                              type: object
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 191
                                name:
                                  type: string
                                  minLength: 1
                                  maxLength: 500
                                domain:
                                  anyOf:
                                    - type: string
                                      minLength: 1
                                      maxLength: 500
                                    - type: 'null'
                                type:
                                  type: string
                                  enum:
                                    - COMPANY
                                    - INDIVIDUAL
                                status:
                                  anyOf:
                                    - type: string
                                      enum:
                                        - PROVISIONAL
                                        - ACTIVE
                                        - CHURNED
                                        - MERGED
                                    - type: 'null'
                                billingStatus:
                                  anyOf:
                                    - type: string
                                    - type: 'null'
                                identifierCount:
                                  type: integer
                                  minimum: 0
                                  maximum: 9007199254740991
                                contactCount:
                                  type: integer
                                  minimum: 0
                                  maximum: 9007199254740991
                              required:
                                - id
                                - name
                                - domain
                                - type
                                - status
                                - identifierCount
                                - contactCount
                              additionalProperties: false
                            pSameEntity:
                              type: number
                              minimum: 0
                              maximum: 1
                            relation:
                              anyOf:
                                - type: string
                                  minLength: 1
                                  maxLength: 100
                                - type: 'null'
                            relationProbability:
                              anyOf:
                                - type: number
                                  minimum: 0
                                  maximum: 1
                                - type: 'null'
                          required:
                            - incoming
                            - candidate
                            - pSameEntity
                            - relation
                            - relationProbability
                          additionalProperties: false
                    required:
                      - computedAt
                      - expiresAt
                      - expired
                      - pairs
                    additionalProperties: false
                  - type: 'null'
              canMerge:
                type: boolean
              canReject:
                type: boolean
            required:
              - id
              - status
              - proposalStatus
              - confidence
              - survivor
              - duplicate
              - reviewNotes
              - reviewedAt
              - reviewedByName
              - appliedAt
              - appliedByName
              - createdAt
              - explanation
              - impact
              - latestJob
              - canMerge
              - canReject
            additionalProperties: false
        canManageIdentityMerges:
          type: boolean
        nextCursor:
          default: null
          anyOf:
            - type: string
              minLength: 1
              maxLength: 2000
            - type: 'null'
      required:
        - suggestions
        - canManageIdentityMerges
        - nextCursor
      additionalProperties: false
      title: List identity merge suggestions
    ToolOutput_outlit_reject_identity_merge_suggestion:
      type: object
      properties:
        suggestionId:
          type: string
          minLength: 1
          maxLength: 191
        status:
          type: string
          const: REJECTED
      required:
        - suggestionId
        - status
      additionalProperties: false
      title: Reject identity merge suggestion
    ToolOutput_outlit_merge_customers:
      oneOf:
        - type: object
          properties:
            kind:
              type: string
              const: preview
            survivingCustomerId:
              type: string
              minLength: 1
              maxLength: 191
            duplicateCustomerId:
              type: string
              minLength: 1
              maxLength: 191
            previewToken:
              type: string
              minLength: 1
              maxLength: 4096
            evaluatedAt:
              type: string
              format: date-time
              pattern: >-
                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            impact:
              type: object
              properties:
                identifiers:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                contacts:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                facts:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                communications:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                accessEntries:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
              required:
                - identifiers
                - contacts
                - facts
                - communications
                - accessEntries
              additionalProperties: false
            warnings:
              maxItems: 30
              type: array
              items:
                type: object
                properties:
                  code:
                    type: string
                    minLength: 1
                    maxLength: 100
                  message:
                    type: string
                    maxLength: 1000
                required:
                  - code
                  - message
                additionalProperties: false
          required:
            - kind
            - survivingCustomerId
            - duplicateCustomerId
            - previewToken
            - evaluatedAt
            - impact
            - warnings
          additionalProperties: false
        - type: object
          properties:
            kind:
              type: string
              const: operation
            operationId:
              type: string
              minLength: 1
              maxLength: 191
            survivingCustomerId:
              type: string
              minLength: 1
              maxLength: 191
            duplicateCustomerId:
              type: string
              minLength: 1
              maxLength: 191
            status:
              type: string
              enum:
                - queued
                - running
                - completed
                - failed
            phase:
              type: string
              minLength: 1
              maxLength: 100
            error:
              type: object
              properties:
                code:
                  type: string
                  minLength: 1
                  maxLength: 100
                message:
                  type: string
                  maxLength: 1000
              required:
                - code
                - message
              additionalProperties: false
          required:
            - kind
            - operationId
            - survivingCustomerId
            - duplicateCustomerId
            - status
            - phase
          additionalProperties: false
      title: Merge customers
    ToolOutput_outlit_get_customer_merge_status:
      type: object
      properties:
        kind:
          type: string
          const: operation
        operationId:
          type: string
          minLength: 1
          maxLength: 191
        survivingCustomerId:
          type: string
          minLength: 1
          maxLength: 191
        duplicateCustomerId:
          type: string
          minLength: 1
          maxLength: 191
        status:
          type: string
          enum:
            - queued
            - running
            - completed
            - failed
        phase:
          type: string
          minLength: 1
          maxLength: 100
        error:
          type: object
          properties:
            code:
              type: string
              minLength: 1
              maxLength: 100
            message:
              type: string
              maxLength: 1000
          required:
            - code
            - message
          additionalProperties: false
      required:
        - kind
        - operationId
        - survivingCustomerId
        - duplicateCustomerId
        - status
        - phase
      additionalProperties: false
      title: Get customer merge status
    ToolOutput_outlit_list_scoped_repairs:
      type: object
      properties:
        items:
          maxItems: 20
          type: array
          items:
            type: object
            properties:
              findingId:
                type: string
                minLength: 1
                maxLength: 191
              fingerprint:
                type: string
                minLength: 1
                maxLength: 191
              state:
                type: string
                enum:
                  - manual
                  - ready
                  - admitted
                  - pending_verification
                  - recovery_needed
                  - blocked
                  - verified
              action:
                anyOf:
                  - type: string
                    enum:
                      - rehome_contact
                      - rehome_crm_account
                      - reattribute_stripe_customer
                      - rehome_source_corpus
                  - type: 'null'
              sourceCustomerId:
                anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 191
                  - type: 'null'
              targetCustomerId:
                anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 191
                  - type: 'null'
              evidenceRef:
                anyOf:
                  - type: string
                    minLength: 1
                    maxLength: 191
                  - type: 'null'
              hasSavedCandidate:
                type: boolean
              planDigest:
                anyOf:
                  - type: string
                    pattern: ^[a-f0-9]{64}$
                  - type: 'null'
              manualReason:
                anyOf:
                  - type: string
                    maxLength: 300
                  - type: 'null'
              nextStep:
                anyOf:
                  - type: string
                    maxLength: 200
                  - type: 'null'
            required:
              - findingId
              - fingerprint
              - state
              - action
              - sourceCustomerId
              - targetCustomerId
              - evidenceRef
              - hasSavedCandidate
              - planDigest
              - manualReason
              - nextStep
            additionalProperties: false
        scannedCount:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        hasMore:
          type: boolean
        nextCursor:
          anyOf:
            - type: string
              minLength: 1
              maxLength: 191
            - type: 'null'
      required:
        - items
        - scannedCount
        - hasMore
        - nextCursor
      additionalProperties: false
      title: List scoped repairs
    ToolOutput_outlit_preview_scoped_repair:
      type: object
      properties:
        findingId:
          type: string
          minLength: 1
          maxLength: 191
        fingerprint:
          type: string
          minLength: 1
          maxLength: 191
        state:
          type: string
          const: ready
        planDigest:
          type: string
          pattern: ^[a-f0-9]{64}$
        action:
          type: string
          enum:
            - rehome_contact
            - rehome_crm_account
            - reattribute_stripe_customer
            - rehome_source_corpus
        sourceCustomerId:
          type: string
          minLength: 1
          maxLength: 191
        targetCustomerId:
          type: string
          minLength: 1
          maxLength: 191
        impact:
          type: object
          properties:
            movedCounts:
              type: object
              propertyNames:
                type: string
              additionalProperties:
                type: integer
                minimum: 0
                maximum: 9007199254740991
            protectedCustomerIds:
              type: array
              items:
                type: string
                minLength: 1
                maxLength: 191
            conflictingProviderIdentities:
              type: array
              items:
                type: string
            baselineContext:
              type: object
              properties:
                v1MissingFacts:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                v1MissingSources:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                v2MissingFacts:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                v2MissingSources:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
              required:
                - v1MissingFacts
                - v1MissingSources
                - v2MissingFacts
                - v2MissingSources
              additionalProperties: false
          required:
            - movedCounts
            - protectedCustomerIds
            - conflictingProviderIdentities
          additionalProperties: false
      required:
        - findingId
        - fingerprint
        - state
        - planDigest
        - action
        - sourceCustomerId
        - targetCustomerId
        - impact
      additionalProperties: false
      title: Preview scoped repair
    ToolOutput_outlit_execute_scoped_repair:
      type: object
      properties:
        findingId:
          type: string
          minLength: 1
          maxLength: 191
        state:
          type: string
          enum:
            - ready
            - admitted
            - pending_verification
            - recovery_needed
            - manual_required
            - blocked
            - verified
        operationId:
          anyOf:
            - type: string
              minLength: 1
              maxLength: 191
            - type: 'null'
        summary:
          type: string
        nextStep:
          anyOf:
            - type: string
              maxLength: 200
            - type: 'null'
        receipt:
          anyOf:
            - type: object
              properties:
                disposition:
                  type: string
                  enum:
                    - moved
                    - resumed
                    - noop
                    - partial
                    - refused
                    - failed
                followThroughComplete:
                  type: boolean
                admissionAuditIds:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 191
                completionAuditIds:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 191
                movedIds:
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties:
                    type: array
                    items:
                      type: string
                      minLength: 1
                      maxLength: 191
                refusals:
                  type: array
                  items:
                    type: string
                informationalObservations:
                  type: array
                  items:
                    type: string
              required:
                - disposition
                - followThroughComplete
                - admissionAuditIds
                - completionAuditIds
                - movedIds
              additionalProperties: false
            - type: 'null'
      required:
        - findingId
        - state
        - operationId
        - summary
        - nextStep
        - receipt
      additionalProperties: false
      title: Execute scoped repair
    ToolOutput_outlit_verify_scoped_repair:
      type: object
      properties:
        findingId:
          type: string
          minLength: 1
          maxLength: 191
        state:
          type: string
          enum:
            - ready
            - admitted
            - pending_verification
            - recovery_needed
            - manual_required
            - blocked
            - verified
        operationId:
          anyOf:
            - type: string
              minLength: 1
              maxLength: 191
            - type: 'null'
        summary:
          type: string
        nextStep:
          anyOf:
            - type: string
              maxLength: 200
            - type: 'null'
        receipt:
          anyOf:
            - type: object
              properties:
                disposition:
                  type: string
                  enum:
                    - moved
                    - resumed
                    - noop
                    - partial
                    - refused
                    - failed
                followThroughComplete:
                  type: boolean
                admissionAuditIds:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 191
                completionAuditIds:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 191
                movedIds:
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties:
                    type: array
                    items:
                      type: string
                      minLength: 1
                      maxLength: 191
                refusals:
                  type: array
                  items:
                    type: string
                informationalObservations:
                  type: array
                  items:
                    type: string
              required:
                - disposition
                - followThroughComplete
                - admissionAuditIds
                - completionAuditIds
                - movedIds
              additionalProperties: false
            - type: 'null'
        verification:
          anyOf:
            - type: object
              properties:
                outcome:
                  type: string
                  enum:
                    - verified
                    - inconclusive
                ownership:
                  type: boolean
                derived:
                  type: boolean
                indexed:
                  type: boolean
                reconstruction:
                  type: string
                  enum:
                    - complete
                    - pending
                    - baseline_gap
                warnings:
                  type: array
                  items:
                    type: string
                informationalObservations:
                  type: array
                  items:
                    type: string
              required:
                - outcome
                - ownership
                - derived
                - indexed
                - reconstruction
                - warnings
              additionalProperties: false
            - type: 'null'
      required:
        - findingId
        - state
        - operationId
        - summary
        - nextStep
        - receipt
        - verification
      additionalProperties: false
      title: Verify scoped repair
    GatewayError:
      type: object
      properties:
        code:
          type: string
          enum:
            - INVALID_JSON
            - INVALID_TOOL_CALL
            - INVALID_TOOL_INPUT
            - INVALID_CREDENTIALS
            - TOOL_CALL_FORBIDDEN
            - TOOL_BINDING_MISSING
            - TOOL_IMPLEMENTATION_ERROR
            - TOOL_OUTPUT_INVALID
            - TOOL_RESOURCE_NOT_FOUND
            - TOOL_RESULT_TOO_LARGE
            - TOOL_GATEWAY_ERROR
            - plan_api_limit_exceeded
            - plan_billing_action_required
        message:
          type: string
        retryable:
          type: boolean
        requestId:
          type: string
        plan:
          type: string
        feature:
          type: string
        resetAt:
          anyOf:
            - type: number
            - type: 'null'
        limitBytes:
          type: integer
          exclusiveMinimum: 0
          maximum: 9007199254740991
        actualBytes:
          type: integer
          exclusiveMinimum: 0
          maximum: 9007199254740991
        validationIssues:
          maxItems: 10
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                minLength: 1
                maxLength: 100
              path:
                type: string
                maxLength: 200
            required:
              - code
              - path
            additionalProperties: false
      required:
        - code
        - message
        - retryable
        - requestId
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Outlit API key (ok_...).

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.