Skip to content

OpenAPI spec drift: the CLI is behind the SDKΒ #164

Description

@github-actions

πŸ›°οΈ OpenAPI spec drift detected

The embedded spec scripts/syllable-cli/internal/spec/openapi.json differs from upstream:

https://raw.githubusercontent.com/asksyllable/syllable-sdk-typescript/main/openapi.json

Structural diff


## NEW PATHS (3)

+ /api/v1/bridge_phrases/
  GET β€” List Bridge Phrases ['bridge_phrases']
  POST β€” Create Bridge Phrases ['bridge_phrases']
  PUT β€” Update Bridge Phrases ['bridge_phrases']

+ /api/v1/bridge_phrases/{bridge_phrases_id}
  GET β€” Get Bridge Phrases ['bridge_phrases']
  DELETE β€” Delete Bridge Phrases ['bridge_phrases']

+ /api/v1/sessions/timeline/{session_id}
  GET β€” Get Session Timeline By Id ['sessions.timeline']

## NEW SCHEMAS (18)

+ BridgePhrasesAgentInfo
  id: integer (required)
  name: string (required)

+ BridgePhrasesConfigPayload
  phrases: $ref:lib__database__dao__organization__bridge_phrases_dao__BridgePhraseMessages
  tools: array
  smart_turn_timeout_seconds: anyOf
  randomize_bridge_phrases: boolean

+ BridgePhrasesCreateRequest
  name: string (required)
  description: anyOf
  config: $ref:BridgePhrasesConfigPayload

+ BridgePhrasesProperties

+ BridgePhrasesResponse
  name: string (required)
  description: anyOf
  config: $ref:BridgePhrasesConfigPayload
  id: integer (required)
  edit_comments: anyOf
  agents_info: anyOf
  updated_at: string (required)
  last_updated_by: string (required)

+ BridgePhrasesUpdateRequest
  name: string (required)
  description: anyOf
  config: $ref:BridgePhrasesConfigPayload
  id: integer (required)
  edit_comments: anyOf

+ FilterOp

+ ListResponse_BridgePhrasesResponse_
  items: array (required)
  page: integer (required)
  page_size: integer (required)
  total_pages: anyOf
  total_count: anyOf

+ LocalizedBridgePhrases
  messages: array

+ SessionTimelineResponse
  session_id: string (required)
  session_start: anyOf
  events: array (required)

+ TargetFilterRule
  field: string (required)
  op: $ref:FilterOp (required)
  values: array

+ TargetFilters
  match: string
  on_unknown: string
  rules: array

+ TimelineEvent
  kind: $ref:TimelineEventKind (required)
  timestamp: string (required)
  offset: string (required)
  turn_index: anyOf
  source: anyOf
  text: anyOf
  lang: anyOf
  category: anyOf
  label: anyOf
  metadata: anyOf
  ... (4 more fields)

+ TimelineEventKind

+ ToolBridgePhraseConfig
  tool_name: string (required)
  phrases: $ref:lib__database__dao__organization__bridge_phrases_dao__BridgePhraseMessages (required)

+ VoicemailDetectionConfig
  mode: anyOf
  voicemail_detection_overall_timeout: anyOf
  voicemail_detection_pre_speech_timeout: anyOf
  voicemail_detection_post_speech_timeout: anyOf
  voicemail_detection_speech_threshold: anyOf

+ lib__database__dao__organization__bridge_phrases_dao__BridgePhraseMessages
  messages: array
  localized: object

+ schemas__cortex__v1__bridge_phrases__BridgePhraseMessages
  messages: array
  randomize_messages: boolean
  first_slow_messages: array
  very_slow_messages: array
  tool_responses: array

## REMOVED SCHEMAS (1)
- BridgePhraseMessages

## CHANGED SCHEMAS β€” field-level diffs (7)

~ AgentCreate
  + bridge_phrases_id: anyOf

~ AgentResponse
  + bridge_phrases_id: anyOf

~ AgentUpdate
  + bridge_phrases_id: anyOf

~ CommunicationRequestResult
  + enrichment: anyOf

~ OutboundCampaign
  + target_filters: anyOf

~ OutboundCampaignInput
  + target_filters: anyOf

~ SessionAction
  + duration_ms: anyOf

## CHANGED ENUMS β€” member diffs (7)

~ BridgePhrasesProperties
  + description
  + last_updated_by
  + name
  + updated_at

~ ChannelManagerStatus
  + DECLINED
  + SIP_DOES_NOT_EXIST_ANYWHERE
  + SIP_LOOP_DETECTED
  + SIP_NOT_FOUND
  + SIP_TEMPORARILY_UNAVAILABLE
  + UNEXPECTED_ERROR

~ FilterOp
  + eq
  + exists
  + in
  + neq
  + not_exists
  + not_in

~ TargetFilters.match
  + all
  + any

~ TargetFilters.on_unknown
  + exclude
  + include

~ TimelineEventKind
  + latency
  + tool
  + transcript

~ VoicemailDetectionConfig.mode
  + v1
  + v2

## SUMMARY
  Paths:   +3 added, -0 removed, ~0 changed
  Schemas: +18 added, -1 removed, ~7 changed
  Enums:   ~7 changed (0 with removed values β€” breaking)

How to reconcile

Run the syllable-sync skill (or let the local syllable-spec-sync routine do it). It replaces the embedded spec and updates cmd/*.go + docs in a single atomic PR β€” never merge a spec-only bump, or schema get will advertise endpoints the CLI can't call.

Auto-generated by spec-drift.yml Β· run log. This issue is updated in place on each run and closed automatically when the spec is back in sync.

Metadata

Metadata

Assignees

No one assigned

    Labels

    spec-driftEmbedded OpenAPI spec has drifted from the upstream SDK

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions