@murphai/murph 1.3.0 → 1.3.2

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 (2451) hide show
  1. package/CHANGELOG.md +3885 -0
  2. package/config.schema.json +731 -60
  3. package/dist/bin.js +6 -4
  4. package/dist/bin.js.map +1 -1
  5. package/dist/cli-entry.d.ts +8 -1
  6. package/dist/cli-entry.d.ts.map +1 -1
  7. package/dist/cli-entry.js +80 -4
  8. package/dist/cli-entry.js.map +1 -1
  9. package/dist/commands/audit-command-helpers.d.ts.map +1 -1
  10. package/dist/commands/audit-command-helpers.js +7 -5
  11. package/dist/commands/audit-command-helpers.js.map +1 -1
  12. package/dist/commands/automation.d.ts +143 -104
  13. package/dist/commands/automation.d.ts.map +1 -1
  14. package/dist/commands/automation.js +71 -13
  15. package/dist/commands/automation.js.map +1 -1
  16. package/dist/commands/batch.d.ts +7 -4
  17. package/dist/commands/batch.d.ts.map +1 -1
  18. package/dist/commands/batch.js +16 -62
  19. package/dist/commands/batch.js.map +1 -1
  20. package/dist/commands/clinical-imports.d.ts +103 -103
  21. package/dist/commands/command-factory-primitives.d.ts +1 -1
  22. package/dist/commands/command-factory-primitives.d.ts.map +1 -1
  23. package/dist/commands/command-factory-primitives.js +1 -1
  24. package/dist/commands/command-factory-primitives.js.map +1 -1
  25. package/dist/commands/commons.d.ts +59 -0
  26. package/dist/commands/commons.d.ts.map +1 -1
  27. package/dist/commands/commons.js +83 -5
  28. package/dist/commands/commons.js.map +1 -1
  29. package/dist/commands/document.d.ts.map +1 -1
  30. package/dist/commands/document.js +31 -1
  31. package/dist/commands/document.js.map +1 -1
  32. package/dist/commands/encounter.d.ts +128 -128
  33. package/dist/commands/event.d.ts.map +1 -1
  34. package/dist/commands/event.js +7 -1
  35. package/dist/commands/event.js.map +1 -1
  36. package/dist/commands/exercise.d.ts.map +1 -1
  37. package/dist/commands/exercise.js +16 -3
  38. package/dist/commands/exercise.js.map +1 -1
  39. package/dist/commands/experiment-progress-card-image.d.ts.map +1 -1
  40. package/dist/commands/experiment-progress-card-image.js +76 -16
  41. package/dist/commands/experiment-progress-card-image.js.map +1 -1
  42. package/dist/commands/experiment.d.ts.map +1 -1
  43. package/dist/commands/experiment.js +51 -5
  44. package/dist/commands/experiment.js.map +1 -1
  45. package/dist/commands/export-intake-read-helpers.d.ts.map +1 -1
  46. package/dist/commands/export-intake-read-helpers.js +9 -6
  47. package/dist/commands/export-intake-read-helpers.js.map +1 -1
  48. package/dist/commands/food.d.ts.map +1 -1
  49. package/dist/commands/food.js +13 -11
  50. package/dist/commands/food.js.map +1 -1
  51. package/dist/commands/habitat.d.ts.map +1 -1
  52. package/dist/commands/habitat.js +120 -9
  53. package/dist/commands/habitat.js.map +1 -1
  54. package/dist/commands/health-blood-test-save.d.ts.map +1 -1
  55. package/dist/commands/health-blood-test-save.js +42 -8
  56. package/dist/commands/health-blood-test-save.js.map +1 -1
  57. package/dist/commands/meal.d.ts.map +1 -1
  58. package/dist/commands/meal.js +58 -4
  59. package/dist/commands/meal.js.map +1 -1
  60. package/dist/commands/measurement.d.ts +1 -0
  61. package/dist/commands/measurement.d.ts.map +1 -1
  62. package/dist/commands/measurement.js +51 -2
  63. package/dist/commands/measurement.js.map +1 -1
  64. package/dist/commands/medication.d.ts +6 -6
  65. package/dist/commands/model.js +7 -11
  66. package/dist/commands/model.js.map +1 -1
  67. package/dist/commands/murph-age.d.ts +9 -1
  68. package/dist/commands/murph-age.d.ts.map +1 -1
  69. package/dist/commands/murph-age.js +132 -7
  70. package/dist/commands/murph-age.js.map +1 -1
  71. package/dist/commands/occurred-at-option.d.ts.map +1 -1
  72. package/dist/commands/occurred-at-option.js +7 -41
  73. package/dist/commands/occurred-at-option.js.map +1 -1
  74. package/dist/commands/payload-schema-command.d.ts +2 -2
  75. package/dist/commands/payload-schema-command.d.ts.map +1 -1
  76. package/dist/commands/payload-schema-command.js +1 -1
  77. package/dist/commands/payload-schema-command.js.map +1 -1
  78. package/dist/commands/public-validation-issue.d.ts +7 -0
  79. package/dist/commands/public-validation-issue.d.ts.map +1 -0
  80. package/dist/commands/public-validation-issue.js +7 -0
  81. package/dist/commands/public-validation-issue.js.map +1 -0
  82. package/dist/commands/research.d.ts.map +1 -1
  83. package/dist/commands/research.js +26 -28
  84. package/dist/commands/research.js.map +1 -1
  85. package/dist/commands/route.d.ts.map +1 -1
  86. package/dist/commands/route.js +45 -1
  87. package/dist/commands/route.js.map +1 -1
  88. package/dist/commands/scheduled-log.d.ts +142 -124
  89. package/dist/commands/scheduled-log.d.ts.map +1 -1
  90. package/dist/commands/scheduled-log.js +456 -106
  91. package/dist/commands/scheduled-log.js.map +1 -1
  92. package/dist/commands/wearables.d.ts +1520 -145
  93. package/dist/commands/wearables.d.ts.map +1 -1
  94. package/dist/commands/wearables.js +135 -3
  95. package/dist/commands/wearables.js.map +1 -1
  96. package/dist/commands/workout-live.d.ts +3 -0
  97. package/dist/commands/workout-live.d.ts.map +1 -0
  98. package/dist/commands/workout-live.js +372 -0
  99. package/dist/commands/workout-live.js.map +1 -0
  100. package/dist/commands/workout-typed-options.d.ts +38 -0
  101. package/dist/commands/workout-typed-options.d.ts.map +1 -0
  102. package/dist/commands/workout-typed-options.js +90 -0
  103. package/dist/commands/workout-typed-options.js.map +1 -0
  104. package/dist/commands/workout.d.ts.map +1 -1
  105. package/dist/commands/workout.js +115 -84
  106. package/dist/commands/workout.js.map +1 -1
  107. package/dist/food-labels.d.ts +549 -277
  108. package/dist/food-labels.d.ts.map +1 -1
  109. package/dist/food-labels.js +19 -3
  110. package/dist/food-labels.js.map +1 -1
  111. package/dist/foreground-terminal-logging.js +0 -2
  112. package/dist/foreground-terminal-logging.js.map +1 -1
  113. package/dist/hosted-data-api-labels.d.ts +1683 -871
  114. package/dist/hosted-data-api-labels.d.ts.map +1 -1
  115. package/dist/hosted-data-api-labels.js +224 -31
  116. package/dist/hosted-data-api-labels.js.map +1 -1
  117. package/dist/incur-error-bridge.d.ts.map +1 -1
  118. package/dist/incur-error-bridge.js +7 -15
  119. package/dist/incur-error-bridge.js.map +1 -1
  120. package/dist/incur.generated.d.ts +158 -3
  121. package/dist/incur.generated.d.ts.map +1 -1
  122. package/dist/mapbox-address.d.ts +41 -0
  123. package/dist/mapbox-address.d.ts.map +1 -0
  124. package/dist/mapbox-address.js +469 -0
  125. package/dist/mapbox-address.js.map +1 -0
  126. package/dist/mapbox-route-client.d.ts +2 -2
  127. package/dist/mapbox-route-client.d.ts.map +1 -1
  128. package/dist/mapbox-route-client.js +49 -12
  129. package/dist/mapbox-route-client.js.map +1 -1
  130. package/dist/mapbox-route-contracts.d.ts +60 -60
  131. package/dist/mapbox-route-contracts.d.ts.map +1 -1
  132. package/dist/mapbox-route-contracts.js +1 -1
  133. package/dist/mapbox-route-contracts.js.map +1 -1
  134. package/dist/mapbox-route-directions.d.ts.map +1 -1
  135. package/dist/mapbox-route-directions.js +1 -2
  136. package/dist/mapbox-route-directions.js.map +1 -1
  137. package/dist/mapbox-route-elevation.js +0 -1
  138. package/dist/mapbox-route-elevation.js.map +1 -1
  139. package/dist/mapbox-route-points.js +0 -2
  140. package/dist/mapbox-route-points.js.map +1 -1
  141. package/dist/mapbox-route.d.ts.map +1 -1
  142. package/dist/mapbox-route.js +1 -1
  143. package/dist/mapbox-route.js.map +1 -1
  144. package/dist/research-scout-client.d.ts +3 -2
  145. package/dist/research-scout-client.d.ts.map +1 -1
  146. package/dist/research-scout-client.js +166 -37
  147. package/dist/research-scout-client.js.map +1 -1
  148. package/dist/research-scout.d.ts +1 -1
  149. package/dist/research-scout.d.ts.map +1 -1
  150. package/dist/research-scout.js +1 -1
  151. package/dist/research-scout.js.map +1 -1
  152. package/dist/supplement-labels.d.ts +545 -275
  153. package/dist/supplement-labels.d.ts.map +1 -1
  154. package/dist/supplement-labels.js +0 -1
  155. package/dist/supplement-labels.js.map +1 -1
  156. package/dist/vault-cli-command-manifest.d.ts +2472 -700
  157. package/dist/vault-cli-command-manifest.d.ts.map +1 -1
  158. package/dist/vault-cli-command-manifest.js +35 -10
  159. package/dist/vault-cli-command-manifest.js.map +1 -1
  160. package/dist/vault-cli-skill-hash.generated.d.ts +1 -1
  161. package/dist/vault-cli-skill-hash.generated.js +1 -1
  162. package/dist/vault-cli-vault-context.js +0 -1
  163. package/dist/vault-cli-vault-context.js.map +1 -1
  164. package/node_modules/@murphai/assistant-cli/dist/assistant/service.d.ts +9 -0
  165. package/node_modules/@murphai/assistant-cli/dist/assistant/service.d.ts.map +1 -1
  166. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/chat-controller-models.d.ts.map +1 -1
  167. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/chat-controller-models.js +0 -1
  168. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/chat-controller-models.js.map +1 -1
  169. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/ink.d.ts.map +1 -1
  170. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/ink.js +10 -8
  171. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/ink.js.map +1 -1
  172. package/node_modules/@murphai/assistant-cli/dist/assistant-daemon-client.d.ts.map +1 -1
  173. package/node_modules/@murphai/assistant-cli/dist/assistant-daemon-client.js +19 -9
  174. package/node_modules/@murphai/assistant-cli/dist/assistant-daemon-client.js.map +1 -1
  175. package/node_modules/@murphai/assistant-cli/dist/commands/assistant.d.ts.map +1 -1
  176. package/node_modules/@murphai/assistant-cli/dist/commands/assistant.js +20 -56
  177. package/node_modules/@murphai/assistant-cli/dist/commands/assistant.js.map +1 -1
  178. package/node_modules/@murphai/assistant-engine/README.md +73 -16
  179. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-controller.d.ts +21 -4
  180. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-controller.d.ts.map +1 -1
  181. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-controller.js +173 -43
  182. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-controller.js.map +1 -1
  183. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-journal.d.ts +75 -70
  184. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-journal.d.ts.map +1 -1
  185. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-journal.js +44 -19
  186. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-journal.js.map +1 -1
  187. package/node_modules/@murphai/assistant-engine/dist/assistant/ask-continuation.d.ts +3 -1
  188. package/node_modules/@murphai/assistant-engine/dist/assistant/ask-continuation.d.ts.map +1 -1
  189. package/node_modules/@murphai/assistant-engine/dist/assistant/ask-continuation.js +28 -7
  190. package/node_modules/@murphai/assistant-engine/dist/assistant/ask-continuation.js.map +1 -1
  191. package/node_modules/@murphai/assistant-engine/dist/assistant/attachment-evidence-model.d.ts.map +1 -1
  192. package/node_modules/@murphai/assistant-engine/dist/assistant/attachment-evidence-model.js +4 -1
  193. package/node_modules/@murphai/assistant-engine/dist/assistant/attachment-evidence-model.js.map +1 -1
  194. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/cross-session-route-state.d.ts +77 -0
  195. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/cross-session-route-state.d.ts.map +1 -0
  196. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/cross-session-route-state.js +777 -0
  197. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/cross-session-route-state.js.map +1 -0
  198. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/grouping.d.ts +1 -0
  199. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/grouping.d.ts.map +1 -1
  200. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/grouping.js +36 -4
  201. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/grouping.js.map +1 -1
  202. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/input-summary.d.ts.map +1 -1
  203. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/input-summary.js +3 -1
  204. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/input-summary.js.map +1 -1
  205. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/operation-scope.d.ts +3 -1
  206. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/operation-scope.d.ts.map +1 -1
  207. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/prompt-builder.d.ts +10 -2
  208. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/prompt-builder.d.ts.map +1 -1
  209. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/prompt-builder.js +33 -13
  210. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/prompt-builder.js.map +1 -1
  211. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.d.ts +12 -1
  212. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.d.ts.map +1 -1
  213. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.js +851 -171
  214. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.js.map +1 -1
  215. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.d.ts +2 -0
  216. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.d.ts.map +1 -1
  217. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.js +51 -18
  218. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.js.map +1 -1
  219. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/scanner.d.ts +2 -0
  220. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/scanner.d.ts.map +1 -1
  221. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/scanner.js +59 -30
  222. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/scanner.js.map +1 -1
  223. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.d.ts +3 -1
  224. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.d.ts.map +1 -1
  225. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.js +3 -0
  226. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.js.map +1 -1
  227. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/target-override.d.ts +10 -1
  228. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/target-override.d.ts.map +1 -1
  229. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/target-override.js +62 -1
  230. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/target-override.js.map +1 -1
  231. package/node_modules/@murphai/assistant-engine/dist/assistant/automation.d.ts +1 -1
  232. package/node_modules/@murphai/assistant-engine/dist/assistant/automation.d.ts.map +1 -1
  233. package/node_modules/@murphai/assistant-engine/dist/assistant/automation.js +1 -1
  234. package/node_modules/@murphai/assistant-engine/dist/assistant/automation.js.map +1 -1
  235. package/node_modules/@murphai/assistant-engine/dist/assistant/channel-adapters.d.ts +1 -1
  236. package/node_modules/@murphai/assistant-engine/dist/assistant/channel-adapters.d.ts.map +1 -1
  237. package/node_modules/@murphai/assistant-engine/dist/assistant/channel-adapters.js +1 -1
  238. package/node_modules/@murphai/assistant-engine/dist/assistant/channel-adapters.js.map +1 -1
  239. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/descriptors.d.ts.map +1 -1
  240. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/descriptors.js +107 -44
  241. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/descriptors.js.map +1 -1
  242. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/helpers.d.ts +3 -1
  243. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/helpers.d.ts.map +1 -1
  244. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/helpers.js +34 -3
  245. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/helpers.js.map +1 -1
  246. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/runtime.d.ts +22 -14
  247. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/runtime.d.ts.map +1 -1
  248. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/runtime.js +352 -78
  249. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/runtime.js.map +1 -1
  250. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/types.d.ts +43 -8
  251. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/types.d.ts.map +1 -1
  252. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/types.js.map +1 -1
  253. package/node_modules/@murphai/assistant-engine/dist/assistant/cli-surface-bootstrap.d.ts +1 -0
  254. package/node_modules/@murphai/assistant-engine/dist/assistant/cli-surface-bootstrap.d.ts.map +1 -1
  255. package/node_modules/@murphai/assistant-engine/dist/assistant/cli-surface-bootstrap.js +6 -5
  256. package/node_modules/@murphai/assistant-engine/dist/assistant/cli-surface-bootstrap.js.map +1 -1
  257. package/node_modules/@murphai/assistant-engine/dist/assistant/cli-surface-contract.generated.json +1 -1
  258. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-base-instructions.d.ts +1 -1
  259. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-base-instructions.d.ts.map +1 -1
  260. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-base-instructions.js +14 -7
  261. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-base-instructions.js.map +1 -1
  262. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-runtime.d.ts +17 -0
  263. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-runtime.d.ts.map +1 -1
  264. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-runtime.js +25 -19
  265. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-runtime.js.map +1 -1
  266. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-thread-route.d.ts.map +1 -1
  267. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-thread-route.js +9 -9
  268. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-thread-route.js.map +1 -1
  269. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn/planning.d.ts +4 -8
  270. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn/planning.d.ts.map +1 -1
  271. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn/planning.js +284 -59
  272. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn/planning.js.map +1 -1
  273. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn-runner.d.ts +5 -3
  274. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn-runner.d.ts.map +1 -1
  275. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn-runner.js +152 -24
  276. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn-runner.js.map +1 -1
  277. package/node_modules/@murphai/assistant-engine/dist/assistant/content-types.d.ts +2 -0
  278. package/node_modules/@murphai/assistant-engine/dist/assistant/content-types.d.ts.map +1 -1
  279. package/node_modules/@murphai/assistant-engine/dist/assistant/context-snapshot.d.ts +4 -1
  280. package/node_modules/@murphai/assistant-engine/dist/assistant/context-snapshot.d.ts.map +1 -1
  281. package/node_modules/@murphai/assistant-engine/dist/assistant/context-snapshot.js +76 -24
  282. package/node_modules/@murphai/assistant-engine/dist/assistant/context-snapshot.js.map +1 -1
  283. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-persistence.d.ts +1 -1
  284. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-persistence.d.ts.map +1 -1
  285. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-persistence.js +0 -1
  286. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-persistence.js.map +1 -1
  287. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-ref.d.ts +1 -0
  288. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-ref.d.ts.map +1 -1
  289. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-ref.js +2 -0
  290. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-ref.js.map +1 -1
  291. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/authoring.d.ts +5 -1
  292. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/authoring.d.ts.map +1 -1
  293. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/authoring.js +178 -31
  294. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/authoring.js.map +1 -1
  295. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/canonical-jobs.d.ts +32 -1
  296. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/canonical-jobs.d.ts.map +1 -1
  297. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/canonical-jobs.js +147 -31
  298. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/canonical-jobs.js.map +1 -1
  299. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/delivery-reconciliation.d.ts +8 -0
  300. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/delivery-reconciliation.d.ts.map +1 -1
  301. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/delivery-reconciliation.js +73 -15
  302. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/delivery-reconciliation.js.map +1 -1
  303. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/execution.d.ts +8 -1
  304. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/execution.d.ts.map +1 -1
  305. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/execution.js +438 -116
  306. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/execution.js.map +1 -1
  307. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/mutations.d.ts.map +1 -1
  308. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/mutations.js +2 -0
  309. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/mutations.js.map +1 -1
  310. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/output-history.d.ts +11 -0
  311. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/output-history.d.ts.map +1 -0
  312. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/output-history.js +153 -0
  313. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/output-history.js.map +1 -0
  314. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/runtime-state.d.ts +47 -47
  315. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/runtime-state.d.ts.map +1 -1
  316. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/runtime-state.js +1 -1
  317. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/runtime-state.js.map +1 -1
  318. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.d.ts +10 -0
  319. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.d.ts.map +1 -1
  320. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.js +28 -0
  321. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.js.map +1 -1
  322. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/store.d.ts +49 -39
  323. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/store.d.ts.map +1 -1
  324. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/store.js +19 -1
  325. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/store.js.map +1 -1
  326. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/targets.d.ts.map +1 -1
  327. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/targets.js +1 -3
  328. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/targets.js.map +1 -1
  329. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/timing-verification.d.ts +2 -0
  330. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/timing-verification.d.ts.map +1 -0
  331. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/timing-verification.js +2 -0
  332. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/timing-verification.js.map +1 -0
  333. package/node_modules/@murphai/assistant-engine/dist/assistant/cron.d.ts +9 -0
  334. package/node_modules/@murphai/assistant-engine/dist/assistant/cron.d.ts.map +1 -1
  335. package/node_modules/@murphai/assistant-engine/dist/assistant/cron.js +31 -2
  336. package/node_modules/@murphai/assistant-engine/dist/assistant/cron.js.map +1 -1
  337. package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.d.ts +8 -0
  338. package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.d.ts.map +1 -1
  339. package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.js +38 -8
  340. package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.js.map +1 -1
  341. package/node_modules/@murphai/assistant-engine/dist/assistant/device-activity-cron-tags.d.ts +2 -1
  342. package/node_modules/@murphai/assistant-engine/dist/assistant/device-activity-cron-tags.d.ts.map +1 -1
  343. package/node_modules/@murphai/assistant-engine/dist/assistant/device-activity-cron-tags.js +8 -0
  344. package/node_modules/@murphai/assistant-engine/dist/assistant/device-activity-cron-tags.js.map +1 -1
  345. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.d.ts +123 -13
  346. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.d.ts.map +1 -1
  347. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.js +57 -11
  348. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.js.map +1 -1
  349. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-plan.d.ts.map +1 -1
  350. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-plan.js +2 -8
  351. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-plan.js.map +1 -1
  352. package/node_modules/@murphai/assistant-engine/dist/assistant/experiment-support-automations.d.ts.map +1 -1
  353. package/node_modules/@murphai/assistant-engine/dist/assistant/experiment-support-automations.js +10 -0
  354. package/node_modules/@murphai/assistant-engine/dist/assistant/experiment-support-automations.js.map +1 -1
  355. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card-schema.d.ts +115 -0
  356. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card-schema.d.ts.map +1 -0
  357. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card-schema.js +162 -0
  358. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card-schema.js.map +1 -0
  359. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card.d.ts +3 -0
  360. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card.d.ts.map +1 -0
  361. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card.js +118 -0
  362. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card.js.map +1 -0
  363. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-scorecard-schema.d.ts +83 -1
  364. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-scorecard-schema.d.ts.map +1 -1
  365. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-scorecard-schema.js +27 -22
  366. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-scorecard-schema.js.map +1 -1
  367. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-scorecard.js +8 -0
  368. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-scorecard.js.map +1 -1
  369. package/node_modules/@murphai/assistant-engine/dist/assistant/group-email-outbox.d.ts +20 -0
  370. package/node_modules/@murphai/assistant-engine/dist/assistant/group-email-outbox.d.ts.map +1 -0
  371. package/node_modules/@murphai/assistant-engine/dist/assistant/{newsletter-outbox.js → group-email-outbox.js} +65 -36
  372. package/node_modules/@murphai/assistant-engine/dist/assistant/group-email-outbox.js.map +1 -0
  373. package/node_modules/@murphai/assistant-engine/dist/assistant/group-newsletter-automation.d.ts +2 -48
  374. package/node_modules/@murphai/assistant-engine/dist/assistant/group-newsletter-automation.d.ts.map +1 -1
  375. package/node_modules/@murphai/assistant-engine/dist/assistant/group-newsletter-automation.js +14 -98
  376. package/node_modules/@murphai/assistant-engine/dist/assistant/group-newsletter-automation.js.map +1 -1
  377. package/node_modules/@murphai/assistant-engine/dist/assistant/group-room-model.d.ts +22 -3
  378. package/node_modules/@murphai/assistant-engine/dist/assistant/group-room-model.d.ts.map +1 -1
  379. package/node_modules/@murphai/assistant-engine/dist/assistant/group-room-model.js +87 -28
  380. package/node_modules/@murphai/assistant-engine/dist/assistant/group-room-model.js.map +1 -1
  381. package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-freshness.d.ts +2 -0
  382. package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-freshness.d.ts.map +1 -0
  383. package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-freshness.js +5 -0
  384. package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-freshness.js.map +1 -0
  385. package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-read-limits.d.ts +3 -2
  386. package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-read-limits.d.ts.map +1 -1
  387. package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-read-limits.js +21 -2
  388. package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-read-limits.js.map +1 -1
  389. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-image-completion.d.ts +31 -0
  390. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-image-completion.d.ts.map +1 -0
  391. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-image-completion.js +164 -0
  392. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-image-completion.js.map +1 -0
  393. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-tool-context.d.ts +80 -24
  394. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-tool-context.d.ts.map +1 -1
  395. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-tool-context.js +191 -62
  396. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-tool-context.js.map +1 -1
  397. package/node_modules/@murphai/assistant-engine/dist/assistant/input-source.d.ts +1 -0
  398. package/node_modules/@murphai/assistant-engine/dist/assistant/input-source.d.ts.map +1 -1
  399. package/node_modules/@murphai/assistant-engine/dist/assistant/input-source.js +2 -1
  400. package/node_modules/@murphai/assistant-engine/dist/assistant/input-source.js.map +1 -1
  401. package/node_modules/@murphai/assistant-engine/dist/assistant/input-store.d.ts +273 -269
  402. package/node_modules/@murphai/assistant-engine/dist/assistant/input-store.d.ts.map +1 -1
  403. package/node_modules/@murphai/assistant-engine/dist/assistant/input-store.js +6 -1
  404. package/node_modules/@murphai/assistant-engine/dist/assistant/input-store.js.map +1 -1
  405. package/node_modules/@murphai/assistant-engine/dist/assistant/issue-reporting.d.ts +3 -0
  406. package/node_modules/@murphai/assistant-engine/dist/assistant/issue-reporting.d.ts.map +1 -1
  407. package/node_modules/@murphai/assistant-engine/dist/assistant/issue-reporting.js +26 -1
  408. package/node_modules/@murphai/assistant-engine/dist/assistant/issue-reporting.js.map +1 -1
  409. package/node_modules/@murphai/assistant-engine/dist/assistant/linq-delivery-posture.d.ts +3 -0
  410. package/node_modules/@murphai/assistant-engine/dist/assistant/linq-delivery-posture.d.ts.map +1 -0
  411. package/node_modules/@murphai/assistant-engine/dist/assistant/linq-delivery-posture.js +20 -0
  412. package/node_modules/@murphai/assistant-engine/dist/assistant/linq-delivery-posture.js.map +1 -0
  413. package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.d.ts.map +1 -1
  414. package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.js +886 -436
  415. package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.js.map +1 -1
  416. package/node_modules/@murphai/assistant-engine/dist/assistant/maintenance-evidence.d.ts +3 -3
  417. package/node_modules/@murphai/assistant-engine/dist/assistant/maintenance-evidence.d.ts.map +1 -1
  418. package/node_modules/@murphai/assistant-engine/dist/assistant/maintenance-evidence.js +245 -6
  419. package/node_modules/@murphai/assistant-engine/dist/assistant/maintenance-evidence.js.map +1 -1
  420. package/node_modules/@murphai/assistant-engine/dist/assistant/managed-automations.d.ts +22 -1
  421. package/node_modules/@murphai/assistant-engine/dist/assistant/managed-automations.d.ts.map +1 -1
  422. package/node_modules/@murphai/assistant-engine/dist/assistant/managed-automations.js +338 -47
  423. package/node_modules/@murphai/assistant-engine/dist/assistant/managed-automations.js.map +1 -1
  424. package/node_modules/@murphai/assistant-engine/dist/assistant/message-target-selection.d.ts +13 -22
  425. package/node_modules/@murphai/assistant-engine/dist/assistant/message-target-selection.d.ts.map +1 -1
  426. package/node_modules/@murphai/assistant-engine/dist/assistant/message-target-selection.js +8 -3
  427. package/node_modules/@murphai/assistant-engine/dist/assistant/message-target-selection.js.map +1 -1
  428. package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.d.ts +2 -0
  429. package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.d.ts.map +1 -1
  430. package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.js +43 -9
  431. package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.js.map +1 -1
  432. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.d.ts +16 -14
  433. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.d.ts.map +1 -1
  434. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.js +339 -62
  435. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.js.map +1 -1
  436. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-first-personal-read-automation.d.ts +14 -0
  437. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-first-personal-read-automation.d.ts.map +1 -0
  438. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-first-personal-read-automation.js +94 -0
  439. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-first-personal-read-automation.js.map +1 -0
  440. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-automation.d.ts +22 -3
  441. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-automation.d.ts.map +1 -1
  442. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-automation.js +81 -7
  443. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-automation.js.map +1 -1
  444. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-seed.d.ts +25 -0
  445. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-seed.d.ts.map +1 -0
  446. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-seed.js +72 -0
  447. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-seed.js.map +1 -0
  448. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-goal-checkin-automation.d.ts +1 -0
  449. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-goal-checkin-automation.d.ts.map +1 -1
  450. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-goal-checkin-automation.js +184 -83
  451. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-goal-checkin-automation.js.map +1 -1
  452. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-state.d.ts +4 -0
  453. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-state.d.ts.map +1 -1
  454. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-state.js +15 -1
  455. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-state.js.map +1 -1
  456. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/automation-authority.d.ts.map +1 -1
  457. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/automation-authority.js +24 -1
  458. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/automation-authority.js.map +1 -1
  459. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/dispatch-state.d.ts +15 -3
  460. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/dispatch-state.d.ts.map +1 -1
  461. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/dispatch-state.js +314 -53
  462. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/dispatch-state.js.map +1 -1
  463. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/intents.d.ts +2 -0
  464. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/intents.d.ts.map +1 -1
  465. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/intents.js +1 -0
  466. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/intents.js.map +1 -1
  467. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/receipt-repair.d.ts.map +1 -1
  468. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/receipt-repair.js +5 -0
  469. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/receipt-repair.js.map +1 -1
  470. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/retry-policy.d.ts +4 -1
  471. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/retry-policy.d.ts.map +1 -1
  472. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/retry-policy.js +33 -8
  473. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/retry-policy.js.map +1 -1
  474. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.d.ts +38 -4
  475. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.d.ts.map +1 -1
  476. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.js +1034 -41
  477. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.js.map +1 -1
  478. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/summary.d.ts.map +1 -1
  479. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/summary.js +7 -0
  480. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/summary.js.map +1 -1
  481. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.d.ts +65 -8
  482. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.d.ts.map +1 -1
  483. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.js +569 -67
  484. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.js.map +1 -1
  485. package/node_modules/@murphai/assistant-engine/dist/assistant/private-completion-continuity.d.ts +23 -0
  486. package/node_modules/@murphai/assistant-engine/dist/assistant/private-completion-continuity.d.ts.map +1 -0
  487. package/node_modules/@murphai/assistant-engine/dist/assistant/private-completion-continuity.js +294 -0
  488. package/node_modules/@murphai/assistant-engine/dist/assistant/private-completion-continuity.js.map +1 -0
  489. package/node_modules/@murphai/assistant-engine/dist/assistant/prompt-time.d.ts +12 -0
  490. package/node_modules/@murphai/assistant-engine/dist/assistant/prompt-time.d.ts.map +1 -0
  491. package/node_modules/@murphai/assistant-engine/dist/assistant/prompt-time.js +38 -0
  492. package/node_modules/@murphai/assistant-engine/dist/assistant/prompt-time.js.map +1 -0
  493. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-catalog.d.ts.map +1 -1
  494. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-catalog.js +2 -2
  495. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-catalog.js.map +1 -1
  496. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-start-critical-path.d.ts +48 -0
  497. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-start-critical-path.d.ts.map +1 -0
  498. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-start-critical-path.js +101 -0
  499. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-start-critical-path.js.map +1 -0
  500. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.d.ts +6 -0
  501. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.d.ts.map +1 -1
  502. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.js +86 -97
  503. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.js.map +1 -1
  504. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.d.ts +16 -5
  505. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.d.ts.map +1 -1
  506. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.js +379 -644
  507. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.js.map +1 -1
  508. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/types.d.ts +40 -1
  509. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/types.d.ts.map +1 -1
  510. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/types.js.map +1 -1
  511. package/node_modules/@murphai/assistant-engine/dist/assistant/redaction.d.ts +2 -1
  512. package/node_modules/@murphai/assistant-engine/dist/assistant/redaction.d.ts.map +1 -1
  513. package/node_modules/@murphai/assistant-engine/dist/assistant/redaction.js +6 -1
  514. package/node_modules/@murphai/assistant-engine/dist/assistant/redaction.js.map +1 -1
  515. package/node_modules/@murphai/assistant-engine/dist/assistant/reminder-availability-maintenance.d.ts +17 -0
  516. package/node_modules/@murphai/assistant-engine/dist/assistant/reminder-availability-maintenance.d.ts.map +1 -0
  517. package/node_modules/@murphai/assistant-engine/dist/assistant/reminder-availability-maintenance.js +287 -0
  518. package/node_modules/@murphai/assistant-engine/dist/assistant/reminder-availability-maintenance.js.map +1 -0
  519. package/node_modules/@murphai/assistant-engine/dist/assistant/reply-delivery-context.d.ts +1 -1
  520. package/node_modules/@murphai/assistant-engine/dist/assistant/reply-delivery-context.d.ts.map +1 -1
  521. package/node_modules/@murphai/assistant-engine/dist/assistant/reply-delivery-context.js +10 -0
  522. package/node_modules/@murphai/assistant-engine/dist/assistant/reply-delivery-context.js.map +1 -1
  523. package/node_modules/@murphai/assistant-engine/dist/assistant/response-media.d.ts +33 -1
  524. package/node_modules/@murphai/assistant-engine/dist/assistant/response-media.d.ts.map +1 -1
  525. package/node_modules/@murphai/assistant-engine/dist/assistant/response-media.js +173 -3
  526. package/node_modules/@murphai/assistant-engine/dist/assistant/response-media.js.map +1 -1
  527. package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-residue.d.ts +25 -4
  528. package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-residue.d.ts.map +1 -1
  529. package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-residue.js +137 -69
  530. package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-residue.js.map +1 -1
  531. package/node_modules/@murphai/assistant-engine/dist/assistant/service-contracts.d.ts +20 -4
  532. package/node_modules/@murphai/assistant-engine/dist/assistant/service-contracts.d.ts.map +1 -1
  533. package/node_modules/@murphai/assistant-engine/dist/assistant/service-turn-routes.d.ts +1 -1
  534. package/node_modules/@murphai/assistant-engine/dist/assistant/service-turn-routes.d.ts.map +1 -1
  535. package/node_modules/@murphai/assistant-engine/dist/assistant/service-turn-routes.js +18 -8
  536. package/node_modules/@murphai/assistant-engine/dist/assistant/service-turn-routes.js.map +1 -1
  537. package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.d.ts +5 -2
  538. package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.d.ts.map +1 -1
  539. package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.js +31 -11
  540. package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.js.map +1 -1
  541. package/node_modules/@murphai/assistant-engine/dist/assistant/service.d.ts +12 -2
  542. package/node_modules/@murphai/assistant-engine/dist/assistant/service.d.ts.map +1 -1
  543. package/node_modules/@murphai/assistant-engine/dist/assistant/service.js +5 -3
  544. package/node_modules/@murphai/assistant-engine/dist/assistant/service.js.map +1 -1
  545. package/node_modules/@murphai/assistant-engine/dist/assistant/session-resolution.d.ts.map +1 -1
  546. package/node_modules/@murphai/assistant-engine/dist/assistant/session-resolution.js +71 -16
  547. package/node_modules/@murphai/assistant-engine/dist/assistant/session-resolution.js.map +1 -1
  548. package/node_modules/@murphai/assistant-engine/dist/assistant/shared.d.ts +1 -0
  549. package/node_modules/@murphai/assistant-engine/dist/assistant/shared.d.ts.map +1 -1
  550. package/node_modules/@murphai/assistant-engine/dist/assistant/shared.js +1 -0
  551. package/node_modules/@murphai/assistant-engine/dist/assistant/shared.js.map +1 -1
  552. package/node_modules/@murphai/assistant-engine/dist/assistant/state-secrets.d.ts +1 -1
  553. package/node_modules/@murphai/assistant-engine/dist/assistant/state-secrets.d.ts.map +1 -1
  554. package/node_modules/@murphai/assistant-engine/dist/assistant/state-secrets.js +0 -1
  555. package/node_modules/@murphai/assistant-engine/dist/assistant/state-secrets.js.map +1 -1
  556. package/node_modules/@murphai/assistant-engine/dist/assistant/store/persistence.d.ts +11 -3
  557. package/node_modules/@murphai/assistant-engine/dist/assistant/store/persistence.d.ts.map +1 -1
  558. package/node_modules/@murphai/assistant-engine/dist/assistant/store/persistence.js +410 -139
  559. package/node_modules/@murphai/assistant-engine/dist/assistant/store/persistence.js.map +1 -1
  560. package/node_modules/@murphai/assistant-engine/dist/assistant/store/types.d.ts +3 -0
  561. package/node_modules/@murphai/assistant-engine/dist/assistant/store/types.d.ts.map +1 -1
  562. package/node_modules/@murphai/assistant-engine/dist/assistant/store.d.ts.map +1 -1
  563. package/node_modules/@murphai/assistant-engine/dist/assistant/store.js +54 -13
  564. package/node_modules/@murphai/assistant-engine/dist/assistant/store.js.map +1 -1
  565. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.d.ts +7 -0
  566. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.d.ts.map +1 -1
  567. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.js +312 -138
  568. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.js.map +1 -1
  569. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-digest.d.ts +10 -0
  570. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-digest.d.ts.map +1 -1
  571. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-digest.js +150 -10
  572. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-digest.js.map +1 -1
  573. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.d.ts +8 -0
  574. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.d.ts.map +1 -0
  575. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.js +74 -0
  576. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.js.map +1 -0
  577. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.d.ts +1 -0
  578. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.d.ts.map +1 -1
  579. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.js +115 -16
  580. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.js.map +1 -1
  581. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-input.d.ts +3 -2
  582. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-input.d.ts.map +1 -1
  583. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-input.js.map +1 -1
  584. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-progress.d.ts +9 -2
  585. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-progress.d.ts.map +1 -1
  586. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-progress.js +49 -6
  587. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-progress.js.map +1 -1
  588. package/node_modules/@murphai/assistant-engine/dist/assistant/turns.d.ts +1 -0
  589. package/node_modules/@murphai/assistant-engine/dist/assistant/turns.d.ts.map +1 -1
  590. package/node_modules/@murphai/assistant-engine/dist/assistant/turns.js +62 -22
  591. package/node_modules/@murphai/assistant-engine/dist/assistant/turns.js.map +1 -1
  592. package/node_modules/@murphai/assistant-engine/dist/assistant/usage-attribution.d.ts +1 -1
  593. package/node_modules/@murphai/assistant-engine/dist/assistant/usage-attribution.d.ts.map +1 -1
  594. package/node_modules/@murphai/assistant-engine/dist/assistant/usage-attribution.js.map +1 -1
  595. package/node_modules/@murphai/assistant-engine/dist/assistant/vault-file-send.d.ts +7 -0
  596. package/node_modules/@murphai/assistant-engine/dist/assistant/vault-file-send.d.ts.map +1 -1
  597. package/node_modules/@murphai/assistant-engine/dist/assistant/vault-file-send.js +47 -1
  598. package/node_modules/@murphai/assistant-engine/dist/assistant/vault-file-send.js.map +1 -1
  599. package/node_modules/@murphai/assistant-engine/dist/assistant-ask.d.ts +4 -1
  600. package/node_modules/@murphai/assistant-engine/dist/assistant-ask.d.ts.map +1 -1
  601. package/node_modules/@murphai/assistant-engine/dist/assistant-ask.js +57 -23
  602. package/node_modules/@murphai/assistant-engine/dist/assistant-ask.js.map +1 -1
  603. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-adapters.d.ts +1 -1
  604. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-adapters.d.ts.map +1 -1
  605. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-adapters.js +1 -1
  606. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-adapters.js.map +1 -1
  607. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-runtime.d.ts +1 -1
  608. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-runtime.d.ts.map +1 -1
  609. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-runtime.js +1 -1
  610. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-runtime.js.map +1 -1
  611. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-access.d.ts.map +1 -1
  612. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-access.js +13 -1
  613. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-access.js.map +1 -1
  614. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-diagnostics.d.ts +8 -4
  615. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-diagnostics.d.ts.map +1 -1
  616. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-diagnostics.js +136 -19
  617. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-diagnostics.js.map +1 -1
  618. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-outcome.d.ts +5 -0
  619. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-outcome.d.ts.map +1 -0
  620. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-outcome.js +36 -0
  621. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-outcome.js.map +1 -0
  622. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/analyze-video-tool.d.ts +49 -0
  623. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/analyze-video-tool.d.ts.map +1 -0
  624. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/analyze-video-tool.js +387 -0
  625. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/analyze-video-tool.js.map +1 -0
  626. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.d.ts +59 -0
  627. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.d.ts.map +1 -0
  628. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.js +180 -0
  629. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.js.map +1 -0
  630. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-requests.d.ts +6 -3
  631. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-requests.d.ts.map +1 -1
  632. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-requests.js +35 -10
  633. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-requests.js.map +1 -1
  634. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-rpc.d.ts +3 -4
  635. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-rpc.d.ts.map +1 -1
  636. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-rpc.js +9 -15
  637. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-rpc.js.map +1 -1
  638. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/ask-grok-tool.d.ts.map +1 -1
  639. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/ask-grok-tool.js +77 -11
  640. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/ask-grok-tool.js.map +1 -1
  641. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.d.ts +21 -0
  642. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.d.ts.map +1 -0
  643. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.js +213 -0
  644. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.js.map +1 -0
  645. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.d.ts +3320 -0
  646. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.d.ts.map +1 -0
  647. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.js +1403 -0
  648. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.js.map +1 -0
  649. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/analyze-video.d.ts +50 -0
  650. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/analyze-video.d.ts.map +1 -0
  651. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/analyze-video.js +79 -0
  652. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/analyze-video.js.map +1 -0
  653. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/ask-grok.d.ts +1 -1
  654. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/ask-grok.d.ts.map +1 -1
  655. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/ask-grok.js +2 -2
  656. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/ask-grok.js.map +1 -1
  657. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/assistant-style.d.ts +15 -32
  658. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/assistant-style.d.ts.map +1 -1
  659. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/assistant-style.js +11 -7
  660. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/assistant-style.js.map +1 -1
  661. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation-model-input-schema.d.ts +4 -0
  662. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation-model-input-schema.d.ts.map +1 -0
  663. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation-model-input-schema.js +153 -0
  664. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation-model-input-schema.js.map +1 -0
  665. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation.d.ts +29 -150
  666. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation.d.ts.map +1 -1
  667. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation.js +537 -109
  668. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation.js.map +1 -1
  669. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/clinical-records.js +4 -4
  670. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/clinical-records.js.map +1 -1
  671. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/connected-apps.d.ts +10 -54
  672. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/connected-apps.d.ts.map +1 -1
  673. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/connected-apps.js +134 -109
  674. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/connected-apps.js.map +1 -1
  675. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/device.d.ts +6 -13
  676. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/device.d.ts.map +1 -1
  677. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/device.js +44 -10
  678. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/device.js.map +1 -1
  679. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/dynamic-tool-wrapper.d.ts +8 -1
  680. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/dynamic-tool-wrapper.d.ts.map +1 -1
  681. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/dynamic-tool-wrapper.js +2 -1
  682. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/dynamic-tool-wrapper.js.map +1 -1
  683. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-song.d.ts +9 -2
  684. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-song.d.ts.map +1 -1
  685. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-song.js +31 -3
  686. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-song.js.map +1 -1
  687. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-voice-memo.d.ts +7 -6
  688. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-voice-memo.d.ts.map +1 -1
  689. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-voice-memo.js +12 -8
  690. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-voice-memo.js.map +1 -1
  691. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/group-room-model.d.ts +10 -19
  692. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/group-room-model.d.ts.map +1 -1
  693. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/group-room-model.js +19 -7
  694. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/group-room-model.js.map +1 -1
  695. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/labs.d.ts +2 -16
  696. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/labs.d.ts.map +1 -1
  697. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/labs.js +1 -1
  698. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/labs.js.map +1 -1
  699. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/member-memory.d.ts +60 -0
  700. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/member-memory.d.ts.map +1 -0
  701. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/member-memory.js +91 -0
  702. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/member-memory.js.map +1 -0
  703. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/pending-vault-files.d.ts +65 -0
  704. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/pending-vault-files.d.ts.map +1 -0
  705. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/pending-vault-files.js +214 -0
  706. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/pending-vault-files.js.map +1 -0
  707. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/phone-calls.d.ts +24 -16
  708. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/phone-calls.d.ts.map +1 -1
  709. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/phone-calls.js +78 -7
  710. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/phone-calls.js.map +1 -1
  711. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.d.ts +131 -0
  712. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.d.ts.map +1 -0
  713. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.js +275 -0
  714. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.js.map +1 -0
  715. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools.d.ts +131 -2427
  716. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools.d.ts.map +1 -1
  717. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools.js +2505 -1575
  718. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools.js.map +1 -1
  719. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/failures.d.ts.map +1 -1
  720. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/failures.js +39 -95
  721. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/failures.js.map +1 -1
  722. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-image-tool.d.ts +5 -2
  723. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-image-tool.d.ts.map +1 -1
  724. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-image-tool.js +88 -101
  725. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-image-tool.js.map +1 -1
  726. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-voice-memo-tool.d.ts +58 -13
  727. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-voice-memo-tool.d.ts.map +1 -1
  728. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-voice-memo-tool.js +85 -122
  729. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-voice-memo-tool.js.map +1 -1
  730. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/image-reference-resolver.d.ts.map +1 -1
  731. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/image-reference-resolver.js +5 -3
  732. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/image-reference-resolver.js.map +1 -1
  733. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/images.d.ts +15 -2
  734. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/images.d.ts.map +1 -1
  735. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/images.js +99 -8
  736. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/images.js.map +1 -1
  737. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/managed-voice-memo-runtime.d.ts +17 -0
  738. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/managed-voice-memo-runtime.d.ts.map +1 -0
  739. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/managed-voice-memo-runtime.js +12 -0
  740. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/managed-voice-memo-runtime.js.map +1 -0
  741. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/openai-image-generation.d.ts +7 -11
  742. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/openai-image-generation.d.ts.map +1 -1
  743. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/openai-image-generation.js +237 -52
  744. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/openai-image-generation.js.map +1 -1
  745. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/response-card-validation-feedback.d.ts +3 -0
  746. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/response-card-validation-feedback.d.ts.map +1 -0
  747. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/response-card-validation-feedback.js +5 -0
  748. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/response-card-validation-feedback.js.map +1 -0
  749. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/workout-delivery-context.d.ts +19 -0
  750. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/workout-delivery-context.d.ts.map +1 -0
  751. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/workout-delivery-context.js +203 -0
  752. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/workout-delivery-context.js.map +1 -0
  753. package/node_modules/@murphai/assistant-engine/dist/assistant-codex-events.d.ts.map +1 -1
  754. package/node_modules/@murphai/assistant-engine/dist/assistant-codex-events.js +189 -486
  755. package/node_modules/@murphai/assistant-engine/dist/assistant-codex-events.js.map +1 -1
  756. package/node_modules/@murphai/assistant-engine/dist/assistant-codex.d.ts +42 -6
  757. package/node_modules/@murphai/assistant-engine/dist/assistant-codex.d.ts.map +1 -1
  758. package/node_modules/@murphai/assistant-engine/dist/assistant-codex.js +1196 -339
  759. package/node_modules/@murphai/assistant-engine/dist/assistant-codex.js.map +1 -1
  760. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime-residue.d.ts +1 -1
  761. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime-residue.d.ts.map +1 -1
  762. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime-residue.js +1 -1
  763. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime-residue.js.map +1 -1
  764. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime.d.ts +2 -0
  765. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime.d.ts.map +1 -1
  766. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime.js +1 -0
  767. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime.js.map +1 -1
  768. package/node_modules/@murphai/assistant-engine/dist/assistant-skill-assets.d.ts +24 -24
  769. package/node_modules/@murphai/assistant-engine/dist/assistant-skill-assets.d.ts.map +1 -1
  770. package/node_modules/@murphai/assistant-engine/dist/assistant-skill-assets.js +27 -27
  771. package/node_modules/@murphai/assistant-engine/dist/assistant-skill-assets.js.map +1 -1
  772. package/node_modules/@murphai/assistant-engine/dist/attachment-prompt-contracts.d.ts +27 -27
  773. package/node_modules/@murphai/assistant-engine/dist/attachment-prompt-contracts.d.ts.map +1 -1
  774. package/node_modules/@murphai/assistant-engine/dist/attachment-prompt-contracts.js +1 -1
  775. package/node_modules/@murphai/assistant-engine/dist/attachment-prompt-contracts.js.map +1 -1
  776. package/node_modules/@murphai/assistant-engine/dist/index.d.ts +9 -3
  777. package/node_modules/@murphai/assistant-engine/dist/index.d.ts.map +1 -1
  778. package/node_modules/@murphai/assistant-engine/dist/index.js +7 -1
  779. package/node_modules/@murphai/assistant-engine/dist/index.js.map +1 -1
  780. package/node_modules/@murphai/assistant-engine/dist/knowledge/documents.d.ts +1 -1
  781. package/node_modules/@murphai/assistant-engine/dist/knowledge/documents.d.ts.map +1 -1
  782. package/node_modules/@murphai/assistant-engine/dist/knowledge/documents.js +5 -1
  783. package/node_modules/@murphai/assistant-engine/dist/knowledge/documents.js.map +1 -1
  784. package/node_modules/@murphai/assistant-engine/dist/knowledge/service.d.ts +1 -0
  785. package/node_modules/@murphai/assistant-engine/dist/knowledge/service.d.ts.map +1 -1
  786. package/node_modules/@murphai/assistant-engine/dist/knowledge/service.js +16 -2
  787. package/node_modules/@murphai/assistant-engine/dist/knowledge/service.js.map +1 -1
  788. package/node_modules/@murphai/assistant-engine/dist/outbound-channel.d.ts +5 -2
  789. package/node_modules/@murphai/assistant-engine/dist/outbound-channel.d.ts.map +1 -1
  790. package/node_modules/@murphai/assistant-engine/dist/outbound-channel.js +4 -2
  791. package/node_modules/@murphai/assistant-engine/dist/outbound-channel.js.map +1 -1
  792. package/node_modules/@murphai/assistant-engine/skills/README.md +29 -0
  793. package/node_modules/@murphai/assistant-engine/skills/appointment-scheduling/SKILL.md +23 -0
  794. package/node_modules/@murphai/assistant-engine/skills/automatic-meal-capture/SKILL.md +180 -12
  795. package/node_modules/@murphai/assistant-engine/skills/behavior-followthrough/SKILL.md +155 -116
  796. package/node_modules/@murphai/assistant-engine/skills/body-composition/SKILL.md +137 -27
  797. package/node_modules/@murphai/assistant-engine/skills/body-composition/references/evidence.md +150 -0
  798. package/node_modules/@murphai/assistant-engine/skills/body-composition/references/fat-loss.md +132 -0
  799. package/node_modules/@murphai/assistant-engine/skills/body-composition/references/muscle-gain.md +135 -0
  800. package/node_modules/@murphai/assistant-engine/skills/body-composition/references/safety.md +171 -0
  801. package/node_modules/@murphai/assistant-engine/skills/body-composition/references/tracking-and-adjustment.md +193 -0
  802. package/node_modules/@murphai/assistant-engine/skills/cardiometabolic-health/SKILL.md +10 -1
  803. package/node_modules/@murphai/assistant-engine/skills/computer-use/SKILL.md +0 -4
  804. package/node_modules/@murphai/assistant-engine/skills/connected-apps/SKILL.md +86 -12
  805. package/node_modules/@murphai/assistant-engine/skills/connected-apps/references/provider-data-exports.md +209 -0
  806. package/node_modules/@murphai/assistant-engine/skills/daily-activity/SKILL.md +27 -4
  807. package/node_modules/@murphai/assistant-engine/skills/experiment-onboarding/SKILL.md +22 -9
  808. package/node_modules/@murphai/assistant-engine/skills/food-journal/SKILL.md +200 -14
  809. package/node_modules/@murphai/assistant-engine/skills/group-challenge/SKILL.md +17 -737
  810. package/node_modules/@murphai/assistant-engine/skills/group-challenge-scorecards/SKILL.md +17 -328
  811. package/node_modules/@murphai/assistant-engine/skills/group-chat/SKILL.md +18 -912
  812. package/node_modules/@murphai/assistant-engine/skills/group-newsletter/SKILL.md +16 -237
  813. package/node_modules/@murphai/assistant-engine/skills/groupchat-comedy/SKILL.md +19 -351
  814. package/node_modules/@murphai/assistant-engine/skills/hosted-low-usage/SKILL.md +310 -118
  815. package/node_modules/@murphai/assistant-engine/skills/micronutrients-supplements/SKILL.md +30 -8
  816. package/node_modules/@murphai/assistant-engine/skills/mobility-posture/SKILL.md +1 -1
  817. package/node_modules/@murphai/assistant-engine/skills/murph-family/SKILL.md +91 -26
  818. package/node_modules/@murphai/assistant-engine/skills/murph-onboarding/SKILL.md +75 -751
  819. package/node_modules/@murphai/assistant-engine/skills/murph-onboarding/references/aspiration-foundation-delegation.md +443 -0
  820. package/node_modules/@murphai/assistant-engine/skills/murph-onboarding/references/persistence-recovery-follow-up.md +155 -0
  821. package/node_modules/@murphai/assistant-engine/skills/murph-onboarding/references/return-launch-completion.md +246 -0
  822. package/node_modules/@murphai/assistant-engine/skills/music-generation/SKILL.md +31 -163
  823. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/SKILL.md +84 -7
  824. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/daily-nutrition-card-goals.md +313 -0
  825. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/carnivore-animal-based.md +145 -0
  826. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/dash.md +183 -0
  827. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/intermittent-fasting.md +153 -0
  828. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/ketogenic.md +149 -0
  829. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/low-carbohydrate.md +167 -0
  830. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/mediterranean.md +141 -0
  831. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/vegan-plant-based.md +175 -0
  832. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/vegetarian-spectrum.md +131 -0
  833. package/node_modules/@murphai/assistant-engine/skills/phone-calls/SKILL.md +47 -67
  834. package/node_modules/@murphai/assistant-engine/skills/physical-notes/SKILL.md +167 -0
  835. package/node_modules/@murphai/assistant-engine/skills/physical-therapy/SKILL.md +4 -2
  836. package/node_modules/@murphai/assistant-engine/skills/self-management-experiments/SKILL.md +19 -3
  837. package/node_modules/@murphai/assistant-engine/skills/shared/exercise-catalog-runtime.md +36 -19
  838. package/node_modules/@murphai/assistant-engine/skills/signup-link/SKILL.md +30 -0
  839. package/node_modules/@murphai/assistant-engine/skills/strength-training/SKILL.md +17 -1
  840. package/node_modules/@murphai/assistant-engine/skills/tracked-table/SKILL.md +292 -0
  841. package/node_modules/@murphai/assistant-engine/skills/workout-csv-import/SKILL.md +129 -0
  842. package/node_modules/@murphai/assistantd/dist/client.d.ts +2 -0
  843. package/node_modules/@murphai/assistantd/dist/client.d.ts.map +1 -1
  844. package/node_modules/@murphai/assistantd/dist/client.js +33 -0
  845. package/node_modules/@murphai/assistantd/dist/client.js.map +1 -1
  846. package/node_modules/@murphai/assistantd/dist/http-protocol.d.ts.map +1 -1
  847. package/node_modules/@murphai/assistantd/dist/http-protocol.js +25 -1
  848. package/node_modules/@murphai/assistantd/dist/http-protocol.js.map +1 -1
  849. package/node_modules/@murphai/clinical-records/dist/index.d.ts +660 -660
  850. package/node_modules/@murphai/clinical-records/dist/index.d.ts.map +1 -1
  851. package/node_modules/@murphai/clinical-records/dist/index.js +1 -1
  852. package/node_modules/@murphai/clinical-records/dist/index.js.map +1 -1
  853. package/node_modules/@murphai/core/dist/automation-availability.d.ts +51 -0
  854. package/node_modules/@murphai/core/dist/automation-availability.d.ts.map +1 -0
  855. package/node_modules/@murphai/core/dist/automation-availability.js +226 -0
  856. package/node_modules/@murphai/core/dist/automation-availability.js.map +1 -0
  857. package/node_modules/@murphai/core/dist/automation.d.ts +9 -2
  858. package/node_modules/@murphai/core/dist/automation.d.ts.map +1 -1
  859. package/node_modules/@murphai/core/dist/automation.js +121 -19
  860. package/node_modules/@murphai/core/dist/automation.js.map +1 -1
  861. package/node_modules/@murphai/core/dist/bank/habitat.d.ts +2 -0
  862. package/node_modules/@murphai/core/dist/bank/habitat.d.ts.map +1 -1
  863. package/node_modules/@murphai/core/dist/bank/habitat.js +35 -1
  864. package/node_modules/@murphai/core/dist/bank/habitat.js.map +1 -1
  865. package/node_modules/@murphai/core/dist/bank/regimens.js +1 -1
  866. package/node_modules/@murphai/core/dist/bank/regimens.js.map +1 -1
  867. package/node_modules/@murphai/core/dist/domains/events/attachment-backed.d.ts.map +1 -1
  868. package/node_modules/@murphai/core/dist/domains/events/attachment-backed.js +9 -123
  869. package/node_modules/@murphai/core/dist/domains/events/attachment-backed.js.map +1 -1
  870. package/node_modules/@murphai/core/dist/domains/events/capture-lookup.d.ts +33 -0
  871. package/node_modules/@murphai/core/dist/domains/events/capture-lookup.d.ts.map +1 -1
  872. package/node_modules/@murphai/core/dist/domains/events/capture-lookup.js +119 -0
  873. package/node_modules/@murphai/core/dist/domains/events/capture-lookup.js.map +1 -1
  874. package/node_modules/@murphai/core/dist/domains/events/generated-image-capture-retention.d.ts +24 -0
  875. package/node_modules/@murphai/core/dist/domains/events/generated-image-capture-retention.d.ts.map +1 -0
  876. package/node_modules/@murphai/core/dist/domains/events/generated-image-capture-retention.js +409 -0
  877. package/node_modules/@murphai/core/dist/domains/events/generated-image-capture-retention.js.map +1 -0
  878. package/node_modules/@murphai/core/dist/domains/events/ledger.d.ts +34 -0
  879. package/node_modules/@murphai/core/dist/domains/events/ledger.d.ts.map +1 -1
  880. package/node_modules/@murphai/core/dist/domains/events/ledger.js +188 -15
  881. package/node_modules/@murphai/core/dist/domains/events/ledger.js.map +1 -1
  882. package/node_modules/@murphai/core/dist/domains/events.d.ts +6 -2
  883. package/node_modules/@murphai/core/dist/domains/events.d.ts.map +1 -1
  884. package/node_modules/@murphai/core/dist/domains/events.js +3 -1
  885. package/node_modules/@murphai/core/dist/domains/events.js.map +1 -1
  886. package/node_modules/@murphai/core/dist/domains/experiments.d.ts.map +1 -1
  887. package/node_modules/@murphai/core/dist/domains/experiments.js +5 -1
  888. package/node_modules/@murphai/core/dist/domains/experiments.js.map +1 -1
  889. package/node_modules/@murphai/core/dist/history/api.d.ts +8 -5
  890. package/node_modules/@murphai/core/dist/history/api.d.ts.map +1 -1
  891. package/node_modules/@murphai/core/dist/history/api.js +268 -20
  892. package/node_modules/@murphai/core/dist/history/api.js.map +1 -1
  893. package/node_modules/@murphai/core/dist/index.d.ts +11 -6
  894. package/node_modules/@murphai/core/dist/index.d.ts.map +1 -1
  895. package/node_modules/@murphai/core/dist/index.js +8 -4
  896. package/node_modules/@murphai/core/dist/index.js.map +1 -1
  897. package/node_modules/@murphai/core/dist/memory.d.ts.map +1 -1
  898. package/node_modules/@murphai/core/dist/memory.js +1 -0
  899. package/node_modules/@murphai/core/dist/memory.js.map +1 -1
  900. package/node_modules/@murphai/core/dist/mutations.d.ts +45 -4
  901. package/node_modules/@murphai/core/dist/mutations.d.ts.map +1 -1
  902. package/node_modules/@murphai/core/dist/mutations.js +2204 -97
  903. package/node_modules/@murphai/core/dist/mutations.js.map +1 -1
  904. package/node_modules/@murphai/core/dist/operations/index.d.ts +1 -1
  905. package/node_modules/@murphai/core/dist/operations/index.d.ts.map +1 -1
  906. package/node_modules/@murphai/core/dist/operations/index.js +1 -1
  907. package/node_modules/@murphai/core/dist/operations/index.js.map +1 -1
  908. package/node_modules/@murphai/core/dist/operations/write-batch.d.ts +5 -0
  909. package/node_modules/@murphai/core/dist/operations/write-batch.d.ts.map +1 -1
  910. package/node_modules/@murphai/core/dist/operations/write-batch.js +40 -2
  911. package/node_modules/@murphai/core/dist/operations/write-batch.js.map +1 -1
  912. package/node_modules/@murphai/core/dist/protocols.d.ts.map +1 -1
  913. package/node_modules/@murphai/core/dist/protocols.js +52 -9
  914. package/node_modules/@murphai/core/dist/protocols.js.map +1 -1
  915. package/node_modules/@murphai/core/dist/public-mutations.d.ts +3 -2
  916. package/node_modules/@murphai/core/dist/public-mutations.d.ts.map +1 -1
  917. package/node_modules/@murphai/core/dist/public-mutations.js +9 -4
  918. package/node_modules/@murphai/core/dist/public-mutations.js.map +1 -1
  919. package/node_modules/@murphai/core/dist/scheduled-logs.d.ts +3 -0
  920. package/node_modules/@murphai/core/dist/scheduled-logs.d.ts.map +1 -1
  921. package/node_modules/@murphai/core/dist/scheduled-logs.js +65 -29
  922. package/node_modules/@murphai/core/dist/scheduled-logs.js.map +1 -1
  923. package/node_modules/@murphai/device-syncd/README.md +237 -0
  924. package/node_modules/@murphai/device-syncd/dist/client.d.ts +15 -0
  925. package/node_modules/@murphai/device-syncd/dist/client.d.ts.map +1 -1
  926. package/node_modules/@murphai/device-syncd/dist/client.js.map +1 -1
  927. package/node_modules/@murphai/device-syncd/dist/config/connect-routes.d.ts +29 -1
  928. package/node_modules/@murphai/device-syncd/dist/config/connect-routes.d.ts.map +1 -1
  929. package/node_modules/@murphai/device-syncd/dist/config/connect-routes.js +78 -2
  930. package/node_modules/@murphai/device-syncd/dist/config/connect-routes.js.map +1 -1
  931. package/node_modules/@murphai/device-syncd/dist/config/connect-targets.js +1 -1
  932. package/node_modules/@murphai/device-syncd/dist/config/connect-targets.js.map +1 -1
  933. package/node_modules/@murphai/device-syncd/dist/config/junction-client-config.d.ts +2 -1
  934. package/node_modules/@murphai/device-syncd/dist/config/junction-client-config.d.ts.map +1 -1
  935. package/node_modules/@murphai/device-syncd/dist/config/junction-client-config.js +2 -1
  936. package/node_modules/@murphai/device-syncd/dist/config/junction-client-config.js.map +1 -1
  937. package/node_modules/@murphai/device-syncd/dist/config/junction-config.d.ts +1 -0
  938. package/node_modules/@murphai/device-syncd/dist/config/junction-config.d.ts.map +1 -1
  939. package/node_modules/@murphai/device-syncd/dist/config/junction-config.js +9 -1
  940. package/node_modules/@murphai/device-syncd/dist/config/junction-config.js.map +1 -1
  941. package/node_modules/@murphai/device-syncd/dist/config/junction-connect-sources.js +2 -2
  942. package/node_modules/@murphai/device-syncd/dist/config/junction-connect-sources.js.map +1 -1
  943. package/node_modules/@murphai/device-syncd/dist/config/provider-configs.d.ts +2 -2
  944. package/node_modules/@murphai/device-syncd/dist/config/provider-configs.d.ts.map +1 -1
  945. package/node_modules/@murphai/device-syncd/dist/config/provider-configs.js +2 -2
  946. package/node_modules/@murphai/device-syncd/dist/config/provider-configs.js.map +1 -1
  947. package/node_modules/@murphai/device-syncd/dist/config/provider-env.d.ts +4 -2
  948. package/node_modules/@murphai/device-syncd/dist/config/provider-env.d.ts.map +1 -1
  949. package/node_modules/@murphai/device-syncd/dist/config/provider-env.js +6 -0
  950. package/node_modules/@murphai/device-syncd/dist/config/provider-env.js.map +1 -1
  951. package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.d.ts +614 -0
  952. package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.d.ts.map +1 -1
  953. package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.js +216 -148
  954. package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.js.map +1 -1
  955. package/node_modules/@murphai/device-syncd/dist/config/provider-types.d.ts +11 -0
  956. package/node_modules/@murphai/device-syncd/dist/config/provider-types.d.ts.map +1 -1
  957. package/node_modules/@murphai/device-syncd/dist/config/runtime-config.d.ts.map +1 -1
  958. package/node_modules/@murphai/device-syncd/dist/config/runtime-config.js +2 -2
  959. package/node_modules/@murphai/device-syncd/dist/config/runtime-config.js.map +1 -1
  960. package/node_modules/@murphai/device-syncd/dist/config/serializable-provider-configs.d.ts.map +1 -1
  961. package/node_modules/@murphai/device-syncd/dist/config/serializable-provider-configs.js +2 -0
  962. package/node_modules/@murphai/device-syncd/dist/config/serializable-provider-configs.js.map +1 -1
  963. package/node_modules/@murphai/device-syncd/dist/config.d.ts +1 -1
  964. package/node_modules/@murphai/device-syncd/dist/config.d.ts.map +1 -1
  965. package/node_modules/@murphai/device-syncd/dist/config.js +1 -1
  966. package/node_modules/@murphai/device-syncd/dist/config.js.map +1 -1
  967. package/node_modules/@murphai/device-syncd/dist/configured-provider-runtime-descriptors.d.ts +1 -1
  968. package/node_modules/@murphai/device-syncd/dist/configured-provider-runtime-descriptors.d.ts.map +1 -1
  969. package/node_modules/@murphai/device-syncd/dist/configured-provider-runtime-descriptors.js +1 -1
  970. package/node_modules/@murphai/device-syncd/dist/configured-provider-runtime-descriptors.js.map +1 -1
  971. package/node_modules/@murphai/device-syncd/dist/connect-config.d.ts +1 -1
  972. package/node_modules/@murphai/device-syncd/dist/connect-config.d.ts.map +1 -1
  973. package/node_modules/@murphai/device-syncd/dist/connect-config.js +1 -1
  974. package/node_modules/@murphai/device-syncd/dist/connect-config.js.map +1 -1
  975. package/node_modules/@murphai/device-syncd/dist/fitbit-migration.d.ts +57 -0
  976. package/node_modules/@murphai/device-syncd/dist/fitbit-migration.d.ts.map +1 -0
  977. package/node_modules/@murphai/device-syncd/dist/fitbit-migration.js +166 -0
  978. package/node_modules/@murphai/device-syncd/dist/fitbit-migration.js.map +1 -0
  979. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.d.ts +87 -0
  980. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.d.ts.map +1 -1
  981. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.js +296 -6
  982. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.js.map +1 -1
  983. package/node_modules/@murphai/device-syncd/dist/index.d.ts +1 -1
  984. package/node_modules/@murphai/device-syncd/dist/index.d.ts.map +1 -1
  985. package/node_modules/@murphai/device-syncd/dist/index.js +1 -1
  986. package/node_modules/@murphai/device-syncd/dist/index.js.map +1 -1
  987. package/node_modules/@murphai/device-syncd/dist/junction-historical-backfill-progress.d.ts +27 -0
  988. package/node_modules/@murphai/device-syncd/dist/junction-historical-backfill-progress.d.ts.map +1 -1
  989. package/node_modules/@murphai/device-syncd/dist/junction-historical-backfill-progress.js +464 -9
  990. package/node_modules/@murphai/device-syncd/dist/junction-historical-backfill-progress.js.map +1 -1
  991. package/node_modules/@murphai/device-syncd/dist/junction-inline-authority.d.ts +17 -2
  992. package/node_modules/@murphai/device-syncd/dist/junction-inline-authority.d.ts.map +1 -1
  993. package/node_modules/@murphai/device-syncd/dist/junction-inline-authority.js +99 -40
  994. package/node_modules/@murphai/device-syncd/dist/junction-inline-authority.js.map +1 -1
  995. package/node_modules/@murphai/device-syncd/dist/junction-resources.d.ts +16 -0
  996. package/node_modules/@murphai/device-syncd/dist/junction-resources.d.ts.map +1 -1
  997. package/node_modules/@murphai/device-syncd/dist/junction-resources.js +32 -0
  998. package/node_modules/@murphai/device-syncd/dist/junction-resources.js.map +1 -1
  999. package/node_modules/@murphai/device-syncd/dist/junction-source-reconnect.d.ts +17 -0
  1000. package/node_modules/@murphai/device-syncd/dist/junction-source-reconnect.d.ts.map +1 -0
  1001. package/node_modules/@murphai/device-syncd/dist/junction-source-reconnect.js +45 -0
  1002. package/node_modules/@murphai/device-syncd/dist/junction-source-reconnect.js.map +1 -0
  1003. package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.d.ts +15 -0
  1004. package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.d.ts.map +1 -0
  1005. package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.js +24 -0
  1006. package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.js.map +1 -0
  1007. package/node_modules/@murphai/device-syncd/dist/prepared-webhook.d.ts +29 -0
  1008. package/node_modules/@murphai/device-syncd/dist/prepared-webhook.d.ts.map +1 -0
  1009. package/node_modules/@murphai/device-syncd/dist/prepared-webhook.js +263 -0
  1010. package/node_modules/@murphai/device-syncd/dist/prepared-webhook.js.map +1 -0
  1011. package/node_modules/@murphai/device-syncd/dist/provider-configs.d.ts +1 -1
  1012. package/node_modules/@murphai/device-syncd/dist/provider-configs.d.ts.map +1 -1
  1013. package/node_modules/@murphai/device-syncd/dist/provider-configs.js +1 -1
  1014. package/node_modules/@murphai/device-syncd/dist/provider-configs.js.map +1 -1
  1015. package/node_modules/@murphai/device-syncd/dist/provider-label.d.ts +1 -0
  1016. package/node_modules/@murphai/device-syncd/dist/provider-label.d.ts.map +1 -1
  1017. package/node_modules/@murphai/device-syncd/dist/provider-label.js +4 -2
  1018. package/node_modules/@murphai/device-syncd/dist/provider-label.js.map +1 -1
  1019. package/node_modules/@murphai/device-syncd/dist/providers/junction-client.d.ts +30 -1
  1020. package/node_modules/@murphai/device-syncd/dist/providers/junction-client.d.ts.map +1 -1
  1021. package/node_modules/@murphai/device-syncd/dist/providers/junction-client.js +1005 -193
  1022. package/node_modules/@murphai/device-syncd/dist/providers/junction-client.js.map +1 -1
  1023. package/node_modules/@murphai/device-syncd/dist/providers/junction.d.ts +11 -2
  1024. package/node_modules/@murphai/device-syncd/dist/providers/junction.d.ts.map +1 -1
  1025. package/node_modules/@murphai/device-syncd/dist/providers/junction.js +5033 -310
  1026. package/node_modules/@murphai/device-syncd/dist/providers/junction.js.map +1 -1
  1027. package/node_modules/@murphai/device-syncd/dist/providers/oura.d.ts.map +1 -1
  1028. package/node_modules/@murphai/device-syncd/dist/providers/oura.js +2 -1
  1029. package/node_modules/@murphai/device-syncd/dist/providers/oura.js.map +1 -1
  1030. package/node_modules/@murphai/device-syncd/dist/providers/shared-oauth.d.ts +12 -3
  1031. package/node_modules/@murphai/device-syncd/dist/providers/shared-oauth.d.ts.map +1 -1
  1032. package/node_modules/@murphai/device-syncd/dist/providers/shared-oauth.js +50 -12
  1033. package/node_modules/@murphai/device-syncd/dist/providers/shared-oauth.js.map +1 -1
  1034. package/node_modules/@murphai/device-syncd/dist/providers/strava.d.ts +3 -1
  1035. package/node_modules/@murphai/device-syncd/dist/providers/strava.d.ts.map +1 -1
  1036. package/node_modules/@murphai/device-syncd/dist/providers/strava.js +51 -38
  1037. package/node_modules/@murphai/device-syncd/dist/providers/strava.js.map +1 -1
  1038. package/node_modules/@murphai/device-syncd/dist/providers/whoop.d.ts.map +1 -1
  1039. package/node_modules/@murphai/device-syncd/dist/providers/whoop.js +11 -1
  1040. package/node_modules/@murphai/device-syncd/dist/providers/whoop.js.map +1 -1
  1041. package/node_modules/@murphai/device-syncd/dist/public-account.d.ts +54 -2
  1042. package/node_modules/@murphai/device-syncd/dist/public-account.d.ts.map +1 -1
  1043. package/node_modules/@murphai/device-syncd/dist/public-account.js +243 -1
  1044. package/node_modules/@murphai/device-syncd/dist/public-account.js.map +1 -1
  1045. package/node_modules/@murphai/device-syncd/dist/public-ingress.d.ts +9 -2
  1046. package/node_modules/@murphai/device-syncd/dist/public-ingress.d.ts.map +1 -1
  1047. package/node_modules/@murphai/device-syncd/dist/public-ingress.js +634 -199
  1048. package/node_modules/@murphai/device-syncd/dist/public-ingress.js.map +1 -1
  1049. package/node_modules/@murphai/device-syncd/dist/service.d.ts +21 -4
  1050. package/node_modules/@murphai/device-syncd/dist/service.d.ts.map +1 -1
  1051. package/node_modules/@murphai/device-syncd/dist/service.js +728 -68
  1052. package/node_modules/@murphai/device-syncd/dist/service.js.map +1 -1
  1053. package/node_modules/@murphai/device-syncd/dist/source-staleness.d.ts +15 -0
  1054. package/node_modules/@murphai/device-syncd/dist/source-staleness.d.ts.map +1 -1
  1055. package/node_modules/@murphai/device-syncd/dist/source-staleness.js +25 -1
  1056. package/node_modules/@murphai/device-syncd/dist/source-staleness.js.map +1 -1
  1057. package/node_modules/@murphai/device-syncd/dist/store/accounts.d.ts +3 -1
  1058. package/node_modules/@murphai/device-syncd/dist/store/accounts.d.ts.map +1 -1
  1059. package/node_modules/@murphai/device-syncd/dist/store/accounts.js +25 -2
  1060. package/node_modules/@murphai/device-syncd/dist/store/accounts.js.map +1 -1
  1061. package/node_modules/@murphai/device-syncd/dist/store/hosted-account-hydration.d.ts.map +1 -1
  1062. package/node_modules/@murphai/device-syncd/dist/store/hosted-account-hydration.js +7 -1
  1063. package/node_modules/@murphai/device-syncd/dist/store/hosted-account-hydration.js.map +1 -1
  1064. package/node_modules/@murphai/device-syncd/dist/store/jobs.d.ts +22 -3
  1065. package/node_modules/@murphai/device-syncd/dist/store/jobs.d.ts.map +1 -1
  1066. package/node_modules/@murphai/device-syncd/dist/store/jobs.js +266 -21
  1067. package/node_modules/@murphai/device-syncd/dist/store/jobs.js.map +1 -1
  1068. package/node_modules/@murphai/device-syncd/dist/store/oauth-states.d.ts +3 -1
  1069. package/node_modules/@murphai/device-syncd/dist/store/oauth-states.d.ts.map +1 -1
  1070. package/node_modules/@murphai/device-syncd/dist/store/oauth-states.js +62 -4
  1071. package/node_modules/@murphai/device-syncd/dist/store/oauth-states.js.map +1 -1
  1072. package/node_modules/@murphai/device-syncd/dist/store/schema.d.ts +1 -1
  1073. package/node_modules/@murphai/device-syncd/dist/store/schema.d.ts.map +1 -1
  1074. package/node_modules/@murphai/device-syncd/dist/store/schema.js +25 -3
  1075. package/node_modules/@murphai/device-syncd/dist/store/schema.js.map +1 -1
  1076. package/node_modules/@murphai/device-syncd/dist/store/sources.d.ts +25 -2
  1077. package/node_modules/@murphai/device-syncd/dist/store/sources.d.ts.map +1 -1
  1078. package/node_modules/@murphai/device-syncd/dist/store/sources.js +268 -58
  1079. package/node_modules/@murphai/device-syncd/dist/store/sources.js.map +1 -1
  1080. package/node_modules/@murphai/device-syncd/dist/store/sync-state.d.ts +7 -2
  1081. package/node_modules/@murphai/device-syncd/dist/store/sync-state.d.ts.map +1 -1
  1082. package/node_modules/@murphai/device-syncd/dist/store/sync-state.js +82 -28
  1083. package/node_modules/@murphai/device-syncd/dist/store/sync-state.js.map +1 -1
  1084. package/node_modules/@murphai/device-syncd/dist/store/webhook-traces.js +2 -2
  1085. package/node_modules/@murphai/device-syncd/dist/store/webhook-traces.js.map +1 -1
  1086. package/node_modules/@murphai/device-syncd/dist/store.d.ts +30 -5
  1087. package/node_modules/@murphai/device-syncd/dist/store.d.ts.map +1 -1
  1088. package/node_modules/@murphai/device-syncd/dist/store.js +146 -13
  1089. package/node_modules/@murphai/device-syncd/dist/store.js.map +1 -1
  1090. package/node_modules/@murphai/device-syncd/dist/types.d.ts +260 -8
  1091. package/node_modules/@murphai/device-syncd/dist/types.d.ts.map +1 -1
  1092. package/node_modules/@murphai/device-syncd/dist/types.js +7 -0
  1093. package/node_modules/@murphai/device-syncd/dist/types.js.map +1 -1
  1094. package/node_modules/@murphai/device-syncd/package.json +16 -0
  1095. package/node_modules/@murphai/health-commons/content/biomarkers/bilirubin.md +18 -0
  1096. package/node_modules/@murphai/health-commons/content/biomarkers/carbon-dioxide.md +18 -0
  1097. package/node_modules/@murphai/health-commons/content/biomarkers/potassium.md +18 -0
  1098. package/node_modules/@murphai/health-commons/content/biomarkers/sodium.md +18 -0
  1099. package/node_modules/@murphai/health-commons/content/families/general-eye-health.md +190 -0
  1100. package/node_modules/@murphai/health-commons/content/families/photobiomodulation.md +97 -0
  1101. package/node_modules/@murphai/health-commons/content/families/recovery-modalities.md +73 -0
  1102. package/node_modules/@murphai/health-commons/content/protocols/whole-body-photobiomodulation/whole-body-red-and-near-infrared-light-exposure.md +1 -1
  1103. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/cdc-contact-lens-infection-symptoms.md +20 -0
  1104. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/cdc-contact-lens-prevention.md +20 -0
  1105. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/cdc-stroke-signs.md +20 -0
  1106. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/cochrane-blue-light-filtering-lenses.md +21 -0
  1107. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/fda-buying-contact-lenses.md +20 -0
  1108. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/fda-eye-drops.md +20 -0
  1109. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/imi-myopia-interventions.md +20 -0
  1110. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/medlineplus-eye-emergencies.md +20 -0
  1111. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/medlineplus-eye-pain.md +20 -0
  1112. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-angle-closure-glaucoma.md +20 -0
  1113. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-areds2-faq.md +20 -0
  1114. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-contact-lenses.md +20 -0
  1115. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-dry-eye.md +20 -0
  1116. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-healthy-vision.md +21 -0
  1117. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-myopia.md +20 -0
  1118. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-retinal-detachment.md +20 -0
  1119. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nih-dream-omega3-dry-eye.md +21 -0
  1120. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/osha-computer-monitors.md +20 -0
  1121. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/pmc-9840372.md +22 -0
  1122. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/pmid-35597519.md +21 -0
  1123. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/pmid-36473088.md +21 -0
  1124. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/pmid-37062428.md +21 -0
  1125. package/node_modules/@murphai/health-commons/content/sources/whole-body-photobiomodulation/clinicaltrials-gov-nct07047248-2026-04-23.md +0 -1
  1126. package/node_modules/@murphai/health-commons/dist/biomarker-fallback-ranges.d.ts +3 -0
  1127. package/node_modules/@murphai/health-commons/dist/biomarker-fallback-ranges.d.ts.map +1 -0
  1128. package/node_modules/@murphai/health-commons/dist/biomarker-fallback-ranges.js +2 -0
  1129. package/node_modules/@murphai/health-commons/dist/biomarker-fallback-ranges.js.map +1 -0
  1130. package/node_modules/@murphai/health-commons/dist/biomarker-runtime-artifacts.d.ts +17 -0
  1131. package/node_modules/@murphai/health-commons/dist/biomarker-runtime-artifacts.d.ts.map +1 -0
  1132. package/node_modules/@murphai/health-commons/dist/biomarker-runtime-artifacts.js +16 -0
  1133. package/node_modules/@murphai/health-commons/dist/biomarker-runtime-artifacts.js.map +1 -0
  1134. package/node_modules/@murphai/health-commons/dist/build.d.ts.map +1 -1
  1135. package/node_modules/@murphai/health-commons/dist/build.js +41 -7
  1136. package/node_modules/@murphai/health-commons/dist/build.js.map +1 -1
  1137. package/node_modules/@murphai/health-commons/dist/index.d.ts +1 -0
  1138. package/node_modules/@murphai/health-commons/dist/index.d.ts.map +1 -1
  1139. package/node_modules/@murphai/health-commons/dist/index.js +1 -0
  1140. package/node_modules/@murphai/health-commons/dist/index.js.map +1 -1
  1141. package/node_modules/@murphai/health-commons/dist/knowledge-index.d.ts +44 -0
  1142. package/node_modules/@murphai/health-commons/dist/knowledge-index.d.ts.map +1 -0
  1143. package/node_modules/@murphai/health-commons/dist/knowledge-index.js +540 -0
  1144. package/node_modules/@murphai/health-commons/dist/knowledge-index.js.map +1 -0
  1145. package/node_modules/@murphai/health-commons/dist/runtime.d.ts +17 -1
  1146. package/node_modules/@murphai/health-commons/dist/runtime.d.ts.map +1 -1
  1147. package/node_modules/@murphai/health-commons/dist/runtime.js +58 -4
  1148. package/node_modules/@murphai/health-commons/dist/runtime.js.map +1 -1
  1149. package/node_modules/@murphai/health-commons/generated/biomarker-desired-directions.json +410 -0
  1150. package/node_modules/@murphai/health-commons/generated/catalog.hash +1 -1
  1151. package/node_modules/@murphai/health-commons/generated/knowledge.sqlite +0 -0
  1152. package/node_modules/@murphai/health-commons/generated/protocol-family-graph.json +187 -46
  1153. package/node_modules/@murphai/health-commons/generated/protocol-index.json +47 -47
  1154. package/node_modules/@murphai/health-commons/generated/protocol-run-specs.json +967 -967
  1155. package/node_modules/@murphai/health-commons/generated/source-artifact-index.json +1 -1
  1156. package/node_modules/@murphai/health-commons/generated/source-identities.ndjson +28 -0
  1157. package/node_modules/@murphai/health-commons/generated/source-index.json +694 -2
  1158. package/node_modules/@murphai/health-commons/generated/web/browse/biomarkers.json +77 -9
  1159. package/node_modules/@murphai/health-commons/generated/web/browse/experiments.json +37 -37
  1160. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/absolute-basophils.json +1 -1
  1161. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/absolute-eosinophils.json +1 -1
  1162. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/absolute-immature-granulocytes.json +1 -1
  1163. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/absolute-lymphocytes.json +1 -1
  1164. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/absolute-monocytes.json +1 -1
  1165. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/absolute-neutrophils.json +1 -1
  1166. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/added-sugar-intake.json +1 -1
  1167. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/adherence.json +1 -1
  1168. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/adjusted-calcium.json +1 -1
  1169. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/adverse-symptoms.json +1 -1
  1170. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/alanine-aminotransferase.json +1 -1
  1171. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/albumin-globulin-ratio.json +1 -1
  1172. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/albumin.json +1 -1
  1173. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/alcohol-craving.json +1 -1
  1174. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/alcohol-free-days.json +1 -1
  1175. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/alcohol-intake.json +1 -1
  1176. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/alcohol-withdrawal-symptoms.json +1 -1
  1177. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/alkaline-phosphatase.json +1 -1
  1178. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ana-screen.json +1 -1
  1179. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/anion-gap.json +1 -1
  1180. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ankle-knee-to-wall-distance.json +1 -1
  1181. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/apolipoprotein-b.json +1 -1
  1182. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/arachidonic-acid-epa-ratio.json +1 -1
  1183. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/arachidonic-acid.json +1 -1
  1184. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/aspartate-aminotransferase.json +1 -1
  1185. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/basophil-percentage.json +1 -1
  1186. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/bedtime-delay.json +1 -1
  1187. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/bilirubin.json +3 -3
  1188. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/blood-glucose.json +1 -1
  1189. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/blood-ketones-beta-hydroxybutyrate.json +1 -1
  1190. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/blood-oxygen-spo2.json +1 -1
  1191. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/blood-pressure.json +1 -1
  1192. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/blood-urea-nitrogen.json +1 -1
  1193. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/body-fat-percent.json +1 -1
  1194. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/body-weight.json +1 -1
  1195. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/bun-creatinine-ratio.json +1 -1
  1196. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/c-peptide.json +1 -1
  1197. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/calcium.json +1 -1
  1198. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/carbon-dioxide.json +3 -3
  1199. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/chloride.json +1 -1
  1200. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/cholesterol-hdl-ratio.json +1 -1
  1201. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/chosen-primary-outcome-score.json +1 -1
  1202. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/continuous-glucose.json +1 -1
  1203. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/cortisol.json +1 -1
  1204. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/creatine-kinase.json +1 -1
  1205. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/daily-energy-intake-kcal.json +1 -1
  1206. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/daily-protein-g-per-kg.json +1 -1
  1207. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/daily-protein-grams.json +1 -1
  1208. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/daily-step-count.json +1 -1
  1209. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/daytime-sleepiness.json +1 -1
  1210. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/deep-sleep-minutes.json +4 -4
  1211. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/dha.json +1 -1
  1212. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/dhea-sulfate.json +1 -1
  1213. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/dietary-fiber-g-day.json +1 -1
  1214. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/digestive-comfort.json +1 -1
  1215. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/dpa.json +1 -1
  1216. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/egfr-ckd-epi.json +1 -1
  1217. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/egfr.json +1 -1
  1218. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/eosinophil-percentage.json +1 -1
  1219. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/epa.json +1 -1
  1220. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/estimated-gfr.json +1 -1
  1221. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/estimated-vo2max.json +1 -1
  1222. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/estradiol.json +1 -1
  1223. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/fasting-triglycerides.json +1 -1
  1224. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ferritin.json +1 -1
  1225. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/fib4.json +1 -1
  1226. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/follicle-stimulating-hormone.json +1 -1
  1227. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/free-t3.json +1 -1
  1228. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/free-t4.json +1 -1
  1229. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/free-testosterone.json +1 -1
  1230. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/gfr-mdrd-af-amer.json +1 -1
  1231. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/gfr-mdrd-non-af-amer.json +1 -1
  1232. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ggt.json +1 -1
  1233. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/gi-symptom-score.json +1 -1
  1234. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/gi-tolerance.json +1 -1
  1235. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hba1c.json +1 -1
  1236. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hbot-session-tolerability.json +1 -1
  1237. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hdl-c.json +1 -1
  1238. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hematocrit.json +1 -1
  1239. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hemoglobin.json +1 -1
  1240. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/homocysteine.json +1 -1
  1241. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hrv-rmssd.json +4 -4
  1242. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hs-crp.json +1 -1
  1243. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/immature-granulocyte-percentage.json +1 -1
  1244. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/insulin.json +1 -1
  1245. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/iron-saturation.json +1 -1
  1246. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/iron.json +1 -1
  1247. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/lateral-knee-pain.json +1 -1
  1248. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldh.json +1 -1
  1249. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-c.json +1 -1
  1250. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-calculated.json +1 -1
  1251. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-chol-calc-nih.json +1 -1
  1252. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-cholesterol.json +1 -1
  1253. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-large-particles.json +1 -1
  1254. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-medium-particles.json +1 -1
  1255. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-particle-number.json +1 -1
  1256. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-pattern.json +1 -1
  1257. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-peak-size.json +1 -1
  1258. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-small-particles.json +1 -1
  1259. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/lead.json +1 -1
  1260. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/lean-body-mass.json +1 -1
  1261. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/lean-mass.json +1 -1
  1262. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/leg-heaviness-score.json +1 -1
  1263. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/linoleic-acid.json +1 -1
  1264. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/lipoprotein-a.json +1 -1
  1265. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/liver-enzyme-panel.json +1 -1
  1266. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/luteinizing-hormone.json +1 -1
  1267. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/lymphocyte-percentage.json +1 -1
  1268. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/macular-health-safety.json +1 -1
  1269. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/magnesium-rbc.json +1 -1
  1270. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/mean-corpuscular-hemoglobin-concentration.json +1 -1
  1271. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/mean-corpuscular-hemoglobin.json +1 -1
  1272. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/mean-corpuscular-volume.json +1 -1
  1273. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/mean-platelet-volume.json +1 -1
  1274. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/mercury.json +1 -1
  1275. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/methylmalonic-acid.json +1 -1
  1276. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/moderate-to-vigorous-activity-minutes.json +1 -1
  1277. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/monocyte-percentage.json +1 -1
  1278. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/mood-affect.json +1 -1
  1279. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/morning-blood-pressure.json +1 -1
  1280. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/muscle-soreness-score.json +1 -1
  1281. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/musculoskeletal-pain.json +1 -1
  1282. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/neutrophil-percentage.json +1 -1
  1283. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/non-hdl-c.json +1 -1
  1284. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/non-hdl-cholesterol.json +1 -1
  1285. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/omega-3-index.json +1 -1
  1286. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/omega-3-total-omegacheck.json +1 -1
  1287. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/omega-6-3-ratio.json +1 -1
  1288. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/omega-6-total.json +1 -1
  1289. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/omegacheck-total.json +1 -1
  1290. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/perceived-recovery-score.json +1 -1
  1291. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/perceived-recovery.json +1 -1
  1292. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/perceived-stiffness.json +1 -1
  1293. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/perceived-stress.json +1 -1
  1294. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/periocular-wrinkle-score.json +1 -1
  1295. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/phosphate.json +1 -1
  1296. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/platelet-count.json +1 -1
  1297. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/poc-troponin-i.json +1 -1
  1298. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/postprandial-glucose-excursion.json +1 -1
  1299. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/potassium.json +3 -3
  1300. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/pre-sleep-arousal.json +1 -1
  1301. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/prolactin.json +1 -1
  1302. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/psa-free.json +1 -1
  1303. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/psa-percent-free.json +1 -1
  1304. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/psa-total.json +1 -1
  1305. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/red-blood-cell-count.json +1 -1
  1306. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/red-cell-distribution-width.json +1 -1
  1307. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/rem-sleep-minutes.json +1 -1
  1308. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/resting-heart-rate.json +4 -4
  1309. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/rheumatoid-factor.json +1 -1
  1310. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/running-tolerance.json +1 -1
  1311. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/saturated-fat-g-day.json +1 -1
  1312. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sedentary-time.json +1 -1
  1313. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/self-reported-mood.json +1 -1
  1314. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/serum-25-hydroxyvitamin-d.json +1 -1
  1315. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/serum-creatinine.json +1 -1
  1316. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/serum-uric-acid.json +1 -1
  1317. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sex-hormone-binding-globulin.json +1 -1
  1318. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/shoulder-reach-distance.json +1 -1
  1319. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sit-and-reach-distance.json +1 -1
  1320. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/skin-texture-roughness-score.json +1 -1
  1321. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/skin-tolerability-symptoms.json +1 -1
  1322. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sleep-efficiency.json +4 -4
  1323. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sleep-onset-latency.json +1 -1
  1324. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sleep-quality.json +1 -1
  1325. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sodium.json +3 -3
  1326. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/standardized-skin-photo-score.json +1 -1
  1327. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/step-floor-days.json +1 -1
  1328. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/stretching-adherence-sessions.json +1 -1
  1329. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/stretching-session-burden.json +1 -1
  1330. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/stretching-symptoms.json +1 -1
  1331. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/subjective-eye-strain.json +1 -1
  1332. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/subjective-satiety.json +1 -1
  1333. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/supplement-adherence.json +1 -1
  1334. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/task-performance.json +1 -1
  1335. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/thyroglobulin-antibodies.json +1 -1
  1336. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/thyroid-peroxidase-antibodies.json +1 -1
  1337. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/thyroid-stimulating-hormone.json +1 -1
  1338. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/toe-touch-distance.json +1 -1
  1339. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/total-cholesterol.json +1 -1
  1340. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/total-globulin.json +1 -1
  1341. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/total-iron-binding-capacity.json +1 -1
  1342. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/total-protein.json +1 -1
  1343. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/total-sleep-time.json +1 -1
  1344. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/total-testosterone.json +1 -1
  1345. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/training-performance.json +1 -1
  1346. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/training-volume.json +1 -1
  1347. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/triglycerides.json +1 -1
  1348. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/urine-albumin-creatinine-ratio.json +1 -1
  1349. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/urine-albumin-random-without-creatinine.json +1 -1
  1350. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/urine-protein.json +1 -1
  1351. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/visual-fatigue.json +1 -1
  1352. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/visual-performance.json +1 -1
  1353. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/vldl-cholesterol-calculated.json +1 -1
  1354. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/waist-circumference.json +1 -1
  1355. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/wake-after-sleep-onset.json +1 -1
  1356. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/wake-time-variability.json +1 -1
  1357. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/walking-bout-minutes.json +1 -1
  1358. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/walking-cadence.json +1 -1
  1359. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/walking-safety-events.json +1 -1
  1360. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/white-blood-cell-count.json +1 -1
  1361. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/zinc.json +1 -1
  1362. package/node_modules/@murphai/health-commons/generated/web/bundles/measurement_method/clinic-imaging-upgrade.json +1 -1
  1363. package/node_modules/@murphai/health-commons/generated/web/bundles/measurement_method/home-standardized-photo-roi-analysis.json +1 -1
  1364. package/node_modules/@murphai/health-commons/generated/web/bundles/measurement_method/standardized-photo-score-workflow.json +1 -1
  1365. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/bryan-johnson-blueprint.json +1 -1
  1366. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/cold-plunge.json +1 -1
  1367. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/consistent-wake-time.json +1 -1
  1368. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/daily-step-floor.json +1 -1
  1369. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/finnish-sauna.json +1 -1
  1370. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/five-minute-tomorrow-list.json +1 -1
  1371. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/hyperbaric-oxygen-therapy.json +1 -1
  1372. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/morning-outdoor-light-exposure.json +1 -1
  1373. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/no-added-sugar-diet.json +1 -1
  1374. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/norwegian-4x4.json +1 -1
  1375. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/pneumatic-compression-pants.json +1 -1
  1376. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/protein-floor-high-protein-intake.json +3 -3
  1377. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/tabata-20-10-interval-training.json +1 -1
  1378. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/time-restricted-eating-18-6.json +1 -1
  1379. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/walking-after-every-meal.json +1 -1
  1380. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/whole-body-red-and-near-infrared-light-exposure.json +7 -8
  1381. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/blood-oxygen-spo2/overview.json +1 -1
  1382. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/blood-oxygen-spo2/research.json +1 -1
  1383. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/deep-sleep-minutes/overview.json +2 -2
  1384. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/deep-sleep-minutes/research.json +1 -1
  1385. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/estimated-vo2max/overview.json +1 -1
  1386. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/estimated-vo2max/research.json +1 -1
  1387. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/hrv-rmssd/overview.json +2 -2
  1388. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/hrv-rmssd/research.json +1 -1
  1389. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/rem-sleep-minutes/overview.json +1 -1
  1390. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/rem-sleep-minutes/research.json +1 -1
  1391. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/resting-heart-rate/overview.json +2 -2
  1392. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/resting-heart-rate/research.json +1 -1
  1393. package/node_modules/@murphai/health-commons/generated/web/routes/index.json +1 -1
  1394. package/node_modules/@murphai/health-commons/generated/web/shell/biomarkers/blood-oxygen-spo2.json +1 -1
  1395. package/node_modules/@murphai/health-commons/generated/web/shell/biomarkers/deep-sleep-minutes.json +1 -1
  1396. package/node_modules/@murphai/health-commons/generated/web/shell/biomarkers/estimated-vo2max.json +1 -1
  1397. package/node_modules/@murphai/health-commons/generated/web/shell/biomarkers/hrv-rmssd.json +1 -1
  1398. package/node_modules/@murphai/health-commons/generated/web/shell/biomarkers/rem-sleep-minutes.json +1 -1
  1399. package/node_modules/@murphai/health-commons/generated/web/shell/biomarkers/resting-heart-rate.json +1 -1
  1400. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/bryan-johnson-blueprint.json +1 -1
  1401. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/cold-plunge.json +1 -1
  1402. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/consistent-wake-time.json +1 -1
  1403. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/daily-step-floor.json +1 -1
  1404. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/finnish-sauna.json +1 -1
  1405. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/five-minute-tomorrow-list.json +1 -1
  1406. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/hyperbaric-oxygen-therapy.json +1 -1
  1407. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/morning-outdoor-light-exposure.json +1 -1
  1408. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/no-added-sugar-diet.json +1 -1
  1409. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/norwegian-4x4.json +1 -1
  1410. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/pneumatic-compression-pants.json +1 -1
  1411. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/protein-floor-high-protein-intake.json +1 -1
  1412. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/tabata-20-10-interval-training.json +1 -1
  1413. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/time-restricted-eating-18-6.json +1 -1
  1414. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/walking-after-every-meal.json +1 -1
  1415. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/whole-body-red-and-near-infrared-light-exposure.json +3 -3
  1416. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/bryan-johnson-blueprint/protocol.json +1 -1
  1417. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/bryan-johnson-blueprint/research.json +1 -1
  1418. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/bryan-johnson-blueprint/results-public.json +2 -2
  1419. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/cold-plunge/protocol.json +1 -1
  1420. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/cold-plunge/research.json +1 -1
  1421. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/cold-plunge/results-public.json +2 -2
  1422. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/consistent-wake-time/protocol.json +1 -1
  1423. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/consistent-wake-time/research.json +1 -1
  1424. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/consistent-wake-time/results-public.json +2 -2
  1425. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/daily-step-floor/protocol.json +1 -1
  1426. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/daily-step-floor/research.json +1 -1
  1427. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/daily-step-floor/results-public.json +2 -2
  1428. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/finnish-sauna/protocol.json +1 -1
  1429. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/finnish-sauna/research.json +1 -1
  1430. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/finnish-sauna/results-public.json +2 -2
  1431. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/five-minute-tomorrow-list/protocol.json +1 -1
  1432. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/five-minute-tomorrow-list/research.json +1 -1
  1433. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/five-minute-tomorrow-list/results-public.json +2 -2
  1434. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/hyperbaric-oxygen-therapy/protocol.json +1 -1
  1435. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/hyperbaric-oxygen-therapy/research.json +1 -1
  1436. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/hyperbaric-oxygen-therapy/results-public.json +2 -2
  1437. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/morning-outdoor-light-exposure/protocol.json +1 -1
  1438. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/morning-outdoor-light-exposure/research.json +1 -1
  1439. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/morning-outdoor-light-exposure/results-public.json +2 -2
  1440. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/no-added-sugar-diet/protocol.json +1 -1
  1441. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/no-added-sugar-diet/research.json +1 -1
  1442. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/no-added-sugar-diet/results-public.json +2 -2
  1443. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/norwegian-4x4/protocol.json +1 -1
  1444. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/norwegian-4x4/research.json +1 -1
  1445. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/norwegian-4x4/results-public.json +2 -2
  1446. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/pneumatic-compression-pants/protocol.json +1 -1
  1447. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/pneumatic-compression-pants/research.json +1 -1
  1448. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/pneumatic-compression-pants/results-public.json +2 -2
  1449. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/protein-floor-high-protein-intake/protocol.json +1 -1
  1450. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/protein-floor-high-protein-intake/research.json +1 -1
  1451. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/protein-floor-high-protein-intake/results-public.json +2 -2
  1452. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/tabata-20-10-interval-training/protocol.json +1 -1
  1453. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/tabata-20-10-interval-training/research.json +1 -1
  1454. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/tabata-20-10-interval-training/results-public.json +2 -2
  1455. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/time-restricted-eating-18-6/protocol.json +1 -1
  1456. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/time-restricted-eating-18-6/research.json +1 -1
  1457. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/time-restricted-eating-18-6/results-public.json +2 -2
  1458. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/walking-after-every-meal/protocol.json +1 -1
  1459. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/walking-after-every-meal/research.json +1 -1
  1460. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/walking-after-every-meal/results-public.json +2 -2
  1461. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/whole-body-red-and-near-infrared-light-exposure/protocol.json +3 -3
  1462. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/whole-body-red-and-near-infrared-light-exposure/research.json +3 -3
  1463. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/whole-body-red-and-near-infrared-light-exposure/results-public.json +5 -5
  1464. package/node_modules/@murphai/health-commons/package.json +5 -0
  1465. package/node_modules/@murphai/health-metrics/dist/catalog.d.ts.map +1 -1
  1466. package/node_modules/@murphai/health-metrics/dist/catalog.js +22 -2
  1467. package/node_modules/@murphai/health-metrics/dist/catalog.js.map +1 -1
  1468. package/node_modules/@murphai/health-metrics/dist/definitions/activity.d.ts.map +1 -1
  1469. package/node_modules/@murphai/health-metrics/dist/definitions/activity.js +165 -0
  1470. package/node_modules/@murphai/health-metrics/dist/definitions/activity.js.map +1 -1
  1471. package/node_modules/@murphai/health-metrics/dist/definitions/body.d.ts.map +1 -1
  1472. package/node_modules/@murphai/health-metrics/dist/definitions/body.js +69 -2
  1473. package/node_modules/@murphai/health-metrics/dist/definitions/body.js.map +1 -1
  1474. package/node_modules/@murphai/health-metrics/dist/definitions/physiology.d.ts +55 -0
  1475. package/node_modules/@murphai/health-metrics/dist/definitions/physiology.d.ts.map +1 -0
  1476. package/node_modules/@murphai/health-metrics/dist/definitions/physiology.js +92 -0
  1477. package/node_modules/@murphai/health-metrics/dist/definitions/physiology.js.map +1 -0
  1478. package/node_modules/@murphai/health-metrics/dist/definitions/vitals.d.ts +1 -1
  1479. package/node_modules/@murphai/health-metrics/dist/index.d.ts +1 -0
  1480. package/node_modules/@murphai/health-metrics/dist/index.d.ts.map +1 -1
  1481. package/node_modules/@murphai/health-metrics/dist/index.js +1 -0
  1482. package/node_modules/@murphai/health-metrics/dist/index.js.map +1 -1
  1483. package/node_modules/@murphai/health-metrics/dist/lab-reference-ranges.d.ts +45 -0
  1484. package/node_modules/@murphai/health-metrics/dist/lab-reference-ranges.d.ts.map +1 -0
  1485. package/node_modules/@murphai/health-metrics/dist/lab-reference-ranges.js +502 -0
  1486. package/node_modules/@murphai/health-metrics/dist/lab-reference-ranges.js.map +1 -0
  1487. package/node_modules/@murphai/health-metrics/dist/normalize.d.ts.map +1 -1
  1488. package/node_modules/@murphai/health-metrics/dist/normalize.js +5 -0
  1489. package/node_modules/@murphai/health-metrics/dist/normalize.js.map +1 -1
  1490. package/node_modules/@murphai/health-metrics/dist/selectors.d.ts +3 -0
  1491. package/node_modules/@murphai/health-metrics/dist/selectors.d.ts.map +1 -1
  1492. package/node_modules/@murphai/health-metrics/dist/selectors.js +52 -6
  1493. package/node_modules/@murphai/health-metrics/dist/selectors.js.map +1 -1
  1494. package/node_modules/@murphai/health-metrics/dist/types.d.ts +1 -0
  1495. package/node_modules/@murphai/health-metrics/dist/types.d.ts.map +1 -1
  1496. package/node_modules/@murphai/health-metrics/dist/wearable-metric-catalog.d.ts +12 -1
  1497. package/node_modules/@murphai/health-metrics/dist/wearable-metric-catalog.d.ts.map +1 -1
  1498. package/node_modules/@murphai/health-metrics/dist/wearable-metric-catalog.js +34 -1
  1499. package/node_modules/@murphai/health-metrics/dist/wearable-metric-catalog.js.map +1 -1
  1500. package/node_modules/@murphai/health-metrics/dist/wearable-provider-catalog.d.ts +79 -0
  1501. package/node_modules/@murphai/health-metrics/dist/wearable-provider-catalog.d.ts.map +1 -1
  1502. package/node_modules/@murphai/health-metrics/dist/wearable-provider-catalog.js +19 -0
  1503. package/node_modules/@murphai/health-metrics/dist/wearable-provider-catalog.js.map +1 -1
  1504. package/node_modules/@murphai/importers/README.md +2 -0
  1505. package/node_modules/@murphai/importers/dist/assessment/import-assessment-response.js +1 -1
  1506. package/node_modules/@murphai/importers/dist/assessment/import-assessment-response.js.map +1 -1
  1507. package/node_modules/@murphai/importers/dist/core-port.d.ts +16 -1
  1508. package/node_modules/@murphai/importers/dist/core-port.d.ts.map +1 -1
  1509. package/node_modules/@murphai/importers/dist/core-port.js.map +1 -1
  1510. package/node_modules/@murphai/importers/dist/create-importers.d.ts +9 -1
  1511. package/node_modules/@murphai/importers/dist/create-importers.d.ts.map +1 -1
  1512. package/node_modules/@murphai/importers/dist/create-importers.js +12 -2
  1513. package/node_modules/@murphai/importers/dist/create-importers.js.map +1 -1
  1514. package/node_modules/@murphai/importers/dist/csv-sample-import-planner.d.ts +1 -0
  1515. package/node_modules/@murphai/importers/dist/csv-sample-import-planner.d.ts.map +1 -1
  1516. package/node_modules/@murphai/importers/dist/csv-sample-import-planner.js +1 -1
  1517. package/node_modules/@murphai/importers/dist/csv-sample-import-planner.js.map +1 -1
  1518. package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.d.ts +17 -3
  1519. package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.d.ts.map +1 -1
  1520. package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.js +103 -9
  1521. package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.js.map +1 -1
  1522. package/node_modules/@murphai/importers/dist/device-providers/index.d.ts +5 -4
  1523. package/node_modules/@murphai/importers/dist/device-providers/index.d.ts.map +1 -1
  1524. package/node_modules/@murphai/importers/dist/device-providers/index.js +4 -3
  1525. package/node_modules/@murphai/importers/dist/device-providers/index.js.map +1 -1
  1526. package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.d.ts +37 -0
  1527. package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.d.ts.map +1 -0
  1528. package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.js +796 -0
  1529. package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.js.map +1 -0
  1530. package/node_modules/@murphai/importers/dist/device-providers/junction-origin.d.ts +1 -0
  1531. package/node_modules/@murphai/importers/dist/device-providers/junction-origin.d.ts.map +1 -1
  1532. package/node_modules/@murphai/importers/dist/device-providers/junction-origin.js +7 -2
  1533. package/node_modules/@murphai/importers/dist/device-providers/junction-origin.js.map +1 -1
  1534. package/node_modules/@murphai/importers/dist/device-providers/junction-resources.d.ts +7 -12
  1535. package/node_modules/@murphai/importers/dist/device-providers/junction-resources.d.ts.map +1 -1
  1536. package/node_modules/@murphai/importers/dist/device-providers/junction-resources.js +55 -103
  1537. package/node_modules/@murphai/importers/dist/device-providers/junction-resources.js.map +1 -1
  1538. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-features.d.ts +79 -0
  1539. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-features.d.ts.map +1 -0
  1540. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-features.js +356 -0
  1541. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-features.js.map +1 -0
  1542. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-fidelity.d.ts +285 -0
  1543. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-fidelity.d.ts.map +1 -0
  1544. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-fidelity.js +870 -0
  1545. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-fidelity.js.map +1 -0
  1546. package/node_modules/@murphai/importers/dist/device-providers/junction.d.ts +111 -0
  1547. package/node_modules/@murphai/importers/dist/device-providers/junction.d.ts.map +1 -1
  1548. package/node_modules/@murphai/importers/dist/device-providers/junction.js +4058 -306
  1549. package/node_modules/@murphai/importers/dist/device-providers/junction.js.map +1 -1
  1550. package/node_modules/@murphai/importers/dist/device-providers/oura.js +1 -1
  1551. package/node_modules/@murphai/importers/dist/device-providers/oura.js.map +1 -1
  1552. package/node_modules/@murphai/importers/dist/device-providers/shared-normalization.d.ts.map +1 -1
  1553. package/node_modules/@murphai/importers/dist/device-providers/shared-normalization.js +1 -0
  1554. package/node_modules/@murphai/importers/dist/device-providers/shared-normalization.js.map +1 -1
  1555. package/node_modules/@murphai/importers/dist/device-providers/types.d.ts +9 -1
  1556. package/node_modules/@murphai/importers/dist/device-providers/types.d.ts.map +1 -1
  1557. package/node_modules/@murphai/importers/dist/device-providers/whoop.js +1 -1
  1558. package/node_modules/@murphai/importers/dist/device-providers/whoop.js.map +1 -1
  1559. package/node_modules/@murphai/importers/dist/document-importer.d.ts +1 -0
  1560. package/node_modules/@murphai/importers/dist/document-importer.d.ts.map +1 -1
  1561. package/node_modules/@murphai/importers/dist/document-importer.js +3 -1
  1562. package/node_modules/@murphai/importers/dist/document-importer.js.map +1 -1
  1563. package/node_modules/@murphai/importers/dist/index.d.ts +3 -2
  1564. package/node_modules/@murphai/importers/dist/index.d.ts.map +1 -1
  1565. package/node_modules/@murphai/importers/dist/index.js +2 -1
  1566. package/node_modules/@murphai/importers/dist/index.js.map +1 -1
  1567. package/node_modules/@murphai/importers/dist/meal-importer.d.ts.map +1 -1
  1568. package/node_modules/@murphai/importers/dist/meal-importer.js +2 -1
  1569. package/node_modules/@murphai/importers/dist/meal-importer.js.map +1 -1
  1570. package/node_modules/@murphai/importers/dist/preset-registry.js +1 -1
  1571. package/node_modules/@murphai/importers/dist/preset-registry.js.map +1 -1
  1572. package/node_modules/@murphai/importers/dist/shared.d.ts +1 -1
  1573. package/node_modules/@murphai/importers/dist/shared.d.ts.map +1 -1
  1574. package/node_modules/@murphai/importers/dist/shared.js +1 -1
  1575. package/node_modules/@murphai/importers/dist/shared.js.map +1 -1
  1576. package/node_modules/@murphai/importers/dist/workout-csv-planner.d.ts +49 -0
  1577. package/node_modules/@murphai/importers/dist/workout-csv-planner.d.ts.map +1 -0
  1578. package/node_modules/@murphai/importers/dist/workout-csv-planner.js +860 -0
  1579. package/node_modules/@murphai/importers/dist/workout-csv-planner.js.map +1 -0
  1580. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor-strategies.d.ts +2 -5
  1581. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor-strategies.d.ts.map +1 -1
  1582. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor-strategies.js +3 -50
  1583. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor-strategies.js.map +1 -1
  1584. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor.d.ts.map +1 -1
  1585. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor.js +9 -11
  1586. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor.js.map +1 -1
  1587. package/node_modules/@murphai/inbox-services/dist/inbox-app/environment.d.ts.map +1 -1
  1588. package/node_modules/@murphai/inbox-services/dist/inbox-app/environment.js +0 -160
  1589. package/node_modules/@murphai/inbox-services/dist/inbox-app/environment.js.map +1 -1
  1590. package/node_modules/@murphai/inbox-services/dist/inbox-app/runtime.d.ts.map +1 -1
  1591. package/node_modules/@murphai/inbox-services/dist/inbox-app/runtime.js +2 -4
  1592. package/node_modules/@murphai/inbox-services/dist/inbox-app/runtime.js.map +1 -1
  1593. package/node_modules/@murphai/inbox-services/dist/inbox-app/sources.d.ts +1 -1
  1594. package/node_modules/@murphai/inbox-services/dist/inbox-app/sources.d.ts.map +1 -1
  1595. package/node_modules/@murphai/inbox-services/dist/inbox-app/sources.js +2 -32
  1596. package/node_modules/@murphai/inbox-services/dist/inbox-app/sources.js.map +1 -1
  1597. package/node_modules/@murphai/inbox-services/dist/inbox-app/types.d.ts +2 -79
  1598. package/node_modules/@murphai/inbox-services/dist/inbox-app/types.d.ts.map +1 -1
  1599. package/node_modules/@murphai/inbox-services/dist/inbox-app/types.js +0 -1
  1600. package/node_modules/@murphai/inbox-services/dist/inbox-app/types.js.map +1 -1
  1601. package/node_modules/@murphai/inbox-services/dist/inbox-services/connectors.d.ts +1 -2
  1602. package/node_modules/@murphai/inbox-services/dist/inbox-services/connectors.d.ts.map +1 -1
  1603. package/node_modules/@murphai/inbox-services/dist/inbox-services/connectors.js +15 -37
  1604. package/node_modules/@murphai/inbox-services/dist/inbox-services/connectors.js.map +1 -1
  1605. package/node_modules/@murphai/inbox-services/dist/inbox-services/promotions.d.ts +21 -21
  1606. package/node_modules/@murphai/inbox-services/dist/inbox-services/promotions.d.ts.map +1 -1
  1607. package/node_modules/@murphai/inbox-services/dist/inbox-services/promotions.js +1 -1
  1608. package/node_modules/@murphai/inbox-services/dist/inbox-services/promotions.js.map +1 -1
  1609. package/node_modules/@murphai/inbox-services/dist/inbox-services/shared.d.ts +1 -1
  1610. package/node_modules/@murphai/inbox-services/dist/inbox-services/shared.d.ts.map +1 -1
  1611. package/node_modules/@murphai/inbox-services/dist/inbox-services/shared.js +0 -1
  1612. package/node_modules/@murphai/inbox-services/dist/inbox-services/shared.js.map +1 -1
  1613. package/node_modules/@murphai/inbox-services/dist/index.d.ts +1 -1
  1614. package/node_modules/@murphai/inbox-services/dist/index.d.ts.map +1 -1
  1615. package/node_modules/@murphai/inboxd/README.md +4 -4
  1616. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize-parsed.d.ts.map +1 -1
  1617. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize-parsed.js +56 -5
  1618. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize-parsed.js.map +1 -1
  1619. package/node_modules/@murphai/inboxd/dist/connectors/linq/normalize.js +8 -0
  1620. package/node_modules/@murphai/inboxd/dist/connectors/linq/normalize.js.map +1 -1
  1621. package/node_modules/@murphai/inboxd/dist/connectors/telegram/normalize.d.ts +1 -0
  1622. package/node_modules/@murphai/inboxd/dist/connectors/telegram/normalize.d.ts.map +1 -1
  1623. package/node_modules/@murphai/inboxd/dist/connectors/telegram/normalize.js +1 -0
  1624. package/node_modules/@murphai/inboxd/dist/connectors/telegram/normalize.js.map +1 -1
  1625. package/node_modules/@murphai/inboxd/dist/index.d.ts +0 -5
  1626. package/node_modules/@murphai/inboxd/dist/index.d.ts.map +1 -1
  1627. package/node_modules/@murphai/inboxd/dist/index.js +0 -2
  1628. package/node_modules/@murphai/inboxd/dist/index.js.map +1 -1
  1629. package/node_modules/@murphai/inboxd/dist/indexing/attachment-storage-normalizer.d.ts.map +1 -1
  1630. package/node_modules/@murphai/inboxd/dist/indexing/attachment-storage-normalizer.js +141 -4
  1631. package/node_modules/@murphai/inboxd/dist/indexing/attachment-storage-normalizer.js.map +1 -1
  1632. package/node_modules/@murphai/inboxd/dist/indexing/retention.d.ts +6 -0
  1633. package/node_modules/@murphai/inboxd/dist/indexing/retention.d.ts.map +1 -1
  1634. package/node_modules/@murphai/inboxd/dist/indexing/retention.js +64 -18
  1635. package/node_modules/@murphai/inboxd/dist/indexing/retention.js.map +1 -1
  1636. package/node_modules/@murphai/inboxd/dist/retention.d.ts +1 -1
  1637. package/node_modules/@murphai/inboxd/dist/retention.d.ts.map +1 -1
  1638. package/node_modules/@murphai/inboxd/dist/retention.js +1 -1
  1639. package/node_modules/@murphai/inboxd/dist/retention.js.map +1 -1
  1640. package/node_modules/@murphai/messaging-ingress/README.md +5 -1
  1641. package/node_modules/@murphai/messaging-ingress/dist/linq-webhook.d.ts +27 -1
  1642. package/node_modules/@murphai/messaging-ingress/dist/linq-webhook.d.ts.map +1 -1
  1643. package/node_modules/@murphai/messaging-ingress/dist/linq-webhook.js +164 -17
  1644. package/node_modules/@murphai/messaging-ingress/dist/linq-webhook.js.map +1 -1
  1645. package/node_modules/@murphai/messaging-ingress/dist/telegram-webhook-payload.d.ts +1 -0
  1646. package/node_modules/@murphai/messaging-ingress/dist/telegram-webhook-payload.d.ts.map +1 -1
  1647. package/node_modules/@murphai/messaging-ingress/dist/telegram-webhook-payload.js +2 -0
  1648. package/node_modules/@murphai/messaging-ingress/dist/telegram-webhook-payload.js.map +1 -1
  1649. package/node_modules/@murphai/operator-config/dist/assistant/codex-resume-state.d.ts +3 -3
  1650. package/node_modules/@murphai/operator-config/dist/assistant/codex-resume-state.d.ts.map +1 -1
  1651. package/node_modules/@murphai/operator-config/dist/assistant/codex-resume-state.js +1 -1
  1652. package/node_modules/@murphai/operator-config/dist/assistant/codex-resume-state.js.map +1 -1
  1653. package/node_modules/@murphai/operator-config/dist/assistant/current-delivery-route.d.ts +1 -1
  1654. package/node_modules/@murphai/operator-config/dist/assistant/current-delivery-route.d.ts.map +1 -1
  1655. package/node_modules/@murphai/operator-config/dist/assistant/current-delivery-route.js +7 -19
  1656. package/node_modules/@murphai/operator-config/dist/assistant/current-delivery-route.js.map +1 -1
  1657. package/node_modules/@murphai/operator-config/dist/assistant/hosted-config.d.ts +31 -33
  1658. package/node_modules/@murphai/operator-config/dist/assistant/hosted-config.d.ts.map +1 -1
  1659. package/node_modules/@murphai/operator-config/dist/assistant/hosted-config.js +5 -8
  1660. package/node_modules/@murphai/operator-config/dist/assistant/hosted-config.js.map +1 -1
  1661. package/node_modules/@murphai/operator-config/dist/assistant/provider-config.d.ts +1 -15
  1662. package/node_modules/@murphai/operator-config/dist/assistant/provider-config.d.ts.map +1 -1
  1663. package/node_modules/@murphai/operator-config/dist/assistant/provider-config.js +52 -84
  1664. package/node_modules/@murphai/operator-config/dist/assistant/provider-config.js.map +1 -1
  1665. package/node_modules/@murphai/operator-config/dist/assistant/target-runtime.d.ts +31 -48
  1666. package/node_modules/@murphai/operator-config/dist/assistant/target-runtime.d.ts.map +1 -1
  1667. package/node_modules/@murphai/operator-config/dist/assistant/target-runtime.js +33 -56
  1668. package/node_modules/@murphai/operator-config/dist/assistant/target-runtime.js.map +1 -1
  1669. package/node_modules/@murphai/operator-config/dist/assistant-backend.d.ts +11 -11
  1670. package/node_modules/@murphai/operator-config/dist/assistant-backend.d.ts.map +1 -1
  1671. package/node_modules/@murphai/operator-config/dist/assistant-backend.js +33 -45
  1672. package/node_modules/@murphai/operator-config/dist/assistant-backend.js.map +1 -1
  1673. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.d.ts +1714 -1566
  1674. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.d.ts.map +1 -1
  1675. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.js +198 -23
  1676. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.js.map +1 -1
  1677. package/node_modules/@murphai/operator-config/dist/assistant-response-cards.d.ts +468 -0
  1678. package/node_modules/@murphai/operator-config/dist/assistant-response-cards.d.ts.map +1 -0
  1679. package/node_modules/@murphai/operator-config/dist/assistant-response-cards.js +1051 -0
  1680. package/node_modules/@murphai/operator-config/dist/assistant-response-cards.js.map +1 -0
  1681. package/node_modules/@murphai/operator-config/dist/command-helpers.d.ts +4 -2
  1682. package/node_modules/@murphai/operator-config/dist/command-helpers.d.ts.map +1 -1
  1683. package/node_modules/@murphai/operator-config/dist/command-helpers.js +36 -1
  1684. package/node_modules/@murphai/operator-config/dist/command-helpers.js.map +1 -1
  1685. package/node_modules/@murphai/operator-config/dist/device-cli-contracts.d.ts +181 -181
  1686. package/node_modules/@murphai/operator-config/dist/device-cli-contracts.d.ts.map +1 -1
  1687. package/node_modules/@murphai/operator-config/dist/device-cli-contracts.js +1 -1
  1688. package/node_modules/@murphai/operator-config/dist/device-cli-contracts.js.map +1 -1
  1689. package/node_modules/@murphai/operator-config/dist/device-sync-client.d.ts.map +1 -1
  1690. package/node_modules/@murphai/operator-config/dist/device-sync-client.js +2 -6
  1691. package/node_modules/@murphai/operator-config/dist/device-sync-client.js.map +1 -1
  1692. package/node_modules/@murphai/operator-config/dist/elevenlabs-runtime.d.ts +3 -0
  1693. package/node_modules/@murphai/operator-config/dist/elevenlabs-runtime.d.ts.map +1 -1
  1694. package/node_modules/@murphai/operator-config/dist/elevenlabs-runtime.js +301 -63
  1695. package/node_modules/@murphai/operator-config/dist/elevenlabs-runtime.js.map +1 -1
  1696. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config-constants.d.ts +3 -2
  1697. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config-constants.d.ts.map +1 -1
  1698. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config-constants.js +3 -0
  1699. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config-constants.js.map +1 -1
  1700. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config.d.ts.map +1 -1
  1701. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config.js +2 -6
  1702. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config.js.map +1 -1
  1703. package/node_modules/@murphai/operator-config/dist/http-json-retry.d.ts +7 -2
  1704. package/node_modules/@murphai/operator-config/dist/http-json-retry.d.ts.map +1 -1
  1705. package/node_modules/@murphai/operator-config/dist/http-json-retry.js +33 -14
  1706. package/node_modules/@murphai/operator-config/dist/http-json-retry.js.map +1 -1
  1707. package/node_modules/@murphai/operator-config/dist/inbox-cli-contracts.d.ts +427 -462
  1708. package/node_modules/@murphai/operator-config/dist/inbox-cli-contracts.d.ts.map +1 -1
  1709. package/node_modules/@murphai/operator-config/dist/inbox-cli-contracts.js +2 -14
  1710. package/node_modules/@murphai/operator-config/dist/inbox-cli-contracts.js.map +1 -1
  1711. package/node_modules/@murphai/operator-config/dist/linq-runtime.d.ts +35 -1
  1712. package/node_modules/@murphai/operator-config/dist/linq-runtime.d.ts.map +1 -1
  1713. package/node_modules/@murphai/operator-config/dist/linq-runtime.js +1115 -180
  1714. package/node_modules/@murphai/operator-config/dist/linq-runtime.js.map +1 -1
  1715. package/node_modules/@murphai/operator-config/dist/message-formatting.d.ts +1 -0
  1716. package/node_modules/@murphai/operator-config/dist/message-formatting.d.ts.map +1 -1
  1717. package/node_modules/@murphai/operator-config/dist/message-formatting.js +3 -1
  1718. package/node_modules/@murphai/operator-config/dist/message-formatting.js.map +1 -1
  1719. package/node_modules/@murphai/operator-config/dist/message-table-fallback.d.ts +7 -0
  1720. package/node_modules/@murphai/operator-config/dist/message-table-fallback.d.ts.map +1 -0
  1721. package/node_modules/@murphai/operator-config/dist/message-table-fallback.js +109 -0
  1722. package/node_modules/@murphai/operator-config/dist/message-table-fallback.js.map +1 -0
  1723. package/node_modules/@murphai/operator-config/dist/operator-config/self-delivery-targets.d.ts +12 -12
  1724. package/node_modules/@murphai/operator-config/dist/operator-config/self-delivery-targets.d.ts.map +1 -1
  1725. package/node_modules/@murphai/operator-config/dist/operator-config/self-delivery-targets.js +1 -1
  1726. package/node_modules/@murphai/operator-config/dist/operator-config/self-delivery-targets.js.map +1 -1
  1727. package/node_modules/@murphai/operator-config/dist/operator-config.d.ts +50 -53
  1728. package/node_modules/@murphai/operator-config/dist/operator-config.d.ts.map +1 -1
  1729. package/node_modules/@murphai/operator-config/dist/operator-config.js +4 -5
  1730. package/node_modules/@murphai/operator-config/dist/operator-config.js.map +1 -1
  1731. package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.d.ts +225 -226
  1732. package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.d.ts.map +1 -1
  1733. package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.js +2 -2
  1734. package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.js.map +1 -1
  1735. package/node_modules/@murphai/operator-config/dist/setup-runtime-env.d.ts.map +1 -1
  1736. package/node_modules/@murphai/operator-config/dist/setup-runtime-env.js +0 -19
  1737. package/node_modules/@murphai/operator-config/dist/setup-runtime-env.js.map +1 -1
  1738. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.d.ts +402 -294
  1739. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.d.ts.map +1 -1
  1740. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.js +94 -8
  1741. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.js.map +1 -1
  1742. package/node_modules/@murphai/operator-config/dist/vault-cli-error-projection.d.ts +24 -0
  1743. package/node_modules/@murphai/operator-config/dist/vault-cli-error-projection.d.ts.map +1 -0
  1744. package/node_modules/@murphai/operator-config/dist/vault-cli-error-projection.js +219 -0
  1745. package/node_modules/@murphai/operator-config/dist/vault-cli-error-projection.js.map +1 -0
  1746. package/node_modules/@murphai/operator-config/dist/vault-cli-errors.d.ts.map +1 -1
  1747. package/node_modules/@murphai/operator-config/dist/vault-cli-errors.js.map +1 -1
  1748. package/node_modules/@murphai/operator-config/dist/workout-action-binding.d.ts +14 -0
  1749. package/node_modules/@murphai/operator-config/dist/workout-action-binding.d.ts.map +1 -0
  1750. package/node_modules/@murphai/operator-config/dist/workout-action-binding.js +127 -0
  1751. package/node_modules/@murphai/operator-config/dist/workout-action-binding.js.map +1 -0
  1752. package/node_modules/@murphai/operator-config/package.json +15 -5
  1753. package/node_modules/@murphai/parsers/dist/adapters/ffmpeg.d.ts +2 -0
  1754. package/node_modules/@murphai/parsers/dist/adapters/ffmpeg.d.ts.map +1 -1
  1755. package/node_modules/@murphai/parsers/dist/adapters/ffmpeg.js +18 -0
  1756. package/node_modules/@murphai/parsers/dist/adapters/ffmpeg.js.map +1 -1
  1757. package/node_modules/@murphai/query/README.md +29 -5
  1758. package/node_modules/@murphai/query/dist/automation.d.ts +5 -2
  1759. package/node_modules/@murphai/query/dist/automation.d.ts.map +1 -1
  1760. package/node_modules/@murphai/query/dist/automation.js +33 -8
  1761. package/node_modules/@murphai/query/dist/automation.js.map +1 -1
  1762. package/node_modules/@murphai/query/dist/browser-biomarkers.d.ts +2 -2
  1763. package/node_modules/@murphai/query/dist/browser-biomarkers.d.ts.map +1 -1
  1764. package/node_modules/@murphai/query/dist/browser-biomarkers.js +1 -1
  1765. package/node_modules/@murphai/query/dist/browser-biomarkers.js.map +1 -1
  1766. package/node_modules/@murphai/query/dist/browser-experiments.d.ts +2 -2
  1767. package/node_modules/@murphai/query/dist/browser-experiments.d.ts.map +1 -1
  1768. package/node_modules/@murphai/query/dist/browser-experiments.js +1 -1
  1769. package/node_modules/@murphai/query/dist/browser-experiments.js.map +1 -1
  1770. package/node_modules/@murphai/query/dist/browser-murph-age.d.ts +1 -1
  1771. package/node_modules/@murphai/query/dist/browser-murph-age.d.ts.map +1 -1
  1772. package/node_modules/@murphai/query/dist/browser-overview.d.ts +2 -1
  1773. package/node_modules/@murphai/query/dist/browser-overview.d.ts.map +1 -1
  1774. package/node_modules/@murphai/query/dist/browser-replica/biomarker-panel.d.ts +2 -2
  1775. package/node_modules/@murphai/query/dist/browser-replica/biomarker-panel.d.ts.map +1 -1
  1776. package/node_modules/@murphai/query/dist/browser-replica/build.d.ts +1 -1
  1777. package/node_modules/@murphai/query/dist/browser-replica/build.d.ts.map +1 -1
  1778. package/node_modules/@murphai/query/dist/browser-replica/build.js +68 -41
  1779. package/node_modules/@murphai/query/dist/browser-replica/build.js.map +1 -1
  1780. package/node_modules/@murphai/query/dist/browser-replica/client-overview.d.ts +3 -3
  1781. package/node_modules/@murphai/query/dist/browser-replica/client-overview.d.ts.map +1 -1
  1782. package/node_modules/@murphai/query/dist/browser-replica/client-overview.js +3 -0
  1783. package/node_modules/@murphai/query/dist/browser-replica/client-overview.js.map +1 -1
  1784. package/node_modules/@murphai/query/dist/browser-replica/device-metrics.d.ts +2 -2
  1785. package/node_modules/@murphai/query/dist/browser-replica/device-metrics.d.ts.map +1 -1
  1786. package/node_modules/@murphai/query/dist/browser-replica/device-metrics.js.map +1 -1
  1787. package/node_modules/@murphai/query/dist/browser-replica/experiment-run-cards.d.ts +8 -0
  1788. package/node_modules/@murphai/query/dist/browser-replica/experiment-run-cards.d.ts.map +1 -0
  1789. package/node_modules/@murphai/query/dist/browser-replica/experiment-run-cards.js +548 -0
  1790. package/node_modules/@murphai/query/dist/browser-replica/experiment-run-cards.js.map +1 -0
  1791. package/node_modules/@murphai/query/dist/browser-replica/experiments.d.ts +22 -2
  1792. package/node_modules/@murphai/query/dist/browser-replica/experiments.d.ts.map +1 -1
  1793. package/node_modules/@murphai/query/dist/browser-replica/experiments.js +209 -63
  1794. package/node_modules/@murphai/query/dist/browser-replica/experiments.js.map +1 -1
  1795. package/node_modules/@murphai/query/dist/browser-replica/json.d.ts +6 -0
  1796. package/node_modules/@murphai/query/dist/browser-replica/json.d.ts.map +1 -0
  1797. package/node_modules/@murphai/query/dist/browser-replica/json.js +103 -0
  1798. package/node_modules/@murphai/query/dist/browser-replica/json.js.map +1 -0
  1799. package/node_modules/@murphai/query/dist/browser-replica/lab-result-status.d.ts +11 -0
  1800. package/node_modules/@murphai/query/dist/browser-replica/lab-result-status.d.ts.map +1 -0
  1801. package/node_modules/@murphai/query/dist/browser-replica/lab-result-status.js +233 -0
  1802. package/node_modules/@murphai/query/dist/browser-replica/lab-result-status.js.map +1 -0
  1803. package/node_modules/@murphai/query/dist/browser-replica/lab-results.d.ts +4 -3
  1804. package/node_modules/@murphai/query/dist/browser-replica/lab-results.d.ts.map +1 -1
  1805. package/node_modules/@murphai/query/dist/browser-replica/lab-results.js +24 -5
  1806. package/node_modules/@murphai/query/dist/browser-replica/lab-results.js.map +1 -1
  1807. package/node_modules/@murphai/query/dist/browser-replica/metric-buckets.d.ts +14 -0
  1808. package/node_modules/@murphai/query/dist/browser-replica/metric-buckets.d.ts.map +1 -0
  1809. package/node_modules/@murphai/query/dist/browser-replica/metric-buckets.js +25 -0
  1810. package/node_modules/@murphai/query/dist/browser-replica/metric-buckets.js.map +1 -0
  1811. package/node_modules/@murphai/query/dist/browser-replica/murph-age.d.ts +2 -2
  1812. package/node_modules/@murphai/query/dist/browser-replica/murph-age.d.ts.map +1 -1
  1813. package/node_modules/@murphai/query/dist/browser-replica/murph-age.js.map +1 -1
  1814. package/node_modules/@murphai/query/dist/browser-replica/parse.d.ts +8 -0
  1815. package/node_modules/@murphai/query/dist/browser-replica/parse.d.ts.map +1 -1
  1816. package/node_modules/@murphai/query/dist/browser-replica/parse.js +327 -7
  1817. package/node_modules/@murphai/query/dist/browser-replica/parse.js.map +1 -1
  1818. package/node_modules/@murphai/query/dist/browser-replica/query.d.ts +24 -1
  1819. package/node_modules/@murphai/query/dist/browser-replica/query.d.ts.map +1 -1
  1820. package/node_modules/@murphai/query/dist/browser-replica/query.js +246 -41
  1821. package/node_modules/@murphai/query/dist/browser-replica/query.js.map +1 -1
  1822. package/node_modules/@murphai/query/dist/browser-replica/search-row.d.ts +3 -0
  1823. package/node_modules/@murphai/query/dist/browser-replica/search-row.d.ts.map +1 -0
  1824. package/node_modules/@murphai/query/dist/browser-replica/search-row.js +16 -0
  1825. package/node_modules/@murphai/query/dist/browser-replica/search-row.js.map +1 -0
  1826. package/node_modules/@murphai/query/dist/browser-replica/shards.d.ts +76 -0
  1827. package/node_modules/@murphai/query/dist/browser-replica/shards.d.ts.map +1 -0
  1828. package/node_modules/@murphai/query/dist/browser-replica/shards.js +232 -0
  1829. package/node_modules/@murphai/query/dist/browser-replica/shards.js.map +1 -0
  1830. package/node_modules/@murphai/query/dist/browser-replica/shared.d.ts +144 -9
  1831. package/node_modules/@murphai/query/dist/browser-replica/shared.d.ts.map +1 -1
  1832. package/node_modules/@murphai/query/dist/browser-replica/shared.js +1 -0
  1833. package/node_modules/@murphai/query/dist/browser-replica/shared.js.map +1 -1
  1834. package/node_modules/@murphai/query/dist/browser-replica/source.d.ts +13 -0
  1835. package/node_modules/@murphai/query/dist/browser-replica/source.d.ts.map +1 -0
  1836. package/node_modules/@murphai/query/dist/browser-replica/source.js +45 -0
  1837. package/node_modules/@murphai/query/dist/browser-replica/source.js.map +1 -0
  1838. package/node_modules/@murphai/query/dist/browser-replica/tracked-experiments.d.ts +3 -3
  1839. package/node_modules/@murphai/query/dist/browser-replica/tracked-experiments.d.ts.map +1 -1
  1840. package/node_modules/@murphai/query/dist/browser-replica/tracked-experiments.js.map +1 -1
  1841. package/node_modules/@murphai/query/dist/browser-replica/training.d.ts +7 -0
  1842. package/node_modules/@murphai/query/dist/browser-replica/training.d.ts.map +1 -0
  1843. package/node_modules/@murphai/query/dist/browser-replica/training.js +241 -0
  1844. package/node_modules/@murphai/query/dist/browser-replica/training.js.map +1 -0
  1845. package/node_modules/@murphai/query/dist/browser-replica/views.d.ts +5 -5
  1846. package/node_modules/@murphai/query/dist/browser-replica/views.d.ts.map +1 -1
  1847. package/node_modules/@murphai/query/dist/browser-replica/views.js +3 -0
  1848. package/node_modules/@murphai/query/dist/browser-replica/views.js.map +1 -1
  1849. package/node_modules/@murphai/query/dist/browser-replica-client.d.ts +11 -4
  1850. package/node_modules/@murphai/query/dist/browser-replica-client.d.ts.map +1 -1
  1851. package/node_modules/@murphai/query/dist/browser-replica-client.js +7 -3
  1852. package/node_modules/@murphai/query/dist/browser-replica-client.js.map +1 -1
  1853. package/node_modules/@murphai/query/dist/browser-replica-server.d.ts +7 -0
  1854. package/node_modules/@murphai/query/dist/browser-replica-server.d.ts.map +1 -0
  1855. package/node_modules/@murphai/query/dist/browser-replica-server.js +7 -0
  1856. package/node_modules/@murphai/query/dist/browser-replica-server.js.map +1 -0
  1857. package/node_modules/@murphai/query/dist/browser-replica.d.ts +13 -5
  1858. package/node_modules/@murphai/query/dist/browser-replica.d.ts.map +1 -1
  1859. package/node_modules/@murphai/query/dist/browser-replica.js +9 -4
  1860. package/node_modules/@murphai/query/dist/browser-replica.js.map +1 -1
  1861. package/node_modules/@murphai/query/dist/browser.d.ts +2 -2
  1862. package/node_modules/@murphai/query/dist/browser.d.ts.map +1 -1
  1863. package/node_modules/@murphai/query/dist/browser.js +1 -1
  1864. package/node_modules/@murphai/query/dist/browser.js.map +1 -1
  1865. package/node_modules/@murphai/query/dist/canonical-observation-metrics.d.ts +16 -0
  1866. package/node_modules/@murphai/query/dist/canonical-observation-metrics.d.ts.map +1 -0
  1867. package/node_modules/@murphai/query/dist/canonical-observation-metrics.js +70 -0
  1868. package/node_modules/@murphai/query/dist/canonical-observation-metrics.js.map +1 -0
  1869. package/node_modules/@murphai/query/dist/experiment-adherence.d.ts +20 -0
  1870. package/node_modules/@murphai/query/dist/experiment-adherence.d.ts.map +1 -1
  1871. package/node_modules/@murphai/query/dist/experiment-adherence.js +175 -29
  1872. package/node_modules/@murphai/query/dist/experiment-adherence.js.map +1 -1
  1873. package/node_modules/@murphai/query/dist/experiment-progress-card.d.ts +1 -0
  1874. package/node_modules/@murphai/query/dist/experiment-progress-card.d.ts.map +1 -1
  1875. package/node_modules/@murphai/query/dist/experiment-progress-card.js +1 -0
  1876. package/node_modules/@murphai/query/dist/experiment-progress-card.js.map +1 -1
  1877. package/node_modules/@murphai/query/dist/experiments.d.ts.map +1 -1
  1878. package/node_modules/@murphai/query/dist/experiments.js +46 -22
  1879. package/node_modules/@murphai/query/dist/experiments.js.map +1 -1
  1880. package/node_modules/@murphai/query/dist/group-weekly.d.ts.map +1 -1
  1881. package/node_modules/@murphai/query/dist/group-weekly.js +52 -1
  1882. package/node_modules/@murphai/query/dist/group-weekly.js.map +1 -1
  1883. package/node_modules/@murphai/query/dist/health/blood-tests.d.ts.map +1 -1
  1884. package/node_modules/@murphai/query/dist/health/blood-tests.js +3 -2
  1885. package/node_modules/@murphai/query/dist/health/blood-tests.js.map +1 -1
  1886. package/node_modules/@murphai/query/dist/health/canonical-collector.d.ts +11 -1
  1887. package/node_modules/@murphai/query/dist/health/canonical-collector.d.ts.map +1 -1
  1888. package/node_modules/@murphai/query/dist/health/canonical-collector.js +39 -16
  1889. package/node_modules/@murphai/query/dist/health/canonical-collector.js.map +1 -1
  1890. package/node_modules/@murphai/query/dist/health/entity-slices.d.ts +9 -3
  1891. package/node_modules/@murphai/query/dist/health/entity-slices.d.ts.map +1 -1
  1892. package/node_modules/@murphai/query/dist/health/entity-slices.js +6 -6
  1893. package/node_modules/@murphai/query/dist/health/entity-slices.js.map +1 -1
  1894. package/node_modules/@murphai/query/dist/health/immunizations.d.ts.map +1 -1
  1895. package/node_modules/@murphai/query/dist/health/immunizations.js +14 -11
  1896. package/node_modules/@murphai/query/dist/health/immunizations.js.map +1 -1
  1897. package/node_modules/@murphai/query/dist/health/loaders.d.ts +21 -7
  1898. package/node_modules/@murphai/query/dist/health/loaders.d.ts.map +1 -1
  1899. package/node_modules/@murphai/query/dist/health/loaders.js +53 -15
  1900. package/node_modules/@murphai/query/dist/health/loaders.js.map +1 -1
  1901. package/node_modules/@murphai/query/dist/health/registries.d.ts +1 -0
  1902. package/node_modules/@murphai/query/dist/health/registries.d.ts.map +1 -1
  1903. package/node_modules/@murphai/query/dist/health/registries.js.map +1 -1
  1904. package/node_modules/@murphai/query/dist/health/shared.js +1 -1
  1905. package/node_modules/@murphai/query/dist/health/shared.js.map +1 -1
  1906. package/node_modules/@murphai/query/dist/index.d.ts +25 -7
  1907. package/node_modules/@murphai/query/dist/index.d.ts.map +1 -1
  1908. package/node_modules/@murphai/query/dist/index.js +18 -6
  1909. package/node_modules/@murphai/query/dist/index.js.map +1 -1
  1910. package/node_modules/@murphai/query/dist/knowledge-contracts.d.ts +78 -75
  1911. package/node_modules/@murphai/query/dist/knowledge-contracts.d.ts.map +1 -1
  1912. package/node_modules/@murphai/query/dist/knowledge-contracts.js +2 -1
  1913. package/node_modules/@murphai/query/dist/knowledge-contracts.js.map +1 -1
  1914. package/node_modules/@murphai/query/dist/knowledge-graph.d.ts +1 -0
  1915. package/node_modules/@murphai/query/dist/knowledge-graph.d.ts.map +1 -1
  1916. package/node_modules/@murphai/query/dist/knowledge-graph.js +17 -1
  1917. package/node_modules/@murphai/query/dist/knowledge-graph.js.map +1 -1
  1918. package/node_modules/@murphai/query/dist/meal-nutrition.d.ts +27 -1
  1919. package/node_modules/@murphai/query/dist/meal-nutrition.d.ts.map +1 -1
  1920. package/node_modules/@murphai/query/dist/meal-nutrition.js +120 -7
  1921. package/node_modules/@murphai/query/dist/meal-nutrition.js.map +1 -1
  1922. package/node_modules/@murphai/query/dist/metrics/index.d.ts.map +1 -1
  1923. package/node_modules/@murphai/query/dist/metrics/index.js +14 -1
  1924. package/node_modules/@murphai/query/dist/metrics/index.js.map +1 -1
  1925. package/node_modules/@murphai/query/dist/metrics/projection.d.ts.map +1 -1
  1926. package/node_modules/@murphai/query/dist/metrics/projection.js +123 -3
  1927. package/node_modules/@murphai/query/dist/metrics/projection.js.map +1 -1
  1928. package/node_modules/@murphai/query/dist/murph-age.d.ts +5 -1
  1929. package/node_modules/@murphai/query/dist/murph-age.d.ts.map +1 -1
  1930. package/node_modules/@murphai/query/dist/murph-age.js +22 -8
  1931. package/node_modules/@murphai/query/dist/murph-age.js.map +1 -1
  1932. package/node_modules/@murphai/query/dist/personal-patterns.d.ts +55 -0
  1933. package/node_modules/@murphai/query/dist/personal-patterns.d.ts.map +1 -0
  1934. package/node_modules/@murphai/query/dist/personal-patterns.js +401 -0
  1935. package/node_modules/@murphai/query/dist/personal-patterns.js.map +1 -0
  1936. package/node_modules/@murphai/query/dist/projection/entity-store.js +4 -4
  1937. package/node_modules/@murphai/query/dist/projection/entity-store.js.map +1 -1
  1938. package/node_modules/@murphai/query/dist/projection/schema.d.ts +1 -1
  1939. package/node_modules/@murphai/query/dist/projection/schema.d.ts.map +1 -1
  1940. package/node_modules/@murphai/query/dist/projection/schema.js +5 -1
  1941. package/node_modules/@murphai/query/dist/projection/schema.js.map +1 -1
  1942. package/node_modules/@murphai/query/dist/projection/wearable-summary-compose.js +8 -0
  1943. package/node_modules/@murphai/query/dist/projection/wearable-summary-compose.js.map +1 -1
  1944. package/node_modules/@murphai/query/dist/projection/wearable-summary-projector.d.ts.map +1 -1
  1945. package/node_modules/@murphai/query/dist/projection/wearable-summary-projector.js +6 -2
  1946. package/node_modules/@murphai/query/dist/projection/wearable-summary-projector.js.map +1 -1
  1947. package/node_modules/@murphai/query/dist/projection/wearable-summary-stored-codec.js +1 -1
  1948. package/node_modules/@murphai/query/dist/projection/wearable-summary-stored-codec.js.map +1 -1
  1949. package/node_modules/@murphai/query/dist/query-projection.d.ts +14 -0
  1950. package/node_modules/@murphai/query/dist/query-projection.d.ts.map +1 -1
  1951. package/node_modules/@murphai/query/dist/query-projection.js +31 -0
  1952. package/node_modules/@murphai/query/dist/query-projection.js.map +1 -1
  1953. package/node_modules/@murphai/query/dist/query-visibility.d.ts +5 -0
  1954. package/node_modules/@murphai/query/dist/query-visibility.d.ts.map +1 -1
  1955. package/node_modules/@murphai/query/dist/query-visibility.js +11 -5
  1956. package/node_modules/@murphai/query/dist/query-visibility.js.map +1 -1
  1957. package/node_modules/@murphai/query/dist/read-model.d.ts +8 -0
  1958. package/node_modules/@murphai/query/dist/read-model.d.ts.map +1 -1
  1959. package/node_modules/@murphai/query/dist/read-model.js +11 -1
  1960. package/node_modules/@murphai/query/dist/read-model.js.map +1 -1
  1961. package/node_modules/@murphai/query/dist/scheduled-logs.d.ts.map +1 -1
  1962. package/node_modules/@murphai/query/dist/scheduled-logs.js +55 -79
  1963. package/node_modules/@murphai/query/dist/scheduled-logs.js.map +1 -1
  1964. package/node_modules/@murphai/query/dist/vault-source.d.ts +22 -4
  1965. package/node_modules/@murphai/query/dist/vault-source.d.ts.map +1 -1
  1966. package/node_modules/@murphai/query/dist/vault-source.js +188 -59
  1967. package/node_modules/@murphai/query/dist/vault-source.js.map +1 -1
  1968. package/node_modules/@murphai/query/dist/wearables/candidates.d.ts.map +1 -1
  1969. package/node_modules/@murphai/query/dist/wearables/candidates.js +32 -15
  1970. package/node_modules/@murphai/query/dist/wearables/candidates.js.map +1 -1
  1971. package/node_modules/@murphai/query/dist/wearables/public-output.d.ts.map +1 -1
  1972. package/node_modules/@murphai/query/dist/wearables/public-output.js +43 -2
  1973. package/node_modules/@murphai/query/dist/wearables/public-output.js.map +1 -1
  1974. package/node_modules/@murphai/query/dist/wearables/sleep-pattern.d.ts +5 -1
  1975. package/node_modules/@murphai/query/dist/wearables/sleep-pattern.d.ts.map +1 -1
  1976. package/node_modules/@murphai/query/dist/wearables/sleep-pattern.js +16 -3
  1977. package/node_modules/@murphai/query/dist/wearables/sleep-pattern.js.map +1 -1
  1978. package/node_modules/@murphai/query/dist/wearables/source-health.d.ts.map +1 -1
  1979. package/node_modules/@murphai/query/dist/wearables/source-health.js +31 -4
  1980. package/node_modules/@murphai/query/dist/wearables/source-health.js.map +1 -1
  1981. package/node_modules/@murphai/query/dist/wearables/types.d.ts +54 -4
  1982. package/node_modules/@murphai/query/dist/wearables/types.d.ts.map +1 -1
  1983. package/node_modules/@murphai/query/dist/wearables/types.js +36 -0
  1984. package/node_modules/@murphai/query/dist/wearables/types.js.map +1 -1
  1985. package/node_modules/@murphai/query/dist/wearables/workout-features.d.ts +5 -0
  1986. package/node_modules/@murphai/query/dist/wearables/workout-features.d.ts.map +1 -0
  1987. package/node_modules/@murphai/query/dist/wearables/workout-features.js +179 -0
  1988. package/node_modules/@murphai/query/dist/wearables/workout-features.js.map +1 -0
  1989. package/node_modules/@murphai/query/dist/wearables.d.ts.map +1 -1
  1990. package/node_modules/@murphai/query/dist/wearables.js +74 -6
  1991. package/node_modules/@murphai/query/dist/wearables.js.map +1 -1
  1992. package/node_modules/@murphai/query/package.json +15 -0
  1993. package/node_modules/@murphai/runtime-state/README.md +3 -3
  1994. package/node_modules/@murphai/runtime-state/dist/assistant-local-state-descriptors.d.ts.map +1 -1
  1995. package/node_modules/@murphai/runtime-state/dist/assistant-local-state-descriptors.js +15 -2
  1996. package/node_modules/@murphai/runtime-state/dist/assistant-local-state-descriptors.js.map +1 -1
  1997. package/node_modules/@murphai/runtime-state/dist/assistant-runtime-issues.d.ts +4 -0
  1998. package/node_modules/@murphai/runtime-state/dist/assistant-runtime-issues.d.ts.map +1 -1
  1999. package/node_modules/@murphai/runtime-state/dist/assistant-runtime-issues.js +16 -3
  2000. package/node_modules/@murphai/runtime-state/dist/assistant-runtime-issues.js.map +1 -1
  2001. package/node_modules/@murphai/runtime-state/dist/hosted-bundles.d.ts +2 -0
  2002. package/node_modules/@murphai/runtime-state/dist/hosted-bundles.d.ts.map +1 -1
  2003. package/node_modules/@murphai/runtime-state/dist/hosted-bundles.js +76 -20
  2004. package/node_modules/@murphai/runtime-state/dist/hosted-bundles.js.map +1 -1
  2005. package/node_modules/@murphai/runtime-state/dist/hosted-crypto-keyrings.d.ts +32 -1
  2006. package/node_modules/@murphai/runtime-state/dist/hosted-crypto-keyrings.d.ts.map +1 -1
  2007. package/node_modules/@murphai/runtime-state/dist/hosted-crypto-keyrings.js +327 -0
  2008. package/node_modules/@murphai/runtime-state/dist/hosted-crypto-keyrings.js.map +1 -1
  2009. package/node_modules/@murphai/runtime-state/dist/hosted-domain-crypto.d.ts +3 -1
  2010. package/node_modules/@murphai/runtime-state/dist/hosted-domain-crypto.d.ts.map +1 -1
  2011. package/node_modules/@murphai/runtime-state/dist/hosted-domain-crypto.js +23 -3
  2012. package/node_modules/@murphai/runtime-state/dist/hosted-domain-crypto.js.map +1 -1
  2013. package/node_modules/@murphai/runtime-state/dist/hosted-email.d.ts +5 -0
  2014. package/node_modules/@murphai/runtime-state/dist/hosted-email.d.ts.map +1 -1
  2015. package/node_modules/@murphai/runtime-state/dist/hosted-email.js +10 -0
  2016. package/node_modules/@murphai/runtime-state/dist/hosted-email.js.map +1 -1
  2017. package/node_modules/@murphai/runtime-state/dist/hosted-storage.d.ts +1 -1
  2018. package/node_modules/@murphai/runtime-state/dist/hosted-storage.d.ts.map +1 -1
  2019. package/node_modules/@murphai/runtime-state/dist/hosted-storage.js +1 -0
  2020. package/node_modules/@murphai/runtime-state/dist/hosted-storage.js.map +1 -1
  2021. package/node_modules/@murphai/runtime-state/dist/sqlite.d.ts.map +1 -1
  2022. package/node_modules/@murphai/runtime-state/dist/sqlite.js +22 -6
  2023. package/node_modules/@murphai/runtime-state/dist/sqlite.js.map +1 -1
  2024. package/node_modules/@murphai/setup-cli/README.md +1 -1
  2025. package/node_modules/@murphai/setup-cli/dist/incur-error-bridge.d.ts.map +1 -1
  2026. package/node_modules/@murphai/setup-cli/dist/incur-error-bridge.js +6 -15
  2027. package/node_modules/@murphai/setup-cli/dist/incur-error-bridge.js.map +1 -1
  2028. package/node_modules/@murphai/setup-cli/dist/index.d.ts +0 -1
  2029. package/node_modules/@murphai/setup-cli/dist/index.d.ts.map +1 -1
  2030. package/node_modules/@murphai/setup-cli/dist/index.js +0 -1
  2031. package/node_modules/@murphai/setup-cli/dist/index.js.map +1 -1
  2032. package/node_modules/@murphai/setup-cli/dist/setup-assistant-account.js +1 -1
  2033. package/node_modules/@murphai/setup-cli/dist/setup-assistant-account.js.map +1 -1
  2034. package/node_modules/@murphai/setup-cli/dist/setup-assistant-defaults.d.ts.map +1 -1
  2035. package/node_modules/@murphai/setup-cli/dist/setup-assistant-defaults.js +14 -24
  2036. package/node_modules/@murphai/setup-cli/dist/setup-assistant-defaults.js.map +1 -1
  2037. package/node_modules/@murphai/setup-cli/dist/setup-assistant.js +1 -1
  2038. package/node_modules/@murphai/setup-cli/dist/setup-assistant.js.map +1 -1
  2039. package/node_modules/@murphai/setup-cli/dist/setup-cli.d.ts +1 -2
  2040. package/node_modules/@murphai/setup-cli/dist/setup-cli.d.ts.map +1 -1
  2041. package/node_modules/@murphai/setup-cli/dist/setup-cli.js +2 -4
  2042. package/node_modules/@murphai/setup-cli/dist/setup-cli.js.map +1 -1
  2043. package/node_modules/@murphai/setup-cli/dist/setup-services/channels.d.ts +0 -4
  2044. package/node_modules/@murphai/setup-cli/dist/setup-services/channels.d.ts.map +1 -1
  2045. package/node_modules/@murphai/setup-cli/dist/setup-services/channels.js +126 -420
  2046. package/node_modules/@murphai/setup-cli/dist/setup-services/channels.js.map +1 -1
  2047. package/node_modules/@murphai/setup-cli/dist/setup-services.d.ts +0 -3
  2048. package/node_modules/@murphai/setup-cli/dist/setup-services.d.ts.map +1 -1
  2049. package/node_modules/@murphai/setup-cli/dist/setup-services.js +0 -7
  2050. package/node_modules/@murphai/setup-cli/dist/setup-services.js.map +1 -1
  2051. package/node_modules/@murphai/setup-cli/dist/setup-wizard-options.d.ts.map +1 -1
  2052. package/node_modules/@murphai/setup-cli/dist/setup-wizard-options.js +0 -7
  2053. package/node_modules/@murphai/setup-cli/dist/setup-wizard-options.js.map +1 -1
  2054. package/node_modules/@murphai/vault-usecases/README.md +9 -0
  2055. package/node_modules/@murphai/vault-usecases/dist/clinical-records.js +1 -1
  2056. package/node_modules/@murphai/vault-usecases/dist/clinical-records.js.map +1 -1
  2057. package/node_modules/@murphai/vault-usecases/dist/commands/query-record-command-helpers.d.ts +6 -0
  2058. package/node_modules/@murphai/vault-usecases/dist/commands/query-record-command-helpers.d.ts.map +1 -1
  2059. package/node_modules/@murphai/vault-usecases/dist/commands/query-record-command-helpers.js +49 -1
  2060. package/node_modules/@murphai/vault-usecases/dist/commands/query-record-command-helpers.js.map +1 -1
  2061. package/node_modules/@murphai/vault-usecases/dist/experiment-onboarding-options.d.ts +3 -3
  2062. package/node_modules/@murphai/vault-usecases/dist/experiment-onboarding-options.d.ts.map +1 -1
  2063. package/node_modules/@murphai/vault-usecases/dist/experiment-onboarding-options.js +1 -1
  2064. package/node_modules/@murphai/vault-usecases/dist/experiment-onboarding-options.js.map +1 -1
  2065. package/node_modules/@murphai/vault-usecases/dist/export-packs.d.ts +7 -0
  2066. package/node_modules/@murphai/vault-usecases/dist/export-packs.d.ts.map +1 -0
  2067. package/node_modules/@murphai/vault-usecases/dist/export-packs.js +45 -0
  2068. package/node_modules/@murphai/vault-usecases/dist/export-packs.js.map +1 -0
  2069. package/node_modules/@murphai/vault-usecases/dist/health-cli-descriptors.d.ts +28 -28
  2070. package/node_modules/@murphai/vault-usecases/dist/health-cli-descriptors.d.ts.map +1 -1
  2071. package/node_modules/@murphai/vault-usecases/dist/health-cli-descriptors.js +1 -1
  2072. package/node_modules/@murphai/vault-usecases/dist/health-cli-descriptors.js.map +1 -1
  2073. package/node_modules/@murphai/vault-usecases/dist/json-input.d.ts +1 -1
  2074. package/node_modules/@murphai/vault-usecases/dist/json-input.d.ts.map +1 -1
  2075. package/node_modules/@murphai/vault-usecases/dist/json-input.js +1 -1
  2076. package/node_modules/@murphai/vault-usecases/dist/json-input.js.map +1 -1
  2077. package/node_modules/@murphai/vault-usecases/dist/query-runtime.d.ts +5 -1
  2078. package/node_modules/@murphai/vault-usecases/dist/query-runtime.d.ts.map +1 -1
  2079. package/node_modules/@murphai/vault-usecases/dist/query-runtime.js.map +1 -1
  2080. package/node_modules/@murphai/vault-usecases/dist/testing/junction-wearable-fixture.d.ts +1 -1
  2081. package/node_modules/@murphai/vault-usecases/dist/testing/junction-wearable-fixture.d.ts.map +1 -1
  2082. package/node_modules/@murphai/vault-usecases/dist/usecases/capture.d.ts +21 -21
  2083. package/node_modules/@murphai/vault-usecases/dist/usecases/capture.d.ts.map +1 -1
  2084. package/node_modules/@murphai/vault-usecases/dist/usecases/capture.js +23 -13
  2085. package/node_modules/@murphai/vault-usecases/dist/usecases/capture.js.map +1 -1
  2086. package/node_modules/@murphai/vault-usecases/dist/usecases/clinical-imports.d.ts +193 -193
  2087. package/node_modules/@murphai/vault-usecases/dist/usecases/clinical-imports.d.ts.map +1 -1
  2088. package/node_modules/@murphai/vault-usecases/dist/usecases/clinical-imports.js +2 -4
  2089. package/node_modules/@murphai/vault-usecases/dist/usecases/clinical-imports.js.map +1 -1
  2090. package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.d.ts +12 -12
  2091. package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.d.ts.map +1 -1
  2092. package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.js +25 -19
  2093. package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.js.map +1 -1
  2094. package/node_modules/@murphai/vault-usecases/dist/usecases/encounter.d.ts +130 -130
  2095. package/node_modules/@murphai/vault-usecases/dist/usecases/encounter.d.ts.map +1 -1
  2096. package/node_modules/@murphai/vault-usecases/dist/usecases/encounter.js +2 -4
  2097. package/node_modules/@murphai/vault-usecases/dist/usecases/encounter.js.map +1 -1
  2098. package/node_modules/@murphai/vault-usecases/dist/usecases/event-record-mutations.d.ts +9 -0
  2099. package/node_modules/@murphai/vault-usecases/dist/usecases/event-record-mutations.d.ts.map +1 -1
  2100. package/node_modules/@murphai/vault-usecases/dist/usecases/event-record-mutations.js +78 -5
  2101. package/node_modules/@murphai/vault-usecases/dist/usecases/event-record-mutations.js.map +1 -1
  2102. package/node_modules/@murphai/vault-usecases/dist/usecases/exact-event-record.d.ts +20 -0
  2103. package/node_modules/@murphai/vault-usecases/dist/usecases/exact-event-record.d.ts.map +1 -0
  2104. package/node_modules/@murphai/vault-usecases/dist/usecases/exact-event-record.js +72 -0
  2105. package/node_modules/@murphai/vault-usecases/dist/usecases/exact-event-record.js.map +1 -0
  2106. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.d.ts +29 -6
  2107. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.d.ts.map +1 -1
  2108. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.js +267 -46
  2109. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.js.map +1 -1
  2110. package/node_modules/@murphai/vault-usecases/dist/usecases/explicit-health-family-services.d.ts.map +1 -1
  2111. package/node_modules/@murphai/vault-usecases/dist/usecases/explicit-health-family-services.js +158 -24
  2112. package/node_modules/@murphai/vault-usecases/dist/usecases/explicit-health-family-services.js.map +1 -1
  2113. package/node_modules/@murphai/vault-usecases/dist/usecases/food-autolog.d.ts +1 -1
  2114. package/node_modules/@murphai/vault-usecases/dist/usecases/food-autolog.d.ts.map +1 -1
  2115. package/node_modules/@murphai/vault-usecases/dist/usecases/food-autolog.js +1 -1
  2116. package/node_modules/@murphai/vault-usecases/dist/usecases/food-autolog.js.map +1 -1
  2117. package/node_modules/@murphai/vault-usecases/dist/usecases/food.d.ts.map +1 -1
  2118. package/node_modules/@murphai/vault-usecases/dist/usecases/food.js +98 -6
  2119. package/node_modules/@murphai/vault-usecases/dist/usecases/food.js.map +1 -1
  2120. package/node_modules/@murphai/vault-usecases/dist/usecases/integrated-services.d.ts.map +1 -1
  2121. package/node_modules/@murphai/vault-usecases/dist/usecases/integrated-services.js +97 -13
  2122. package/node_modules/@murphai/vault-usecases/dist/usecases/integrated-services.js.map +1 -1
  2123. package/node_modules/@murphai/vault-usecases/dist/usecases/intervention-experiment-link.d.ts.map +1 -1
  2124. package/node_modules/@murphai/vault-usecases/dist/usecases/intervention-experiment-link.js +49 -24
  2125. package/node_modules/@murphai/vault-usecases/dist/usecases/intervention-experiment-link.js.map +1 -1
  2126. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.d.ts +95 -13
  2127. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.d.ts.map +1 -1
  2128. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.js +149 -14
  2129. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.js.map +1 -1
  2130. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement.d.ts.map +1 -1
  2131. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement.js +3 -1
  2132. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement.js.map +1 -1
  2133. package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.d.ts +4 -4
  2134. package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.d.ts.map +1 -1
  2135. package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.js +19 -12
  2136. package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.js.map +1 -1
  2137. package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.d.ts +3 -3
  2138. package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.d.ts.map +1 -1
  2139. package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.js +44 -2
  2140. package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.js.map +1 -1
  2141. package/node_modules/@murphai/vault-usecases/dist/usecases/runtime.d.ts.map +1 -1
  2142. package/node_modules/@murphai/vault-usecases/dist/usecases/runtime.js +2 -0
  2143. package/node_modules/@murphai/vault-usecases/dist/usecases/runtime.js.map +1 -1
  2144. package/node_modules/@murphai/vault-usecases/dist/usecases/shared.d.ts.map +1 -1
  2145. package/node_modules/@murphai/vault-usecases/dist/usecases/shared.js +1 -3
  2146. package/node_modules/@murphai/vault-usecases/dist/usecases/shared.js.map +1 -1
  2147. package/node_modules/@murphai/vault-usecases/dist/usecases/types.d.ts +44 -1
  2148. package/node_modules/@murphai/vault-usecases/dist/usecases/types.d.ts.map +1 -1
  2149. package/node_modules/@murphai/vault-usecases/dist/usecases/vault-usecase-helpers.d.ts +2 -0
  2150. package/node_modules/@murphai/vault-usecases/dist/usecases/vault-usecase-helpers.d.ts.map +1 -1
  2151. package/node_modules/@murphai/vault-usecases/dist/usecases/vault-usecase-helpers.js +24 -1
  2152. package/node_modules/@murphai/vault-usecases/dist/usecases/vault-usecase-helpers.js.map +1 -1
  2153. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-core.d.ts +7 -1
  2154. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-core.d.ts.map +1 -1
  2155. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-core.js.map +1 -1
  2156. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-format.d.ts +4 -0
  2157. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-format.d.ts.map +1 -1
  2158. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-import.d.ts +60 -7
  2159. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-import.d.ts.map +1 -1
  2160. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-import.js +1282 -494
  2161. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-import.js.map +1 -1
  2162. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.d.ts +116 -0
  2163. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.d.ts.map +1 -0
  2164. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.js +231 -0
  2165. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.js.map +1 -0
  2166. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.d.ts +36 -0
  2167. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.d.ts.map +1 -0
  2168. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.js +287 -0
  2169. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.js.map +1 -0
  2170. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.d.ts +134 -0
  2171. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.d.ts.map +1 -0
  2172. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.js +744 -0
  2173. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.js.map +1 -0
  2174. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-model.d.ts +1 -1
  2175. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-model.d.ts.map +1 -1
  2176. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-model.js +2 -0
  2177. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-model.js.map +1 -1
  2178. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.d.ts +13 -13
  2179. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.d.ts.map +1 -1
  2180. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.js +22 -19
  2181. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.js.map +1 -1
  2182. package/node_modules/@murphai/vault-usecases/dist/usecases/workout.d.ts +39 -2
  2183. package/node_modules/@murphai/vault-usecases/dist/usecases/workout.d.ts.map +1 -1
  2184. package/node_modules/@murphai/vault-usecases/dist/usecases/workout.js +144 -4
  2185. package/node_modules/@murphai/vault-usecases/dist/usecases/workout.js.map +1 -1
  2186. package/node_modules/@murphai/vault-usecases/dist/vault-services.d.ts.map +1 -1
  2187. package/node_modules/@murphai/vault-usecases/dist/vault-services.js +3 -0
  2188. package/node_modules/@murphai/vault-usecases/dist/vault-services.js.map +1 -1
  2189. package/node_modules/@murphai/vault-usecases/dist/workouts.d.ts +1 -0
  2190. package/node_modules/@murphai/vault-usecases/dist/workouts.d.ts.map +1 -1
  2191. package/node_modules/@murphai/vault-usecases/dist/workouts.js +1 -0
  2192. package/node_modules/@murphai/vault-usecases/dist/workouts.js.map +1 -1
  2193. package/node_modules/@murphai/vault-usecases/package.json +4 -0
  2194. package/node_modules/incur/dist/Cli.js +7 -32
  2195. package/node_modules/incur/dist/Errors.d.ts +17 -0
  2196. package/node_modules/incur/dist/Errors.js +23 -0
  2197. package/node_modules/incur/dist/internal/command.d.ts +2 -0
  2198. package/node_modules/incur/dist/internal/command.js +2 -6
  2199. package/node_modules/incur/src/Cli.ts +11 -32
  2200. package/node_modules/incur/src/Errors.ts +36 -0
  2201. package/node_modules/incur/src/internal/command.ts +4 -6
  2202. package/node_modules/ink/build/ansi-tokenizer.d.ts +38 -0
  2203. package/node_modules/ink/build/ansi-tokenizer.js +316 -0
  2204. package/node_modules/ink/build/ansi-tokenizer.js.map +1 -0
  2205. package/node_modules/ink/build/apply-styles.js +175 -0
  2206. package/node_modules/ink/build/build-layout.js +77 -0
  2207. package/node_modules/ink/build/calculate-wrapped-text.js +53 -0
  2208. package/node_modules/ink/build/colorize.d.ts +3 -0
  2209. package/node_modules/ink/build/colorize.js +48 -0
  2210. package/node_modules/ink/build/colorize.js.map +1 -0
  2211. package/node_modules/ink/build/components/AccessibilityContext.d.ts +3 -0
  2212. package/node_modules/ink/build/components/AccessibilityContext.js +5 -0
  2213. package/node_modules/ink/build/components/AccessibilityContext.js.map +1 -0
  2214. package/node_modules/ink/build/components/App.d.ts +18 -0
  2215. package/node_modules/ink/build/components/App.js +351 -0
  2216. package/node_modules/ink/build/components/App.js.map +1 -0
  2217. package/node_modules/ink/build/components/AppContext.d.ts +15 -0
  2218. package/node_modules/ink/build/components/AppContext.js +11 -0
  2219. package/node_modules/ink/build/components/AppContext.js.map +1 -0
  2220. package/node_modules/ink/build/components/BackgroundContext.d.ts +4 -0
  2221. package/node_modules/ink/build/components/BackgroundContext.js +3 -0
  2222. package/node_modules/ink/build/components/BackgroundContext.js.map +1 -0
  2223. package/node_modules/ink/build/components/Box.d.ts +117 -0
  2224. package/node_modules/ink/build/components/Box.js +34 -0
  2225. package/node_modules/ink/build/components/Box.js.map +1 -0
  2226. package/node_modules/ink/build/components/Color.js +62 -0
  2227. package/node_modules/ink/build/components/Cursor.d.ts +83 -0
  2228. package/node_modules/ink/build/components/Cursor.js +53 -0
  2229. package/node_modules/ink/build/components/Cursor.js.map +1 -0
  2230. package/node_modules/ink/build/components/CursorContext.d.ts +11 -0
  2231. package/node_modules/ink/build/components/CursorContext.js +8 -0
  2232. package/node_modules/ink/build/components/CursorContext.js.map +1 -0
  2233. package/node_modules/ink/build/components/ErrorBoundary.d.ts +18 -0
  2234. package/node_modules/ink/build/components/ErrorBoundary.js +23 -0
  2235. package/node_modules/ink/build/components/ErrorBoundary.js.map +1 -0
  2236. package/node_modules/ink/build/components/ErrorOverview.d.ts +6 -0
  2237. package/node_modules/ink/build/components/ErrorOverview.js +84 -0
  2238. package/node_modules/ink/build/components/ErrorOverview.js.map +1 -0
  2239. package/node_modules/ink/build/components/FocusContext.d.ts +16 -0
  2240. package/node_modules/ink/build/components/FocusContext.js +17 -0
  2241. package/node_modules/ink/build/components/FocusContext.js.map +1 -0
  2242. package/node_modules/ink/build/components/Newline.d.ts +13 -0
  2243. package/node_modules/ink/build/components/Newline.js +8 -0
  2244. package/node_modules/ink/build/components/Newline.js.map +1 -0
  2245. package/node_modules/ink/build/components/Spacer.d.ts +7 -0
  2246. package/node_modules/ink/build/components/Spacer.js +11 -0
  2247. package/node_modules/ink/build/components/Spacer.js.map +1 -0
  2248. package/node_modules/ink/build/components/Static.d.ts +24 -0
  2249. package/node_modules/ink/build/components/Static.js +28 -0
  2250. package/node_modules/ink/build/components/Static.js.map +1 -0
  2251. package/node_modules/ink/build/components/StderrContext.d.ts +15 -0
  2252. package/node_modules/ink/build/components/StderrContext.js +13 -0
  2253. package/node_modules/ink/build/components/StderrContext.js.map +1 -0
  2254. package/node_modules/ink/build/components/StdinContext.d.ts +22 -0
  2255. package/node_modules/ink/build/components/StdinContext.js +19 -0
  2256. package/node_modules/ink/build/components/StdinContext.js.map +1 -0
  2257. package/node_modules/ink/build/components/StdoutContext.d.ts +15 -0
  2258. package/node_modules/ink/build/components/StdoutContext.js +13 -0
  2259. package/node_modules/ink/build/components/StdoutContext.js.map +1 -0
  2260. package/node_modules/ink/build/components/Text.d.ts +55 -0
  2261. package/node_modules/ink/build/components/Text.js +50 -0
  2262. package/node_modules/ink/build/components/Text.js.map +1 -0
  2263. package/node_modules/ink/build/components/Transform.d.ts +16 -0
  2264. package/node_modules/ink/build/components/Transform.js +15 -0
  2265. package/node_modules/ink/build/components/Transform.js.map +1 -0
  2266. package/node_modules/ink/build/cursor-helpers.d.ts +38 -0
  2267. package/node_modules/ink/build/cursor-helpers.js +56 -0
  2268. package/node_modules/ink/build/cursor-helpers.js.map +1 -0
  2269. package/node_modules/ink/build/devtools-window-polyfill.d.ts +1 -0
  2270. package/node_modules/ink/build/devtools-window-polyfill.js +65 -0
  2271. package/node_modules/ink/build/devtools-window-polyfill.js.map +1 -0
  2272. package/node_modules/ink/build/devtools.d.ts +1 -0
  2273. package/node_modules/ink/build/devtools.js +11 -0
  2274. package/node_modules/ink/build/devtools.js.map +1 -0
  2275. package/node_modules/ink/build/dom.d.ts +56 -0
  2276. package/node_modules/ink/build/dom.js +124 -0
  2277. package/node_modules/ink/build/dom.js.map +1 -0
  2278. package/node_modules/ink/build/experimental/apply-style.js +140 -0
  2279. package/node_modules/ink/build/experimental/dom.js +123 -0
  2280. package/node_modules/ink/build/experimental/output.js +91 -0
  2281. package/node_modules/ink/build/experimental/reconciler.js +141 -0
  2282. package/node_modules/ink/build/experimental/renderer.js +81 -0
  2283. package/node_modules/ink/build/get-max-width.d.ts +3 -0
  2284. package/node_modules/ink/build/get-max-width.js +10 -0
  2285. package/node_modules/ink/build/get-max-width.js.map +1 -0
  2286. package/node_modules/ink/build/hooks/use-app.d.ts +5 -0
  2287. package/node_modules/ink/build/hooks/use-app.js +8 -0
  2288. package/node_modules/ink/build/hooks/use-app.js.map +1 -0
  2289. package/node_modules/ink/build/hooks/use-cursor.d.ts +12 -0
  2290. package/node_modules/ink/build/hooks/use-cursor.js +29 -0
  2291. package/node_modules/ink/build/hooks/use-cursor.js.map +1 -0
  2292. package/node_modules/ink/build/hooks/use-focus-manager.d.ts +28 -0
  2293. package/node_modules/ink/build/hooks/use-focus-manager.js +17 -0
  2294. package/node_modules/ink/build/hooks/use-focus-manager.js.map +1 -0
  2295. package/node_modules/ink/build/hooks/use-focus.d.ts +29 -0
  2296. package/node_modules/ink/build/hooks/use-focus.js +42 -0
  2297. package/node_modules/ink/build/hooks/use-focus.js.map +1 -0
  2298. package/node_modules/ink/build/hooks/use-input.d.ts +131 -0
  2299. package/node_modules/ink/build/hooks/use-input.js +124 -0
  2300. package/node_modules/ink/build/hooks/use-input.js.map +1 -0
  2301. package/node_modules/ink/build/hooks/use-is-screen-reader-enabled.d.ts +5 -0
  2302. package/node_modules/ink/build/hooks/use-is-screen-reader-enabled.js +11 -0
  2303. package/node_modules/ink/build/hooks/use-is-screen-reader-enabled.js.map +1 -0
  2304. package/node_modules/ink/build/hooks/use-stderr.d.ts +5 -0
  2305. package/node_modules/ink/build/hooks/use-stderr.js +8 -0
  2306. package/node_modules/ink/build/hooks/use-stderr.js.map +1 -0
  2307. package/node_modules/ink/build/hooks/use-stdin.d.ts +5 -0
  2308. package/node_modules/ink/build/hooks/use-stdin.js +8 -0
  2309. package/node_modules/ink/build/hooks/use-stdin.js.map +1 -0
  2310. package/node_modules/ink/build/hooks/use-stdout.d.ts +5 -0
  2311. package/node_modules/ink/build/hooks/use-stdout.js +8 -0
  2312. package/node_modules/ink/build/hooks/use-stdout.js.map +1 -0
  2313. package/node_modules/ink/build/hooks/useInput.js +38 -0
  2314. package/node_modules/ink/build/index.d.ts +34 -0
  2315. package/node_modules/ink/build/index.js +20 -0
  2316. package/node_modules/ink/build/index.js.map +1 -0
  2317. package/node_modules/ink/build/ink.d.ts +90 -0
  2318. package/node_modules/ink/build/ink.js +637 -0
  2319. package/node_modules/ink/build/ink.js.map +1 -0
  2320. package/node_modules/ink/build/input-parser.d.ts +7 -0
  2321. package/node_modules/ink/build/input-parser.js +154 -0
  2322. package/node_modules/ink/build/input-parser.js.map +1 -0
  2323. package/node_modules/ink/build/instance.js +205 -0
  2324. package/node_modules/ink/build/instances.d.ts +3 -0
  2325. package/node_modules/ink/build/instances.js +8 -0
  2326. package/node_modules/ink/build/instances.js.map +1 -0
  2327. package/node_modules/ink/build/kitty-keyboard.d.ts +23 -0
  2328. package/node_modules/ink/build/kitty-keyboard.js +32 -0
  2329. package/node_modules/ink/build/kitty-keyboard.js.map +1 -0
  2330. package/node_modules/ink/build/layout.d.ts +7 -0
  2331. package/node_modules/ink/build/layout.js +33 -0
  2332. package/node_modules/ink/build/layout.js.map +1 -0
  2333. package/node_modules/ink/build/log-update.d.ts +19 -0
  2334. package/node_modules/ink/build/log-update.js +242 -0
  2335. package/node_modules/ink/build/log-update.js.map +1 -0
  2336. package/node_modules/ink/build/measure-element.d.ts +16 -0
  2337. package/node_modules/ink/build/measure-element.js +9 -0
  2338. package/node_modules/ink/build/measure-element.js.map +1 -0
  2339. package/node_modules/ink/build/measure-text.d.ts +6 -0
  2340. package/node_modules/ink/build/measure-text.js +21 -0
  2341. package/node_modules/ink/build/measure-text.js.map +1 -0
  2342. package/node_modules/ink/build/options.d.ts +52 -0
  2343. package/node_modules/ink/build/options.js +2 -0
  2344. package/node_modules/ink/build/options.js.map +1 -0
  2345. package/node_modules/ink/build/output.d.ts +35 -0
  2346. package/node_modules/ink/build/output.js +183 -0
  2347. package/node_modules/ink/build/output.js.map +1 -0
  2348. package/node_modules/ink/build/parse-keypress.d.ts +22 -0
  2349. package/node_modules/ink/build/parse-keypress.js +493 -0
  2350. package/node_modules/ink/build/parse-keypress.js.map +1 -0
  2351. package/node_modules/ink/build/reconciler.d.ts +4 -0
  2352. package/node_modules/ink/build/reconciler.js +274 -0
  2353. package/node_modules/ink/build/reconciler.js.map +1 -0
  2354. package/node_modules/ink/build/render-background.d.ts +4 -0
  2355. package/node_modules/ink/build/render-background.js +25 -0
  2356. package/node_modules/ink/build/render-background.js.map +1 -0
  2357. package/node_modules/ink/build/render-border.d.ts +4 -0
  2358. package/node_modules/ink/build/render-border.js +73 -0
  2359. package/node_modules/ink/build/render-border.js.map +1 -0
  2360. package/node_modules/ink/build/render-node-to-output.d.ts +14 -0
  2361. package/node_modules/ink/build/render-node-to-output.js +147 -0
  2362. package/node_modules/ink/build/render-node-to-output.js.map +1 -0
  2363. package/node_modules/ink/build/render-to-string.d.ts +38 -0
  2364. package/node_modules/ink/build/render-to-string.js +115 -0
  2365. package/node_modules/ink/build/render-to-string.js.map +1 -0
  2366. package/node_modules/ink/build/render.d.ts +121 -0
  2367. package/node_modules/ink/build/render.js +55 -0
  2368. package/node_modules/ink/build/render.js.map +1 -0
  2369. package/node_modules/ink/build/renderer.d.ts +8 -0
  2370. package/node_modules/ink/build/renderer.js +55 -0
  2371. package/node_modules/ink/build/renderer.js.map +1 -0
  2372. package/node_modules/ink/build/sanitize-ansi.d.ts +2 -0
  2373. package/node_modules/ink/build/sanitize-ansi.js +27 -0
  2374. package/node_modules/ink/build/sanitize-ansi.js.map +1 -0
  2375. package/node_modules/ink/build/screen-reader-update.d.ts +13 -0
  2376. package/node_modules/ink/build/screen-reader-update.js +38 -0
  2377. package/node_modules/ink/build/screen-reader-update.js.map +1 -0
  2378. package/node_modules/ink/build/squash-text-nodes.d.ts +3 -0
  2379. package/node_modules/ink/build/squash-text-nodes.js +36 -0
  2380. package/node_modules/ink/build/squash-text-nodes.js.map +1 -0
  2381. package/node_modules/ink/build/styles.d.ts +240 -0
  2382. package/node_modules/ink/build/styles.js +232 -0
  2383. package/node_modules/ink/build/styles.js.map +1 -0
  2384. package/node_modules/ink/build/utils.d.ts +2 -0
  2385. package/node_modules/ink/build/utils.js +4 -0
  2386. package/node_modules/ink/build/utils.js.map +1 -0
  2387. package/node_modules/ink/build/wrap-text.d.ts +3 -0
  2388. package/node_modules/ink/build/wrap-text.js +31 -0
  2389. package/node_modules/ink/build/wrap-text.js.map +1 -0
  2390. package/node_modules/ink/build/write-synchronized.d.ts +4 -0
  2391. package/node_modules/ink/build/write-synchronized.js +7 -0
  2392. package/node_modules/ink/build/write-synchronized.js.map +1 -0
  2393. package/node_modules/ink/package.json +126 -0
  2394. package/package.json +35 -5
  2395. package/node_modules/@murphai/assistant-engine/dist/assistant/group-phone-call-preview-authority.d.ts +0 -24
  2396. package/node_modules/@murphai/assistant-engine/dist/assistant/group-phone-call-preview-authority.d.ts.map +0 -1
  2397. package/node_modules/@murphai/assistant-engine/dist/assistant/group-phone-call-preview-authority.js +0 -125
  2398. package/node_modules/@murphai/assistant-engine/dist/assistant/group-phone-call-preview-authority.js.map +0 -1
  2399. package/node_modules/@murphai/assistant-engine/dist/assistant/newsletter-outbox.d.ts +0 -19
  2400. package/node_modules/@murphai/assistant-engine/dist/assistant/newsletter-outbox.d.ts.map +0 -1
  2401. package/node_modules/@murphai/assistant-engine/dist/assistant/newsletter-outbox.js.map +0 -1
  2402. package/node_modules/@murphai/assistant-engine/skills/general-eye-health/SKILL.md +0 -77
  2403. package/node_modules/@murphai/assistant-engine/skills/general-eye-health/references/evidence-register.md +0 -34
  2404. package/node_modules/@murphai/assistant-engine/skills/general-eye-health/references/triage-and-contact-lenses.md +0 -103
  2405. package/node_modules/@murphai/assistant-engine/skills/recovery-modalities/SKILL.md +0 -57
  2406. package/node_modules/@murphai/assistant-engine/skills/red-light-therapy/SKILL.md +0 -145
  2407. package/node_modules/@murphai/assistant-engine/skills/red-light-therapy/device-seeds.json +0 -259
  2408. package/node_modules/@murphai/inboxd/dist/connectors/email/connector.d.ts +0 -57
  2409. package/node_modules/@murphai/inboxd/dist/connectors/email/connector.d.ts.map +0 -1
  2410. package/node_modules/@murphai/inboxd/dist/connectors/email/connector.js +0 -259
  2411. package/node_modules/@murphai/inboxd/dist/connectors/email/connector.js.map +0 -1
  2412. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize.d.ts +0 -44
  2413. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize.d.ts.map +0 -1
  2414. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize.js +0 -212
  2415. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize.js.map +0 -1
  2416. package/node_modules/@murphai/inboxd/dist/connectors/email/types.d.ts +0 -69
  2417. package/node_modules/@murphai/inboxd/dist/connectors/email/types.d.ts.map +0 -1
  2418. package/node_modules/@murphai/inboxd/dist/connectors/email/types.js +0 -2
  2419. package/node_modules/@murphai/inboxd/dist/connectors/email/types.js.map +0 -1
  2420. package/node_modules/@murphai/operator-config/dist/agentmail-runtime.d.ts +0 -194
  2421. package/node_modules/@murphai/operator-config/dist/agentmail-runtime.d.ts.map +0 -1
  2422. package/node_modules/@murphai/operator-config/dist/agentmail-runtime.js +0 -385
  2423. package/node_modules/@murphai/operator-config/dist/agentmail-runtime.js.map +0 -1
  2424. package/node_modules/@murphai/setup-cli/dist/setup-agentmail.d.ts +0 -30
  2425. package/node_modules/@murphai/setup-cli/dist/setup-agentmail.d.ts.map +0 -1
  2426. package/node_modules/@murphai/setup-cli/dist/setup-agentmail.js +0 -135
  2427. package/node_modules/@murphai/setup-cli/dist/setup-agentmail.js.map +0 -1
  2428. package/node_modules/incur/src/Cli.test.ts +0 -4808
  2429. package/node_modules/incur/src/Completions.test.ts +0 -543
  2430. package/node_modules/incur/src/Errors.test.ts +0 -100
  2431. package/node_modules/incur/src/Fetch.test.ts +0 -285
  2432. package/node_modules/incur/src/Filter.test.ts +0 -237
  2433. package/node_modules/incur/src/Formatter.test.ts +0 -326
  2434. package/node_modules/incur/src/Help.test.ts +0 -414
  2435. package/node_modules/incur/src/Mcp.test.ts +0 -413
  2436. package/node_modules/incur/src/Openapi.test.ts +0 -389
  2437. package/node_modules/incur/src/Parser.test.ts +0 -378
  2438. package/node_modules/incur/src/Schema.test.ts +0 -167
  2439. package/node_modules/incur/src/Skill.test.ts +0 -441
  2440. package/node_modules/incur/src/Skillgen.test.ts +0 -77
  2441. package/node_modules/incur/src/SyncMcp.test.ts +0 -136
  2442. package/node_modules/incur/src/SyncSkills.test.ts +0 -301
  2443. package/node_modules/incur/src/Typegen.test.ts +0 -205
  2444. package/node_modules/incur/src/bun-compile.test.ts +0 -84
  2445. package/node_modules/incur/src/e2e.test.ts +0 -3441
  2446. package/node_modules/incur/src/internal/configSchema.test.ts +0 -193
  2447. package/node_modules/incur/src/internal/dereference.test.ts +0 -695
  2448. package/node_modules/incur/src/internal/helpers.test.ts +0 -75
  2449. package/node_modules/incur/src/internal/pm.test.ts +0 -38
  2450. package/node_modules/incur/src/internal/utils.test.ts +0 -50
  2451. package/node_modules/incur/src/middleware.test.ts +0 -6
@@ -1,14 +1,20 @@
1
1
  import { createHash } from 'node:crypto';
2
- import { basename, extname } from 'node:path';
3
- import path from 'node:path';
4
- import { readFile } from 'node:fs/promises';
2
+ import { readFile, stat } from 'node:fs/promises';
3
+ import path, { basename, extname } from 'node:path';
5
4
  import { ID_PREFIXES, } from '@murphai/contracts';
6
5
  import { VaultCliError } from '@murphai/operator-config/vault-cli-errors';
7
6
  import { loadRuntimeModule } from '../runtime-import.js';
8
- import { compactObject, normalizeOptionalText, toEventUpsertVaultCliError } from './vault-usecase-helpers.js';
9
- import { inferDurationMinutes } from './text-duration.js';
7
+ import { compactObject, toVaultCliError } from './vault-usecase-helpers.js';
10
8
  import { buildStructuredWorkoutActivitySessionDraft } from './workout.js';
11
- import { loadWorkoutCoreRuntime } from './workout-core.js';
9
+ const DEFAULT_SOURCE = 'strong';
10
+ const DEFAULT_DELIMITER = ',';
11
+ const RESULT_LIST_LIMIT = 10;
12
+ const EXACT_RAW_CANDIDATE_LIMIT = 100;
13
+ const PRIOR_RAW_BATCH_LIMIT = 100;
14
+ const PRIOR_RAW_TOTAL_BYTES_LIMIT = 50 * 1024 * 1024;
15
+ // This version orders importer mapping semantics, not the revisionless CSV.
16
+ // Bump it only when a corrected mapping must supersede prior canonical output.
17
+ const WORKOUT_CSV_MAPPING_REVISION = '2026-08-12T19:00:00.000Z';
12
18
  async function loadWorkoutImportCoreRuntime() {
13
19
  return loadRuntimeModule('@murphai/core');
14
20
  }
@@ -18,11 +24,6 @@ async function loadWorkoutImportersRuntime() {
18
24
  async function loadWorkoutImportStateRuntime() {
19
25
  return loadRuntimeModule('@murphai/runtime-state');
20
26
  }
21
- const DEFAULT_SOURCE = 'strong';
22
- const DEFAULT_DELIMITER = ',';
23
- function normalizeHeaderName(value) {
24
- return value.trim().toLowerCase().replace(/[^a-z0-9]+/gu, '');
25
- }
26
27
  function sanitizePathSegment(value, fallback) {
27
28
  const normalized = value
28
29
  .trim()
@@ -36,561 +37,1348 @@ function sanitizeFileName(fileName) {
36
37
  const stem = basename(fileName, ext)
37
38
  .replace(/[^A-Za-z0-9._-]+/gu, '-')
38
39
  .replace(/^-+|-+$/gu, '');
39
- const safeStem = stem.length > 0 ? stem : 'workout-import';
40
- return `${safeStem}${ext || '.csv'}`;
40
+ return `${stem.length > 0 ? stem : 'workout-import'}${ext || '.csv'}`;
41
41
  }
42
- function valueAt(row, index) {
43
- if (index === undefined) {
44
- return undefined;
45
- }
46
- const value = row[index];
47
- return typeof value === 'string' ? value.trim() : undefined;
42
+ function eventRecordToImportPayload(record) {
43
+ const { schemaVersion: _schemaVersion, id: _id, dayKey: _dayKey, lifecycle: _lifecycle, ...payload } = record;
44
+ return structuredClone(payload);
48
45
  }
49
- function findHeaderIndex(headers, aliases) {
50
- const normalizedHeaders = headers.map(normalizeHeaderName);
51
- for (const alias of aliases) {
52
- const aliasKey = normalizeHeaderName(alias);
53
- const index = normalizedHeaders.indexOf(aliasKey);
54
- if (index >= 0) {
55
- return index;
46
+ function buildWorkoutEventDecisions(plan, rawFile, existingExternalRefs, mappingRevision = WORKOUT_CSV_MAPPING_REVISION, existingPayloads, expectedLatest) {
47
+ let suppressedDeletedCount = 0;
48
+ const decisions = plan.sessions.flatMap((session, index) => {
49
+ const existingPayload = existingPayloads?.[index];
50
+ if (existingPayload === null) {
51
+ suppressedDeletedCount += 1;
52
+ return [];
56
53
  }
57
- }
58
- return undefined;
54
+ if (existingPayload) {
55
+ return [{
56
+ action: 'upsert',
57
+ payload: existingPayload,
58
+ ...(expectedLatest?.[index] ? { expectedLatest: expectedLatest[index] } : {}),
59
+ }];
60
+ }
61
+ const existingExternalRef = existingExternalRefs?.[index];
62
+ const draft = buildStructuredWorkoutActivitySessionDraft({
63
+ payload: compactObject({
64
+ title: session.title,
65
+ occurredAt: session.occurredAt,
66
+ timeZone: plan.timeZone,
67
+ source: 'import',
68
+ activityType: 'strength-training',
69
+ durationMinutes: session.durationMinutes,
70
+ distanceKm: session.distanceKm,
71
+ note: session.note,
72
+ rawRefs: [rawFile],
73
+ externalRef: {
74
+ system: existingExternalRef?.system ?? sanitizePathSegment(plan.source, DEFAULT_SOURCE),
75
+ resourceType: existingExternalRef?.resourceType ?? 'workout-session',
76
+ resourceId: existingExternalRef?.resourceId ?? session.sourceWorkoutId,
77
+ version: mappingRevision,
78
+ ...(existingExternalRef?.facet ? { facet: existingExternalRef.facet } : {}),
79
+ },
80
+ workout: session.workout,
81
+ }),
82
+ source: 'import',
83
+ allowUnknownDuration: true,
84
+ });
85
+ const payload = {
86
+ kind: 'activity_session',
87
+ ...draft,
88
+ };
89
+ return [{
90
+ action: 'upsert',
91
+ payload,
92
+ }];
93
+ });
94
+ return { decisions, suppressedDeletedCount };
59
95
  }
60
- function parseOptionalNumber(value) {
61
- const normalized = normalizeOptionalText(value);
62
- if (!normalized) {
63
- return undefined;
64
- }
65
- const match = normalized.replace(/,/gu, '').match(/-?\d+(?:\.\d+)?/u);
66
- if (!match) {
67
- return undefined;
68
- }
69
- const parsed = Number.parseFloat(match[0]);
70
- return Number.isFinite(parsed) ? parsed : undefined;
96
+ function prepareRawWorkoutBatch(input) {
97
+ const safeSource = sanitizePathSegment(input.plan.source, DEFAULT_SOURCE);
98
+ const owner = {
99
+ kind: 'workout_batch',
100
+ id: input.importId,
101
+ partition: safeSource,
102
+ };
103
+ const rawDirectory = input.core.resolveRawAssetDirectory({
104
+ owner,
105
+ occurredAt: input.importedAt,
106
+ });
107
+ const rawFile = path.posix.join(rawDirectory, sanitizeFileName(path.basename(input.file)));
108
+ const manifestFile = path.posix.join(rawDirectory, 'manifest.json');
109
+ const warnings = input.plan.warnings;
110
+ const manifest = input.core.buildRawImportManifest({
111
+ importId: input.importId,
112
+ importKind: 'workout_batch',
113
+ importedAt: input.importedAt,
114
+ owner,
115
+ source: input.plan.source,
116
+ rawDirectory,
117
+ artifacts: [{
118
+ role: 'source',
119
+ relativePath: rawFile,
120
+ originalFileName: path.basename(input.file),
121
+ mediaType: 'text/csv',
122
+ byteSize: new TextEncoder().encode(input.text).byteLength,
123
+ sha256: createHash('sha256').update(input.text).digest('hex'),
124
+ }],
125
+ provenance: {
126
+ sourceFileName: path.basename(input.file),
127
+ delimiter: input.plan.delimiter,
128
+ rowCount: input.plan.rowCount,
129
+ estimatedWorkouts: input.plan.estimatedWorkouts,
130
+ repairedRowCount: input.plan.repairedRowCount,
131
+ ignoredRowCount: input.plan.ignoredRowCount,
132
+ skippedRowCount: input.plan.skippedRowCount,
133
+ skipReasons: input.plan.skipReasons,
134
+ timeZone: input.plan.timeZone,
135
+ weightUnit: input.plan.weightUnit,
136
+ distanceUnit: input.plan.distanceUnit,
137
+ warnings,
138
+ },
139
+ });
140
+ return {
141
+ importId: input.importId,
142
+ manifest,
143
+ manifestFile,
144
+ rawFile,
145
+ };
71
146
  }
72
- function parseBooleanLike(value) {
73
- const normalized = normalizeOptionalText(value)?.toLowerCase();
74
- return normalized === 'true' || normalized === 'yes' || normalized === 'y' || normalized === '1';
147
+ async function storeRawWorkoutBatch(input) {
148
+ await input.core.applyCanonicalWriteBatch({
149
+ vaultRoot: input.vault,
150
+ operationType: 'workout_import_csv_raw',
151
+ summary: `Store workout CSV ${path.basename(input.sourceFile)}`,
152
+ audit: {
153
+ action: 'workout_import_csv_raw',
154
+ commandName: 'vaultUsecases.importWorkoutCsv',
155
+ summary: `Stored workout CSV ${path.basename(input.sourceFile)} as immutable raw evidence.`,
156
+ targetIds: [input.batch.importId],
157
+ },
158
+ rawContents: [{
159
+ targetRelativePath: input.batch.rawFile,
160
+ content: input.text,
161
+ originalFileName: path.basename(input.sourceFile),
162
+ mediaType: 'text/csv',
163
+ allowExistingMatch: true,
164
+ }, {
165
+ targetRelativePath: input.batch.manifestFile,
166
+ content: `${JSON.stringify(input.batch.manifest, null, 2)}\n`,
167
+ originalFileName: 'manifest.json',
168
+ mediaType: 'application/json',
169
+ allowExistingMatch: true,
170
+ }],
171
+ });
75
172
  }
76
- function parseOptionalInteger(value) {
77
- const parsed = parseOptionalNumber(value);
78
- if (parsed === undefined) {
79
- return undefined;
80
- }
81
- return Math.round(parsed);
173
+ async function loadWorkoutCsvPlan(input) {
174
+ const [text, core, importers] = await Promise.all([
175
+ readFile(input.file, 'utf8'),
176
+ loadWorkoutImportCoreRuntime(),
177
+ loadWorkoutImportersRuntime(),
178
+ ]);
179
+ const vault = await core.loadVault({ vaultRoot: input.vault });
180
+ const plan = importers.planWorkoutCsvImport({
181
+ text,
182
+ timeZone: vault.metadata.timezone,
183
+ source: input.source,
184
+ delimiter: input.delimiter,
185
+ weightUnit: input.weightUnit,
186
+ distanceUnit: input.distanceUnit,
187
+ });
188
+ return { text, plan, core, importers };
82
189
  }
83
- function normalizeLoadUnit(value) {
84
- const normalized = normalizeOptionalText(value)?.toLowerCase();
85
- if (!normalized) {
86
- return undefined;
190
+ function assertStructuredPlanImportable(plan) {
191
+ if (plan.requiresWeightUnit) {
192
+ throw new VaultCliError('invalid_option', 'This workout CSV contains positive weights without unit metadata. Pass --weight-unit lb or --weight-unit kg; nothing was imported.');
87
193
  }
88
- if (normalized.startsWith('lb') || normalized.startsWith('pound')) {
89
- return 'lb';
194
+ if (plan.requiresDistanceUnit) {
195
+ throw new VaultCliError('invalid_option', 'This workout CSV contains positive distances without unit metadata. Pass --distance-unit m, --distance-unit km, or --distance-unit mi; nothing was imported.');
90
196
  }
91
- if (normalized.startsWith('kg') || normalized.startsWith('kilo')) {
92
- return 'kg';
197
+ if (plan.skippedRowCount > 0) {
198
+ throw new VaultCliError('invalid_payload', `${plan.skippedRowCount} workout CSV row(s) could not be mapped safely; nothing was imported. Run workout import inspect for aggregate reasons.`);
199
+ }
200
+ if (plan.detectedSource === null || plan.sessions.length === 0) {
201
+ throw new VaultCliError('invalid_payload', 'Workout CSV does not contain a supported structured workout export; nothing was imported.');
93
202
  }
94
- return undefined;
95
203
  }
96
- function parseWeight(value) {
97
- const normalized = normalizeOptionalText(value);
98
- if (!normalized) {
99
- return {};
204
+ function assertSupportedWorkoutSource(plan) {
205
+ if (plan.detectedSource === null) {
206
+ throw new VaultCliError('invalid_payload', 'Workout CSV does not contain a supported structured workout export; nothing was stored.');
100
207
  }
208
+ }
209
+ function capList(values) {
101
210
  return {
102
- weight: parseOptionalNumber(normalized),
103
- unit: normalizeLoadUnit(normalized),
211
+ values: values.slice(0, RESULT_LIST_LIMIT),
212
+ truncated: values.length > RESULT_LIST_LIMIT,
104
213
  };
105
214
  }
106
- function parseDistanceMeters(value) {
107
- const normalized = normalizeOptionalText(value)?.toLowerCase();
108
- if (!normalized) {
215
+ async function findExactRawWorkoutFiles(input) {
216
+ const expectedBytes = new TextEncoder().encode(input.text).byteLength;
217
+ const expectedHash = createHash('sha256').update(input.text).digest('hex');
218
+ const manifestFiles = (await input.core.walkVaultFiles(input.vault, 'raw/workouts', { extension: '.json' })).filter((relativePath) => path.posix.basename(relativePath) === 'manifest.json');
219
+ const candidates = new Map();
220
+ for (const manifestFile of manifestFiles) {
221
+ const manifestPath = input.core.resolveVaultPath(input.vault, manifestFile).absolutePath;
222
+ const manifest = input.core.parseRawImportManifest(JSON.parse(await readFile(manifestPath, 'utf8')));
223
+ if (manifest.importKind !== 'workout_batch') {
224
+ continue;
225
+ }
226
+ const artifacts = manifest.artifacts.filter((artifact) => artifact.role === 'source'
227
+ && artifact.byteSize === expectedBytes
228
+ && artifact.sha256 === expectedHash
229
+ && artifact.relativePath.startsWith(`${manifest.rawDirectory}/`)
230
+ && artifact.relativePath.startsWith('raw/workouts/'));
231
+ for (const artifact of artifacts) {
232
+ if (candidates.has(artifact.relativePath)) {
233
+ continue;
234
+ }
235
+ if (candidates.size >= EXACT_RAW_CANDIDATE_LIMIT) {
236
+ throw new VaultCliError('conflict', `Workout CSV matches more than ${EXACT_RAW_CANDIDATE_LIMIT} prior raw batches; nothing was imported.`);
237
+ }
238
+ const absolutePath = input.core.resolveVaultPath(input.vault, artifact.relativePath).absolutePath;
239
+ let matches = false;
240
+ try {
241
+ if ((await stat(absolutePath)).size === expectedBytes) {
242
+ const existingHash = createHash('sha256').update(await readFile(absolutePath)).digest('hex');
243
+ matches = existingHash === expectedHash;
244
+ }
245
+ }
246
+ catch {
247
+ matches = false;
248
+ }
249
+ if (matches) {
250
+ const source = manifest.source === 'strong' || manifest.source === 'hevy'
251
+ ? manifest.source
252
+ : undefined;
253
+ const delimiter = manifest.provenance.delimiter;
254
+ const weightUnit = manifest.provenance.weightUnit;
255
+ const distanceUnit = manifest.provenance.distanceUnit;
256
+ const timeZone = manifest.provenance.timeZone;
257
+ candidates.set(artifact.relativePath, {
258
+ rawFile: artifact.relativePath,
259
+ ...(source ? { source } : {}),
260
+ ...(typeof delimiter === 'string' && delimiter.length === 1 ? { delimiter } : {}),
261
+ ...(weightUnit === null || weightUnit === 'lb' || weightUnit === 'kg'
262
+ ? { weightUnit }
263
+ : {}),
264
+ ...(distanceUnit === null || distanceUnit === 'm' || distanceUnit === 'km' || distanceUnit === 'mi'
265
+ ? { distanceUnit }
266
+ : {}),
267
+ ...(typeof timeZone === 'string' ? { timeZone } : {}),
268
+ });
269
+ }
270
+ }
271
+ }
272
+ return [...candidates.values()].sort((left, right) => left.rawFile.localeCompare(right.rawFile));
273
+ }
274
+ async function findPriorRawWorkoutFiles(input) {
275
+ const manifestFiles = (await input.core.walkVaultFiles(input.vault, 'raw/workouts', { extension: '.json' })).filter((relativePath) => path.posix.basename(relativePath) === 'manifest.json');
276
+ const candidates = [];
277
+ let workoutBatchCount = 0;
278
+ let admittedBytes = 0;
279
+ for (const manifestFile of manifestFiles) {
280
+ const manifestPath = input.core.resolveVaultPath(input.vault, manifestFile).absolutePath;
281
+ const manifest = input.core.parseRawImportManifest(JSON.parse(await readFile(manifestPath, 'utf8')));
282
+ if (manifest.importKind !== 'workout_batch')
283
+ continue;
284
+ workoutBatchCount += 1;
285
+ if (workoutBatchCount > PRIOR_RAW_BATCH_LIMIT) {
286
+ throw new VaultCliError('conflict', `Workout history has more than ${PRIOR_RAW_BATCH_LIMIT} prior raw batches; nothing was imported.`);
287
+ }
288
+ const source = manifest.source === 'strong' || manifest.source === 'hevy'
289
+ ? manifest.source
290
+ : undefined;
291
+ const delimiter = manifest.provenance.delimiter;
292
+ const weightUnit = manifest.provenance.weightUnit;
293
+ const distanceUnit = manifest.provenance.distanceUnit;
294
+ const timeZone = manifest.provenance.timeZone;
295
+ for (const artifact of manifest.artifacts) {
296
+ if (artifact.role !== 'source'
297
+ || !artifact.relativePath.startsWith(`${manifest.rawDirectory}/`)
298
+ || !artifact.relativePath.startsWith('raw/workouts/'))
299
+ continue;
300
+ if (candidates.length >= PRIOR_RAW_BATCH_LIMIT) {
301
+ throw new VaultCliError('conflict', `Workout history has more than ${PRIOR_RAW_BATCH_LIMIT} prior source files; nothing was imported.`);
302
+ }
303
+ admittedBytes += artifact.byteSize;
304
+ if (admittedBytes > PRIOR_RAW_TOTAL_BYTES_LIMIT) {
305
+ throw new VaultCliError('conflict', `Prior workout source files exceed the ${PRIOR_RAW_TOTAL_BYTES_LIMIT}-byte reconciliation limit; nothing was imported.`);
306
+ }
307
+ const absolutePath = input.core.resolveVaultPath(input.vault, artifact.relativePath).absolutePath;
308
+ const text = await readFile(absolutePath, 'utf8');
309
+ const byteSize = new TextEncoder().encode(text).byteLength;
310
+ const hash = createHash('sha256').update(text).digest('hex');
311
+ if (byteSize !== artifact.byteSize || hash !== artifact.sha256) {
312
+ throw new VaultCliError('conflict', 'Prior workout raw evidence does not match its manifest; nothing was imported.');
313
+ }
314
+ candidates.push({
315
+ rawFile: artifact.relativePath,
316
+ text,
317
+ ...(source ? { source } : {}),
318
+ ...(typeof delimiter === 'string' && delimiter.length === 1 ? { delimiter } : {}),
319
+ ...(weightUnit === null || weightUnit === 'lb' || weightUnit === 'kg'
320
+ ? { weightUnit }
321
+ : {}),
322
+ ...(distanceUnit === null || distanceUnit === 'm' || distanceUnit === 'km' || distanceUnit === 'mi'
323
+ ? { distanceUnit }
324
+ : {}),
325
+ ...(typeof timeZone === 'string' ? { timeZone } : {}),
326
+ });
327
+ }
328
+ }
329
+ return candidates.sort((left, right) => left.rawFile.localeCompare(right.rawFile));
330
+ }
331
+ function mappingFromAttachedEvents(plan, matches) {
332
+ if (matches.length !== plan.sessions.length) {
109
333
  return undefined;
110
334
  }
111
- const amount = parseOptionalNumber(normalized);
112
- if (amount === undefined) {
335
+ const validMatches = matches.every(({ attachment, latest }) => {
336
+ const externalRef = attachment.externalRef;
337
+ return attachment.id === latest.id
338
+ && attachment.kind === 'activity_session'
339
+ && latest.kind === 'activity_session'
340
+ && externalRef?.resourceType === 'workout-session';
341
+ });
342
+ if (!validMatches)
113
343
  return undefined;
344
+ const alignedMatches = new Array(plan.sessions.length);
345
+ const unassignedMatches = new Set(matches);
346
+ const unassignedSessionIndexes = new Set(plan.sessions.map((_session, index) => index));
347
+ const indexesBySourceId = new Map();
348
+ plan.sessions.forEach((session, index) => {
349
+ for (const sourceId of [session.sourceWorkoutId, session.workout.sourceWorkoutId]) {
350
+ if (!sourceId)
351
+ continue;
352
+ const indexes = indexesBySourceId.get(sourceId) ?? [];
353
+ indexes.push(index);
354
+ indexesBySourceId.set(sourceId, indexes);
355
+ }
356
+ });
357
+ for (const match of matches) {
358
+ const sourceIds = [
359
+ match.attachment.kind === 'activity_session'
360
+ ? match.attachment.workout.sourceWorkoutId
361
+ : undefined,
362
+ match.attachment.externalRef?.resourceId,
363
+ ].filter((sourceId) => typeof sourceId === 'string');
364
+ const matchingIndexes = new Set(sourceIds.flatMap((sourceId) => indexesBySourceId.get(sourceId) ?? []));
365
+ if (matchingIndexes.size > 1)
366
+ return undefined;
367
+ const matchingIndex = matchingIndexes.size === 1 ? [...matchingIndexes][0] : undefined;
368
+ if (matchingIndex === undefined)
369
+ continue;
370
+ if (!unassignedSessionIndexes.has(matchingIndex))
371
+ return undefined;
372
+ alignedMatches[matchingIndex] = match;
373
+ unassignedMatches.delete(match);
374
+ unassignedSessionIndexes.delete(matchingIndex);
114
375
  }
115
- if (normalized.includes('km')) {
116
- return amount * 1000;
376
+ const matchesByTitle = new Map();
377
+ for (const match of unassignedMatches) {
378
+ const titleMatches = matchesByTitle.get(match.attachment.title) ?? [];
379
+ titleMatches.push(match);
380
+ matchesByTitle.set(match.attachment.title, titleMatches);
117
381
  }
118
- if (normalized.includes('mi')) {
119
- return amount * 1609.344;
382
+ const sessionIndexesByTitle = new Map();
383
+ for (const index of unassignedSessionIndexes) {
384
+ const title = plan.sessions[index].title;
385
+ const indexes = sessionIndexesByTitle.get(title) ?? [];
386
+ indexes.push(index);
387
+ sessionIndexesByTitle.set(title, indexes);
388
+ }
389
+ for (const [title, sessionIndexes] of sessionIndexesByTitle) {
390
+ const titleMatches = matchesByTitle.get(title);
391
+ if (!titleMatches || titleMatches.length !== sessionIndexes.length) {
392
+ return undefined;
393
+ }
394
+ sessionIndexes.sort((left, right) => plan.sessions[left].occurredAt.localeCompare(plan.sessions[right].occurredAt));
395
+ titleMatches.sort((left, right) => left.attachment.occurredAt.localeCompare(right.attachment.occurredAt)
396
+ || left.attachment.id.localeCompare(right.attachment.id));
397
+ sessionIndexes.forEach((sessionIndex, titleIndex) => {
398
+ alignedMatches[sessionIndex] = titleMatches[titleIndex];
399
+ });
120
400
  }
121
- if (normalized.includes('m')) {
122
- return amount;
401
+ if (alignedMatches.some((match) => match === undefined)
402
+ || new Set(alignedMatches.map((match) => match.latest.id)).size !== alignedMatches.length) {
403
+ return undefined;
123
404
  }
124
- return amount;
405
+ const alignedRecords = alignedMatches.map((match) => match.latest);
406
+ const externalRefs = alignedMatches.map(({ attachment, latest }) => {
407
+ const externalRef = latest.externalRef ?? attachment.externalRef;
408
+ if (externalRef.resourceType !== 'workout-session') {
409
+ throw new VaultCliError('conflict', 'Prior workout evidence lost its canonical workout identity; nothing was imported.');
410
+ }
411
+ return {
412
+ system: externalRef.system,
413
+ resourceType: externalRef.resourceType,
414
+ resourceId: externalRef.resourceId,
415
+ ...(externalRef.facet ? { facet: externalRef.facet } : {}),
416
+ };
417
+ });
418
+ const revisions = alignedMatches
419
+ .map(({ attachment, latest }) => latest.externalRef?.version ?? attachment.externalRef?.version)
420
+ .filter((revision) => typeof revision === 'string')
421
+ .sort();
422
+ return {
423
+ externalRefs,
424
+ matches: alignedMatches,
425
+ records: alignedRecords,
426
+ canonicalSourceMatches: alignedRecords.every((record) => record.lifecycle?.state === 'deleted'
427
+ || (record.kind === 'activity_session'
428
+ && record.workout?.sourceApp === plan.source)),
429
+ currentMappingReplay: alignedRecords.every((record) => record.externalRef?.version === WORKOUT_CSV_MAPPING_REVISION),
430
+ ...(revisions.at(-1) ? { latestSourceRevision: revisions.at(-1) } : {}),
431
+ };
125
432
  }
126
- function parseDistanceKm(value) {
127
- const meters = parseDistanceMeters(value);
128
- return meters !== undefined ? meters / 1000 : undefined;
433
+ function comparableSourceSession(session) {
434
+ const { sourceApp: _sourceApp, sourceWorkoutId: _sourceWorkoutId, startedAt: _startedAt, endedAt: _endedAt, ...workout } = session.workout;
435
+ return {
436
+ title: session.title,
437
+ sourceEndTimeKey: session.sourceEndTimeKey,
438
+ durationMinutes: session.durationMinutes,
439
+ distanceKm: session.distanceKm,
440
+ note: session.note,
441
+ workout,
442
+ };
129
443
  }
130
- function parseDurationSeconds(value) {
131
- const normalized = normalizeOptionalText(value)?.toLowerCase();
132
- if (!normalized) {
133
- return undefined;
134
- }
135
- const colonParts = normalized.split(':').map((part) => part.trim());
136
- if (colonParts.length === 2 || colonParts.length === 3) {
137
- const numbers = colonParts.map((part) => Number.parseInt(part, 10));
138
- if (numbers.every((entry) => Number.isFinite(entry))) {
139
- if (numbers.length === 2) {
140
- const [minutes, seconds] = numbers;
141
- return minutes * 60 + seconds;
444
+ async function loadPriorWorkoutSnapshotEvidence(input) {
445
+ const files = await findPriorRawWorkoutFiles(input);
446
+ if (files.length === 0)
447
+ return { files, matchesByFile: [] };
448
+ const matchesByFile = await input.core.findEventsByRawRefs({
449
+ vaultRoot: input.vault,
450
+ rawRefs: files.map((candidate) => candidate.rawFile),
451
+ resourceType: 'workout-session',
452
+ });
453
+ return { files, matchesByFile };
454
+ }
455
+ function resolvePriorSnapshotMatches(input) {
456
+ const allowedRecordSources = new Set(input.allowedRecordSources ?? [input.plan.source]);
457
+ const currentIndexesByKey = new Map(input.plan.sessions.map((session, index) => [session.sourceSessionKey, index]));
458
+ const alignedMatches = new Array(input.plan.sessions.length);
459
+ let exactPartialEvidence = false;
460
+ const admittedCandidates = [];
461
+ for (const [candidateIndex, candidate] of input.evidence.files.entries()) {
462
+ const matches = input.evidence.matchesByFile[candidateIndex] ?? [];
463
+ if (matches.length === 0)
464
+ continue;
465
+ if (candidate.text === input.text)
466
+ exactPartialEvidence = true;
467
+ const recordTimeZones = new Set(matches
468
+ .map((match) => match.attachment.timeZone)
469
+ .filter((timeZone) => typeof timeZone === 'string'));
470
+ const timeZone = recordTimeZones.size === 1
471
+ ? [...recordTimeZones][0]
472
+ : candidate.timeZone;
473
+ if (!timeZone) {
474
+ throw new VaultCliError('conflict', 'Prior workout evidence does not prove one parsing timezone; nothing was imported.');
475
+ }
476
+ let priorPlan;
477
+ try {
478
+ priorPlan = input.importers.planWorkoutCsvImport({
479
+ text: candidate.text,
480
+ timeZone,
481
+ source: candidate.source,
482
+ delimiter: candidate.delimiter,
483
+ weightUnit: candidate.weightUnit ?? undefined,
484
+ distanceUnit: candidate.distanceUnit ?? undefined,
485
+ });
486
+ }
487
+ catch {
488
+ throw new VaultCliError('conflict', 'Prior workout raw evidence cannot be parsed safely for identity reconciliation; nothing was imported.');
489
+ }
490
+ const attachedSources = new Set(matches.flatMap(({ latest }) => latest.kind === 'activity_session' && latest.workout.sourceApp
491
+ ? [latest.workout.sourceApp]
492
+ : []));
493
+ const hasCurrentOverlap = priorPlan.sessions.some((session) => currentIndexesByKey.has(session.sourceSessionKey));
494
+ const isCurrentProviderHistory = candidate.source === input.plan.source
495
+ || (attachedSources.size === 1
496
+ && attachedSources.has(input.plan.source));
497
+ if (!hasCurrentOverlap && !isCurrentProviderHistory)
498
+ continue;
499
+ if (priorPlan.sessions.some((session) => !currentIndexesByKey.has(session.sourceSessionKey))) {
500
+ throw new VaultCliError('conflict', 'A prior workout source session is missing or changed in the refreshed export; nothing was imported.');
501
+ }
502
+ const directMapping = mappingFromAttachedEvents(priorPlan, matches);
503
+ const partialMatchesByIndex = new Map();
504
+ if (directMapping) {
505
+ directMapping.matches.forEach((match, index) => partialMatchesByIndex.set(index, match));
506
+ }
507
+ else {
508
+ const indexesBySourceId = new Map(priorPlan.sessions.map((session, index) => [session.sourceWorkoutId, index]));
509
+ const indexesByTitleAndTime = new Map(priorPlan.sessions.map((session, index) => [`${session.title}\0${session.occurredAt}`, index]));
510
+ for (const match of matches) {
511
+ const record = match.attachment;
512
+ const matchingIndexes = new Set();
513
+ const nestedSourceId = record.kind === 'activity_session'
514
+ ? record.workout.sourceWorkoutId
515
+ : undefined;
516
+ const nestedIndex = nestedSourceId
517
+ ? indexesBySourceId.get(nestedSourceId)
518
+ : undefined;
519
+ const externalIndex = record.externalRef
520
+ ? indexesBySourceId.get(record.externalRef.resourceId)
521
+ : undefined;
522
+ const titleTimeIndex = indexesByTitleAndTime.get(`${record.title}\0${record.occurredAt}`);
523
+ if (nestedIndex !== undefined)
524
+ matchingIndexes.add(nestedIndex);
525
+ if (externalIndex !== undefined)
526
+ matchingIndexes.add(externalIndex);
527
+ if (titleTimeIndex !== undefined)
528
+ matchingIndexes.add(titleTimeIndex);
529
+ const matchingIndex = matchingIndexes.size === 1 ? [...matchingIndexes][0] : undefined;
530
+ if (matchingIndex === undefined || partialMatchesByIndex.has(matchingIndex)) {
531
+ throw new VaultCliError('conflict', 'Prior workout evidence has partial or ambiguous session attachments; nothing was imported.');
532
+ }
533
+ partialMatchesByIndex.set(matchingIndex, match);
142
534
  }
143
- const [hours, minutes, seconds] = numbers;
144
- return hours * 3600 + minutes * 60 + seconds;
145
535
  }
536
+ priorPlan.sessions.forEach((session, priorIndex) => {
537
+ const currentIndex = currentIndexesByKey.get(session.sourceSessionKey);
538
+ if (currentIndex === undefined)
539
+ return;
540
+ const match = partialMatchesByIndex.get(priorIndex);
541
+ if (!match)
542
+ return;
543
+ const record = match.latest;
544
+ if (record.lifecycle?.state !== 'deleted'
545
+ && (record.kind !== 'activity_session'
546
+ || !record.workout.sourceApp
547
+ || !allowedRecordSources.has(record.workout.sourceApp))) {
548
+ throw new VaultCliError('conflict', 'Prior workout sessions use a different provider dialect; correct the exact prior file first. Nothing was imported.');
549
+ }
550
+ const selected = alignedMatches[currentIndex];
551
+ if (selected && selected.latest.id !== record.id) {
552
+ throw new VaultCliError('conflict', 'Prior workout snapshots map one source session to conflicting event identities; nothing was imported.');
553
+ }
554
+ alignedMatches[currentIndex] = selected ?? match;
555
+ });
556
+ admittedCandidates.push({ candidate, priorPlan, matches });
146
557
  }
147
- const inferredMinutes = inferDurationMinutes(normalized);
148
- if (typeof inferredMinutes === 'number') {
149
- return inferredMinutes * 60;
150
- }
151
- const amount = parseOptionalNumber(normalized);
152
- if (amount === undefined) {
153
- return undefined;
154
- }
155
- if (normalized.includes('hour')) {
156
- return Math.round(amount * 3600);
558
+ for (const { candidate, priorPlan, matches } of admittedCandidates) {
559
+ const assembledMatches = priorPlan.sessions.map((session) => {
560
+ const currentIndex = currentIndexesByKey.get(session.sourceSessionKey);
561
+ return currentIndex === undefined ? undefined : alignedMatches[currentIndex];
562
+ });
563
+ const fullMapping = assembledMatches.every((match) => match !== undefined)
564
+ ? mappingFromAttachedEvents(priorPlan, assembledMatches)
565
+ : mappingFromAttachedEvents(priorPlan, matches);
566
+ const hasPostMappingCorrection = fullMapping?.records.every((record) => {
567
+ if (record.lifecycle?.state === 'deleted')
568
+ return true;
569
+ const revision = Date.parse(record.externalRef?.version ?? '');
570
+ return Number.isFinite(revision) && revision > Date.parse(WORKOUT_CSV_MAPPING_REVISION);
571
+ }) === true;
572
+ const correctedWeightInterpretation = hasPostMappingCorrection
573
+ && fullMapping.records.every((record, priorIndex) => {
574
+ if (record.lifecycle?.state === 'deleted')
575
+ return true;
576
+ const currentIndex = currentIndexesByKey.get(priorPlan.sessions[priorIndex].sourceSessionKey);
577
+ return currentIndex !== undefined
578
+ && record.kind === 'activity_session'
579
+ && JSON.stringify(weightOwnedProjection(record.workout))
580
+ === JSON.stringify(weightOwnedProjection(input.plan.sessions[currentIndex].workout));
581
+ });
582
+ const correctedDistanceInterpretation = hasPostMappingCorrection
583
+ && fullMapping.records.every((record, priorIndex) => {
584
+ if (record.lifecycle?.state === 'deleted')
585
+ return true;
586
+ const currentIndex = currentIndexesByKey.get(priorPlan.sessions[priorIndex].sourceSessionKey);
587
+ return currentIndex !== undefined
588
+ && record.kind === 'activity_session'
589
+ && JSON.stringify(distanceOwnedProjection(record.workout, record.distanceKm))
590
+ === JSON.stringify(distanceOwnedProjection(input.plan.sessions[currentIndex].workout, input.plan.sessions[currentIndex].distanceKm));
591
+ });
592
+ const legacyCanonicalWeightInterpretation = candidate.weightUnit === undefined
593
+ && fullMapping?.records.every((record, priorIndex) => {
594
+ if (record.lifecycle?.state === 'deleted')
595
+ return true;
596
+ const currentIndex = currentIndexesByKey.get(priorPlan.sessions[priorIndex].sourceSessionKey);
597
+ return currentIndex !== undefined
598
+ && record.kind === 'activity_session'
599
+ && JSON.stringify(weightOwnedProjection(record.workout))
600
+ === JSON.stringify(weightOwnedProjection(input.plan.sessions[currentIndex].workout));
601
+ }) === true;
602
+ const legacyCanonicalDistanceInterpretation = candidate.distanceUnit === undefined
603
+ && fullMapping?.records.every((record, priorIndex) => {
604
+ if (record.lifecycle?.state === 'deleted')
605
+ return true;
606
+ const currentIndex = currentIndexesByKey.get(priorPlan.sessions[priorIndex].sourceSessionKey);
607
+ return currentIndex !== undefined
608
+ && record.kind === 'activity_session'
609
+ && JSON.stringify(distanceOwnedProjection(record.workout, record.distanceKm))
610
+ === JSON.stringify(distanceOwnedProjection(input.plan.sessions[currentIndex].workout, input.plan.sessions[currentIndex].distanceKm));
611
+ }) === true;
612
+ if ((candidate.weightUnit === undefined
613
+ && input.plan.weightUnit !== null
614
+ && !legacyCanonicalWeightInterpretation)
615
+ || (candidate.distanceUnit === undefined
616
+ && input.plan.distanceUnit !== null
617
+ && !legacyCanonicalDistanceInterpretation)) {
618
+ throw new VaultCliError('conflict', 'Prior workout evidence does not prove the selected units. Rerun the exact original CSV with --correct-units, then retry this expanded snapshot; nothing was imported.');
619
+ }
620
+ let comparisonPlan;
621
+ try {
622
+ comparisonPlan = input.importers.planWorkoutCsvImport({
623
+ text: candidate.text,
624
+ timeZone: input.plan.timeZone,
625
+ source: input.plan.source,
626
+ delimiter: candidate.delimiter,
627
+ weightUnit: correctedWeightInterpretation || legacyCanonicalWeightInterpretation
628
+ ? input.plan.weightUnit ?? undefined
629
+ : candidate.weightUnit === undefined
630
+ ? undefined
631
+ : candidate.weightUnit ?? undefined,
632
+ distanceUnit: correctedDistanceInterpretation || legacyCanonicalDistanceInterpretation
633
+ ? input.plan.distanceUnit ?? undefined
634
+ : candidate.distanceUnit === undefined
635
+ ? undefined
636
+ : candidate.distanceUnit ?? undefined,
637
+ });
638
+ }
639
+ catch {
640
+ throw new VaultCliError('conflict', 'Prior workout source sessions cannot be compared safely with the current export; nothing was imported.');
641
+ }
642
+ const comparisonByKey = new Map(comparisonPlan.sessions.map((session) => [session.sourceSessionKey, session]));
643
+ for (const priorSession of priorPlan.sessions) {
644
+ const currentIndex = currentIndexesByKey.get(priorSession.sourceSessionKey);
645
+ if (currentIndex === undefined)
646
+ continue;
647
+ const currentSession = input.plan.sessions[currentIndex];
648
+ const comparablePrior = comparisonByKey.get(priorSession.sourceSessionKey);
649
+ if (!comparablePrior
650
+ || JSON.stringify(comparableSourceSession(comparablePrior))
651
+ !== JSON.stringify(comparableSourceSession(currentSession))) {
652
+ throw new VaultCliError('conflict', 'A prior workout source session changed without an ordered source revision; nothing was imported.');
653
+ }
654
+ }
157
655
  }
158
- if (normalized.includes('min')) {
159
- return Math.round(amount * 60);
656
+ if (exactPartialEvidence && alignedMatches.some((match) => match === undefined)) {
657
+ throw new VaultCliError('conflict', 'Exact prior workout snapshot cannot resolve every source session identity; nothing was imported.');
160
658
  }
161
- return Math.round(amount);
659
+ return alignedMatches;
162
660
  }
163
- function parseDurationMinutes(value) {
164
- const normalized = normalizeOptionalText(value)?.toLowerCase();
165
- if (!normalized) {
166
- return undefined;
167
- }
168
- if (normalized.includes(':')) {
169
- const seconds = parseDurationSeconds(normalized);
170
- return seconds !== undefined ? Math.max(1, Math.round(seconds / 60)) : undefined;
171
- }
172
- const inferredMinutes = inferDurationMinutes(normalized);
173
- if (typeof inferredMinutes === 'number') {
174
- return inferredMinutes;
661
+ async function resolveExistingWorkoutEvidence(input) {
662
+ const exactRawFiles = await findExactRawWorkoutFiles({
663
+ core: input.core,
664
+ vault: input.vault,
665
+ text: input.text,
666
+ });
667
+ if (exactRawFiles.length === 0) {
668
+ return {};
175
669
  }
176
- const amount = parseOptionalNumber(normalized);
177
- if (amount === undefined) {
178
- return undefined;
670
+ const eventsByRawFile = await input.core.findEventsByRawRefs({
671
+ vaultRoot: input.vault,
672
+ rawRefs: exactRawFiles.map((candidate) => candidate.rawFile),
673
+ resourceType: 'workout-session',
674
+ });
675
+ let rawOnlyFile;
676
+ let foundAmbiguousCanonicalEvidence = false;
677
+ let priorSnapshotEvidence;
678
+ let selectedEvidence;
679
+ for (const [index, candidate] of exactRawFiles.entries()) {
680
+ const rawFile = candidate.rawFile;
681
+ const matches = eventsByRawFile[index] ?? [];
682
+ if (matches.length === 0) {
683
+ const provenanceMatches = candidate.source === input.plan.source
684
+ && candidate.delimiter === input.plan.delimiter
685
+ && candidate.timeZone === input.plan.timeZone
686
+ && candidate.weightUnit === input.plan.weightUnit
687
+ && candidate.distanceUnit === input.plan.distanceUnit;
688
+ if (provenanceMatches)
689
+ rawOnlyFile = rawOnlyFile ?? rawFile;
690
+ continue;
691
+ }
692
+ let mapping = mappingFromAttachedEvents(input.plan, matches);
693
+ if (!mapping && matches.length < input.plan.sessions.length) {
694
+ const recordTimeZones = new Set(matches
695
+ .map((match) => match.attachment.timeZone)
696
+ .filter((timeZone) => typeof timeZone === 'string'));
697
+ const originalTimeZone = recordTimeZones.size === 1
698
+ ? [...recordTimeZones][0]
699
+ : candidate.timeZone;
700
+ if (!originalTimeZone) {
701
+ throw new VaultCliError('conflict', 'Exact prior workout evidence does not prove its original timezone; nothing was imported.');
702
+ }
703
+ let exactPlan;
704
+ try {
705
+ exactPlan = input.importers.planWorkoutCsvImport({
706
+ text: input.text,
707
+ timeZone: originalTimeZone,
708
+ source: candidate.source,
709
+ delimiter: candidate.delimiter,
710
+ weightUnit: candidate.weightUnit ?? undefined,
711
+ distanceUnit: candidate.distanceUnit ?? undefined,
712
+ });
713
+ }
714
+ catch {
715
+ throw new VaultCliError('conflict', 'Exact prior workout raw evidence cannot be parsed safely for identity reconciliation; nothing was imported.');
716
+ }
717
+ priorSnapshotEvidence ??= await loadPriorWorkoutSnapshotEvidence({
718
+ core: input.core,
719
+ vault: input.vault,
720
+ });
721
+ const reconciledMatches = resolvePriorSnapshotMatches({
722
+ importers: input.importers,
723
+ plan: exactPlan,
724
+ text: input.text,
725
+ evidence: priorSnapshotEvidence,
726
+ allowedRecordSources: [exactPlan.source, input.plan.source],
727
+ });
728
+ if (reconciledMatches.every((match) => match !== undefined)) {
729
+ mapping = mappingFromAttachedEvents(input.plan, reconciledMatches);
730
+ }
731
+ }
732
+ if (mapping) {
733
+ const recordTimeZones = new Set(mapping.matches
734
+ .map((match) => match.attachment.timeZone)
735
+ .filter((timeZone) => typeof timeZone === 'string'));
736
+ const recordTimeZone = recordTimeZones.size === 1 ? [...recordTimeZones][0] : undefined;
737
+ const originalTimeZone = recordTimeZone ?? candidate.timeZone;
738
+ const currentWeightValuesMatch = mapping.records.every((record, sessionIndex) => record.lifecycle?.state === 'deleted'
739
+ || (record.kind === 'activity_session'
740
+ && JSON.stringify(weightOwnedProjection(record.workout))
741
+ === JSON.stringify(weightOwnedProjection(input.plan.sessions[sessionIndex]?.workout))));
742
+ const currentDistanceValuesMatch = mapping.records.every((record, sessionIndex) => record.lifecycle?.state === 'deleted'
743
+ || (record.kind === 'activity_session'
744
+ && JSON.stringify(distanceOwnedProjection(record.workout, record.distanceKm))
745
+ === JSON.stringify(distanceOwnedProjection(input.plan.sessions[sessionIndex]?.workout, input.plan.sessions[sessionIndex]?.distanceKm))));
746
+ const evidence = {
747
+ rawFile,
748
+ ...mapping,
749
+ currentWeightValuesMatch,
750
+ currentDistanceValuesMatch,
751
+ currentCorrectedUnitsMatch: currentWeightValuesMatch
752
+ && currentDistanceValuesMatch
753
+ && mapping.records.every((record) => {
754
+ if (record.lifecycle?.state === 'deleted')
755
+ return true;
756
+ const revision = Date.parse(record.externalRef?.version ?? '');
757
+ return Number.isFinite(revision)
758
+ && revision > Date.parse(WORKOUT_CSV_MAPPING_REVISION);
759
+ }),
760
+ currentUnitsMatch: (candidate.weightUnit !== undefined
761
+ ? candidate.weightUnit === input.plan.weightUnit
762
+ : currentWeightValuesMatch)
763
+ && (candidate.distanceUnit !== undefined
764
+ ? candidate.distanceUnit === input.plan.distanceUnit
765
+ : currentDistanceValuesMatch),
766
+ ...(originalTimeZone ? { originalTimeZone } : {}),
767
+ ...(candidate.source ? { originalSource: candidate.source } : {}),
768
+ ...(candidate.delimiter ? { originalDelimiter: candidate.delimiter } : {}),
769
+ ...(candidate.weightUnit !== undefined ? { originalWeightUnit: candidate.weightUnit } : {}),
770
+ ...(candidate.distanceUnit !== undefined ? { originalDistanceUnit: candidate.distanceUnit } : {}),
771
+ };
772
+ if (selectedEvidence
773
+ && selectedEvidence.records.map((record) => record.id).join('\0')
774
+ !== evidence.records.map((record) => record.id).join('\0')) {
775
+ foundAmbiguousCanonicalEvidence = true;
776
+ }
777
+ else {
778
+ selectedEvidence = selectedEvidence ?? evidence;
779
+ }
780
+ continue;
781
+ }
179
782
  }
180
- if (normalized.includes('hour')) {
181
- return Math.max(1, Math.round(amount * 60));
783
+ if (foundAmbiguousCanonicalEvidence) {
784
+ throw new VaultCliError('conflict', 'Exact prior workout evidence has an ambiguous canonical event mapping; nothing was imported.');
182
785
  }
183
- if (normalized.includes('sec')) {
184
- return Math.max(1, Math.round(amount / 60));
786
+ if (selectedEvidence) {
787
+ return selectedEvidence;
185
788
  }
186
- return Math.max(1, Math.round(amount));
789
+ return {
790
+ ...(rawOnlyFile ? { rawFile: rawOnlyFile } : {}),
791
+ };
187
792
  }
188
- function normalizeSetType(value) {
189
- const normalized = normalizeOptionalText(value)?.toLowerCase();
190
- if (!normalized) {
191
- return undefined;
793
+ function correctionStructure(workout) {
794
+ return workout?.exercises.map((exercise) => ({
795
+ name: exercise.name,
796
+ sourceExerciseId: exercise.sourceExerciseId,
797
+ order: exercise.order,
798
+ sets: exercise.sets.map((set) => ({
799
+ order: set.order,
800
+ })),
801
+ }));
802
+ }
803
+ function unitOwnedProjection(workout, distanceKm) {
804
+ return {
805
+ weight: weightOwnedProjection(workout),
806
+ distance: distanceOwnedProjection(workout, distanceKm),
807
+ };
808
+ }
809
+ function weightOwnedProjection(workout) {
810
+ return workout?.exercises.map((exercise) => ({
811
+ unitOverride: exercise.unitOverride,
812
+ sets: exercise.sets.map((set) => ({
813
+ weight: set.weight,
814
+ weightUnit: set.weightUnit,
815
+ bodyweightKg: set.bodyweightKg,
816
+ assistanceKg: set.assistanceKg,
817
+ addedWeightKg: set.addedWeightKg,
818
+ })),
819
+ }));
820
+ }
821
+ function distanceOwnedProjection(workout, distanceKm) {
822
+ return {
823
+ distanceKm,
824
+ exercises: workout?.exercises.map((exercise) => ({
825
+ sets: exercise.sets.map((set) => ({
826
+ distanceMeters: set.distanceMeters,
827
+ })),
828
+ })),
829
+ };
830
+ }
831
+ function expectedLatestForRecord(record) {
832
+ return {
833
+ eventId: record.id,
834
+ lifecycleRevision: record.lifecycle?.revision ?? 1,
835
+ };
836
+ }
837
+ function assertCorrectionStructure(session, record) {
838
+ if (record.kind !== 'activity_session'
839
+ || JSON.stringify(correctionStructure(record.workout))
840
+ !== JSON.stringify(correctionStructure(session.workout))) {
841
+ throw new VaultCliError('conflict', 'Exact prior workout evidence overlaps edited exercise or set fields; nothing was imported.');
192
842
  }
193
- if (normalized.includes('warm')) {
194
- return 'warmup';
843
+ }
844
+ function replaceOptionalSetField(set, key, value) {
845
+ if (value === undefined) {
846
+ delete set[key];
195
847
  }
196
- if (normalized.includes('drop')) {
197
- return 'dropset';
848
+ else {
849
+ set[key] = value;
198
850
  }
199
- if (normalized.includes('fail')) {
200
- return 'failure';
851
+ }
852
+ function correctedExternalRef(record, mappingRevision) {
853
+ const externalRef = record.externalRef;
854
+ if (!externalRef) {
855
+ throw new VaultCliError('conflict', 'Exact prior workout event has no authoritative external identity; nothing was imported.');
201
856
  }
202
- return 'normal';
857
+ return { ...externalRef, version: mappingRevision };
203
858
  }
204
- function normalizeTimestamp(dateValue, timeValue) {
205
- const dateText = normalizeOptionalText(dateValue);
206
- const timeText = normalizeOptionalText(timeValue);
207
- if (dateText && timeText) {
208
- const composite = `${dateText} ${timeText}`;
209
- const parsed = new Date(composite);
210
- if (Number.isFinite(parsed.getTime())) {
211
- return parsed.toISOString();
212
- }
859
+ function eventRecordPayloadWithRevision(record, mappingRevision) {
860
+ const payload = eventRecordToImportPayload(record);
861
+ payload.externalRef = correctedExternalRef(record, mappingRevision);
862
+ return payload;
863
+ }
864
+ function buildUnitCorrectionPayload(input) {
865
+ const { record } = input;
866
+ assertCorrectionStructure(input.session, record);
867
+ const weightOwnershipMatches = !input.correctWeight || input.ownershipSessions.some((session) => JSON.stringify(weightOwnedProjection(session.workout))
868
+ === JSON.stringify(weightOwnedProjection(record.workout)));
869
+ const distanceOwnershipMatches = !input.correctDistance || input.ownershipSessions.some((session) => JSON.stringify(distanceOwnedProjection(session.workout, session.distanceKm))
870
+ === JSON.stringify(distanceOwnedProjection(record.workout, record.distanceKm)));
871
+ if (!weightOwnershipMatches || !distanceOwnershipMatches) {
872
+ throw new VaultCliError('conflict', 'Exact prior workout evidence overlaps edited load or distance fields; nothing was imported.');
213
873
  }
214
- if (dateText) {
215
- if (/^\d{4}-\d{2}-\d{2}$/u.test(dateText)) {
216
- return `${dateText}T12:00:00.000Z`;
217
- }
218
- const parsed = new Date(dateText);
219
- if (Number.isFinite(parsed.getTime())) {
220
- return parsed.toISOString();
874
+ const payload = eventRecordToImportPayload(record);
875
+ const workout = structuredClone(record.workout);
876
+ workout.exercises.forEach((exercise, exerciseIndex) => {
877
+ const plannedExercise = input.session.workout.exercises[exerciseIndex];
878
+ if (input.correctWeight) {
879
+ exercise.unitOverride = plannedExercise.unitOverride;
221
880
  }
881
+ exercise.sets.forEach((set, setIndex) => {
882
+ const plannedSet = plannedExercise.sets[setIndex];
883
+ if (input.correctWeight) {
884
+ replaceOptionalSetField(set, 'weight', plannedSet.weight);
885
+ replaceOptionalSetField(set, 'weightUnit', plannedSet.weightUnit);
886
+ replaceOptionalSetField(set, 'bodyweightKg', plannedSet.bodyweightKg);
887
+ replaceOptionalSetField(set, 'assistanceKg', plannedSet.assistanceKg);
888
+ replaceOptionalSetField(set, 'addedWeightKg', plannedSet.addedWeightKg);
889
+ }
890
+ if (input.correctDistance) {
891
+ replaceOptionalSetField(set, 'distanceMeters', plannedSet.distanceMeters);
892
+ }
893
+ });
894
+ });
895
+ payload.workout = workout;
896
+ if (input.correctDistance) {
897
+ if (input.session.distanceKm === undefined)
898
+ delete payload.distanceKm;
899
+ else
900
+ payload.distanceKm = input.session.distanceKm;
222
901
  }
223
- return undefined;
902
+ payload.externalRef = correctedExternalRef(record, input.mappingRevision);
903
+ return payload;
224
904
  }
225
- function detectSource(headers) {
226
- const normalizedHeaders = new Set(headers.map(normalizeHeaderName));
227
- if (normalizedHeaders.has('exerciseimage')
228
- || normalizedHeaders.has('primarymuscles')
229
- || normalizedHeaders.has('secondarymuscles')) {
230
- return 'hevy';
231
- }
232
- if (normalizedHeaders.has('workoutname')
233
- || normalizedHeaders.has('exercisename')
234
- || normalizedHeaders.has('setorder')) {
235
- return 'strong';
905
+ function buildUnitOwnershipPlans(input) {
906
+ const plans = [];
907
+ const seen = new Set();
908
+ for (const weightUnit of [undefined, 'lb', 'kg']) {
909
+ for (const distanceUnit of [undefined, 'm', 'km', 'mi']) {
910
+ try {
911
+ const plan = input.importers.planWorkoutCsvImport({
912
+ text: input.text,
913
+ timeZone: input.timeZone,
914
+ source: input.source,
915
+ delimiter: input.delimiter,
916
+ weightUnit,
917
+ distanceUnit,
918
+ });
919
+ if (!plan.importable)
920
+ continue;
921
+ const key = JSON.stringify(plan.sessions.map((session) => unitOwnedProjection(session.workout, session.distanceKm)));
922
+ if (!seen.has(key)) {
923
+ seen.add(key);
924
+ plans.push(plan);
925
+ }
926
+ }
927
+ catch {
928
+ // Conflicting explicit/header unit combinations are not valid ownership candidates.
929
+ }
930
+ }
236
931
  }
237
- return null;
932
+ return plans;
238
933
  }
239
- async function inspectWorkoutCsv(input) {
240
- const delimiter = input.delimiter ?? DEFAULT_DELIMITER;
241
- const { parseDelimitedRows } = await loadWorkoutImportersRuntime();
242
- const rows = parseDelimitedRows(input.text, delimiter);
243
- if (rows.length === 0) {
244
- throw new VaultCliError('invalid_payload', 'Workout CSV is empty.');
245
- }
246
- const headerRow = rows[0] ?? [];
247
- const headers = headerRow.map((cell) => cell.trim());
248
- const dataRows = rows.slice(1).filter((row) => row.some((cell) => cell.trim().length > 0));
249
- const detectedSource = detectSource(headers);
250
- const workoutNameIndex = findHeaderIndex(headers, ['workout name', 'workout', 'routine name', 'routine', 'name']);
251
- const dateIndex = findHeaderIndex(headers, ['date', 'workout date', 'session date', 'day']);
252
- const startTimeIndex = findHeaderIndex(headers, ['start time', 'start', 'started at', 'started']);
253
- const estimatedKeys = new Set();
254
- for (const row of dataRows) {
255
- const workoutName = valueAt(row, workoutNameIndex) ?? 'workout';
256
- const occurredAt = normalizeTimestamp(valueAt(row, dateIndex), valueAt(row, startTimeIndex)) ?? `row-${estimatedKeys.size + 1}`;
257
- estimatedKeys.add(`${occurredAt}::${workoutName}`);
934
+ function canonicalCsvNote(session) {
935
+ return session.note
936
+ ?? session.workout.sessionNote
937
+ ?? session.workout.routineName
938
+ ?? session.title;
939
+ }
940
+ function dialectOwnedStructure(workout) {
941
+ return workout?.exercises.map((exercise) => ({
942
+ name: exercise.name,
943
+ order: exercise.order,
944
+ note: exercise.note,
945
+ sets: exercise.sets.map((set) => ({ order: set.order, type: set.type })),
946
+ }));
947
+ }
948
+ function buildDialectCorrectionPayload(input) {
949
+ if (input.record.kind !== 'activity_session'
950
+ || JSON.stringify(dialectOwnedStructure(input.record.workout))
951
+ !== JSON.stringify(dialectOwnedStructure(input.originalSession.workout))) {
952
+ throw new VaultCliError('conflict', 'Exact prior workout evidence overlaps edited provider-owned fields; nothing was imported.');
258
953
  }
259
- const warnings = [];
260
- if (headers.length === 0) {
261
- warnings.push('The CSV header row did not contain any recognizable columns.');
954
+ const payload = eventRecordToImportPayload(input.record);
955
+ const workout = structuredClone(input.record.workout);
956
+ workout.sourceApp = input.correctedSession.workout.sourceApp;
957
+ workout.sourceWorkoutId = input.correctedSession.workout.sourceWorkoutId;
958
+ workout.exercises.forEach((exercise, exerciseIndex) => {
959
+ const correctedExercise = input.correctedSession.workout.exercises[exerciseIndex];
960
+ exercise.note = correctedExercise.note;
961
+ exercise.sets.forEach((set, setIndex) => {
962
+ const correctedSet = correctedExercise.sets[setIndex];
963
+ set.order = correctedSet.order;
964
+ set.type = correctedSet.type;
965
+ });
966
+ });
967
+ const originalSessionNote = input.originalSession.workout.sessionNote
968
+ ?? canonicalCsvNote(input.originalSession);
969
+ const correctedSessionNote = input.correctedSession.workout.sessionNote
970
+ ?? canonicalCsvNote(input.correctedSession);
971
+ if (originalSessionNote !== correctedSessionNote) {
972
+ if (workout.sessionNote !== originalSessionNote) {
973
+ throw new VaultCliError('conflict', 'Exact prior workout evidence overlaps an edited session note; nothing was imported.');
974
+ }
975
+ workout.sessionNote = correctedSessionNote;
262
976
  }
263
- if (findHeaderIndex(headers, ['exercise name', 'exercise', 'movement']) === undefined) {
264
- warnings.push('No exercise column was detected; structured set import will be limited.');
977
+ const originalNote = canonicalCsvNote(input.originalSession);
978
+ const correctedNote = canonicalCsvNote(input.correctedSession);
979
+ if (originalNote !== correctedNote) {
980
+ if (input.record.note !== originalNote) {
981
+ throw new VaultCliError('conflict', 'Exact prior workout evidence overlaps an edited workout note; nothing was imported.');
982
+ }
983
+ payload.note = correctedNote;
265
984
  }
266
- return {
267
- sourceFile: input.file,
268
- source: input.source ?? detectedSource ?? DEFAULT_SOURCE,
269
- detectedSource,
270
- delimiter,
271
- headers,
272
- rowCount: dataRows.length,
273
- estimatedWorkouts: estimatedKeys.size,
274
- importable: dataRows.length > 0 && headers.length > 0,
275
- warnings,
276
- rows,
277
- };
985
+ payload.workout = workout;
986
+ payload.externalRef = correctedExternalRef(input.record, input.mappingRevision);
987
+ return payload;
278
988
  }
279
- function resolveExerciseMode(exercise) {
280
- const sets = exercise.sets;
281
- if (sets.some((set) => typeof set.assistanceKg === 'number')) {
282
- return 'assisted_bodyweight';
283
- }
284
- if (sets.some((set) => typeof set.addedWeightKg === 'number')) {
285
- return 'weighted_bodyweight';
286
- }
287
- if (sets.some((set) => typeof set.bodyweightKg === 'number')) {
288
- return 'bodyweight';
289
- }
290
- if (sets.some((set) => typeof set.distanceMeters === 'number') && sets.some((set) => typeof set.durationSeconds === 'number')) {
291
- return 'cardio';
292
- }
293
- if (sets.every((set) => typeof set.durationSeconds === 'number' && set.reps === undefined && set.weight === undefined)) {
294
- return 'duration';
295
- }
296
- return 'weight_reps';
297
- }
298
- function buildWorkoutSessionsFromCsv(headers, rows) {
299
- const workoutNameIndex = findHeaderIndex(headers, ['workout name', 'workout', 'routine name', 'routine', 'name']);
300
- const dateIndex = findHeaderIndex(headers, ['date', 'workout date', 'session date', 'day']);
301
- const startTimeIndex = findHeaderIndex(headers, ['start time', 'start', 'started at', 'started']);
302
- const endTimeIndex = findHeaderIndex(headers, ['end time', 'end', 'ended at', 'ended']);
303
- const durationIndex = findHeaderIndex(headers, ['duration minutes', 'duration min', 'duration']);
304
- const distanceIndex = findHeaderIndex(headers, ['distance', 'distance km']);
305
- const workoutNoteIndex = findHeaderIndex(headers, ['note', 'notes', 'workout note', 'session note']);
306
- const exerciseNameIndex = findHeaderIndex(headers, ['exercise name', 'exercise', 'movement']);
307
- const exerciseNoteIndex = findHeaderIndex(headers, ['exercise note', 'movement note']);
308
- const setOrderIndex = findHeaderIndex(headers, ['set order', 'set number', 'set']);
309
- const repsIndex = findHeaderIndex(headers, ['reps', 'rep']);
310
- const weightIndex = findHeaderIndex(headers, ['weight', 'load']);
311
- const weightUnitIndex = findHeaderIndex(headers, ['weight unit', 'load unit', 'unit']);
312
- const setTypeIndex = findHeaderIndex(headers, ['set type', 'type']);
313
- const groupIndex = findHeaderIndex(headers, ['group', 'group id', 'superset', 'circuit']);
314
- const rpeIndex = findHeaderIndex(headers, ['rpe']);
315
- const durationSecondsIndex = findHeaderIndex(headers, ['duration seconds', 'seconds', 'time']);
316
- const setDistanceIndex = findHeaderIndex(headers, ['set distance', 'distance meters', 'distance']);
317
- const bodyweightIndex = findHeaderIndex(headers, ['bodyweight', 'body weight']);
318
- const assistanceIndex = findHeaderIndex(headers, ['assistance', 'assisted weight']);
319
- const addedWeightIndex = findHeaderIndex(headers, ['added weight', 'extra weight']);
320
- const warmupIndex = findHeaderIndex(headers, ['warmup', 'warm up']);
321
- const dropsetIndex = findHeaderIndex(headers, ['dropset', 'drop set']);
322
- const failureIndex = findHeaderIndex(headers, ['failure']);
323
- const sessions = new Map();
324
- for (let rowIndex = 1; rowIndex < rows.length; rowIndex += 1) {
325
- const row = rows[rowIndex];
326
- if (!row || row.every((cell) => cell.trim().length === 0)) {
327
- continue;
328
- }
329
- const workoutName = valueAt(row, workoutNameIndex) ?? 'Workout';
330
- const occurredAt = normalizeTimestamp(valueAt(row, dateIndex), valueAt(row, startTimeIndex));
331
- const key = `${occurredAt ?? `row-${rowIndex + 1}`}::${workoutName}`;
332
- let session = sessions.get(key);
333
- if (!session) {
334
- session = {
335
- key,
336
- title: workoutName,
337
- occurredAt,
338
- startedAt: occurredAt,
339
- endedAt: normalizeTimestamp(valueAt(row, dateIndex), valueAt(row, endTimeIndex)),
340
- durationMinutes: parseDurationMinutes(valueAt(row, durationIndex)),
341
- distanceKm: parseDistanceKm(valueAt(row, distanceIndex)),
342
- note: valueAt(row, workoutNoteIndex),
343
- rawRows: [],
344
- exercises: [],
345
- };
346
- sessions.set(key, session);
347
- }
348
- session.rawRows.push(rowIndex + 1);
349
- session.note = session.note ?? valueAt(row, workoutNoteIndex);
350
- session.durationMinutes = session.durationMinutes ?? parseDurationMinutes(valueAt(row, durationIndex));
351
- session.distanceKm = session.distanceKm ?? parseDistanceKm(valueAt(row, distanceIndex));
352
- session.endedAt = session.endedAt ?? normalizeTimestamp(valueAt(row, dateIndex), valueAt(row, endTimeIndex));
353
- const exerciseName = valueAt(row, exerciseNameIndex);
354
- if (!exerciseName) {
355
- continue;
356
- }
357
- let exercise = session.exercises.find((entry) => entry.name === exerciseName);
358
- if (!exercise) {
359
- exercise = {
360
- name: exerciseName,
361
- order: session.exercises.length + 1,
362
- groupId: valueAt(row, groupIndex),
363
- note: valueAt(row, exerciseNoteIndex),
364
- sets: [],
365
- };
366
- session.exercises.push(exercise);
367
- }
368
- const parsedWeight = parseWeight(valueAt(row, weightIndex));
369
- const explicitWeightUnit = normalizeLoadUnit(valueAt(row, weightUnitIndex));
370
- const type = normalizeSetType(valueAt(row, setTypeIndex))
371
- ?? (parseBooleanLike(valueAt(row, warmupIndex))
372
- ? 'warmup'
373
- : parseBooleanLike(valueAt(row, dropsetIndex))
374
- ? 'dropset'
375
- : parseBooleanLike(valueAt(row, failureIndex))
376
- ? 'failure'
377
- : 'normal');
378
- const set = compactObject({
379
- order: parseOptionalInteger(valueAt(row, setOrderIndex)) ?? exercise.sets.length + 1,
380
- type,
381
- reps: parseOptionalInteger(valueAt(row, repsIndex)),
382
- weight: parsedWeight.weight,
383
- weightUnit: explicitWeightUnit ?? parsedWeight.unit,
384
- durationSeconds: parseDurationSeconds(valueAt(row, durationSecondsIndex)),
385
- distanceMeters: parseDistanceMeters(valueAt(row, setDistanceIndex)),
386
- rpe: parseOptionalNumber(valueAt(row, rpeIndex)),
387
- bodyweightKg: parseOptionalNumber(valueAt(row, bodyweightIndex)),
388
- assistanceKg: parseOptionalNumber(valueAt(row, assistanceIndex)),
389
- addedWeightKg: parseOptionalNumber(valueAt(row, addedWeightIndex)),
390
- });
391
- if (set.reps === undefined
392
- && set.weight === undefined
393
- && set.durationSeconds === undefined
394
- && set.distanceMeters === undefined
395
- && set.rpe === undefined
396
- && set.bodyweightKg === undefined
397
- && set.assistanceKg === undefined
398
- && set.addedWeightKg === undefined) {
399
- continue;
400
- }
401
- exercise.sets.push(set);
402
- exercise.groupId = exercise.groupId ?? valueAt(row, groupIndex);
403
- exercise.note = exercise.note ?? valueAt(row, exerciseNoteIndex);
404
- }
405
- return [...sessions.values()].map((session) => ({
406
- ...session,
407
- durationMinutes: session.durationMinutes
408
- ?? (session.startedAt && session.endedAt
409
- ? Math.max(1, Math.round((new Date(session.endedAt).getTime() - new Date(session.startedAt).getTime()) / 60000))
410
- : undefined),
411
- exercises: session.exercises
412
- .map((exercise) => ({
413
- ...exercise,
414
- mode: resolveExerciseMode(exercise),
415
- unitOverride: exercise.sets.find((set) => set.weightUnit)?.weightUnit,
416
- sets: exercise.sets.slice().sort((left, right) => left.order - right.order),
417
- }))
418
- .filter((exercise) => exercise.sets.length > 0),
419
- }));
989
+ function mapBatchError(error) {
990
+ return toVaultCliError(error, {
991
+ EVENT_BATCH_INVALID: { code: 'contract_invalid' },
992
+ EVENT_EXPECTED_LATEST_MISMATCH: { code: 'conflict' },
993
+ EVENT_SOURCE_REVISION_CONFLICT: { code: 'conflict' },
994
+ EVENT_SOURCE_REVISION_UNORDERED: { code: 'conflict' },
995
+ EVENT_KIND_MISMATCH: { code: 'conflict' },
996
+ });
420
997
  }
421
998
  export async function inspectWorkoutCsvImport(input) {
422
- const text = await readFile(input.file, 'utf8');
423
- const inspection = await inspectWorkoutCsv({
424
- file: input.file,
425
- source: input.source,
426
- delimiter: input.delimiter,
427
- text,
428
- });
999
+ const { plan } = await loadWorkoutCsvPlan(input);
429
1000
  return {
430
1001
  vault: input.vault,
431
1002
  sourceFile: input.file,
432
- source: inspection.source,
433
- detectedSource: inspection.detectedSource,
434
- delimiter: inspection.delimiter,
435
- headers: inspection.headers,
436
- rowCount: inspection.rowCount,
437
- estimatedWorkouts: inspection.estimatedWorkouts,
438
- importable: inspection.importable,
439
- warnings: inspection.warnings,
1003
+ source: plan.source,
1004
+ detectedSource: plan.detectedSource,
1005
+ delimiter: plan.delimiter,
1006
+ timeZone: plan.timeZone,
1007
+ weightUnit: plan.weightUnit,
1008
+ distanceUnit: plan.distanceUnit,
1009
+ rowCount: plan.rowCount,
1010
+ repairedRowCount: plan.repairedRowCount,
1011
+ ignoredRowCount: plan.ignoredRowCount,
1012
+ skippedRowCount: plan.skippedRowCount,
1013
+ skipReasons: plan.skipReasons,
1014
+ estimatedWorkouts: plan.estimatedWorkouts,
1015
+ requiresWeightUnit: plan.requiresWeightUnit,
1016
+ requiresDistanceUnit: plan.requiresDistanceUnit,
1017
+ importable: plan.importable,
1018
+ warnings: plan.warnings,
440
1019
  };
441
1020
  }
442
1021
  export async function importWorkoutCsv(input) {
443
- const text = await readFile(input.file, 'utf8');
444
- const inspection = await inspectWorkoutCsv({
445
- file: input.file,
446
- source: input.source,
447
- delimiter: input.delimiter,
1022
+ const loaded = await loadWorkoutCsvPlan(input);
1023
+ const { text, core, importers } = loaded;
1024
+ let { plan } = loaded;
1025
+ if (input.correctUnits && input.storeRawOnly) {
1026
+ throw new VaultCliError('invalid_option', '--correct-units cannot be combined with --store-raw-only.');
1027
+ }
1028
+ if (input.correctUnits && !input.weightUnit && !input.distanceUnit) {
1029
+ throw new VaultCliError('invalid_option', '--correct-units requires --weight-unit and/or --distance-unit.');
1030
+ }
1031
+ if (input.storeRawOnly) {
1032
+ assertSupportedWorkoutSource(plan);
1033
+ const { generateUlid } = await loadWorkoutImportStateRuntime();
1034
+ const batch = prepareRawWorkoutBatch({
1035
+ core,
1036
+ file: input.file,
1037
+ text,
1038
+ plan,
1039
+ importId: `${ID_PREFIXES.transform}_${generateUlid()}`,
1040
+ importedAt: new Date().toISOString(),
1041
+ });
1042
+ await storeRawWorkoutBatch({
1043
+ core,
1044
+ vault: input.vault,
1045
+ sourceFile: input.file,
1046
+ text,
1047
+ batch,
1048
+ });
1049
+ return {
1050
+ vault: input.vault,
1051
+ sourceFile: input.file,
1052
+ rawFile: batch.rawFile,
1053
+ manifestFile: batch.manifestFile,
1054
+ rawStored: true,
1055
+ source: plan.source,
1056
+ timeZone: plan.timeZone,
1057
+ weightUnit: plan.weightUnit,
1058
+ distanceUnit: plan.distanceUnit,
1059
+ parsedWorkoutCount: plan.sessions.length,
1060
+ receivedCount: 0,
1061
+ importedCount: 0,
1062
+ createdCount: 0,
1063
+ skippedExistingCount: 0,
1064
+ supersededCount: 0,
1065
+ repairedRowCount: plan.repairedRowCount,
1066
+ ignoredRowCount: plan.ignoredRowCount,
1067
+ skippedRowCount: plan.skippedRowCount,
1068
+ rawOnly: true,
1069
+ lookupIds: [],
1070
+ lookupIdsTruncated: false,
1071
+ ledgerFiles: [],
1072
+ ledgerFilesTruncated: false,
1073
+ warnings: plan.warnings,
1074
+ };
1075
+ }
1076
+ const existingEvidence = await resolveExistingWorkoutEvidence({
1077
+ core,
1078
+ importers,
1079
+ vault: input.vault,
448
1080
  text,
1081
+ plan,
449
1082
  });
450
- const [{ generateUlid }, coreRuntime] = await Promise.all([
451
- loadWorkoutImportStateRuntime(),
452
- loadWorkoutImportCoreRuntime(),
453
- ]);
454
- const { applyCanonicalWriteBatch, buildRawImportManifest, resolveRawAssetDirectory, } = coreRuntime;
455
- const importId = `${ID_PREFIXES.transform}_${generateUlid()}`;
456
- const importedAt = new Date().toISOString();
457
- const safeSource = sanitizePathSegment(inspection.source, DEFAULT_SOURCE);
458
- const rawDirectory = resolveRawAssetDirectory({
459
- owner: {
460
- kind: 'workout_batch',
461
- id: importId,
462
- partition: safeSource,
463
- },
464
- occurredAt: importedAt,
465
- });
466
- const safeFileName = sanitizeFileName(path.basename(input.file));
467
- const rawFile = path.posix.join(rawDirectory, safeFileName);
468
- const manifestFile = path.posix.join(rawDirectory, 'manifest.json');
469
- const sessions = buildWorkoutSessionsFromCsv(inspection.headers, inspection.rows);
470
- const warnings = [...inspection.warnings];
471
- if (sessions.length === 0 && !input.storeRawOnly) {
472
- warnings.push('No structured workouts were detected; only the raw CSV was stored.');
1083
+ const sourceDialectCorrection = plan.detectedSource !== null
1084
+ && existingEvidence.records !== undefined
1085
+ && existingEvidence.canonicalSourceMatches === false;
1086
+ if (!sourceDialectCorrection) {
1087
+ assertStructuredPlanImportable(plan);
473
1088
  }
474
- const manifest = buildRawImportManifest({
475
- importId,
476
- importKind: 'workout_batch',
477
- importedAt,
478
- owner: {
479
- kind: 'workout_batch',
480
- id: importId,
481
- partition: safeSource,
482
- },
483
- source: inspection.source,
484
- rawDirectory,
485
- artifacts: [{
486
- role: 'source',
487
- relativePath: rawFile,
488
- originalFileName: path.basename(input.file),
489
- mediaType: 'text/csv',
490
- byteSize: new TextEncoder().encode(text).byteLength,
491
- sha256: createHash('sha256').update(text).digest('hex'),
492
- }],
493
- provenance: {
494
- sourceFileName: path.basename(input.file),
495
- delimiter: inspection.delimiter,
496
- headers: inspection.headers,
497
- rowCount: inspection.rowCount,
498
- estimatedWorkouts: inspection.estimatedWorkouts,
499
- warnings,
500
- },
501
- });
502
- await applyCanonicalWriteBatch({
503
- vaultRoot: input.vault,
504
- operationType: 'workout_import_csv',
505
- summary: `Import workout CSV ${path.basename(input.file)}`,
506
- audit: {
507
- action: 'workout_import_csv',
508
- commandName: 'vaultUsecases.importWorkoutCsv',
509
- summary: `Imported workout CSV ${path.basename(input.file)}.`,
510
- targetIds: [importId],
511
- },
512
- rawContents: [{
513
- targetRelativePath: rawFile,
514
- content: text,
515
- originalFileName: path.basename(input.file),
516
- mediaType: 'text/csv',
517
- allowExistingMatch: true,
518
- }, {
519
- targetRelativePath: manifestFile,
520
- content: `${JSON.stringify(manifest, null, 2)}\n`,
521
- originalFileName: 'manifest.json',
522
- mediaType: 'application/json',
523
- allowExistingMatch: true,
524
- }],
1089
+ if (existingEvidence.records
1090
+ && !existingEvidence.currentUnitsMatch
1091
+ && !existingEvidence.currentCorrectedUnitsMatch
1092
+ && !input.correctUnits
1093
+ && !sourceDialectCorrection) {
1094
+ throw new VaultCliError('conflict', 'This exact workout CSV does not match the selected units. Confirm the prior provider and rerun with --correct-units before any provider correction.');
1095
+ }
1096
+ if (((input.correctUnits
1097
+ && (input.weightUnit === undefined || existingEvidence.currentWeightValuesMatch)
1098
+ && (input.distanceUnit === undefined || existingEvidence.currentDistanceValuesMatch))
1099
+ || ((existingEvidence.currentMappingReplay || existingEvidence.currentCorrectedUnitsMatch)
1100
+ && !input.correctUnits))
1101
+ && !sourceDialectCorrection) {
1102
+ return {
1103
+ vault: input.vault,
1104
+ sourceFile: input.file,
1105
+ rawFile: null,
1106
+ manifestFile: null,
1107
+ rawStored: false,
1108
+ source: plan.source,
1109
+ timeZone: plan.timeZone,
1110
+ weightUnit: plan.weightUnit,
1111
+ distanceUnit: plan.distanceUnit,
1112
+ parsedWorkoutCount: plan.sessions.length,
1113
+ receivedCount: plan.sessions.length,
1114
+ importedCount: 0,
1115
+ createdCount: 0,
1116
+ skippedExistingCount: plan.sessions.length,
1117
+ supersededCount: 0,
1118
+ repairedRowCount: plan.repairedRowCount,
1119
+ ignoredRowCount: plan.ignoredRowCount,
1120
+ skippedRowCount: plan.skippedRowCount,
1121
+ rawOnly: false,
1122
+ lookupIds: [],
1123
+ lookupIdsTruncated: false,
1124
+ ledgerFiles: [],
1125
+ ledgerFilesTruncated: false,
1126
+ warnings: plan.warnings,
1127
+ };
1128
+ }
1129
+ const requiresEvidenceCorrection = input.correctUnits || sourceDialectCorrection;
1130
+ if (requiresEvidenceCorrection && !existingEvidence.rawFile) {
1131
+ throw new VaultCliError('invalid_option', 'Workout correction requires an exact previously imported workout CSV; nothing was imported.');
1132
+ }
1133
+ let existingExternalRefs = existingEvidence.externalRefs;
1134
+ let originalCorrectionPlan;
1135
+ let correctedRecords;
1136
+ let unitOwnershipPlans = [];
1137
+ if (requiresEvidenceCorrection) {
1138
+ if (!existingEvidence.originalTimeZone || !existingEvidence.records || !existingEvidence.matches) {
1139
+ throw new VaultCliError('conflict', 'Exact prior workout evidence does not prove its original timezone; nothing was imported.');
1140
+ }
1141
+ if (input.correctUnits && sourceDialectCorrection) {
1142
+ throw new VaultCliError('invalid_option', 'Correct the workout provider first by rerunning this exact CSV with the confirmed --source and without --correct-units; prior manifest units will be reused. Then run a separate --correct-units command. Nothing was imported.');
1143
+ }
1144
+ const originalSource = existingEvidence.originalSource
1145
+ ?? (sourceDialectCorrection ? undefined : plan.source);
1146
+ if (!originalSource) {
1147
+ throw new VaultCliError('conflict', 'Exact prior workout evidence does not prove its original provider; nothing was imported.');
1148
+ }
1149
+ originalCorrectionPlan = importers.planWorkoutCsvImport({
1150
+ text,
1151
+ timeZone: existingEvidence.originalTimeZone,
1152
+ source: originalSource,
1153
+ delimiter: existingEvidence.originalDelimiter ?? input.delimiter,
1154
+ weightUnit: existingEvidence.originalWeightUnit ?? undefined,
1155
+ distanceUnit: existingEvidence.originalDistanceUnit ?? undefined,
1156
+ });
1157
+ if (input.correctUnits) {
1158
+ unitOwnershipPlans = buildUnitOwnershipPlans({
1159
+ importers,
1160
+ text,
1161
+ timeZone: existingEvidence.originalTimeZone,
1162
+ source: originalSource,
1163
+ delimiter: existingEvidence.originalDelimiter ?? input.delimiter,
1164
+ });
1165
+ }
1166
+ const correctionPlan = importers.planWorkoutCsvImport({
1167
+ text,
1168
+ timeZone: existingEvidence.originalTimeZone,
1169
+ source: plan.source,
1170
+ delimiter: existingEvidence.originalDelimiter ?? input.delimiter,
1171
+ weightUnit: sourceDialectCorrection
1172
+ ? existingEvidence.originalWeightUnit ?? undefined
1173
+ : input.weightUnit,
1174
+ distanceUnit: sourceDialectCorrection
1175
+ ? existingEvidence.originalDistanceUnit ?? undefined
1176
+ : input.distanceUnit,
1177
+ });
1178
+ assertStructuredPlanImportable(correctionPlan);
1179
+ const correctedMapping = mappingFromAttachedEvents(correctionPlan, existingEvidence.matches);
1180
+ if (!correctedMapping) {
1181
+ throw new VaultCliError('conflict', 'Exact prior workout evidence has an ambiguous correction mapping; nothing was imported.');
1182
+ }
1183
+ plan = correctionPlan;
1184
+ existingExternalRefs = correctedMapping.externalRefs;
1185
+ correctedRecords = correctedMapping.records;
1186
+ }
1187
+ const priorRevisionTimestamp = existingEvidence.latestSourceRevision
1188
+ ? Date.parse(existingEvidence.latestSourceRevision)
1189
+ : Number.NaN;
1190
+ const mappingRevision = requiresEvidenceCorrection
1191
+ ? new Date(Math.max(Date.now(), Date.parse(WORKOUT_CSV_MAPPING_REVISION) + 1, Number.isFinite(priorRevisionTimestamp) ? priorRevisionTimestamp + 1 : 0)).toISOString()
1192
+ : WORKOUT_CSV_MAPPING_REVISION;
1193
+ const { generateUlid } = await loadWorkoutImportStateRuntime();
1194
+ const batch = prepareRawWorkoutBatch({
1195
+ core,
1196
+ file: input.file,
1197
+ text,
1198
+ plan,
1199
+ importId: `${ID_PREFIXES.transform}_${generateUlid()}`,
1200
+ importedAt: new Date().toISOString(),
525
1201
  });
526
- const lookupIds = [];
527
- const ledgerFiles = new Set();
528
- if (!input.storeRawOnly) {
529
- const core = await loadWorkoutCoreRuntime();
530
- for (const session of sessions) {
531
- if (session.exercises.length === 0) {
532
- continue;
1202
+ const rawFile = existingEvidence.rawFile ?? batch.rawFile;
1203
+ let existingPayloads;
1204
+ let expectedLatest;
1205
+ if (requiresEvidenceCorrection) {
1206
+ const records = correctedRecords;
1207
+ const originalPlan = originalCorrectionPlan;
1208
+ const originalMapping = mappingFromAttachedEvents(originalPlan, existingEvidence.matches);
1209
+ if (!originalMapping) {
1210
+ throw new VaultCliError('conflict', 'Exact prior workout evidence cannot prove its original session mapping; nothing was imported.');
1211
+ }
1212
+ existingPayloads = records.map((record, index) => {
1213
+ if (record.lifecycle?.state === 'deleted')
1214
+ return null;
1215
+ if (originalMapping.records[index]?.id !== record.id) {
1216
+ throw new VaultCliError('conflict', 'Exact prior workout evidence changes session ordering across correction dialects; nothing was imported.');
533
1217
  }
534
- const workout = {
535
- sourceApp: inspection.source,
536
- sourceWorkoutId: session.key.slice(0, 200),
537
- startedAt: session.startedAt,
538
- endedAt: session.endedAt,
539
- routineName: session.title,
540
- sessionNote: session.note,
541
- exercises: session.exercises.map((exercise) => ({
542
- name: exercise.name,
543
- order: exercise.order,
544
- groupId: exercise.groupId,
545
- mode: exercise.mode,
546
- unitOverride: exercise.unitOverride,
547
- note: exercise.note,
548
- sets: exercise.sets,
549
- })),
550
- };
551
- const draft = buildStructuredWorkoutActivitySessionDraft({
552
- payload: compactObject({
553
- title: session.title,
554
- occurredAt: session.occurredAt,
555
- source: 'import',
556
- activityType: 'strength-training',
557
- durationMinutes: session.durationMinutes,
558
- distanceKm: session.distanceKm,
559
- note: session.note,
560
- rawRefs: [rawFile],
561
- externalRef: {
562
- system: safeSource,
563
- resourceType: 'workout-session',
564
- resourceId: session.key.slice(0, 200),
565
- },
566
- workout,
567
- }),
568
- source: 'import',
569
- });
570
- try {
571
- const result = await core.addActivitySession({
572
- vaultRoot: input.vault,
573
- draft,
1218
+ if (sourceDialectCorrection) {
1219
+ return buildDialectCorrectionPayload({
1220
+ record,
1221
+ originalSession: originalPlan.sessions[index],
1222
+ correctedSession: plan.sessions[index],
1223
+ mappingRevision,
574
1224
  });
575
- lookupIds.push(result.eventId);
576
- ledgerFiles.add(result.ledgerFile);
577
- }
578
- catch (error) {
579
- throw toEventUpsertVaultCliError(error);
580
1225
  }
1226
+ return buildUnitCorrectionPayload({
1227
+ record,
1228
+ session: plan.sessions[index],
1229
+ ownershipSessions: [
1230
+ originalPlan.sessions[index],
1231
+ ...unitOwnershipPlans.map((ownershipPlan) => ownershipPlan.sessions[index]),
1232
+ ],
1233
+ mappingRevision,
1234
+ correctWeight: input.weightUnit !== undefined,
1235
+ correctDistance: input.distanceUnit !== undefined,
1236
+ });
1237
+ });
1238
+ expectedLatest = records.map(expectedLatestForRecord);
1239
+ }
1240
+ else if (existingEvidence.records) {
1241
+ existingPayloads = existingEvidence.records.map((record) => record.lifecycle?.state === 'deleted'
1242
+ ? null
1243
+ : eventRecordPayloadWithRevision(record, mappingRevision));
1244
+ expectedLatest = existingEvidence.records.map(expectedLatestForRecord);
1245
+ }
1246
+ else {
1247
+ const priorEvidence = await loadPriorWorkoutSnapshotEvidence({
1248
+ core,
1249
+ vault: input.vault,
1250
+ });
1251
+ const priorMatches = resolvePriorSnapshotMatches({
1252
+ importers,
1253
+ plan,
1254
+ text,
1255
+ evidence: priorEvidence,
1256
+ });
1257
+ const priorRecords = priorMatches.map((match) => match?.latest.lifecycle?.state === 'deleted' ? null : match?.latest);
1258
+ if (priorRecords.some((record) => record !== undefined)) {
1259
+ existingPayloads = priorRecords.map((record) => record === null ? null : record ? eventRecordToImportPayload(record) : undefined);
1260
+ expectedLatest = priorRecords.map((record) => record ? expectedLatestForRecord(record) : undefined);
581
1261
  }
582
1262
  }
1263
+ const { decisions, suppressedDeletedCount } = buildWorkoutEventDecisions(plan, rawFile, existingExternalRefs, mappingRevision, existingPayloads, expectedLatest);
1264
+ if (decisions.length === 0) {
1265
+ return {
1266
+ vault: input.vault,
1267
+ sourceFile: input.file,
1268
+ rawFile: null,
1269
+ manifestFile: null,
1270
+ rawStored: false,
1271
+ source: plan.source,
1272
+ timeZone: plan.timeZone,
1273
+ weightUnit: plan.weightUnit,
1274
+ distanceUnit: plan.distanceUnit,
1275
+ parsedWorkoutCount: plan.sessions.length,
1276
+ receivedCount: suppressedDeletedCount,
1277
+ importedCount: 0,
1278
+ createdCount: 0,
1279
+ skippedExistingCount: suppressedDeletedCount,
1280
+ supersededCount: 0,
1281
+ repairedRowCount: plan.repairedRowCount,
1282
+ ignoredRowCount: plan.ignoredRowCount,
1283
+ skippedRowCount: plan.skippedRowCount,
1284
+ rawOnly: false,
1285
+ lookupIds: [],
1286
+ lookupIdsTruncated: false,
1287
+ ledgerFiles: [],
1288
+ ledgerFilesTruncated: false,
1289
+ warnings: plan.warnings,
1290
+ };
1291
+ }
1292
+ let preview;
1293
+ try {
1294
+ preview = await core.importEventBatch({
1295
+ vaultRoot: input.vault,
1296
+ decisions,
1297
+ apply: false,
1298
+ });
1299
+ }
1300
+ catch (error) {
1301
+ throw mapBatchError(error);
1302
+ }
1303
+ const previewChangedCount = preview.createdCount + preview.supersededCount;
1304
+ if (previewChangedCount === 0) {
1305
+ const ledgers = capList(preview.eventShardPaths);
1306
+ return {
1307
+ vault: input.vault,
1308
+ sourceFile: input.file,
1309
+ rawFile: null,
1310
+ manifestFile: null,
1311
+ rawStored: false,
1312
+ source: plan.source,
1313
+ timeZone: plan.timeZone,
1314
+ weightUnit: plan.weightUnit,
1315
+ distanceUnit: plan.distanceUnit,
1316
+ parsedWorkoutCount: plan.sessions.length,
1317
+ receivedCount: preview.receivedCount + suppressedDeletedCount,
1318
+ importedCount: 0,
1319
+ createdCount: 0,
1320
+ skippedExistingCount: preview.skippedExistingCount + suppressedDeletedCount,
1321
+ supersededCount: 0,
1322
+ repairedRowCount: plan.repairedRowCount,
1323
+ ignoredRowCount: plan.ignoredRowCount,
1324
+ skippedRowCount: plan.skippedRowCount,
1325
+ rawOnly: false,
1326
+ lookupIds: [],
1327
+ lookupIdsTruncated: false,
1328
+ ledgerFiles: ledgers.values,
1329
+ ledgerFilesTruncated: ledgers.truncated,
1330
+ warnings: plan.warnings,
1331
+ };
1332
+ }
1333
+ const rawStored = existingEvidence.rawFile === undefined;
1334
+ const manifestFile = rawStored ? batch.manifestFile : null;
1335
+ if (rawStored) {
1336
+ await storeRawWorkoutBatch({
1337
+ core,
1338
+ vault: input.vault,
1339
+ sourceFile: input.file,
1340
+ text,
1341
+ batch,
1342
+ });
1343
+ }
1344
+ let applied;
1345
+ try {
1346
+ applied = await core.importEventBatch({
1347
+ vaultRoot: input.vault,
1348
+ decisions,
1349
+ apply: true,
1350
+ });
1351
+ }
1352
+ catch (error) {
1353
+ throw mapBatchError(error);
1354
+ }
1355
+ const lookupIds = capList(applied.eventIds);
1356
+ const ledgerFiles = capList(applied.eventShardPaths);
583
1357
  return {
584
1358
  vault: input.vault,
585
1359
  sourceFile: input.file,
586
1360
  rawFile,
587
1361
  manifestFile,
588
- source: inspection.source,
589
- importedCount: lookupIds.length,
590
- rawOnly: input.storeRawOnly === true || lookupIds.length === 0,
591
- lookupIds,
592
- ledgerFiles: [...ledgerFiles],
593
- warnings,
1362
+ rawStored,
1363
+ source: plan.source,
1364
+ timeZone: plan.timeZone,
1365
+ weightUnit: plan.weightUnit,
1366
+ distanceUnit: plan.distanceUnit,
1367
+ parsedWorkoutCount: plan.sessions.length,
1368
+ receivedCount: applied.receivedCount + suppressedDeletedCount,
1369
+ importedCount: applied.createdCount + applied.supersededCount,
1370
+ createdCount: applied.createdCount,
1371
+ skippedExistingCount: applied.skippedExistingCount + suppressedDeletedCount,
1372
+ supersededCount: applied.supersededCount,
1373
+ repairedRowCount: plan.repairedRowCount,
1374
+ ignoredRowCount: plan.ignoredRowCount,
1375
+ skippedRowCount: plan.skippedRowCount,
1376
+ rawOnly: false,
1377
+ lookupIds: lookupIds.values,
1378
+ lookupIdsTruncated: lookupIds.truncated,
1379
+ ledgerFiles: ledgerFiles.values,
1380
+ ledgerFilesTruncated: ledgerFiles.truncated,
1381
+ warnings: plan.warnings,
594
1382
  };
595
1383
  }
596
1384
  //# sourceMappingURL=workout-import.js.map