@framers/agentos-ext-voice-telnyx 0.1.4 → 0.2.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.
package/README.md ADDED
@@ -0,0 +1,88 @@
1
+ # Telnyx voice calls
2
+
3
+ This pack gives an agent a phone call tool and voice provider using the `telnyx` SDK and Telnyx Call Control. It places outbound calls, speaks text into calls, hangs up calls and normalizes webhook events.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @framers/agentos-ext-voice-telnyx
9
+ ```
10
+
11
+ Peer dependency: `@framers/agentos`, at the minimum version declared by this package.
12
+
13
+ ## Usage
14
+
15
+ ```ts
16
+ import { AgentOS } from '@framers/agentos';
17
+
18
+ const agentos = await AgentOS.create({
19
+ extensionManifest: {
20
+ packs: [
21
+ {
22
+ package: '@framers/agentos-ext-voice-telnyx',
23
+ options: {
24
+ apiKey: process.env.TELNYX_API_KEY,
25
+ connectionId: process.env.TELNYX_CONNECTION_ID,
26
+ publicKey: process.env.TELNYX_PUBLIC_KEY,
27
+ fromNumber: process.env.TELNYX_FROM_NUMBER,
28
+ },
29
+ },
30
+ ],
31
+ },
32
+ });
33
+ ```
34
+
35
+ ## Configuration
36
+
37
+ Credentials resolve from direct options, then `options.secrets`, then the listed environment variables in order.
38
+
39
+ | Option | Secret id | Environment variable | Required | Default |
40
+ | --- | --- | --- | --- | --- |
41
+ | `apiKey` | `telnyx.apiKey` | `TELNYX_API_KEY`, `TELNYX_API_V2_KEY` | Yes | None, throws if absent |
42
+ | `connectionId` | `telnyx.connectionId` | `TELNYX_CONNECTION_ID`, `TELNYX_APP_ID` | Yes | None, throws if absent |
43
+ | `publicKey` | `telnyx.publicKey` | `TELNYX_PUBLIC_KEY` | No | `undefined` |
44
+ | `fromNumber` | None | `TELNYX_FROM_NUMBER` | No | `undefined` in service, empty string in manager config |
45
+ | `webhookBaseUrl` | None | None | No | `undefined` |
46
+ | `priority` | None | None | No | `50` |
47
+ | `secrets` | Map containing the secret ids above | None | No | `undefined` |
48
+ | `callManager` | None | None | No | Exposed pack-owned manager |
49
+
50
+ ## Tools
51
+
52
+ | Tool | What it does |
53
+ | --- | --- |
54
+ | `telnyxVoiceCall` | Makes and manages phone calls via Telnyx, including outbound calling, in-call TTS, hangup and status queries. |
55
+
56
+ ### `telnyxVoiceCall` parameters
57
+
58
+ | Parameter | Type | Required | Description |
59
+ | --- | --- | --- | --- |
60
+ | `action` | `string`, enum: `call`, `speak`, `hangup`, `status`, `list` | Yes | The voice call action to perform |
61
+ | `toNumber` | `string` | No | E.164 phone number to call (required for "`call`" action) |
62
+ | `message` | `string` | No | Message to speak (for "`call`" in notify mode, or "`speak`" action) |
63
+ | `mode` | `string`, enum: `notify`, `conversation` | No | Call interaction mode (default: "`conversation`") |
64
+ | `callId` | `string` | No | Call ID (required for "`speak`", "`hangup`", and "`status`" actions) |
65
+
66
+ ## Notes
67
+
68
+ The package requires Node.js `>=22`. Activation dynamically loads the SDK and initializes the service. Deactivation disposes only the original pack-owned manager and releases the SDK client reference.
69
+
70
+ The tool has side effects: `call` places a phone call, `speak` sends a TTS command and `hangup` ends a call. Runtime checks require `toNumber` for `call`, `callId` and `message` for `speak`, and `callId` for `hangup` or `status`. The schema requires only `action`.
71
+
72
+ The provider uses the configured connection ID, caller number and webhook URL. `notify` enables answering machine detection. `conversation` passes a media stream URL with the inbound track. Call state is encoded into the outbound request. The service defaults TTS to a female voice and `en-US` with a text payload.
73
+
74
+ The provider parses call initiation, answer, hangup, machine detection and stream connection events. It attempts signature verification when `publicKey` is set and rejects missing signature headers, failed verification or timestamps outside its freshness window. Without `publicKey`, it accepts webhooks without signature verification.
75
+
76
+ The pack registers `voice-provider` named `telnyx` and delegates call management to `CallManager`. Its files do not start an HTTP webhook listener or implement a media socket server.
77
+
78
+ ## Host call manager binding
79
+
80
+ The returned pack exposes the manager used by its call tool through `binding.manager`. Supply `options.callManager` to use a host-owned manager; otherwise the exposed default belongs to the pack. `binding.setManager(next)` registers the same provider on the replacement and changes subsequent tool operations. The host drains or transfers active calls before rebinding; no call state is migrated by the binding.
81
+
82
+ The voice-provider descriptor preserves the raw Telnyx provider and adds a read-only `binding` property. Registry consumers and the returned pack therefore reach the same manager and tool handler. Deactivation disposes only the originally pack-owned manager, including when it has been replaced. Host-owned managers are never disposed by this extension. Construction places no carrier call.
83
+
84
+ This repair does not change the legacy carrier protocol, signature policy or callback behavior. Use the core carrier profile explicitly for its durable guarantees. The declared core peer floor is required for this binding API.
85
+
86
+ ## License
87
+
88
+ Apache-2.0
package/dist/index.d.ts CHANGED
@@ -6,7 +6,9 @@
6
6
  *
7
7
  * @module @framers/agentos-ext-voice-telnyx
8
8
  */
9
- import type { ExtensionContext, ExtensionPack } from '@framers/agentos';
9
+ import { CallManager, type ExtensionContext, type ExtensionPack } from '@framers/agentos';
10
+ import { type VoiceProviderBinding } from '@framers/agentos/io/channels/telephony/CallManager';
11
+ import { TelnyxVoiceProvider } from './TelnyxVoiceProvider';
10
12
  export interface TelnyxVoiceOptions {
11
13
  /** Telnyx API v2 key (overrides secrets/env). */
12
14
  apiKey?: string;
@@ -20,8 +22,20 @@ export interface TelnyxVoiceOptions {
20
22
  webhookBaseUrl?: string;
21
23
  /** Priority for extension descriptor ordering. */
22
24
  priority?: number;
25
+ /** Host-owned manager. The default manager belongs to this pack and is exposed through binding. */
26
+ callManager?: CallManager;
23
27
  }
24
- export declare function createExtensionPack(context: ExtensionContext): ExtensionPack;
28
+ /** A raw Telnyx provider carrying the call tool's shared manager binding. */
29
+ export type BoundTelnyxVoiceProvider = TelnyxVoiceProvider & {
30
+ readonly binding: VoiceProviderBinding;
31
+ };
32
+ /** Telnyx pack with explicit host access to the call tool's manager. */
33
+ export interface TelnyxVoicePack extends ExtensionPack {
34
+ /** Rebinding affects every subsequent tool operation. */
35
+ readonly binding: VoiceProviderBinding;
36
+ }
37
+ /** Construct the provider and manager binding without initiating a carrier call. */
38
+ export declare function createExtensionPack(context: ExtensionContext): TelnyxVoicePack;
25
39
  export { TelnyxVoiceService, type TelnyxServiceConfig } from './TelnyxVoiceService';
26
40
  export { TelnyxVoiceProvider } from './TelnyxVoiceProvider';
27
41
  export { TelnyxVoiceCallTool, type VoiceCallToolHandler } from './tools/voiceCall';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAwB,MAAM,kBAAkB,CAAC;AAU9F,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAuDD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,CAoE5E;AAID,OAAO,EAAE,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACnF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,EAAqB,KAAK,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;AAElH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAO5D,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mGAAmG;IACnG,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,6EAA6E;AAC7E,MAAM,MAAM,wBAAwB,GAAG,mBAAmB,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAA;CAAE,CAAC;AACxG,wEAAwE;AACxE,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;CACxC;AAuDD,oFAAoF;AACpF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,eAAe,CAgD9E;AAID,OAAO,EAAE,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACnF,eAAe,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.TelnyxVoiceCallTool = exports.TelnyxVoiceProvider = exports.TelnyxVoiceService = void 0;
13
13
  exports.createExtensionPack = createExtensionPack;
14
14
  const agentos_1 = require("@framers/agentos");
15
+ const CallManager_1 = require("@framers/agentos/io/channels/telephony/CallManager");
15
16
  const TelnyxVoiceService_1 = require("./TelnyxVoiceService");
16
17
  const TelnyxVoiceProvider_1 = require("./TelnyxVoiceProvider");
17
18
  const voiceCall_1 = require("./tools/voiceCall");
@@ -53,6 +54,7 @@ function resolveFromNumber(options) {
53
54
  // ============================================================================
54
55
  // Factory
55
56
  // ============================================================================
57
+ /** Construct the provider and manager binding without initiating a carrier call. */
56
58
  function createExtensionPack(context) {
57
59
  const options = (context.options ?? {});
58
60
  const apiKey = resolveApiKey(options, options.secrets);
@@ -68,34 +70,16 @@ function createExtensionPack(context) {
68
70
  // Create service and provider
69
71
  const service = new TelnyxVoiceService_1.TelnyxVoiceService(config);
70
72
  const provider = new TelnyxVoiceProvider_1.TelnyxVoiceProvider(service, config);
71
- // Create a CallManager to back the tool handler
72
- const callManager = new agentos_1.CallManager({
73
+ const ownedManager = options.callManager ? undefined : new agentos_1.CallManager({
73
74
  provider: { provider: 'telnyx', config: { apiKey, connectionId, fromNumber: fromNumber ?? '' } },
74
- webhookBaseUrl: options.webhookBaseUrl,
75
- defaultMode: 'conversation',
75
+ webhookBaseUrl: options.webhookBaseUrl, defaultMode: 'conversation',
76
76
  });
77
- callManager.registerProvider(provider);
78
- // Wire tool handler to CallManager
79
- const toolHandler = {
80
- async initiateCall(toNumber, message, mode) {
81
- return callManager.initiateCall({ toNumber, message, mode });
82
- },
83
- speakText(callId, text) {
84
- callManager.speakText(callId, text);
85
- },
86
- async hangupCall(callId) {
87
- await callManager.hangupCall(callId);
88
- },
89
- getCallStatus(callId) {
90
- return callManager.getCall(callId);
91
- },
92
- getActiveCalls() {
93
- return callManager.getActiveCalls();
94
- },
95
- };
96
- const voiceCallTool = new voiceCall_1.TelnyxVoiceCallTool(toolHandler);
77
+ const binding = (0, CallManager_1.bindVoiceProvider)(provider, options.callManager ?? ownedManager);
78
+ Object.defineProperty(provider, 'binding', { value: binding, enumerable: false, writable: false });
79
+ const voiceCallTool = new voiceCall_1.TelnyxVoiceCallTool(binding.toolHandler);
97
80
  const priority = options.priority ?? 50;
98
81
  return {
82
+ binding,
99
83
  name: '@framers/agentos-ext-voice-telnyx',
100
84
  version: '0.1.0',
101
85
  descriptors: [
@@ -107,7 +91,7 @@ function createExtensionPack(context) {
107
91
  context.logger?.info('[TelnyxVoice] Extension activated');
108
92
  },
109
93
  onDeactivate: async () => {
110
- callManager.dispose();
94
+ ownedManager?.dispose();
111
95
  await service.shutdown();
112
96
  context.logger?.info('[TelnyxVoice] Extension deactivated');
113
97
  },
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,cAAc;AACd;;;;;;;GAOG;;;AAgFH,kDAoEC;AAjJD,8CAA+C;AAC/C,6DAAoF;AACpF,+DAA4D;AAC5D,iDAAmF;AAqBnF,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E,SAAS,aAAa,CACpB,OAA2B,EAC3B,OAAgC;IAEhC,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC,MAAM,CAAC;IAC1C,IAAI,OAAO,EAAE,CAAC,eAAe,CAAC;QAAE,OAAO,OAAO,CAAC,eAAe,CAAC,CAAC;IAEhE,KAAK,MAAM,OAAO,IAAI,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,CAAC;QAC9D,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;IACzD,CAAC;IAED,MAAM,IAAI,KAAK,CACb,4GAA4G,CAC7G,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,OAA2B,EAC3B,OAAgC;IAEhC,IAAI,OAAO,CAAC,YAAY;QAAE,OAAO,OAAO,CAAC,YAAY,CAAC;IACtD,IAAI,OAAO,EAAE,CAAC,qBAAqB,CAAC;QAAE,OAAO,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAE5E,KAAK,MAAM,OAAO,IAAI,CAAC,sBAAsB,EAAE,eAAe,CAAC,EAAE,CAAC;QAChE,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;IACzD,CAAC;IAED,MAAM,IAAI,KAAK,CACb,oIAAoI,CACrI,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,OAA2B,EAC3B,OAAgC;IAEhC,IAAI,OAAO,CAAC,SAAS;QAAE,OAAO,OAAO,CAAC,SAAS,CAAC;IAChD,IAAI,OAAO,EAAE,CAAC,kBAAkB,CAAC;QAAE,OAAO,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACtE,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,SAAS,CAAC;AACvD,CAAC;AAED,SAAS,iBAAiB,CAAC,OAA2B;IACpD,OAAO,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,SAAS,CAAC;AAC9E,CAAC;AAED,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,SAAgB,mBAAmB,CAAC,OAAyB;IAC3D,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAErC,CAAC;IAEF,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAwB;QAClC,MAAM;QACN,YAAY;QACZ,SAAS;QACT,UAAU;KACX,CAAC;IAEF,8BAA8B;IAC9B,MAAM,OAAO,GAAG,IAAI,uCAAkB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAI,yCAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAE1D,gDAAgD;IAChD,MAAM,WAAW,GAAG,IAAI,qBAAW,CAAC;QAClC,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,IAAI,EAAE,EAAE,EAAE;QAChG,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,WAAW,EAAE,cAAc;KAC5B,CAAC,CAAC;IACH,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAEvC,mCAAmC;IACnC,MAAM,WAAW,GAAyB;QACxC,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,OAAgB,EAAE,IAAe;YACpE,OAAO,WAAW,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,SAAS,CAAC,MAAc,EAAE,IAAY;YACpC,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,MAAc;YAC7B,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QACD,aAAa,CAAC,MAAc;YAC1B,OAAO,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QACD,cAAc;YACZ,OAAO,WAAW,CAAC,cAAc,EAAE,CAAC;QACtC,CAAC;KACF,CAAC;IAEF,MAAM,aAAa,GAAG,IAAI,+BAAmB,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IAExC,OAAO;QACL,IAAI,EAAE,mCAAmC;QACzC,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE;YACX,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE;YACzE,EAAE,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE;SACnF;QACD,UAAU,EAAE,KAAK,IAAI,EAAE;YACrB,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;YAC3B,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAC5D,CAAC;QACD,YAAY,EAAE,KAAK,IAAI,EAAE;YACvB,WAAW,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;YACzB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,qCAAqC,CAAC,CAAC;QAC9D,CAAC;KACF,CAAC;AACJ,CAAC;AAED,mBAAmB;AAEnB,2DAAoF;AAA3E,wHAAA,kBAAkB,OAAA;AAC3B,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAC5B,+CAAmF;AAA1E,gHAAA,mBAAmB,OAAA;AAC5B,kBAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/manifest.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://agentos.sh/schemas/extension-manifest-v1.json",
3
3
  "id": "com.framers.voice.telnyx",
4
4
  "name": "Telnyx Voice Call Extension",
5
- "version": "0.1.4",
5
+ "version": "0.2.0",
6
6
  "description": "Telnyx telephony provider for voice calls via Call Control v2 — outbound/inbound calls, TTS speak commands, and bidirectional media streaming.",
7
7
  "categories": ["voice", "telephony"],
8
8
  "platforms": ["telnyx"],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@framers/agentos-ext-voice-telnyx",
3
- "version": "0.1.4",
3
+ "version": "0.2.0",
4
4
  "description": "Telnyx voice call provider for AgentOS — outbound/inbound calls via Telnyx Call Control v2",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -21,7 +21,7 @@
21
21
  "manifest.json"
22
22
  ],
23
23
  "peerDependencies": {
24
- "@framers/agentos": ">=0.10.40"
24
+ "@framers/agentos": ">=0.13.104"
25
25
  },
26
26
  "dependencies": {
27
27
  "telnyx": "^2.0.0"
@@ -30,7 +30,7 @@
30
30
  "@types/node": "^20.0.0",
31
31
  "typescript": "^5.0.0",
32
32
  "vitest": "^3.2.7",
33
- "@framers/agentos": "^0.13.40"
33
+ "@framers/agentos": "^0.13.134"
34
34
  },
35
35
  "engines": {
36
36
  "node": ">=22"