B3

B3 Ai API

The Ai API from B3 — 3 operation(s) for ai.

Operations 11

GET /v1/ai/workflow/chat/history
GET /v1/ai/workflow/chat/sessions
POST /v1/ai/workflow/chat/stream
GET /v1/organizations/{orgId}/ai-credits/usage Get AI credit usage
GET /v1/ai/pulse
GET /v1/ai/workflow/chat/debug
PUT /v1/ai/workflow/chat/debug
POST /v1/ai/workflow/chat/messages
GET /v1/ai/workflow/chat/preflight
GET /v1/ai/workflow/chat/snapshot
POST /v1/ai/workflow/chat/usage

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/b3-ai-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

b3-ai-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: B3 AI API
  version: '1.0'
  description: 'Operations tagged Ai across 2 of this provider''s published API definitions: b3-ai-api-openapi.yml, b3-b3os-workflow-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.b3os.org/v1
  description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: Ai
paths:
  /v1/ai/workflow/chat/history:
    get:
      description: Get chat history for a workflow or session
      parameters:
      - description: Workflow ID (for edit page)
        in: query
        name: workflowId
        schema:
          type: string
      - description: Session ID (for create page)
        in: query
        name: sessionId
        schema:
          type: string
      - description: 'Maximum number of messages to return (default: 20, max: 100)'
        in: query
        name: limit
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetChatHistorySuccessResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse'
          description: Bad Request
      tags:
      - Ai
    servers:
    - url: https://api.b3os.org/v1
      description: Base URL declared by the provider in apis.yml (roadmap#122).
  /v1/ai/workflow/chat/sessions:
    get:
      description: List chat sessions for the current organization
      parameters:
      - description: 'Maximum number of sessions to return (default: 20, max: 50)'
        in: query
        name: limit
        schema:
          type: integer
      - description: 'Offset for pagination (default: 0)'
        in: query
        name: offset
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListChatSessionsSuccessResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse'
          description: Forbidden
      tags:
      - Ai
    servers:
    - url: https://api.b3os.org/v1
      description: Base URL declared by the provider in apis.yml (roadmap#122).
  /v1/ai/workflow/chat/stream:
    post:
      description: Stream AI chat for workflow generation and updates via SSE
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - type: object
              - $ref: '#/components/schemas/ChatParams'
                summary: request
                description: Chat request parameters
        description: Chat request parameters
        required: true
      responses:
        '200':
          content:
            text/event-stream:
              schema:
                type: string
          description: 'SSE stream with events: chunk, node, done, error'
        '400':
          content:
            text/event-stream:
              schema:
                $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse'
          description: Bad Request
      tags:
      - Ai
    servers:
    - url: https://api.b3os.org/v1
      description: Base URL declared by the provider in apis.yml (roadmap#122).
  /v1/organizations/{orgId}/ai-credits/usage:
    get:
      description: Get AI credit usage breakdown for a specific month
      parameters:
      - description: Organization ID
        in: path
        name: orgId
        required: true
        schema:
          type: string
      - description: Year-Month in YYYY-MM format
        in: query
        name: yearMonth
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAICreditUsageSuccessResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse'
          description: Bad Request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse'
          description: Not Found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse'
          description: Internal Server Error
      summary: Get AI credit usage
      tags:
      - Ai
  /v1/ai/pulse:
    get:
      description: Get the proactive Pulse feed (situation-monitor cards + held-asset signals) for the caller's org.
      parameters:
      - description: Pass \
        in: query
        name: refresh
        schema:
          type: string
      - description: Pass \
        in: query
        name: demo
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
          description: OK
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse'
          description: Unauthorized
      tags:
      - Ai
  /v1/ai/workflow/chat/debug:
    get:
      description: Get debug data for an AI chat session
      parameters:
      - description: Conversation ID (preferred, stable identifier)
        in: query
        name: conversationId
        schema:
          type: string
      - description: Workflow ID (for edit page, legacy)
        in: query
        name: workflowId
        schema:
          type: string
      - description: Session ID (for create page, legacy)
        in: query
        name: sessionId
        schema:
          type: string
      - description: 'Caddie lane to restrict to (v1, v2, v3). When omitted and grouped=false: non-admin callers default to v2 (backward compat); admin callers get the most recently updated lane, so v3-only conversations stay visible.'
        in: query
        name: agentVersion
        schema:
          type: string
      - description: 'When true, return both v2 and v3 lanes as { versions: { v2, v3 } }'
        in: query
        name: grouped
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetChatDebugDataSuccessResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse'
          description: Bad Request
      tags:
      - Ai
    put:
      description: Save or update debug data for an AI chat session
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - type: object
              - $ref: '#/components/schemas/SaveChatDebugDataParams'
                summary: body
                description: Debug data to save
        description: Debug data to save
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.SuccessResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse'
          description: Bad Request
      tags:
      - Ai
  /v1/ai/workflow/chat/messages:
    post:
      description: Persist one chat message (caddie records V3 turns in chat history)
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - type: object
              - $ref: '#/components/schemas/SaveChatMessageParams'
                summary: body
                description: Message to persist
        description: Message to persist
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.SuccessResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse'
          description: Bad Request
      tags:
      - Ai
  /v1/ai/workflow/chat/preflight:
    get:
      description: Check whether the org may start a caddie V3 chat turn (AI-Credit gate)
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreflightChatResponse'
          description: OK
      tags:
      - Ai
  /v1/ai/workflow/chat/snapshot:
    get:
      description: 'Get the live/pending state of a conversation (refresh-resume): whether a turn is actively running, the pending interrupt card, and the current mode. Excludes the transcript (use /chat/history) and the canvas (use the workflow record).'
      parameters:
      - description: Conversation ID (stable; the V3 chat checkpoint key)
        in: query
        name: conversationId
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetConversationSnapshotSuccessResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse'
          description: Bad Request
      tags:
      - Ai
  /v1/ai/workflow/chat/usage:
    post:
      description: Report one chat turn's LLM usage (caddie V3) for AI-Credit billing
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - type: object
              - $ref: '#/components/schemas/ReportChatUsageParams'
                summary: body
                description: Turn usage to bill
        description: Turn usage to bill
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.SuccessResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse'
          description: Bad Request
      tags:
      - Ai
components:
  schemas:
    GetChatHistorySuccessResponse:
      properties:
        code:
          example: 200
          type: integer
        data:
          items:
            $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.ChatMessage'
          type: array
          uniqueItems: false
        message:
          example: success
          type: string
        requestId:
          type: string
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse:
      properties:
        code:
          type: integer
        details:
          items: {}
          type: array
          uniqueItems: false
        message:
          type: string
        requestId:
          type: string
      type: object
    PaginatedData-schemas_ChatSession:
      properties:
        hasMore:
          type: boolean
        items:
          items:
            $ref: '#/components/schemas/ChatSession'
          type: array
          uniqueItems: false
        limit:
          type: integer
        offset:
          type: integer
      type: object
    ChatSession:
      properties:
        contextType:
          description: ContextType indicates whether this is a "session" or "workflow" chat
          type: string
        firstMessageAt:
          description: FirstMessageAt is when the first message was sent
          type: string
        lastMessageAt:
          description: LastMessageAt is when the last message was sent
          type: string
        messageCount:
          description: MessageCount is the total number of messages in this session
          type: integer
        preview:
          description: Preview is the content of the first user message (truncated)
          type: string
        sessionId:
          description: SessionID for create-page sessions (client-generated, e.g., session_1234567890_abc)
          type: string
        workflowId:
          description: WorkflowID for edit-page sessions (server-generated UUID)
          type: string
        workflowName:
          description: WorkflowName is the name of the associated workflow (if available)
          type: string
      type: object
    ChatImageAttachment:
      properties:
        base64:
          type: string
        ipfsUrl:
          type: string
      type: object
    ChatParams:
      properties:
        definition:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WorkflowDefinition'
        description:
          description: Optional - for generating new workflow
          maxLength: 500
          type: string
        failedRunId:
          description: Optional - ID of a failed run to provide error context for debugging
          maxLength: 50
          type: string
        images:
          description: Optional - images attached to the message (base64 for LLM, IPFS for storage)
          items:
            $ref: '#/components/schemas/ChatImageAttachment'
          type: array
          uniqueItems: false
        lastEventIndex:
          description: Last received event index for replay (reconnection)
          minimum: 0
          type: integer
        message:
          description: Optional on reconnect, required for new sessions
          maxLength: 10000
          type: string
        name:
          description: Optional - for generating new workflow
          maxLength: 100
          type: string
        preferredMode:
          description: Optional - user's preferred mode hint; overrides auto-classifier when set
          enum:
          - planning
          - building
          - repair
          - conversation
          type: string
        requestId:
          description: Client-generated UUID4 for persistent session tracking (optional for legacy/inline mode)
          type: string
        sessionId:
          description: Optional - for create page (temporary session context)
          type: string
        timezone:
          description: Optional - user's IANA timezone (e.g. "America/New_York") for time-aware responses
          type: string
        workflowId:
          description: Optional - for edit page (existing workflow context)
          type: string
      type: object
    ListChatSessionsSuccessResponse:
      properties:
        code:
          example: 200
          type: integer
        data:
          $ref: '#/components/schemas/PaginatedData-schemas_ChatSession'
        message:
          example: success
          type: string
        requestId:
          example: req_abc123
          type: string
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.ChatMessage:
      properties:
        content:
          type: string
        createdAt:
          type: string
        id:
          type: string
        imageUrls:
          items:
            type: string
          type: array
          uniqueItems: false
        organizationId:
          type: string
        role:
          type: string
        sessionId:
          type: string
        tokensUsed:
          type: integer
        workflowId:
          type: string
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WorkflowDefinition:
      description: 'Definition is the full workflow graph to execute. Must contain a

        "root" node with type "manual". All action nodes referenced in

        children arrays must be present.'
      properties:
        inputSchema:
          items:
            $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WorkflowInput'
          type: array
          uniqueItems: false
        nodes:
          additionalProperties:
            $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WorkflowNode'
          type: object
        sensitivePropKeys:
          items:
            type: string
          type: array
          uniqueItems: false
      required:
      - nodes
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WorkflowInput:
      properties:
        description:
          type: string
        key:
          type: string
        required:
          type: boolean
        type:
          description: '"string", "number", "boolean", "object", "array"'
          type: string
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.ConnectorReference:
      description: nil if action doesn't need connector
      properties:
        id:
          description: Connector ID (or subOrgId for turnkey)
          type: string
        type:
          description: Connector type (e.g., "slack", "turnkey")
          type: string
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WorkflowNode:
      properties:
        branch:
          description: '"then" or "else", only when parent is "if" node'
          type: string
        children:
          items:
            type: string
          type: array
          uniqueItems: false
        connector:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.ConnectorReference'
        description:
          description: AI-generated 1-sentence description
          type: string
        loopBody:
          description: Loop body nodes (only for for-each nodes)
          items:
            type: string
          type: array
          uniqueItems: false
        payload:
          additionalProperties: {}
          type: object
        resultSchema:
          additionalProperties: {}
          description: 'ResultSchema describes the output structure of this node (populated dynamically for x402 endpoints).

            This is used by the frontend to show available output variables in the variable picker.'
          type: object
        titleOverride:
          description: AI-generated short title (2-6 words), only when more descriptive than default
          type: string
        type:
          type: string
      required:
      - payload
      - type
      type: object
    GetAICreditUsageSuccessResponse:
      properties:
        code:
          example: 0
          type: integer
        data:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.AICreditUsageSummaryPublic'
        message:
          example: successfully
          type: string
        requestId:
          example: req_abc123
          type: string
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.AICreditUsageSummaryPublic:
      properties:
        summary:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.AICreditUsageSummaryTotals'
        yearMonth:
          type: string
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.AICreditUsageSummaryTotals:
      properties:
        adjusted:
          type: number
        deposited:
          type: number
        granted:
          type: number
        used:
          type: number
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.RunStatus:
      enum:
      - running
      - waiting
      - success
      - partial
      - failure
      - cancelled
      type: string
      x-enum-comments:
        RunStatusCancelled: Run was cancelled by user
        RunStatusFailure: Run failed
        RunStatusPartial: Run completed with mixed for-each iteration outcomes
        RunStatusRunning: Run is executing
        RunStatusSuccess: Run completed successfully
        RunStatusWaiting: Run is paused, waiting for a trigger to resume
      x-enum-varnames:
      - RunStatusRunning
      - RunStatusWaiting
      - RunStatusSuccess
      - RunStatusPartial
      - RunStatusFailure
      - RunStatusCancelled
    SaveChatDebugDataParams:
      properties:
        agentVersion:
          description: Caddie lane that produced this debug payload (defaults to v2 when empty)
          enum:
          - v1
          - v2
          - v3
          type: string
        conversationId:
          description: Stable conversation identifier (preferred)
          maxLength: 255
          type: string
        debugData:
          items:
            type: integer
          type: array
          uniqueItems: false
        sessionId:
          description: 'Metadata: which create-page session'
          maxLength: 255
          type: string
        workflowId:
          description: 'Metadata: which workflow'
          maxLength: 50
          type: string
      required:
      - debugData
      type: object
    SaveChatMessageParams:
      properties:
        agentVersion:
          description: empty defaults to v2 at the column level
          enum:
          - v1
          - v2
          - v3
          type: string
        content:
          type: string
        conversationId:
          maxLength: 255
          type: string
        createdAt:
          description: 'CreatedAt lets the caller stamp the row''s timestamp explicitly. caddie sets

            it on the USER row to the moment the message was received (turn start), so

            its created_at reflects when the user actually sent it rather than the

            turn-end persist moment (the assistant row omits it → DB now()). Nil → the

            chat_messages.created_at column default (now()) applies.'
          type: string
        role:
          enum:
          - user
          - assistant
          - system
          - context
          type: string
        structuredPayload:
          description: Phase 2A typed payload — persisted to chat_messages.structured_payload (bounded by caddie)
          items:
            type: integer
          type: array
          uniqueItems: false
        turnId:
          maxLength: 50
          type: string
        workflowId:
          maxLength: 50
          type: string
      required:
      - content
      - conversationId
      - role
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CommentReply:
      properties:
        createdAt:
          type: string
        createdBy:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.StickyNoteUser'
        id:
          type: string
        text:
          type: string
        updatedAt:
          type: string
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.StickyNoteSize:
      properties:
        height:
          type: number
        width:
          type: number
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.ChatMessage_2:
      properties:
        agentVersion:
          type: string
        content:
          type: string
        conversationId:
          type: string
        createdAt:
          type: string
        id:
          type: string
        imageUrls:
          items:
            type: string
          type: array
          uniqueItems: false
        linkedRunFinishedAt:
          type: string
        linkedRunId:
          type: string
        linkedRunStartedAt:
          type: string
        linkedRunStatus:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.RunStatus'
        organizationId:
          type: string
        role:
          type: string
        senderUserId:
          type: string
        sessionId:
          type: string
        structuredPayload:
          items:
            type: integer
          type: array
          uniqueItems: false
        tokensUsed:
          type: integer
        turnId:
          type: string
        workflowId:
          type: string
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WorkflowNode_2:
      properties:
        blockContext:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.BlockNodeContext'
        branch:
          description: '"then"/"else" (if parent), "resumed"/"timed_out" (wait parent)'
          type: string
        children:
          items:
            type: string
          type: array
          uniqueItems: false
        connector:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.ConnectorReference_2'
        description:
          description: AI-generated 1-sentence description
          type: string
        loopBody:
          description: Loop body nodes (only for for-each nodes)
          items:
            type: string
          type: array
          uniqueItems: false
        payload:
          additionalProperties: {}
          type: object
        resultSchema:
          additionalProperties: {}
          description: 'ResultSchema describes the output structure of this node (populated dynamically for x402 endpoints).

            This is used by the frontend to show available output variables in the variable picker.'
          type: object
        titleOverride:
          description: AI-generated short title (2-6 words), only when more descriptive than default
          type: string
        type:
          type: string
      required:
      - payload
      - type
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.BlockOutputProperty:
      properties:
        description:
          type: string
        properties:
          additionalProperties:
            $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.BlockOutputProperty'
          type: object
        type:
          type: string
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.PropVisibleWhen:
      description: 'VisibleWhen controls conditional visibility: show this prop only when

        the referenced prop has the specified value.'
      properties:
        propKey:
          type: string
        value: {}
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.PropSchemaSummaryAggregate:
      properties:
        column:
          description: Column key in PropSchema.Columns.
          type: string
        label:
          description: 'Optional override for the displayed label. If empty, the frontend

            derives a label from the column + reducer (e.g. "Total amount").'
          type: string
        reduce:
          description: 'Reducer name. Matches the key in the frontend cell-spec''s

            `aggregate` map (currently: "sum", "count"). Unknown reducers are

            silently skipped on the frontend.'
          type: string
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.TemplateProp:
      properties:
        default: {}
        description:
          type: string
        key:
          type: string
        name:
          type: string
        properties:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.PropSchema'
        required:
          type: boolean
        sensitive:
          type: boolean
        type:
          description: '"string", "number", "integer", "boolean", "object" (for csvTable)'
          type: string
      type: object
    GetChatDebugDataSuccessResponse:
      properties:
        code:
          example: 200
          type: integer
        data:
          items:
            type: integer
          type: array
          uniqueItems: false
        message:
          example: success
          type: string
        requestId:
          type: string
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.TemplateVisibility:
      enum:
      - org
      - public
      - org
      - public
      type: string
      x-enum-comments:
        TemplateVisibilityOrg: Only visible to organization members
        TemplateVisibilityPublic: Visible to everyone
      x-enum-varnames:
      - TemplateVisibilityOrg
      - TemplateVisibilityPublic
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.StickyNote:
      properties:
        color:
          type: string
        createdAt:
          type: string
        createdBy:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.StickyNoteUser'
        id:
          type: string
        position:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.NodePosition'
        size:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.StickyNoteSize'
        text:
          type: string
        updatedAt:
          type: string
        zIndex:
          type: integer
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.PropSource:
      properties:
        fieldPath:
          type: string
        nodeId:
          type: string
        nodeLabel:
          type: string
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WorkflowDefinition_2:
      description: 'Definition is the inline workflow graph to analyze. Same shape as a

        saved workflow''s definition. Unlike the ephemeral-run endpoint there

        is no trigger restriction — analysis is read-only and method-agnostic.'
      properties:
        blockExpansions:
          additionalProperties:
            $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.BlockExpansionMeta'
          description: Set on run snapshots only (not workflow DB)
          type: object
        inputSchema:
          items:
            $ref: '#/components/schemas/

# --- truncated at 32 KB (59 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/b3/refs/heads/main/openapi/b3-ai-api-openapi.yml