@murphai/murph 0.2.3 → 0.2.5

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 (270) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/README.md +9 -1
  3. package/config.schema.json +95 -35
  4. package/dist/cli-entry.js +1 -1
  5. package/dist/cli-entry.js.map +1 -1
  6. package/dist/commands/inbox.d.ts.map +1 -1
  7. package/dist/commands/inbox.js +5 -40
  8. package/dist/commands/inbox.js.map +1 -1
  9. package/dist/commands/route.d.ts +3 -0
  10. package/dist/commands/route.d.ts.map +1 -0
  11. package/dist/commands/route.js +114 -0
  12. package/dist/commands/route.js.map +1 -0
  13. package/dist/foreground-terminal-logging.d.ts.map +1 -1
  14. package/dist/foreground-terminal-logging.js +0 -12
  15. package/dist/foreground-terminal-logging.js.map +1 -1
  16. package/dist/incur.generated.d.ts +17 -4
  17. package/dist/incur.generated.d.ts.map +1 -1
  18. package/dist/runner-vault-cli-command-manifest.d.ts.map +1 -1
  19. package/dist/runner-vault-cli-command-manifest.js +2 -0
  20. package/dist/runner-vault-cli-command-manifest.js.map +1 -1
  21. package/dist/vault-cli-command-manifest.d.ts +94 -0
  22. package/dist/vault-cli-command-manifest.d.ts.map +1 -1
  23. package/dist/vault-cli-command-manifest.js +19 -1
  24. package/dist/vault-cli-command-manifest.js.map +1 -1
  25. package/node_modules/@murphai/assistant-cli/dist/assistant/automation/run-loop.d.ts.map +1 -1
  26. package/node_modules/@murphai/assistant-cli/dist/assistant/automation/run-loop.js +0 -1
  27. package/node_modules/@murphai/assistant-cli/dist/assistant/automation/run-loop.js.map +1 -1
  28. package/node_modules/@murphai/assistant-cli/dist/assistant-daemon-client.d.ts.map +1 -1
  29. package/node_modules/@murphai/assistant-cli/dist/assistant-daemon-client.js +0 -1
  30. package/node_modules/@murphai/assistant-cli/dist/assistant-daemon-client.js.map +1 -1
  31. package/node_modules/@murphai/assistant-cli/dist/commands/assistant.d.ts.map +1 -1
  32. package/node_modules/@murphai/assistant-cli/dist/commands/assistant.js +20 -26
  33. package/node_modules/@murphai/assistant-cli/dist/commands/assistant.js.map +1 -1
  34. package/node_modules/@murphai/assistant-cli/dist/run-terminal-logging.d.ts.map +1 -1
  35. package/node_modules/@murphai/assistant-cli/dist/run-terminal-logging.js +11 -27
  36. package/node_modules/@murphai/assistant-cli/dist/run-terminal-logging.js.map +1 -1
  37. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/auto-reply-retry.d.ts +6 -0
  38. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/auto-reply-retry.d.ts.map +1 -0
  39. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/auto-reply-retry.js +48 -0
  40. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/auto-reply-retry.js.map +1 -0
  41. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.d.ts +1 -2
  42. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.d.ts.map +1 -1
  43. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.js +25 -72
  44. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.js.map +1 -1
  45. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/routing.d.ts +1 -0
  46. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/routing.d.ts.map +1 -1
  47. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/routing.js +4 -1
  48. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/routing.js.map +1 -1
  49. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.d.ts +6 -2
  50. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.d.ts.map +1 -1
  51. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.js +151 -117
  52. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.js.map +1 -1
  53. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/scanner.d.ts +1 -1
  54. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/scanner.d.ts.map +1 -1
  55. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/scanner.js +64 -98
  56. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/scanner.js.map +1 -1
  57. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.d.ts +19 -10
  58. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.d.ts.map +1 -1
  59. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.js +43 -10
  60. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.js.map +1 -1
  61. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/startup-recovery.d.ts +3 -2
  62. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/startup-recovery.d.ts.map +1 -1
  63. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/startup-recovery.js +40 -12
  64. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/startup-recovery.js.map +1 -1
  65. package/node_modules/@murphai/assistant-engine/dist/assistant/automation-state.d.ts +11 -0
  66. package/node_modules/@murphai/assistant-engine/dist/assistant/automation-state.d.ts.map +1 -0
  67. package/node_modules/@murphai/assistant-engine/dist/assistant/automation-state.js +29 -0
  68. package/node_modules/@murphai/assistant-engine/dist/assistant/automation-state.js.map +1 -0
  69. package/node_modules/@murphai/assistant-engine/dist/assistant/automation.d.ts +1 -1
  70. package/node_modules/@murphai/assistant-engine/dist/assistant/automation.d.ts.map +1 -1
  71. package/node_modules/@murphai/assistant-engine/dist/assistant/automation.js +1 -1
  72. package/node_modules/@murphai/assistant-engine/dist/assistant/automation.js.map +1 -1
  73. package/node_modules/@murphai/assistant-engine/dist/assistant/channel-adapters.d.ts +2 -2
  74. package/node_modules/@murphai/assistant-engine/dist/assistant/channel-adapters.d.ts.map +1 -1
  75. package/node_modules/@murphai/assistant-engine/dist/assistant/channel-adapters.js +2 -2
  76. package/node_modules/@murphai/assistant-engine/dist/assistant/channel-adapters.js.map +1 -1
  77. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/descriptors.d.ts.map +1 -1
  78. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/descriptors.js +2 -25
  79. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/descriptors.js.map +1 -1
  80. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/registry.d.ts +1 -5
  81. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/registry.d.ts.map +1 -1
  82. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/registry.js +0 -3
  83. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/registry.js.map +1 -1
  84. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/runtime.d.ts +1 -6
  85. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/runtime.d.ts.map +1 -1
  86. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/runtime.js +0 -74
  87. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/runtime.js.map +1 -1
  88. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/types.d.ts +1 -16
  89. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/types.d.ts.map +1 -1
  90. package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.d.ts.map +1 -1
  91. package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.js +9 -0
  92. package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.js.map +1 -1
  93. package/node_modules/@murphai/assistant-engine/dist/assistant/status.d.ts.map +1 -1
  94. package/node_modules/@murphai/assistant-engine/dist/assistant/status.js +1 -4
  95. package/node_modules/@murphai/assistant-engine/dist/assistant/status.js.map +1 -1
  96. package/node_modules/@murphai/assistant-engine/dist/assistant/store/persistence.d.ts +1 -1
  97. package/node_modules/@murphai/assistant-engine/dist/assistant/store/persistence.js +2 -5
  98. package/node_modules/@murphai/assistant-engine/dist/assistant/store/persistence.js.map +1 -1
  99. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.js +7 -2
  100. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.js.map +1 -1
  101. package/node_modules/@murphai/assistant-engine/dist/assistant/turns.d.ts +1 -0
  102. package/node_modules/@murphai/assistant-engine/dist/assistant/turns.d.ts.map +1 -1
  103. package/node_modules/@murphai/assistant-engine/dist/assistant/turns.js +21 -7
  104. package/node_modules/@murphai/assistant-engine/dist/assistant/turns.js.map +1 -1
  105. package/node_modules/@murphai/assistant-engine/dist/assistant-state.d.ts +1 -0
  106. package/node_modules/@murphai/assistant-engine/dist/assistant-state.d.ts.map +1 -1
  107. package/node_modules/@murphai/assistant-engine/dist/assistant-state.js +1 -0
  108. package/node_modules/@murphai/assistant-engine/dist/assistant-state.js.map +1 -1
  109. package/node_modules/@murphai/assistant-engine/dist/index.d.ts +1 -0
  110. package/node_modules/@murphai/assistant-engine/dist/index.d.ts.map +1 -1
  111. package/node_modules/@murphai/assistant-engine/dist/index.js +1 -0
  112. package/node_modules/@murphai/assistant-engine/dist/index.js.map +1 -1
  113. package/node_modules/@murphai/assistant-engine/dist/mapbox-route.d.ts +142 -0
  114. package/node_modules/@murphai/assistant-engine/dist/mapbox-route.d.ts.map +1 -0
  115. package/node_modules/@murphai/assistant-engine/dist/mapbox-route.js +670 -0
  116. package/node_modules/@murphai/assistant-engine/dist/mapbox-route.js.map +1 -0
  117. package/node_modules/@murphai/assistant-engine/dist/outbound-channel.d.ts +2 -2
  118. package/node_modules/@murphai/assistant-engine/dist/outbound-channel.d.ts.map +1 -1
  119. package/node_modules/@murphai/assistant-engine/dist/outbound-channel.js +2 -2
  120. package/node_modules/@murphai/assistant-engine/dist/outbound-channel.js.map +1 -1
  121. package/node_modules/@murphai/assistant-engine/package.json +2 -2
  122. package/node_modules/@murphai/assistantd/dist/http-protocol.d.ts.map +1 -1
  123. package/node_modules/@murphai/assistantd/dist/http-protocol.js +0 -1
  124. package/node_modules/@murphai/assistantd/dist/http-protocol.js.map +1 -1
  125. package/node_modules/@murphai/assistantd/dist/service.d.ts +0 -1
  126. package/node_modules/@murphai/assistantd/dist/service.d.ts.map +1 -1
  127. package/node_modules/@murphai/assistantd/dist/service.js +0 -1
  128. package/node_modules/@murphai/assistantd/dist/service.js.map +1 -1
  129. package/node_modules/@murphai/assistantd/package.json +1 -1
  130. package/node_modules/@murphai/core/dist/automation.js +1 -1
  131. package/node_modules/@murphai/core/dist/index.d.ts +1 -1
  132. package/node_modules/@murphai/core/dist/index.d.ts.map +1 -1
  133. package/node_modules/@murphai/core/dist/index.js +1 -1
  134. package/node_modules/@murphai/core/dist/index.js.map +1 -1
  135. package/node_modules/@murphai/core/dist/preferences.d.ts +11 -2
  136. package/node_modules/@murphai/core/dist/preferences.d.ts.map +1 -1
  137. package/node_modules/@murphai/core/dist/preferences.js +65 -5
  138. package/node_modules/@murphai/core/dist/preferences.js.map +1 -1
  139. package/node_modules/@murphai/core/dist/public-mutations.d.ts +2 -1
  140. package/node_modules/@murphai/core/dist/public-mutations.d.ts.map +1 -1
  141. package/node_modules/@murphai/core/dist/public-mutations.js +4 -1
  142. package/node_modules/@murphai/core/dist/public-mutations.js.map +1 -1
  143. package/node_modules/@murphai/core/package.json +1 -1
  144. package/node_modules/@murphai/device-syncd/dist/service.d.ts +1 -1
  145. package/node_modules/@murphai/device-syncd/dist/service.d.ts.map +1 -1
  146. package/node_modules/@murphai/device-syncd/dist/service.js +2 -4
  147. package/node_modules/@murphai/device-syncd/dist/service.js.map +1 -1
  148. package/node_modules/@murphai/gateway-local/package.json +1 -1
  149. package/node_modules/@murphai/importers/package.json +3 -1
  150. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor-strategies.d.ts +2 -2
  151. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor-strategies.d.ts.map +1 -1
  152. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor-strategies.js +0 -46
  153. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor-strategies.js.map +1 -1
  154. package/node_modules/@murphai/inbox-services/dist/inbox-app/environment.d.ts +0 -2
  155. package/node_modules/@murphai/inbox-services/dist/inbox-app/environment.d.ts.map +1 -1
  156. package/node_modules/@murphai/inbox-services/dist/inbox-app/environment.js +0 -58
  157. package/node_modules/@murphai/inbox-services/dist/inbox-app/environment.js.map +1 -1
  158. package/node_modules/@murphai/inbox-services/dist/inbox-app/runtime.d.ts.map +1 -1
  159. package/node_modules/@murphai/inbox-services/dist/inbox-app/runtime.js +52 -47
  160. package/node_modules/@murphai/inbox-services/dist/inbox-app/runtime.js.map +1 -1
  161. package/node_modules/@murphai/inbox-services/dist/inbox-app/sources.d.ts +1 -1
  162. package/node_modules/@murphai/inbox-services/dist/inbox-app/sources.d.ts.map +1 -1
  163. package/node_modules/@murphai/inbox-services/dist/inbox-app/sources.js +0 -18
  164. package/node_modules/@murphai/inbox-services/dist/inbox-app/sources.js.map +1 -1
  165. package/node_modules/@murphai/inbox-services/dist/inbox-app/types.d.ts +8 -26
  166. package/node_modules/@murphai/inbox-services/dist/inbox-app/types.d.ts.map +1 -1
  167. package/node_modules/@murphai/inbox-services/dist/inbox-services/connectors.d.ts +1 -4
  168. package/node_modules/@murphai/inbox-services/dist/inbox-services/connectors.d.ts.map +1 -1
  169. package/node_modules/@murphai/inbox-services/dist/inbox-services/connectors.js +2 -19
  170. package/node_modules/@murphai/inbox-services/dist/inbox-services/connectors.js.map +1 -1
  171. package/node_modules/@murphai/inbox-services/dist/inbox-services/shared.d.ts.map +1 -1
  172. package/node_modules/@murphai/inbox-services/dist/inbox-services/shared.js +1 -4
  173. package/node_modules/@murphai/inbox-services/dist/inbox-services/shared.js.map +1 -1
  174. package/node_modules/@murphai/inbox-services/dist/index.d.ts +1 -1
  175. package/node_modules/@murphai/inbox-services/dist/index.d.ts.map +1 -1
  176. package/node_modules/@murphai/inbox-services/package.json +1 -1
  177. package/node_modules/@murphai/inboxd/README.md +1 -3
  178. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize-parsed.js +34 -22
  179. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize-parsed.js.map +1 -1
  180. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize.d.ts +5 -2
  181. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize.d.ts.map +1 -1
  182. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize.js +32 -30
  183. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize.js.map +1 -1
  184. package/node_modules/@murphai/inboxd/dist/indexing/persist.d.ts.map +1 -1
  185. package/node_modules/@murphai/inboxd/dist/indexing/persist.js +3 -19
  186. package/node_modules/@murphai/inboxd/dist/indexing/persist.js.map +1 -1
  187. package/node_modules/@murphai/inboxd/dist/parsers.d.ts +3 -0
  188. package/node_modules/@murphai/inboxd/dist/parsers.d.ts.map +1 -1
  189. package/node_modules/@murphai/inboxd/dist/parsers.js +8 -2
  190. package/node_modules/@murphai/inboxd/dist/parsers.js.map +1 -1
  191. package/node_modules/@murphai/inboxd/package.json +1 -1
  192. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.d.ts +28 -21
  193. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.d.ts.map +1 -1
  194. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.js +14 -9
  195. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.js.map +1 -1
  196. package/node_modules/@murphai/operator-config/dist/inbox-cli-contracts.d.ts +1 -14
  197. package/node_modules/@murphai/operator-config/dist/inbox-cli-contracts.d.ts.map +1 -1
  198. package/node_modules/@murphai/operator-config/dist/inbox-cli-contracts.js +1 -2
  199. package/node_modules/@murphai/operator-config/dist/inbox-cli-contracts.js.map +1 -1
  200. package/node_modules/@murphai/operator-config/dist/index.d.ts +0 -1
  201. package/node_modules/@murphai/operator-config/dist/index.d.ts.map +1 -1
  202. package/node_modules/@murphai/operator-config/dist/index.js +0 -1
  203. package/node_modules/@murphai/operator-config/dist/index.js.map +1 -1
  204. package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.d.ts +4 -7
  205. package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.d.ts.map +1 -1
  206. package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.js +6 -2
  207. package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.js.map +1 -1
  208. package/node_modules/@murphai/operator-config/dist/setup-runtime-env.d.ts.map +1 -1
  209. package/node_modules/@murphai/operator-config/dist/setup-runtime-env.js +4 -25
  210. package/node_modules/@murphai/operator-config/dist/setup-runtime-env.js.map +1 -1
  211. package/node_modules/@murphai/operator-config/package.json +2 -7
  212. package/node_modules/@murphai/query/package.json +1 -1
  213. package/node_modules/@murphai/runtime-state/dist/node/index.d.ts +1 -1
  214. package/node_modules/@murphai/runtime-state/dist/node/index.d.ts.map +1 -1
  215. package/node_modules/@murphai/runtime-state/dist/node/index.js +1 -1
  216. package/node_modules/@murphai/runtime-state/dist/node/index.js.map +1 -1
  217. package/node_modules/@murphai/setup-cli/dist/setup-cli.d.ts +1 -0
  218. package/node_modules/@murphai/setup-cli/dist/setup-cli.d.ts.map +1 -1
  219. package/node_modules/@murphai/setup-cli/dist/setup-cli.js +56 -17
  220. package/node_modules/@murphai/setup-cli/dist/setup-cli.js.map +1 -1
  221. package/node_modules/@murphai/setup-cli/dist/setup-services/channels.d.ts +1 -1
  222. package/node_modules/@murphai/setup-cli/dist/setup-services/channels.d.ts.map +1 -1
  223. package/node_modules/@murphai/setup-cli/dist/setup-services/channels.js +105 -99
  224. package/node_modules/@murphai/setup-cli/dist/setup-services/channels.js.map +1 -1
  225. package/node_modules/@murphai/setup-cli/dist/setup-services/wearables.d.ts +9 -0
  226. package/node_modules/@murphai/setup-cli/dist/setup-services/wearables.d.ts.map +1 -0
  227. package/node_modules/@murphai/setup-cli/dist/setup-services/wearables.js +50 -0
  228. package/node_modules/@murphai/setup-cli/dist/setup-services/wearables.js.map +1 -0
  229. package/node_modules/@murphai/setup-cli/dist/setup-services.d.ts +1 -1
  230. package/node_modules/@murphai/setup-cli/dist/setup-services.d.ts.map +1 -1
  231. package/node_modules/@murphai/setup-cli/dist/setup-services.js +9 -0
  232. package/node_modules/@murphai/setup-cli/dist/setup-services.js.map +1 -1
  233. package/node_modules/@murphai/setup-cli/dist/setup-wizard-options.d.ts.map +1 -1
  234. package/node_modules/@murphai/setup-cli/dist/setup-wizard-options.js +5 -14
  235. package/node_modules/@murphai/setup-cli/dist/setup-wizard-options.js.map +1 -1
  236. package/node_modules/@murphai/setup-cli/dist/setup-wizard.js +6 -6
  237. package/node_modules/@murphai/setup-cli/dist/setup-wizard.js.map +1 -1
  238. package/node_modules/@murphai/vault-usecases/dist/index.d.ts +1 -0
  239. package/node_modules/@murphai/vault-usecases/dist/index.d.ts.map +1 -1
  240. package/node_modules/@murphai/vault-usecases/dist/index.js +1 -0
  241. package/node_modules/@murphai/vault-usecases/dist/index.js.map +1 -1
  242. package/node_modules/@murphai/vault-usecases/dist/preferences.d.ts +24 -0
  243. package/node_modules/@murphai/vault-usecases/dist/preferences.d.ts.map +1 -0
  244. package/node_modules/@murphai/vault-usecases/dist/preferences.js +30 -0
  245. package/node_modules/@murphai/vault-usecases/dist/preferences.js.map +1 -0
  246. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-measurement.d.ts +1 -1
  247. package/node_modules/@murphai/vault-usecases/package.json +1 -1
  248. package/package.json +4 -7
  249. package/node_modules/@murphai/inboxd-imessage/README.md +0 -7
  250. package/node_modules/@murphai/inboxd-imessage/dist/connector.d.ts +0 -40
  251. package/node_modules/@murphai/inboxd-imessage/dist/connector.d.ts.map +0 -1
  252. package/node_modules/@murphai/inboxd-imessage/dist/connector.js +0 -334
  253. package/node_modules/@murphai/inboxd-imessage/dist/connector.js.map +0 -1
  254. package/node_modules/@murphai/inboxd-imessage/dist/index.d.ts +0 -5
  255. package/node_modules/@murphai/inboxd-imessage/dist/index.d.ts.map +0 -1
  256. package/node_modules/@murphai/inboxd-imessage/dist/index.js +0 -3
  257. package/node_modules/@murphai/inboxd-imessage/dist/index.js.map +0 -1
  258. package/node_modules/@murphai/inboxd-imessage/dist/normalize.d.ts +0 -60
  259. package/node_modules/@murphai/inboxd-imessage/dist/normalize.d.ts.map +0 -1
  260. package/node_modules/@murphai/inboxd-imessage/dist/normalize.js +0 -147
  261. package/node_modules/@murphai/inboxd-imessage/dist/normalize.js.map +0 -1
  262. package/node_modules/@murphai/inboxd-imessage/dist/shared-runtime.d.ts +0 -4
  263. package/node_modules/@murphai/inboxd-imessage/dist/shared-runtime.d.ts.map +0 -1
  264. package/node_modules/@murphai/inboxd-imessage/dist/shared-runtime.js +0 -172
  265. package/node_modules/@murphai/inboxd-imessage/dist/shared-runtime.js.map +0 -1
  266. package/node_modules/@murphai/inboxd-imessage/package.json +0 -31
  267. package/node_modules/@murphai/operator-config/dist/imessage-readiness.d.ts +0 -22
  268. package/node_modules/@murphai/operator-config/dist/imessage-readiness.d.ts.map +0 -1
  269. package/node_modules/@murphai/operator-config/dist/imessage-readiness.js +0 -83
  270. package/node_modules/@murphai/operator-config/dist/imessage-readiness.js.map +0 -1
@@ -1,334 +0,0 @@
1
- var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
2
- if (typeof path === "string" && /^\.\.?\//.test(path)) {
3
- return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
4
- return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
5
- });
6
- }
7
- return path;
8
- };
9
- import path from "node:path";
10
- import { readFile } from "node:fs/promises";
11
- import { createNormalizedChatPollConnector, } from "@murphai/inboxd";
12
- import { normalizeImessageMessage, } from "./normalize.js";
13
- const MAX_EAGER_IMESSAGE_ATTACHMENT_BYTES = 25 * 1024 * 1024;
14
- const PHOTON_IMESSAGE_KIT_MODULE_ID = "@photon-ai/imessage-kit";
15
- export function createImessageConnector({ driver, id, source = "imessage", accountId, includeOwnMessages = true, backfillLimit = 500, }) {
16
- const normalizedAccountId = normalizeImessageAccountId(accountId);
17
- const connectorId = id ?? `${source}:${normalizedAccountId ?? "default"}`;
18
- return createNormalizedChatPollConnector({
19
- driver,
20
- id: connectorId,
21
- source,
22
- accountId: normalizedAccountId,
23
- includeOwnMessages,
24
- backfillLimit,
25
- capabilities: {
26
- attachments: true,
27
- ownMessages: includeOwnMessages,
28
- },
29
- loadContext: loadChats,
30
- refreshContext: async (input) => {
31
- const { driver, context, message } = input;
32
- const existing = context ? resolveChat(context, message) : null;
33
- if (existing || !driver.listChats) {
34
- return context;
35
- }
36
- return loadChats(driver);
37
- },
38
- normalize: async (input) => normalizeImessageMessage({
39
- message: await hydrateEphemeralImessageAttachments(input.message),
40
- source: input.source,
41
- accountId: input.accountId,
42
- chat: resolveChat(input.context ?? new Map(), input.message),
43
- }),
44
- });
45
- }
46
- export async function loadImessageKitDriver() {
47
- return {
48
- getMessages(input) {
49
- return withIMessageSdk(async (sdk) => {
50
- const result = await sdk.getMessages({
51
- limit: input.limit,
52
- excludeOwnMessages: input.includeOwnMessages === false,
53
- });
54
- return {
55
- messages: filterImessageMessages({
56
- messages: result.messages.map(toImessageKitMessageLike),
57
- cursor: input.cursor,
58
- limit: input.limit,
59
- }),
60
- };
61
- });
62
- },
63
- listChats() {
64
- return withIMessageSdk(async (sdk) => {
65
- const chats = await sdk.listChats();
66
- return chats.map(toImessageKitChatLike);
67
- });
68
- },
69
- async startWatching(options) {
70
- if (options.signal.aborted) {
71
- return;
72
- }
73
- const sdk = await createIMessageSdk();
74
- let closed = false;
75
- let resolveDone;
76
- let rejectDone;
77
- const done = new Promise((resolve, reject) => {
78
- resolveDone = resolve;
79
- rejectDone = reject;
80
- });
81
- const close = async () => {
82
- if (closed) {
83
- return;
84
- }
85
- closed = true;
86
- options.signal.removeEventListener("abort", onAbort);
87
- sdk.stopWatching();
88
- await closeIMessageSdk(sdk);
89
- resolveDone();
90
- };
91
- const onAbort = () => {
92
- void close();
93
- };
94
- options.signal.addEventListener("abort", onAbort, { once: true });
95
- try {
96
- await sdk.startWatching({
97
- onMessage: async (message) => {
98
- if (options.signal.aborted) {
99
- return;
100
- }
101
- if (options.includeOwnMessages === false && message.isFromMe) {
102
- return;
103
- }
104
- await options.onMessage(toImessageKitMessageLike(message));
105
- },
106
- onError(error) {
107
- rejectDone(error);
108
- void close();
109
- },
110
- });
111
- }
112
- catch (error) {
113
- options.signal.removeEventListener("abort", onAbort);
114
- await closeIMessageSdk(sdk);
115
- throw error;
116
- }
117
- return {
118
- close,
119
- stop: close,
120
- done,
121
- };
122
- },
123
- };
124
- }
125
- async function withIMessageSdk(run) {
126
- const sdk = await createIMessageSdk();
127
- try {
128
- return await run(sdk);
129
- }
130
- finally {
131
- await closeIMessageSdk(sdk);
132
- }
133
- }
134
- async function createIMessageSdk() {
135
- const module = await import(__rewriteRelativeImportExtension(PHOTON_IMESSAGE_KIT_MODULE_ID));
136
- return new module.IMessageSDK();
137
- }
138
- async function closeIMessageSdk(sdk) {
139
- try {
140
- await sdk.close();
141
- }
142
- catch { }
143
- }
144
- function toImessageKitMessageLike(message) {
145
- return {
146
- guid: message.guid,
147
- id: message.id,
148
- text: message.text,
149
- date: message.date,
150
- chatId: message.chatId,
151
- handleId: message.sender,
152
- sender: message.sender,
153
- displayName: message.senderName,
154
- senderName: message.senderName,
155
- isFromMe: message.isFromMe,
156
- attachments: message.attachments.map((attachment) => ({
157
- id: attachment.id,
158
- filename: attachment.filename,
159
- path: attachment.path,
160
- mimeType: attachment.mimeType,
161
- size: attachment.size,
162
- })),
163
- };
164
- }
165
- function toImessageKitChatLike(chat) {
166
- return {
167
- id: chat.chatId,
168
- displayName: chat.displayName,
169
- title: chat.displayName,
170
- isGroup: chat.isGroup,
171
- participantCount: chat.isGroup ? 3 : 1,
172
- };
173
- }
174
- function filterImessageMessages(input) {
175
- const normalizedLimit = typeof input.limit === "number" && Number.isFinite(input.limit)
176
- ? Math.max(Math.trunc(input.limit), 0)
177
- : input.messages.length;
178
- const cursor = readImessageMessageCursor(input.cursor);
179
- const ordered = [...input.messages].sort(compareImessageMessages);
180
- const filtered = cursor
181
- ? ordered.filter((message) => compareImessageMessageToCursor(message, cursor) > 0)
182
- : ordered;
183
- return filtered.slice(0, normalizedLimit);
184
- }
185
- function compareImessageMessages(left, right) {
186
- const leftCursor = createImessageMessageCursor(left);
187
- const rightCursor = createImessageMessageCursor(right);
188
- if (!leftCursor || !rightCursor) {
189
- return 0;
190
- }
191
- return compareImessageCursor(leftCursor, rightCursor);
192
- }
193
- function compareImessageMessageToCursor(message, cursor) {
194
- const messageCursor = createImessageMessageCursor(message);
195
- if (!messageCursor) {
196
- return 1;
197
- }
198
- return compareImessageCursor(messageCursor, cursor);
199
- }
200
- function compareImessageCursor(left, right) {
201
- if (left.occurredAt !== right.occurredAt) {
202
- return left.occurredAt.localeCompare(right.occurredAt);
203
- }
204
- return left.externalId.localeCompare(right.externalId);
205
- }
206
- function createImessageMessageCursor(message) {
207
- const externalId = message.guid ?? message.id;
208
- if (!externalId || message.date === null || message.date === undefined) {
209
- return null;
210
- }
211
- try {
212
- return {
213
- occurredAt: normalizeImessageCursorTimestamp(message.date),
214
- externalId,
215
- };
216
- }
217
- catch {
218
- return null;
219
- }
220
- }
221
- function normalizeImessageCursorTimestamp(value) {
222
- const date = value instanceof Date ? value : new Date(value);
223
- if (Number.isNaN(date.valueOf())) {
224
- throw new TypeError("Invalid iMessage cursor timestamp.");
225
- }
226
- return date.toISOString();
227
- }
228
- function readImessageMessageCursor(cursor) {
229
- const occurredAt = typeof cursor?.occurredAt === "string" && cursor.occurredAt.length > 0
230
- ? cursor.occurredAt
231
- : null;
232
- const externalId = typeof cursor?.externalId === "string" && cursor.externalId.length > 0
233
- ? cursor.externalId
234
- : null;
235
- if (!occurredAt || !externalId) {
236
- return null;
237
- }
238
- return { occurredAt, externalId };
239
- }
240
- function normalizeImessageAccountId(accountId) {
241
- if (accountId === undefined) {
242
- return "self";
243
- }
244
- if (accountId === null) {
245
- return null;
246
- }
247
- const normalized = accountId.trim();
248
- return normalized.length > 0 ? normalized : null;
249
- }
250
- async function loadChats(driver) {
251
- if (!driver.listChats) {
252
- return new Map();
253
- }
254
- return indexChats(await driver.listChats());
255
- }
256
- function resolveChat(chats, message) {
257
- const key = message.chatGuid ?? message.chatId ?? null;
258
- return key ? (chats.get(key) ?? null) : null;
259
- }
260
- async function hydrateEphemeralImessageAttachments(message) {
261
- const attachments = message.attachments;
262
- if (!attachments || attachments.length === 0) {
263
- return message;
264
- }
265
- let changed = false;
266
- const hydrated = await Promise.all(attachments.map(async (attachment) => {
267
- const nextAttachment = await snapshotEphemeralImessageAttachment(attachment);
268
- if (nextAttachment !== attachment) {
269
- changed = true;
270
- }
271
- return nextAttachment;
272
- }));
273
- return changed
274
- ? {
275
- ...message,
276
- attachments: hydrated,
277
- }
278
- : message;
279
- }
280
- async function snapshotEphemeralImessageAttachment(attachment) {
281
- const attachmentPath = resolveEphemeralAttachmentPath(attachment.path);
282
- if (!attachmentPath || hasAttachmentData(attachment)) {
283
- return attachment;
284
- }
285
- const byteSize = normalizeAttachmentByteSize(attachment);
286
- if (byteSize !== null && byteSize > MAX_EAGER_IMESSAGE_ATTACHMENT_BYTES) {
287
- return attachment;
288
- }
289
- try {
290
- const data = await readFile(attachmentPath);
291
- return {
292
- ...attachment,
293
- data: new Uint8Array(data),
294
- };
295
- }
296
- catch (error) {
297
- if (isMissingFileError(error)) {
298
- return {
299
- ...attachment,
300
- path: null,
301
- };
302
- }
303
- throw error;
304
- }
305
- }
306
- function resolveEphemeralAttachmentPath(candidate) {
307
- if (typeof candidate !== "string" || candidate.trim().length === 0) {
308
- return null;
309
- }
310
- const resolved = path.resolve(candidate);
311
- const normalized = resolved.replaceAll("\\", "/");
312
- return normalized.includes("/TemporaryItems/") || normalized.includes("/com.apple.imagent/")
313
- ? resolved
314
- : null;
315
- }
316
- function hasAttachmentData(attachment) {
317
- return attachment.data instanceof Uint8Array;
318
- }
319
- function normalizeAttachmentByteSize(attachment) {
320
- const byteSize = attachment.byteSize ?? attachment.size ?? null;
321
- return typeof byteSize === "number" && Number.isFinite(byteSize) && byteSize >= 0
322
- ? Math.trunc(byteSize)
323
- : null;
324
- }
325
- function isMissingFileError(error) {
326
- return typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT";
327
- }
328
- function indexChats(chats) {
329
- return new Map(chats.flatMap((chat) => {
330
- const keys = [chat.guid, chat.chatGuid, chat.id].filter((value) => typeof value === "string" && value.length > 0);
331
- return keys.map((key) => [key, chat]);
332
- }));
333
- }
334
- //# sourceMappingURL=connector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connector.js","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- export { createImessageConnector, loadImessageKitDriver, } from "./connector.ts";
2
- export type { ImessageConnectorOptions, ImessageGetMessagesInput, ImessagePollDriver, ImessageWatchOptions, } from "./connector.ts";
3
- export { normalizeImessageAttachment, normalizeImessageMessage, } from "./normalize.ts";
4
- export type { ImessageKitAttachmentLike, ImessageKitChatLike, ImessageKitMessageLike, } from "./normalize.ts";
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,yBAAyB,EACzB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC"}
@@ -1,3 +0,0 @@
1
- export { createImessageConnector, loadImessageKitDriver, } from "./connector.js";
2
- export { normalizeImessageAttachment, normalizeImessageMessage, } from "./normalize.js";
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAOxB,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,gBAAgB,CAAC"}
@@ -1,60 +0,0 @@
1
- import type { InboundAttachment, InboundCapture } from "@murphai/inboxd";
2
- export interface ImessageKitAttachmentLike {
3
- guid?: string | null;
4
- id?: string | null;
5
- filename?: string | null;
6
- fileName?: string | null;
7
- path?: string | null;
8
- data?: Uint8Array | null;
9
- transferName?: string | null;
10
- mimeType?: string | null;
11
- mime?: string | null;
12
- type?: string | null;
13
- size?: number | null;
14
- byteSize?: number | null;
15
- [key: string]: unknown;
16
- }
17
- export interface ImessageKitMessageLike {
18
- guid?: string | null;
19
- id?: string | null;
20
- text?: string | null;
21
- message?: string | null;
22
- attributedBody?: string | null;
23
- date?: string | number | Date | null;
24
- dateDelivered?: string | number | Date | null;
25
- dateReceived?: string | number | Date | null;
26
- dateRead?: string | number | Date | null;
27
- chatGuid?: string | null;
28
- chatId?: string | null;
29
- handleId?: string | null;
30
- sender?: string | null;
31
- from?: string | null;
32
- displayName?: string | null;
33
- senderName?: string | null;
34
- isFromMe?: boolean | null;
35
- fromMe?: boolean | null;
36
- attachments?: ImessageKitAttachmentLike[] | null;
37
- [key: string]: unknown;
38
- }
39
- export interface ImessageKitChatLike {
40
- guid?: string | null;
41
- chatGuid?: string | null;
42
- id?: string | null;
43
- displayName?: string | null;
44
- title?: string | null;
45
- isGroup?: boolean | null;
46
- participants?: Array<{
47
- id?: string | null;
48
- } | string> | null;
49
- participantCount?: number | null;
50
- [key: string]: unknown;
51
- }
52
- export interface NormalizeImessageInput {
53
- message: ImessageKitMessageLike;
54
- source?: string;
55
- accountId?: string | null;
56
- chat?: ImessageKitChatLike | null;
57
- }
58
- export declare function normalizeImessageAttachment(attachment: ImessageKitAttachmentLike): InboundAttachment;
59
- export declare function normalizeImessageMessage({ message, source, accountId, chat, }: NormalizeImessageInput): InboundCapture;
60
- //# sourceMappingURL=normalize.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAOzE,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC7C,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,yBAAyB,EAAE,GAAG,IAAI,CAAC;IACjD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC;IAC7D,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,sBAAsB,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACnC;AAED,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,yBAAyB,GACpC,iBAAiB,CAcnB;AAED,wBAAgB,wBAAwB,CAAC,EACvC,OAAO,EACP,MAAmB,EACnB,SAAkB,EAClB,IAAW,GACZ,EAAE,sBAAsB,GAAG,cAAc,CAuCzC"}
@@ -1,147 +0,0 @@
1
- import { normalizeTextValue, sanitizeRawMetadata, toIsoTimestamp, } from "./shared-runtime.js";
2
- export function normalizeImessageAttachment(attachment) {
3
- const fileName = attachment.fileName ?? attachment.filename ?? attachment.transferName ?? null;
4
- const mime = attachment.mime ?? attachment.mimeType ?? null;
5
- const originalPath = attachment.path ?? null;
6
- return {
7
- externalId: attachment.guid ?? attachment.id ?? null,
8
- kind: inferAttachmentKind(mime, fileName, attachment.type ?? null),
9
- mime,
10
- originalPath,
11
- fileName,
12
- byteSize: attachment.byteSize ?? attachment.size ?? null,
13
- data: attachment.data ?? null,
14
- };
15
- }
16
- export function normalizeImessageMessage({ message, source = "imessage", accountId = "self", chat = null, }) {
17
- const externalId = message.guid ?? message.id;
18
- const threadId = message.chatGuid ?? message.chatId ?? chat?.guid ?? chat?.chatGuid ?? chat?.id;
19
- if (!externalId) {
20
- throw new TypeError("iMessage message is missing a stable external id.");
21
- }
22
- if (!threadId) {
23
- throw new TypeError("iMessage message is missing a stable thread id.");
24
- }
25
- const occurredAt = toIsoTimestamp(message.date ?? new Date());
26
- const actorId = message.handleId ?? message.sender ?? message.from ?? null;
27
- const actorName = message.displayName ?? message.senderName ?? null;
28
- const attachments = (message.attachments ?? []).map(normalizeImessageAttachment);
29
- const text = normalizeTextValue(message.text ?? message.message ?? message.attributedBody ?? null);
30
- const isSelf = message.isFromMe ?? message.fromMe ?? false;
31
- return {
32
- source,
33
- externalId,
34
- accountId,
35
- thread: {
36
- id: threadId,
37
- title: chat?.displayName ?? chat?.title ?? null,
38
- isDirect: inferDirectChat(chat),
39
- },
40
- actor: {
41
- id: actorId,
42
- displayName: actorName,
43
- isSelf: Boolean(isSelf),
44
- },
45
- occurredAt,
46
- receivedAt: firstTimestamp(message.dateReceived, message.dateDelivered),
47
- text,
48
- attachments,
49
- raw: sanitizeRawMessage(message),
50
- };
51
- }
52
- function inferDirectChat(chat) {
53
- if (!chat) {
54
- return true;
55
- }
56
- if (typeof chat.isGroup === "boolean") {
57
- return !chat.isGroup;
58
- }
59
- if (Array.isArray(chat.participants)) {
60
- return chat.participants.length <= 2;
61
- }
62
- if (typeof chat.participantCount === "number") {
63
- return chat.participantCount <= 2;
64
- }
65
- return true;
66
- }
67
- function firstTimestamp(...values) {
68
- for (const value of values) {
69
- if (value === null || value === undefined) {
70
- continue;
71
- }
72
- if (typeof value === "string" && value.trim().length === 0) {
73
- continue;
74
- }
75
- try {
76
- return toIsoTimestamp(value);
77
- }
78
- catch {
79
- continue;
80
- }
81
- }
82
- return null;
83
- }
84
- function inferAttachmentKind(mime, fileName, type) {
85
- const lowerMime = String(mime ?? "").toLowerCase();
86
- const lowerType = String(type ?? "").toLowerCase();
87
- const lowerName = String(fileName ?? "").toLowerCase();
88
- if (lowerMime.startsWith("image/") || /\.(heic|heif|gif|jpe?g|png|webp)$/u.test(lowerName)) {
89
- return "image";
90
- }
91
- if (lowerMime.startsWith("audio/") || /\.(aac|m4a|mp3|wav)$/u.test(lowerName)) {
92
- return "audio";
93
- }
94
- if (lowerMime.startsWith("video/") || /\.(mov|mp4|m4v|webm)$/u.test(lowerName)) {
95
- return "video";
96
- }
97
- if (lowerMime === "application/pdf" ||
98
- /\.(csv|docx?|pdf|rtf|txt|xls|xlsx)$/u.test(lowerName) ||
99
- lowerType.includes("document")) {
100
- return "document";
101
- }
102
- return "other";
103
- }
104
- function sanitizeRawMessage(message) {
105
- return sanitizeRawMetadata(compactRecord({
106
- guid: message.guid,
107
- id: message.id,
108
- text: message.text,
109
- message: message.message,
110
- attributed_body: message.attributedBody,
111
- date: message.date,
112
- date_delivered: message.dateDelivered,
113
- date_received: message.dateReceived,
114
- date_read: message.dateRead,
115
- chat_guid: message.chatGuid,
116
- chat_id: message.chatId,
117
- handle_id: message.handleId,
118
- sender: message.sender,
119
- from: message.from,
120
- display_name: message.displayName,
121
- sender_name: message.senderName,
122
- is_from_me: message.isFromMe,
123
- from_me: message.fromMe,
124
- attachments: message.attachments?.map((attachment) => pickImessageAttachment(attachment)) ??
125
- message.attachments ??
126
- undefined,
127
- }));
128
- }
129
- function pickImessageAttachment(attachment) {
130
- return compactRecord({
131
- guid: attachment.guid,
132
- id: attachment.id,
133
- filename: attachment.filename,
134
- file_name: attachment.fileName,
135
- path: attachment.path,
136
- transfer_name: attachment.transferName,
137
- mime_type: attachment.mimeType,
138
- mime: attachment.mime,
139
- type: attachment.type,
140
- size: attachment.size,
141
- byte_size: attachment.byteSize,
142
- });
143
- }
144
- function compactRecord(fields) {
145
- return Object.fromEntries(Object.entries(fields).filter(([, value]) => value !== undefined));
146
- }
147
- //# sourceMappingURL=normalize.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export declare function toIsoTimestamp(value: Date | string | number): string;
2
- export declare function normalizeTextValue(value: unknown): string | null;
3
- export declare function sanitizeRawMetadata(value: unknown): unknown;
4
- //# sourceMappingURL=shared-runtime.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared-runtime.d.ts","sourceRoot":"","sources":["../src/shared-runtime.ts"],"names":[],"mappings":"AAiFA,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAQpE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAGhE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE3D"}