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