@amigo-ai/platform-sdk 0.92.0 → 0.94.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,12 @@
1
+ // Voice MODEL FAMILIES (2026-07-09 rename): amigo = Amigo's own pipeline (the default),
2
+ // gpt_realtime = OpenAI's GPT-Realtime family, gpt_live = OpenAI's GPT-Live full-duplex
3
+ // family (dark until its API is GA — accepted by the contract, never selected by default).
4
+ // Families name models; runtimes are platform-internal. Legacy values
5
+ // (inhouse/atlas/openai_realtime) are normalized server-side and never appear here.
1
6
  const voiceSessionProviders = [
2
- 'inhouse',
3
- 'openai_realtime',
4
- 'atlas',
7
+ 'amigo',
8
+ 'gpt_realtime',
9
+ 'gpt_live',
5
10
  ];
6
11
  export const VOICE_SESSION_PROVIDERS = voiceSessionProviders;
7
12
  const sttProviders = ['deepgram', 'openai', 'cartesia'];
@@ -1 +1 @@
1
- {"version":3,"file":"voice.js","sourceRoot":"","sources":["../../src/resources/voice.ts"],"names":[],"mappings":"AAoBA,MAAM,qBAAqB,GAAG;IAC5B,SAAS;IACT,iBAAiB;IACjB,OAAO;CAC2C,CAAA;AACpD,MAAM,CAAC,MAAM,uBAAuB,GAAG,qBAGtC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,CAA2C,CAAA;AACjG;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,YAG5B,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,CAA2C,CAAA;AACjG,MAAM,CAAC,MAAM,aAAa,GAAG,YAG5B,CAAA"}
1
+ {"version":3,"file":"voice.js","sourceRoot":"","sources":["../../src/resources/voice.ts"],"names":[],"mappings":"AAoBA,wFAAwF;AACxF,wFAAwF;AACxF,2FAA2F;AAC3F,sEAAsE;AACtE,oFAAoF;AACpF,MAAM,qBAAqB,GAAG;IAC5B,OAAO;IACP,cAAc;IACd,UAAU;CACwC,CAAA;AACpD,MAAM,CAAC,MAAM,uBAAuB,GAAG,qBAGtC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,CAA2C,CAAA;AACjG;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,YAG5B,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,CAA2C,CAAA;AACjG,MAAM,CAAC,MAAM,aAAa,GAAG,YAG5B,CAAA"}
@@ -7716,7 +7716,6 @@ export interface components {
7716
7716
  channel_overrides?: {
7717
7717
  [key: string]: components["schemas"]["ChannelOverride"];
7718
7718
  };
7719
- escalation_config?: components["schemas"]["StateRiskOverride"] | null;
7720
7719
  /**
7721
7720
  * Exit Condition Tool Call Specs
7722
7721
  * @default []
@@ -7770,7 +7769,6 @@ export interface components {
7770
7769
  channel_overrides?: {
7771
7770
  [key: string]: components["schemas"]["ChannelOverride"];
7772
7771
  };
7773
- escalation_config?: components["schemas"]["StateRiskOverride"] | null;
7774
7772
  /**
7775
7773
  * Exit Condition Tool Call Specs
7776
7774
  * @default []
@@ -10988,6 +10986,32 @@ export interface components {
10988
10986
  /** Total */
10989
10987
  total: number;
10990
10988
  };
10989
+ /** ConversationStatusTransitionRequest */
10990
+ ConversationStatusTransitionRequest: {
10991
+ /**
10992
+ * Reason
10993
+ * @description Low-cardinality transition tag (e.g. hsm_terminal, use_case_rebind) recorded on the audit event and the conversation world event.
10994
+ */
10995
+ reason: string;
10996
+ /**
10997
+ * Status
10998
+ * @enum {string}
10999
+ */
11000
+ status: "completed" | "closed";
11001
+ };
11002
+ /** ConversationStatusTransitionResponse */
11003
+ ConversationStatusTransitionResponse: {
11004
+ /**
11005
+ * Conversation Id
11006
+ * Format: uuid
11007
+ */
11008
+ conversation_id: string;
11009
+ /**
11010
+ * Status
11011
+ * @enum {string}
11012
+ */
11013
+ status: "completed" | "closed";
11014
+ };
10991
11015
  /** ConversationThreadRequest */
10992
11016
  ConversationThreadRequest: {
10993
11017
  channel_kind: components["schemas"]["ChannelKind"];
@@ -11106,6 +11130,16 @@ export interface components {
11106
11130
  * @default []
11107
11131
  */
11108
11132
  tool_calls?: components["schemas"]["ConversationToolCallDetail"][];
11133
+ /**
11134
+ * Turn Id
11135
+ * @description Stable identifier of the user exchange this message belongs to, derived deterministically from (conversation_id, turn_index) — identical across ``POST /turns`` responses and re-reads of the conversation history. User and agent messages from the same exchange share this value. Null on messages that precede the first user turn (proactive greetings, channel-event preludes).
11136
+ */
11137
+ turn_id?: string | null;
11138
+ /**
11139
+ * Turn Index
11140
+ * @description Zero-based ordinal of the user exchange this message belongs to (0 = first user turn). Derived server-side from the conversation's user-turn count — never stored. Null exactly when ``turn_id`` is null.
11141
+ */
11142
+ turn_index?: number | null;
11109
11143
  };
11110
11144
  /** ConversationTurnAvailableAction */
11111
11145
  ConversationTurnAvailableAction: {
@@ -11310,6 +11344,12 @@ export interface components {
11310
11344
  channel?: components["schemas"]["ChannelKind"];
11311
11345
  /** Entity Id */
11312
11346
  entity_id?: string | null;
11347
+ /**
11348
+ * Force New
11349
+ * @description Outbound thread-keyed channels (sms/imessage) only: close any existing ACTIVE conversation on the computed provider thread (recipient + use case) before dispatching, so the opener materializes a brand-new conversation instead of continuing the old thread. Rejected with 422 on channel=web — every web create already starts a new conversation, so force_new is meaningless there.
11350
+ * @default false
11351
+ */
11352
+ force_new?: boolean;
11313
11353
  /** @description Optional context steering what the agent opens with on an outbound conversation. */
11314
11354
  instruction?: components["schemas"]["BackgroundString"] | null;
11315
11355
  /** @description Destination address for an outbound conversation (E.164 for sms/imessage). Required for non-web. */
@@ -11619,7 +11659,6 @@ export interface components {
11619
11659
  * @enum {string}
11620
11660
  */
11621
11661
  environment?: "sandbox" | "production";
11622
- escalation_policy?: components["schemas"]["EscalationPolicy"] | null;
11623
11662
  /**
11624
11663
  * Is Active
11625
11664
  * @default true
@@ -11628,11 +11667,6 @@ export interface components {
11628
11667
  /** Keyterms */
11629
11668
  keyterms?: string[];
11630
11669
  name: components["schemas"]["NameString"];
11631
- /**
11632
- * Safety Filters Enabled
11633
- * @default true
11634
- */
11635
- safety_filters_enabled?: boolean;
11636
11670
  /** Tags */
11637
11671
  tags?: components["schemas"]["ServiceTag"][];
11638
11672
  /**
@@ -14200,34 +14234,6 @@ export interface components {
14200
14234
  */
14201
14235
  workspace_id: string;
14202
14236
  };
14203
- /**
14204
- * EscalationPolicy
14205
- * @description Per-service routing for engine-detected escalation triggers.
14206
- *
14207
- * Each trigger source maps to one EscalationAction. The three enumerated
14208
- * fields below are the trigger_sources actually emitted by the agent-engine
14209
- * today; new triggers can be added as fields without breaking back-compat.
14210
- *
14211
- * Partial policies are intentional: every field defaults to OperatorAction,
14212
- * so a PUT body like ``{"context_window_exhaustion": {"type": "forward"}}``
14213
- * overrides only that trigger and leaves the others on the operator default.
14214
- * To opt the entire service back to today's behavior, set
14215
- * ``Service.escalation_policy = None`` (caveat: the platform-api Service
14216
- * update path uses ``exclude_none=True`` and currently has no clears-via-null
14217
- * branch, so this requires a direct config edit; see follow-up issue).
14218
- *
14219
- * Resolution lookup is done against ``model_fields``: a trigger_source that
14220
- * is not an enumerated field name falls through to OperatorAction, never
14221
- * a non-Action Pydantic internal.
14222
- */
14223
- EscalationPolicy: {
14224
- /** Context Window Exhaustion */
14225
- context_window_exhaustion?: components["schemas"]["OperatorAction"] | components["schemas"]["ForwardAction"] | components["schemas"]["HangupAction"];
14226
- /** Conversation Monitor */
14227
- conversation_monitor?: components["schemas"]["OperatorAction"] | components["schemas"]["ForwardAction"] | components["schemas"]["HangupAction"];
14228
- /** Risk Scorer */
14229
- risk_scorer?: components["schemas"]["OperatorAction"] | components["schemas"]["ForwardAction"] | components["schemas"]["HangupAction"];
14230
- };
14231
14237
  /** EscalationState */
14232
14238
  EscalationState: {
14233
14239
  /** Agent Confidence */
@@ -15702,26 +15708,6 @@ export interface components {
15702
15708
  /** Templates */
15703
15709
  templates: components["schemas"]["FormTemplate-Input"][];
15704
15710
  };
15705
- /**
15706
- * ForwardAction
15707
- * @description Cold-transfer the caller to the service's configured forwarding
15708
- * destination (set via ``Service.voice_config.forwarding``).
15709
- *
15710
- * No agent-side decision and no operator dashboard required — the engine
15711
- * invokes the same forwarding callback used by the LLM-driven
15712
- * ``forward_call`` tool, with no location override, which falls through to
15713
- * the per-service ``ServiceForwardingConfig``.
15714
- *
15715
- * If ``voice_config.forwarding`` is unset, the dispatcher falls back to the
15716
- * operator path (audit event + SSE only).
15717
- */
15718
- ForwardAction: {
15719
- /**
15720
- * @description discriminator enum property added by openapi-typescript
15721
- * @enum {string}
15722
- */
15723
- type: "forward";
15724
- };
15725
15711
  /** ForwardCallResolvedEvent */
15726
15712
  ForwardCallResolvedEvent: {
15727
15713
  /**
@@ -15973,43 +15959,6 @@ export interface components {
15973
15959
  /** Detail */
15974
15960
  detail?: components["schemas"]["ValidationError"][];
15975
15961
  };
15976
- /**
15977
- * HangupAction
15978
- * @description End the call gracefully via the existing speaker-drain hangup path.
15979
- */
15980
- HangupAction: {
15981
- /**
15982
- * @description discriminator enum property added by openapi-typescript
15983
- * @enum {string}
15984
- */
15985
- type: "hangup";
15986
- };
15987
- /**
15988
- * HardEscalationRule
15989
- * @description Non-negotiable escalation rule for healthcare compliance.
15990
- */
15991
- HardEscalationRule: {
15992
- /**
15993
- * Detection
15994
- * @enum {string}
15995
- */
15996
- detection: "intent" | "state" | "fhir";
15997
- /**
15998
- * Immediate
15999
- * @default false
16000
- */
16001
- immediate?: boolean;
16002
- /** Intent Patterns */
16003
- intent_patterns?: string[] | null;
16004
- /** Name */
16005
- name: string;
16006
- /** Operator Type */
16007
- operator_type: string;
16008
- /** Reason */
16009
- reason: string;
16010
- /** Regulatory Basis */
16011
- regulatory_basis: string;
16012
- };
16013
15962
  /**
16014
15963
  * HarnessContext
16015
15964
  * @description The neutral, retrievable session-bootstrap context for ANY framework.
@@ -18144,18 +18093,6 @@ export interface components {
18144
18093
  [key: string]: unknown;
18145
18094
  };
18146
18095
  };
18147
- /**
18148
- * OperatorAction
18149
- * @description Today's behavior — write escalation.requested + publish SSE, wait for a
18150
- * human operator to join via the dashboard. No-op if no operators are staffed.
18151
- */
18152
- OperatorAction: {
18153
- /**
18154
- * @description discriminator enum property added by openapi-typescript
18155
- * @enum {string}
18156
- */
18157
- type: "operator";
18158
- };
18159
18096
  /**
18160
18097
  * OperatorIntelligenceSummary
18161
18098
  * @description Operator intervention summary.
@@ -20874,39 +20811,6 @@ export interface components {
20874
20811
  */
20875
20812
  item_id?: string | null;
20876
20813
  };
20877
- /**
20878
- * RiskSignalConfig
20879
- * @description Per-workspace risk scoring config. Stored on Service.
20880
- */
20881
- RiskSignalConfig: {
20882
- /**
20883
- * Alert Threshold
20884
- * @default 50
20885
- */
20886
- alert_threshold?: number;
20887
- /**
20888
- * Auto Escalate Threshold
20889
- * @default 70
20890
- */
20891
- auto_escalate_threshold?: number;
20892
- /**
20893
- * Enabled
20894
- * @default true
20895
- */
20896
- enabled?: boolean;
20897
- /**
20898
- * Monitor Threshold
20899
- * @default 30
20900
- */
20901
- monitor_threshold?: number;
20902
- /**
20903
- * Weights
20904
- * @default {}
20905
- */
20906
- weights?: {
20907
- [key: string]: number;
20908
- };
20909
- };
20910
20814
  /**
20911
20815
  * RiskSummary
20912
20816
  * @description Aggregated risk signals across the call.
@@ -21402,12 +21306,6 @@ export interface components {
21402
21306
  * @enum {string}
21403
21307
  */
21404
21308
  environment?: "sandbox" | "production";
21405
- escalation_policy?: components["schemas"]["EscalationPolicy"] | null;
21406
- /**
21407
- * Hard Escalation Rules
21408
- * @default []
21409
- */
21410
- hard_escalation_rules?: components["schemas"]["HardEscalationRule"][];
21411
21309
  /**
21412
21310
  * Id
21413
21311
  * Format: uuid
@@ -21419,12 +21317,6 @@ export interface components {
21419
21317
  keyterms: string[];
21420
21318
  /** Name */
21421
21319
  name: string;
21422
- risk_signal_config?: components["schemas"]["RiskSignalConfig"] | null;
21423
- /**
21424
- * Safety Filters Enabled
21425
- * @default true
21426
- */
21427
- safety_filters_enabled?: boolean;
21428
21320
  /** Tags */
21429
21321
  tags: components["schemas"]["ServiceTag"][];
21430
21322
  /**
@@ -21485,11 +21377,8 @@ export interface components {
21485
21377
  * ServiceForwardingConfig
21486
21378
  * @description Per-service call-forwarding destination + transfer mechanism.
21487
21379
  *
21488
- * Read by:
21489
- * - LLM-driven ``forward_call`` tool (tier 3 fallback when the LLM doesn't
21490
- * pass an explicit ``phone_number`` and no EHR location is configured).
21491
- * - ``EscalationPolicy.ForwardAction`` — engine-fired escalation with no
21492
- * overrides falls through to the same path.
21380
+ * Read by the LLM-driven ``forward_call`` tool (tier 3 fallback when the LLM
21381
+ * doesn't pass an explicit ``phone_number`` and no EHR location is configured).
21493
21382
  *
21494
21383
  * Per-service forwarding is a binary presence — set means tier 3 resolves
21495
21384
  * to it, None means tier 3 has no static target. (The legacy per-phone
@@ -21544,7 +21433,6 @@ export interface components {
21544
21433
  * @enum {string}
21545
21434
  */
21546
21435
  environment?: "sandbox" | "production";
21547
- escalation_policy?: components["schemas"]["EscalationPolicy"] | null;
21548
21436
  /**
21549
21437
  * Id
21550
21438
  * Format: uuid
@@ -21561,11 +21449,6 @@ export interface components {
21561
21449
  keyterms: string[];
21562
21450
  /** Name */
21563
21451
  name: string;
21564
- /**
21565
- * Safety Filters Enabled
21566
- * @default true
21567
- */
21568
- safety_filters_enabled?: boolean;
21569
21452
  /** Tags */
21570
21453
  tags: components["schemas"]["ServiceTag"][];
21571
21454
  /** Tool Capacity */
@@ -21651,7 +21534,7 @@ export interface components {
21651
21534
  /** Progress Vocabulary */
21652
21535
  progress_vocabulary?: string[] | null;
21653
21536
  /** Session Provider */
21654
- session_provider?: ("inhouse" | "openai_realtime" | "atlas") | null;
21537
+ session_provider?: ("amigo" | "gpt_realtime" | "gpt_live") | null;
21655
21538
  /** Transition Deadline Ms */
21656
21539
  transition_deadline_ms?: number | null;
21657
21540
  /** Tts Config */
@@ -21721,7 +21604,7 @@ export interface components {
21721
21604
  /** Progress Vocabulary */
21722
21605
  progress_vocabulary?: string[] | null;
21723
21606
  /** Session Provider */
21724
- session_provider?: ("inhouse" | "openai_realtime" | "atlas") | null;
21607
+ session_provider?: ("amigo" | "gpt_realtime" | "gpt_live") | null;
21725
21608
  /** Transition Deadline Ms */
21726
21609
  transition_deadline_ms?: number | null;
21727
21610
  /** Tts Config */
@@ -23486,26 +23369,6 @@ export interface components {
23486
23369
  */
23487
23370
  session_status: "created" | "already_active";
23488
23371
  };
23489
- /**
23490
- * StateRiskOverride
23491
- * @description Per-state escalation tuning. Stored on ActionState.
23492
- */
23493
- StateRiskOverride: {
23494
- /** Auto Escalate Threshold */
23495
- auto_escalate_threshold?: number | null;
23496
- /**
23497
- * Max Loop Count
23498
- * @default 3
23499
- */
23500
- max_loop_count?: number;
23501
- /** Operator Skill */
23502
- operator_skill?: string | null;
23503
- /**
23504
- * Topic Risk Score
23505
- * @default 0
23506
- */
23507
- topic_risk_score?: number;
23508
- };
23509
23372
  /** StateTransition */
23510
23373
  StateTransition: {
23511
23374
  /** Annotation */
@@ -26018,7 +25881,7 @@ export interface components {
26018
25881
  * @default full
26019
25882
  * @enum {string}
26020
25883
  */
26021
- context_strategy?: "full" | "summarize" | "compact";
25884
+ context_strategy?: "full" | "compact";
26022
25885
  /**
26023
25886
  * Degradation Threshold
26024
25887
  * @default -1
@@ -26107,8 +25970,11 @@ export interface components {
26107
25970
  * @default []
26108
25971
  */
26109
25972
  tool_calls?: components["schemas"]["ConversationToolCallDetail"][];
26110
- /** Turn Id */
26111
- turn_id: string;
25973
+ /**
25974
+ * Turn Id
25975
+ * @description Identifier of the user exchange this turn created — or, for ``poll=true`` and greeting-kickoff turns (empty ``message``), the latest exchange the returned messages attach to. Deterministic: matches the ``turn_id`` on this conversation's history turns, so it can anchor durable per-turn artifacts (e.g. feedback) across page reloads. Null only when the conversation has no user exchange yet (a poll or kickoff before the first user message).
25976
+ */
25977
+ turn_id: string | null;
26112
25978
  };
26113
25979
  TurnStreamEvent: components["schemas"]["TurnTokenEvent"] | components["schemas"]["TurnToolCallStartedEvent"] | components["schemas"]["TurnToolCallCompletedEvent"] | components["schemas"]["TurnThinkingEvent"] | components["schemas"]["TurnMessageEvent"] | components["schemas"]["TurnDoneEvent"] | components["schemas"]["TurnErrorEvent"];
26114
25980
  /** TurnThinkingEvent */
@@ -26328,14 +26194,11 @@ export interface components {
26328
26194
  description?: components["schemas"]["DescriptionString"] | null;
26329
26195
  /** Environment */
26330
26196
  environment?: ("sandbox" | "production") | null;
26331
- escalation_policy?: components["schemas"]["EscalationPolicy"] | null;
26332
26197
  /** Is Active */
26333
26198
  is_active?: boolean | null;
26334
26199
  /** Keyterms */
26335
26200
  keyterms?: string[] | null;
26336
26201
  name?: components["schemas"]["NameString"] | null;
26337
- /** Safety Filters Enabled */
26338
- safety_filters_enabled?: boolean | null;
26339
26202
  /** Tags */
26340
26203
  tags?: components["schemas"]["ServiceTag"][] | null;
26341
26204
  /** Tool Capacity */
@@ -26867,7 +26730,7 @@ export interface components {
26867
26730
  [key: string]: components["schemas"]["LanguageProviderEntry"];
26868
26731
  } | null;
26869
26732
  /** Session Provider */
26870
- session_provider?: ("inhouse" | "openai_realtime" | "atlas") | null;
26733
+ session_provider?: ("amigo" | "gpt_realtime" | "gpt_live") | null;
26871
26734
  /**
26872
26735
  * Similarity Boost
26873
26736
  * @default 0