@amigo-ai/platform-sdk 0.47.1 → 0.48.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.
@@ -2476,70 +2476,6 @@ export interface paths {
2476
2476
  patch?: never;
2477
2477
  trace?: never;
2478
2478
  };
2479
- "/v1/{workspace_id}/demo-pulse/start": {
2480
- parameters: {
2481
- query?: never;
2482
- header?: never;
2483
- path?: never;
2484
- cookie?: never;
2485
- };
2486
- get?: never;
2487
- put?: never;
2488
- /**
2489
- * Start synthetic event emission for an internal demo workspace
2490
- * @description Start a synthetic pulse on the workspace.
2491
- *
2492
- * Guardrails: admin/owner role + workspace must be in the allowlist env.
2493
- * Replaces any currently-running pulse on the same workspace.
2494
- */
2495
- post: operations["start-demo-pulse"];
2496
- delete?: never;
2497
- options?: never;
2498
- head?: never;
2499
- patch?: never;
2500
- trace?: never;
2501
- };
2502
- "/v1/{workspace_id}/demo-pulse/status": {
2503
- parameters: {
2504
- query?: never;
2505
- header?: never;
2506
- path?: never;
2507
- cookie?: never;
2508
- };
2509
- /** Inspect the active pulse on a workspace */
2510
- get: operations["get-demo-pulse-status"];
2511
- put?: never;
2512
- post?: never;
2513
- delete?: never;
2514
- options?: never;
2515
- head?: never;
2516
- patch?: never;
2517
- trace?: never;
2518
- };
2519
- "/v1/{workspace_id}/demo-pulse/stop": {
2520
- parameters: {
2521
- query?: never;
2522
- header?: never;
2523
- path?: never;
2524
- cookie?: never;
2525
- };
2526
- get?: never;
2527
- put?: never;
2528
- /**
2529
- * Stop the synthetic pulse on a workspace
2530
- * @description Stop the pulse on this workspace.
2531
- *
2532
- * ``body.task_id`` is optional; if provided, only that task is stopped (useful
2533
- * for idempotence after a background race). Otherwise the workspace's
2534
- * current task (if any) is stopped.
2535
- */
2536
- post: operations["stop-demo-pulse"];
2537
- delete?: never;
2538
- options?: never;
2539
- head?: never;
2540
- patch?: never;
2541
- trace?: never;
2542
- };
2543
2479
  "/v1/{workspace_id}/desktop-sessions": {
2544
2480
  parameters: {
2545
2481
  query?: never;
@@ -7986,7 +7922,7 @@ export interface paths {
7986
7922
  post?: never;
7987
7923
  /**
7988
7924
  * Delete a channel use case
7989
- * @description Delete a use case. Refuses (409) while any workspace has the use case bound — call DELETE `/use-cases/{id}/bindings` first. Also refuses if a Twilio use case still has phone-number assignments. Requires Channel.delete permission.
7925
+ * @description Delete a use case. Refuses (409) while any service still binds the use case — call DELETE `/use-cases/{id}/service-binding` first. Also refuses if a Twilio use case still has phone-number assignments. Requires Channel.delete permission.
7990
7926
  */
7991
7927
  delete: operations["delete-use-case"];
7992
7928
  options?: never;
@@ -7994,25 +7930,29 @@ export interface paths {
7994
7930
  patch?: never;
7995
7931
  trace?: never;
7996
7932
  };
7997
- "/v1/{workspace_id}/use-cases/{use_case_id}/bindings": {
7933
+ "/v1/{workspace_id}/use-cases/{use_case_id}/service-binding": {
7998
7934
  parameters: {
7999
7935
  query?: never;
8000
7936
  header?: never;
8001
7937
  path?: never;
8002
7938
  cookie?: never;
8003
7939
  };
8004
- get?: never;
8005
- put?: never;
8006
7940
  /**
8007
- * Bind a use case to this workspace
8008
- * @description Claim a use case for this workspace. Inbound webhook events for the use case will resolve to this workspace. Idempotent for the same workspace; 409 if another workspace owns the binding; revives a soft-deleted binding (after a prior unbind) and re-points it at this workspace. Requires Channel.create permission.
7941
+ * Get the service binding for a use case
7942
+ * @description Return the platform service this use case is bound to in this workspace, or 404 if unbound. Requires Channel.view permission.
8009
7943
  */
8010
- post: operations["bind-use-case"];
7944
+ get: operations["get-use-case-service-binding"];
8011
7945
  /**
8012
- * Unbind a use case from this workspace
8013
- * @description Release a use case from this workspace. Soft-delete on the binding row. 404 if the use case is not currently bound to this workspace (covers both 'never bound' and 'already unbound'). Requires Channel.delete permission.
7946
+ * Bind a use case to a platform service
7947
+ * @description Bind this use case to a platform service in the current workspace. PUT semantics — rebinding to a different service replaces the prior binding. Inbound webhook events for the use case will resolve to this workspace; outbound dispatch from the service will route through this use case for its channel. 409 if a different use case already binds the same (service, channel) pair. 404 if the service or use case is missing or belongs to another workspace. Requires Channel.create permission.
8014
7948
  */
8015
- delete: operations["unbind-use-case"];
7949
+ put: operations["bind-use-case-to-service"];
7950
+ post?: never;
7951
+ /**
7952
+ * Unbind a use case from its platform service
7953
+ * @description Release a use case from its bound service in this workspace. Soft-delete on the binding row. 404 if the use case is not currently bound (covers both 'never bound' and 'already unbound'). Requires Channel.delete permission.
7954
+ */
7955
+ delete: operations["unbind-use-case-from-service"];
8016
7956
  options?: never;
8017
7957
  head?: never;
8018
7958
  patch?: never;
@@ -8077,15 +8017,7 @@ export interface paths {
8077
8017
  };
8078
8018
  get?: never;
8079
8019
  put?: never;
8080
- /**
8081
- * Verify Voiceprint
8082
- * @description Verify a speaker against their enrolled voiceprint.
8083
- *
8084
- * Loads the enrolled embedding from world events, sends audio + embedding
8085
- * to emotion-engine for cosine similarity comparison.
8086
- *
8087
- * Permissions: authenticated (any role).
8088
- */
8020
+ /** Verify Voiceprint */
8089
8021
  post: operations["verify-voiceprint"];
8090
8022
  delete?: never;
8091
8023
  options?: never;
@@ -8100,17 +8032,7 @@ export interface paths {
8100
8032
  path?: never;
8101
8033
  cookie?: never;
8102
8034
  };
8103
- /**
8104
- * Get Voiceprint Status
8105
- * @description Check voiceprint enrollment status for any entity.
8106
- *
8107
- * Queries world.entities for voiceprint enrollment status.
8108
- * This works for both world entities (patients/practitioners) and identity
8109
- * entities (developer console users) — the entity state projection is the
8110
- * read surface (world.events table has been dropped).
8111
- *
8112
- * Permissions: authenticated (any role).
8113
- */
8035
+ /** Get Voiceprint Status */
8114
8036
  get: operations["get-voiceprint-status"];
8115
8037
  put?: never;
8116
8038
  post?: never;
@@ -10051,18 +9973,6 @@ export interface components {
10051
9973
  */
10052
9974
  setup_id: string;
10053
9975
  };
10054
- /** BindingResponse */
10055
- BindingResponse: {
10056
- /**
10057
- * Channel
10058
- * @enum {string}
10059
- */
10060
- channel: "voice" | "voicemail" | "email";
10061
- /** Use Case Id */
10062
- use_case_id: string;
10063
- /** Workspace Id */
10064
- workspace_id: string;
10065
- };
10066
9976
  /** Body_enroll-voiceprint */
10067
9977
  "Body_enroll-voiceprint": {
10068
9978
  /** Audio */
@@ -12207,6 +12117,11 @@ export interface components {
12207
12117
  ConversationToolCallDetail: {
12208
12118
  /** Call Id */
12209
12119
  call_id: string;
12120
+ /**
12121
+ * Duration Ms
12122
+ * @description Wall-clock tool execution time in milliseconds, measured at the engage_step call site. Omitted (null) on legacy turns that did not capture timing.
12123
+ */
12124
+ duration_ms?: number | null;
12210
12125
  /** Input */
12211
12126
  input?: {
12212
12127
  [key: string]: unknown;
@@ -12541,7 +12456,7 @@ export interface components {
12541
12456
  * Source Type
12542
12457
  * @enum {string}
12543
12458
  */
12544
- source_type: "rest_api" | "webhook" | "file_drop" | "fhir" | "fhir_store" | "ehr" | "crm" | "database" | "custom" | "smart_fhir";
12459
+ source_type: "rest_api" | "webhook" | "file_drop" | "fhir" | "fhir_store" | "ehr" | "crm" | "database" | "custom" | "smart_fhir" | "customer_intake";
12545
12460
  /** Sync Schedule */
12546
12461
  sync_schedule?: string | null;
12547
12462
  /**
@@ -14014,7 +13929,7 @@ export interface components {
14014
13929
  * Source Type
14015
13930
  * @enum {string}
14016
13931
  */
14017
- source_type: "rest_api" | "webhook" | "file_drop" | "fhir" | "fhir_store" | "ehr" | "crm" | "database" | "custom" | "smart_fhir";
13932
+ source_type: "rest_api" | "webhook" | "file_drop" | "fhir" | "fhir_store" | "ehr" | "crm" | "database" | "custom" | "smart_fhir" | "customer_intake";
14018
13933
  /** Sync Schedule */
14019
13934
  sync_schedule: string | null;
14020
13935
  /**
@@ -14305,66 +14220,6 @@ export interface components {
14305
14220
  /** Event Type */
14306
14221
  event_type: string;
14307
14222
  };
14308
- /** DemoPulseStartRequest */
14309
- DemoPulseStartRequest: {
14310
- /**
14311
- * Duration Seconds
14312
- * @description How long to emit events before auto-terminating (max 3600).
14313
- * @default 600
14314
- */
14315
- duration_seconds?: number;
14316
- /**
14317
- * Events Per Minute
14318
- * @description Emission rate per minute, 1 to 120.
14319
- * @default 30
14320
- */
14321
- events_per_minute?: number;
14322
- };
14323
- /** DemoPulseStatusResponse */
14324
- DemoPulseStatusResponse: {
14325
- /** Tasks */
14326
- tasks: components["schemas"]["DemoPulseTaskResponse"][];
14327
- };
14328
- /** DemoPulseStopRequest */
14329
- DemoPulseStopRequest: {
14330
- /**
14331
- * Task Id
14332
- * @description Optional task_id to stop. When set, only a matching active task is stopped — useful for idempotent retries after a background race. Omit to stop whatever pulse is currently active on the workspace.
14333
- */
14334
- task_id?: string | null;
14335
- };
14336
- /** DemoPulseStopResponse */
14337
- DemoPulseStopResponse: {
14338
- /** Stopped */
14339
- stopped: boolean;
14340
- task?: components["schemas"]["DemoPulseTaskResponse"] | null;
14341
- };
14342
- /** DemoPulseTaskResponse */
14343
- DemoPulseTaskResponse: {
14344
- /** Active */
14345
- active: boolean;
14346
- /** Events Attempted */
14347
- events_attempted: number;
14348
- /** Events Per Minute */
14349
- events_per_minute: number;
14350
- /**
14351
- * Expires At
14352
- * Format: date-time
14353
- */
14354
- expires_at: string;
14355
- /**
14356
- * Started At
14357
- * Format: date-time
14358
- */
14359
- started_at: string;
14360
- /** Task Id */
14361
- task_id: string;
14362
- /**
14363
- * Workspace Id
14364
- * Format: uuid
14365
- */
14366
- workspace_id: string;
14367
- };
14368
14223
  DescriptionString: string;
14369
14224
  /** DestroySessionResponse */
14370
14225
  DestroySessionResponse: {
@@ -16251,6 +16106,12 @@ export interface components {
16251
16106
  };
16252
16107
  /** Data Source Id */
16253
16108
  data_source_id?: string | null;
16109
+ /**
16110
+ * Dedup
16111
+ * @description When true, identical re-uploads of the same FHIR resource are skipped via content-hash dedup. Set to false to force emission regardless of content changes.
16112
+ * @default true
16113
+ */
16114
+ dedup?: boolean;
16254
16115
  /**
16255
16116
  * Source
16256
16117
  * @default fhir_import
@@ -20401,13 +20262,18 @@ export interface components {
20401
20262
  };
20402
20263
  /**
20403
20264
  * Parameter
20404
- * @description Typed declaration of one SQL bind parameter.
20265
+ * @description Typed declaration of one input parameter.
20266
+ *
20267
+ * For SQL function types, ``name`` becomes the ``:name`` placeholder
20268
+ * in the SQL template. For Python function types, ``name`` becomes
20269
+ * the positional argument name in ``def main(...)`` and the input
20270
+ * column name on the UC UDF signature.
20405
20271
  *
20406
- * The ``name`` becomes the ``:name`` placeholder in the SQL template.
20407
- * The ``description`` propagates into the LLM tool spec (this is what
20408
- * Databricks' Agent Framework reads, and what Anthropic's tool-use
20409
- * spec exposes to the model). Missing descriptions silently break
20410
- * tool selection — the registration layer rejects empty strings.
20272
+ * The ``description`` propagates into the LLM tool spec (this is
20273
+ * what Databricks' Agent Framework reads, and what Anthropic's
20274
+ * tool-use spec exposes to the model). Missing descriptions
20275
+ * silently break tool selection the registration layer rejects
20276
+ * empty strings.
20411
20277
  */
20412
20278
  Parameter: {
20413
20279
  /** Default */
@@ -21994,9 +21860,14 @@ export interface components {
21994
21860
  * repo or POSTed to ``/v1/{ws}/functions/deploy``. The deploy
21995
21861
  * pipeline validates this, derives the JSON Schema for the LLM tool
21996
21862
  * spec, and INSERTs a row into ``platform.functions`` with the next
21997
- * monotonic ``version`` per ``(workspace_id, name)``.
21863
+ * monotonic ``version`` per ``(workspace_id, name)``. For
21864
+ * ``python`` / ``udtf`` rows, deploy ALSO issues
21865
+ * ``CREATE OR REPLACE FUNCTION`` against the warehouse to materialize
21866
+ * the UC UDF.
21998
21867
  */
21999
21868
  RegisteredFunction: {
21869
+ /** Body */
21870
+ body: string;
22000
21871
  /** Description */
22001
21872
  description: string;
22002
21873
  /** Examples */
@@ -22017,8 +21888,14 @@ export interface components {
22017
21888
  * @enum {string}
22018
21889
  */
22019
21890
  returns?: "table" | "scalar";
22020
- /** Sql */
22021
- sql: string;
21891
+ /** Returns Columns */
21892
+ returns_columns?: components["schemas"]["ReturnColumn"][];
21893
+ /**
21894
+ * Returns Type
21895
+ * @default string
21896
+ * @enum {string}
21897
+ */
21898
+ returns_type?: "string" | "integer" | "number" | "boolean";
22022
21899
  /**
22023
21900
  * Timeout Ms
22024
21901
  * @default 30000
@@ -22193,6 +22070,30 @@ export interface components {
22193
22070
  */
22194
22071
  retry_on_status?: number[];
22195
22072
  };
22073
+ /**
22074
+ * ReturnColumn
22075
+ * @description One column in a UDTF's output schema.
22076
+ *
22077
+ * UC ``RETURNS TABLE(<col1> <type1>, <col2> <type2>, ...)`` requires
22078
+ * declaring the schema at deploy time. This list anchors that
22079
+ * schema for ``function_type=udtf`` rows. ``name`` becomes the
22080
+ * column name in the result rows; ``type`` maps to a Databricks
22081
+ * SQL type via the same ``ParameterType`` Literal we use for inputs.
22082
+ */
22083
+ ReturnColumn: {
22084
+ /**
22085
+ * Description
22086
+ * @default
22087
+ */
22088
+ description?: string;
22089
+ /** Name */
22090
+ name: string;
22091
+ /**
22092
+ * Type
22093
+ * @enum {string}
22094
+ */
22095
+ type: "string" | "integer" | "number" | "boolean";
22096
+ };
22196
22097
  /** ReviewActionResponse */
22197
22098
  ReviewActionResponse: {
22198
22099
  /**
@@ -23161,6 +23062,47 @@ export interface components {
23161
23062
  };
23162
23063
  voice_config?: components["schemas"]["ServiceVoiceConfig"] | null;
23163
23064
  };
23065
+ /** ServiceBindingRequest */
23066
+ ServiceBindingRequest: {
23067
+ /**
23068
+ * Service Id
23069
+ * Format: uuid
23070
+ */
23071
+ service_id: string;
23072
+ };
23073
+ /** ServiceBindingResponse */
23074
+ ServiceBindingResponse: {
23075
+ /**
23076
+ * Channel
23077
+ * @enum {string}
23078
+ */
23079
+ channel: "inbound_voice" | "outbound_voice" | "ringless_voicemail" | "email";
23080
+ /**
23081
+ * Created At
23082
+ * Format: date-time
23083
+ */
23084
+ created_at: string;
23085
+ /**
23086
+ * Service Id
23087
+ * Format: uuid
23088
+ */
23089
+ service_id: string;
23090
+ /**
23091
+ * Updated At
23092
+ * Format: date-time
23093
+ */
23094
+ updated_at: string;
23095
+ /**
23096
+ * Use Case Id
23097
+ * Format: uuid
23098
+ */
23099
+ use_case_id: string;
23100
+ /**
23101
+ * Workspace Id
23102
+ * Format: uuid
23103
+ */
23104
+ workspace_id: string;
23105
+ };
23164
23106
  /** ServiceResponse */
23165
23107
  ServiceResponse: {
23166
23108
  /**
@@ -24415,7 +24357,7 @@ export interface components {
24415
24357
  * Source Type
24416
24358
  * @enum {string}
24417
24359
  */
24418
- source_type: "rest_api" | "webhook" | "file_drop" | "fhir" | "fhir_store" | "ehr" | "crm" | "database" | "custom" | "smart_fhir";
24360
+ source_type: "rest_api" | "webhook" | "file_drop" | "fhir" | "fhir_store" | "ehr" | "crm" | "database" | "custom" | "smart_fhir" | "customer_intake";
24419
24361
  };
24420
24362
  /** SourceOverviewResponse */
24421
24363
  SourceOverviewResponse: {
@@ -24475,7 +24417,7 @@ export interface components {
24475
24417
  * Source Type
24476
24418
  * @enum {string}
24477
24419
  */
24478
- source_type: "rest_api" | "webhook" | "file_drop" | "fhir" | "fhir_store" | "ehr" | "crm" | "database" | "custom" | "smart_fhir";
24420
+ source_type: "rest_api" | "webhook" | "file_drop" | "fhir" | "fhir_store" | "ehr" | "crm" | "database" | "custom" | "smart_fhir" | "customer_intake";
24479
24421
  };
24480
24422
  /** SourceStatus */
24481
24423
  SourceStatus: {
@@ -24514,7 +24456,7 @@ export interface components {
24514
24456
  * Source Type
24515
24457
  * @enum {string}
24516
24458
  */
24517
- source_type: "rest_api" | "webhook" | "file_drop" | "fhir" | "fhir_store" | "ehr" | "crm" | "database" | "custom" | "smart_fhir";
24459
+ source_type: "rest_api" | "webhook" | "file_drop" | "fhir" | "fhir_store" | "ehr" | "crm" | "database" | "custom" | "smart_fhir" | "customer_intake";
24518
24460
  /** Status */
24519
24461
  status: string;
24520
24462
  /**
@@ -27227,6 +27169,12 @@ export interface components {
27227
27169
  TurnToolCallCompletedEvent: {
27228
27170
  /** Call Id */
27229
27171
  call_id: string;
27172
+ /**
27173
+ * Duration Ms
27174
+ * @description Wall-clock tool execution time in milliseconds, measured at the engage_step call site. Null when the upstream did not report timing (legacy/test paths).
27175
+ * @default null
27176
+ */
27177
+ duration_ms?: number | null;
27230
27178
  /**
27231
27179
  * @description discriminator enum property added by openapi-typescript
27232
27180
  * @enum {string}
@@ -35505,98 +35453,6 @@ export interface operations {
35505
35453
  };
35506
35454
  };
35507
35455
  };
35508
- "start-demo-pulse": {
35509
- parameters: {
35510
- query?: never;
35511
- header?: never;
35512
- path: {
35513
- workspace_id: string;
35514
- };
35515
- cookie?: never;
35516
- };
35517
- requestBody: {
35518
- content: {
35519
- "application/json": components["schemas"]["DemoPulseStartRequest"];
35520
- };
35521
- };
35522
- responses: {
35523
- /** @description Successful Response */
35524
- 200: {
35525
- headers: {
35526
- [name: string]: unknown;
35527
- };
35528
- content: {
35529
- "application/json": components["schemas"]["DemoPulseTaskResponse"];
35530
- };
35531
- };
35532
- /** @description Validation Error */
35533
- 422: {
35534
- headers: {
35535
- [name: string]: unknown;
35536
- };
35537
- content: {
35538
- "application/json": components["schemas"]["HTTPValidationError"];
35539
- };
35540
- };
35541
- };
35542
- };
35543
- "get-demo-pulse-status": {
35544
- parameters: {
35545
- query?: never;
35546
- header?: never;
35547
- path: {
35548
- workspace_id: string;
35549
- };
35550
- cookie?: never;
35551
- };
35552
- requestBody?: never;
35553
- responses: {
35554
- /** @description Successful Response */
35555
- 200: {
35556
- headers: {
35557
- [name: string]: unknown;
35558
- };
35559
- content: {
35560
- "application/json": components["schemas"]["DemoPulseStatusResponse"];
35561
- };
35562
- };
35563
- };
35564
- };
35565
- "stop-demo-pulse": {
35566
- parameters: {
35567
- query?: never;
35568
- header?: never;
35569
- path: {
35570
- workspace_id: string;
35571
- };
35572
- cookie?: never;
35573
- };
35574
- requestBody: {
35575
- content: {
35576
- "application/json": components["schemas"]["DemoPulseStopRequest"];
35577
- };
35578
- };
35579
- responses: {
35580
- /** @description Successful Response */
35581
- 200: {
35582
- headers: {
35583
- [name: string]: unknown;
35584
- };
35585
- content: {
35586
- "application/json": components["schemas"]["DemoPulseStopResponse"];
35587
- };
35588
- };
35589
- /** @description Validation Error */
35590
- 422: {
35591
- headers: {
35592
- [name: string]: unknown;
35593
- };
35594
- content: {
35595
- "application/json": components["schemas"]["HTTPValidationError"];
35596
- };
35597
- };
35598
- };
35599
- };
35600
35456
  create_desktop_session_v1__workspace_id__desktop_sessions_post: {
35601
35457
  parameters: {
35602
35458
  query?: never;
@@ -36130,6 +35986,8 @@ export interface operations {
36130
35986
  source?: string;
36131
35987
  source_system?: string | null;
36132
35988
  data_source_id?: string | null;
35989
+ /** @description Skip identical re-uploads via content-hash dedup */
35990
+ dedup?: boolean;
36133
35991
  };
36134
35992
  header?: never;
36135
35993
  path: {
@@ -48462,7 +48320,7 @@ export interface operations {
48462
48320
  };
48463
48321
  content?: never;
48464
48322
  };
48465
- /** @description Use case is bound to a workspace, or still has active phone assignments. */
48323
+ /** @description Use case is bound to a service, or still has active phone assignments. */
48466
48324
  409: {
48467
48325
  headers: {
48468
48326
  [name: string]: unknown;
@@ -48494,7 +48352,7 @@ export interface operations {
48494
48352
  };
48495
48353
  };
48496
48354
  };
48497
- "bind-use-case": {
48355
+ "get-use-case-service-binding": {
48498
48356
  parameters: {
48499
48357
  query?: never;
48500
48358
  header?: never;
@@ -48507,12 +48365,12 @@ export interface operations {
48507
48365
  requestBody?: never;
48508
48366
  responses: {
48509
48367
  /** @description Successful Response */
48510
- 201: {
48368
+ 200: {
48511
48369
  headers: {
48512
48370
  [name: string]: unknown;
48513
48371
  };
48514
48372
  content: {
48515
- "application/json": components["schemas"]["BindingResponse"];
48373
+ "application/json": components["schemas"]["ServiceBindingResponse"];
48516
48374
  };
48517
48375
  };
48518
48376
  /** @description Insufficient permissions. */
@@ -48522,28 +48380,76 @@ export interface operations {
48522
48380
  };
48523
48381
  content?: never;
48524
48382
  };
48525
- /** @description Use case not found. */
48383
+ /** @description Use case is not bound to a service in this workspace. */
48526
48384
  404: {
48527
48385
  headers: {
48528
48386
  [name: string]: unknown;
48529
48387
  };
48530
48388
  content?: never;
48531
48389
  };
48532
- /** @description Use case is already bound to a different workspace. */
48390
+ /** @description Validation Error */
48391
+ 422: {
48392
+ headers: {
48393
+ [name: string]: unknown;
48394
+ };
48395
+ content: {
48396
+ "application/json": components["schemas"]["HTTPValidationError"];
48397
+ };
48398
+ };
48399
+ };
48400
+ };
48401
+ "bind-use-case-to-service": {
48402
+ parameters: {
48403
+ query?: never;
48404
+ header?: never;
48405
+ path: {
48406
+ workspace_id: string;
48407
+ use_case_id: string;
48408
+ };
48409
+ cookie?: never;
48410
+ };
48411
+ requestBody: {
48412
+ content: {
48413
+ "application/json": components["schemas"]["ServiceBindingRequest"];
48414
+ };
48415
+ };
48416
+ responses: {
48417
+ /** @description Successful Response */
48418
+ 200: {
48419
+ headers: {
48420
+ [name: string]: unknown;
48421
+ };
48422
+ content: {
48423
+ "application/json": components["schemas"]["ServiceBindingResponse"];
48424
+ };
48425
+ };
48426
+ /** @description Insufficient permissions. */
48427
+ 403: {
48428
+ headers: {
48429
+ [name: string]: unknown;
48430
+ };
48431
+ content?: never;
48432
+ };
48433
+ /** @description Use case or service not found. */
48434
+ 404: {
48435
+ headers: {
48436
+ [name: string]: unknown;
48437
+ };
48438
+ content?: never;
48439
+ };
48440
+ /** @description Service already has a different use case bound for this channel. */
48533
48441
  409: {
48534
48442
  headers: {
48535
48443
  [name: string]: unknown;
48536
48444
  };
48537
48445
  content?: never;
48538
48446
  };
48539
- /** @description Validation Error */
48447
+ /** @description Unsupported use case channel. */
48540
48448
  422: {
48541
48449
  headers: {
48542
48450
  [name: string]: unknown;
48543
48451
  };
48544
- content: {
48545
- "application/json": components["schemas"]["HTTPValidationError"];
48546
- };
48452
+ content?: never;
48547
48453
  };
48548
48454
  /** @description Channel manager unavailable. */
48549
48455
  502: {
@@ -48561,7 +48467,7 @@ export interface operations {
48561
48467
  };
48562
48468
  };
48563
48469
  };
48564
- "unbind-use-case": {
48470
+ "unbind-use-case-from-service": {
48565
48471
  parameters: {
48566
48472
  query?: never;
48567
48473
  header?: never;
@@ -48587,7 +48493,7 @@ export interface operations {
48587
48493
  };
48588
48494
  content?: never;
48589
48495
  };
48590
- /** @description Use case is not bound to this workspace. */
48496
+ /** @description Use case is not bound to a service in this workspace. */
48591
48497
  404: {
48592
48498
  headers: {
48593
48499
  [name: string]: unknown;
@@ -49488,10 +49394,8 @@ export interface operations {
49488
49394
  source?: string | null;
49489
49395
  /** @description Filter by source system name (e.g. hubspot, revolution) */
49490
49396
  source_system?: string | null;
49491
- /** @description Semantic search via pgvector cosine similarity on entity embeddings. Entity embeddings encode the full projected state — clinical conditions, demographics, relationships. Example: 'diabetes patients in Abu Dhabi'. */
49492
- semantic?: string | null;
49493
- /** @description Filter by entity tags (array overlap) */
49494
- tags?: string[] | null;
49397
+ /** @description Filter by FHIR resource type (e.g. Patient, Practitioner) */
49398
+ fhir_resource_type?: string | null;
49495
49399
  };
49496
49400
  header?: never;
49497
49401
  path: {