@framers/agentos-ext-voice-twilio 0.1.5 → 0.2.1

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 CHANGED
@@ -8,7 +8,7 @@ This pack gives an agent a voice call provider and a call management tool interf
8
8
  npm install @framers/agentos-ext-voice-twilio
9
9
  ```
10
10
 
11
- Peer dependency: `@framers/agentos` (`>=0.10.40`).
11
+ Peer dependency: `@framers/agentos`, at the minimum version declared by this package.
12
12
 
13
13
  ## Usage
14
14
 
@@ -47,6 +47,7 @@ Credentials resolve from direct options, then `options.secrets`, then the select
47
47
  | `fromNumberEnv` | None | None | No | `TWILIO_FROM_NUMBER` selected by resolver |
48
48
  | `priority` | None | None | No | `50` |
49
49
  | `secrets` | Map containing the secret ids above | None | No | `undefined` |
50
+ | `callManager` | None | None | No | Exposed pack-owned manager |
50
51
 
51
52
  ## Tools
52
53
 
@@ -68,7 +69,7 @@ Credentials resolve from direct options, then `options.secrets`, then the select
68
69
 
69
70
  The package requires Node.js `>=22`. Activation dynamically loads the SDK and initializes the service. Deactivation releases the SDK client. Missing account credentials throw during pack creation.
70
71
 
71
- The factory registers the tool with a placeholder handler: initiating, speaking and ending calls return handler-not-configured errors; status lookup finds no call, and listing returns an empty array. Although comments mention `setToolHandler`, the source exports no such function. The exported `VoiceCallTool` constructor accepts a host-provided `VoiceCallToolHandler` for separate construction.
72
+ The factory registers the tool against its exposed manager binding. An injected manager is used immediately; otherwise the pack creates its own manager. The exported `VoiceCallTool` constructor still accepts a host-provided handler for separate construction.
72
73
 
73
74
  With a configured handler, call operations have side effects. Runtime checks require `toNumber` for `initiate_call`, `callId` and `message` for `speak`, and `callId` for `end_call`. Despite its schema description, `get_status` accepts no `callId` to list active calls. The tool passes an omitted `mode` through to the handler without applying a default. Number validation checks for a string beginning with `+`.
74
75
 
@@ -76,6 +77,14 @@ The provider generates notify TwiML with speech followed by hangup, defaulting t
76
77
 
77
78
  Webhook verification uses the request URL, body parameters and auth token. Missing signatures or invalid signatures are rejected. Form-encoded status callbacks map to normalized call events. The pack registers `voice-provider` named `twilio`; its files do not start webhook or media socket servers.
78
79
 
80
+ ## Host call manager binding
81
+
82
+ Pass `options.callManager` to use a host-owned `CallManager`. The returned pack exposes `binding`, whose `manager`, `provider` and `toolHandler` identify the actual objects used by the call tool. `binding.setManager(next)` registers the provider on the replacement manager and changes subsequent tool operations. Rebind only after the host has drained or transferred its active calls; the binding does not migrate call state.
83
+
84
+ The voice-provider descriptor still contains the raw Twilio provider. Its read-only `binding` property exposes the same binding to an `ExtensionManager` registry consumer. The call tool's id, actions and public handler type remain compatible. When no manager is supplied, the pack creates and exposes its own; deactivation disposes only that original owned manager. An injected or replacement manager remains the host's responsibility. No call is placed during construction.
85
+
86
+ This binding does not change the pack's legacy carrier implementation or grant the durable carrier profile's event identity and webhook guarantees. Select the core carrier profile explicitly when those guarantees are required. The package's declared core peer floor is required for the binding API.
87
+
79
88
  ## License
80
89
 
81
90
  Apache-2.0
package/dist/index.d.ts CHANGED
@@ -8,7 +8,8 @@
8
8
  *
9
9
  * @module @framers/agentos-ext-voice-twilio
10
10
  */
11
- import type { ExtensionContext, ExtensionPack } from '@framers/agentos';
11
+ import { CallManager, type ExtensionContext, type ExtensionPack } from '@framers/agentos';
12
+ import { type VoiceProviderBinding } from '@framers/agentos/io/channels/telephony/CallManager';
12
13
  import { TwilioVoiceService } from './TwilioVoiceService';
13
14
  import { TwilioVoiceProvider } from './TwilioVoiceProvider';
14
15
  import { VoiceCallTool } from './tools/voiceCall';
@@ -31,8 +32,20 @@ export interface TwilioVoiceOptions {
31
32
  priority?: number;
32
33
  /** Secrets map passed from registry. */
33
34
  secrets?: Record<string, string>;
35
+ /** Host-owned manager. Omission creates a pack-owned manager exposed through binding. */
36
+ callManager?: CallManager;
34
37
  }
35
- export declare function createExtensionPack(context: ExtensionContext): ExtensionPack;
38
+ /** A raw Twilio provider with access to the manager used by its call tool. */
39
+ export type BoundTwilioVoiceProvider = TwilioVoiceProvider & {
40
+ readonly binding: VoiceProviderBinding;
41
+ };
42
+ /** Extension pack exposing its call-tool binding without replacing provider descriptors. */
43
+ export interface TwilioVoicePack extends ExtensionPack {
44
+ /** Shared binding used by the tool and voice-provider descriptor. */
45
+ readonly binding: VoiceProviderBinding;
46
+ }
47
+ /** Construct a Twilio pack; no call is initiated until its tool or host requests one. */
48
+ export declare function createExtensionPack(context: ExtensionContext): TwilioVoicePack;
36
49
  export { TwilioVoiceService, TwilioVoiceProvider, VoiceCallTool };
37
50
  export type { TwilioServiceConfig } from './TwilioVoiceService';
38
51
  export type { VoiceCallToolHandler } from './tools/voiceCall';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAwB,MAAM,kBAAkB,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAA4B,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAA6B,MAAM,mBAAmB,CAAC;AAM7E,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAoCD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,CAmF5E;AAsCD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,aAAa,EAAE,CAAC;AAClE,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,EAAqB,KAAK,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;AAClH,OAAO,EAAE,kBAAkB,EAA4B,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAMlD,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,yFAAyF;IACzF,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,8EAA8E;AAC9E,MAAM,MAAM,wBAAwB,GAAG,mBAAmB,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAA;CAAE,CAAC;AACxG,4FAA4F;AAC5F,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,qEAAqE;IACrE,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;CACxC;AAoCD,yFAAyF;AACzF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,eAAe,CA4E9E;AAMD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,aAAa,EAAE,CAAC;AAClE,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,eAAe,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -13,6 +13,8 @@
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.VoiceCallTool = exports.TwilioVoiceProvider = exports.TwilioVoiceService = void 0;
15
15
  exports.createExtensionPack = createExtensionPack;
16
+ const agentos_1 = require("@framers/agentos");
17
+ const CallManager_1 = require("@framers/agentos/io/channels/telephony/CallManager");
16
18
  const TwilioVoiceService_1 = require("./TwilioVoiceService");
17
19
  Object.defineProperty(exports, "TwilioVoiceService", { enumerable: true, get: function () { return TwilioVoiceService_1.TwilioVoiceService; } });
18
20
  const TwilioVoiceProvider_1 = require("./TwilioVoiceProvider");
@@ -43,6 +45,7 @@ function resolveSecret(optionValue, secrets, secretKey, envVarOverride, defaultE
43
45
  // ============================================================================
44
46
  // Factory
45
47
  // ============================================================================
48
+ /** Construct a Twilio pack; no call is initiated until its tool or host requests one. */
46
49
  function createExtensionPack(context) {
47
50
  const options = (context.options ?? {});
48
51
  const accountSid = resolveSecret(options.accountSid, options.secrets, 'twilio.accountSid', options.accountSidEnv, 'TWILIO_ACCOUNT_SID');
@@ -62,22 +65,16 @@ function createExtensionPack(context) {
62
65
  // ── Instantiate components ──
63
66
  const service = new TwilioVoiceService_1.TwilioVoiceService(config);
64
67
  const provider = new TwilioVoiceProvider_1.TwilioVoiceProvider(service);
65
- // The tool handler delegates to a CallManager, but since the CallManager
66
- // is owned by the host application (not this extension), we provide a
67
- // no-op placeholder handler that can be replaced at runtime via the
68
- // exported `setToolHandler()`.
69
- let activeHandler = createPlaceholderHandler();
70
- const voiceCallTool = new voiceCall_1.VoiceCallTool(
71
- // Proxy handler so it always uses the latest activeHandler reference
72
- {
73
- initiateCall: (...args) => activeHandler.initiateCall(...args),
74
- speakText: (...args) => activeHandler.speakText(...args),
75
- hangupCall: (...args) => activeHandler.hangupCall(...args),
76
- getCallStatus: (...args) => activeHandler.getCallStatus(...args),
77
- getActiveCalls: () => activeHandler.getActiveCalls(),
68
+ const ownedManager = options.callManager ? undefined : new agentos_1.CallManager({
69
+ provider: { provider: 'twilio', config: { accountSid, authToken, fromNumber } },
70
+ webhookBaseUrl: config.webhookBaseUrl, defaultMode: 'conversation',
78
71
  });
72
+ const binding = (0, CallManager_1.bindVoiceProvider)(provider, options.callManager ?? ownedManager);
73
+ Object.defineProperty(provider, 'binding', { value: binding, enumerable: false, writable: false });
74
+ const voiceCallTool = new voiceCall_1.VoiceCallTool(binding.toolHandler);
79
75
  const priority = options.priority ?? 50;
80
76
  return {
77
+ binding,
81
78
  name: '@framers/agentos-ext-voice-twilio',
82
79
  version: '0.1.0',
83
80
  descriptors: [
@@ -89,38 +86,11 @@ function createExtensionPack(context) {
89
86
  context.logger?.info('[TwilioVoice] Extension activated');
90
87
  },
91
88
  onDeactivate: async () => {
89
+ ownedManager?.dispose();
92
90
  await service.shutdown();
93
91
  context.logger?.info('[TwilioVoice] Extension deactivated');
94
92
  },
95
93
  };
96
94
  }
97
- // ============================================================================
98
- // Placeholder Handler
99
- // ============================================================================
100
- /**
101
- * Creates a placeholder VoiceCallToolHandler that returns sensible errors.
102
- * The host application should replace this with a real handler backed by
103
- * a CallManager instance via `setToolHandler()`.
104
- */
105
- function createPlaceholderHandler() {
106
- return {
107
- async initiateCall(_toNumber, _message, _mode) {
108
- throw new Error('VoiceCallToolHandler not configured. The host application must provide a handler ' +
109
- 'backed by a CallManager instance.');
110
- },
111
- speakText(_callId, _text) {
112
- throw new Error('VoiceCallToolHandler not configured.');
113
- },
114
- async hangupCall(_callId) {
115
- throw new Error('VoiceCallToolHandler not configured.');
116
- },
117
- getCallStatus(_callId) {
118
- return undefined;
119
- },
120
- getActiveCalls() {
121
- return [];
122
- },
123
- };
124
- }
125
95
  exports.default = createExtensionPack;
126
96
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,cAAc;AACd;;;;;;;;;GASG;;;AAkEH,kDAmFC;AAlJD,6DAAoF;AAwL3E,mGAxLA,uCAAkB,OAwLA;AAvL3B,+DAA4D;AAuL/B,oGAvLpB,yCAAmB,OAuLoB;AAtLhD,iDAA6E;AAsL3B,8FAtLzC,yBAAa,OAsLyC;AA3J/D,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,SAAS,aAAa,CACpB,WAA+B,EAC/B,OAA2C,EAC3C,SAAiB,EACjB,cAAkC,EAClC,aAAqB,EACrB,GAAG,eAAyB;IAE5B,yBAAyB;IACzB,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IAEpC,+BAA+B;IAC/B,IAAI,OAAO,EAAE,CAAC,SAAS,CAAC;QAAE,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;IAEpD,oBAAoB;IACpB,MAAM,OAAO,GAAG,cAAc,IAAI,aAAa,CAAC;IAChD,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;IAEvD,uBAAuB;IACvB,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;QAChC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;IAC7C,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,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,CAAuB,CAAC;IAE9D,MAAM,UAAU,GAAG,aAAa,CAC9B,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,OAAO,EACf,mBAAmB,EACnB,OAAO,CAAC,aAAa,EACrB,oBAAoB,CACrB,CAAC;IAEF,MAAM,SAAS,GAAG,aAAa,CAC7B,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,OAAO,EACf,kBAAkB,EAClB,OAAO,CAAC,YAAY,EACpB,mBAAmB,CACpB,CAAC;IAEF,MAAM,UAAU,GAAG,aAAa,CAC9B,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,OAAO,EACf,mBAAmB,EACnB,OAAO,CAAC,aAAa,EACrB,oBAAoB,EACpB,qBAAqB,CACtB,CAAC;IAEF,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,0EAA0E;YAC1E,sDAAsD;YACtD,gDAAgD,CACjD,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAwB;QAClC,UAAU;QACV,SAAS;QACT,UAAU;QACV,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;KACjF,CAAC;IAEF,+BAA+B;IAE/B,MAAM,OAAO,GAAG,IAAI,uCAAkB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAI,yCAAmB,CAAC,OAAO,CAAC,CAAC;IAElD,yEAAyE;IACzE,sEAAsE;IACtE,oEAAoE;IACpE,+BAA+B;IAC/B,IAAI,aAAa,GAAyB,wBAAwB,EAAE,CAAC;IAErE,MAAM,aAAa,GAAG,IAAI,yBAAa;IACrC,qEAAqE;IACrE;QACE,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;QAC9D,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QACxD,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QAC1D,aAAa,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;QAChE,cAAc,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE;KACrD,CACF,CAAC;IAEF,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,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;YACzB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,qCAAqC,CAAC,CAAC;QAC9D,CAAC;KACF,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E;;;;GAIG;AACH,SAAS,wBAAwB;IAC/B,OAAO;QACL,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,QAAiB,EAAE,KAAgB;YACvE,MAAM,IAAI,KAAK,CACb,mFAAmF;gBACnF,mCAAmC,CACpC,CAAC;QACJ,CAAC;QACD,SAAS,CAAC,OAAe,EAAE,KAAa;YACtC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,OAAe;YAC9B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,aAAa,CAAC,OAAe;YAC3B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,cAAc;YACZ,OAAO,EAAE,CAAC;QACZ,CAAC;KACF,CAAC;AACJ,CAAC;AASD,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.twilio",
4
4
  "name": "Twilio Voice Call Extension",
5
- "version": "0.1.5",
5
+ "version": "0.2.1",
6
6
  "description": "Twilio telephony provider for voice calls — supports outbound/inbound calls, TwiML, media streams, and bidirectional audio.",
7
7
  "categories": ["voice", "telephony"],
8
8
  "platforms": ["twilio"],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@framers/agentos-ext-voice-twilio",
3
- "version": "0.1.5",
3
+ "version": "0.2.1",
4
4
  "description": "Twilio voice call provider for AgentOS — outbound/inbound calls via Twilio REST API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -22,16 +22,16 @@
22
22
  "manifest.json"
23
23
  ],
24
24
  "peerDependencies": {
25
- "@framers/agentos": ">=0.10.40"
25
+ "@framers/agentos": ">=0.13.104"
26
26
  },
27
27
  "dependencies": {
28
28
  "twilio": "^5.0.0"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/node": "^20.0.0",
32
- "typescript": "^5.0.0",
32
+ "typescript": "^6.0.3",
33
33
  "vitest": "^3.2.7",
34
- "@framers/agentos": "^0.13.47"
34
+ "@framers/agentos": "^0.15.67"
35
35
  },
36
36
  "engines": {
37
37
  "node": ">=22"
@@ -45,6 +45,7 @@
45
45
  "bugs": {
46
46
  "url": "https://github.com/framerslab/agentos-extensions/issues"
47
47
  },
48
+ "gitHead": "6397d0f3417f6a74ad2fdcd666fd0634e832fb40",
48
49
  "scripts": {
49
50
  "build": "tsc",
50
51
  "dev": "tsc --watch",