@murphai/murph 1.3.1 → 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 (779) hide show
  1. package/CHANGELOG.md +808 -0
  2. package/config.schema.json +91 -40
  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 +79 -3
  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/batch.d.ts +5 -5
  13. package/dist/commands/batch.d.ts.map +1 -1
  14. package/dist/commands/batch.js +2 -21
  15. package/dist/commands/batch.js.map +1 -1
  16. package/dist/commands/commons.d.ts.map +1 -1
  17. package/dist/commands/commons.js +2 -4
  18. package/dist/commands/commons.js.map +1 -1
  19. package/dist/commands/exercise.d.ts.map +1 -1
  20. package/dist/commands/exercise.js +16 -3
  21. package/dist/commands/exercise.js.map +1 -1
  22. package/dist/commands/experiment-progress-card-image.d.ts.map +1 -1
  23. package/dist/commands/experiment-progress-card-image.js +63 -12
  24. package/dist/commands/experiment-progress-card-image.js.map +1 -1
  25. package/dist/commands/experiment.d.ts.map +1 -1
  26. package/dist/commands/experiment.js +45 -5
  27. package/dist/commands/experiment.js.map +1 -1
  28. package/dist/commands/export-intake-read-helpers.d.ts.map +1 -1
  29. package/dist/commands/export-intake-read-helpers.js +2 -3
  30. package/dist/commands/export-intake-read-helpers.js.map +1 -1
  31. package/dist/commands/food.d.ts.map +1 -1
  32. package/dist/commands/food.js +1 -7
  33. package/dist/commands/food.js.map +1 -1
  34. package/dist/commands/habitat.d.ts.map +1 -1
  35. package/dist/commands/habitat.js +120 -9
  36. package/dist/commands/habitat.js.map +1 -1
  37. package/dist/commands/health-blood-test-save.d.ts.map +1 -1
  38. package/dist/commands/health-blood-test-save.js +42 -8
  39. package/dist/commands/health-blood-test-save.js.map +1 -1
  40. package/dist/commands/meal.d.ts.map +1 -1
  41. package/dist/commands/meal.js +4 -1
  42. package/dist/commands/meal.js.map +1 -1
  43. package/dist/commands/measurement.d.ts.map +1 -1
  44. package/dist/commands/measurement.js +3 -0
  45. package/dist/commands/measurement.js.map +1 -1
  46. package/dist/commands/murph-age.d.ts +9 -1
  47. package/dist/commands/murph-age.d.ts.map +1 -1
  48. package/dist/commands/murph-age.js +132 -7
  49. package/dist/commands/murph-age.js.map +1 -1
  50. package/dist/commands/public-validation-issue.d.ts +7 -0
  51. package/dist/commands/public-validation-issue.d.ts.map +1 -0
  52. package/dist/commands/public-validation-issue.js +7 -0
  53. package/dist/commands/public-validation-issue.js.map +1 -0
  54. package/dist/commands/scheduled-log.d.ts +12 -0
  55. package/dist/commands/scheduled-log.d.ts.map +1 -1
  56. package/dist/commands/scheduled-log.js +456 -106
  57. package/dist/commands/scheduled-log.js.map +1 -1
  58. package/dist/commands/wearables.d.ts +286 -0
  59. package/dist/commands/wearables.d.ts.map +1 -1
  60. package/dist/commands/wearables.js +33 -1
  61. package/dist/commands/wearables.js.map +1 -1
  62. package/dist/commands/workout-live.d.ts.map +1 -1
  63. package/dist/commands/workout-live.js +123 -42
  64. package/dist/commands/workout-live.js.map +1 -1
  65. package/dist/commands/workout-typed-options.d.ts +38 -0
  66. package/dist/commands/workout-typed-options.d.ts.map +1 -0
  67. package/dist/commands/workout-typed-options.js +90 -0
  68. package/dist/commands/workout-typed-options.js.map +1 -0
  69. package/dist/commands/workout.d.ts.map +1 -1
  70. package/dist/commands/workout.js +80 -73
  71. package/dist/commands/workout.js.map +1 -1
  72. package/dist/hosted-data-api-labels.d.ts.map +1 -1
  73. package/dist/hosted-data-api-labels.js +161 -30
  74. package/dist/hosted-data-api-labels.js.map +1 -1
  75. package/dist/incur-error-bridge.d.ts.map +1 -1
  76. package/dist/incur-error-bridge.js +7 -15
  77. package/dist/incur-error-bridge.js.map +1 -1
  78. package/dist/incur.generated.d.ts +22 -13
  79. package/dist/incur.generated.d.ts.map +1 -1
  80. package/dist/mapbox-address.d.ts.map +1 -1
  81. package/dist/mapbox-address.js +3 -4
  82. package/dist/mapbox-address.js.map +1 -1
  83. package/dist/mapbox-route-client.d.ts +2 -2
  84. package/dist/mapbox-route-client.d.ts.map +1 -1
  85. package/dist/mapbox-route-client.js +49 -12
  86. package/dist/mapbox-route-client.js.map +1 -1
  87. package/dist/mapbox-route-directions.d.ts.map +1 -1
  88. package/dist/mapbox-route-directions.js +0 -1
  89. package/dist/mapbox-route-directions.js.map +1 -1
  90. package/dist/mapbox-route-elevation.js +0 -1
  91. package/dist/mapbox-route-elevation.js.map +1 -1
  92. package/dist/mapbox-route-points.js +0 -2
  93. package/dist/mapbox-route-points.js.map +1 -1
  94. package/dist/mapbox-route.d.ts.map +1 -1
  95. package/dist/mapbox-route.js +1 -1
  96. package/dist/mapbox-route.js.map +1 -1
  97. package/dist/vault-cli-command-manifest.d.ts +304 -6
  98. package/dist/vault-cli-command-manifest.d.ts.map +1 -1
  99. package/dist/vault-cli-skill-hash.generated.d.ts +1 -1
  100. package/dist/vault-cli-skill-hash.generated.js +1 -1
  101. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/ink.d.ts.map +1 -1
  102. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/ink.js +6 -2
  103. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/ink.js.map +1 -1
  104. package/node_modules/@murphai/assistant-engine/README.md +4 -3
  105. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-controller.d.ts +15 -1
  106. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-controller.d.ts.map +1 -1
  107. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-controller.js +121 -24
  108. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-controller.js.map +1 -1
  109. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-journal.js +2 -2
  110. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-journal.js.map +1 -1
  111. package/node_modules/@murphai/assistant-engine/dist/assistant/ask-continuation.d.ts.map +1 -1
  112. package/node_modules/@murphai/assistant-engine/dist/assistant/ask-continuation.js +1 -0
  113. package/node_modules/@murphai/assistant-engine/dist/assistant/ask-continuation.js.map +1 -1
  114. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.d.ts.map +1 -1
  115. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.js +55 -7
  116. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.js.map +1 -1
  117. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.d.ts.map +1 -1
  118. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.js +9 -1
  119. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.js.map +1 -1
  120. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.d.ts +1 -0
  121. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.d.ts.map +1 -1
  122. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.js.map +1 -1
  123. package/node_modules/@murphai/assistant-engine/dist/assistant/cli-surface-contract.generated.json +1 -1
  124. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-base-instructions.d.ts +1 -1
  125. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-base-instructions.d.ts.map +1 -1
  126. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-base-instructions.js +7 -7
  127. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-base-instructions.js.map +1 -1
  128. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn/planning.d.ts +1 -1
  129. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn/planning.d.ts.map +1 -1
  130. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn/planning.js +123 -22
  131. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn/planning.js.map +1 -1
  132. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn-runner.d.ts.map +1 -1
  133. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn-runner.js +48 -19
  134. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn-runner.js.map +1 -1
  135. package/node_modules/@murphai/assistant-engine/dist/assistant/context-snapshot.js +3 -7
  136. package/node_modules/@murphai/assistant-engine/dist/assistant/context-snapshot.js.map +1 -1
  137. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/execution.d.ts +5 -0
  138. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/execution.d.ts.map +1 -1
  139. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/execution.js +24 -10
  140. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/execution.js.map +1 -1
  141. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.d.ts +2 -0
  142. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.d.ts.map +1 -1
  143. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.js +12 -0
  144. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.js.map +1 -1
  145. package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.d.ts +5 -0
  146. package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.d.ts.map +1 -1
  147. package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.js +9 -10
  148. package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.js.map +1 -1
  149. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.d.ts +41 -9
  150. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.d.ts.map +1 -1
  151. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.js +9 -0
  152. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.js.map +1 -1
  153. package/node_modules/@murphai/assistant-engine/dist/assistant/experiment-support-automations.d.ts.map +1 -1
  154. package/node_modules/@murphai/assistant-engine/dist/assistant/experiment-support-automations.js +2 -0
  155. package/node_modules/@murphai/assistant-engine/dist/assistant/experiment-support-automations.js.map +1 -1
  156. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-tool-context.d.ts +3 -0
  157. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-tool-context.d.ts.map +1 -1
  158. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-tool-context.js +8 -0
  159. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-tool-context.js.map +1 -1
  160. package/node_modules/@murphai/assistant-engine/dist/assistant/issue-reporting.d.ts +3 -0
  161. package/node_modules/@murphai/assistant-engine/dist/assistant/issue-reporting.d.ts.map +1 -1
  162. package/node_modules/@murphai/assistant-engine/dist/assistant/issue-reporting.js +26 -1
  163. package/node_modules/@murphai/assistant-engine/dist/assistant/issue-reporting.js.map +1 -1
  164. package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.d.ts.map +1 -1
  165. package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.js +687 -370
  166. package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.js.map +1 -1
  167. package/node_modules/@murphai/assistant-engine/dist/assistant/managed-automations.d.ts.map +1 -1
  168. package/node_modules/@murphai/assistant-engine/dist/assistant/managed-automations.js +54 -18
  169. package/node_modules/@murphai/assistant-engine/dist/assistant/managed-automations.js.map +1 -1
  170. package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.d.ts +2 -3
  171. package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.d.ts.map +1 -1
  172. package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.js +10 -9
  173. package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.js.map +1 -1
  174. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.d.ts +1 -1
  175. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.d.ts.map +1 -1
  176. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.js +146 -18
  177. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.js.map +1 -1
  178. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-seed.d.ts +25 -0
  179. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-seed.d.ts.map +1 -0
  180. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-seed.js +72 -0
  181. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-seed.js.map +1 -0
  182. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-state.d.ts +4 -0
  183. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-state.d.ts.map +1 -1
  184. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-state.js +14 -0
  185. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-state.js.map +1 -1
  186. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.d.ts +1 -1
  187. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.d.ts.map +1 -1
  188. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.js +8 -5
  189. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.js.map +1 -1
  190. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.d.ts +4 -0
  191. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.d.ts.map +1 -1
  192. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.js +8 -0
  193. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.js.map +1 -1
  194. package/node_modules/@murphai/assistant-engine/dist/assistant/private-completion-continuity.js +1 -0
  195. package/node_modules/@murphai/assistant-engine/dist/assistant/private-completion-continuity.js.map +1 -1
  196. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.d.ts.map +1 -1
  197. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.js +25 -2
  198. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.js.map +1 -1
  199. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.d.ts +11 -3
  200. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.d.ts.map +1 -1
  201. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.js +67 -176
  202. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.js.map +1 -1
  203. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/types.d.ts +17 -0
  204. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/types.d.ts.map +1 -1
  205. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/types.js.map +1 -1
  206. package/node_modules/@murphai/assistant-engine/dist/assistant/reply-delivery-context.d.ts +1 -1
  207. package/node_modules/@murphai/assistant-engine/dist/assistant/reply-delivery-context.d.ts.map +1 -1
  208. package/node_modules/@murphai/assistant-engine/dist/assistant/reply-delivery-context.js +10 -0
  209. package/node_modules/@murphai/assistant-engine/dist/assistant/reply-delivery-context.js.map +1 -1
  210. package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-residue.d.ts +19 -4
  211. package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-residue.d.ts.map +1 -1
  212. package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-residue.js +76 -40
  213. package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-residue.js.map +1 -1
  214. package/node_modules/@murphai/assistant-engine/dist/assistant/service-contracts.d.ts +3 -1
  215. package/node_modules/@murphai/assistant-engine/dist/assistant/service-contracts.d.ts.map +1 -1
  216. package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.d.ts +4 -2
  217. package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.d.ts.map +1 -1
  218. package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.js +8 -7
  219. package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.js.map +1 -1
  220. package/node_modules/@murphai/assistant-engine/dist/assistant/shared.d.ts +1 -1
  221. package/node_modules/@murphai/assistant-engine/dist/assistant/shared.d.ts.map +1 -1
  222. package/node_modules/@murphai/assistant-engine/dist/assistant/shared.js +1 -1
  223. package/node_modules/@murphai/assistant-engine/dist/assistant/shared.js.map +1 -1
  224. package/node_modules/@murphai/assistant-engine/dist/assistant/store/types.d.ts +1 -0
  225. package/node_modules/@murphai/assistant-engine/dist/assistant/store/types.d.ts.map +1 -1
  226. package/node_modules/@murphai/assistant-engine/dist/assistant/store.d.ts.map +1 -1
  227. package/node_modules/@murphai/assistant-engine/dist/assistant/store.js +6 -0
  228. package/node_modules/@murphai/assistant-engine/dist/assistant/store.js.map +1 -1
  229. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.d.ts +3 -0
  230. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.d.ts.map +1 -1
  231. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.js +57 -29
  232. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.js.map +1 -1
  233. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-digest.d.ts +1 -0
  234. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-digest.d.ts.map +1 -1
  235. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-digest.js +17 -3
  236. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-digest.js.map +1 -1
  237. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.d.ts +4 -7
  238. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.d.ts.map +1 -1
  239. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.js +21 -6
  240. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.js.map +1 -1
  241. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.d.ts +1 -0
  242. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.d.ts.map +1 -1
  243. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.js +6 -0
  244. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.js.map +1 -1
  245. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-input.d.ts +1 -1
  246. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-input.d.ts.map +1 -1
  247. package/node_modules/@murphai/assistant-engine/dist/assistant/usage-attribution.d.ts +1 -1
  248. package/node_modules/@murphai/assistant-engine/dist/assistant/usage-attribution.d.ts.map +1 -1
  249. package/node_modules/@murphai/assistant-engine/dist/assistant/usage-attribution.js.map +1 -1
  250. package/node_modules/@murphai/assistant-engine/dist/assistant-ask.js +8 -0
  251. package/node_modules/@murphai/assistant-engine/dist/assistant-ask.js.map +1 -1
  252. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-access.d.ts.map +1 -1
  253. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-access.js +1 -0
  254. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-access.js.map +1 -1
  255. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/analyze-video-tool.d.ts +49 -0
  256. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/analyze-video-tool.d.ts.map +1 -0
  257. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/analyze-video-tool.js +387 -0
  258. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/analyze-video-tool.js.map +1 -0
  259. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.d.ts +1 -1
  260. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.d.ts.map +1 -1
  261. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.js +12 -13
  262. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.js.map +1 -1
  263. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-requests.d.ts +1 -0
  264. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-requests.d.ts.map +1 -1
  265. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-requests.js +16 -5
  266. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-requests.js.map +1 -1
  267. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-rpc.d.ts +1 -1
  268. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-rpc.d.ts.map +1 -1
  269. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-rpc.js +2 -1
  270. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-rpc.js.map +1 -1
  271. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.d.ts +4 -0
  272. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.d.ts.map +1 -1
  273. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.js +26 -13
  274. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.js.map +1 -1
  275. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.d.ts +1024 -1091
  276. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.d.ts.map +1 -1
  277. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.js +354 -330
  278. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.js.map +1 -1
  279. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/analyze-video.d.ts +50 -0
  280. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/analyze-video.d.ts.map +1 -0
  281. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/analyze-video.js +79 -0
  282. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/analyze-video.js.map +1 -0
  283. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation-model-input-schema.d.ts +4 -0
  284. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation-model-input-schema.d.ts.map +1 -0
  285. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation-model-input-schema.js +153 -0
  286. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation-model-input-schema.js.map +1 -0
  287. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation.d.ts +4 -1
  288. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation.d.ts.map +1 -1
  289. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation.js +29 -35
  290. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation.js.map +1 -1
  291. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/device.d.ts +4 -1
  292. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/device.d.ts.map +1 -1
  293. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/device.js +43 -9
  294. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/device.js.map +1 -1
  295. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/dynamic-tool-wrapper.d.ts +6 -0
  296. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/dynamic-tool-wrapper.d.ts.map +1 -1
  297. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/dynamic-tool-wrapper.js.map +1 -1
  298. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/member-memory.d.ts +60 -0
  299. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/member-memory.d.ts.map +1 -0
  300. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/member-memory.js +91 -0
  301. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/member-memory.js.map +1 -0
  302. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.d.ts +41 -1
  303. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.d.ts.map +1 -1
  304. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.js +85 -9
  305. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.js.map +1 -1
  306. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools.d.ts +25 -2
  307. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools.d.ts.map +1 -1
  308. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools.js +280 -89
  309. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools.js.map +1 -1
  310. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/failures.js +1 -1
  311. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/response-card-validation-feedback.d.ts.map +1 -1
  312. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/response-card-validation-feedback.js +1 -3
  313. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/response-card-validation-feedback.js.map +1 -1
  314. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/workout-delivery-context.d.ts +19 -0
  315. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/workout-delivery-context.d.ts.map +1 -0
  316. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/workout-delivery-context.js +203 -0
  317. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/workout-delivery-context.js.map +1 -0
  318. package/node_modules/@murphai/assistant-engine/dist/assistant-codex.d.ts +9 -1
  319. package/node_modules/@murphai/assistant-engine/dist/assistant-codex.d.ts.map +1 -1
  320. package/node_modules/@murphai/assistant-engine/dist/assistant-codex.js +220 -130
  321. package/node_modules/@murphai/assistant-engine/dist/assistant-codex.js.map +1 -1
  322. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime-residue.d.ts +1 -1
  323. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime-residue.d.ts.map +1 -1
  324. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime-residue.js +1 -1
  325. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime-residue.js.map +1 -1
  326. package/node_modules/@murphai/assistant-engine/dist/assistant-skill-assets.d.ts +1 -1
  327. package/node_modules/@murphai/assistant-engine/dist/assistant-skill-assets.d.ts.map +1 -1
  328. package/node_modules/@murphai/assistant-engine/dist/assistant-skill-assets.js +1 -1
  329. package/node_modules/@murphai/assistant-engine/dist/assistant-skill-assets.js.map +1 -1
  330. package/node_modules/@murphai/assistant-engine/dist/index.d.ts +2 -1
  331. package/node_modules/@murphai/assistant-engine/dist/index.d.ts.map +1 -1
  332. package/node_modules/@murphai/assistant-engine/dist/index.js +1 -0
  333. package/node_modules/@murphai/assistant-engine/dist/index.js.map +1 -1
  334. package/node_modules/@murphai/assistant-engine/skills/automatic-meal-capture/SKILL.md +111 -68
  335. package/node_modules/@murphai/assistant-engine/skills/behavior-followthrough/SKILL.md +0 -2
  336. package/node_modules/@murphai/assistant-engine/skills/daily-activity/SKILL.md +11 -4
  337. package/node_modules/@murphai/assistant-engine/skills/food-journal/SKILL.md +83 -22
  338. package/node_modules/@murphai/assistant-engine/skills/hosted-low-usage/SKILL.md +3 -3
  339. package/node_modules/@murphai/assistant-engine/skills/murph-family/SKILL.md +1 -1
  340. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/SKILL.md +17 -11
  341. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/daily-nutrition-card-goals.md +62 -34
  342. package/node_modules/@murphai/assistant-engine/skills/physical-notes/SKILL.md +47 -0
  343. package/node_modules/@murphai/assistant-engine/skills/shared/exercise-catalog-runtime.md +6 -0
  344. package/node_modules/@murphai/assistant-engine/skills/signup-link/SKILL.md +1 -1
  345. package/node_modules/@murphai/assistant-engine/skills/strength-training/SKILL.md +12 -5
  346. package/node_modules/@murphai/assistant-engine/skills/tracked-table/SKILL.md +156 -66
  347. package/node_modules/@murphai/core/dist/automation.d.ts.map +1 -1
  348. package/node_modules/@murphai/core/dist/automation.js +17 -9
  349. package/node_modules/@murphai/core/dist/automation.js.map +1 -1
  350. package/node_modules/@murphai/core/dist/bank/habitat.d.ts +2 -0
  351. package/node_modules/@murphai/core/dist/bank/habitat.d.ts.map +1 -1
  352. package/node_modules/@murphai/core/dist/bank/habitat.js +27 -0
  353. package/node_modules/@murphai/core/dist/bank/habitat.js.map +1 -1
  354. package/node_modules/@murphai/core/dist/bank/regimens.js +1 -1
  355. package/node_modules/@murphai/core/dist/bank/regimens.js.map +1 -1
  356. package/node_modules/@murphai/core/dist/domains/events/ledger.d.ts +21 -0
  357. package/node_modules/@murphai/core/dist/domains/events/ledger.d.ts.map +1 -1
  358. package/node_modules/@murphai/core/dist/domains/events/ledger.js +102 -8
  359. package/node_modules/@murphai/core/dist/domains/events/ledger.js.map +1 -1
  360. package/node_modules/@murphai/core/dist/domains/events.d.ts +2 -2
  361. package/node_modules/@murphai/core/dist/domains/events.d.ts.map +1 -1
  362. package/node_modules/@murphai/core/dist/domains/events.js +1 -1
  363. package/node_modules/@murphai/core/dist/domains/events.js.map +1 -1
  364. package/node_modules/@murphai/core/dist/history/api.d.ts.map +1 -1
  365. package/node_modules/@murphai/core/dist/history/api.js +18 -3
  366. package/node_modules/@murphai/core/dist/history/api.js.map +1 -1
  367. package/node_modules/@murphai/core/dist/index.d.ts +4 -2
  368. package/node_modules/@murphai/core/dist/index.d.ts.map +1 -1
  369. package/node_modules/@murphai/core/dist/index.js +3 -1
  370. package/node_modules/@murphai/core/dist/index.js.map +1 -1
  371. package/node_modules/@murphai/core/dist/mutations.d.ts +25 -2
  372. package/node_modules/@murphai/core/dist/mutations.d.ts.map +1 -1
  373. package/node_modules/@murphai/core/dist/mutations.js +1588 -78
  374. package/node_modules/@murphai/core/dist/mutations.js.map +1 -1
  375. package/node_modules/@murphai/core/dist/operations/index.d.ts +1 -1
  376. package/node_modules/@murphai/core/dist/operations/index.d.ts.map +1 -1
  377. package/node_modules/@murphai/core/dist/operations/index.js +1 -1
  378. package/node_modules/@murphai/core/dist/operations/index.js.map +1 -1
  379. package/node_modules/@murphai/core/dist/operations/write-batch.d.ts +2 -0
  380. package/node_modules/@murphai/core/dist/operations/write-batch.d.ts.map +1 -1
  381. package/node_modules/@murphai/core/dist/operations/write-batch.js +7 -0
  382. package/node_modules/@murphai/core/dist/operations/write-batch.js.map +1 -1
  383. package/node_modules/@murphai/core/dist/protocols.d.ts.map +1 -1
  384. package/node_modules/@murphai/core/dist/protocols.js +52 -9
  385. package/node_modules/@murphai/core/dist/protocols.js.map +1 -1
  386. package/node_modules/@murphai/core/dist/public-mutations.d.ts +1 -1
  387. package/node_modules/@murphai/core/dist/public-mutations.d.ts.map +1 -1
  388. package/node_modules/@murphai/core/dist/public-mutations.js +2 -2
  389. package/node_modules/@murphai/core/dist/public-mutations.js.map +1 -1
  390. package/node_modules/@murphai/core/dist/scheduled-logs.d.ts +3 -0
  391. package/node_modules/@murphai/core/dist/scheduled-logs.d.ts.map +1 -1
  392. package/node_modules/@murphai/core/dist/scheduled-logs.js +65 -29
  393. package/node_modules/@murphai/core/dist/scheduled-logs.js.map +1 -1
  394. package/node_modules/@murphai/device-syncd/README.md +140 -46
  395. package/node_modules/@murphai/device-syncd/dist/client.d.ts +14 -0
  396. package/node_modules/@murphai/device-syncd/dist/client.d.ts.map +1 -1
  397. package/node_modules/@murphai/device-syncd/dist/client.js.map +1 -1
  398. package/node_modules/@murphai/device-syncd/dist/config/connect-routes.d.ts +4 -1
  399. package/node_modules/@murphai/device-syncd/dist/config/connect-routes.d.ts.map +1 -1
  400. package/node_modules/@murphai/device-syncd/dist/config/connect-routes.js +24 -2
  401. package/node_modules/@murphai/device-syncd/dist/config/connect-routes.js.map +1 -1
  402. package/node_modules/@murphai/device-syncd/dist/config/junction-connect-sources.js +2 -2
  403. package/node_modules/@murphai/device-syncd/dist/config/junction-connect-sources.js.map +1 -1
  404. package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.d.ts +53 -0
  405. package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.d.ts.map +1 -1
  406. package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.js +13 -0
  407. package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.js.map +1 -1
  408. package/node_modules/@murphai/device-syncd/dist/connect-config.d.ts +1 -1
  409. package/node_modules/@murphai/device-syncd/dist/connect-config.d.ts.map +1 -1
  410. package/node_modules/@murphai/device-syncd/dist/connect-config.js +1 -1
  411. package/node_modules/@murphai/device-syncd/dist/connect-config.js.map +1 -1
  412. package/node_modules/@murphai/device-syncd/dist/fitbit-migration.d.ts +57 -0
  413. package/node_modules/@murphai/device-syncd/dist/fitbit-migration.d.ts.map +1 -0
  414. package/node_modules/@murphai/device-syncd/dist/fitbit-migration.js +166 -0
  415. package/node_modules/@murphai/device-syncd/dist/fitbit-migration.js.map +1 -0
  416. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.d.ts +43 -0
  417. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.d.ts.map +1 -1
  418. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.js +129 -5
  419. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.js.map +1 -1
  420. package/node_modules/@murphai/device-syncd/dist/junction-historical-backfill-progress.d.ts +3 -0
  421. package/node_modules/@murphai/device-syncd/dist/junction-historical-backfill-progress.d.ts.map +1 -1
  422. package/node_modules/@murphai/device-syncd/dist/junction-historical-backfill-progress.js +36 -16
  423. package/node_modules/@murphai/device-syncd/dist/junction-historical-backfill-progress.js.map +1 -1
  424. package/node_modules/@murphai/device-syncd/dist/junction-inline-authority.d.ts +17 -2
  425. package/node_modules/@murphai/device-syncd/dist/junction-inline-authority.d.ts.map +1 -1
  426. package/node_modules/@murphai/device-syncd/dist/junction-inline-authority.js +99 -40
  427. package/node_modules/@murphai/device-syncd/dist/junction-inline-authority.js.map +1 -1
  428. package/node_modules/@murphai/device-syncd/dist/junction-source-reconnect.d.ts +17 -0
  429. package/node_modules/@murphai/device-syncd/dist/junction-source-reconnect.d.ts.map +1 -0
  430. package/node_modules/@murphai/device-syncd/dist/junction-source-reconnect.js +45 -0
  431. package/node_modules/@murphai/device-syncd/dist/junction-source-reconnect.js.map +1 -0
  432. package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.d.ts +8 -1
  433. package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.d.ts.map +1 -1
  434. package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.js +12 -1
  435. package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.js.map +1 -1
  436. package/node_modules/@murphai/device-syncd/dist/providers/junction-client.d.ts +7 -0
  437. package/node_modules/@murphai/device-syncd/dist/providers/junction-client.d.ts.map +1 -1
  438. package/node_modules/@murphai/device-syncd/dist/providers/junction-client.js +285 -46
  439. package/node_modules/@murphai/device-syncd/dist/providers/junction-client.js.map +1 -1
  440. package/node_modules/@murphai/device-syncd/dist/providers/junction.d.ts +9 -0
  441. package/node_modules/@murphai/device-syncd/dist/providers/junction.d.ts.map +1 -1
  442. package/node_modules/@murphai/device-syncd/dist/providers/junction.js +2045 -367
  443. package/node_modules/@murphai/device-syncd/dist/providers/junction.js.map +1 -1
  444. package/node_modules/@murphai/device-syncd/dist/public-account.d.ts +2 -0
  445. package/node_modules/@murphai/device-syncd/dist/public-account.d.ts.map +1 -1
  446. package/node_modules/@murphai/device-syncd/dist/public-account.js +96 -0
  447. package/node_modules/@murphai/device-syncd/dist/public-account.js.map +1 -1
  448. package/node_modules/@murphai/device-syncd/dist/public-ingress.d.ts.map +1 -1
  449. package/node_modules/@murphai/device-syncd/dist/public-ingress.js +6 -4
  450. package/node_modules/@murphai/device-syncd/dist/public-ingress.js.map +1 -1
  451. package/node_modules/@murphai/device-syncd/dist/service.d.ts +6 -2
  452. package/node_modules/@murphai/device-syncd/dist/service.d.ts.map +1 -1
  453. package/node_modules/@murphai/device-syncd/dist/service.js +385 -44
  454. package/node_modules/@murphai/device-syncd/dist/service.js.map +1 -1
  455. package/node_modules/@murphai/device-syncd/dist/source-staleness.d.ts +15 -0
  456. package/node_modules/@murphai/device-syncd/dist/source-staleness.d.ts.map +1 -1
  457. package/node_modules/@murphai/device-syncd/dist/source-staleness.js +25 -1
  458. package/node_modules/@murphai/device-syncd/dist/source-staleness.js.map +1 -1
  459. package/node_modules/@murphai/device-syncd/dist/store/jobs.d.ts +10 -1
  460. package/node_modules/@murphai/device-syncd/dist/store/jobs.d.ts.map +1 -1
  461. package/node_modules/@murphai/device-syncd/dist/store/jobs.js +95 -1
  462. package/node_modules/@murphai/device-syncd/dist/store/jobs.js.map +1 -1
  463. package/node_modules/@murphai/device-syncd/dist/store/schema.d.ts +1 -1
  464. package/node_modules/@murphai/device-syncd/dist/store/schema.d.ts.map +1 -1
  465. package/node_modules/@murphai/device-syncd/dist/store/schema.js +25 -3
  466. package/node_modules/@murphai/device-syncd/dist/store/schema.js.map +1 -1
  467. package/node_modules/@murphai/device-syncd/dist/store/sources.d.ts +24 -2
  468. package/node_modules/@murphai/device-syncd/dist/store/sources.d.ts.map +1 -1
  469. package/node_modules/@murphai/device-syncd/dist/store/sources.js +223 -14
  470. package/node_modules/@murphai/device-syncd/dist/store/sources.js.map +1 -1
  471. package/node_modules/@murphai/device-syncd/dist/store.d.ts +13 -3
  472. package/node_modules/@murphai/device-syncd/dist/store.d.ts.map +1 -1
  473. package/node_modules/@murphai/device-syncd/dist/store.js +104 -22
  474. package/node_modules/@murphai/device-syncd/dist/store.js.map +1 -1
  475. package/node_modules/@murphai/device-syncd/dist/types.d.ts +96 -9
  476. package/node_modules/@murphai/device-syncd/dist/types.d.ts.map +1 -1
  477. package/node_modules/@murphai/device-syncd/dist/types.js +4 -0
  478. package/node_modules/@murphai/device-syncd/dist/types.js.map +1 -1
  479. package/node_modules/@murphai/device-syncd/package.json +8 -0
  480. package/node_modules/@murphai/health-metrics/dist/definitions/activity.d.ts.map +1 -1
  481. package/node_modules/@murphai/health-metrics/dist/definitions/activity.js +66 -0
  482. package/node_modules/@murphai/health-metrics/dist/definitions/activity.js.map +1 -1
  483. package/node_modules/@murphai/health-metrics/dist/definitions/body.js +2 -2
  484. package/node_modules/@murphai/health-metrics/dist/definitions/body.js.map +1 -1
  485. package/node_modules/@murphai/health-metrics/dist/normalize.d.ts.map +1 -1
  486. package/node_modules/@murphai/health-metrics/dist/normalize.js +3 -0
  487. package/node_modules/@murphai/health-metrics/dist/normalize.js.map +1 -1
  488. package/node_modules/@murphai/health-metrics/dist/wearable-metric-catalog.d.ts +3 -1
  489. package/node_modules/@murphai/health-metrics/dist/wearable-metric-catalog.d.ts.map +1 -1
  490. package/node_modules/@murphai/health-metrics/dist/wearable-metric-catalog.js +5 -1
  491. package/node_modules/@murphai/health-metrics/dist/wearable-metric-catalog.js.map +1 -1
  492. package/node_modules/@murphai/health-metrics/dist/wearable-provider-catalog.d.ts +79 -0
  493. package/node_modules/@murphai/health-metrics/dist/wearable-provider-catalog.d.ts.map +1 -1
  494. package/node_modules/@murphai/health-metrics/dist/wearable-provider-catalog.js +19 -0
  495. package/node_modules/@murphai/health-metrics/dist/wearable-provider-catalog.js.map +1 -1
  496. package/node_modules/@murphai/importers/dist/core-port.d.ts +15 -1
  497. package/node_modules/@murphai/importers/dist/core-port.d.ts.map +1 -1
  498. package/node_modules/@murphai/importers/dist/core-port.js.map +1 -1
  499. package/node_modules/@murphai/importers/dist/create-importers.d.ts +9 -1
  500. package/node_modules/@murphai/importers/dist/create-importers.d.ts.map +1 -1
  501. package/node_modules/@murphai/importers/dist/create-importers.js +12 -2
  502. package/node_modules/@murphai/importers/dist/create-importers.js.map +1 -1
  503. package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.d.ts +17 -3
  504. package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.d.ts.map +1 -1
  505. package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.js +102 -8
  506. package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.js.map +1 -1
  507. package/node_modules/@murphai/importers/dist/device-providers/index.d.ts +5 -4
  508. package/node_modules/@murphai/importers/dist/device-providers/index.d.ts.map +1 -1
  509. package/node_modules/@murphai/importers/dist/device-providers/index.js +4 -3
  510. package/node_modules/@murphai/importers/dist/device-providers/index.js.map +1 -1
  511. package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.d.ts +11 -1
  512. package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.d.ts.map +1 -1
  513. package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.js +420 -27
  514. package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.js.map +1 -1
  515. package/node_modules/@murphai/importers/dist/device-providers/junction-origin.d.ts +1 -0
  516. package/node_modules/@murphai/importers/dist/device-providers/junction-origin.d.ts.map +1 -1
  517. package/node_modules/@murphai/importers/dist/device-providers/junction-origin.js +7 -2
  518. package/node_modules/@murphai/importers/dist/device-providers/junction-origin.js.map +1 -1
  519. package/node_modules/@murphai/importers/dist/device-providers/junction-resources.d.ts +4 -1
  520. package/node_modules/@murphai/importers/dist/device-providers/junction-resources.d.ts.map +1 -1
  521. package/node_modules/@murphai/importers/dist/device-providers/junction-resources.js +42 -1
  522. package/node_modules/@murphai/importers/dist/device-providers/junction-resources.js.map +1 -1
  523. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-features.d.ts +79 -0
  524. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-features.d.ts.map +1 -0
  525. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-features.js +356 -0
  526. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-features.js.map +1 -0
  527. package/node_modules/@murphai/importers/dist/device-providers/junction.d.ts +76 -3
  528. package/node_modules/@murphai/importers/dist/device-providers/junction.d.ts.map +1 -1
  529. package/node_modules/@murphai/importers/dist/device-providers/junction.js +1676 -347
  530. package/node_modules/@murphai/importers/dist/device-providers/junction.js.map +1 -1
  531. package/node_modules/@murphai/importers/dist/device-providers/shared-normalization.d.ts.map +1 -1
  532. package/node_modules/@murphai/importers/dist/device-providers/shared-normalization.js +1 -0
  533. package/node_modules/@murphai/importers/dist/device-providers/shared-normalization.js.map +1 -1
  534. package/node_modules/@murphai/importers/dist/device-providers/types.d.ts +9 -1
  535. package/node_modules/@murphai/importers/dist/device-providers/types.d.ts.map +1 -1
  536. package/node_modules/@murphai/importers/dist/index.d.ts +2 -2
  537. package/node_modules/@murphai/importers/dist/index.d.ts.map +1 -1
  538. package/node_modules/@murphai/importers/dist/index.js +1 -1
  539. package/node_modules/@murphai/importers/dist/index.js.map +1 -1
  540. package/node_modules/@murphai/inboxd/README.md +1 -1
  541. package/node_modules/@murphai/inboxd/dist/indexing/retention.d.ts +6 -0
  542. package/node_modules/@murphai/inboxd/dist/indexing/retention.d.ts.map +1 -1
  543. package/node_modules/@murphai/inboxd/dist/indexing/retention.js +64 -18
  544. package/node_modules/@murphai/inboxd/dist/indexing/retention.js.map +1 -1
  545. package/node_modules/@murphai/inboxd/dist/retention.d.ts +1 -1
  546. package/node_modules/@murphai/inboxd/dist/retention.d.ts.map +1 -1
  547. package/node_modules/@murphai/inboxd/dist/retention.js +1 -1
  548. package/node_modules/@murphai/inboxd/dist/retention.js.map +1 -1
  549. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.d.ts +1 -0
  550. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.d.ts.map +1 -1
  551. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.js +5 -0
  552. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.js.map +1 -1
  553. package/node_modules/@murphai/operator-config/dist/assistant-response-cards.d.ts +175 -152
  554. package/node_modules/@murphai/operator-config/dist/assistant-response-cards.d.ts.map +1 -1
  555. package/node_modules/@murphai/operator-config/dist/assistant-response-cards.js +62 -41
  556. package/node_modules/@murphai/operator-config/dist/assistant-response-cards.js.map +1 -1
  557. package/node_modules/@murphai/operator-config/dist/device-sync-client.d.ts.map +1 -1
  558. package/node_modules/@murphai/operator-config/dist/device-sync-client.js +1 -5
  559. package/node_modules/@murphai/operator-config/dist/device-sync-client.js.map +1 -1
  560. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.d.ts +66 -0
  561. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.d.ts.map +1 -1
  562. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.js +58 -0
  563. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.js.map +1 -1
  564. package/node_modules/@murphai/operator-config/dist/vault-cli-error-projection.d.ts +24 -0
  565. package/node_modules/@murphai/operator-config/dist/vault-cli-error-projection.d.ts.map +1 -0
  566. package/node_modules/@murphai/operator-config/dist/vault-cli-error-projection.js +219 -0
  567. package/node_modules/@murphai/operator-config/dist/vault-cli-error-projection.js.map +1 -0
  568. package/node_modules/@murphai/operator-config/dist/vault-cli-errors.d.ts.map +1 -1
  569. package/node_modules/@murphai/operator-config/dist/vault-cli-errors.js.map +1 -1
  570. package/node_modules/@murphai/operator-config/dist/workout-action-binding.d.ts +9 -0
  571. package/node_modules/@murphai/operator-config/dist/workout-action-binding.d.ts.map +1 -1
  572. package/node_modules/@murphai/operator-config/dist/workout-action-binding.js +48 -5
  573. package/node_modules/@murphai/operator-config/dist/workout-action-binding.js.map +1 -1
  574. package/node_modules/@murphai/operator-config/package.json +5 -0
  575. package/node_modules/@murphai/query/README.md +20 -5
  576. package/node_modules/@murphai/query/dist/browser-replica/build.d.ts +1 -1
  577. package/node_modules/@murphai/query/dist/browser-replica/build.d.ts.map +1 -1
  578. package/node_modules/@murphai/query/dist/browser-replica/build.js +25 -16
  579. package/node_modules/@murphai/query/dist/browser-replica/build.js.map +1 -1
  580. package/node_modules/@murphai/query/dist/browser-replica/json.d.ts +6 -0
  581. package/node_modules/@murphai/query/dist/browser-replica/json.d.ts.map +1 -0
  582. package/node_modules/@murphai/query/dist/browser-replica/json.js +103 -0
  583. package/node_modules/@murphai/query/dist/browser-replica/json.js.map +1 -0
  584. package/node_modules/@murphai/query/dist/browser-replica/shared.d.ts +1 -0
  585. package/node_modules/@murphai/query/dist/browser-replica/shared.d.ts.map +1 -1
  586. package/node_modules/@murphai/query/dist/browser-replica/source.d.ts +13 -0
  587. package/node_modules/@murphai/query/dist/browser-replica/source.d.ts.map +1 -0
  588. package/node_modules/@murphai/query/dist/browser-replica/source.js +45 -0
  589. package/node_modules/@murphai/query/dist/browser-replica/source.js.map +1 -0
  590. package/node_modules/@murphai/query/dist/browser-replica-server.d.ts +2 -0
  591. package/node_modules/@murphai/query/dist/browser-replica-server.d.ts.map +1 -1
  592. package/node_modules/@murphai/query/dist/browser-replica-server.js +2 -0
  593. package/node_modules/@murphai/query/dist/browser-replica-server.js.map +1 -1
  594. package/node_modules/@murphai/query/dist/health/blood-tests.d.ts.map +1 -1
  595. package/node_modules/@murphai/query/dist/health/blood-tests.js +3 -2
  596. package/node_modules/@murphai/query/dist/health/blood-tests.js.map +1 -1
  597. package/node_modules/@murphai/query/dist/health/canonical-collector.d.ts +11 -1
  598. package/node_modules/@murphai/query/dist/health/canonical-collector.d.ts.map +1 -1
  599. package/node_modules/@murphai/query/dist/health/canonical-collector.js +39 -16
  600. package/node_modules/@murphai/query/dist/health/canonical-collector.js.map +1 -1
  601. package/node_modules/@murphai/query/dist/health/entity-slices.d.ts +9 -3
  602. package/node_modules/@murphai/query/dist/health/entity-slices.d.ts.map +1 -1
  603. package/node_modules/@murphai/query/dist/health/entity-slices.js +6 -6
  604. package/node_modules/@murphai/query/dist/health/entity-slices.js.map +1 -1
  605. package/node_modules/@murphai/query/dist/health/immunizations.d.ts.map +1 -1
  606. package/node_modules/@murphai/query/dist/health/immunizations.js +14 -11
  607. package/node_modules/@murphai/query/dist/health/immunizations.js.map +1 -1
  608. package/node_modules/@murphai/query/dist/health/loaders.d.ts +21 -7
  609. package/node_modules/@murphai/query/dist/health/loaders.d.ts.map +1 -1
  610. package/node_modules/@murphai/query/dist/health/loaders.js +53 -15
  611. package/node_modules/@murphai/query/dist/health/loaders.js.map +1 -1
  612. package/node_modules/@murphai/query/dist/health/registries.d.ts +1 -0
  613. package/node_modules/@murphai/query/dist/health/registries.d.ts.map +1 -1
  614. package/node_modules/@murphai/query/dist/health/registries.js.map +1 -1
  615. package/node_modules/@murphai/query/dist/index.d.ts +4 -3
  616. package/node_modules/@murphai/query/dist/index.d.ts.map +1 -1
  617. package/node_modules/@murphai/query/dist/index.js +4 -3
  618. package/node_modules/@murphai/query/dist/index.js.map +1 -1
  619. package/node_modules/@murphai/query/dist/meal-nutrition.d.ts +1 -1
  620. package/node_modules/@murphai/query/dist/meal-nutrition.d.ts.map +1 -1
  621. package/node_modules/@murphai/query/dist/meal-nutrition.js +10 -3
  622. package/node_modules/@murphai/query/dist/meal-nutrition.js.map +1 -1
  623. package/node_modules/@murphai/query/dist/metrics/projection.d.ts.map +1 -1
  624. package/node_modules/@murphai/query/dist/metrics/projection.js +19 -6
  625. package/node_modules/@murphai/query/dist/metrics/projection.js.map +1 -1
  626. package/node_modules/@murphai/query/dist/murph-age.d.ts +5 -1
  627. package/node_modules/@murphai/query/dist/murph-age.d.ts.map +1 -1
  628. package/node_modules/@murphai/query/dist/murph-age.js +22 -8
  629. package/node_modules/@murphai/query/dist/murph-age.js.map +1 -1
  630. package/node_modules/@murphai/query/dist/projection/entity-store.js +4 -4
  631. package/node_modules/@murphai/query/dist/projection/entity-store.js.map +1 -1
  632. package/node_modules/@murphai/query/dist/projection/schema.d.ts +1 -1
  633. package/node_modules/@murphai/query/dist/projection/schema.d.ts.map +1 -1
  634. package/node_modules/@murphai/query/dist/projection/schema.js +3 -1
  635. package/node_modules/@murphai/query/dist/projection/schema.js.map +1 -1
  636. package/node_modules/@murphai/query/dist/projection/wearable-summary-compose.js +4 -0
  637. package/node_modules/@murphai/query/dist/projection/wearable-summary-compose.js.map +1 -1
  638. package/node_modules/@murphai/query/dist/projection/wearable-summary-projector.js +4 -0
  639. package/node_modules/@murphai/query/dist/projection/wearable-summary-projector.js.map +1 -1
  640. package/node_modules/@murphai/query/dist/query-visibility.d.ts +5 -0
  641. package/node_modules/@murphai/query/dist/query-visibility.d.ts.map +1 -1
  642. package/node_modules/@murphai/query/dist/query-visibility.js +11 -5
  643. package/node_modules/@murphai/query/dist/query-visibility.js.map +1 -1
  644. package/node_modules/@murphai/query/dist/read-model.d.ts +8 -0
  645. package/node_modules/@murphai/query/dist/read-model.d.ts.map +1 -1
  646. package/node_modules/@murphai/query/dist/read-model.js +11 -1
  647. package/node_modules/@murphai/query/dist/read-model.js.map +1 -1
  648. package/node_modules/@murphai/query/dist/scheduled-logs.d.ts.map +1 -1
  649. package/node_modules/@murphai/query/dist/scheduled-logs.js +55 -79
  650. package/node_modules/@murphai/query/dist/scheduled-logs.js.map +1 -1
  651. package/node_modules/@murphai/query/dist/vault-source.d.ts +22 -4
  652. package/node_modules/@murphai/query/dist/vault-source.d.ts.map +1 -1
  653. package/node_modules/@murphai/query/dist/vault-source.js +188 -59
  654. package/node_modules/@murphai/query/dist/vault-source.js.map +1 -1
  655. package/node_modules/@murphai/query/dist/wearables/candidates.d.ts.map +1 -1
  656. package/node_modules/@murphai/query/dist/wearables/candidates.js +26 -15
  657. package/node_modules/@murphai/query/dist/wearables/candidates.js.map +1 -1
  658. package/node_modules/@murphai/query/dist/wearables/public-output.d.ts.map +1 -1
  659. package/node_modules/@murphai/query/dist/wearables/public-output.js +6 -0
  660. package/node_modules/@murphai/query/dist/wearables/public-output.js.map +1 -1
  661. package/node_modules/@murphai/query/dist/wearables/source-health.d.ts.map +1 -1
  662. package/node_modules/@murphai/query/dist/wearables/source-health.js +4 -0
  663. package/node_modules/@murphai/query/dist/wearables/source-health.js.map +1 -1
  664. package/node_modules/@murphai/query/dist/wearables/types.d.ts +41 -4
  665. package/node_modules/@murphai/query/dist/wearables/types.d.ts.map +1 -1
  666. package/node_modules/@murphai/query/dist/wearables/types.js +2 -0
  667. package/node_modules/@murphai/query/dist/wearables/types.js.map +1 -1
  668. package/node_modules/@murphai/query/dist/wearables/workout-features.d.ts +5 -0
  669. package/node_modules/@murphai/query/dist/wearables/workout-features.d.ts.map +1 -0
  670. package/node_modules/@murphai/query/dist/wearables/workout-features.js +179 -0
  671. package/node_modules/@murphai/query/dist/wearables/workout-features.js.map +1 -0
  672. package/node_modules/@murphai/query/dist/wearables.d.ts.map +1 -1
  673. package/node_modules/@murphai/query/dist/wearables.js +23 -6
  674. package/node_modules/@murphai/query/dist/wearables.js.map +1 -1
  675. package/node_modules/@murphai/query/package.json +5 -0
  676. package/node_modules/@murphai/runtime-state/README.md +1 -1
  677. package/node_modules/@murphai/runtime-state/dist/assistant-runtime-issues.d.ts +4 -0
  678. package/node_modules/@murphai/runtime-state/dist/assistant-runtime-issues.d.ts.map +1 -1
  679. package/node_modules/@murphai/runtime-state/dist/assistant-runtime-issues.js +16 -3
  680. package/node_modules/@murphai/runtime-state/dist/assistant-runtime-issues.js.map +1 -1
  681. package/node_modules/@murphai/runtime-state/dist/hosted-bundles.d.ts +1 -0
  682. package/node_modules/@murphai/runtime-state/dist/hosted-bundles.d.ts.map +1 -1
  683. package/node_modules/@murphai/runtime-state/dist/hosted-bundles.js +31 -0
  684. package/node_modules/@murphai/runtime-state/dist/hosted-bundles.js.map +1 -1
  685. package/node_modules/@murphai/runtime-state/dist/hosted-email.d.ts +5 -0
  686. package/node_modules/@murphai/runtime-state/dist/hosted-email.d.ts.map +1 -1
  687. package/node_modules/@murphai/runtime-state/dist/hosted-email.js +10 -0
  688. package/node_modules/@murphai/runtime-state/dist/hosted-email.js.map +1 -1
  689. package/node_modules/@murphai/setup-cli/dist/incur-error-bridge.d.ts.map +1 -1
  690. package/node_modules/@murphai/setup-cli/dist/incur-error-bridge.js +6 -15
  691. package/node_modules/@murphai/setup-cli/dist/incur-error-bridge.js.map +1 -1
  692. package/node_modules/@murphai/vault-usecases/README.md +9 -0
  693. package/node_modules/@murphai/vault-usecases/dist/commands/query-record-command-helpers.d.ts +6 -0
  694. package/node_modules/@murphai/vault-usecases/dist/commands/query-record-command-helpers.d.ts.map +1 -1
  695. package/node_modules/@murphai/vault-usecases/dist/commands/query-record-command-helpers.js +49 -1
  696. package/node_modules/@murphai/vault-usecases/dist/commands/query-record-command-helpers.js.map +1 -1
  697. package/node_modules/@murphai/vault-usecases/dist/usecases/capture.d.ts.map +1 -1
  698. package/node_modules/@murphai/vault-usecases/dist/usecases/capture.js +22 -12
  699. package/node_modules/@murphai/vault-usecases/dist/usecases/capture.js.map +1 -1
  700. package/node_modules/@murphai/vault-usecases/dist/usecases/clinical-imports.d.ts.map +1 -1
  701. package/node_modules/@murphai/vault-usecases/dist/usecases/clinical-imports.js +1 -3
  702. package/node_modules/@murphai/vault-usecases/dist/usecases/clinical-imports.js.map +1 -1
  703. package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.d.ts.map +1 -1
  704. package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.js +24 -18
  705. package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.js.map +1 -1
  706. package/node_modules/@murphai/vault-usecases/dist/usecases/encounter.d.ts.map +1 -1
  707. package/node_modules/@murphai/vault-usecases/dist/usecases/encounter.js +1 -3
  708. package/node_modules/@murphai/vault-usecases/dist/usecases/encounter.js.map +1 -1
  709. package/node_modules/@murphai/vault-usecases/dist/usecases/event-record-mutations.d.ts +8 -0
  710. package/node_modules/@murphai/vault-usecases/dist/usecases/event-record-mutations.d.ts.map +1 -1
  711. package/node_modules/@murphai/vault-usecases/dist/usecases/event-record-mutations.js +56 -5
  712. package/node_modules/@murphai/vault-usecases/dist/usecases/event-record-mutations.js.map +1 -1
  713. package/node_modules/@murphai/vault-usecases/dist/usecases/exact-event-record.d.ts +20 -0
  714. package/node_modules/@murphai/vault-usecases/dist/usecases/exact-event-record.d.ts.map +1 -0
  715. package/node_modules/@murphai/vault-usecases/dist/usecases/exact-event-record.js +72 -0
  716. package/node_modules/@murphai/vault-usecases/dist/usecases/exact-event-record.js.map +1 -0
  717. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.d.ts +1 -1
  718. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.d.ts.map +1 -1
  719. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.js +42 -9
  720. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.js.map +1 -1
  721. package/node_modules/@murphai/vault-usecases/dist/usecases/explicit-health-family-services.d.ts.map +1 -1
  722. package/node_modules/@murphai/vault-usecases/dist/usecases/explicit-health-family-services.js +158 -24
  723. package/node_modules/@murphai/vault-usecases/dist/usecases/explicit-health-family-services.js.map +1 -1
  724. package/node_modules/@murphai/vault-usecases/dist/usecases/food.d.ts.map +1 -1
  725. package/node_modules/@murphai/vault-usecases/dist/usecases/food.js +98 -5
  726. package/node_modules/@murphai/vault-usecases/dist/usecases/food.js.map +1 -1
  727. package/node_modules/@murphai/vault-usecases/dist/usecases/integrated-services.d.ts.map +1 -1
  728. package/node_modules/@murphai/vault-usecases/dist/usecases/integrated-services.js +20 -4
  729. package/node_modules/@murphai/vault-usecases/dist/usecases/integrated-services.js.map +1 -1
  730. package/node_modules/@murphai/vault-usecases/dist/usecases/intervention-experiment-link.d.ts.map +1 -1
  731. package/node_modules/@murphai/vault-usecases/dist/usecases/intervention-experiment-link.js +49 -24
  732. package/node_modules/@murphai/vault-usecases/dist/usecases/intervention-experiment-link.js.map +1 -1
  733. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.d.ts.map +1 -1
  734. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.js +13 -11
  735. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.js.map +1 -1
  736. package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.d.ts.map +1 -1
  737. package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.js +18 -11
  738. package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.js.map +1 -1
  739. package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.d.ts.map +1 -1
  740. package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.js +43 -1
  741. package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.js.map +1 -1
  742. package/node_modules/@murphai/vault-usecases/dist/usecases/shared.d.ts.map +1 -1
  743. package/node_modules/@murphai/vault-usecases/dist/usecases/shared.js +1 -3
  744. package/node_modules/@murphai/vault-usecases/dist/usecases/shared.js.map +1 -1
  745. package/node_modules/@murphai/vault-usecases/dist/usecases/vault-usecase-helpers.d.ts +2 -0
  746. package/node_modules/@murphai/vault-usecases/dist/usecases/vault-usecase-helpers.d.ts.map +1 -1
  747. package/node_modules/@murphai/vault-usecases/dist/usecases/vault-usecase-helpers.js +24 -1
  748. package/node_modules/@murphai/vault-usecases/dist/usecases/vault-usecase-helpers.js.map +1 -1
  749. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-format.d.ts +2 -0
  750. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-format.d.ts.map +1 -1
  751. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.d.ts +36 -4
  752. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.d.ts.map +1 -1
  753. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.js +48 -12
  754. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.js.map +1 -1
  755. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.d.ts +14 -14
  756. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.d.ts.map +1 -1
  757. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.js +84 -82
  758. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.js.map +1 -1
  759. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.d.ts +16 -4
  760. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.d.ts.map +1 -1
  761. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.js +316 -79
  762. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.js.map +1 -1
  763. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.d.ts.map +1 -1
  764. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.js +19 -17
  765. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.js.map +1 -1
  766. package/node_modules/@murphai/vault-usecases/dist/usecases/workout.d.ts +20 -7
  767. package/node_modules/@murphai/vault-usecases/dist/usecases/workout.d.ts.map +1 -1
  768. package/node_modules/@murphai/vault-usecases/dist/usecases/workout.js +56 -31
  769. package/node_modules/@murphai/vault-usecases/dist/usecases/workout.js.map +1 -1
  770. package/node_modules/incur/dist/Cli.js +7 -32
  771. package/node_modules/incur/dist/Errors.d.ts +17 -0
  772. package/node_modules/incur/dist/Errors.js +23 -0
  773. package/node_modules/incur/dist/internal/command.d.ts +2 -0
  774. package/node_modules/incur/dist/internal/command.js +2 -6
  775. package/node_modules/incur/src/Cli.ts +11 -32
  776. package/node_modules/incur/src/Errors.ts +36 -0
  777. package/node_modules/incur/src/internal/command.ts +4 -6
  778. package/package.json +4 -4
  779. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/daily-nutrition-card-safety.md +0 -211
@@ -0,0 +1,219 @@
1
+ import { redactSensitivePathSegments } from './text/shared.js';
2
+ import { VaultCliError } from './vault-cli-errors.js';
3
+ const MAX_VALIDATION_FIELDS = 12;
4
+ const MAX_VALIDATION_PATH_LENGTH = 160;
5
+ const MAX_ERROR_MESSAGE_LENGTH = 640;
6
+ const MAX_ERROR_HINT_LENGTH = 320;
7
+ const UNKNOWN_ERROR_MESSAGE = 'The command failed without a safe recoverable detail.';
8
+ /**
9
+ * Projects domain and unexpected failures into the bounded CLI envelope.
10
+ * VaultCliError context is the sole structured metadata source. An owner's
11
+ * explicit publicPath takes precedence over an ordinary schema issue path.
12
+ */
13
+ export function projectVaultCliError(error) {
14
+ if (error instanceof VaultCliError) {
15
+ return projectKnownVaultCliError(error);
16
+ }
17
+ if (isUnknownRecord(error) && error.name === 'ZodError') {
18
+ return {
19
+ code: 'invalid_payload',
20
+ message: 'Input failed validation.',
21
+ retryable: false,
22
+ stage: 'validation',
23
+ };
24
+ }
25
+ return classifyUnhandledCliError(error);
26
+ }
27
+ function projectKnownVaultCliError(error) {
28
+ const retryable = typeof error.context?.retryable === 'boolean'
29
+ ? error.context.retryable
30
+ : false;
31
+ const exitCode = typeof error.context?.exitCode === 'number' &&
32
+ Number.isSafeInteger(error.context.exitCode) &&
33
+ error.context.exitCode > 0
34
+ ? error.context.exitCode
35
+ : undefined;
36
+ const fieldErrors = createValidationFieldErrors(error.context);
37
+ const stage = readKnownErrorStage(error.context?.stage)
38
+ ?? (fieldErrors ? 'validation' : undefined);
39
+ const hint = readBoundedDiagnosticString(error.context?.hint, MAX_ERROR_HINT_LENGTH);
40
+ return {
41
+ code: error.code,
42
+ message: boundedDiagnosticMessage(error),
43
+ retryable,
44
+ ...(exitCode === undefined ? {} : { exitCode }),
45
+ ...(fieldErrors ? { fieldErrors } : {}),
46
+ ...(hint === undefined ? {} : { hint }),
47
+ ...(stage === undefined ? {} : { stage }),
48
+ };
49
+ }
50
+ function createValidationFieldErrors(details) {
51
+ if (!isUnknownRecord(details) || !Array.isArray(details.issues)) {
52
+ return undefined;
53
+ }
54
+ const fields = details.issues.flatMap((issue) => {
55
+ if (!isUnknownRecord(issue) ||
56
+ typeof issue.code !== 'string' ||
57
+ !/^(?:custom|invalid_(?:element|format|key|type|union|value)|not_multiple_of|too_(?:big|small)|unrecognized_keys)$/u.test(issue.code)) {
58
+ return [];
59
+ }
60
+ const path = resolveValidationPath(issue);
61
+ if (path === null) {
62
+ return [];
63
+ }
64
+ const expected = typeof issue.expected === 'string' &&
65
+ /^(?:array|boolean|null|number|object|string|undefined)$/u.test(issue.expected)
66
+ ? issue.expected
67
+ : undefined;
68
+ return [{
69
+ code: issue.code,
70
+ path: normalizeValidationPath(path),
71
+ expected: expected ?? '',
72
+ received: 'invalid',
73
+ message: 'This field is invalid.',
74
+ }];
75
+ });
76
+ if (fields.length === 0) {
77
+ return undefined;
78
+ }
79
+ const boundedFields = fields.slice(0, MAX_VALIDATION_FIELDS);
80
+ const omittedFieldCount = fields.length - boundedFields.length;
81
+ if (omittedFieldCount > 0) {
82
+ boundedFields.push({
83
+ path: '$',
84
+ code: 'issues_omitted',
85
+ expected: '',
86
+ received: 'invalid',
87
+ message: `${omittedFieldCount} additional validation ${omittedFieldCount === 1 ? 'issue was' : 'issues were'} omitted.`,
88
+ });
89
+ }
90
+ return boundedFields;
91
+ }
92
+ function resolveValidationPath(issue) {
93
+ if (issue.publicPath !== undefined) {
94
+ return Array.isArray(issue.publicPath) &&
95
+ issue.publicPath.every(isPublicPathSegment)
96
+ ? issue.publicPath
97
+ : null;
98
+ }
99
+ return Array.isArray(issue.path) && issue.path.every(isPublicPathSegment)
100
+ ? issue.path
101
+ : null;
102
+ }
103
+ function isPublicPathSegment(value) {
104
+ return (typeof value === 'string' &&
105
+ /^[A-Za-z_][A-Za-z0-9_-]*$/u.test(value)) || (typeof value === 'number' &&
106
+ Number.isSafeInteger(value) &&
107
+ value >= 0);
108
+ }
109
+ function normalizeValidationPath(path) {
110
+ const normalized = path.join('.') || '$';
111
+ const codePoints = Array.from(normalized);
112
+ return codePoints.length <= MAX_VALIDATION_PATH_LENGTH
113
+ ? normalized
114
+ : `${codePoints.slice(0, MAX_VALIDATION_PATH_LENGTH - 1).join('')}…`;
115
+ }
116
+ function readKnownErrorStage(value) {
117
+ return typeof value === 'string' &&
118
+ /^(?:authorization|configuration|conflict|filesystem|integrity|persistence|read|render|response|transport|validation|write)$/u.test(value)
119
+ ? value
120
+ : undefined;
121
+ }
122
+ function classifyUnhandledCliError(error) {
123
+ const nodeCode = readErrorCode(error);
124
+ const message = boundedDiagnosticMessage(error);
125
+ if (nodeCode === 'ENOENT') {
126
+ return {
127
+ code: 'not_found',
128
+ message,
129
+ retryable: false,
130
+ stage: 'filesystem',
131
+ hint: 'Check the input path and retry the command.',
132
+ };
133
+ }
134
+ if (nodeCode === 'EACCES' || nodeCode === 'EPERM') {
135
+ return {
136
+ code: 'permission_denied',
137
+ message,
138
+ retryable: false,
139
+ stage: 'filesystem',
140
+ hint: 'Check the file permissions before retrying.',
141
+ };
142
+ }
143
+ if (nodeCode === 'EISDIR' || nodeCode === 'ENOTDIR') {
144
+ return {
145
+ code: 'invalid_path',
146
+ message,
147
+ retryable: false,
148
+ stage: 'filesystem',
149
+ hint: 'Check whether the option expects a file or a directory.',
150
+ };
151
+ }
152
+ if (nodeCode === 'ENOSPC') {
153
+ return {
154
+ code: 'storage_unavailable',
155
+ message,
156
+ retryable: false,
157
+ stage: 'filesystem',
158
+ hint: 'Free storage space before retrying.',
159
+ };
160
+ }
161
+ if (nodeCode === 'VAULT_INVALID_INPUT') {
162
+ return {
163
+ code: nodeCode,
164
+ message,
165
+ retryable: false,
166
+ stage: 'validation',
167
+ };
168
+ }
169
+ return {
170
+ code: readBoundedErrorCode(nodeCode) ?? 'UNKNOWN',
171
+ message,
172
+ retryable: false,
173
+ stage: 'command',
174
+ };
175
+ }
176
+ function boundedDiagnosticMessage(error) {
177
+ const message = error instanceof Error
178
+ ? error.message
179
+ : isUnknownRecord(error) && typeof error.message === 'string'
180
+ ? error.message
181
+ : typeof error === 'string'
182
+ ? error
183
+ : null;
184
+ return readBoundedDiagnosticString(message, MAX_ERROR_MESSAGE_LENGTH)
185
+ ?? UNKNOWN_ERROR_MESSAGE;
186
+ }
187
+ function readBoundedDiagnosticString(value, maximumLength) {
188
+ if (typeof value !== 'string') {
189
+ return undefined;
190
+ }
191
+ const normalized = redactCredentialShapes(redactSensitivePathSegments(value.trim()));
192
+ if (normalized.length === 0) {
193
+ return undefined;
194
+ }
195
+ const codePoints = Array.from(normalized);
196
+ return codePoints.length <= maximumLength
197
+ ? normalized
198
+ : `${codePoints.slice(0, maximumLength - 1).join('')}…`;
199
+ }
200
+ function redactCredentialShapes(value) {
201
+ return value
202
+ .replace(/\b(Bearer|Basic)\s+[^\s,;]+/giu, '$1 <REDACTED_CREDENTIAL>')
203
+ .replace(/\b((?:api[-_ ]?key|access[-_ ]?token|authorization|password|secret)\s*[:=]\s*)[^\s,;]+/giu, '$1<REDACTED_CREDENTIAL>');
204
+ }
205
+ function readBoundedErrorCode(value) {
206
+ return value !== null && /^[A-Za-z0-9_.:-]{1,96}$/u.test(value)
207
+ ? value
208
+ : undefined;
209
+ }
210
+ function readErrorCode(error) {
211
+ if (!isUnknownRecord(error)) {
212
+ return null;
213
+ }
214
+ return typeof error.code === 'string' ? error.code : null;
215
+ }
216
+ function isUnknownRecord(value) {
217
+ return typeof value === 'object' && value !== null;
218
+ }
219
+ //# sourceMappingURL=vault-cli-error-projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault-cli-error-projection.js","sourceRoot":"","sources":["../src/vault-cli-error-projection.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"vault-cli-errors.d.ts","sourceRoot":"","sources":["../src/vault-cli-errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;AAEtE,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAA;IACtC,SAAkB,OAAO,EAAE,MAAM,CAAA;IAEjC,YAAY,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,EAMxE;CACF;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CA+CrE"}
1
+ {"version":3,"file":"vault-cli-errors.d.ts","sourceRoot":"","sources":["../src/vault-cli-errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;AAEtE,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAA;IACtC,SAAkB,OAAO,EAAE,MAAM,CAAA;IAEjC,YACE,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,oBAAoB,EAO/B;CACF;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CA+CrE"}
@@ -1 +1 @@
1
- {"version":3,"file":"vault-cli-errors.js","sourceRoot":"","sources":["../src/vault-cli-errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vault-cli-errors.js","sourceRoot":"","sources":["../src/vault-cli-errors.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,14 @@
1
1
  import type { WorkoutExercise, WorkoutSession } from '@murphai/contracts';
2
2
  export declare function hasAmbiguousWorkoutActionExerciseCoordinates(workout: Pick<WorkoutSession, 'exercises'>): boolean;
3
3
  export declare function deriveWorkoutActionBinding(workoutEntityId: string, workout: Pick<WorkoutSession, 'exercises' | 'lastMemberActionId'>): string;
4
+ export declare function workoutActionBindingMatchesCurrentState(workoutEntityId: string, workout: Pick<WorkoutSession, 'exercises' | 'lastMemberActionId'>, binding: string): boolean;
5
+ /**
6
+ * Matches an authenticated read to its workout without weakening writes.
7
+ * New bindings expose only their stable digest prefix; legacy cards are
8
+ * readable only at current state or from the initial pre-action generation.
9
+ */
10
+ export declare function workoutActionBindingTargetsWorkout(workoutEntityId: string, workout: Pick<WorkoutSession, 'exercises' | 'lastMemberActionId'>, binding: string): boolean;
11
+ /** Compatibility reader for cards emitted before the composite V5 binding. */
12
+ export declare function deriveLegacyWorkoutActionBindingV4(workoutEntityId: string, workout: Pick<WorkoutSession, 'exercises' | 'lastMemberActionId'>): string;
4
13
  export declare function deriveWorkoutSetRemovalBinding(workoutEntityId: string, exercises: WorkoutExercise[]): string;
5
14
  //# sourceMappingURL=workout-action-binding.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workout-action-binding.d.ts","sourceRoot":"","sources":["../src/workout-action-binding.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAc,MAAM,oBAAoB,CAAA;AA6BrF,wBAAgB,4CAA4C,CAC1D,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,GACzC,OAAO,CAUT;AAED,wBAAgB,0BAA0B,CACxC,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,oBAAoB,CAAC,GAChE,MAAM,CAuBR;AAED,wBAAgB,8BAA8B,CAC5C,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,eAAe,EAAE,GAC3B,MAAM,CAoCR"}
1
+ {"version":3,"file":"workout-action-binding.d.ts","sourceRoot":"","sources":["../src/workout-action-binding.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAc,MAAM,oBAAoB,CAAA;AAiCrF,wBAAgB,4CAA4C,CAC1D,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,GACzC,OAAO,CAUT;AAED,wBAAgB,0BAA0B,CACxC,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,oBAAoB,CAAC,GAChE,MAAM,CAeR;AAED,wBAAgB,uCAAuC,CACrD,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,oBAAoB,CAAC,EACjE,OAAO,EAAE,MAAM,GACd,OAAO,CAMT;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAChD,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,oBAAoB,CAAC,EACjE,OAAO,EAAE,MAAM,GACd,OAAO,CAUT;AAED,8EAA8E;AAC9E,wBAAgB,kCAAkC,CAChD,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,oBAAoB,CAAC,GAChE,MAAM,CAMR;AAyBD,wBAAgB,8BAA8B,CAC5C,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,eAAe,EAAE,GAC3B,MAAM,CAsCR"}
@@ -1,10 +1,13 @@
1
1
  import { createHash } from 'node:crypto';
2
+ const WORKOUT_ACTION_BINDING_PATTERN = /^[0-9a-f]{64}$/u;
2
3
  function projectWorkoutActionExerciseCoordinate(exercise) {
3
4
  return {
4
5
  groupId: exercise.groupId ?? null,
6
+ memberRepsPerSet: exercise.memberRepsPerSet ?? null,
5
7
  mode: exercise.mode ?? null,
6
8
  name: exercise.name,
7
9
  note: exercise.note ?? null,
10
+ setPlanIsFinite: exercise.setPlanIsFinite ?? null,
8
11
  sets: exercise.sets
9
12
  .slice()
10
13
  .sort((left, right) => left.order - right.order)
@@ -27,25 +30,63 @@ export function hasAmbiguousWorkoutActionExerciseCoordinates(workout) {
27
30
  return false;
28
31
  }
29
32
  export function deriveWorkoutActionBinding(workoutEntityId, workout) {
30
- const positionalIdentity = workout.exercises
33
+ const positionalIdentity = workoutActionPositionalIdentity(workout.exercises);
34
+ const lookup = createHash('sha256')
35
+ .update(`workout-action-lookup:v1:${workoutEntityId}:${JSON.stringify(positionalIdentity)}`)
36
+ .digest('hex')
37
+ .slice(0, 32);
38
+ const state = createHash('sha256')
39
+ .update(`workout-action:v5:${workoutEntityId}:${workout.lastMemberActionId ?? ''}:${JSON.stringify(positionalIdentity)}`)
40
+ .digest('hex')
41
+ .slice(0, 32);
42
+ return `${lookup}${state}`;
43
+ }
44
+ export function workoutActionBindingMatchesCurrentState(workoutEntityId, workout, binding) {
45
+ return binding === deriveWorkoutActionBinding(workoutEntityId, workout)
46
+ || binding === deriveLegacyWorkoutActionBindingV4(workoutEntityId, workout);
47
+ }
48
+ /**
49
+ * Matches an authenticated read to its workout without weakening writes.
50
+ * New bindings expose only their stable digest prefix; legacy cards are
51
+ * readable only at current state or from the initial pre-action generation.
52
+ */
53
+ export function workoutActionBindingTargetsWorkout(workoutEntityId, workout, binding) {
54
+ if (!WORKOUT_ACTION_BINDING_PATTERN.test(binding))
55
+ return false;
56
+ const lookup = deriveWorkoutActionBinding(workoutEntityId, workout).slice(0, 32);
57
+ if (binding.startsWith(lookup))
58
+ return true;
59
+ return binding === deriveLegacyWorkoutActionBindingV4(workoutEntityId, workout)
60
+ || binding === deriveLegacyWorkoutActionBindingV4(workoutEntityId, {
61
+ exercises: workout.exercises,
62
+ lastMemberActionId: undefined,
63
+ });
64
+ }
65
+ /** Compatibility reader for cards emitted before the composite V5 binding. */
66
+ export function deriveLegacyWorkoutActionBindingV4(workoutEntityId, workout) {
67
+ return createHash('sha256')
68
+ .update(`workout-action:v4:${workoutEntityId}:${workout.lastMemberActionId ?? ''}:${JSON.stringify(workoutActionPositionalIdentity(workout.exercises))}`)
69
+ .digest('hex');
70
+ }
71
+ function workoutActionPositionalIdentity(exercises) {
72
+ return exercises
31
73
  .slice()
32
74
  .sort((left, right) => left.order - right.order)
33
75
  .map((exercise) => {
34
76
  const coordinate = projectWorkoutActionExerciseCoordinate(exercise);
35
77
  return {
36
78
  groupId: coordinate.groupId,
79
+ memberRepsPerSet: coordinate.memberRepsPerSet,
37
80
  mode: coordinate.mode,
38
81
  name: coordinate.name,
39
82
  note: coordinate.note,
40
83
  order: exercise.order,
84
+ setPlanIsFinite: coordinate.setPlanIsFinite,
41
85
  sets: coordinate.sets,
42
86
  sourceExerciseId: coordinate.sourceExerciseId,
43
87
  unitOverride: coordinate.unitOverride,
44
88
  };
45
89
  });
46
- return createHash('sha256')
47
- .update(`workout-action:v3:${workoutEntityId}:${workout.lastMemberActionId ?? ''}:${JSON.stringify(positionalIdentity)}`)
48
- .digest('hex');
49
90
  }
50
91
  export function deriveWorkoutSetRemovalBinding(workoutEntityId, exercises) {
51
92
  const canonicalExercises = exercises
@@ -53,10 +94,12 @@ export function deriveWorkoutSetRemovalBinding(workoutEntityId, exercises) {
53
94
  .sort((left, right) => left.order - right.order)
54
95
  .map((exercise) => ({
55
96
  groupId: exercise.groupId ?? null,
97
+ memberRepsPerSet: exercise.memberRepsPerSet ?? null,
56
98
  mode: exercise.mode ?? null,
57
99
  name: exercise.name,
58
100
  note: exercise.note ?? null,
59
101
  order: exercise.order,
102
+ setPlanIsFinite: exercise.setPlanIsFinite ?? null,
60
103
  sets: exercise.sets
61
104
  .slice()
62
105
  .sort((left, right) => left.order - right.order)
@@ -78,7 +121,7 @@ export function deriveWorkoutSetRemovalBinding(workoutEntityId, exercises) {
78
121
  unitOverride: exercise.unitOverride ?? null,
79
122
  }));
80
123
  return createHash('sha256')
81
- .update(`workout-set-removal:v1:${workoutEntityId}:${JSON.stringify(canonicalExercises)}`)
124
+ .update(`workout-set-removal:v2:${workoutEntityId}:${JSON.stringify(canonicalExercises)}`)
82
125
  .digest('hex');
83
126
  }
84
127
  //# sourceMappingURL=workout-action-binding.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workout-action-binding.js","sourceRoot":"","sources":["../src/workout-action-binding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workout-action-binding.js","sourceRoot":"","sources":["../src/workout-action-binding.ts"],"names":[],"mappings":"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"}
@@ -154,6 +154,11 @@
154
154
  "import": "./dist/vault-cli-errors.js",
155
155
  "default": "./dist/vault-cli-errors.js"
156
156
  },
157
+ "./vault-cli-error-projection": {
158
+ "types": "./dist/vault-cli-error-projection.d.ts",
159
+ "import": "./dist/vault-cli-error-projection.js",
160
+ "default": "./dist/vault-cli-error-projection.js"
161
+ },
157
162
  "./assistant/delivery-failure": {
158
163
  "types": "./dist/assistant/delivery-failure.d.ts",
159
164
  "import": "./dist/assistant/delivery-failure.js",
@@ -1,11 +1,19 @@
1
1
  # `@murphai/query`
2
2
 
3
- Workspace-private read-helper, filter, derived-retrieval, and export-pack surface over canonical vault state. Query code must not mutate canonical vault data. It owns the rebuildable local query projection at `.runtime/projections/query.sqlite`, which backs both canonical read materialization and lexical search.
3
+ Workspace-private read-helper, filter, derived-retrieval, and export-pack surface over canonical vault state. Query code must not mutate canonical vault data. It owns the rebuildable local query projection at `.runtime/projections/query.sqlite`, which backs cross-family, aggregate, derived, and lexical-search reads.
4
4
 
5
- Narrow health reads should query that projection by family/kind/date before
6
- decoding records. In particular, blood-test list/show must not hydrate the full
7
- projected vault; blood-specific classification and text matching run over the
8
- filtered `event`/`test` candidate set.
5
+ Exact and family-local reads must not rebuild or hydrate that shared projection.
6
+ Use core-owned exact readers when the canonical owner exposes one, or use
7
+ `resolveCanonicalEntityInFamily()` / `readCanonicalEntityFamilySource()` for a
8
+ bounded query-shaped family read. Alias resolution stays inside the selected
9
+ family, and exact canonical ids retain precedence over aliases. Collection
10
+ reads that still need projection freshness should use filtered APIs such as
11
+ `listCanonicalEntities()` rather than materializing the complete vault model.
12
+
13
+ Narrow health collection reads should query that projection by family/kind/date
14
+ before decoding records. Exact blood-test and immunization lookups use the
15
+ bounded event-family source reader so a stale projection cannot turn one-record
16
+ lookup into a whole-vault rebuild.
9
17
 
10
18
  The first retrieval milestone now lives here too: lexical `searchVault()` over the sparse read model plus `buildTimeline()` for descending journal/event/display-grade sample-summary context.
11
19
 
@@ -19,6 +27,13 @@ or biomarker alias, so it cannot silently alias or aggregate with provider HRV.
19
27
 
20
28
  Root wearable summary APIs should use the runtime projection helpers such as `summarizeWearableLatestRuntime()` and `summarizeWearableActivityRuntime()`. The lower-level read-model helpers in `src/wearables.ts` are package-internal and expect a full raw/debug read model or an intentionally full source model, not the default `readVault()` projection.
21
29
 
30
+ Junction workout-stream facets are grouped by their internal hashed workout
31
+ identity during projection rebuild and stored inside the existing
32
+ provider-scoped activity summary rows. The runtime activity read stays
33
+ date/provider-filtered and never hydrates `query_entities` to answer workout
34
+ feature questions. Public power keys end in `Watts`, speed keys end in `Mps`,
35
+ and raw workout/source-instance identifiers remain projection-internal.
36
+
22
37
  Meal nutrition has two intentionally separate reads. `readMealNutritionTotals()`
23
38
  keeps the compact five-metric card contract, while `readMealNutrientTotals()`
24
39
  returns water plus the bounded supported micronutrient catalog only when a
@@ -1,4 +1,4 @@
1
1
  import { type BrowserVaultReplica, type CreateBrowserVaultReplicaInput } from "./shared.ts";
2
2
  export declare function createBrowserVaultReplica(input: CreateBrowserVaultReplicaInput): Promise<BrowserVaultReplica>;
3
- export declare function hashBrowserVaultReplicaData(replica: BrowserVaultReplica): Promise<string>;
3
+ export declare function hashBrowserVaultReplicaData(replica: BrowserVaultReplica, signal?: AbortSignal): Promise<string>;
4
4
  //# sourceMappingURL=build.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/browser-replica/build.ts"],"names":[],"mappings":"AA0BA,OAAO,EAeL,KAAK,mBAAmB,EAIxB,KAAK,8BAA8B,EACpC,MAAM,aAAa,CAAC;AAYrB,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,8BAA8B,GACpC,OAAO,CAAC,mBAAmB,CAAC,CA6F9B;AAED,wBAAsB,2BAA2B,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAyB/F"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/browser-replica/build.ts"],"names":[],"mappings":"AA0BA,OAAO,EAeL,KAAK,mBAAmB,EAIxB,KAAK,8BAA8B,EACpC,MAAM,aAAa,CAAC;AAarB,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,8BAA8B,GACpC,OAAO,CAAC,mBAAmB,CAAC,CAwG9B;AAaD,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,mBAAmB,EAC5B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC,CA4BjB"}
@@ -15,7 +15,9 @@ import { toBrowserVaultLabResultRows } from "./lab-results.js";
15
15
  import { projectBrowserTrainingSession } from "./training.js";
16
16
  import { buildBrowserVaultExperimentRunCards } from "./experiment-run-cards.js";
17
17
  import { createBrowserVaultProjectionQueryClient } from "./query.js";
18
+ import { stringifyJsonCooperatively } from "./json.js";
18
19
  export async function createBrowserVaultReplica(input) {
20
+ input.signal?.throwIfAborted();
19
21
  const generatedAt = input.generatedAt
20
22
  ? requireIsoDateTime(input.generatedAt, "Browser vault replica generatedAt")
21
23
  : new Date().toISOString();
@@ -27,6 +29,7 @@ export async function createBrowserVaultReplica(input) {
27
29
  const timelineRows = buildTimeline(defaultProjectedVault, { limit: TIMELINE_LIMIT })
28
30
  .map(projectTimelineRow);
29
31
  const weeklySampleSummaries = projectWeeklySampleSummaries(defaultProjectedVault, generatedAt);
32
+ await yieldToBrowserVaultReplicaCancellation(input.signal);
30
33
  const allMetricPoints = input.metricPoints;
31
34
  const requestedMetrics = collectRequestedBrowserVaultMetrics(defaultProjectedVault.entities);
32
35
  const explicitRequestedMetrics = collectExplicitBrowserVaultMetrics(defaultProjectedVault.entities);
@@ -38,11 +41,13 @@ export async function createBrowserVaultReplica(input) {
38
41
  (point.effectiveDate >= cutoff ||
39
42
  isAnchoredBrowserMetricPoint(point, anchoredMetricRecords) ||
40
43
  isBrowserVaultRequestedMetricPoint(point, explicitRequestedMetrics)));
44
+ await yieldToBrowserVaultReplicaCancellation(input.signal);
41
45
  const metricRows = toBrowserVaultMetricRows({ points: metricPoints });
42
46
  const labResultRows = toBrowserVaultLabResultRows({
43
47
  entities: defaultProjectedVault.entities,
44
48
  points: allMetricPoints,
45
49
  });
50
+ await yieldToBrowserVaultReplicaCancellation(input.signal);
46
51
  const metricRowPointIds = new Set(metricRows.flatMap((row) => row.pointIds));
47
52
  const metricSelectionRows = createBrowserVaultMetricSelectionRows({
48
53
  generatedAt,
@@ -54,6 +59,8 @@ export async function createBrowserVaultReplica(input) {
54
59
  const sourceHealthRows = summarizeWearableSourceHealth(defaultProjectedVault, { limit: SOURCE_HEALTH_LIMIT })
55
60
  .map(projectSourceHealthRow);
56
61
  const wearableSummaryBundle = buildWearableSummaryBundle(input.vault);
62
+ const personalPatterns = buildPersonalPatternReportFromWearableBundleAndMetricPoints(input.vault, wearableSummaryBundle, allMetricPoints, { asOf: generatedAt });
63
+ await yieldToBrowserVaultReplicaCancellation(input.signal);
57
64
  const replicaWithoutVersion = {
58
65
  assistantSummary: projectWearableAssistantSummary(buildWearableAssistantSummary(defaultProjectedVault)),
59
66
  entities,
@@ -68,7 +75,7 @@ export async function createBrowserVaultReplica(input) {
68
75
  metricGoalProgressRows: buildMetricGoalProgressRows(defaultProjectedVault.entities, allMetricPoints, generatedAt),
69
76
  metricRows,
70
77
  metricSelectionRows,
71
- personalPatterns: buildPersonalPatternReportFromWearableBundleAndMetricPoints(input.vault, wearableSummaryBundle, allMetricPoints, { asOf: generatedAt }),
78
+ personalPatterns,
72
79
  policy,
73
80
  schema: BROWSER_VAULT_REPLICA_SCHEMA,
74
81
  searchRows: entities.map(projectBrowserVaultSearchRow),
@@ -84,7 +91,9 @@ export async function createBrowserVaultReplica(input) {
84
91
  ...replicaWithoutVersion,
85
92
  experimentRunCards: await buildBrowserVaultExperimentRunCards(createBrowserVaultProjectionQueryClient(replicaWithoutVersion)),
86
93
  };
87
- const dataVersion = await hashBrowserVaultReplicaData(replicaWithDerivedCards);
94
+ input.signal?.throwIfAborted();
95
+ const dataVersion = await hashBrowserVaultReplicaData(replicaWithDerivedCards, input.signal);
96
+ input.signal?.throwIfAborted();
88
97
  return {
89
98
  ...replicaWithDerivedCards,
90
99
  source: {
@@ -93,7 +102,15 @@ export async function createBrowserVaultReplica(input) {
93
102
  },
94
103
  };
95
104
  }
96
- export async function hashBrowserVaultReplicaData(replica) {
105
+ async function yieldToBrowserVaultReplicaCancellation(signal) {
106
+ if (!signal) {
107
+ return;
108
+ }
109
+ signal.throwIfAborted();
110
+ await new Promise((resolve) => setTimeout(resolve, 0));
111
+ signal.throwIfAborted();
112
+ }
113
+ export async function hashBrowserVaultReplicaData(replica, signal) {
97
114
  const stableReplica = {
98
115
  ...replica,
99
116
  generatedAt: "",
@@ -110,7 +127,10 @@ export async function hashBrowserVaultReplicaData(replica) {
110
127
  dataVersion: "pending",
111
128
  },
112
129
  };
113
- const digest = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(stableStringify(stableReplica)));
130
+ const digest = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(await stringifyJsonCooperatively(stableReplica, {
131
+ signal,
132
+ sortKeys: true,
133
+ })));
114
134
  return [...new Uint8Array(digest)]
115
135
  .map((byte) => byte.toString(16).padStart(2, "0"))
116
136
  .join("");
@@ -325,6 +345,7 @@ function projectEntityAttributes(entity, generatedAt) {
325
345
  "aspect",
326
346
  "domain",
327
347
  "indicators",
348
+ "indicatorNotes",
328
349
  "indicatorRecordedAt",
329
350
  "note",
330
351
  ]);
@@ -549,16 +570,4 @@ function subtractDaysFromIsoDate(value, days) {
549
570
  parsed.setUTCDate(parsed.getUTCDate() - days);
550
571
  return parsed.toISOString().slice(0, 10);
551
572
  }
552
- function stableStringify(value) {
553
- if (value === null || typeof value !== "object") {
554
- return JSON.stringify(value);
555
- }
556
- if (Array.isArray(value)) {
557
- return `[${value.map(stableStringify).join(",")}]`;
558
- }
559
- return `{${Object.entries(value)
560
- .sort(([left], [right]) => left.localeCompare(right))
561
- .map(([key, entry]) => `${JSON.stringify(key)}:${stableStringify(entry)}`)
562
- .join(",")}}`;
563
- }
564
573
  //# sourceMappingURL=build.js.map