@epilot/sdk 2.20.83 → 2.20.84

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.
Files changed (138) hide show
  1. package/definitions/phone-integration-runtime.json +1 -1
  2. package/definitions/phone-integration.json +1485 -341
  3. package/dist/apis/access-token.cjs +6 -6
  4. package/dist/apis/access-token.js +1 -1
  5. package/dist/apis/address-suggestions.cjs +6 -6
  6. package/dist/apis/address-suggestions.js +1 -1
  7. package/dist/apis/address.cjs +6 -6
  8. package/dist/apis/address.js +1 -1
  9. package/dist/apis/ai-agents.cjs +6 -6
  10. package/dist/apis/ai-agents.js +1 -1
  11. package/dist/apis/app.cjs +6 -6
  12. package/dist/apis/app.js +1 -1
  13. package/dist/apis/audit-logs.cjs +6 -6
  14. package/dist/apis/audit-logs.js +1 -1
  15. package/dist/apis/automation.cjs +6 -6
  16. package/dist/apis/automation.js +1 -1
  17. package/dist/apis/billing.cjs +6 -6
  18. package/dist/apis/billing.js +1 -1
  19. package/dist/apis/blueprint-manifest.cjs +6 -6
  20. package/dist/apis/blueprint-manifest.js +1 -1
  21. package/dist/apis/calendar.cjs +6 -6
  22. package/dist/apis/calendar.js +1 -1
  23. package/dist/apis/chat.cjs +6 -6
  24. package/dist/apis/chat.js +1 -1
  25. package/dist/apis/configuration-hub.cjs +6 -6
  26. package/dist/apis/configuration-hub.js +1 -1
  27. package/dist/apis/consent.cjs +6 -6
  28. package/dist/apis/consent.js +1 -1
  29. package/dist/apis/customer-portal.cjs +6 -6
  30. package/dist/apis/customer-portal.js +1 -1
  31. package/dist/apis/dashboard.cjs +6 -6
  32. package/dist/apis/dashboard.js +1 -1
  33. package/dist/apis/data-governance.cjs +6 -6
  34. package/dist/apis/data-governance.js +1 -1
  35. package/dist/apis/deduplication.cjs +6 -6
  36. package/dist/apis/deduplication.js +1 -1
  37. package/dist/apis/design.cjs +6 -6
  38. package/dist/apis/design.js +1 -1
  39. package/dist/apis/document.cjs +6 -6
  40. package/dist/apis/document.js +1 -1
  41. package/dist/apis/email-settings.cjs +6 -6
  42. package/dist/apis/email-settings.js +1 -1
  43. package/dist/apis/email-template.cjs +6 -6
  44. package/dist/apis/email-template.js +1 -1
  45. package/dist/apis/entity-mapping.cjs +6 -6
  46. package/dist/apis/entity-mapping.js +1 -1
  47. package/dist/apis/entity.cjs +6 -6
  48. package/dist/apis/entity.js +1 -1
  49. package/dist/apis/environments.cjs +6 -6
  50. package/dist/apis/environments.js +1 -1
  51. package/dist/apis/event-catalog.cjs +6 -6
  52. package/dist/apis/event-catalog.js +1 -1
  53. package/dist/apis/external-values.cjs +6 -6
  54. package/dist/apis/external-values.js +1 -1
  55. package/dist/apis/file.cjs +6 -6
  56. package/dist/apis/file.js +1 -1
  57. package/dist/apis/iban.cjs +6 -6
  58. package/dist/apis/iban.js +1 -1
  59. package/dist/apis/identity.cjs +6 -6
  60. package/dist/apis/identity.js +1 -1
  61. package/dist/apis/integration-toolkit.cjs +6 -6
  62. package/dist/apis/integration-toolkit.js +1 -1
  63. package/dist/apis/journey.cjs +6 -6
  64. package/dist/apis/journey.js +1 -1
  65. package/dist/apis/kanban.cjs +6 -6
  66. package/dist/apis/kanban.js +1 -1
  67. package/dist/apis/message.cjs +6 -6
  68. package/dist/apis/message.js +1 -1
  69. package/dist/apis/metering.cjs +6 -6
  70. package/dist/apis/metering.js +1 -1
  71. package/dist/apis/notes.cjs +6 -6
  72. package/dist/apis/notes.js +1 -1
  73. package/dist/apis/notification.cjs +6 -6
  74. package/dist/apis/notification.js +1 -1
  75. package/dist/apis/organization.cjs +6 -6
  76. package/dist/apis/organization.js +1 -1
  77. package/dist/apis/partner-directory.cjs +6 -6
  78. package/dist/apis/partner-directory.js +1 -1
  79. package/dist/apis/permissions.cjs +6 -6
  80. package/dist/apis/permissions.js +1 -1
  81. package/dist/apis/phone-integration.cjs +8 -8
  82. package/dist/apis/phone-integration.d.cts +2 -2
  83. package/dist/apis/phone-integration.d.ts +2 -2
  84. package/dist/apis/phone-integration.js +2 -2
  85. package/dist/apis/pricing-tier.cjs +6 -6
  86. package/dist/apis/pricing-tier.js +1 -1
  87. package/dist/apis/pricing.cjs +6 -6
  88. package/dist/apis/pricing.js +1 -1
  89. package/dist/apis/purpose.cjs +6 -6
  90. package/dist/apis/purpose.js +1 -1
  91. package/dist/apis/query.cjs +6 -6
  92. package/dist/apis/query.js +1 -1
  93. package/dist/apis/sandbox.cjs +6 -6
  94. package/dist/apis/sandbox.js +1 -1
  95. package/dist/apis/sharing.cjs +6 -6
  96. package/dist/apis/sharing.js +1 -1
  97. package/dist/apis/snapshot.cjs +6 -6
  98. package/dist/apis/snapshot.js +1 -1
  99. package/dist/apis/submission.cjs +6 -6
  100. package/dist/apis/submission.js +1 -1
  101. package/dist/apis/target.cjs +6 -6
  102. package/dist/apis/target.js +1 -1
  103. package/dist/apis/targeting.cjs +6 -6
  104. package/dist/apis/targeting.js +1 -1
  105. package/dist/apis/template-variables.cjs +6 -6
  106. package/dist/apis/template-variables.js +1 -1
  107. package/dist/apis/user.cjs +6 -6
  108. package/dist/apis/user.js +1 -1
  109. package/dist/apis/validation-rules.cjs +6 -6
  110. package/dist/apis/validation-rules.js +1 -1
  111. package/dist/apis/webhooks.cjs +6 -6
  112. package/dist/apis/webhooks.js +1 -1
  113. package/dist/apis/workflow-definition.cjs +6 -6
  114. package/dist/apis/workflow-definition.js +1 -1
  115. package/dist/apis/workflow.cjs +6 -6
  116. package/dist/apis/workflow.js +1 -1
  117. package/dist/chunk-E6N33SVB.js +14 -0
  118. package/dist/{chunk-KGIFSOWS.cjs → chunk-T4WYY7OU.cjs} +2 -2
  119. package/dist/chunk-U4AOZZGW.cjs +14 -0
  120. package/dist/{chunk-HFBZFYTU.js → chunk-ZPG2RR4J.js} +2 -2
  121. package/dist/index.cjs +10 -10
  122. package/dist/index.d.cts +1 -1
  123. package/dist/index.d.ts +1 -1
  124. package/dist/index.js +2 -2
  125. package/dist/phone-integration-6GDKV5EH.js +7 -0
  126. package/dist/phone-integration-UENU7EVN.cjs +7 -0
  127. package/dist/{phone-integration-runtime-7PWKKUBM.cjs → phone-integration-runtime-4SDHGFMR.cjs} +2 -2
  128. package/dist/{phone-integration-runtime-5VAA6Q4L.js → phone-integration-runtime-PWUZOJVD.js} +1 -1
  129. package/dist/phone-integration.d-Cx4ZOtzD.d.cts +1429 -0
  130. package/dist/phone-integration.d-Cx4ZOtzD.d.ts +1429 -0
  131. package/docs/phone-integration.md +772 -0
  132. package/package.json +1 -1
  133. package/dist/chunk-NHA2IXWN.cjs +0 -14
  134. package/dist/chunk-QFTXKO2I.js +0 -14
  135. package/dist/phone-integration-ARSGAHNJ.cjs +0 -7
  136. package/dist/phone-integration-MGH7LYID.js +0 -7
  137. package/dist/phone-integration.d-BNqwHuQ6.d.cts +0 -623
  138. package/dist/phone-integration.d-BNqwHuQ6.d.ts +0 -623
@@ -0,0 +1,7 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-NJK5F5TF.cjs');
2
+
3
+ // src/docs/phone-integration.json
4
+ var phone_integration_default = '# Phone Integration API\n\n- **Base URL:** `https://phone-integration-api.sls.epilot.io`\n- **Full API Docs:** [https://docs.epilot.io/api/phone-integration](https://docs.epilot.io/api/phone-integration)\n\n## Usage\n\n```ts\nimport { epilot } from \'@epilot/sdk\'\n\nepilot.authorize(() => \'<token>\')\nconst { data } = await epilot.phoneIntegration.batchSearchCustomers(...)\n```\n\n### Tree-shakeable import\n\n```ts\nimport { getClient, authorize } from \'@epilot/sdk/phone-integration\'\n\nconst phoneIntegrationClient = getClient()\nauthorize(phoneIntegrationClient, () => \'<token>\')\nconst { data } = await phoneIntegrationClient.batchSearchCustomers(...)\n```\n\n## Operations\n\n**phone-integration**\n- [`batchSearchCustomers`](#batchsearchcustomers)\n\n**manager**\n- [`getManagerStatus`](#getmanagerstatus)\n- [`listPhoneAgents`](#listphoneagents)\n- [`assignPhoneAgent`](#assignphoneagent)\n- [`removePhoneAgent`](#removephoneagent)\n- [`getLiveSnapshot`](#getlivesnapshot)\n- [`listLiveAgents`](#listliveagents)\n- [`setAgentRouting`](#setagentrouting)\n- [`previewAgentRouting`](#previewagentrouting)\n- [`listQueues`](#listqueues)\n- [`getQueue`](#getqueue)\n- [`getCallReport`](#getcallreport)\n\n**operator**\n- [`listProviderSetups`](#listprovidersetups)\n- [`getProviderSetup`](#getprovidersetup)\n- [`setupProvider`](#setupprovider)\n\n**Schemas**\n- [`ManagerStatus`](#managerstatus)\n- [`PhoneAgent`](#phoneagent)\n- [`AssignPhoneAgentRequest`](#assignphoneagentrequest)\n- [`ProviderSetup`](#providersetup)\n- [`ProviderSetupSummary`](#providersetupsummary)\n- [`ProviderSetupRequest`](#providersetuprequest)\n- [`CustomerBatchSearchResult`](#customerbatchsearchresult)\n- [`CustomerSearchResult`](#customersearchresult)\n- [`CustomerIdentifier`](#customeridentifier)\n- [`CustomerSummary`](#customersummary)\n- [`AgentState`](#agentstate)\n- [`AgentPresence`](#agentpresence)\n- [`Skill`](#skill)\n- [`QueueRef`](#queueref)\n- [`PersonRef`](#personref)\n- [`EligibilityPath`](#eligibilitypath)\n- [`AgentQueueEligibility`](#agentqueueeligibility)\n- [`LiveAgent`](#liveagent)\n- [`LiveAgentCounters`](#liveagentcounters)\n- [`QueueHealth`](#queuehealth)\n- [`QueueLive`](#queuelive)\n- [`LiveSnapshot`](#livesnapshot)\n- [`QueueRoutingStep`](#queueroutingstep)\n- [`QueueOverview`](#queueoverview)\n- [`EligibleAgent`](#eligibleagent)\n- [`WaitingCall`](#waitingcall)\n- [`QueueDetail`](#queuedetail)\n- [`AgentRoutingRequest`](#agentroutingrequest)\n- [`AgentRouting`](#agentrouting)\n- [`AgentRoutingPreview`](#agentroutingpreview)\n- [`CallReport`](#callreport)\n- [`ErrorResponse`](#errorresponse)\n\n### `batchSearchCustomers`\n\nResolves up to 50 identifiers to epilot customers (Contacts) in one\nrequest \u2014 for example every number in an agent\'s call history.\n\n`GET /v1/customer:batchSearch`\n\n```ts\nconst { data } = await client.batchSearchCustomers({\n id: [\'...\'],\n customer_number: [\'...\'],\n external_id: [\'...\'],\n phone_number: [\'...\'],\n email: [\'...\'],\n x-trace-id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "identifier": {\n "type": "id",\n "value": "+4917012345678"\n },\n "status": "found",\n "customer": {\n "id": "dba8e5f9-8b3f-4608-b887-cd0798fce624",\n "name": "Max Mustermann",\n "customer_number": "4711"\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getManagerStatus`\n\nWhether the caller\'s organization is ready for phone agents: the telephony provider tenant\nexists and is configured. The control center shows a "not set up" state when `ready` is false.\nRequires `phon\n\n`GET /v1/manager/status`\n\n```ts\nconst { data } = await client.getManagerStatus()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "provider": "babelforce",\n "ready": true,\n "reasons": ["provider_tenant_missing"]\n}\n```\n\n</details>\n\n---\n\n### `listPhoneAgents`\n\nOrganization members who hold the phone (`phone:use`), each joined with the provider user behind\nthem. Requires `phone:manage`.\n\n`GET /v1/manager/agents`\n\n```ts\nconst { data } = await client.listPhoneAgents()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "user_id": "string",\n "email": "string",\n "display_name": "string",\n "status": "active",\n "provider_user_id": "string",\n "provider_roles": ["string"],\n "assigned_at": "1970-01-01T00:00:00.000Z",\n "assigned_by": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `assignPhoneAgent`\n\nGives an organization member the phone. In order: the member is verified with user-api, their\npairwise subject for the provider is read from identity-api, the provider user is created (or\nfound) bound\n\n`POST /v1/manager/agents`\n\n```ts\nconst { data } = await client.assignPhoneAgent(\n null,\n {\n user_id: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "user_id": "string",\n "email": "string",\n "display_name": "string",\n "status": "active",\n "provider_user_id": "string",\n "provider_roles": ["string"],\n "assigned_at": "1970-01-01T00:00:00.000Z",\n "assigned_by": "string"\n}\n```\n\n</details>\n\n---\n\n### `removePhoneAgent`\n\nTakes the phone away from a member: the `phone_agent` role is removed first, then the provider\nuser is deactivated (never deleted: call history keeps referring to it). Requires `phone:manage`.\n\n`DELETE /v1/manager/agents/{user_id}`\n\n```ts\nconst { data } = await client.removePhoneAgent({\n user_id: \'example\',\n})\n```\n\n---\n\n### `getLiveSnapshot`\n\nOne snapshot of the organization\'s live phone state for the control center\'s Overview: agent\npresence counters and per-queue health (waiting calls, longest wait, eligible vs available\nagents). Read fr\n\n`GET /v1/manager/live`\n\n```ts\nconst { data } = await client.getLiveSnapshot()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "captured_at": "1970-01-01T00:00:00.000Z",\n "agents": {\n "total": 0,\n "online": 0,\n "available": 0,\n "on_call": 0,\n "wrap_up": 0,\n "offline": 0\n },\n "queues": [\n {\n "id": "string",\n "name": "string",\n "waiting": 0,\n "longest_wait_seconds": 0,\n "eligible": 0,\n "available": 0,\n "health": "healthy"\n }\n ],\n "calls_waiting": 0,\n "longest_wait_seconds": 0\n}\n```\n\n</details>\n\n---\n\n### `listLiveAgents`\n\nThe organization\'s phone agents with their live phone status, their skills (as the phone system\nholds them) and the queues they can take calls from. Agents that are epilot phone agents carry\nthe epilo\n\n`GET /v1/manager/agents/live`\n\n```ts\nconst { data } = await client.listLiveAgents()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "captured_at": "1970-01-01T00:00:00.000Z",\n "results": [\n {\n "provider_agent_id": "string",\n "user_id": "string",\n "name": "string",\n "email": "string",\n "enabled": true,\n "state": "available",\n "presence": {\n "name": "string",\n "label": "string",\n "available": true\n },\n "display_status": "string",\n "skills": ["string"],\n "queues": [\n {\n "id": "string",\n "name": "string",\n "via": ["skill"],\n "skills": ["string"],\n "locked": true\n }\n ],\n "current_call": {\n "started_at": "1970-01-01T00:00:00.000Z",\n "queue_name": "string"\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `setAgentRouting`\n\nSets an agent\'s skills and direct queue membership (full sets, not deltas), in this order:\n1. Skills: the agent\'s skills in the phone system are replaced by `skills`, so the phone system\n routes on \n\n`PUT /v1/manager/agents/{provider_agent_id}/routing`\n\n```ts\nconst { data } = await client.setAgentRouting(\n {\n provider_agent_id: \'example\',\n },\n {\n skills: [\'string\'],\n queue_ids: [\'string\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "provider_agent_id": "string",\n "skills": ["string"],\n "queues": [\n {\n "id": "string",\n "name": "string",\n "via": ["skill"],\n "skills": ["string"],\n "locked": true\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `previewAgentRouting`\n\nThe routing impact of `setAgentRouting` with the same body, without changing anything: the\nqueues the agent can take calls from now (as the phone system routes today) and after the\nchange, what is add\n\n`POST /v1/manager/agents/{provider_agent_id}/routing:preview`\n\n```ts\nconst { data } = await client.previewAgentRouting(\n {\n provider_agent_id: \'example\',\n },\n {\n skills: [\'string\'],\n queue_ids: [\'string\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "provider_agent_id": "string",\n "before": [\n {\n "id": "string",\n "name": "string"\n }\n ],\n "after": [\n {\n "id": "string",\n "name": "string"\n }\n ],\n "added": [\n {\n "id": "string",\n "name": "string"\n }\n ],\n "removed": [\n {\n "id": "string",\n "name": "string"\n }\n ],\n "coverage_lost": [\n {\n "id": "string",\n "name": "string"\n }\n ],\n "locked": [\n {\n "id": "string",\n "name": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `listQueues`\n\nThe organization\'s queues with live demand (waiting calls, longest wait), staffing (eligible\nvs available agents), derived health and who can take their calls: the routing steps in the\norder the phone\n\n`GET /v1/manager/queues`\n\n```ts\nconst { data } = await client.listQueues()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "captured_at": "1970-01-01T00:00:00.000Z",\n "results": [\n {\n "id": "string",\n "name": "string",\n "waiting": 0,\n "longest_wait_seconds": 0,\n "eligible": 0,\n "available": 0,\n "health": "healthy",\n "numbers": ["string"],\n "routing": [\n {\n "id": "string",\n "order": 0,\n "label": "string",\n "enabled": true,\n "skills": ["string"],\n "people": [\n {\n "provider_agent_id": "string",\n "user_id": "string",\n "name": "string"\n }\n ],\n "managed_by_epilot": true\n }\n ]\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getQueue`\n\nOne queue for the control center\'s queue drawer: the overview fields plus the agents currently\neligible for it (with live status and how they are eligible) and the calls waiting in it.\nRequires `phone\n\n`GET /v1/manager/queues/{queue_id}`\n\n```ts\nconst { data } = await client.getQueue({\n queue_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "name": "string",\n "waiting": 0,\n "longest_wait_seconds": 0,\n "eligible": 0,\n "available": 0,\n "health": "healthy",\n "numbers": ["string"],\n "routing": [\n {\n "id": "string",\n "order": 0,\n "label": "string",\n "enabled": true,\n "skills": ["string"],\n "people": [\n {\n "provider_agent_id": "string",\n "user_id": "string",\n "name": "string"\n }\n ],\n "managed_by_epilot": true\n }\n ],\n "captured_at": "1970-01-01T00:00:00.000Z",\n "eligible_agents": [\n {\n "provider_agent_id": "string",\n "user_id": "string",\n "name": "string",\n "email": "string",\n "state": "available",\n "presence": {\n "name": "string",\n "label": "string",\n "available": true\n },\n "via": ["skill"],\n "skills": ["string"]\n }\n ],\n "waiting_calls": [\n {\n "id": "string",\n "from_masked": "string",\n "waited_seconds": 0,\n "state": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getCallReport`\n\nInbound call outcomes for a period, from the provider\'s call reporting: how many inbound calls\nthere were, how many an agent handled (bridged) and how many ended without an agent (abandoned\nor failed)\n\n`GET /v1/manager/reporting/calls`\n\n```ts\nconst { data } = await client.getCallReport({\n from: \'example\',\n to: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "from": "1970-01-01T00:00:00.000Z",\n "to": "1970-01-01T00:00:00.000Z",\n "inbound_total": 0,\n "handled_by_agent": 0,\n "abandoned_or_failed": 0,\n "previous_period": {\n "from": "1970-01-01T00:00:00.000Z",\n "to": "1970-01-01T00:00:00.000Z",\n "inbound_total": 0\n }\n}\n```\n\n</details>\n\n---\n\n### `listProviderSetups`\n\nEvery organization that has a telephony provider tenant, for the admin portal\'s overview: the\nprovider\'s sub-accounts (one per organization, keyed by the organization id) joined with this\nservice\'s se\n\n`GET /v1/operator/provider-setups`\n\n```ts\nconst { data } = await client.listProviderSetups()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "org_id": "string",\n "provider": "babelforce",\n "ready": true,\n "setup_recorded": true,\n "tenant": {\n "id": "string",\n "name": "string",\n "org_key": "string"\n },\n "sso_identity_client_id": "string",\n "last_setup_by": "string",\n "updated_at": "1970-01-01T00:00:00.000Z"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getProviderSetup`\n\nWhat has been set up at the telephony provider for this organization.\n\n`GET /v1/operator/organizations/{org_id}/provider`\n\n```ts\nconst { data } = await client.getProviderSetup({\n org_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "provider": "babelforce",\n "org_id": "string",\n "ready": true,\n "tenant": {\n "id": "string",\n "name": "string",\n "org_key": "string",\n "created_at": "1970-01-01T00:00:00.000Z"\n },\n "scim": {\n "configured": true,\n "roles_enabled": true\n },\n "sso": {\n "configured": true,\n "identity_client_id": "string",\n "configured_at": "1970-01-01T00:00:00.000Z"\n },\n "last_setup_by": "string"\n}\n```\n\n</details>\n\n---\n\n### `setupProvider`\n\nPrepares the telephony provider for an organization, idempotently and in order: the provider\ntenant (Babelforce sub-account keyed by the organization id), its SCIM configuration with role\nmanagement o\n\n`POST /v1/operator/organizations/{org_id}/provider:setup`\n\n```ts\nconst { data } = await client.setupProvider(\n {\n org_id: \'example\',\n },\n {\n account_name: \'string\',\n identity_client_id: \'string\',\n identity_client_secret: \'stringstring\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "provider": "babelforce",\n "org_id": "string",\n "ready": true,\n "tenant": {\n "id": "string",\n "name": "string",\n "org_key": "string",\n "created_at": "1970-01-01T00:00:00.000Z"\n },\n "scim": {\n "configured": true,\n "roles_enabled": true\n },\n "sso": {\n "configured": true,\n "identity_client_id": "string",\n "configured_at": "1970-01-01T00:00:00.000Z"\n },\n "last_setup_by": "string"\n}\n```\n\n</details>\n\n---\n\n## Schemas\n\n### `ManagerStatus`\n\n```ts\ntype ManagerStatus = {\n provider: "babelforce"\n ready: boolean\n reasons: "provider_tenant_missing" | "sso_not_configured" | "scim_not_configured" | "identity_enablement_missing"[]\n}\n```\n\n### `PhoneAgent`\n\n```ts\ntype PhoneAgent = {\n user_id: string\n email: string\n display_name?: string\n status: "active" | "pending" | "disabled" | "missing_provider" | "missing_role"\n provider_user_id?: string\n provider_roles?: string[]\n assigned_at?: string // date-time\n assigned_by?: string\n}\n```\n\n### `AssignPhoneAgentRequest`\n\n```ts\ntype AssignPhoneAgentRequest = {\n user_id: string\n}\n```\n\n### `ProviderSetup`\n\n```ts\ntype ProviderSetup = {\n provider: "babelforce"\n org_id: string\n ready: boolean\n tenant: {\n id: string\n name: string\n org_key: string\n created_at?: string // date-time\n }\n scim: {\n configured: boolean\n roles_enabled: boolean\n }\n sso: {\n configured: boolean\n identity_client_id?: string\n configured_at?: string // date-time\n }\n last_setup_by?: string\n}\n```\n\n### `ProviderSetupSummary`\n\nOne organization\'s provider setup, as listed in the overview (no live SCIM or SSO reads).\n\n```ts\ntype ProviderSetupSummary = {\n org_id: string\n provider: "babelforce"\n ready: boolean\n setup_recorded: boolean\n tenant: {\n id: string\n name: string\n org_key: string\n }\n sso_identity_client_id?: string\n last_setup_by?: string\n updated_at?: string // date-time\n}\n```\n\n### `ProviderSetupRequest`\n\n```ts\ntype ProviderSetupRequest = {\n account_name?: string\n identity_client_id: string\n identity_client_secret: string\n}\n```\n\n### `CustomerBatchSearchResult`\n\n```ts\ntype CustomerBatchSearchResult = {\n results: Array<{\n identifier: {\n type: { ... }\n value: { ... }\n }\n status: "found" | "not_found" | "ambiguous" | "invalid" | "error"\n customer?: {\n id: { ... }\n name: { ... }\n customer_number?: { ... }\n }\n }>\n}\n```\n\n### `CustomerSearchResult`\n\n```ts\ntype CustomerSearchResult = {\n identifier: {\n type: "id" | "customer_number" | "external_id" | "phone_number" | "email"\n value: string\n }\n status: "found" | "not_found" | "ambiguous" | "invalid" | "error"\n customer?: {\n id: string\n name: string\n customer_number?: string\n }\n}\n```\n\n### `CustomerIdentifier`\n\n```ts\ntype CustomerIdentifier = {\n type: "id" | "customer_number" | "external_id" | "phone_number" | "email"\n value: string\n}\n```\n\n### `CustomerSummary`\n\nPresent when `status` is `found`\n\n```ts\ntype CustomerSummary = {\n id: string\n name: string\n customer_number?: string\n}\n```\n\n### `AgentState`\n\nThe agent\'s live line state as the provider reports it, plus `offline` for an agent whose\npresence is not available (not signed in or on a busy presence) and `unknown` when the\nprovider gives no state. `in_call` covers ringing-to-bridged; `wrap_up` is the post-call time.\n\n\n```ts\ntype AgentState = "available" | "ringing" | "in_call" | "wrap_up" | "busy" | "declined" | "unreachable" | "selected" | "offline" | "unknown"\n```\n\n### `AgentPresence`\n\nThe provider presence the agent has selected (e.g. Available, Break, Meeting)\n\n```ts\ntype AgentPresence = {\n name: string\n label: string\n available: boolean\n}\n```\n\n### `Skill`\n\nA skill as the phone system holds it (Babelforce: an agent tag). epilot\'s convention for skills is\n`<skill category>:`<label>`` (e.g. `language:german`), which the control center shows as\n"Category \xB7 Label"; a skill without a colon has no category.\n\n\n```ts\ntype Skill = string\n```\n\n### `QueueRef`\n\n```ts\ntype QueueRef = {\n id: string\n name: string\n}\n```\n\n### `PersonRef`\n\nAn agent as a routing step names them\n\n```ts\ntype PersonRef = {\n provider_agent_id: string\n user_id?: string\n name: string\n}\n```\n\n### `EligibilityPath`\n\nHow an agent can take a queue\'s calls:\n- `skill`: the queue routes to people with a skill the agent has (changes with the agent\'s skills);\n- `direct`: the agent is in the queue\'s epilot-managed step (added from the control center);\n- `routing`: the phone system\'s own routing names the agent (a team \n\n```ts\ntype EligibilityPath = "skill" | "direct" | "routing"\n```\n\n### `AgentQueueEligibility`\n\nA queue an agent can take calls from, and why\n\n```ts\ntype AgentQueueEligibility = {\n id: string\n name: string\n via: "skill" | "direct" | "routing"[]\n skills: string[]\n locked: boolean\n}\n```\n\n### `LiveAgent`\n\n```ts\ntype LiveAgent = {\n provider_agent_id: string\n user_id?: string\n name: string\n email?: string\n enabled: boolean\n state: "available" | "ringing" | "in_call" | "wrap_up" | "busy" | "declined" | "unreachable" | "selected" | "offline" | "unknown"\n presence?: {\n name: string\n label: string\n available: boolean\n }\n display_status?: string\n skills: string[]\n queues: Array<{\n id: string\n name: string\n via: "skill" | "direct" | "routing"[]\n skills: string[]\n locked: boolean\n }>\n current_call?: {\n started_at: string // date-time\n queue_name?: string\n }\n}\n```\n\n### `LiveAgentCounters`\n\nPresence counters over the organization\'s agents\n\n```ts\ntype LiveAgentCounters = {\n total: number\n online: number\n available: number\n on_call: number\n wrap_up: number\n offline: number\n}\n```\n\n### `QueueHealth`\n\n`at_risk`: calls are waiting and no eligible agent is available. `healthy`: at least one\neligible agent is available. `quiet`: nothing waiting and nobody available.\n\n\n```ts\ntype QueueHealth = "healthy" | "at_risk" | "quiet"\n```\n\n### `QueueLive`\n\nLive demand and staffing of one queue\n\n```ts\ntype QueueLive = {\n id: string\n name: string\n waiting: number\n longest_wait_seconds?: number\n eligible: number\n available: number\n health: "healthy" | "at_risk" | "quiet"\n}\n```\n\n### `LiveSnapshot`\n\n```ts\ntype LiveSnapshot = {\n captured_at: string // date-time\n agents: {\n total: number\n online: number\n available: number\n on_call: number\n wrap_up: number\n offline: number\n }\n queues: Array<{\n id: string\n name: string\n waiting: number\n longest_wait_seconds?: number\n eligible: number\n available: number\n health: "healthy" | "at_risk" | "quiet"\n }>\n calls_waiting: number\n longest_wait_seconds?: number\n}\n```\n\n### `QueueRoutingStep`\n\nOne step of who can take a queue\'s calls, in the order the phone system tries them. A step\noffers calls to the people it names and to everyone with any of its skills. Teams set up in the\nphone system appear as the people they contain. The epilot-managed step holds the people added\nfrom the control c\n\n```ts\ntype QueueRoutingStep = {\n id: string\n order: number\n label: string\n enabled: boolean\n skills: string[]\n people: Array<{\n provider_agent_id: string\n user_id?: string\n name: string\n }>\n managed_by_epilot: boolean\n}\n```\n\n### `QueueOverview`\n\n```ts\ntype QueueOverview = {\n id: string\n name: string\n waiting: number\n longest_wait_seconds?: number\n eligible: number\n available: number\n health: "healthy" | "at_risk" | "quiet"\n numbers?: string[]\n routing: Array<{\n id: string\n order: number\n label: string\n enabled: boolean\n skills: string[]\n people: Array<{\n provider_agent_id: { ... }\n user_id?: { ... }\n name: { ... }\n }>\n managed_by_epilot: boolean\n }>\n}\n```\n\n### `EligibleAgent`\n\nAn agent who can take the queue\'s calls, with live status\n\n```ts\ntype EligibleAgent = {\n provider_agent_id: string\n user_id?: string\n name: string\n email?: string\n state: "available" | "ringing" | "in_call" | "wrap_up" | "busy" | "declined" | "unreachable" | "selected" | "offline" | "unknown"\n presence?: {\n name: string\n label: string\n available: boolean\n }\n via: "skill" | "direct" | "routing"[]\n skills: string[]\n}\n```\n\n### `WaitingCall`\n\n```ts\ntype WaitingCall = {\n id: string\n from_masked?: string\n waited_seconds: number\n state: string\n}\n```\n\n### `QueueDetail`\n\n```ts\ntype QueueDetail = {\n captured_at: string // date-time\n eligible_agents: Array<{\n provider_agent_id: string\n user_id?: string\n name: string\n email?: string\n state: "available" | "ringing" | "in_call" | "wrap_up" | "busy" | "declined" | "unreachable" | "selected" | "offline" | "unknown"\n presence?: {\n name: { ... }\n label: { ... }\n available: { ... }\n }\n via: "skill" | "direct" | "routing"[]\n skills: string[]\n }>\n waiting_calls: Array<{\n id: string\n from_masked?: string\n waited_seconds: number\n state: string\n }>\n}\n```\n\n### `AgentRoutingRequest`\n\n```ts\ntype AgentRoutingRequest = {\n skills: string[]\n queue_ids: string[]\n}\n```\n\n### `AgentRouting`\n\n```ts\ntype AgentRouting = {\n provider_agent_id: string\n skills: string[]\n queues: Array<{\n id: string\n name: string\n via: "skill" | "direct" | "routing"[]\n skills: string[]\n locked: boolean\n }>\n}\n```\n\n### `AgentRoutingPreview`\n\n```ts\ntype AgentRoutingPreview = {\n provider_agent_id: string\n before: Array<{\n id: string\n name: string\n }>\n after: Array<{\n id: string\n name: string\n }>\n added: Array<{\n id: string\n name: string\n }>\n removed: Array<{\n id: string\n name: string\n }>\n coverage_lost: Array<{\n id: string\n name: string\n }>\n locked: Array<{\n id: string\n name: string\n }>\n}\n```\n\n### `CallReport`\n\n```ts\ntype CallReport = {\n from: string // date-time\n to: string // date-time\n inbound_total: number\n handled_by_agent: number\n abandoned_or_failed: number\n previous_period: {\n from: string // date-time\n to: string // date-time\n inbound_total: number\n }\n}\n```\n\n### `ErrorResponse`\n\n```ts\ntype ErrorResponse = {\n status: number\n error: string\n code?: string\n}\n```\n';
5
+
6
+
7
+ exports.default = phone_integration_default;
@@ -1,5 +1,5 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkNHA2IXWNcjs = require('./chunk-NHA2IXWN.cjs');
3
+ var _chunkU4AOZZGWcjs = require('./chunk-U4AOZZGW.cjs');
4
4
  require('./chunk-NJK5F5TF.cjs');
5
- exports. default = _chunkNHA2IXWNcjs.require_phone_integration_runtime.call(void 0, );
5
+ exports. default = _chunkU4AOZZGWcjs.require_phone_integration_runtime.call(void 0, );
@@ -1,5 +1,5 @@
1
1
  import {
2
2
  require_phone_integration_runtime
3
- } from "./chunk-QFTXKO2I.js";
3
+ } from "./chunk-E6N33SVB.js";
4
4
  import "./chunk-YPSWSI3M.js";
5
5
  export default require_phone_integration_runtime();