@murphai/murph 0.2.6 → 0.2.10

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 (759) hide show
  1. package/CHANGELOG.md +185 -0
  2. package/README.md +1 -1
  3. package/config.schema.json +40 -15
  4. package/dist/cli-entry.d.ts.map +1 -1
  5. package/dist/cli-entry.js +7 -5
  6. package/dist/cli-entry.js.map +1 -1
  7. package/dist/commands/automation.d.ts +4 -8
  8. package/dist/commands/automation.d.ts.map +1 -1
  9. package/dist/commands/automation.js +2 -2
  10. package/dist/commands/automation.js.map +1 -1
  11. package/dist/commands/document.d.ts.map +1 -1
  12. package/dist/commands/document.js +1 -1
  13. package/dist/commands/document.js.map +1 -1
  14. package/dist/commands/export-intake-read-helpers.d.ts +1 -1
  15. package/dist/commands/intervention.d.ts.map +1 -1
  16. package/dist/commands/intervention.js +1 -1
  17. package/dist/commands/intervention.js.map +1 -1
  18. package/dist/commands/knowledge.js +1 -1
  19. package/dist/commands/knowledge.js.map +1 -1
  20. package/dist/commands/meal.d.ts +1 -1
  21. package/dist/commands/meal.d.ts.map +1 -1
  22. package/dist/commands/meal.js +53 -3
  23. package/dist/commands/meal.js.map +1 -1
  24. package/dist/commands/model.d.ts.map +1 -1
  25. package/dist/commands/model.js +5 -5
  26. package/dist/commands/model.js.map +1 -1
  27. package/dist/commands/route.d.ts.map +1 -1
  28. package/dist/commands/route.js +8 -8
  29. package/dist/commands/route.js.map +1 -1
  30. package/dist/commands/search.d.ts.map +1 -1
  31. package/dist/commands/search.js +2 -1
  32. package/dist/commands/search.js.map +1 -1
  33. package/dist/commands/workout.d.ts.map +1 -1
  34. package/dist/commands/workout.js +1 -1
  35. package/dist/commands/workout.js.map +1 -1
  36. package/dist/incur.generated.d.ts +9 -2
  37. package/dist/incur.generated.d.ts.map +1 -1
  38. package/dist/index.d.ts +0 -1
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +0 -1
  41. package/dist/index.js.map +1 -1
  42. package/dist/mapbox-route-client.d.ts +17 -0
  43. package/dist/mapbox-route-client.d.ts.map +1 -0
  44. package/dist/mapbox-route-client.js +51 -0
  45. package/dist/mapbox-route-client.js.map +1 -0
  46. package/dist/mapbox-route-contracts.d.ts +277 -0
  47. package/dist/mapbox-route-contracts.d.ts.map +1 -0
  48. package/dist/mapbox-route-contracts.js +145 -0
  49. package/dist/mapbox-route-contracts.js.map +1 -0
  50. package/dist/mapbox-route-directions.d.ts +11 -0
  51. package/dist/mapbox-route-directions.d.ts.map +1 -0
  52. package/dist/mapbox-route-directions.js +55 -0
  53. package/dist/mapbox-route-directions.js.map +1 -0
  54. package/dist/mapbox-route-elevation.d.ts +10 -0
  55. package/dist/mapbox-route-elevation.d.ts.map +1 -0
  56. package/dist/mapbox-route-elevation.js +186 -0
  57. package/dist/mapbox-route-elevation.js.map +1 -0
  58. package/dist/mapbox-route-points.d.ts +14 -0
  59. package/dist/mapbox-route-points.d.ts.map +1 -0
  60. package/dist/mapbox-route-points.js +236 -0
  61. package/dist/mapbox-route-points.js.map +1 -0
  62. package/dist/mapbox-route.d.ts +13 -0
  63. package/dist/mapbox-route.d.ts.map +1 -0
  64. package/dist/mapbox-route.js +119 -0
  65. package/dist/mapbox-route.js.map +1 -0
  66. package/dist/vault-cli-bootstrap.d.ts +1 -1
  67. package/dist/vault-cli-bootstrap.d.ts.map +1 -1
  68. package/dist/vault-cli-bootstrap.js +2 -2
  69. package/dist/vault-cli-bootstrap.js.map +1 -1
  70. package/dist/vault-cli-command-manifest.d.ts +23 -13
  71. package/dist/vault-cli-command-manifest.d.ts.map +1 -1
  72. package/dist/vault-cli-command-manifest.js +8 -4
  73. package/dist/vault-cli-command-manifest.js.map +1 -1
  74. package/dist/vault-cli.d.ts +6 -0
  75. package/dist/vault-cli.d.ts.map +1 -1
  76. package/dist/vault-cli.js +20 -3
  77. package/dist/vault-cli.js.map +1 -1
  78. package/node_modules/@murphai/assistant-cli/dist/assistant/service.d.ts +15 -3
  79. package/node_modules/@murphai/assistant-cli/dist/assistant/service.d.ts.map +1 -1
  80. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/chat-controller-models.d.ts.map +1 -1
  81. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/chat-controller-models.js +1 -0
  82. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/chat-controller-models.js.map +1 -1
  83. package/node_modules/@murphai/assistant-cli/dist/commands/assistant.d.ts.map +1 -1
  84. package/node_modules/@murphai/assistant-cli/dist/commands/assistant.js +10 -15
  85. package/node_modules/@murphai/assistant-cli/dist/commands/assistant.js.map +1 -1
  86. package/node_modules/@murphai/assistant-engine/dist/assistant/auto-reply-channels.d.ts +32 -0
  87. package/node_modules/@murphai/assistant-engine/dist/assistant/auto-reply-channels.d.ts.map +1 -0
  88. package/node_modules/@murphai/assistant-engine/dist/assistant/auto-reply-channels.js +93 -0
  89. package/node_modules/@murphai/assistant-engine/dist/assistant/auto-reply-channels.js.map +1 -0
  90. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/grouping.d.ts +1 -0
  91. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/grouping.d.ts.map +1 -1
  92. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/grouping.js +1 -1
  93. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/grouping.js.map +1 -1
  94. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.d.ts.map +1 -1
  95. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.js +6 -25
  96. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.js.map +1 -1
  97. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.d.ts +0 -1
  98. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.d.ts.map +1 -1
  99. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.js +19 -23
  100. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.js.map +1 -1
  101. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/runtime-lock.d.ts.map +1 -1
  102. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/runtime-lock.js +17 -11
  103. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/runtime-lock.js.map +1 -1
  104. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/startup-recovery.d.ts +5 -2
  105. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/startup-recovery.d.ts.map +1 -1
  106. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/startup-recovery.js +86 -48
  107. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/startup-recovery.js.map +1 -1
  108. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/descriptors.d.ts.map +1 -1
  109. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/descriptors.js +1 -16
  110. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/descriptors.js.map +1 -1
  111. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/helpers.d.ts +2 -12
  112. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/helpers.d.ts.map +1 -1
  113. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/helpers.js +23 -43
  114. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/helpers.js.map +1 -1
  115. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/registry.d.ts.map +1 -1
  116. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/registry.js +3 -2
  117. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/registry.js.map +1 -1
  118. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/types.d.ts +1 -1
  119. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/types.d.ts.map +1 -1
  120. package/node_modules/@murphai/assistant-engine/dist/assistant/cli-surface-bootstrap.js +2 -3
  121. package/node_modules/@murphai/assistant-engine/dist/assistant/cli-surface-bootstrap.js.map +1 -1
  122. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/notification-delivery.d.ts +6 -0
  123. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/notification-delivery.d.ts.map +1 -0
  124. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/notification-delivery.js +21 -0
  125. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/notification-delivery.js.map +1 -0
  126. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/store.d.ts +0 -2
  127. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/store.d.ts.map +1 -1
  128. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/store.js +0 -1
  129. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/store.js.map +1 -1
  130. package/node_modules/@murphai/assistant-engine/dist/assistant/cron.d.ts.map +1 -1
  131. package/node_modules/@murphai/assistant-engine/dist/assistant/cron.js +67 -43
  132. package/node_modules/@murphai/assistant-engine/dist/assistant/cron.js.map +1 -1
  133. package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.d.ts.map +1 -1
  134. package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.js +20 -7
  135. package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.js.map +1 -1
  136. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.d.ts +25 -0
  137. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.d.ts.map +1 -0
  138. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.js +201 -0
  139. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.js.map +1 -0
  140. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/dispatch-state.d.ts +38 -0
  141. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/dispatch-state.d.ts.map +1 -0
  142. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/dispatch-state.js +215 -0
  143. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/dispatch-state.js.map +1 -0
  144. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/retry-policy.d.ts.map +1 -1
  145. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/retry-policy.js +77 -41
  146. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/retry-policy.js.map +1 -1
  147. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.d.ts.map +1 -1
  148. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.js +4 -201
  149. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.js.map +1 -1
  150. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-binding.d.ts +1 -13
  151. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-binding.d.ts.map +1 -1
  152. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-binding.js +6 -111
  153. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-binding.js.map +1 -1
  154. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-catalog.d.ts +1 -0
  155. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-catalog.d.ts.map +1 -1
  156. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-catalog.js.map +1 -1
  157. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-config.d.ts.map +1 -1
  158. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-config.js +18 -4
  159. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-config.js.map +1 -1
  160. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-state.d.ts +0 -7
  161. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-state.d.ts.map +1 -1
  162. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-state.js +13 -82
  163. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-state.js.map +1 -1
  164. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-turn-runner.d.ts +9 -0
  165. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-turn-runner.d.ts.map +1 -1
  166. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-turn-runner.js +84 -32
  167. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-turn-runner.js.map +1 -1
  168. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.d.ts.map +1 -1
  169. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.js +1 -0
  170. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.js.map +1 -1
  171. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/openai-compatible.d.ts.map +1 -1
  172. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/openai-compatible.js +95 -32
  173. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/openai-compatible.js.map +1 -1
  174. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/registry.d.ts.map +1 -1
  175. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/registry.js +6 -1
  176. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/registry.js.map +1 -1
  177. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/types.d.ts +4 -0
  178. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/types.d.ts.map +1 -1
  179. package/node_modules/@murphai/assistant-engine/dist/assistant/redaction.d.ts +4 -8
  180. package/node_modules/@murphai/assistant-engine/dist/assistant/redaction.d.ts.map +1 -1
  181. package/node_modules/@murphai/assistant-engine/dist/assistant/redaction.js +3 -37
  182. package/node_modules/@murphai/assistant-engine/dist/assistant/redaction.js.map +1 -1
  183. package/node_modules/@murphai/assistant-engine/dist/assistant/rich-content-routing.d.ts +14 -0
  184. package/node_modules/@murphai/assistant-engine/dist/assistant/rich-content-routing.d.ts.map +1 -0
  185. package/node_modules/@murphai/assistant-engine/dist/assistant/rich-content-routing.js +51 -0
  186. package/node_modules/@murphai/assistant-engine/dist/assistant/rich-content-routing.js.map +1 -0
  187. package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-write-lock.js +1 -1
  188. package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-write-lock.js.map +1 -1
  189. package/node_modules/@murphai/assistant-engine/dist/assistant/service-contracts.d.ts +2 -0
  190. package/node_modules/@murphai/assistant-engine/dist/assistant/service-contracts.d.ts.map +1 -1
  191. package/node_modules/@murphai/assistant-engine/dist/assistant/service-turn-routes.d.ts +1 -1
  192. package/node_modules/@murphai/assistant-engine/dist/assistant/service-turn-routes.d.ts.map +1 -1
  193. package/node_modules/@murphai/assistant-engine/dist/assistant/service-turn-routes.js +2 -0
  194. package/node_modules/@murphai/assistant-engine/dist/assistant/service-turn-routes.js.map +1 -1
  195. package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.d.ts.map +1 -1
  196. package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.js +0 -4
  197. package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.js.map +1 -1
  198. package/node_modules/@murphai/assistant-engine/dist/assistant/service.d.ts +16 -1
  199. package/node_modules/@murphai/assistant-engine/dist/assistant/service.d.ts.map +1 -1
  200. package/node_modules/@murphai/assistant-engine/dist/assistant/service.js +5 -0
  201. package/node_modules/@murphai/assistant-engine/dist/assistant/service.js.map +1 -1
  202. package/node_modules/@murphai/assistant-engine/dist/assistant/session-resolution.d.ts.map +1 -1
  203. package/node_modules/@murphai/assistant-engine/dist/assistant/session-resolution.js +7 -0
  204. package/node_modules/@murphai/assistant-engine/dist/assistant/session-resolution.js.map +1 -1
  205. package/node_modules/@murphai/assistant-engine/dist/assistant/shared.d.ts +1 -3
  206. package/node_modules/@murphai/assistant-engine/dist/assistant/shared.d.ts.map +1 -1
  207. package/node_modules/@murphai/assistant-engine/dist/assistant/shared.js +1 -36
  208. package/node_modules/@murphai/assistant-engine/dist/assistant/shared.js.map +1 -1
  209. package/node_modules/@murphai/assistant-engine/dist/assistant/state-ids.d.ts +0 -1
  210. package/node_modules/@murphai/assistant-engine/dist/assistant/state-ids.d.ts.map +1 -1
  211. package/node_modules/@murphai/assistant-engine/dist/assistant/state-ids.js +3 -8
  212. package/node_modules/@murphai/assistant-engine/dist/assistant/state-ids.js.map +1 -1
  213. package/node_modules/@murphai/assistant-engine/dist/assistant/state-secrets.d.ts.map +1 -1
  214. package/node_modules/@murphai/assistant-engine/dist/assistant/state-secrets.js +9 -15
  215. package/node_modules/@murphai/assistant-engine/dist/assistant/state-secrets.js.map +1 -1
  216. package/node_modules/@murphai/assistant-engine/dist/assistant/state-write-lock.d.ts.map +1 -1
  217. package/node_modules/@murphai/assistant-engine/dist/assistant/state-write-lock.js +8 -9
  218. package/node_modules/@murphai/assistant-engine/dist/assistant/state-write-lock.js.map +1 -1
  219. package/node_modules/@murphai/assistant-engine/dist/assistant/store/paths.d.ts +2 -0
  220. package/node_modules/@murphai/assistant-engine/dist/assistant/store/paths.d.ts.map +1 -1
  221. package/node_modules/@murphai/assistant-engine/dist/assistant/store/paths.js.map +1 -1
  222. package/node_modules/@murphai/assistant-engine/dist/assistant/store/persistence.d.ts +1 -1
  223. package/node_modules/@murphai/assistant-engine/dist/assistant/store/persistence.js +1 -1
  224. package/node_modules/@murphai/assistant-engine/dist/assistant/store/types.d.ts +2 -0
  225. package/node_modules/@murphai/assistant-engine/dist/assistant/store/types.d.ts.map +1 -1
  226. package/node_modules/@murphai/assistant-engine/dist/assistant/store.js +1 -1
  227. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.d.ts +10 -0
  228. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.d.ts.map +1 -1
  229. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.js +44 -5
  230. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.js.map +1 -1
  231. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.d.ts +7 -0
  232. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.d.ts.map +1 -1
  233. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.js +24 -18
  234. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.js.map +1 -1
  235. package/node_modules/@murphai/assistant-engine/dist/assistant/web-fetch/config.d.ts +45 -0
  236. package/node_modules/@murphai/assistant-engine/dist/assistant/web-fetch/config.d.ts.map +1 -0
  237. package/node_modules/@murphai/assistant-engine/dist/assistant/web-fetch/config.js +112 -0
  238. package/node_modules/@murphai/assistant-engine/dist/assistant/web-fetch/config.js.map +1 -0
  239. package/node_modules/@murphai/assistant-engine/dist/assistant/web-fetch/content.d.ts +22 -0
  240. package/node_modules/@murphai/assistant-engine/dist/assistant/web-fetch/content.d.ts.map +1 -0
  241. package/node_modules/@murphai/assistant-engine/dist/assistant/web-fetch/content.js +136 -0
  242. package/node_modules/@murphai/assistant-engine/dist/assistant/web-fetch/content.js.map +1 -0
  243. package/node_modules/@murphai/assistant-engine/dist/assistant/web-fetch/html.d.ts +12 -0
  244. package/node_modules/@murphai/assistant-engine/dist/assistant/web-fetch/html.d.ts.map +1 -0
  245. package/node_modules/@murphai/assistant-engine/dist/assistant/web-fetch/html.js +248 -0
  246. package/node_modules/@murphai/assistant-engine/dist/assistant/web-fetch/html.js.map +1 -0
  247. package/node_modules/@murphai/assistant-engine/dist/assistant/web-fetch/network.d.ts +10 -0
  248. package/node_modules/@murphai/assistant-engine/dist/assistant/web-fetch/network.d.ts.map +1 -0
  249. package/node_modules/@murphai/assistant-engine/dist/assistant/web-fetch/network.js +280 -0
  250. package/node_modules/@murphai/assistant-engine/dist/assistant/web-fetch/network.js.map +1 -0
  251. package/node_modules/@murphai/assistant-engine/dist/assistant/web-fetch/response.d.ts +18 -0
  252. package/node_modules/@murphai/assistant-engine/dist/assistant/web-fetch/response.d.ts.map +1 -0
  253. package/node_modules/@murphai/assistant-engine/dist/assistant/web-fetch/response.js +221 -0
  254. package/node_modules/@murphai/assistant-engine/dist/assistant/web-fetch/response.js.map +1 -0
  255. package/node_modules/@murphai/assistant-engine/dist/assistant/web-fetch.d.ts +5 -58
  256. package/node_modules/@murphai/assistant-engine/dist/assistant/web-fetch.d.ts.map +1 -1
  257. package/node_modules/@murphai/assistant-engine/dist/assistant/web-fetch.js +11 -859
  258. package/node_modules/@murphai/assistant-engine/dist/assistant/web-fetch.js.map +1 -1
  259. package/node_modules/@murphai/assistant-engine/dist/assistant/web-pdf-read.d.ts.map +1 -1
  260. package/node_modules/@murphai/assistant-engine/dist/assistant/web-pdf-read.js +5 -6
  261. package/node_modules/@murphai/assistant-engine/dist/assistant/web-pdf-read.js.map +1 -1
  262. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/capability-definitions.d.ts +22 -28
  263. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/capability-definitions.d.ts.map +1 -1
  264. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/capability-definitions.js +49 -24
  265. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/capability-definitions.js.map +1 -1
  266. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/catalog-profiles.d.ts +1 -0
  267. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/catalog-profiles.d.ts.map +1 -1
  268. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/catalog-profiles.js +14 -0
  269. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/catalog-profiles.js.map +1 -1
  270. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/execution-adapters.d.ts +4 -0
  271. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/execution-adapters.d.ts.map +1 -1
  272. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/execution-adapters.js +88 -20
  273. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/execution-adapters.js.map +1 -1
  274. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/policy-wrappers.d.ts.map +1 -1
  275. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/policy-wrappers.js +88 -3
  276. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/policy-wrappers.js.map +1 -1
  277. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools.d.ts +1 -1
  278. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools.d.ts.map +1 -1
  279. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools.js +1 -1
  280. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools.js.map +1 -1
  281. package/node_modules/@murphai/assistant-engine/dist/assistant-state.d.ts +1 -0
  282. package/node_modules/@murphai/assistant-engine/dist/assistant-state.d.ts.map +1 -1
  283. package/node_modules/@murphai/assistant-engine/dist/assistant-state.js +1 -0
  284. package/node_modules/@murphai/assistant-engine/dist/assistant-state.js.map +1 -1
  285. package/node_modules/@murphai/assistant-engine/dist/inbox-model-contracts.d.ts +1 -4
  286. package/node_modules/@murphai/assistant-engine/dist/inbox-model-contracts.d.ts.map +1 -1
  287. package/node_modules/@murphai/assistant-engine/dist/inbox-model-contracts.js +1 -1
  288. package/node_modules/@murphai/assistant-engine/dist/inbox-model-contracts.js.map +1 -1
  289. package/node_modules/@murphai/assistant-engine/dist/inbox-model-harness.js +1 -1
  290. package/node_modules/@murphai/assistant-engine/dist/inbox-model-harness.js.map +1 -1
  291. package/node_modules/@murphai/assistant-engine/dist/index.d.ts +0 -2
  292. package/node_modules/@murphai/assistant-engine/dist/index.d.ts.map +1 -1
  293. package/node_modules/@murphai/assistant-engine/dist/index.js +0 -2
  294. package/node_modules/@murphai/assistant-engine/dist/index.js.map +1 -1
  295. package/node_modules/@murphai/assistant-engine/dist/knowledge/documents.d.ts +1 -2
  296. package/node_modules/@murphai/assistant-engine/dist/knowledge/documents.d.ts.map +1 -1
  297. package/node_modules/@murphai/assistant-engine/dist/knowledge/documents.js +0 -1
  298. package/node_modules/@murphai/assistant-engine/dist/knowledge/documents.js.map +1 -1
  299. package/node_modules/@murphai/assistant-engine/dist/knowledge/service.d.ts.map +1 -1
  300. package/node_modules/@murphai/assistant-engine/dist/knowledge/service.js +124 -104
  301. package/node_modules/@murphai/assistant-engine/dist/knowledge/service.js.map +1 -1
  302. package/node_modules/@murphai/assistant-engine/dist/knowledge.d.ts +7 -3
  303. package/node_modules/@murphai/assistant-engine/dist/knowledge.d.ts.map +1 -1
  304. package/node_modules/@murphai/assistant-engine/dist/knowledge.js +7 -2
  305. package/node_modules/@murphai/assistant-engine/dist/knowledge.js.map +1 -1
  306. package/node_modules/@murphai/assistant-engine/dist/model-harness.d.ts +6 -0
  307. package/node_modules/@murphai/assistant-engine/dist/model-harness.d.ts.map +1 -1
  308. package/node_modules/@murphai/assistant-engine/dist/model-harness.js +64 -26
  309. package/node_modules/@murphai/assistant-engine/dist/model-harness.js.map +1 -1
  310. package/node_modules/@murphai/assistant-engine/package.json +2 -2
  311. package/node_modules/@murphai/assistantd/README.md +1 -1
  312. package/node_modules/@murphai/assistantd/dist/config.d.ts.map +1 -1
  313. package/node_modules/@murphai/assistantd/dist/config.js +5 -6
  314. package/node_modules/@murphai/assistantd/dist/config.js.map +1 -1
  315. package/node_modules/@murphai/assistantd/dist/http.d.ts +6 -1
  316. package/node_modules/@murphai/assistantd/dist/http.d.ts.map +1 -1
  317. package/node_modules/@murphai/assistantd/dist/http.js +28 -24
  318. package/node_modules/@murphai/assistantd/dist/http.js.map +1 -1
  319. package/node_modules/@murphai/assistantd/dist/service.d.ts.map +1 -1
  320. package/node_modules/@murphai/assistantd/dist/service.js +2 -1
  321. package/node_modules/@murphai/assistantd/dist/service.js.map +1 -1
  322. package/node_modules/@murphai/assistantd/package.json +1 -1
  323. package/node_modules/@murphai/core/dist/audit.d.ts.map +1 -1
  324. package/node_modules/@murphai/core/dist/audit.js +10 -4
  325. package/node_modules/@murphai/core/dist/audit.js.map +1 -1
  326. package/node_modules/@murphai/core/dist/automation.d.ts +1 -1
  327. package/node_modules/@murphai/core/dist/automation.d.ts.map +1 -1
  328. package/node_modules/@murphai/core/dist/automation.js +13 -16
  329. package/node_modules/@murphai/core/dist/automation.js.map +1 -1
  330. package/node_modules/@murphai/core/dist/bank/foods.d.ts.map +1 -1
  331. package/node_modules/@murphai/core/dist/bank/foods.js +29 -0
  332. package/node_modules/@murphai/core/dist/bank/foods.js.map +1 -1
  333. package/node_modules/@murphai/core/dist/bank/types.d.ts +3 -1
  334. package/node_modules/@murphai/core/dist/bank/types.d.ts.map +1 -1
  335. package/node_modules/@murphai/core/dist/bank/types.js.map +1 -1
  336. package/node_modules/@murphai/core/dist/domains/vault-summary.d.ts.map +1 -1
  337. package/node_modules/@murphai/core/dist/domains/vault-summary.js +48 -38
  338. package/node_modules/@murphai/core/dist/domains/vault-summary.js.map +1 -1
  339. package/node_modules/@murphai/core/dist/index.d.ts +2 -2
  340. package/node_modules/@murphai/core/dist/index.d.ts.map +1 -1
  341. package/node_modules/@murphai/core/dist/index.js +1 -1
  342. package/node_modules/@murphai/core/dist/index.js.map +1 -1
  343. package/node_modules/@murphai/core/dist/jsonl.d.ts +0 -5
  344. package/node_modules/@murphai/core/dist/jsonl.d.ts.map +1 -1
  345. package/node_modules/@murphai/core/dist/jsonl.js +1 -12
  346. package/node_modules/@murphai/core/dist/jsonl.js.map +1 -1
  347. package/node_modules/@murphai/core/dist/memory.d.ts.map +1 -1
  348. package/node_modules/@murphai/core/dist/memory.js +83 -63
  349. package/node_modules/@murphai/core/dist/memory.js.map +1 -1
  350. package/node_modules/@murphai/core/dist/mutations.d.ts +3 -2
  351. package/node_modules/@murphai/core/dist/mutations.d.ts.map +1 -1
  352. package/node_modules/@murphai/core/dist/mutations.js +6 -3
  353. package/node_modules/@murphai/core/dist/mutations.js.map +1 -1
  354. package/node_modules/@murphai/core/dist/nutrition.d.ts +6 -0
  355. package/node_modules/@murphai/core/dist/nutrition.d.ts.map +1 -0
  356. package/node_modules/@murphai/core/dist/nutrition.js +69 -0
  357. package/node_modules/@murphai/core/dist/nutrition.js.map +1 -0
  358. package/node_modules/@murphai/core/dist/operations/canonical-resource-lock.d.ts +38 -0
  359. package/node_modules/@murphai/core/dist/operations/canonical-resource-lock.d.ts.map +1 -0
  360. package/node_modules/@murphai/core/dist/operations/canonical-resource-lock.js +221 -0
  361. package/node_modules/@murphai/core/dist/operations/canonical-resource-lock.js.map +1 -0
  362. package/node_modules/@murphai/core/dist/operations/canonical-write-lock.d.ts +1 -0
  363. package/node_modules/@murphai/core/dist/operations/canonical-write-lock.d.ts.map +1 -1
  364. package/node_modules/@murphai/core/dist/operations/canonical-write-lock.js +48 -2
  365. package/node_modules/@murphai/core/dist/operations/canonical-write-lock.js.map +1 -1
  366. package/node_modules/@murphai/core/dist/operations/index.d.ts +3 -1
  367. package/node_modules/@murphai/core/dist/operations/index.d.ts.map +1 -1
  368. package/node_modules/@murphai/core/dist/operations/index.js +2 -1
  369. package/node_modules/@murphai/core/dist/operations/index.js.map +1 -1
  370. package/node_modules/@murphai/core/dist/operations/write-batch.js +2 -2
  371. package/node_modules/@murphai/core/dist/operations/write-batch.js.map +1 -1
  372. package/node_modules/@murphai/core/dist/preferences.d.ts.map +1 -1
  373. package/node_modules/@murphai/core/dist/preferences.js +71 -86
  374. package/node_modules/@murphai/core/dist/preferences.js.map +1 -1
  375. package/node_modules/@murphai/core/dist/public-mutations.d.ts +3 -3
  376. package/node_modules/@murphai/core/dist/public-mutations.d.ts.map +1 -1
  377. package/node_modules/@murphai/core/dist/public-mutations.js +103 -65
  378. package/node_modules/@murphai/core/dist/public-mutations.js.map +1 -1
  379. package/node_modules/@murphai/core/dist/raw.d.ts +1 -1
  380. package/node_modules/@murphai/core/dist/raw.d.ts.map +1 -1
  381. package/node_modules/@murphai/core/package.json +1 -1
  382. package/node_modules/@murphai/device-syncd/README.md +6 -2
  383. package/node_modules/@murphai/device-syncd/dist/bin.js +73 -15
  384. package/node_modules/@murphai/device-syncd/dist/bin.js.map +1 -1
  385. package/node_modules/@murphai/device-syncd/dist/callback-redirect.d.ts +11 -0
  386. package/node_modules/@murphai/device-syncd/dist/callback-redirect.d.ts.map +1 -0
  387. package/node_modules/@murphai/device-syncd/dist/callback-redirect.js +51 -0
  388. package/node_modules/@murphai/device-syncd/dist/callback-redirect.js.map +1 -0
  389. package/node_modules/@murphai/device-syncd/dist/client.d.ts +21 -0
  390. package/node_modules/@murphai/device-syncd/dist/client.d.ts.map +1 -1
  391. package/node_modules/@murphai/device-syncd/dist/client.js.map +1 -1
  392. package/node_modules/@murphai/device-syncd/dist/config.d.ts.map +1 -1
  393. package/node_modules/@murphai/device-syncd/dist/config.js +18 -9
  394. package/node_modules/@murphai/device-syncd/dist/config.js.map +1 -1
  395. package/node_modules/@murphai/device-syncd/dist/hosted-hints.js +2 -26
  396. package/node_modules/@murphai/device-syncd/dist/hosted-hints.js.map +1 -1
  397. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.d.ts +5 -0
  398. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.d.ts.map +1 -1
  399. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.js +27 -6
  400. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.js.map +1 -1
  401. package/node_modules/@murphai/device-syncd/dist/http.d.ts +1 -6
  402. package/node_modules/@murphai/device-syncd/dist/http.d.ts.map +1 -1
  403. package/node_modules/@murphai/device-syncd/dist/http.js +75 -78
  404. package/node_modules/@murphai/device-syncd/dist/http.js.map +1 -1
  405. package/node_modules/@murphai/device-syncd/dist/index.d.ts +1 -0
  406. package/node_modules/@murphai/device-syncd/dist/index.d.ts.map +1 -1
  407. package/node_modules/@murphai/device-syncd/dist/index.js +1 -0
  408. package/node_modules/@murphai/device-syncd/dist/index.js.map +1 -1
  409. package/node_modules/@murphai/device-syncd/dist/providers/oura.d.ts.map +1 -1
  410. package/node_modules/@murphai/device-syncd/dist/providers/oura.js +1 -9
  411. package/node_modules/@murphai/device-syncd/dist/providers/oura.js.map +1 -1
  412. package/node_modules/@murphai/device-syncd/dist/providers/whoop.d.ts.map +1 -1
  413. package/node_modules/@murphai/device-syncd/dist/providers/whoop.js +1 -12
  414. package/node_modules/@murphai/device-syncd/dist/providers/whoop.js.map +1 -1
  415. package/node_modules/@murphai/device-syncd/dist/public-ingress.d.ts +3 -3
  416. package/node_modules/@murphai/device-syncd/dist/public-ingress.d.ts.map +1 -1
  417. package/node_modules/@murphai/device-syncd/dist/public-ingress.js +105 -60
  418. package/node_modules/@murphai/device-syncd/dist/public-ingress.js.map +1 -1
  419. package/node_modules/@murphai/device-syncd/dist/service.d.ts.map +1 -1
  420. package/node_modules/@murphai/device-syncd/dist/service.js +5 -3
  421. package/node_modules/@murphai/device-syncd/dist/service.js.map +1 -1
  422. package/node_modules/@murphai/device-syncd/dist/shared.d.ts +1 -0
  423. package/node_modules/@murphai/device-syncd/dist/shared.d.ts.map +1 -1
  424. package/node_modules/@murphai/device-syncd/dist/shared.js +3 -0
  425. package/node_modules/@murphai/device-syncd/dist/shared.js.map +1 -1
  426. package/node_modules/@murphai/device-syncd/dist/store/jobs.d.ts +31 -0
  427. package/node_modules/@murphai/device-syncd/dist/store/jobs.d.ts.map +1 -0
  428. package/node_modules/@murphai/device-syncd/dist/store/jobs.js +207 -0
  429. package/node_modules/@murphai/device-syncd/dist/store/jobs.js.map +1 -0
  430. package/node_modules/@murphai/device-syncd/dist/store/oauth-states.d.ts +2 -2
  431. package/node_modules/@murphai/device-syncd/dist/store/oauth-states.d.ts.map +1 -1
  432. package/node_modules/@murphai/device-syncd/dist/store/oauth-states.js +20 -4
  433. package/node_modules/@murphai/device-syncd/dist/store/oauth-states.js.map +1 -1
  434. package/node_modules/@murphai/device-syncd/dist/store/schema.d.ts +9 -0
  435. package/node_modules/@murphai/device-syncd/dist/store/schema.d.ts.map +1 -0
  436. package/node_modules/@murphai/device-syncd/dist/store/schema.js +116 -0
  437. package/node_modules/@murphai/device-syncd/dist/store/schema.js.map +1 -0
  438. package/node_modules/@murphai/device-syncd/dist/store/webhook-traces.d.ts +10 -0
  439. package/node_modules/@murphai/device-syncd/dist/store/webhook-traces.d.ts.map +1 -0
  440. package/node_modules/@murphai/device-syncd/dist/store/webhook-traces.js +90 -0
  441. package/node_modules/@murphai/device-syncd/dist/store/webhook-traces.js.map +1 -0
  442. package/node_modules/@murphai/device-syncd/dist/store.d.ts +4 -8
  443. package/node_modules/@murphai/device-syncd/dist/store.d.ts.map +1 -1
  444. package/node_modules/@murphai/device-syncd/dist/store.js +31 -365
  445. package/node_modules/@murphai/device-syncd/dist/store.js.map +1 -1
  446. package/node_modules/@murphai/device-syncd/dist/types.d.ts +31 -28
  447. package/node_modules/@murphai/device-syncd/dist/types.d.ts.map +1 -1
  448. package/node_modules/@murphai/device-syncd/dist/types.js +4 -1
  449. package/node_modules/@murphai/device-syncd/dist/types.js.map +1 -1
  450. package/node_modules/@murphai/device-syncd/package.json +4 -0
  451. package/node_modules/@murphai/gateway-local/dist/store/schema.d.ts +1 -1
  452. package/node_modules/@murphai/gateway-local/dist/store/schema.js +1 -1
  453. package/node_modules/@murphai/gateway-local/package.json +1 -1
  454. package/node_modules/@murphai/importers/dist/device-providers/garmin.d.ts.map +1 -1
  455. package/node_modules/@murphai/importers/dist/device-providers/garmin.js +9 -4
  456. package/node_modules/@murphai/importers/dist/device-providers/garmin.js.map +1 -1
  457. package/node_modules/@murphai/importers/dist/device-providers/oura.d.ts.map +1 -1
  458. package/node_modules/@murphai/importers/dist/device-providers/oura.js +10 -6
  459. package/node_modules/@murphai/importers/dist/device-providers/oura.js.map +1 -1
  460. package/node_modules/@murphai/importers/dist/device-providers/shared-normalization.d.ts +8 -1
  461. package/node_modules/@murphai/importers/dist/device-providers/shared-normalization.d.ts.map +1 -1
  462. package/node_modules/@murphai/importers/dist/device-providers/shared-normalization.js +94 -3
  463. package/node_modules/@murphai/importers/dist/device-providers/shared-normalization.js.map +1 -1
  464. package/node_modules/@murphai/importers/dist/device-providers/whoop.d.ts.map +1 -1
  465. package/node_modules/@murphai/importers/dist/device-providers/whoop.js +9 -3
  466. package/node_modules/@murphai/importers/dist/device-providers/whoop.js.map +1 -1
  467. package/node_modules/@murphai/importers/package.json +1 -1
  468. package/node_modules/@murphai/inbox-services/dist/inbox-app/sources.d.ts.map +1 -1
  469. package/node_modules/@murphai/inbox-services/dist/inbox-app/sources.js +4 -4
  470. package/node_modules/@murphai/inbox-services/dist/inbox-app/sources.js.map +1 -1
  471. package/node_modules/@murphai/inbox-services/package.json +1 -1
  472. package/node_modules/@murphai/inboxd/README.md +2 -1
  473. package/node_modules/@murphai/inboxd/dist/connectors/telegram/normalize.d.ts.map +1 -1
  474. package/node_modules/@murphai/inboxd/dist/connectors/telegram/normalize.js +2 -1
  475. package/node_modules/@murphai/inboxd/dist/connectors/telegram/normalize.js.map +1 -1
  476. package/node_modules/@murphai/inboxd/dist/index.d.ts +1 -1
  477. package/node_modules/@murphai/inboxd/dist/index.d.ts.map +1 -1
  478. package/node_modules/@murphai/inboxd/dist/index.js +1 -1
  479. package/node_modules/@murphai/inboxd/dist/index.js.map +1 -1
  480. package/node_modules/@murphai/inboxd/dist/indexing/persist.d.ts +2 -26
  481. package/node_modules/@murphai/inboxd/dist/indexing/persist.d.ts.map +1 -1
  482. package/node_modules/@murphai/inboxd/dist/indexing/persist.js +269 -263
  483. package/node_modules/@murphai/inboxd/dist/indexing/persist.js.map +1 -1
  484. package/node_modules/@murphai/inboxd/dist/kernel/pipeline.js +1 -1
  485. package/node_modules/@murphai/inboxd/dist/kernel/pipeline.js.map +1 -1
  486. package/node_modules/@murphai/inboxd/package.json +1 -1
  487. package/node_modules/@murphai/messaging-ingress/README.md +6 -0
  488. package/node_modules/@murphai/messaging-ingress/dist/index.d.ts +0 -1
  489. package/node_modules/@murphai/messaging-ingress/dist/index.d.ts.map +1 -1
  490. package/node_modules/@murphai/messaging-ingress/dist/index.js +0 -1
  491. package/node_modules/@murphai/messaging-ingress/dist/index.js.map +1 -1
  492. package/node_modules/@murphai/messaging-ingress/dist/telegram-types.d.ts +116 -0
  493. package/node_modules/@murphai/messaging-ingress/dist/telegram-types.d.ts.map +1 -0
  494. package/node_modules/@murphai/messaging-ingress/dist/telegram-types.js +2 -0
  495. package/node_modules/@murphai/messaging-ingress/dist/telegram-types.js.map +1 -0
  496. package/node_modules/@murphai/messaging-ingress/dist/telegram-webhook-payload.d.ts +1 -1
  497. package/node_modules/@murphai/messaging-ingress/dist/telegram-webhook-payload.d.ts.map +1 -1
  498. package/node_modules/@murphai/messaging-ingress/dist/telegram-webhook.d.ts +2 -116
  499. package/node_modules/@murphai/messaging-ingress/dist/telegram-webhook.d.ts.map +1 -1
  500. package/node_modules/@murphai/messaging-ingress/dist/telegram-webhook.js +21 -10
  501. package/node_modules/@murphai/messaging-ingress/dist/telegram-webhook.js.map +1 -1
  502. package/node_modules/@murphai/messaging-ingress/package.json +4 -4
  503. package/node_modules/@murphai/operator-config/dist/assistant/hosted-config.d.ts +68 -0
  504. package/node_modules/@murphai/operator-config/dist/assistant/hosted-config.d.ts.map +1 -1
  505. package/node_modules/@murphai/operator-config/dist/assistant/hosted-config.js +1 -0
  506. package/node_modules/@murphai/operator-config/dist/assistant/hosted-config.js.map +1 -1
  507. package/node_modules/@murphai/operator-config/dist/assistant/provider-config.d.ts +13 -1
  508. package/node_modules/@murphai/operator-config/dist/assistant/provider-config.d.ts.map +1 -1
  509. package/node_modules/@murphai/operator-config/dist/assistant/provider-config.js +62 -14
  510. package/node_modules/@murphai/operator-config/dist/assistant/provider-config.js.map +1 -1
  511. package/node_modules/@murphai/operator-config/dist/assistant/redaction.d.ts +1 -0
  512. package/node_modules/@murphai/operator-config/dist/assistant/redaction.d.ts.map +1 -1
  513. package/node_modules/@murphai/operator-config/dist/assistant/redaction.js +8 -2
  514. package/node_modules/@murphai/operator-config/dist/assistant/redaction.js.map +1 -1
  515. package/node_modules/@murphai/operator-config/dist/assistant/shared.d.ts.map +1 -1
  516. package/node_modules/@murphai/operator-config/dist/assistant/shared.js +5 -13
  517. package/node_modules/@murphai/operator-config/dist/assistant/shared.js.map +1 -1
  518. package/node_modules/@murphai/operator-config/dist/assistant/target-runtime.d.ts +45 -0
  519. package/node_modules/@murphai/operator-config/dist/assistant/target-runtime.d.ts.map +1 -0
  520. package/node_modules/@murphai/operator-config/dist/assistant/target-runtime.js +203 -0
  521. package/node_modules/@murphai/operator-config/dist/assistant/target-runtime.js.map +1 -0
  522. package/node_modules/@murphai/operator-config/dist/assistant-backend.d.ts +26 -0
  523. package/node_modules/@murphai/operator-config/dist/assistant-backend.d.ts.map +1 -1
  524. package/node_modules/@murphai/operator-config/dist/assistant-backend.js +6 -0
  525. package/node_modules/@murphai/operator-config/dist/assistant-backend.js.map +1 -1
  526. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.d.ts +742 -42
  527. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.d.ts.map +1 -1
  528. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.js +86 -30
  529. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.js.map +1 -1
  530. package/node_modules/@murphai/operator-config/dist/device-daemon/paths.d.ts.map +1 -1
  531. package/node_modules/@murphai/operator-config/dist/device-daemon/paths.js +43 -5
  532. package/node_modules/@murphai/operator-config/dist/device-daemon/paths.js.map +1 -1
  533. package/node_modules/@murphai/operator-config/dist/device-sync-client.d.ts +1 -22
  534. package/node_modules/@murphai/operator-config/dist/device-sync-client.d.ts.map +1 -1
  535. package/node_modules/@murphai/operator-config/dist/device-sync-client.js.map +1 -1
  536. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config.d.ts +2 -0
  537. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config.d.ts.map +1 -1
  538. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config.js +50 -5
  539. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config.js.map +1 -1
  540. package/node_modules/@murphai/operator-config/dist/index.d.ts +0 -1
  541. package/node_modules/@murphai/operator-config/dist/index.d.ts.map +1 -1
  542. package/node_modules/@murphai/operator-config/dist/index.js +0 -1
  543. package/node_modules/@murphai/operator-config/dist/index.js.map +1 -1
  544. package/node_modules/@murphai/operator-config/dist/operator-config.d.ts +53 -1
  545. package/node_modules/@murphai/operator-config/dist/operator-config.d.ts.map +1 -1
  546. package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.d.ts +40 -2
  547. package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.d.ts.map +1 -1
  548. package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.js +2 -1
  549. package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.js.map +1 -1
  550. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.d.ts +53 -33
  551. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.d.ts.map +1 -1
  552. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.js +26 -42
  553. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.js.map +1 -1
  554. package/node_modules/@murphai/operator-config/package.json +12 -7
  555. package/node_modules/@murphai/parsers/dist/shared.d.ts +1 -0
  556. package/node_modules/@murphai/parsers/dist/shared.d.ts.map +1 -1
  557. package/node_modules/@murphai/parsers/dist/shared.js +44 -3
  558. package/node_modules/@murphai/parsers/dist/shared.js.map +1 -1
  559. package/node_modules/@murphai/query/README.md +2 -0
  560. package/node_modules/@murphai/query/dist/automation.d.ts +1 -1
  561. package/node_modules/@murphai/query/dist/automation.d.ts.map +1 -1
  562. package/node_modules/@murphai/query/dist/automation.js +7 -8
  563. package/node_modules/@murphai/query/dist/automation.js.map +1 -1
  564. package/node_modules/@murphai/query/dist/entity-families.d.ts +2 -0
  565. package/node_modules/@murphai/query/dist/entity-families.d.ts.map +1 -0
  566. package/node_modules/@murphai/query/dist/entity-families.js +20 -0
  567. package/node_modules/@murphai/query/dist/entity-families.js.map +1 -0
  568. package/node_modules/@murphai/query/dist/health/bank-registry-query-metadata.d.ts +1 -3
  569. package/node_modules/@murphai/query/dist/health/bank-registry-query-metadata.d.ts.map +1 -1
  570. package/node_modules/@murphai/query/dist/health/bank-registry-query-metadata.js +1 -4
  571. package/node_modules/@murphai/query/dist/health/bank-registry-query-metadata.js.map +1 -1
  572. package/node_modules/@murphai/query/dist/health/registries.d.ts +6 -1
  573. package/node_modules/@murphai/query/dist/health/registries.d.ts.map +1 -1
  574. package/node_modules/@murphai/query/dist/health/registries.js.map +1 -1
  575. package/node_modules/@murphai/query/dist/index.d.ts +5 -2
  576. package/node_modules/@murphai/query/dist/index.d.ts.map +1 -1
  577. package/node_modules/@murphai/query/dist/index.js +4 -2
  578. package/node_modules/@murphai/query/dist/index.js.map +1 -1
  579. package/node_modules/@murphai/query/dist/knowledge-contracts.d.ts +1 -1
  580. package/node_modules/@murphai/query/dist/knowledge-contracts.d.ts.map +1 -1
  581. package/node_modules/@murphai/query/dist/knowledge-graph.d.ts +0 -29
  582. package/node_modules/@murphai/query/dist/knowledge-graph.d.ts.map +1 -1
  583. package/node_modules/@murphai/query/dist/knowledge-graph.js +1 -7
  584. package/node_modules/@murphai/query/dist/knowledge-graph.js.map +1 -1
  585. package/node_modules/@murphai/query/dist/knowledge-search.d.ts +29 -1
  586. package/node_modules/@murphai/query/dist/knowledge-search.d.ts.map +1 -1
  587. package/node_modules/@murphai/query/dist/knowledge-search.js +5 -0
  588. package/node_modules/@murphai/query/dist/knowledge-search.js.map +1 -1
  589. package/node_modules/@murphai/query/dist/meal-nutrition.d.ts +31 -0
  590. package/node_modules/@murphai/query/dist/meal-nutrition.d.ts.map +1 -0
  591. package/node_modules/@murphai/query/dist/meal-nutrition.js +127 -0
  592. package/node_modules/@murphai/query/dist/meal-nutrition.js.map +1 -0
  593. package/node_modules/@murphai/query/dist/model.d.ts +0 -1
  594. package/node_modules/@murphai/query/dist/model.d.ts.map +1 -1
  595. package/node_modules/@murphai/query/dist/model.js +1 -19
  596. package/node_modules/@murphai/query/dist/model.js.map +1 -1
  597. package/node_modules/@murphai/query/package.json +6 -1
  598. package/node_modules/@murphai/runtime-state/README.md +2 -1
  599. package/node_modules/@murphai/runtime-state/dist/assistant-ids.d.ts +3 -0
  600. package/node_modules/@murphai/runtime-state/dist/assistant-ids.d.ts.map +1 -0
  601. package/node_modules/@murphai/runtime-state/dist/assistant-ids.js +14 -0
  602. package/node_modules/@murphai/runtime-state/dist/assistant-ids.js.map +1 -0
  603. package/node_modules/@murphai/runtime-state/dist/assistant-usage.d.ts +0 -4
  604. package/node_modules/@murphai/runtime-state/dist/assistant-usage.d.ts.map +1 -1
  605. package/node_modules/@murphai/runtime-state/dist/assistant-usage.js +0 -4
  606. package/node_modules/@murphai/runtime-state/dist/assistant-usage.js.map +1 -1
  607. package/node_modules/@murphai/runtime-state/dist/hosted-bundle.d.ts +1 -1
  608. package/node_modules/@murphai/runtime-state/dist/hosted-bundle.js +1 -1
  609. package/node_modules/@murphai/runtime-state/dist/hosted-user-keys.d.ts +1 -1
  610. package/node_modules/@murphai/runtime-state/dist/hosted-user-keys.js +1 -1
  611. package/node_modules/@murphai/runtime-state/dist/local-state-files.d.ts.map +1 -1
  612. package/node_modules/@murphai/runtime-state/dist/local-state-files.js +20 -8
  613. package/node_modules/@murphai/runtime-state/dist/local-state-files.js.map +1 -1
  614. package/node_modules/@murphai/runtime-state/dist/locks.d.ts.map +1 -1
  615. package/node_modules/@murphai/runtime-state/dist/locks.js +234 -87
  616. package/node_modules/@murphai/runtime-state/dist/locks.js.map +1 -1
  617. package/node_modules/@murphai/runtime-state/dist/loopback-control-plane.d.ts +19 -0
  618. package/node_modules/@murphai/runtime-state/dist/loopback-control-plane.d.ts.map +1 -1
  619. package/node_modules/@murphai/runtime-state/dist/loopback-control-plane.js +106 -9
  620. package/node_modules/@murphai/runtime-state/dist/loopback-control-plane.js.map +1 -1
  621. package/node_modules/@murphai/runtime-state/dist/node/index.d.ts +1 -0
  622. package/node_modules/@murphai/runtime-state/dist/node/index.d.ts.map +1 -1
  623. package/node_modules/@murphai/runtime-state/dist/node/index.js +1 -0
  624. package/node_modules/@murphai/runtime-state/dist/node/index.js.map +1 -1
  625. package/node_modules/@murphai/runtime-state/dist/node/loopback-control-plane-auth.d.ts +3 -0
  626. package/node_modules/@murphai/runtime-state/dist/node/loopback-control-plane-auth.d.ts.map +1 -0
  627. package/node_modules/@murphai/runtime-state/dist/node/loopback-control-plane-auth.js +20 -0
  628. package/node_modules/@murphai/runtime-state/dist/node/loopback-control-plane-auth.js.map +1 -0
  629. package/node_modules/@murphai/runtime-state/package.json +4 -0
  630. package/node_modules/@murphai/setup-cli/dist/setup-assistant-defaults.d.ts.map +1 -1
  631. package/node_modules/@murphai/setup-cli/dist/setup-assistant-defaults.js +2 -0
  632. package/node_modules/@murphai/setup-cli/dist/setup-assistant-defaults.js.map +1 -1
  633. package/node_modules/@murphai/setup-cli/dist/setup-assistant.d.ts.map +1 -1
  634. package/node_modules/@murphai/setup-cli/dist/setup-assistant.js +34 -14
  635. package/node_modules/@murphai/setup-cli/dist/setup-assistant.js.map +1 -1
  636. package/node_modules/@murphai/setup-cli/dist/setup-cli.d.ts.map +1 -1
  637. package/node_modules/@murphai/setup-cli/dist/setup-cli.js +8 -17
  638. package/node_modules/@murphai/setup-cli/dist/setup-cli.js.map +1 -1
  639. package/node_modules/@murphai/setup-cli/dist/setup-services/channels.d.ts.map +1 -1
  640. package/node_modules/@murphai/setup-cli/dist/setup-services/channels.js +30 -97
  641. package/node_modules/@murphai/setup-cli/dist/setup-services/channels.js.map +1 -1
  642. package/node_modules/@murphai/setup-cli/dist/setup-services/operator-defaults.d.ts +27 -0
  643. package/node_modules/@murphai/setup-cli/dist/setup-services/operator-defaults.d.ts.map +1 -0
  644. package/node_modules/@murphai/setup-cli/dist/setup-services/operator-defaults.js +92 -0
  645. package/node_modules/@murphai/setup-cli/dist/setup-services/operator-defaults.js.map +1 -0
  646. package/node_modules/@murphai/setup-cli/dist/setup-services/tool-provisioning.d.ts +29 -0
  647. package/node_modules/@murphai/setup-cli/dist/setup-services/tool-provisioning.d.ts.map +1 -0
  648. package/node_modules/@murphai/setup-cli/dist/setup-services/tool-provisioning.js +306 -0
  649. package/node_modules/@murphai/setup-cli/dist/setup-services/tool-provisioning.js.map +1 -0
  650. package/node_modules/@murphai/setup-cli/dist/setup-services.d.ts.map +1 -1
  651. package/node_modules/@murphai/setup-cli/dist/setup-services.js +27 -406
  652. package/node_modules/@murphai/setup-cli/dist/setup-services.js.map +1 -1
  653. package/node_modules/@murphai/vault-usecases/dist/commands/query-record-command-helpers.d.ts +11 -1
  654. package/node_modules/@murphai/vault-usecases/dist/commands/query-record-command-helpers.d.ts.map +1 -1
  655. package/node_modules/@murphai/vault-usecases/dist/commands/query-record-command-helpers.js +18 -3
  656. package/node_modules/@murphai/vault-usecases/dist/commands/query-record-command-helpers.js.map +1 -1
  657. package/node_modules/@murphai/vault-usecases/dist/health-cli-descriptors.d.ts +5 -5
  658. package/node_modules/@murphai/vault-usecases/dist/health-cli-method-types.d.ts +2 -2
  659. package/node_modules/@murphai/vault-usecases/dist/health-cli-method-types.d.ts.map +1 -1
  660. package/node_modules/@murphai/vault-usecases/dist/query-runtime.d.ts +10 -3
  661. package/node_modules/@murphai/vault-usecases/dist/query-runtime.d.ts.map +1 -1
  662. package/node_modules/@murphai/vault-usecases/dist/query-runtime.js +1 -2
  663. package/node_modules/@murphai/vault-usecases/dist/query-runtime.js.map +1 -1
  664. package/node_modules/@murphai/vault-usecases/dist/runtime.d.ts +1 -1
  665. package/node_modules/@murphai/vault-usecases/dist/runtime.d.ts.map +1 -1
  666. package/node_modules/@murphai/vault-usecases/dist/runtime.js +1 -1
  667. package/node_modules/@murphai/vault-usecases/dist/runtime.js.map +1 -1
  668. package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.d.ts +5 -5
  669. package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.d.ts.map +1 -1
  670. package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.js +5 -2
  671. package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.js.map +1 -1
  672. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.d.ts +2 -36
  673. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.d.ts.map +1 -1
  674. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.js +15 -3
  675. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.js.map +1 -1
  676. package/node_modules/@murphai/vault-usecases/dist/usecases/explicit-health-family-services.d.ts.map +1 -1
  677. package/node_modules/@murphai/vault-usecases/dist/usecases/explicit-health-family-services.js +86 -5
  678. package/node_modules/@murphai/vault-usecases/dist/usecases/explicit-health-family-services.js.map +1 -1
  679. package/node_modules/@murphai/vault-usecases/dist/usecases/food.d.ts +50 -26
  680. package/node_modules/@murphai/vault-usecases/dist/usecases/food.d.ts.map +1 -1
  681. package/node_modules/@murphai/vault-usecases/dist/usecases/food.js +23 -7
  682. package/node_modules/@murphai/vault-usecases/dist/usecases/food.js.map +1 -1
  683. package/node_modules/@murphai/vault-usecases/dist/usecases/integrated-services.d.ts.map +1 -1
  684. package/node_modules/@murphai/vault-usecases/dist/usecases/integrated-services.js +21 -2
  685. package/node_modules/@murphai/vault-usecases/dist/usecases/integrated-services.js.map +1 -1
  686. package/node_modules/@murphai/vault-usecases/dist/usecases/intervention.d.ts +2 -1
  687. package/node_modules/@murphai/vault-usecases/dist/usecases/intervention.d.ts.map +1 -1
  688. package/node_modules/@murphai/vault-usecases/dist/usecases/intervention.js.map +1 -1
  689. package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.d.ts +2 -34
  690. package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.d.ts.map +1 -1
  691. package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.js +18 -4
  692. package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.js.map +1 -1
  693. package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.d.ts +1 -14
  694. package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.d.ts.map +1 -1
  695. package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.js +3 -3
  696. package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.js.map +1 -1
  697. package/node_modules/@murphai/vault-usecases/dist/usecases/shared.d.ts +10 -11
  698. package/node_modules/@murphai/vault-usecases/dist/usecases/shared.d.ts.map +1 -1
  699. package/node_modules/@murphai/vault-usecases/dist/usecases/shared.js +44 -2
  700. package/node_modules/@murphai/vault-usecases/dist/usecases/shared.js.map +1 -1
  701. package/node_modules/@murphai/vault-usecases/dist/usecases/types.d.ts +30 -9
  702. package/node_modules/@murphai/vault-usecases/dist/usecases/types.d.ts.map +1 -1
  703. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-format.d.ts +1 -44
  704. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-format.d.ts.map +1 -1
  705. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-format.js +28 -2
  706. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-format.js.map +1 -1
  707. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-measurement.d.ts +2 -2
  708. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-measurement.d.ts.map +1 -1
  709. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-measurement.js.map +1 -1
  710. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.d.ts +5 -5
  711. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.d.ts.map +1 -1
  712. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.js +5 -2
  713. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.js.map +1 -1
  714. package/node_modules/@murphai/vault-usecases/dist/usecases/workout.d.ts +2 -2
  715. package/node_modules/@murphai/vault-usecases/dist/usecases/workout.d.ts.map +1 -1
  716. package/node_modules/@murphai/vault-usecases/dist/usecases/workout.js +73 -1
  717. package/node_modules/@murphai/vault-usecases/dist/usecases/workout.js.map +1 -1
  718. package/node_modules/@murphai/vault-usecases/package.json +1 -1
  719. package/package.json +4 -4
  720. package/dist/knowledge-cli-contracts.d.ts +0 -3
  721. package/dist/knowledge-cli-contracts.d.ts.map +0 -1
  722. package/dist/knowledge-cli-contracts.js +0 -2
  723. package/dist/knowledge-cli-contracts.js.map +0 -1
  724. package/dist/runner-vault-cli-bin.d.ts +0 -3
  725. package/dist/runner-vault-cli-bin.d.ts.map +0 -1
  726. package/dist/runner-vault-cli-bin.js +0 -8
  727. package/dist/runner-vault-cli-bin.js.map +0 -1
  728. package/dist/runner-vault-cli-command-manifest.d.ts +0 -9
  729. package/dist/runner-vault-cli-command-manifest.d.ts.map +0 -1
  730. package/dist/runner-vault-cli-command-manifest.js +0 -71
  731. package/dist/runner-vault-cli-command-manifest.js.map +0 -1
  732. package/dist/runner-vault-cli.d.ts +0 -10
  733. package/dist/runner-vault-cli.d.ts.map +0 -1
  734. package/dist/runner-vault-cli.js +0 -22
  735. package/dist/runner-vault-cli.js.map +0 -1
  736. package/node_modules/@murphai/assistant-engine/dist/knowledge/contracts.d.ts +0 -2
  737. package/node_modules/@murphai/assistant-engine/dist/knowledge/contracts.d.ts.map +0 -1
  738. package/node_modules/@murphai/assistant-engine/dist/knowledge/contracts.js +0 -2
  739. package/node_modules/@murphai/assistant-engine/dist/knowledge/contracts.js.map +0 -1
  740. package/node_modules/@murphai/assistant-engine/dist/mapbox-route.d.ts +0 -142
  741. package/node_modules/@murphai/assistant-engine/dist/mapbox-route.d.ts.map +0 -1
  742. package/node_modules/@murphai/assistant-engine/dist/mapbox-route.js +0 -670
  743. package/node_modules/@murphai/assistant-engine/dist/mapbox-route.js.map +0 -1
  744. package/node_modules/@murphai/core/dist/storage-spine.d.ts +0 -3
  745. package/node_modules/@murphai/core/dist/storage-spine.d.ts.map +0 -1
  746. package/node_modules/@murphai/core/dist/storage-spine.js +0 -3
  747. package/node_modules/@murphai/core/dist/storage-spine.js.map +0 -1
  748. package/node_modules/@murphai/operator-config/dist/assistant/state-ids.d.ts +0 -2
  749. package/node_modules/@murphai/operator-config/dist/assistant/state-ids.d.ts.map +0 -1
  750. package/node_modules/@murphai/operator-config/dist/assistant/state-ids.js +0 -7
  751. package/node_modules/@murphai/operator-config/dist/assistant/state-ids.js.map +0 -1
  752. package/node_modules/@murphai/operator-config/dist/knowledge-contracts.d.ts +0 -86
  753. package/node_modules/@murphai/operator-config/dist/knowledge-contracts.d.ts.map +0 -1
  754. package/node_modules/@murphai/operator-config/dist/knowledge-contracts.js +0 -2
  755. package/node_modules/@murphai/operator-config/dist/knowledge-contracts.js.map +0 -1
  756. package/node_modules/@murphai/query/dist/health/health-registry-query-metadata.d.ts +0 -3
  757. package/node_modules/@murphai/query/dist/health/health-registry-query-metadata.d.ts.map +0 -1
  758. package/node_modules/@murphai/query/dist/health/health-registry-query-metadata.js +0 -2
  759. package/node_modules/@murphai/query/dist/health/health-registry-query-metadata.js.map +0 -1
@@ -1,54 +1,13 @@
1
- import { lookup } from 'node:dns/promises';
2
- import { request as requestHttp } from 'node:http';
3
- import { request as requestHttps } from 'node:https';
4
- import { BlockList, isIP } from 'node:net';
5
- import { Readable } from 'node:stream';
6
- import { urlToHttpOptions } from 'node:url';
7
- import { createBrotliDecompress, createUnzip } from 'node:zlib';
8
- import { Readability } from '@mozilla/readability';
9
- import { DOMParser } from 'linkedom';
10
1
  import { createTimeoutAbortController } from '@murphai/operator-config/http-retry';
11
2
  import { VaultCliError } from '@murphai/operator-config/vault-cli-errors';
12
- import { errorMessage, normalizeNullableString, } from './shared.js';
13
- export const assistantWebFetchExtractModeValues = [
14
- 'markdown',
15
- 'text',
16
- ];
17
- export const assistantWebFetchEnvKeys = [
18
- 'MURPH_WEB_FETCH_ENABLED',
19
- 'MURPH_WEB_FETCH_MAX_CHARS',
20
- 'MURPH_WEB_FETCH_MAX_RESPONSE_BYTES',
21
- 'MURPH_WEB_FETCH_TIMEOUT_MS',
22
- 'MURPH_WEB_FETCH_MAX_REDIRECTS',
23
- ];
24
- const ASSISTANT_WEB_FETCH_DEFAULT_MAX_CHARS = 12_000;
25
- const ASSISTANT_WEB_FETCH_MAX_CHARS = 40_000;
26
- const ASSISTANT_WEB_FETCH_DEFAULT_MAX_RESPONSE_BYTES = 1_000_000;
27
- const ASSISTANT_WEB_FETCH_MAX_RESPONSE_BYTES = 5_000_000;
28
- const ASSISTANT_WEB_FETCH_DEFAULT_TIMEOUT_MS = 15_000;
29
- const ASSISTANT_WEB_FETCH_MIN_TIMEOUT_MS = 1_000;
30
- const ASSISTANT_WEB_FETCH_MAX_TIMEOUT_MS = 60_000;
31
- const ASSISTANT_WEB_FETCH_DEFAULT_MAX_REDIRECTS = 5;
32
- const ASSISTANT_WEB_FETCH_MAX_REDIRECTS = 10;
33
- const ASSISTANT_WEB_FETCH_BLOCKED_HOSTNAMES = [
34
- 'home.arpa',
35
- 'localhost',
36
- 'localhost.localdomain',
37
- ];
38
- const ASSISTANT_WEB_FETCH_DEFAULT_ACCEPT_HEADER = 'text/html, application/xhtml+xml, application/json, text/plain;q=0.9, */*;q=0.1';
39
- const ASSISTANT_WEB_FETCH_TEXT_NODE = 3;
40
- const ASSISTANT_WEB_FETCH_ELEMENT_NODE = 1;
41
- const assistantWebFetchBlockedAddressList = createAssistantWebFetchBlockedAddressList();
42
- export function resolveAssistantWebFetchEnabled(env = process.env) {
43
- if (typeof globalThis.Headers !== 'function' || typeof globalThis.Response !== 'function') {
44
- return false;
45
- }
46
- const raw = normalizeNullableString(env.MURPH_WEB_FETCH_ENABLED);
47
- if (!raw) {
48
- return false;
49
- }
50
- return ['1', 'true', 'yes', 'on', 'enabled'].includes(raw.toLowerCase());
51
- }
3
+ import { normalizeNullableString } from './shared.js';
4
+ import { createAssistantWebFetchRuntimeContext, normalizeAssistantWebRequestUrl, resolveAssistantWebFetchMaxChars, } from './web-fetch/config.js';
5
+ import { fetchAssistantWebResponse, redactAssistantWebFetchUrl, } from './web-fetch/network.js';
6
+ import { extractAssistantWebResponse, resolveAssistantWebMediaType, } from './web-fetch/content.js';
7
+ export { assistantWebFetchEnvKeys, assistantWebFetchExtractModeValues, createAssistantWebFetchRuntimeContext, normalizeAssistantWebHostname, normalizeAssistantWebRequestUrl, resolveAssistantWebFetchEnabled, resolveAssistantWebFetchMaxChars, } from './web-fetch/config.js';
8
+ export { fetchAssistantWebResponse, redactAssistantWebFetchUrl, } from './web-fetch/network.js';
9
+ export { readAssistantWebResponseBytes, readAssistantWebResponseText, } from './web-fetch/response.js';
10
+ export { resolveAssistantWebMediaType, truncateAssistantWebText, } from './web-fetch/content.js';
52
11
  export async function fetchAssistantWeb(request, env = process.env) {
53
12
  const normalizedRequest = normalizeAssistantWebFetchRequest(request, env);
54
13
  const runtime = createAssistantWebFetchRuntimeContext(env);
@@ -64,6 +23,7 @@ export async function fetchAssistantWeb(request, env = process.env) {
64
23
  const extracted = await extractAssistantWebResponse({
65
24
  contentType,
66
25
  extractMode: normalizedRequest.extractMode,
26
+ finalUrl: fetched.finalUrl,
67
27
  maxChars: normalizedRequest.maxChars,
68
28
  maxResponseBytes: runtime.maxResponseBytes,
69
29
  response: fetched.response,
@@ -105,21 +65,16 @@ function normalizeAssistantWebFetchRequest(request, env) {
105
65
  }
106
66
  let parsedUrl;
107
67
  try {
108
- parsedUrl = new URL(url);
68
+ parsedUrl = normalizeAssistantWebRequestUrl(url);
109
69
  }
110
70
  catch {
111
71
  throw new VaultCliError('WEB_FETCH_URL_INVALID', 'web.fetch requires a valid absolute URL.');
112
72
  }
113
- parsedUrl.hash = '';
114
- const normalizedHostname = normalizeAssistantWebHostname(parsedUrl.hostname);
115
- if (normalizedHostname) {
116
- parsedUrl.hostname = normalizedHostname;
117
- }
118
73
  const extractMode = isAssistantWebFetchExtractMode(request.extractMode)
119
74
  ? request.extractMode
120
75
  : 'markdown';
121
76
  const configuredMaxChars = resolveAssistantWebFetchMaxChars(env);
122
- const maxChars = Math.max(1, Math.min(Math.trunc(request.maxChars ?? configuredMaxChars), configuredMaxChars, ASSISTANT_WEB_FETCH_MAX_CHARS));
77
+ const maxChars = Math.max(1, Math.min(Math.trunc(request.maxChars ?? configuredMaxChars), configuredMaxChars));
123
78
  return {
124
79
  url: parsedUrl,
125
80
  extractMode,
@@ -127,810 +82,7 @@ function normalizeAssistantWebFetchRequest(request, env) {
127
82
  signal: request.signal,
128
83
  };
129
84
  }
130
- export function createAssistantWebFetchRuntimeContext(env) {
131
- if (!resolveAssistantWebFetchEnabled(env)) {
132
- throw new VaultCliError('WEB_FETCH_DISABLED', 'web.fetch is disabled in this runtime.');
133
- }
134
- return {
135
- lookupImplementation: lookup,
136
- timeoutMs: resolveAssistantWebFetchTimeoutMs(env),
137
- maxResponseBytes: resolveAssistantWebFetchMaxResponseBytes(env),
138
- maxRedirects: resolveAssistantWebFetchMaxRedirects(env),
139
- };
140
- }
141
- export async function fetchAssistantWebResponse(input) {
142
- let currentUrl = input.url;
143
- const warnings = [];
144
- for (let redirectCount = 0;; redirectCount += 1) {
145
- const resolvedTarget = await resolveAssistantWebPublicTarget(currentUrl, input.runtime.lookupImplementation, input.toolName);
146
- let response;
147
- try {
148
- response = await requestAssistantWebResponseAtPublicTarget({
149
- acceptHeader: input.acceptHeader ?? ASSISTANT_WEB_FETCH_DEFAULT_ACCEPT_HEADER,
150
- resolvedTarget,
151
- signal: input.signal,
152
- url: currentUrl,
153
- });
154
- }
155
- catch (error) {
156
- throw new VaultCliError('WEB_FETCH_REQUEST_FAILED', `${input.toolName} could not reach ${redactAssistantWebFetchUrl(currentUrl)}: ${errorMessage(error)}`);
157
- }
158
- if (!isAssistantWebRedirectStatus(response.status)) {
159
- return {
160
- finalUrl: currentUrl,
161
- response,
162
- warnings,
163
- };
164
- }
165
- const location = normalizeNullableString(response.headers.get('location'));
166
- if (!location) {
167
- await cancelAssistantWebResponseBody(response);
168
- throw new VaultCliError('WEB_FETCH_REDIRECT_INVALID', `${input.toolName} received HTTP ${response.status} without a redirect location.`);
169
- }
170
- if (redirectCount >= input.runtime.maxRedirects) {
171
- await cancelAssistantWebResponseBody(response);
172
- throw new VaultCliError('WEB_FETCH_REDIRECT_LIMIT', `${input.toolName} followed too many redirects (>${input.runtime.maxRedirects}).`);
173
- }
174
- const nextUrl = new URL(location, currentUrl);
175
- nextUrl.hash = '';
176
- warnings.push(`Followed redirect ${redirectCount + 1} to ${redactAssistantWebFetchUrl(nextUrl)}.`);
177
- await cancelAssistantWebResponseBody(response);
178
- currentUrl = nextUrl;
179
- }
180
- }
181
- async function resolveAssistantWebPublicTarget(candidateUrl, lookupImplementation, toolName) {
182
- const protocol = candidateUrl.protocol.toLowerCase();
183
- if (protocol !== 'http:' && protocol !== 'https:') {
184
- throw new VaultCliError('WEB_FETCH_URL_UNSUPPORTED_SCHEME', `${toolName} only supports http:// and https:// URLs.`);
185
- }
186
- if (candidateUrl.username || candidateUrl.password) {
187
- throw new VaultCliError('WEB_FETCH_URL_CREDENTIALS_FORBIDDEN', `${toolName} does not allow credentials in URLs.`);
188
- }
189
- const hostname = normalizeAssistantWebHostname(candidateUrl.hostname);
190
- if (!hostname) {
191
- throw new VaultCliError('WEB_FETCH_HOST_INVALID', `${toolName} requires a URL with a hostname.`);
192
- }
193
- if (isAssistantWebBlockedHostname(hostname)) {
194
- throw new VaultCliError('WEB_FETCH_PRIVATE_HOST_BLOCKED', `${toolName} blocked ${hostname} because private or loopback hosts are not allowed.`);
195
- }
196
- const hostAddressFamily = isIP(hostname);
197
- if (hostAddressFamily !== 0) {
198
- if (isAssistantWebBlockedIpAddress(hostname, hostAddressFamily)) {
199
- throw new VaultCliError('WEB_FETCH_PRIVATE_HOST_BLOCKED', `${toolName} blocked ${hostname} because private or loopback hosts are not allowed.`);
200
- }
201
- return {
202
- hostname,
203
- addresses: [
204
- {
205
- address: hostname,
206
- family: hostAddressFamily,
207
- },
208
- ],
209
- };
210
- }
211
- let resolvedAddresses;
212
- try {
213
- resolvedAddresses = await lookupAllAssistantWebAddresses(lookupImplementation, hostname);
214
- }
215
- catch (error) {
216
- throw new VaultCliError('WEB_FETCH_DNS_LOOKUP_FAILED', `${toolName} could not resolve ${hostname}: ${errorMessage(error)}`);
217
- }
218
- if (resolvedAddresses.length === 0) {
219
- throw new VaultCliError('WEB_FETCH_DNS_LOOKUP_FAILED', `${toolName} could not resolve ${hostname} to any IP address.`);
220
- }
221
- for (const address of resolvedAddresses) {
222
- if (isAssistantWebBlockedIpAddress(address.address, address.family)) {
223
- throw new VaultCliError('WEB_FETCH_PRIVATE_HOST_BLOCKED', `${toolName} blocked ${hostname} because it resolved to a private or loopback address.`);
224
- }
225
- }
226
- return {
227
- hostname,
228
- addresses: resolvedAddresses,
229
- };
230
- }
231
- async function extractAssistantWebResponse(input) {
232
- if (input.contentType === 'application/pdf') {
233
- await cancelAssistantWebResponseBody(input.response);
234
- throw new VaultCliError('WEB_FETCH_PDF_UNSUPPORTED', 'web.fetch does not parse PDFs. Use web.pdf.read for PDF content.');
235
- }
236
- if (isAssistantWebLikelyBinaryContentType(input.contentType)) {
237
- await cancelAssistantWebResponseBody(input.response);
238
- throw new VaultCliError('WEB_FETCH_CONTENT_TYPE_UNSUPPORTED', `web.fetch cannot extract readable text from ${input.contentType}.`);
239
- }
240
- const responseText = await readAssistantWebResponseText({
241
- response: input.response,
242
- maxResponseBytes: input.maxResponseBytes,
243
- });
244
- const warnings = [...responseText.warnings];
245
- let title = null;
246
- let text = responseText.text;
247
- let extractor = 'raw-text';
248
- if (isAssistantWebHtmlContentType(input.contentType)) {
249
- const extractedHtml = extractAssistantWebHtml({
250
- extractMode: input.extractMode,
251
- html: responseText.text,
252
- });
253
- title = extractedHtml.title;
254
- text = extractedHtml.text;
255
- extractor = extractedHtml.extractor;
256
- warnings.push(...extractedHtml.warnings);
257
- }
258
- else if (isAssistantWebJsonContentType(input.contentType)) {
259
- extractor = 'json';
260
- const normalizedJson = normalizeAssistantWebJsonText(responseText.text);
261
- text = normalizedJson.text;
262
- warnings.push(...normalizedJson.warnings);
263
- }
264
- const truncated = responseText.truncated;
265
- const bounded = truncateAssistantWebText(text, input.maxChars);
266
- if (bounded.truncated) {
267
- warnings.push(`Trimmed extracted content to ${input.maxChars} characters for model safety.`);
268
- }
269
- return {
270
- extractor,
271
- title,
272
- text: bounded.text,
273
- truncated: truncated || bounded.truncated,
274
- warnings,
275
- };
276
- }
277
- async function readAssistantWebResponseText(input) {
278
- const body = await readAssistantWebResponseBytes(input);
279
- const decoder = new TextDecoder();
280
- return {
281
- text: decoder.decode(body.bytes),
282
- truncated: body.truncated,
283
- warnings: body.warnings,
284
- };
285
- }
286
- export async function readAssistantWebResponseBytes(input) {
287
- const warnings = [];
288
- const contentLength = parsePositiveInteger(input.response.headers.get('content-length'));
289
- if (contentLength !== null &&
290
- contentLength > input.maxResponseBytes) {
291
- warnings.push(`Response declared ${contentLength} bytes; reading only the first ${input.maxResponseBytes} bytes.`);
292
- }
293
- if (!input.response.body) {
294
- return {
295
- bytes: new Uint8Array(),
296
- truncated: false,
297
- warnings,
298
- };
299
- }
300
- const reader = input.response.body.getReader();
301
- let totalBytes = 0;
302
- const chunks = [];
303
- let truncated = false;
304
- while (true) {
305
- const { done, value } = await reader.read();
306
- if (done) {
307
- break;
308
- }
309
- if (!value || value.length === 0) {
310
- continue;
311
- }
312
- const remainingBytes = input.maxResponseBytes - totalBytes;
313
- if (remainingBytes <= 0) {
314
- truncated = true;
315
- break;
316
- }
317
- const chunk = value.length > remainingBytes
318
- ? value.subarray(0, remainingBytes)
319
- : value;
320
- totalBytes += chunk.length;
321
- chunks.push(chunk);
322
- if (value.length > remainingBytes) {
323
- truncated = true;
324
- break;
325
- }
326
- }
327
- if (truncated) {
328
- warnings.push(`Response body exceeded ${input.maxResponseBytes} bytes and was truncated.`);
329
- try {
330
- await reader.cancel();
331
- }
332
- catch {
333
- // Ignore cancellation failures after truncation.
334
- }
335
- }
336
- return {
337
- bytes: concatAssistantWebResponseBytes(chunks, totalBytes),
338
- truncated,
339
- warnings,
340
- };
341
- }
342
- function extractAssistantWebHtml(input) {
343
- const document = parseAssistantHtmlDocument(input.html);
344
- const article = parseAssistantHtmlWithReadability(document);
345
- const warnings = [];
346
- if (article) {
347
- const articleText = normalizeAssistantText(article.textContent ?? '');
348
- const markdownText = normalizeAssistantMarkdown(renderAssistantHtmlToMarkdown(parseAssistantHtmlFragment(normalizeNullableString(article.content) ?? '')));
349
- if (input.extractMode === 'markdown' && markdownText.length === 0 && articleText.length > 0) {
350
- warnings.push('Readable article markdown conversion was empty; falling back to normalized article text.');
351
- }
352
- return {
353
- extractor: 'readability',
354
- title: normalizeNullableString(article.title) ??
355
- resolveAssistantHtmlDocumentTitle(document),
356
- text: input.extractMode === 'markdown'
357
- ? (markdownText || articleText)
358
- : articleText,
359
- warnings,
360
- };
361
- }
362
- warnings.push('Readable article extraction failed; falling back to a simpler HTML cleanup path.');
363
- const fallbackText = normalizeAssistantText(document.body?.textContent ?? '');
364
- const fallbackMarkdown = normalizeAssistantMarkdown(renderAssistantHtmlToMarkdown(document));
365
- if (input.extractMode === 'markdown' && fallbackMarkdown.length === 0 && fallbackText.length > 0) {
366
- warnings.push('Fallback HTML markdown conversion was empty; returning normalized page text instead.');
367
- }
368
- return {
369
- extractor: 'raw-html',
370
- title: resolveAssistantHtmlDocumentTitle(document),
371
- text: input.extractMode === 'markdown'
372
- ? (fallbackMarkdown || fallbackText)
373
- : fallbackText,
374
- warnings,
375
- };
376
- }
377
- function normalizeAssistantWebJsonText(input) {
378
- try {
379
- return {
380
- text: `${JSON.stringify(JSON.parse(input), null, 2)}\n`,
381
- warnings: [],
382
- };
383
- }
384
- catch {
385
- return {
386
- text: normalizeAssistantText(input),
387
- warnings: [
388
- 'Response declared JSON but could not be parsed cleanly; returning normalized text instead.',
389
- ],
390
- };
391
- }
392
- }
393
- function parseAssistantHtmlDocument(html) {
394
- const document = new DOMParser().parseFromString(html, 'text/html');
395
- for (const element of document.querySelectorAll('script, style, noscript, iframe, svg, canvas, form')) {
396
- element.remove();
397
- }
398
- return document;
399
- }
400
- function parseAssistantHtmlFragment(htmlFragment) {
401
- return parseAssistantHtmlDocument(`<!doctype html><html><body>${htmlFragment}</body></html>`);
402
- }
403
- function renderAssistantHtmlToMarkdown(document) {
404
- return normalizeAssistantMarkdown(renderAssistantNodeToMarkdown(document.body));
405
- }
406
- function renderAssistantNodeToMarkdown(node) {
407
- if (!node) {
408
- return '';
409
- }
410
- if (node.nodeType === ASSISTANT_WEB_FETCH_TEXT_NODE) {
411
- return escapeAssistantMarkdownText(node.textContent ?? '');
412
- }
413
- if (node.nodeType !== ASSISTANT_WEB_FETCH_ELEMENT_NODE) {
414
- return '';
415
- }
416
- const tagName = node.nodeName.toLowerCase();
417
- const childText = renderAssistantChildrenToMarkdown(node);
418
- switch (tagName) {
419
- case 'body':
420
- case 'main':
421
- case 'article':
422
- case 'section':
423
- case 'header':
424
- case 'footer':
425
- case 'nav':
426
- case 'aside':
427
- case 'div':
428
- return `${childText}\n\n`;
429
- case 'h1':
430
- case 'h2':
431
- case 'h3':
432
- case 'h4':
433
- case 'h5':
434
- case 'h6': {
435
- const level = Math.max(1, Math.min(Number(tagName.slice(1)) || 1, 6));
436
- const heading = normalizeAssistantText(childText);
437
- return heading ? `${'#'.repeat(level)} ${heading}\n\n` : '';
438
- }
439
- case 'p':
440
- return childText.trim() ? `${childText.trim()}\n\n` : '';
441
- case 'br':
442
- return '\n';
443
- case 'hr':
444
- return '\n---\n\n';
445
- case 'ul':
446
- case 'ol':
447
- return `${renderAssistantListToMarkdown(node, tagName === 'ol')}\n`;
448
- case 'li': {
449
- const text = normalizeAssistantMarkdownInline(childText);
450
- return text ? `${text}\n` : '';
451
- }
452
- case 'pre': {
453
- const code = normalizeTrailingWhitespace(node.textContent ?? '');
454
- return code ? `\n\`\`\`\n${code}\n\`\`\`\n\n` : '';
455
- }
456
- case 'code': {
457
- const text = normalizeAssistantText(node.textContent ?? '');
458
- return text ? `\`${text}\`` : '';
459
- }
460
- case 'a': {
461
- const text = normalizeAssistantMarkdownInline(childText);
462
- const href = normalizeNullableString(node.getAttribute?.('href') ?? null);
463
- if (!text) {
464
- return '';
465
- }
466
- if (!href) {
467
- return text;
468
- }
469
- return `[${text}](${href})`;
470
- }
471
- case 'strong':
472
- case 'b': {
473
- const text = normalizeAssistantMarkdownInline(childText);
474
- return text ? `**${text}**` : '';
475
- }
476
- case 'em':
477
- case 'i': {
478
- const text = normalizeAssistantMarkdownInline(childText);
479
- return text ? `_${text}_` : '';
480
- }
481
- case 'blockquote': {
482
- const lines = normalizeAssistantText(childText)
483
- .split('\n')
484
- .filter((line) => line.length > 0);
485
- return lines.length > 0
486
- ? `${lines.map((line) => `> ${line}`).join('\n')}\n\n`
487
- : '';
488
- }
489
- case 'table':
490
- return `${normalizeAssistantText(childText)}\n\n`;
491
- default:
492
- return childText;
493
- }
494
- }
495
- function renderAssistantChildrenToMarkdown(node) {
496
- if (!node.childNodes || node.childNodes.length === 0) {
497
- return '';
498
- }
499
- let markdown = '';
500
- for (const childNode of Array.from(node.childNodes)) {
501
- markdown += renderAssistantNodeToMarkdown(childNode);
502
- }
503
- return markdown;
504
- }
505
- function renderAssistantListToMarkdown(node, ordered) {
506
- if (!node.childNodes || node.childNodes.length === 0) {
507
- return '';
508
- }
509
- let markdown = '';
510
- let orderedListIndex = 1;
511
- for (const childNode of Array.from(node.childNodes)) {
512
- if (childNode.nodeType !== ASSISTANT_WEB_FETCH_ELEMENT_NODE) {
513
- continue;
514
- }
515
- if (childNode.nodeName.toLowerCase() !== 'li') {
516
- markdown += renderAssistantNodeToMarkdown(childNode);
517
- continue;
518
- }
519
- const itemText = normalizeAssistantMarkdownInline(renderAssistantChildrenToMarkdown(childNode));
520
- if (!itemText) {
521
- continue;
522
- }
523
- markdown += ordered
524
- ? `${orderedListIndex}. ${itemText}\n`
525
- : `- ${itemText}\n`;
526
- orderedListIndex += 1;
527
- }
528
- return markdown;
529
- }
530
- export function truncateAssistantWebText(input, maxChars) {
531
- if (input.length <= maxChars) {
532
- return {
533
- text: input,
534
- truncated: false,
535
- };
536
- }
537
- return {
538
- text: input.slice(0, maxChars).trimEnd(),
539
- truncated: true,
540
- };
541
- }
542
- function resolveAssistantWebFetchMaxChars(env) {
543
- return readAssistantBoundedIntegerEnv({
544
- env,
545
- key: 'MURPH_WEB_FETCH_MAX_CHARS',
546
- fallback: ASSISTANT_WEB_FETCH_DEFAULT_MAX_CHARS,
547
- min: 1,
548
- max: ASSISTANT_WEB_FETCH_MAX_CHARS,
549
- });
550
- }
551
- function resolveAssistantWebFetchMaxResponseBytes(env) {
552
- return readAssistantBoundedIntegerEnv({
553
- env,
554
- key: 'MURPH_WEB_FETCH_MAX_RESPONSE_BYTES',
555
- fallback: ASSISTANT_WEB_FETCH_DEFAULT_MAX_RESPONSE_BYTES,
556
- min: 16_384,
557
- max: ASSISTANT_WEB_FETCH_MAX_RESPONSE_BYTES,
558
- });
559
- }
560
- function resolveAssistantWebFetchTimeoutMs(env) {
561
- return readAssistantBoundedIntegerEnv({
562
- env,
563
- key: 'MURPH_WEB_FETCH_TIMEOUT_MS',
564
- fallback: ASSISTANT_WEB_FETCH_DEFAULT_TIMEOUT_MS,
565
- min: ASSISTANT_WEB_FETCH_MIN_TIMEOUT_MS,
566
- max: ASSISTANT_WEB_FETCH_MAX_TIMEOUT_MS,
567
- });
568
- }
569
- function resolveAssistantWebFetchMaxRedirects(env) {
570
- return readAssistantBoundedIntegerEnv({
571
- env,
572
- key: 'MURPH_WEB_FETCH_MAX_REDIRECTS',
573
- fallback: ASSISTANT_WEB_FETCH_DEFAULT_MAX_REDIRECTS,
574
- min: 0,
575
- max: ASSISTANT_WEB_FETCH_MAX_REDIRECTS,
576
- });
577
- }
578
- function readAssistantBoundedIntegerEnv(input) {
579
- const raw = normalizeNullableString(input.env[input.key]);
580
- if (!raw) {
581
- return input.fallback;
582
- }
583
- const numeric = Number(raw);
584
- if (!Number.isFinite(numeric)) {
585
- return input.fallback;
586
- }
587
- return Math.max(input.min, Math.min(Math.trunc(numeric), input.max));
588
- }
589
- export function resolveAssistantWebMediaType(contentType) {
590
- const normalized = normalizeNullableString(contentType);
591
- if (!normalized) {
592
- return null;
593
- }
594
- return normalized.split(';', 1)[0]?.trim().toLowerCase() ?? null;
595
- }
596
- function parsePositiveInteger(value) {
597
- const normalized = normalizeNullableString(value);
598
- if (!normalized) {
599
- return null;
600
- }
601
- const parsed = Number(normalized);
602
- if (!Number.isFinite(parsed) || parsed <= 0) {
603
- return null;
604
- }
605
- return Math.trunc(parsed);
606
- }
607
- function concatAssistantWebResponseBytes(chunks, totalBytes) {
608
- if (chunks.length === 0) {
609
- return new Uint8Array();
610
- }
611
- if (chunks.length === 1) {
612
- return chunks[0] ?? new Uint8Array();
613
- }
614
- const bytes = new Uint8Array(totalBytes);
615
- let offset = 0;
616
- for (const chunk of chunks) {
617
- bytes.set(chunk, offset);
618
- offset += chunk.length;
619
- }
620
- return bytes;
621
- }
622
- function isAssistantWebRedirectStatus(status) {
623
- return status === 301 ||
624
- status === 302 ||
625
- status === 303 ||
626
- status === 307 ||
627
- status === 308;
628
- }
629
85
  function isAssistantWebFetchExtractMode(value) {
630
86
  return value === 'markdown' || value === 'text';
631
87
  }
632
- function isAssistantWebHtmlContentType(contentType) {
633
- return contentType === 'text/html' || contentType === 'application/xhtml+xml';
634
- }
635
- function isAssistantWebJsonContentType(contentType) {
636
- return contentType === 'application/json' ||
637
- Boolean(contentType?.endsWith('+json'));
638
- }
639
- function isAssistantWebLikelyBinaryContentType(contentType) {
640
- if (!contentType) {
641
- return false;
642
- }
643
- if (contentType.startsWith('text/') ||
644
- isAssistantWebHtmlContentType(contentType) ||
645
- isAssistantWebJsonContentType(contentType) ||
646
- contentType === 'application/xml' ||
647
- contentType.endsWith('+xml') ||
648
- contentType === 'image/svg+xml') {
649
- return false;
650
- }
651
- return contentType.startsWith('image/') ||
652
- contentType.startsWith('audio/') ||
653
- contentType.startsWith('video/') ||
654
- contentType === 'application/octet-stream' ||
655
- contentType === 'application/pdf' ||
656
- contentType === 'application/zip';
657
- }
658
- function isAssistantWebBlockedHostname(hostname) {
659
- if (ASSISTANT_WEB_FETCH_BLOCKED_HOSTNAMES.some((blocked) => blocked === hostname)) {
660
- return true;
661
- }
662
- return hostname.endsWith('.localhost') ||
663
- hostname.endsWith('.local') ||
664
- hostname.endsWith('.home.arpa');
665
- }
666
- function isAssistantWebBlockedIpAddress(address, family) {
667
- if (family === 4) {
668
- return assistantWebFetchBlockedAddressList.check(address, 'ipv4');
669
- }
670
- if (family === 6) {
671
- const mappedIpv4 = resolveAssistantWebIpv4MappedAddress(address);
672
- if (mappedIpv4) {
673
- return assistantWebFetchBlockedAddressList.check(mappedIpv4, 'ipv4');
674
- }
675
- return assistantWebFetchBlockedAddressList.check(address, 'ipv6');
676
- }
677
- return false;
678
- }
679
- function normalizeAssistantWebHostname(value) {
680
- const normalized = normalizeNullableString(value)?.toLowerCase();
681
- if (!normalized) {
682
- return null;
683
- }
684
- const unwrapped = normalized.startsWith('[') && normalized.endsWith(']')
685
- ? normalized.slice(1, -1)
686
- : normalized;
687
- const trimmed = unwrapped.replace(/\.+$/u, '');
688
- return trimmed.length > 0 ? trimmed : null;
689
- }
690
- function resolveAssistantWebIpv4MappedAddress(address) {
691
- const normalized = address.toLowerCase();
692
- if (!normalized.startsWith('::ffff:')) {
693
- return null;
694
- }
695
- const suffix = normalized.slice('::ffff:'.length);
696
- if (isIP(suffix) === 4) {
697
- return suffix;
698
- }
699
- const parts = suffix.split(':');
700
- if (parts.length !== 2 ||
701
- !parts.every((part) => /^[0-9a-f]{1,4}$/u.test(part))) {
702
- return null;
703
- }
704
- const left = Number.parseInt(parts[0] ?? '', 16);
705
- const right = Number.parseInt(parts[1] ?? '', 16);
706
- if (!Number.isFinite(left) || !Number.isFinite(right)) {
707
- return null;
708
- }
709
- return [
710
- (left >> 8) & 0xff,
711
- left & 0xff,
712
- (right >> 8) & 0xff,
713
- right & 0xff,
714
- ].join('.');
715
- }
716
- function createAssistantWebFetchBlockedAddressList() {
717
- const blockList = new BlockList();
718
- blockList.addSubnet('0.0.0.0', 8);
719
- blockList.addSubnet('10.0.0.0', 8);
720
- blockList.addSubnet('100.64.0.0', 10);
721
- blockList.addSubnet('127.0.0.0', 8);
722
- blockList.addSubnet('169.254.0.0', 16);
723
- blockList.addSubnet('172.16.0.0', 12);
724
- blockList.addSubnet('192.0.0.0', 24);
725
- blockList.addSubnet('192.168.0.0', 16);
726
- blockList.addSubnet('198.18.0.0', 15);
727
- blockList.addSubnet('224.0.0.0', 4);
728
- blockList.addSubnet('240.0.0.0', 4);
729
- blockList.addSubnet('::', 128, 'ipv6');
730
- blockList.addSubnet('::ffff:0:0', 96, 'ipv6');
731
- blockList.addSubnet('::1', 128, 'ipv6');
732
- blockList.addSubnet('fc00::', 7, 'ipv6');
733
- blockList.addSubnet('fe80::', 10, 'ipv6');
734
- blockList.addSubnet('ff00::', 8, 'ipv6');
735
- return blockList;
736
- }
737
- export function redactAssistantWebFetchUrl(url) {
738
- return `${url.origin}${url.pathname}`;
739
- }
740
- async function requestAssistantWebResponseAtPublicTarget(input) {
741
- const failures = [];
742
- for (const address of input.resolvedTarget.addresses) {
743
- try {
744
- return await requestAssistantWebResponseAtAddress({
745
- acceptHeader: input.acceptHeader,
746
- address,
747
- hostname: input.resolvedTarget.hostname,
748
- signal: input.signal,
749
- url: input.url,
750
- });
751
- }
752
- catch (error) {
753
- if (input.signal.aborted || isAssistantWebAbortError(error)) {
754
- throw error;
755
- }
756
- failures.push(errorMessage(error));
757
- }
758
- }
759
- throw new Error(failures.length > 0
760
- ? `All vetted public addresses failed: ${failures.join('; ')}`
761
- : 'All vetted public addresses failed.');
762
- }
763
- async function requestAssistantWebResponseAtAddress(input) {
764
- const options = {
765
- ...urlToHttpOptions(input.url),
766
- method: 'GET',
767
- headers: {
768
- accept: input.acceptHeader,
769
- 'accept-encoding': 'identity',
770
- },
771
- autoSelectFamily: false,
772
- family: input.address.family,
773
- // Use a one-shot socket so the request cannot reuse a pooled connection that resolved differently.
774
- agent: false,
775
- lookup: isIP(input.hostname) === 0
776
- ? createAssistantWebPinnedLookup(input.address)
777
- : undefined,
778
- servername: input.url.protocol === 'https:' && isIP(input.hostname) === 0
779
- ? input.hostname
780
- : undefined,
781
- signal: input.signal,
782
- };
783
- const requestImplementation = input.url.protocol === 'https:'
784
- ? requestHttps
785
- : requestHttp;
786
- return await new Promise((resolve, reject) => {
787
- const request = requestImplementation(options, (response) => {
788
- try {
789
- resolve(createAssistantWebNodeResponse(response));
790
- }
791
- catch (error) {
792
- reject(error);
793
- }
794
- });
795
- request.once('error', reject);
796
- request.end();
797
- });
798
- }
799
- function createAssistantWebPinnedLookup(address) {
800
- return (_hostname, options, callback) => {
801
- const requestedFamily = typeof options === 'number'
802
- ? options
803
- : options.family === 'IPv4'
804
- ? 4
805
- : options.family === 'IPv6'
806
- ? 6
807
- : options.family ?? 0;
808
- queueMicrotask(() => {
809
- if (requestedFamily !== 0 && requestedFamily !== address.family) {
810
- callback(new Error(`Pinned address family ${address.family} did not match requested family ${requestedFamily}.`), address.address, address.family);
811
- return;
812
- }
813
- callback(null, address.address, address.family);
814
- });
815
- };
816
- }
817
- function createAssistantWebNodeResponse(response) {
818
- const headers = createAssistantWebResponseHeaders(response);
819
- const body = decodeAssistantWebResponseBody(response, headers);
820
- const status = response.statusCode ?? 500;
821
- const statusText = normalizeNullableString(response.statusMessage);
822
- return new Response(Readable.toWeb(body), {
823
- status,
824
- headers,
825
- ...(statusText ? { statusText } : {}),
826
- });
827
- }
828
- function createAssistantWebResponseHeaders(response) {
829
- const headers = new Headers();
830
- for (const [name, value] of Object.entries(response.headers)) {
831
- if (Array.isArray(value)) {
832
- for (const entry of value) {
833
- headers.append(name, entry);
834
- }
835
- continue;
836
- }
837
- if (typeof value === 'string') {
838
- headers.append(name, value);
839
- }
840
- }
841
- return headers;
842
- }
843
- function decodeAssistantWebResponseBody(response, headers) {
844
- const contentEncoding = normalizeNullableString(headers.get('content-encoding'))?.toLowerCase();
845
- switch (contentEncoding) {
846
- case 'br':
847
- headers.delete('content-encoding');
848
- headers.delete('content-length');
849
- return response.pipe(createBrotliDecompress());
850
- case 'deflate':
851
- case 'gzip':
852
- case 'x-gzip':
853
- headers.delete('content-encoding');
854
- headers.delete('content-length');
855
- return response.pipe(createUnzip());
856
- default:
857
- return response;
858
- }
859
- }
860
- async function cancelAssistantWebResponseBody(response) {
861
- if (!response.body) {
862
- return;
863
- }
864
- try {
865
- await response.body.cancel();
866
- }
867
- catch {
868
- // Ignore response-body cancellation failures during cleanup.
869
- }
870
- }
871
- function isAssistantWebAbortError(error) {
872
- return error instanceof Error && error.name === 'AbortError';
873
- }
874
- function normalizeAssistantText(input) {
875
- return input
876
- .replace(/\r\n?/gu, '\n')
877
- .replace(/[ \t]+\n/gu, '\n')
878
- .replace(/\n{3,}/gu, '\n\n')
879
- .replace(/[ \t]{2,}/gu, ' ')
880
- .trim();
881
- }
882
- function normalizeAssistantMarkdown(input) {
883
- return input
884
- .replace(/\r\n?/gu, '\n')
885
- .replace(/[ \t]+\n/gu, '\n')
886
- .replace(/\n{3,}/gu, '\n\n')
887
- .trim();
888
- }
889
- function normalizeAssistantMarkdownInline(input) {
890
- return normalizeAssistantText(input).replace(/\n+/gu, ' ');
891
- }
892
- function parseAssistantHtmlWithReadability(document) {
893
- const ReadabilityConstructor = Readability;
894
- return new ReadabilityConstructor(document).parse();
895
- }
896
- async function lookupAllAssistantWebAddresses(lookupImplementation, hostname) {
897
- const resolved = await lookupImplementation(hostname, {
898
- all: true,
899
- verbatim: true,
900
- });
901
- const normalized = Array.isArray(resolved) ? resolved : [resolved];
902
- const seen = new Set();
903
- const addresses = [];
904
- for (const entry of normalized) {
905
- const key = `${entry.family}:${entry.address}`;
906
- if (seen.has(key)) {
907
- continue;
908
- }
909
- seen.add(key);
910
- addresses.push(entry);
911
- }
912
- return addresses;
913
- }
914
- function resolveAssistantHtmlDocumentTitle(document) {
915
- if (typeof document.title === 'string') {
916
- return normalizeNullableString(document.title);
917
- }
918
- if (document.title &&
919
- typeof document.title === 'object' &&
920
- 'textContent' in document.title) {
921
- const textContent = document.title.textContent;
922
- return typeof textContent === 'string'
923
- ? normalizeNullableString(textContent)
924
- : null;
925
- }
926
- return null;
927
- }
928
- function normalizeTrailingWhitespace(input) {
929
- return input
930
- .replace(/\r\n?/gu, '\n')
931
- .replace(/\s+$/u, '');
932
- }
933
- function escapeAssistantMarkdownText(input) {
934
- return input.replace(/([\\`*_{}\[\]()#+!|>~-])/gu, '\\$1');
935
- }
936
88
  //# sourceMappingURL=web-fetch.js.map