@framers/agentos 0.1.7 → 0.1.9

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 (42) hide show
  1. package/dist/api/AgentOS.d.ts.map +1 -1
  2. package/dist/api/AgentOS.js +4 -0
  3. package/dist/api/AgentOS.js.map +1 -1
  4. package/dist/config/extension-secrets.json +162 -0
  5. package/dist/extensions/ExtensionManager.d.ts +8 -0
  6. package/dist/extensions/ExtensionManager.d.ts.map +1 -1
  7. package/dist/extensions/ExtensionManager.js +53 -3
  8. package/dist/extensions/ExtensionManager.js.map +1 -1
  9. package/dist/extensions/manifest.d.ts +7 -3
  10. package/dist/extensions/manifest.d.ts.map +1 -1
  11. package/dist/extensions/types.d.ts +12 -0
  12. package/dist/extensions/types.d.ts.map +1 -1
  13. package/dist/extensions/types.js.map +1 -1
  14. package/dist/index.d.ts +1 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +2 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/voice/CallManager.d.ts +116 -0
  19. package/dist/voice/CallManager.d.ts.map +1 -0
  20. package/dist/voice/CallManager.js +426 -0
  21. package/dist/voice/CallManager.js.map +1 -0
  22. package/dist/voice/IVoiceCallProvider.d.ts +137 -0
  23. package/dist/voice/IVoiceCallProvider.d.ts.map +1 -0
  24. package/dist/voice/IVoiceCallProvider.js +11 -0
  25. package/dist/voice/IVoiceCallProvider.js.map +1 -0
  26. package/dist/voice/index.d.ts +10 -0
  27. package/dist/voice/index.d.ts.map +1 -0
  28. package/dist/voice/index.js +8 -0
  29. package/dist/voice/index.js.map +1 -0
  30. package/dist/voice/providers/mock.d.ts +74 -0
  31. package/dist/voice/providers/mock.d.ts.map +1 -0
  32. package/dist/voice/providers/mock.js +199 -0
  33. package/dist/voice/providers/mock.js.map +1 -0
  34. package/dist/voice/telephony-audio.d.ts +42 -0
  35. package/dist/voice/telephony-audio.d.ts.map +1 -0
  36. package/dist/voice/telephony-audio.js +150 -0
  37. package/dist/voice/telephony-audio.js.map +1 -0
  38. package/dist/voice/types.d.ts +260 -0
  39. package/dist/voice/types.d.ts.map +1 -0
  40. package/dist/voice/types.js +36 -0
  41. package/dist/voice/types.js.map +1 -0
  42. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/extensions/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/extensions/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/extensions/types.ts"],"names":[],"mappings":"AAoIA,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAC1C,MAAM,CAAC,MAAM,wBAAwB,GAAG,WAAW,CAAC;AACpD,MAAM,CAAC,MAAM,iCAAiC,GAAG,oBAAoB,CAAC;AACtE,MAAM,CAAC,MAAM,uBAAuB,GAAG,UAAU,CAAC;AAClD,MAAM,CAAC,MAAM,gCAAgC,GAAG,mBAAmB,CAAC;AACpE,MAAM,CAAC,MAAM,sBAAsB,GAAG,SAAS,CAAC;AAEhD,oDAAoD;AACpD,MAAM,CAAC,MAAM,gCAAgC,GAAG,mBAAmB,CAAC;AACpE,MAAM,CAAC,MAAM,2BAA2B,GAAG,cAAc,CAAC;AAC1D,MAAM,CAAC,MAAM,2BAA2B,GAAG,uBAAuB,CAAC;AACnE,MAAM,CAAC,MAAM,8BAA8B,GAAG,iBAAiB,CAAC;AAEhE,gEAAgE;AAChE,MAAM,CAAC,MAAM,gCAAgC,GAAG,mBAAmB,CAAC;AAEpE,8BAA8B;AAC9B,MAAM,CAAC,MAAM,yBAAyB,GAAG,YAAY,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/extensions/types.ts"],"names":[],"mappings":"AAiJA,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAC1C,MAAM,CAAC,MAAM,wBAAwB,GAAG,WAAW,CAAC;AACpD,MAAM,CAAC,MAAM,iCAAiC,GAAG,oBAAoB,CAAC;AACtE,MAAM,CAAC,MAAM,uBAAuB,GAAG,UAAU,CAAC;AAClD,MAAM,CAAC,MAAM,gCAAgC,GAAG,mBAAmB,CAAC;AACpE,MAAM,CAAC,MAAM,sBAAsB,GAAG,SAAS,CAAC;AAEhD,oDAAoD;AACpD,MAAM,CAAC,MAAM,gCAAgC,GAAG,mBAAmB,CAAC;AACpE,MAAM,CAAC,MAAM,2BAA2B,GAAG,cAAc,CAAC;AAC1D,MAAM,CAAC,MAAM,2BAA2B,GAAG,uBAAuB,CAAC;AACnE,MAAM,CAAC,MAAM,8BAA8B,GAAG,iBAAiB,CAAC;AAEhE,gEAAgE;AAChE,MAAM,CAAC,MAAM,gCAAgC,GAAG,mBAAmB,CAAC;AAEpE,8BAA8B;AAC9B,MAAM,CAAC,MAAM,yBAAyB,GAAG,YAAY,CAAC"}
package/dist/index.d.ts CHANGED
@@ -45,6 +45,7 @@ export { PersonaOverlayManager } from './cognitive_substrate/persona_overlays/Pe
45
45
  export * from './core/guardrails';
46
46
  export * from './extensions';
47
47
  export * from './channels';
48
+ export * from './voice';
48
49
  export * from './core/language/interfaces';
49
50
  export * from './core/language/LanguageService';
50
51
  export type { ILogger } from './logging/ILogger';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iDAAiD,CAAC;AAChE,cAAc,yCAAyC,CAAC;AACxD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAEvF,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,YAAY,EACV,uBAAuB,EACvB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,YAAY,EACV,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,sCAAsC,CAAC;AAE9C,cAAc,iBAAiB,CAAC;AAEhC,cAAc,aAAa,CAAC;AAE5B,cAAc,mBAAmB,CAAC;AAElC,cAAc,gBAAgB,CAAC;AAE/B,cAAc,sBAAsB,CAAC;AAErC,cAAc,mBAAmB,CAAC;AAElC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mDAAmD,CAAC;AAClE,cAAc,4DAA4D,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8DAA8D,CAAC;AAErG,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAE7B,cAAc,YAAY,CAAC;AAE3B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,YAAY,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7F,cAAc,wBAAwB,CAAC;AAEvC,cAAc,gBAAgB,CAAC;AAE/B,cAAc,OAAO,CAAC;AAEtB,cAAc,mBAAmB,CAAC;AAElC,OAAO,EACL,4BAA4B,EAC5B,KAAK,yBAAyB,EAC9B,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iDAAiD,CAAC;AAChE,cAAc,yCAAyC,CAAC;AACxD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAEvF,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,YAAY,EACV,uBAAuB,EACvB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,YAAY,EACV,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,sCAAsC,CAAC;AAE9C,cAAc,iBAAiB,CAAC;AAEhC,cAAc,aAAa,CAAC;AAE5B,cAAc,mBAAmB,CAAC;AAElC,cAAc,gBAAgB,CAAC;AAE/B,cAAc,sBAAsB,CAAC;AAErC,cAAc,mBAAmB,CAAC;AAElC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mDAAmD,CAAC;AAClE,cAAc,4DAA4D,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8DAA8D,CAAC;AAErG,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAE7B,cAAc,YAAY,CAAC;AAE3B,cAAc,SAAS,CAAC;AAExB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,YAAY,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7F,cAAc,wBAAwB,CAAC;AAEvC,cAAc,gBAAgB,CAAC;AAE/B,cAAc,OAAO,CAAC;AAEtB,cAAc,mBAAmB,CAAC;AAElC,OAAO,EACL,4BAA4B,EAC5B,KAAK,yBAAyB,EAC9B,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,8BAA8B,CAAC"}
package/dist/index.js CHANGED
@@ -54,6 +54,8 @@ export * from './core/guardrails/index.js';
54
54
  export * from './extensions/index.js';
55
55
  // Messaging Channels (external platform adapters)
56
56
  export * from './channels/index.js';
57
+ // Voice Calls (telephony providers)
58
+ export * from './voice/index.js';
57
59
  // Multilingual exports
58
60
  export * from './core/language/interfaces.js';
59
61
  export * from './core/language/LanguageService.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iDAAiD,CAAC;AAChE,cAAc,yCAAyC,CAAC;AACxD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACvF,mCAAmC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAOxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAU5E,kBAAkB;AAClB,cAAc,iBAAiB,CAAC;AAChC,2BAA2B;AAC3B,cAAc,aAAa,CAAC;AAC5B,qDAAqD;AACrD,cAAc,mBAAmB,CAAC;AAClC,yBAAyB;AACzB,cAAc,gBAAgB,CAAC;AAC/B,0BAA0B;AAC1B,cAAc,sBAAsB,CAAC;AACrC,uBAAuB;AACvB,cAAc,mBAAmB,CAAC;AAClC,kBAAkB;AAClB,cAAc,kBAAkB,CAAC;AACjC,oBAAoB;AACpB,cAAc,oBAAoB,CAAC;AACnC,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mDAAmD,CAAC;AAClE,cAAc,4DAA4D,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8DAA8D,CAAC;AACrG,aAAa;AACb,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,kDAAkD;AAClD,cAAc,YAAY,CAAC;AAC3B,uBAAuB;AACvB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7F,mBAAmB;AACnB,cAAc,wBAAwB,CAAC;AACvC,mBAAmB;AACnB,cAAc,gBAAgB,CAAC;AAC/B,uCAAuC;AACvC,cAAc,OAAO,CAAC;AACtB,mCAAmC;AACnC,cAAc,mBAAmB,CAAC;AAClC,4BAA4B;AAC5B,OAAO,EACL,4BAA4B,EAE5B,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iDAAiD,CAAC;AAChE,cAAc,yCAAyC,CAAC;AACxD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACvF,mCAAmC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAOxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAU5E,kBAAkB;AAClB,cAAc,iBAAiB,CAAC;AAChC,2BAA2B;AAC3B,cAAc,aAAa,CAAC;AAC5B,qDAAqD;AACrD,cAAc,mBAAmB,CAAC;AAClC,yBAAyB;AACzB,cAAc,gBAAgB,CAAC;AAC/B,0BAA0B;AAC1B,cAAc,sBAAsB,CAAC;AACrC,uBAAuB;AACvB,cAAc,mBAAmB,CAAC;AAClC,kBAAkB;AAClB,cAAc,kBAAkB,CAAC;AACjC,oBAAoB;AACpB,cAAc,oBAAoB,CAAC;AACnC,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mDAAmD,CAAC;AAClE,cAAc,4DAA4D,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8DAA8D,CAAC;AACrG,aAAa;AACb,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,kDAAkD;AAClD,cAAc,YAAY,CAAC;AAC3B,oCAAoC;AACpC,cAAc,SAAS,CAAC;AACxB,uBAAuB;AACvB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7F,mBAAmB;AACnB,cAAc,wBAAwB,CAAC;AACvC,mBAAmB;AACnB,cAAc,gBAAgB,CAAC;AAC/B,uCAAuC;AACvC,cAAc,OAAO,CAAC;AACtB,mCAAmC;AACnC,cAAc,mBAAmB,CAAC;AAClC,4BAA4B;AAC5B,OAAO,EACL,4BAA4B,EAE5B,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * @fileoverview Voice Call Manager — state machine for call lifecycle.
3
+ *
4
+ * Manages active calls, enforces monotonic state transitions, handles
5
+ * webhook event processing, and persists call records. Provider-agnostic:
6
+ * delegates to {@link IVoiceCallProvider} implementations for actual
7
+ * telephony operations.
8
+ *
9
+ * Modeled after OpenClaw's 888-line CallManager with simplifications
10
+ * for the AgentOS extension architecture.
11
+ *
12
+ * @module @framers/agentos/voice/CallManager
13
+ */
14
+ import type { IVoiceCallProvider } from './IVoiceCallProvider.js';
15
+ import type { CallId, CallMode, CallRecord, NormalizedCallEvent, VoiceCallConfig, VoiceProviderName, WebhookContext } from './types.js';
16
+ /** Events emitted by the CallManager. */
17
+ export type CallManagerEventType = 'call:initiated' | 'call:ringing' | 'call:answered' | 'call:active' | 'call:speaking' | 'call:listening' | 'call:ended' | 'call:error' | 'call:transcript' | 'call:speech-start' | 'media:connected';
18
+ export interface CallManagerEvent {
19
+ type: CallManagerEventType;
20
+ callId: CallId;
21
+ call: CallRecord;
22
+ data?: unknown;
23
+ }
24
+ export type CallManagerEventHandler = (event: CallManagerEvent) => void | Promise<void>;
25
+ export declare class CallManager {
26
+ private readonly activeCalls;
27
+ private readonly providerCallIdMap;
28
+ private readonly processedEventIds;
29
+ private readonly providers;
30
+ private readonly handlers;
31
+ private readonly config;
32
+ constructor(config: VoiceCallConfig);
33
+ /**
34
+ * Register a telephony provider.
35
+ */
36
+ registerProvider(provider: IVoiceCallProvider): void;
37
+ /**
38
+ * Get a registered provider by name.
39
+ */
40
+ getProvider(name?: VoiceProviderName): IVoiceCallProvider | undefined;
41
+ /**
42
+ * Register a handler for call events.
43
+ * @returns Unsubscribe function.
44
+ */
45
+ on(handler: CallManagerEventHandler): () => void;
46
+ private emit;
47
+ /**
48
+ * Initiate an outbound phone call.
49
+ *
50
+ * Creates a CallRecord in 'initiated' state, delegates to the provider
51
+ * to place the call, and returns the internal call ID.
52
+ */
53
+ initiateCall(params: {
54
+ toNumber: string;
55
+ fromNumber?: string;
56
+ mode?: CallMode;
57
+ message?: string;
58
+ seedId?: string;
59
+ providerName?: VoiceProviderName;
60
+ }): Promise<CallRecord>;
61
+ /**
62
+ * Hang up a call. Transitions to 'hangup-bot' terminal state.
63
+ */
64
+ hangupCall(callId: CallId): Promise<void>;
65
+ /**
66
+ * Add a bot speech entry to the transcript and transition to speaking.
67
+ */
68
+ speakText(callId: CallId, text: string): void;
69
+ /**
70
+ * Process an incoming webhook from a telephony provider.
71
+ *
72
+ * Verifies the signature, parses events, and applies state transitions.
73
+ * Idempotent — duplicate event IDs are silently skipped.
74
+ */
75
+ processWebhook(providerName: VoiceProviderName, ctx: WebhookContext): void;
76
+ /**
77
+ * Process a single normalized call event.
78
+ */
79
+ processNormalizedEvent(event: NormalizedCallEvent): void;
80
+ /** Get a call by internal ID. */
81
+ getCall(callId: CallId): CallRecord | undefined;
82
+ /** Find a call by provider-assigned call ID. */
83
+ findCallByProviderCallId(providerCallId: string): CallRecord | undefined;
84
+ /** Get all active (non-terminal) calls. */
85
+ getActiveCalls(): CallRecord[];
86
+ /**
87
+ * Handle an inbound call based on the configured policy.
88
+ * Creates a CallRecord if the call is accepted.
89
+ */
90
+ handleInboundCall(params: {
91
+ providerCallId: string;
92
+ provider: VoiceProviderName;
93
+ fromNumber: string;
94
+ toNumber: string;
95
+ seedId?: string;
96
+ }): CallRecord | null;
97
+ /**
98
+ * Transition call state with monotonic enforcement.
99
+ *
100
+ * Rules:
101
+ * 1. No-op for same state or already terminal.
102
+ * 2. Terminal states can always be reached from non-terminal.
103
+ * 3. Speaking ↔ Listening can cycle (conversation turns).
104
+ * 4. Otherwise, only forward transitions in STATE_ORDER.
105
+ */
106
+ private transitionState;
107
+ /** Add a transcript entry. */
108
+ private addTranscriptEntry;
109
+ /** Move a call from active tracking after terminal state. */
110
+ private finalizeCall;
111
+ /** Get the default "from" number from config. */
112
+ private getDefaultFromNumber;
113
+ /** Clean up all state (for shutdown). */
114
+ dispose(): void;
115
+ }
116
+ //# sourceMappingURL=CallManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CallManager.d.ts","sourceRoot":"","sources":["../../src/voice/CallManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,426 @@
1
+ /**
2
+ * @fileoverview Voice Call Manager — state machine for call lifecycle.
3
+ *
4
+ * Manages active calls, enforces monotonic state transitions, handles
5
+ * webhook event processing, and persists call records. Provider-agnostic:
6
+ * delegates to {@link IVoiceCallProvider} implementations for actual
7
+ * telephony operations.
8
+ *
9
+ * Modeled after OpenClaw's 888-line CallManager with simplifications
10
+ * for the AgentOS extension architecture.
11
+ *
12
+ * @module @framers/agentos/voice/CallManager
13
+ */
14
+ import { randomUUID } from 'node:crypto';
15
+ import { CONVERSATION_STATES, STATE_ORDER, TERMINAL_CALL_STATES, } from './types.js';
16
+ // ============================================================================
17
+ // CallManager
18
+ // ============================================================================
19
+ export class CallManager {
20
+ constructor(config) {
21
+ this.activeCalls = new Map();
22
+ this.providerCallIdMap = new Map();
23
+ this.processedEventIds = new Set();
24
+ this.providers = new Map();
25
+ this.handlers = [];
26
+ this.config = config;
27
+ }
28
+ // ── Provider Management ──
29
+ /**
30
+ * Register a telephony provider.
31
+ */
32
+ registerProvider(provider) {
33
+ this.providers.set(provider.name, provider);
34
+ }
35
+ /**
36
+ * Get a registered provider by name.
37
+ */
38
+ getProvider(name) {
39
+ if (name)
40
+ return this.providers.get(name);
41
+ return this.providers.get(this.config.provider.provider);
42
+ }
43
+ // ── Event Handlers ──
44
+ /**
45
+ * Register a handler for call events.
46
+ * @returns Unsubscribe function.
47
+ */
48
+ on(handler) {
49
+ this.handlers.push(handler);
50
+ return () => {
51
+ const idx = this.handlers.indexOf(handler);
52
+ if (idx >= 0)
53
+ this.handlers.splice(idx, 1);
54
+ };
55
+ }
56
+ emit(event) {
57
+ for (const handler of this.handlers) {
58
+ try {
59
+ const result = handler(event);
60
+ if (result instanceof Promise) {
61
+ result.catch((err) => {
62
+ console.error('[CallManager] Event handler error:', err);
63
+ });
64
+ }
65
+ }
66
+ catch (err) {
67
+ console.error('[CallManager] Event handler error:', err);
68
+ }
69
+ }
70
+ }
71
+ // ── Call Initiation ──
72
+ /**
73
+ * Initiate an outbound phone call.
74
+ *
75
+ * Creates a CallRecord in 'initiated' state, delegates to the provider
76
+ * to place the call, and returns the internal call ID.
77
+ */
78
+ async initiateCall(params) {
79
+ const provider = this.getProvider(params.providerName);
80
+ if (!provider) {
81
+ throw new Error(`No provider registered for "${params.providerName || this.config.provider.provider}"`);
82
+ }
83
+ const callId = randomUUID();
84
+ const fromNumber = params.fromNumber || this.getDefaultFromNumber();
85
+ const mode = params.mode || this.config.defaultMode || 'conversation';
86
+ const call = {
87
+ callId,
88
+ provider: provider.name,
89
+ state: 'initiated',
90
+ direction: 'outbound',
91
+ mode,
92
+ fromNumber,
93
+ toNumber: params.toNumber,
94
+ seedId: params.seedId,
95
+ transcript: [],
96
+ processedEventIds: [],
97
+ createdAt: Date.now(),
98
+ };
99
+ this.activeCalls.set(callId, call);
100
+ // Build webhook URLs
101
+ const baseUrl = this.config.webhookBaseUrl || 'http://localhost:3000';
102
+ const webhookUrl = `${baseUrl}/voice/webhook/${provider.name}`;
103
+ const statusCallbackUrl = `${baseUrl}/voice/status/${provider.name}`;
104
+ const mediaStreamUrl = this.config.streaming?.enabled
105
+ ? `${baseUrl.replace('http', 'ws')}${this.config.streaming.wsPath || '/voice/media-stream'}`
106
+ : undefined;
107
+ const input = {
108
+ callId,
109
+ fromNumber,
110
+ toNumber: params.toNumber,
111
+ mode,
112
+ message: params.message,
113
+ notifyVoice: this.config.tts?.voice,
114
+ webhookUrl,
115
+ statusCallbackUrl,
116
+ mediaStreamUrl,
117
+ mediaStreamToken: callId, // Use callId as token for validation
118
+ };
119
+ try {
120
+ const result = await provider.initiateCall(input);
121
+ if (!result.success) {
122
+ this.transitionState(call, 'failed');
123
+ call.errorMessage = result.error;
124
+ this.emit({ type: 'call:error', callId, call, data: { error: result.error } });
125
+ return call;
126
+ }
127
+ call.providerCallId = result.providerCallId;
128
+ this.providerCallIdMap.set(result.providerCallId, callId);
129
+ this.emit({ type: 'call:initiated', callId, call });
130
+ }
131
+ catch (err) {
132
+ this.transitionState(call, 'error');
133
+ call.errorMessage = err instanceof Error ? err.message : String(err);
134
+ this.emit({ type: 'call:error', callId, call, data: { error: call.errorMessage } });
135
+ }
136
+ return call;
137
+ }
138
+ // ── Call Control ──
139
+ /**
140
+ * Hang up a call. Transitions to 'hangup-bot' terminal state.
141
+ */
142
+ async hangupCall(callId) {
143
+ const call = this.activeCalls.get(callId);
144
+ if (!call)
145
+ return;
146
+ if (TERMINAL_CALL_STATES.has(call.state))
147
+ return;
148
+ const provider = this.getProvider(call.provider);
149
+ if (provider && call.providerCallId) {
150
+ try {
151
+ await provider.hangupCall({ providerCallId: call.providerCallId });
152
+ }
153
+ catch (err) {
154
+ console.error('[CallManager] Hangup failed:', err);
155
+ }
156
+ }
157
+ this.transitionState(call, 'hangup-bot');
158
+ call.endedAt = Date.now();
159
+ this.finalizeCall(call);
160
+ this.emit({ type: 'call:ended', callId, call });
161
+ }
162
+ /**
163
+ * Add a bot speech entry to the transcript and transition to speaking.
164
+ */
165
+ speakText(callId, text) {
166
+ const call = this.activeCalls.get(callId);
167
+ if (!call || TERMINAL_CALL_STATES.has(call.state))
168
+ return;
169
+ this.addTranscriptEntry(call, 'bot', text);
170
+ this.transitionState(call, 'speaking');
171
+ this.emit({ type: 'call:speaking', callId, call, data: { text } });
172
+ }
173
+ // ── Webhook Processing ──
174
+ /**
175
+ * Process an incoming webhook from a telephony provider.
176
+ *
177
+ * Verifies the signature, parses events, and applies state transitions.
178
+ * Idempotent — duplicate event IDs are silently skipped.
179
+ */
180
+ processWebhook(providerName, ctx) {
181
+ const provider = this.providers.get(providerName);
182
+ if (!provider) {
183
+ console.warn(`[CallManager] Unknown provider: ${providerName}`);
184
+ return;
185
+ }
186
+ // Verify webhook signature
187
+ const verification = provider.verifyWebhook(ctx);
188
+ if (!verification.valid) {
189
+ console.warn(`[CallManager] Webhook verification failed: ${verification.error}`);
190
+ return;
191
+ }
192
+ // Parse events
193
+ const { events } = provider.parseWebhookEvent(ctx);
194
+ for (const event of events) {
195
+ this.processNormalizedEvent(event);
196
+ }
197
+ }
198
+ /**
199
+ * Process a single normalized call event.
200
+ */
201
+ processNormalizedEvent(event) {
202
+ // Idempotency check
203
+ if (this.processedEventIds.has(event.eventId))
204
+ return;
205
+ this.processedEventIds.add(event.eventId);
206
+ // Look up call by provider call ID
207
+ const call = this.findCallByProviderCallId(event.providerCallId);
208
+ if (!call) {
209
+ // Could be an inbound call — create record if policy allows
210
+ console.warn(`[CallManager] Event for unknown call: ${event.providerCallId} (kind: ${event.kind})`);
211
+ return;
212
+ }
213
+ call.processedEventIds.push(event.eventId);
214
+ switch (event.kind) {
215
+ case 'call-ringing':
216
+ this.transitionState(call, 'ringing');
217
+ this.emit({ type: 'call:ringing', callId: call.callId, call });
218
+ break;
219
+ case 'call-answered':
220
+ this.transitionState(call, 'answered');
221
+ this.emit({ type: 'call:answered', callId: call.callId, call });
222
+ // Auto-transition to active then listening for conversation mode
223
+ if (call.mode === 'conversation') {
224
+ this.transitionState(call, 'active');
225
+ this.emit({ type: 'call:active', callId: call.callId, call });
226
+ this.transitionState(call, 'listening');
227
+ this.emit({ type: 'call:listening', callId: call.callId, call });
228
+ }
229
+ break;
230
+ case 'call-completed':
231
+ this.transitionState(call, 'completed');
232
+ call.endedAt = Date.now();
233
+ this.finalizeCall(call);
234
+ this.emit({ type: 'call:ended', callId: call.callId, call });
235
+ break;
236
+ case 'call-failed':
237
+ this.transitionState(call, 'failed');
238
+ call.errorMessage = event.reason;
239
+ call.endedAt = Date.now();
240
+ this.finalizeCall(call);
241
+ this.emit({ type: 'call:error', callId: call.callId, call, data: { error: event.reason } });
242
+ break;
243
+ case 'call-busy':
244
+ this.transitionState(call, 'busy');
245
+ call.endedAt = Date.now();
246
+ this.finalizeCall(call);
247
+ this.emit({ type: 'call:ended', callId: call.callId, call });
248
+ break;
249
+ case 'call-no-answer':
250
+ this.transitionState(call, 'no-answer');
251
+ call.endedAt = Date.now();
252
+ this.finalizeCall(call);
253
+ this.emit({ type: 'call:ended', callId: call.callId, call });
254
+ break;
255
+ case 'call-voicemail':
256
+ this.transitionState(call, 'voicemail');
257
+ call.endedAt = Date.now();
258
+ this.finalizeCall(call);
259
+ this.emit({ type: 'call:ended', callId: call.callId, call });
260
+ break;
261
+ case 'call-hangup-user':
262
+ this.transitionState(call, 'hangup-user');
263
+ call.endedAt = Date.now();
264
+ this.finalizeCall(call);
265
+ this.emit({ type: 'call:ended', callId: call.callId, call });
266
+ break;
267
+ case 'call-error':
268
+ this.transitionState(call, 'error');
269
+ call.errorMessage = event.error;
270
+ call.endedAt = Date.now();
271
+ this.finalizeCall(call);
272
+ this.emit({ type: 'call:error', callId: call.callId, call, data: { error: event.error } });
273
+ break;
274
+ case 'transcript':
275
+ if (event.isFinal) {
276
+ this.addTranscriptEntry(call, 'user', event.text);
277
+ this.transitionState(call, 'listening');
278
+ }
279
+ this.emit({
280
+ type: 'call:transcript',
281
+ callId: call.callId,
282
+ call,
283
+ data: { text: event.text, isFinal: event.isFinal },
284
+ });
285
+ break;
286
+ case 'speech-start':
287
+ this.emit({ type: 'call:speech-start', callId: call.callId, call });
288
+ break;
289
+ case 'media-stream-connected':
290
+ call.streamSid = event.streamSid;
291
+ this.emit({
292
+ type: 'media:connected',
293
+ callId: call.callId,
294
+ call,
295
+ data: { streamSid: event.streamSid },
296
+ });
297
+ break;
298
+ }
299
+ }
300
+ // ── Query ──
301
+ /** Get a call by internal ID. */
302
+ getCall(callId) {
303
+ return this.activeCalls.get(callId);
304
+ }
305
+ /** Find a call by provider-assigned call ID. */
306
+ findCallByProviderCallId(providerCallId) {
307
+ const callId = this.providerCallIdMap.get(providerCallId);
308
+ if (callId)
309
+ return this.activeCalls.get(callId);
310
+ // Fallback linear search for edge cases
311
+ for (const call of this.activeCalls.values()) {
312
+ if (call.providerCallId === providerCallId)
313
+ return call;
314
+ }
315
+ return undefined;
316
+ }
317
+ /** Get all active (non-terminal) calls. */
318
+ getActiveCalls() {
319
+ return Array.from(this.activeCalls.values());
320
+ }
321
+ // ── Inbound Call Handling ──
322
+ /**
323
+ * Handle an inbound call based on the configured policy.
324
+ * Creates a CallRecord if the call is accepted.
325
+ */
326
+ handleInboundCall(params) {
327
+ const policy = this.config.inboundPolicy || 'disabled';
328
+ if (policy === 'disabled')
329
+ return null;
330
+ if (policy === 'allowlist') {
331
+ const allowed = this.config.allowedNumbers || [];
332
+ if (!allowed.includes(params.fromNumber))
333
+ return null;
334
+ }
335
+ const callId = randomUUID();
336
+ const call = {
337
+ callId,
338
+ providerCallId: params.providerCallId,
339
+ provider: params.provider,
340
+ state: 'ringing',
341
+ direction: 'inbound',
342
+ mode: 'conversation',
343
+ fromNumber: params.fromNumber,
344
+ toNumber: params.toNumber,
345
+ seedId: params.seedId,
346
+ transcript: [],
347
+ processedEventIds: [],
348
+ createdAt: Date.now(),
349
+ };
350
+ this.activeCalls.set(callId, call);
351
+ this.providerCallIdMap.set(params.providerCallId, callId);
352
+ this.emit({ type: 'call:ringing', callId, call });
353
+ return call;
354
+ }
355
+ // ── State Machine ──
356
+ /**
357
+ * Transition call state with monotonic enforcement.
358
+ *
359
+ * Rules:
360
+ * 1. No-op for same state or already terminal.
361
+ * 2. Terminal states can always be reached from non-terminal.
362
+ * 3. Speaking ↔ Listening can cycle (conversation turns).
363
+ * 4. Otherwise, only forward transitions in STATE_ORDER.
364
+ */
365
+ transitionState(call, newState) {
366
+ // No-op for same state or already terminal
367
+ if (call.state === newState || TERMINAL_CALL_STATES.has(call.state))
368
+ return;
369
+ // Terminal states can always be reached
370
+ if (TERMINAL_CALL_STATES.has(newState)) {
371
+ call.state = newState;
372
+ return;
373
+ }
374
+ // Allow cycling between speaking and listening
375
+ if (CONVERSATION_STATES.has(call.state) && CONVERSATION_STATES.has(newState)) {
376
+ call.state = newState;
377
+ return;
378
+ }
379
+ // Only allow forward transitions
380
+ const currentIndex = STATE_ORDER.indexOf(call.state);
381
+ const newIndex = STATE_ORDER.indexOf(newState);
382
+ if (newIndex > currentIndex) {
383
+ call.state = newState;
384
+ }
385
+ }
386
+ /** Add a transcript entry. */
387
+ addTranscriptEntry(call, speaker, text) {
388
+ call.transcript.push({
389
+ timestamp: Date.now(),
390
+ speaker,
391
+ text,
392
+ isFinal: true,
393
+ });
394
+ }
395
+ /** Move a call from active tracking after terminal state. */
396
+ finalizeCall(call) {
397
+ // Keep in activeCalls briefly for status queries, then clean up
398
+ // In production, this would persist to DB and then remove
399
+ if (call.providerCallId) {
400
+ this.providerCallIdMap.delete(call.providerCallId);
401
+ }
402
+ for (const eventId of call.processedEventIds) {
403
+ this.processedEventIds.delete(eventId);
404
+ }
405
+ // Remove from active calls after a brief delay for status queries
406
+ setTimeout(() => {
407
+ this.activeCalls.delete(call.callId);
408
+ }, 30000);
409
+ }
410
+ /** Get the default "from" number from config. */
411
+ getDefaultFromNumber() {
412
+ const prov = this.config.provider;
413
+ if (prov.provider === 'mock')
414
+ return '';
415
+ return prov.config.fromNumber || '';
416
+ }
417
+ /** Clean up all state (for shutdown). */
418
+ dispose() {
419
+ this.activeCalls.clear();
420
+ this.providerCallIdMap.clear();
421
+ this.processedEventIds.clear();
422
+ this.providers.clear();
423
+ this.handlers.length = 0;
424
+ }
425
+ }
426
+ //# sourceMappingURL=CallManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CallManager.js","sourceRoot":"","sources":["../../src/voice/CallManager.ts"],"names":[],"mappings":"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"}