@murphai/murph 0.2.12 → 1.0.0

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 (1161) hide show
  1. package/CHANGELOG.md +808 -0
  2. package/README.md +1 -1
  3. package/config.schema.json +1291 -336
  4. package/dist/cli-entry.d.ts.map +1 -1
  5. package/dist/cli-entry.js +15 -26
  6. package/dist/cli-entry.js.map +1 -1
  7. package/dist/commands/automation.d.ts +4 -12
  8. package/dist/commands/automation.d.ts.map +1 -1
  9. package/dist/commands/capture.d.ts +12 -0
  10. package/dist/commands/capture.d.ts.map +1 -0
  11. package/dist/commands/capture.js +198 -0
  12. package/dist/commands/capture.js.map +1 -0
  13. package/dist/commands/device.d.ts.map +1 -1
  14. package/dist/commands/device.js +7 -6
  15. package/dist/commands/device.js.map +1 -1
  16. package/dist/commands/entity-command-groups.d.ts +1 -0
  17. package/dist/commands/entity-command-groups.d.ts.map +1 -1
  18. package/dist/commands/entity-command-groups.js +1 -0
  19. package/dist/commands/entity-command-groups.js.map +1 -1
  20. package/dist/commands/experiment.d.ts.map +1 -1
  21. package/dist/commands/experiment.js +244 -108
  22. package/dist/commands/experiment.js.map +1 -1
  23. package/dist/commands/export-intake-read-helpers.d.ts +2 -2
  24. package/dist/commands/food.d.ts.map +1 -1
  25. package/dist/commands/food.js +22 -2
  26. package/dist/commands/food.js.map +1 -1
  27. package/dist/commands/inbox.d.ts.map +1 -1
  28. package/dist/commands/inbox.js +88 -23
  29. package/dist/commands/inbox.js.map +1 -1
  30. package/dist/commands/meal.d.ts.map +1 -1
  31. package/dist/commands/meal.js +141 -16
  32. package/dist/commands/meal.js.map +1 -1
  33. package/dist/commands/measurement.d.ts +12 -0
  34. package/dist/commands/measurement.d.ts.map +1 -0
  35. package/dist/commands/measurement.js +205 -0
  36. package/dist/commands/measurement.js.map +1 -0
  37. package/dist/commands/model.d.ts.map +1 -1
  38. package/dist/commands/model.js +14 -3
  39. package/dist/commands/model.js.map +1 -1
  40. package/dist/commands/sample-import-command-helpers.d.ts +30 -3
  41. package/dist/commands/sample-import-command-helpers.d.ts.map +1 -1
  42. package/dist/commands/sample-import-command-helpers.js +37 -10
  43. package/dist/commands/sample-import-command-helpers.js.map +1 -1
  44. package/dist/commands/samples.js +5 -5
  45. package/dist/commands/samples.js.map +1 -1
  46. package/dist/commands/scheduled-log.d.ts +639 -0
  47. package/dist/commands/scheduled-log.d.ts.map +1 -0
  48. package/dist/commands/scheduled-log.js +185 -0
  49. package/dist/commands/scheduled-log.js.map +1 -0
  50. package/dist/commands/search.d.ts.map +1 -1
  51. package/dist/commands/search.js +47 -11
  52. package/dist/commands/search.js.map +1 -1
  53. package/dist/commands/sync.d.ts +17 -0
  54. package/dist/commands/sync.d.ts.map +1 -0
  55. package/dist/commands/sync.js +156 -0
  56. package/dist/commands/sync.js.map +1 -0
  57. package/dist/commands/wearables.d.ts +10607 -0
  58. package/dist/commands/wearables.d.ts.map +1 -1
  59. package/dist/commands/wearables.js +285 -3
  60. package/dist/commands/wearables.js.map +1 -1
  61. package/dist/commands/workout.d.ts.map +1 -1
  62. package/dist/commands/workout.js +4 -129
  63. package/dist/commands/workout.js.map +1 -1
  64. package/dist/incur.generated.d.ts +319 -57
  65. package/dist/incur.generated.d.ts.map +1 -1
  66. package/dist/mapbox-route-directions.d.ts.map +1 -1
  67. package/dist/mapbox-route-directions.js +36 -2
  68. package/dist/mapbox-route-directions.js.map +1 -1
  69. package/dist/vault-cli-command-manifest.d.ts +10780 -57
  70. package/dist/vault-cli-command-manifest.d.ts.map +1 -1
  71. package/dist/vault-cli-command-manifest.js +171 -22
  72. package/dist/vault-cli-command-manifest.js.map +1 -1
  73. package/node_modules/@murphai/assistant-cli/dist/assistant/automation/run-loop.d.ts.map +1 -1
  74. package/node_modules/@murphai/assistant-cli/dist/assistant/automation/run-loop.js +1 -0
  75. package/node_modules/@murphai/assistant-cli/dist/assistant/automation/run-loop.js.map +1 -1
  76. package/node_modules/@murphai/assistant-cli/dist/assistant/doctor-security.js.map +1 -1
  77. package/node_modules/@murphai/assistant-cli/dist/assistant/doctor.js.map +1 -1
  78. package/node_modules/@murphai/assistant-cli/dist/assistant/service.d.ts +7 -29
  79. package/node_modules/@murphai/assistant-cli/dist/assistant/service.d.ts.map +1 -1
  80. package/node_modules/@murphai/assistant-cli/dist/assistant/service.js.map +1 -1
  81. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/chat-controller-models.d.ts.map +1 -1
  82. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/chat-controller-models.js +1 -0
  83. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/chat-controller-models.js.map +1 -1
  84. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/ink.d.ts +2 -0
  85. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/ink.d.ts.map +1 -1
  86. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/ink.js +9 -1
  87. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/ink.js.map +1 -1
  88. package/node_modules/@murphai/assistant-cli/dist/assistant-chat-ink.d.ts +1 -1
  89. package/node_modules/@murphai/assistant-cli/dist/assistant-chat-ink.d.ts.map +1 -1
  90. package/node_modules/@murphai/assistant-cli/dist/assistant-chat-ink.js +1 -1
  91. package/node_modules/@murphai/assistant-cli/dist/assistant-chat-ink.js.map +1 -1
  92. package/node_modules/@murphai/assistant-cli/dist/assistant-daemon-client.d.ts +3 -2
  93. package/node_modules/@murphai/assistant-cli/dist/assistant-daemon-client.d.ts.map +1 -1
  94. package/node_modules/@murphai/assistant-cli/dist/assistant-daemon-client.js +7 -3
  95. package/node_modules/@murphai/assistant-cli/dist/assistant-daemon-client.js.map +1 -1
  96. package/node_modules/@murphai/assistant-cli/dist/commands/assistant.d.ts.map +1 -1
  97. package/node_modules/@murphai/assistant-cli/dist/commands/assistant.js +84 -46
  98. package/node_modules/@murphai/assistant-cli/dist/commands/assistant.js.map +1 -1
  99. package/node_modules/@murphai/assistant-cli/package.json +1 -12
  100. package/node_modules/@murphai/assistant-engine/dist/assistant/active-experiment-context.d.ts +5 -0
  101. package/node_modules/@murphai/assistant-engine/dist/assistant/active-experiment-context.d.ts.map +1 -0
  102. package/node_modules/@murphai/assistant-engine/dist/assistant/active-experiment-context.js +135 -0
  103. package/node_modules/@murphai/assistant-engine/dist/assistant/active-experiment-context.js.map +1 -0
  104. package/node_modules/@murphai/assistant-engine/dist/assistant/auto-reply-channels.d.ts +2 -0
  105. package/node_modules/@murphai/assistant-engine/dist/assistant/auto-reply-channels.d.ts.map +1 -1
  106. package/node_modules/@murphai/assistant-engine/dist/assistant/auto-reply-channels.js +7 -1
  107. package/node_modules/@murphai/assistant-engine/dist/assistant/auto-reply-channels.js.map +1 -1
  108. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/auto-reply-retry.d.ts +1 -0
  109. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/auto-reply-retry.d.ts.map +1 -1
  110. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/auto-reply-retry.js +33 -5
  111. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/auto-reply-retry.js.map +1 -1
  112. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/grouping.d.ts +4 -0
  113. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/grouping.d.ts.map +1 -1
  114. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/grouping.js +13 -14
  115. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/grouping.js.map +1 -1
  116. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/prompt-builder.d.ts +0 -1
  117. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/prompt-builder.d.ts.map +1 -1
  118. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/prompt-builder.js +1 -2
  119. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/prompt-builder.js.map +1 -1
  120. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.d.ts +4 -0
  121. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.d.ts.map +1 -1
  122. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.js +157 -84
  123. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.js.map +1 -1
  124. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/routing.d.ts.map +1 -1
  125. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/routing.js +21 -3
  126. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/routing.js.map +1 -1
  127. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.d.ts +3 -1
  128. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.d.ts.map +1 -1
  129. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.js +17 -3
  130. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.js.map +1 -1
  131. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/scanner.d.ts +2 -0
  132. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/scanner.d.ts.map +1 -1
  133. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/scanner.js +4 -0
  134. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/scanner.js.map +1 -1
  135. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.d.ts +4 -0
  136. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.d.ts.map +1 -1
  137. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.js +5 -2
  138. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.js.map +1 -1
  139. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/startup-recovery.d.ts +2 -0
  140. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/startup-recovery.d.ts.map +1 -1
  141. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/startup-recovery.js +1 -0
  142. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/startup-recovery.js.map +1 -1
  143. package/node_modules/@murphai/assistant-engine/dist/assistant/automation-state.d.ts.map +1 -1
  144. package/node_modules/@murphai/assistant-engine/dist/assistant/automation-state.js +1 -0
  145. package/node_modules/@murphai/assistant-engine/dist/assistant/automation-state.js.map +1 -1
  146. package/node_modules/@murphai/assistant-engine/dist/assistant/automation.d.ts +1 -0
  147. package/node_modules/@murphai/assistant-engine/dist/assistant/automation.d.ts.map +1 -1
  148. package/node_modules/@murphai/assistant-engine/dist/assistant/automation.js +1 -0
  149. package/node_modules/@murphai/assistant-engine/dist/assistant/automation.js.map +1 -1
  150. package/node_modules/@murphai/assistant-engine/dist/assistant/channel-adapters.d.ts +1 -1
  151. package/node_modules/@murphai/assistant-engine/dist/assistant/channel-adapters.d.ts.map +1 -1
  152. package/node_modules/@murphai/assistant-engine/dist/assistant/channel-adapters.js +1 -1
  153. package/node_modules/@murphai/assistant-engine/dist/assistant/channel-adapters.js.map +1 -1
  154. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/descriptors.d.ts.map +1 -1
  155. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/descriptors.js +121 -10
  156. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/descriptors.js.map +1 -1
  157. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/helpers.d.ts +9 -0
  158. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/helpers.d.ts.map +1 -1
  159. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/helpers.js +32 -1
  160. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/helpers.js.map +1 -1
  161. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/registry.d.ts +2 -2
  162. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/registry.d.ts.map +1 -1
  163. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/registry.js +2 -2
  164. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/registry.js.map +1 -1
  165. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/runtime.d.ts +4 -0
  166. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/runtime.d.ts.map +1 -1
  167. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/runtime.js +119 -12
  168. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/runtime.js.map +1 -1
  169. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/types.d.ts +18 -1
  170. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/types.d.ts.map +1 -1
  171. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/types.js.map +1 -1
  172. package/node_modules/@murphai/assistant-engine/dist/assistant/cli-surface-bootstrap.js +3 -0
  173. package/node_modules/@murphai/assistant-engine/dist/assistant/cli-surface-bootstrap.js.map +1 -1
  174. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-policy.d.ts +2 -2
  175. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-policy.d.ts.map +1 -1
  176. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-policy.js +44 -8
  177. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-policy.js.map +1 -1
  178. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-ref.d.ts +32 -1
  179. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-ref.d.ts.map +1 -1
  180. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-ref.js +33 -7
  181. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-ref.js.map +1 -1
  182. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/food-auto-log.d.ts +20 -0
  183. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/food-auto-log.d.ts.map +1 -0
  184. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/food-auto-log.js +117 -0
  185. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/food-auto-log.js.map +1 -0
  186. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/notification-delivery.js +1 -1
  187. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/notification-delivery.js.map +1 -1
  188. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/runtime-state.d.ts +37 -20
  189. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/runtime-state.d.ts.map +1 -1
  190. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/runtime-state.js +55 -37
  191. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/runtime-state.js.map +1 -1
  192. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.d.ts +11 -1
  193. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.d.ts.map +1 -1
  194. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.js +2 -7
  195. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.js.map +1 -1
  196. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/scheduled-log.d.ts +22 -0
  197. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/scheduled-log.d.ts.map +1 -0
  198. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/scheduled-log.js +45 -0
  199. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/scheduled-log.js.map +1 -0
  200. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/store.d.ts +13 -4
  201. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/store.d.ts.map +1 -1
  202. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/store.js +67 -3
  203. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/store.js.map +1 -1
  204. package/node_modules/@murphai/assistant-engine/dist/assistant/cron.d.ts.map +1 -1
  205. package/node_modules/@murphai/assistant-engine/dist/assistant/cron.js +532 -231
  206. package/node_modules/@murphai/assistant-engine/dist/assistant/cron.js.map +1 -1
  207. package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.d.ts +2 -2
  208. package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.d.ts.map +1 -1
  209. package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.js +8 -5
  210. package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.js.map +1 -1
  211. package/node_modules/@murphai/assistant-engine/dist/assistant/diagnostics.js.map +1 -1
  212. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.d.ts +20 -0
  213. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.d.ts.map +1 -1
  214. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.js +70 -0
  215. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.js.map +1 -1
  216. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-plan.d.ts.map +1 -1
  217. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-plan.js +1 -2
  218. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-plan.js.map +1 -1
  219. package/node_modules/@murphai/assistant-engine/dist/assistant/failover.d.ts.map +1 -1
  220. package/node_modules/@murphai/assistant-engine/dist/assistant/failover.js +14 -8
  221. package/node_modules/@murphai/assistant-engine/dist/assistant/failover.js.map +1 -1
  222. package/node_modules/@murphai/assistant-engine/dist/assistant/first-contact-welcome.d.ts +1 -1
  223. package/node_modules/@murphai/assistant-engine/dist/assistant/first-contact-welcome.d.ts.map +1 -1
  224. package/node_modules/@murphai/assistant-engine/dist/assistant/first-contact-welcome.js +2 -7
  225. package/node_modules/@murphai/assistant-engine/dist/assistant/first-contact-welcome.js.map +1 -1
  226. package/node_modules/@murphai/assistant-engine/dist/assistant/first-contact.js.map +1 -1
  227. package/node_modules/@murphai/assistant-engine/dist/assistant/food-auto-log-hooks.d.ts.map +1 -1
  228. package/node_modules/@murphai/assistant-engine/dist/assistant/food-auto-log-hooks.js +53 -46
  229. package/node_modules/@murphai/assistant-engine/dist/assistant/food-auto-log-hooks.js.map +1 -1
  230. package/node_modules/@murphai/assistant-engine/dist/assistant/issue-reporting.d.ts +33 -0
  231. package/node_modules/@murphai/assistant-engine/dist/assistant/issue-reporting.d.ts.map +1 -0
  232. package/node_modules/@murphai/assistant-engine/dist/assistant/issue-reporting.js +225 -0
  233. package/node_modules/@murphai/assistant-engine/dist/assistant/issue-reporting.js.map +1 -0
  234. package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.d.ts +1 -2
  235. package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.d.ts.map +1 -1
  236. package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.js +46 -12
  237. package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.js.map +1 -1
  238. package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.d.ts +9 -0
  239. package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.d.ts.map +1 -0
  240. package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.js +53 -0
  241. package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.js.map +1 -0
  242. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.d.ts +22 -1
  243. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.d.ts.map +1 -1
  244. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.js +248 -18
  245. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.js.map +1 -1
  246. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/dispatch-state.d.ts +33 -0
  247. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/dispatch-state.d.ts.map +1 -1
  248. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/dispatch-state.js +158 -7
  249. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/dispatch-state.js.map +1 -1
  250. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/intents.d.ts +5 -1
  251. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/intents.d.ts.map +1 -1
  252. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/intents.js +5 -0
  253. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/intents.js.map +1 -1
  254. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/retry-policy.d.ts +3 -0
  255. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/retry-policy.d.ts.map +1 -1
  256. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/retry-policy.js +16 -0
  257. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/retry-policy.js.map +1 -1
  258. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.d.ts +9 -1
  259. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.d.ts.map +1 -1
  260. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.js +68 -16
  261. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.js.map +1 -1
  262. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.d.ts +64 -4
  263. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.d.ts.map +1 -1
  264. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.js +289 -58
  265. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.js.map +1 -1
  266. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-binding.d.ts +5 -5
  267. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-binding.d.ts.map +1 -1
  268. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-binding.js +6 -11
  269. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-binding.js.map +1 -1
  270. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-catalog.d.ts +3 -3
  271. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-catalog.d.ts.map +1 -1
  272. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-catalog.js +12 -10
  273. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-catalog.js.map +1 -1
  274. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-config.d.ts +2 -2
  275. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-config.d.ts.map +1 -1
  276. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-config.js +20 -12
  277. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-config.js.map +1 -1
  278. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-state.d.ts +1 -4
  279. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-state.d.ts.map +1 -1
  280. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-state.js +2 -13
  281. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-state.js.map +1 -1
  282. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-turn-runner.d.ts +15 -2
  283. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-turn-runner.d.ts.map +1 -1
  284. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-turn-runner.js +142 -32
  285. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-turn-runner.js.map +1 -1
  286. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/catalog.js +3 -3
  287. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/catalog.js.map +1 -1
  288. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.d.ts +1 -1
  289. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.d.ts.map +1 -1
  290. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.js +95 -13
  291. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.js.map +1 -1
  292. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.d.ts.map +1 -1
  293. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.js +60 -18
  294. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.js.map +1 -1
  295. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/openai-compatible.d.ts +35 -1
  296. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/openai-compatible.d.ts.map +1 -1
  297. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/openai-compatible.js +275 -49
  298. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/openai-compatible.js.map +1 -1
  299. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/registry.d.ts +5 -5
  300. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/registry.d.ts.map +1 -1
  301. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/registry.js +18 -10
  302. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/registry.js.map +1 -1
  303. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/types.d.ts +7 -0
  304. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/types.d.ts.map +1 -1
  305. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/types.js +3 -1
  306. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/types.js.map +1 -1
  307. package/node_modules/@murphai/assistant-engine/dist/assistant/quarantine.js.map +1 -1
  308. package/node_modules/@murphai/assistant-engine/dist/assistant/redaction.d.ts.map +1 -1
  309. package/node_modules/@murphai/assistant-engine/dist/assistant/redaction.js +0 -6
  310. package/node_modules/@murphai/assistant-engine/dist/assistant/redaction.js.map +1 -1
  311. package/node_modules/@murphai/assistant-engine/dist/assistant/rich-content-routing.d.ts +2 -1
  312. package/node_modules/@murphai/assistant-engine/dist/assistant/rich-content-routing.d.ts.map +1 -1
  313. package/node_modules/@murphai/assistant-engine/dist/assistant/rich-content-routing.js +28 -12
  314. package/node_modules/@murphai/assistant-engine/dist/assistant/rich-content-routing.js.map +1 -1
  315. package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-budgets.d.ts.map +1 -1
  316. package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-budgets.js +30 -1
  317. package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-budgets.js.map +1 -1
  318. package/node_modules/@murphai/assistant-engine/dist/assistant/service-contracts.d.ts +15 -6
  319. package/node_modules/@murphai/assistant-engine/dist/assistant/service-contracts.d.ts.map +1 -1
  320. package/node_modules/@murphai/assistant-engine/dist/assistant/service-turn-routes.d.ts +1 -1
  321. package/node_modules/@murphai/assistant-engine/dist/assistant/service-turn-routes.d.ts.map +1 -1
  322. package/node_modules/@murphai/assistant-engine/dist/assistant/service-turn-routes.js +5 -0
  323. package/node_modules/@murphai/assistant-engine/dist/assistant/service-turn-routes.js.map +1 -1
  324. package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.d.ts.map +1 -1
  325. package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.js +8 -1
  326. package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.js.map +1 -1
  327. package/node_modules/@murphai/assistant-engine/dist/assistant/service.d.ts +7 -31
  328. package/node_modules/@murphai/assistant-engine/dist/assistant/service.d.ts.map +1 -1
  329. package/node_modules/@murphai/assistant-engine/dist/assistant/service.js +2 -8
  330. package/node_modules/@murphai/assistant-engine/dist/assistant/service.js.map +1 -1
  331. package/node_modules/@murphai/assistant-engine/dist/assistant/session-resolution.d.ts.map +1 -1
  332. package/node_modules/@murphai/assistant-engine/dist/assistant/session-resolution.js +38 -24
  333. package/node_modules/@murphai/assistant-engine/dist/assistant/session-resolution.js.map +1 -1
  334. package/node_modules/@murphai/assistant-engine/dist/assistant/shared.js.map +1 -1
  335. package/node_modules/@murphai/assistant-engine/dist/assistant/state-secrets.js.map +1 -1
  336. package/node_modules/@murphai/assistant-engine/dist/assistant/status.js.map +1 -1
  337. package/node_modules/@murphai/assistant-engine/dist/assistant/store/paths.d.ts +4 -1
  338. package/node_modules/@murphai/assistant-engine/dist/assistant/store/paths.d.ts.map +1 -1
  339. package/node_modules/@murphai/assistant-engine/dist/assistant/store/paths.js +38 -0
  340. package/node_modules/@murphai/assistant-engine/dist/assistant/store/paths.js.map +1 -1
  341. package/node_modules/@murphai/assistant-engine/dist/assistant/store/persistence.d.ts +6 -0
  342. package/node_modules/@murphai/assistant-engine/dist/assistant/store/persistence.d.ts.map +1 -1
  343. package/node_modules/@murphai/assistant-engine/dist/assistant/store/persistence.js +102 -12
  344. package/node_modules/@murphai/assistant-engine/dist/assistant/store/persistence.js.map +1 -1
  345. package/node_modules/@murphai/assistant-engine/dist/assistant/store/types.d.ts +1 -1
  346. package/node_modules/@murphai/assistant-engine/dist/assistant/store/types.d.ts.map +1 -1
  347. package/node_modules/@murphai/assistant-engine/dist/assistant/store.d.ts.map +1 -1
  348. package/node_modules/@murphai/assistant-engine/dist/assistant/store.js +4 -8
  349. package/node_modules/@murphai/assistant-engine/dist/assistant/store.js.map +1 -1
  350. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.d.ts +9 -1
  351. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.d.ts.map +1 -1
  352. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.js +113 -46
  353. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.js.map +1 -1
  354. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.d.ts.map +1 -1
  355. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.js +1 -14
  356. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.js.map +1 -1
  357. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-input.d.ts +60 -0
  358. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-input.d.ts.map +1 -0
  359. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-input.js +124 -0
  360. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-input.js.map +1 -0
  361. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-plan.d.ts +18 -0
  362. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-plan.d.ts.map +1 -1
  363. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-plan.js +56 -10
  364. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-plan.js.map +1 -1
  365. package/node_modules/@murphai/assistant-engine/dist/assistant/turns.d.ts.map +1 -1
  366. package/node_modules/@murphai/assistant-engine/dist/assistant/turns.js +6 -2
  367. package/node_modules/@murphai/assistant-engine/dist/assistant/turns.js.map +1 -1
  368. package/node_modules/@murphai/assistant-engine/dist/assistant/usage-attribution.d.ts +45 -0
  369. package/node_modules/@murphai/assistant-engine/dist/assistant/usage-attribution.d.ts.map +1 -0
  370. package/node_modules/@murphai/assistant-engine/dist/assistant/usage-attribution.js +136 -0
  371. package/node_modules/@murphai/assistant-engine/dist/assistant/usage-attribution.js.map +1 -0
  372. package/node_modules/@murphai/assistant-engine/dist/assistant/vault-overview.js +3 -1
  373. package/node_modules/@murphai/assistant-engine/dist/assistant/vault-overview.js.map +1 -1
  374. package/node_modules/@murphai/assistant-engine/dist/assistant/web-search/http.js +1 -1
  375. package/node_modules/@murphai/assistant-engine/dist/assistant/web-search/http.js.map +1 -1
  376. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-adapters.d.ts +3 -0
  377. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-adapters.d.ts.map +1 -0
  378. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-adapters.js +2 -0
  379. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-adapters.js.map +1 -0
  380. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/capability-definitions.d.ts +47 -349
  381. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/capability-definitions.d.ts.map +1 -1
  382. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/capability-definitions.js +12 -991
  383. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/capability-definitions.js.map +1 -1
  384. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definition-factory.d.ts +17 -0
  385. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definition-factory.d.ts.map +1 -0
  386. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definition-factory.js +75 -0
  387. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definition-factory.js.map +1 -0
  388. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definitions/inbox-promotion.d.ts +78 -0
  389. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definitions/inbox-promotion.d.ts.map +1 -0
  390. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definitions/inbox-promotion.js +95 -0
  391. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definitions/inbox-promotion.js.map +1 -0
  392. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definitions/knowledge.d.ts +25 -0
  393. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definitions/knowledge.d.ts.map +1 -0
  394. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definitions/knowledge.js +117 -0
  395. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definitions/knowledge.js.map +1 -0
  396. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definitions/outward-side-effects.d.ts +5 -0
  397. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definitions/outward-side-effects.d.ts.map +1 -0
  398. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definitions/outward-side-effects.js +109 -0
  399. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definitions/outward-side-effects.js.map +1 -0
  400. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definitions/vault-query.d.ts +82 -0
  401. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definitions/vault-query.d.ts.map +1 -0
  402. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definitions/vault-query.js +355 -0
  403. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definitions/vault-query.js.map +1 -0
  404. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definitions/vault-write.d.ts +150 -0
  405. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definitions/vault-write.d.ts.map +1 -0
  406. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definitions/vault-write.js +399 -0
  407. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definitions/vault-write.js.map +1 -0
  408. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definitions/web-read.d.ts +40 -0
  409. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definitions/web-read.d.ts.map +1 -0
  410. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definitions/web-read.js +105 -0
  411. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/definitions/web-read.js.map +1 -0
  412. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/execution-adapters.d.ts.map +1 -1
  413. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/execution-adapters.js +67 -11
  414. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-tools/execution-adapters.js.map +1 -1
  415. package/node_modules/@murphai/assistant-engine/dist/assistant-codex.d.ts +7 -0
  416. package/node_modules/@murphai/assistant-engine/dist/assistant-codex.d.ts.map +1 -1
  417. package/node_modules/@murphai/assistant-engine/dist/assistant-codex.js +75 -1
  418. package/node_modules/@murphai/assistant-engine/dist/assistant-codex.js.map +1 -1
  419. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime.d.ts +2 -0
  420. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime.d.ts.map +1 -1
  421. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime.js +2 -0
  422. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime.js.map +1 -1
  423. package/node_modules/@murphai/assistant-engine/dist/inbox-model-harness.js +1 -0
  424. package/node_modules/@murphai/assistant-engine/dist/inbox-model-harness.js.map +1 -1
  425. package/node_modules/@murphai/assistant-engine/dist/inbox-multimodal.js +5 -0
  426. package/node_modules/@murphai/assistant-engine/dist/inbox-multimodal.js.map +1 -1
  427. package/node_modules/@murphai/assistant-engine/dist/model-harness.d.ts +9 -0
  428. package/node_modules/@murphai/assistant-engine/dist/model-harness.d.ts.map +1 -1
  429. package/node_modules/@murphai/assistant-engine/dist/model-harness.js +135 -41
  430. package/node_modules/@murphai/assistant-engine/dist/model-harness.js.map +1 -1
  431. package/node_modules/@murphai/assistant-engine/dist/outbound-channel.d.ts +3 -2
  432. package/node_modules/@murphai/assistant-engine/dist/outbound-channel.d.ts.map +1 -1
  433. package/node_modules/@murphai/assistant-engine/dist/outbound-channel.js +20 -4
  434. package/node_modules/@murphai/assistant-engine/dist/outbound-channel.js.map +1 -1
  435. package/node_modules/@murphai/assistant-engine/package.json +5 -19
  436. package/node_modules/@murphai/assistantd/dist/client.js.map +1 -1
  437. package/node_modules/@murphai/assistantd/dist/http-protocol.d.ts.map +1 -1
  438. package/node_modules/@murphai/assistantd/dist/http-protocol.js +23 -5
  439. package/node_modules/@murphai/assistantd/dist/http-protocol.js.map +1 -1
  440. package/node_modules/@murphai/assistantd/dist/service.d.ts +1 -1
  441. package/node_modules/@murphai/assistantd/dist/service.d.ts.map +1 -1
  442. package/node_modules/@murphai/assistantd/dist/service.js +1 -1
  443. package/node_modules/@murphai/assistantd/dist/service.js.map +1 -1
  444. package/node_modules/@murphai/assistantd/package.json +1 -9
  445. package/node_modules/@murphai/core/dist/assessment/storage.js.map +1 -1
  446. package/node_modules/@murphai/core/dist/automation.d.ts.map +1 -1
  447. package/node_modules/@murphai/core/dist/automation.js +11 -16
  448. package/node_modules/@murphai/core/dist/automation.js.map +1 -1
  449. package/node_modules/@murphai/core/dist/bank/allergies.d.ts.map +1 -1
  450. package/node_modules/@murphai/core/dist/bank/allergies.js +4 -1
  451. package/node_modules/@murphai/core/dist/bank/allergies.js.map +1 -1
  452. package/node_modules/@murphai/core/dist/bank/conditions.d.ts.map +1 -1
  453. package/node_modules/@murphai/core/dist/bank/conditions.js +4 -1
  454. package/node_modules/@murphai/core/dist/bank/conditions.js.map +1 -1
  455. package/node_modules/@murphai/core/dist/bank/goals.d.ts.map +1 -1
  456. package/node_modules/@murphai/core/dist/bank/goals.js +4 -1
  457. package/node_modules/@murphai/core/dist/bank/goals.js.map +1 -1
  458. package/node_modules/@murphai/core/dist/bank/workout-formats.d.ts.map +1 -1
  459. package/node_modules/@murphai/core/dist/bank/workout-formats.js +18 -16
  460. package/node_modules/@murphai/core/dist/bank/workout-formats.js.map +1 -1
  461. package/node_modules/@murphai/core/dist/constants.d.ts +8 -2
  462. package/node_modules/@murphai/core/dist/constants.d.ts.map +1 -1
  463. package/node_modules/@murphai/core/dist/constants.js +3 -0
  464. package/node_modules/@murphai/core/dist/constants.js.map +1 -1
  465. package/node_modules/@murphai/core/dist/domains/events.d.ts +37 -3
  466. package/node_modules/@murphai/core/dist/domains/events.d.ts.map +1 -1
  467. package/node_modules/@murphai/core/dist/domains/events.js +239 -15
  468. package/node_modules/@murphai/core/dist/domains/events.js.map +1 -1
  469. package/node_modules/@murphai/core/dist/domains/experiments.d.ts +8 -1
  470. package/node_modules/@murphai/core/dist/domains/experiments.d.ts.map +1 -1
  471. package/node_modules/@murphai/core/dist/domains/experiments.js +13 -0
  472. package/node_modules/@murphai/core/dist/domains/experiments.js.map +1 -1
  473. package/node_modules/@murphai/core/dist/event-attachments.d.ts +3 -12
  474. package/node_modules/@murphai/core/dist/event-attachments.d.ts.map +1 -1
  475. package/node_modules/@murphai/core/dist/event-attachments.js +1 -26
  476. package/node_modules/@murphai/core/dist/event-attachments.js.map +1 -1
  477. package/node_modules/@murphai/core/dist/fs.js.map +1 -1
  478. package/node_modules/@murphai/core/dist/history/event-spine.d.ts +1 -0
  479. package/node_modules/@murphai/core/dist/history/event-spine.d.ts.map +1 -1
  480. package/node_modules/@murphai/core/dist/history/event-spine.js +1 -0
  481. package/node_modules/@murphai/core/dist/history/event-spine.js.map +1 -1
  482. package/node_modules/@murphai/core/dist/index.d.ts +6 -3
  483. package/node_modules/@murphai/core/dist/index.d.ts.map +1 -1
  484. package/node_modules/@murphai/core/dist/index.js +4 -2
  485. package/node_modules/@murphai/core/dist/index.js.map +1 -1
  486. package/node_modules/@murphai/core/dist/mutations.d.ts +7 -2
  487. package/node_modules/@murphai/core/dist/mutations.d.ts.map +1 -1
  488. package/node_modules/@murphai/core/dist/mutations.js +33 -7
  489. package/node_modules/@murphai/core/dist/mutations.js.map +1 -1
  490. package/node_modules/@murphai/core/dist/operations/canonical-write-lock.d.ts +3 -1
  491. package/node_modules/@murphai/core/dist/operations/canonical-write-lock.d.ts.map +1 -1
  492. package/node_modules/@murphai/core/dist/operations/canonical-write-lock.js +86 -66
  493. package/node_modules/@murphai/core/dist/operations/canonical-write-lock.js.map +1 -1
  494. package/node_modules/@murphai/core/dist/operations/write-batch.d.ts +1 -0
  495. package/node_modules/@murphai/core/dist/operations/write-batch.d.ts.map +1 -1
  496. package/node_modules/@murphai/core/dist/operations/write-batch.js +50 -26
  497. package/node_modules/@murphai/core/dist/operations/write-batch.js.map +1 -1
  498. package/node_modules/@murphai/core/dist/public-mutations.d.ts +3 -1
  499. package/node_modules/@murphai/core/dist/public-mutations.d.ts.map +1 -1
  500. package/node_modules/@murphai/core/dist/public-mutations.js +25 -8
  501. package/node_modules/@murphai/core/dist/public-mutations.js.map +1 -1
  502. package/node_modules/@murphai/core/dist/raw.d.ts.map +1 -1
  503. package/node_modules/@murphai/core/dist/raw.js +17 -0
  504. package/node_modules/@murphai/core/dist/raw.js.map +1 -1
  505. package/node_modules/@murphai/core/dist/scheduled-logs.d.ts +74 -0
  506. package/node_modules/@murphai/core/dist/scheduled-logs.d.ts.map +1 -0
  507. package/node_modules/@murphai/core/dist/scheduled-logs.js +488 -0
  508. package/node_modules/@murphai/core/dist/scheduled-logs.js.map +1 -0
  509. package/node_modules/@murphai/core/dist/vault-sync.d.ts +104 -0
  510. package/node_modules/@murphai/core/dist/vault-sync.d.ts.map +1 -0
  511. package/node_modules/@murphai/core/dist/vault-sync.js +702 -0
  512. package/node_modules/@murphai/core/dist/vault-sync.js.map +1 -0
  513. package/node_modules/@murphai/core/package.json +2 -6
  514. package/node_modules/@murphai/device-syncd/README.md +46 -6
  515. package/node_modules/@murphai/device-syncd/dist/client.js.map +1 -1
  516. package/node_modules/@murphai/device-syncd/dist/config/env-keys.d.ts +18 -0
  517. package/node_modules/@murphai/device-syncd/dist/config/env-keys.d.ts.map +1 -0
  518. package/node_modules/@murphai/device-syncd/dist/config/env-keys.js +38 -0
  519. package/node_modules/@murphai/device-syncd/dist/config/env-keys.js.map +1 -0
  520. package/node_modules/@murphai/device-syncd/dist/config/provider-config-helpers.d.ts +11 -0
  521. package/node_modules/@murphai/device-syncd/dist/config/provider-config-helpers.d.ts.map +1 -0
  522. package/node_modules/@murphai/device-syncd/dist/config/provider-config-helpers.js +63 -0
  523. package/node_modules/@murphai/device-syncd/dist/config/provider-config-helpers.js.map +1 -0
  524. package/node_modules/@murphai/device-syncd/dist/config/provider-configs.d.ts +17 -0
  525. package/node_modules/@murphai/device-syncd/dist/config/provider-configs.d.ts.map +1 -0
  526. package/node_modules/@murphai/device-syncd/dist/config/provider-configs.js +32 -0
  527. package/node_modules/@murphai/device-syncd/dist/config/provider-configs.js.map +1 -0
  528. package/node_modules/@murphai/device-syncd/dist/config/provider-env.d.ts +65 -0
  529. package/node_modules/@murphai/device-syncd/dist/config/provider-env.d.ts.map +1 -0
  530. package/node_modules/@murphai/device-syncd/dist/config/provider-env.js +148 -0
  531. package/node_modules/@murphai/device-syncd/dist/config/provider-env.js.map +1 -0
  532. package/node_modules/@murphai/device-syncd/dist/config/provider-factory.d.ts +9 -0
  533. package/node_modules/@murphai/device-syncd/dist/config/provider-factory.d.ts.map +1 -0
  534. package/node_modules/@murphai/device-syncd/dist/config/provider-factory.js +28 -0
  535. package/node_modules/@murphai/device-syncd/dist/config/provider-factory.js.map +1 -0
  536. package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.d.ts +64 -0
  537. package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.d.ts.map +1 -0
  538. package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.js +511 -0
  539. package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.js.map +1 -0
  540. package/node_modules/@murphai/device-syncd/dist/config/provider-types.d.ts +22 -0
  541. package/node_modules/@murphai/device-syncd/dist/config/provider-types.d.ts.map +1 -0
  542. package/node_modules/@murphai/device-syncd/dist/config/provider-types.js +2 -0
  543. package/node_modules/@murphai/device-syncd/dist/config/provider-types.js.map +1 -0
  544. package/node_modules/@murphai/device-syncd/dist/config/runtime-config.d.ts +11 -0
  545. package/node_modules/@murphai/device-syncd/dist/config/runtime-config.d.ts.map +1 -0
  546. package/node_modules/@murphai/device-syncd/dist/config/runtime-config.js +47 -0
  547. package/node_modules/@murphai/device-syncd/dist/config/runtime-config.js.map +1 -0
  548. package/node_modules/@murphai/device-syncd/dist/config/serializable-provider-configs.d.ts +7 -0
  549. package/node_modules/@murphai/device-syncd/dist/config/serializable-provider-configs.d.ts.map +1 -0
  550. package/node_modules/@murphai/device-syncd/dist/config/serializable-provider-configs.js +116 -0
  551. package/node_modules/@murphai/device-syncd/dist/config/serializable-provider-configs.js.map +1 -0
  552. package/node_modules/@murphai/device-syncd/dist/config.d.ts +11 -17
  553. package/node_modules/@murphai/device-syncd/dist/config.d.ts.map +1 -1
  554. package/node_modules/@murphai/device-syncd/dist/config.js +24 -244
  555. package/node_modules/@murphai/device-syncd/dist/config.js.map +1 -1
  556. package/node_modules/@murphai/device-syncd/dist/hosted-hints.d.ts.map +1 -1
  557. package/node_modules/@murphai/device-syncd/dist/hosted-hints.js +2 -83
  558. package/node_modules/@murphai/device-syncd/dist/hosted-hints.js.map +1 -1
  559. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.d.ts +0 -1
  560. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.d.ts.map +1 -1
  561. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.js +41 -34
  562. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.js.map +1 -1
  563. package/node_modules/@murphai/device-syncd/dist/http.d.ts.map +1 -1
  564. package/node_modules/@murphai/device-syncd/dist/http.js +46 -9
  565. package/node_modules/@murphai/device-syncd/dist/http.js.map +1 -1
  566. package/node_modules/@murphai/device-syncd/dist/index.d.ts +8 -5
  567. package/node_modules/@murphai/device-syncd/dist/index.d.ts.map +1 -1
  568. package/node_modules/@murphai/device-syncd/dist/index.js +5 -3
  569. package/node_modules/@murphai/device-syncd/dist/index.js.map +1 -1
  570. package/node_modules/@murphai/device-syncd/dist/metadata.d.ts +4 -0
  571. package/node_modules/@murphai/device-syncd/dist/metadata.d.ts.map +1 -0
  572. package/node_modules/@murphai/device-syncd/dist/metadata.js +61 -0
  573. package/node_modules/@murphai/device-syncd/dist/metadata.js.map +1 -0
  574. package/node_modules/@murphai/device-syncd/dist/provider-label.d.ts +3 -0
  575. package/node_modules/@murphai/device-syncd/dist/provider-label.d.ts.map +1 -0
  576. package/node_modules/@murphai/device-syncd/dist/provider-label.js +19 -0
  577. package/node_modules/@murphai/device-syncd/dist/provider-label.js.map +1 -0
  578. package/node_modules/@murphai/device-syncd/dist/providers/garmin.js +5 -2
  579. package/node_modules/@murphai/device-syncd/dist/providers/garmin.js.map +1 -1
  580. package/node_modules/@murphai/device-syncd/dist/providers/oura.d.ts +5 -3
  581. package/node_modules/@murphai/device-syncd/dist/providers/oura.d.ts.map +1 -1
  582. package/node_modules/@murphai/device-syncd/dist/providers/oura.js +27 -12
  583. package/node_modules/@murphai/device-syncd/dist/providers/oura.js.map +1 -1
  584. package/node_modules/@murphai/device-syncd/dist/providers/shared-oauth.d.ts +2 -0
  585. package/node_modules/@murphai/device-syncd/dist/providers/shared-oauth.d.ts.map +1 -1
  586. package/node_modules/@murphai/device-syncd/dist/providers/shared-oauth.js +9 -9
  587. package/node_modules/@murphai/device-syncd/dist/providers/shared-oauth.js.map +1 -1
  588. package/node_modules/@murphai/device-syncd/dist/providers/strava-webhooks.d.ts +32 -0
  589. package/node_modules/@murphai/device-syncd/dist/providers/strava-webhooks.d.ts.map +1 -0
  590. package/node_modules/@murphai/device-syncd/dist/providers/strava-webhooks.js +189 -0
  591. package/node_modules/@murphai/device-syncd/dist/providers/strava-webhooks.js.map +1 -0
  592. package/node_modules/@murphai/device-syncd/dist/providers/strava.d.ts +21 -0
  593. package/node_modules/@murphai/device-syncd/dist/providers/strava.d.ts.map +1 -0
  594. package/node_modules/@murphai/device-syncd/dist/providers/strava.js +667 -0
  595. package/node_modules/@murphai/device-syncd/dist/providers/strava.js.map +1 -0
  596. package/node_modules/@murphai/device-syncd/dist/providers/whoop.d.ts.map +1 -1
  597. package/node_modules/@murphai/device-syncd/dist/providers/whoop.js +2 -8
  598. package/node_modules/@murphai/device-syncd/dist/providers/whoop.js.map +1 -1
  599. package/node_modules/@murphai/device-syncd/dist/public-ingress.d.ts +4 -2
  600. package/node_modules/@murphai/device-syncd/dist/public-ingress.d.ts.map +1 -1
  601. package/node_modules/@murphai/device-syncd/dist/public-ingress.js +15 -10
  602. package/node_modules/@murphai/device-syncd/dist/public-ingress.js.map +1 -1
  603. package/node_modules/@murphai/device-syncd/dist/runtime-config.d.ts +3 -0
  604. package/node_modules/@murphai/device-syncd/dist/runtime-config.d.ts.map +1 -0
  605. package/node_modules/@murphai/device-syncd/dist/runtime-config.js +2 -0
  606. package/node_modules/@murphai/device-syncd/dist/runtime-config.js.map +1 -0
  607. package/node_modules/@murphai/device-syncd/dist/service.d.ts.map +1 -1
  608. package/node_modules/@murphai/device-syncd/dist/service.js +60 -18
  609. package/node_modules/@murphai/device-syncd/dist/service.js.map +1 -1
  610. package/node_modules/@murphai/device-syncd/dist/shared.d.ts +2 -3
  611. package/node_modules/@murphai/device-syncd/dist/shared.d.ts.map +1 -1
  612. package/node_modules/@murphai/device-syncd/dist/shared.js +10 -59
  613. package/node_modules/@murphai/device-syncd/dist/shared.js.map +1 -1
  614. package/node_modules/@murphai/device-syncd/dist/store/jobs.d.ts +9 -0
  615. package/node_modules/@murphai/device-syncd/dist/store/jobs.d.ts.map +1 -1
  616. package/node_modules/@murphai/device-syncd/dist/store/jobs.js +35 -0
  617. package/node_modules/@murphai/device-syncd/dist/store/jobs.js.map +1 -1
  618. package/node_modules/@murphai/device-syncd/dist/store/schema.d.ts +0 -1
  619. package/node_modules/@murphai/device-syncd/dist/store/schema.d.ts.map +1 -1
  620. package/node_modules/@murphai/device-syncd/dist/store/schema.js +0 -7
  621. package/node_modules/@murphai/device-syncd/dist/store/schema.js.map +1 -1
  622. package/node_modules/@murphai/device-syncd/dist/store.d.ts +1 -0
  623. package/node_modules/@murphai/device-syncd/dist/store.d.ts.map +1 -1
  624. package/node_modules/@murphai/device-syncd/dist/store.js +115 -18
  625. package/node_modules/@murphai/device-syncd/dist/store.js.map +1 -1
  626. package/node_modules/@murphai/device-syncd/dist/types.d.ts +12 -5
  627. package/node_modules/@murphai/device-syncd/dist/types.d.ts.map +1 -1
  628. package/node_modules/@murphai/device-syncd/dist/webhook-verification.d.ts +7 -10
  629. package/node_modules/@murphai/device-syncd/dist/webhook-verification.d.ts.map +1 -1
  630. package/node_modules/@murphai/device-syncd/dist/webhook-verification.js +26 -13
  631. package/node_modules/@murphai/device-syncd/dist/webhook-verification.js.map +1 -1
  632. package/node_modules/@murphai/device-syncd/package.json +13 -5
  633. package/node_modules/@murphai/gateway-local/dist/store/permissions.d.ts.map +1 -1
  634. package/node_modules/@murphai/gateway-local/dist/store/permissions.js +39 -7
  635. package/node_modules/@murphai/gateway-local/dist/store/permissions.js.map +1 -1
  636. package/node_modules/@murphai/gateway-local/dist/store/source-sync.d.ts.map +1 -1
  637. package/node_modules/@murphai/gateway-local/dist/store/source-sync.js +130 -8
  638. package/node_modules/@murphai/gateway-local/dist/store/source-sync.js.map +1 -1
  639. package/node_modules/@murphai/gateway-local/package.json +1 -6
  640. package/node_modules/@murphai/importers/README.md +9 -1
  641. package/node_modules/@murphai/importers/dist/core-port.d.ts +14 -4
  642. package/node_modules/@murphai/importers/dist/core-port.d.ts.map +1 -1
  643. package/node_modules/@murphai/importers/dist/core-port.js.map +1 -1
  644. package/node_modules/@murphai/importers/dist/create-importers.d.ts +1 -1
  645. package/node_modules/@murphai/importers/dist/csv-sample-import-planner.d.ts +79 -0
  646. package/node_modules/@murphai/importers/dist/csv-sample-import-planner.d.ts.map +1 -0
  647. package/node_modules/@murphai/importers/dist/csv-sample-import-planner.js +576 -0
  648. package/node_modules/@murphai/importers/dist/csv-sample-import-planner.js.map +1 -0
  649. package/node_modules/@murphai/importers/dist/csv-sample-importer.d.ts +4 -16
  650. package/node_modules/@murphai/importers/dist/csv-sample-importer.d.ts.map +1 -1
  651. package/node_modules/@murphai/importers/dist/csv-sample-importer.js +91 -143
  652. package/node_modules/@murphai/importers/dist/csv-sample-importer.js.map +1 -1
  653. package/node_modules/@murphai/importers/dist/device-providers/canonical-wearable-records.d.ts +68 -0
  654. package/node_modules/@murphai/importers/dist/device-providers/canonical-wearable-records.d.ts.map +1 -0
  655. package/node_modules/@murphai/importers/dist/device-providers/canonical-wearable-records.js +261 -0
  656. package/node_modules/@murphai/importers/dist/device-providers/canonical-wearable-records.js.map +1 -0
  657. package/node_modules/@murphai/importers/dist/device-providers/defaults.d.ts +2 -2
  658. package/node_modules/@murphai/importers/dist/device-providers/defaults.d.ts.map +1 -1
  659. package/node_modules/@murphai/importers/dist/device-providers/defaults.js +4 -2
  660. package/node_modules/@murphai/importers/dist/device-providers/defaults.js.map +1 -1
  661. package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.d.ts +16 -0
  662. package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.d.ts.map +1 -1
  663. package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.js +114 -1
  664. package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.js.map +1 -1
  665. package/node_modules/@murphai/importers/dist/device-providers/index.d.ts +9 -2
  666. package/node_modules/@murphai/importers/dist/device-providers/index.d.ts.map +1 -1
  667. package/node_modules/@murphai/importers/dist/device-providers/index.js +5 -1
  668. package/node_modules/@murphai/importers/dist/device-providers/index.js.map +1 -1
  669. package/node_modules/@murphai/importers/dist/device-providers/metric-catalog.d.ts +48 -0
  670. package/node_modules/@murphai/importers/dist/device-providers/metric-catalog.d.ts.map +1 -0
  671. package/node_modules/@murphai/importers/dist/device-providers/metric-catalog.js +104 -0
  672. package/node_modules/@murphai/importers/dist/device-providers/metric-catalog.js.map +1 -0
  673. package/node_modules/@murphai/importers/dist/device-providers/provider-descriptors.d.ts +93 -0
  674. package/node_modules/@murphai/importers/dist/device-providers/provider-descriptors.d.ts.map +1 -1
  675. package/node_modules/@murphai/importers/dist/device-providers/provider-descriptors.js +49 -0
  676. package/node_modules/@murphai/importers/dist/device-providers/provider-descriptors.js.map +1 -1
  677. package/node_modules/@murphai/importers/dist/device-providers/raw-ingest-envelope.d.ts +47 -0
  678. package/node_modules/@murphai/importers/dist/device-providers/raw-ingest-envelope.d.ts.map +1 -0
  679. package/node_modules/@murphai/importers/dist/device-providers/raw-ingest-envelope.js +62 -0
  680. package/node_modules/@murphai/importers/dist/device-providers/raw-ingest-envelope.js.map +1 -0
  681. package/node_modules/@murphai/importers/dist/device-providers/strava.d.ts +12 -0
  682. package/node_modules/@murphai/importers/dist/device-providers/strava.d.ts.map +1 -0
  683. package/node_modules/@murphai/importers/dist/device-providers/strava.js +290 -0
  684. package/node_modules/@murphai/importers/dist/device-providers/strava.js.map +1 -0
  685. package/node_modules/@murphai/importers/dist/device-providers/types.d.ts +19 -1
  686. package/node_modules/@murphai/importers/dist/device-providers/types.d.ts.map +1 -1
  687. package/node_modules/@murphai/importers/dist/document-importer.d.ts +2 -1
  688. package/node_modules/@murphai/importers/dist/document-importer.d.ts.map +1 -1
  689. package/node_modules/@murphai/importers/dist/document-importer.js +3 -2
  690. package/node_modules/@murphai/importers/dist/document-importer.js.map +1 -1
  691. package/node_modules/@murphai/importers/dist/index.d.ts +1 -0
  692. package/node_modules/@murphai/importers/dist/index.d.ts.map +1 -1
  693. package/node_modules/@murphai/importers/dist/index.js.map +1 -1
  694. package/node_modules/@murphai/importers/dist/meal-importer.d.ts +5 -1
  695. package/node_modules/@murphai/importers/dist/meal-importer.d.ts.map +1 -1
  696. package/node_modules/@murphai/importers/dist/meal-importer.js +29 -4
  697. package/node_modules/@murphai/importers/dist/meal-importer.js.map +1 -1
  698. package/node_modules/@murphai/importers/dist/shared.d.ts +2 -0
  699. package/node_modules/@murphai/importers/dist/shared.d.ts.map +1 -1
  700. package/node_modules/@murphai/importers/dist/shared.js +4 -1
  701. package/node_modules/@murphai/importers/dist/shared.js.map +1 -1
  702. package/node_modules/@murphai/importers/package.json +16 -6
  703. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor.d.ts.map +1 -1
  704. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor.js +0 -7
  705. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor.js.map +1 -1
  706. package/node_modules/@murphai/inbox-services/dist/inbox-app/promotions.d.ts.map +1 -1
  707. package/node_modules/@murphai/inbox-services/dist/inbox-app/promotions.js +5 -3
  708. package/node_modules/@murphai/inbox-services/dist/inbox-app/promotions.js.map +1 -1
  709. package/node_modules/@murphai/inbox-services/dist/inbox-app/reads.d.ts.map +1 -1
  710. package/node_modules/@murphai/inbox-services/dist/inbox-app/reads.js +3 -0
  711. package/node_modules/@murphai/inbox-services/dist/inbox-app/reads.js.map +1 -1
  712. package/node_modules/@murphai/inbox-services/dist/inbox-app/runtime.js.map +1 -1
  713. package/node_modules/@murphai/inbox-services/dist/inbox-app/types.d.ts +10 -3
  714. package/node_modules/@murphai/inbox-services/dist/inbox-app/types.d.ts.map +1 -1
  715. package/node_modules/@murphai/inbox-services/dist/inbox-app/types.js.map +1 -1
  716. package/node_modules/@murphai/inbox-services/dist/inbox-services/parser.d.ts.map +1 -1
  717. package/node_modules/@murphai/inbox-services/dist/inbox-services/parser.js +0 -2
  718. package/node_modules/@murphai/inbox-services/dist/inbox-services/parser.js.map +1 -1
  719. package/node_modules/@murphai/inbox-services/dist/inbox-services/promotions.d.ts +1 -6
  720. package/node_modules/@murphai/inbox-services/dist/inbox-services/promotions.d.ts.map +1 -1
  721. package/node_modules/@murphai/inbox-services/dist/inbox-services/promotions.js +31 -12
  722. package/node_modules/@murphai/inbox-services/dist/inbox-services/promotions.js.map +1 -1
  723. package/node_modules/@murphai/inbox-services/dist/inbox-services/query.d.ts +1 -0
  724. package/node_modules/@murphai/inbox-services/dist/inbox-services/query.d.ts.map +1 -1
  725. package/node_modules/@murphai/inbox-services/dist/inbox-services/query.js +1 -0
  726. package/node_modules/@murphai/inbox-services/dist/inbox-services/query.js.map +1 -1
  727. package/node_modules/@murphai/inbox-services/dist/inbox-services/shared.d.ts.map +1 -1
  728. package/node_modules/@murphai/inbox-services/dist/inbox-services/shared.js +1 -0
  729. package/node_modules/@murphai/inbox-services/dist/inbox-services/shared.js.map +1 -1
  730. package/node_modules/@murphai/inbox-services/package.json +1 -12
  731. package/node_modules/@murphai/inboxd/dist/connectors/email/connector.js.map +1 -1
  732. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize-parsed.js +0 -1
  733. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize-parsed.js.map +1 -1
  734. package/node_modules/@murphai/inboxd/dist/connectors/hosted-conversation.d.ts +12 -0
  735. package/node_modules/@murphai/inboxd/dist/connectors/hosted-conversation.d.ts.map +1 -0
  736. package/node_modules/@murphai/inboxd/dist/connectors/hosted-conversation.js +17 -0
  737. package/node_modules/@murphai/inboxd/dist/connectors/hosted-conversation.js.map +1 -0
  738. package/node_modules/@murphai/inboxd/dist/connectors/linq/normalize.d.ts +29 -0
  739. package/node_modules/@murphai/inboxd/dist/connectors/linq/normalize.d.ts.map +1 -1
  740. package/node_modules/@murphai/inboxd/dist/connectors/linq/normalize.js +116 -3
  741. package/node_modules/@murphai/inboxd/dist/connectors/linq/normalize.js.map +1 -1
  742. package/node_modules/@murphai/inboxd/dist/connectors/telegram/connector.d.ts.map +1 -1
  743. package/node_modules/@murphai/inboxd/dist/connectors/telegram/connector.js +97 -4
  744. package/node_modules/@murphai/inboxd/dist/connectors/telegram/connector.js.map +1 -1
  745. package/node_modules/@murphai/inboxd/dist/contracts/search.d.ts +1 -0
  746. package/node_modules/@murphai/inboxd/dist/contracts/search.d.ts.map +1 -1
  747. package/node_modules/@murphai/inboxd/dist/index.d.ts +2 -2
  748. package/node_modules/@murphai/inboxd/dist/index.d.ts.map +1 -1
  749. package/node_modules/@murphai/inboxd/dist/index.js +1 -1
  750. package/node_modules/@murphai/inboxd/dist/index.js.map +1 -1
  751. package/node_modules/@murphai/inboxd/dist/indexing/persist/canonical-records.d.ts +1 -23
  752. package/node_modules/@murphai/inboxd/dist/indexing/persist/canonical-records.d.ts.map +1 -1
  753. package/node_modules/@murphai/inboxd/dist/indexing/persist/canonical-records.js +1 -66
  754. package/node_modules/@murphai/inboxd/dist/indexing/persist/canonical-records.js.map +1 -1
  755. package/node_modules/@murphai/inboxd/dist/kernel/pipeline.d.ts.map +1 -1
  756. package/node_modules/@murphai/inboxd/dist/kernel/pipeline.js +36 -0
  757. package/node_modules/@murphai/inboxd/dist/kernel/pipeline.js.map +1 -1
  758. package/node_modules/@murphai/inboxd/dist/kernel/sqlite/parse-jobs.d.ts.map +1 -1
  759. package/node_modules/@murphai/inboxd/dist/kernel/sqlite/parse-jobs.js +1 -0
  760. package/node_modules/@murphai/inboxd/dist/kernel/sqlite/parse-jobs.js.map +1 -1
  761. package/node_modules/@murphai/inboxd/dist/kernel/sqlite.d.ts.map +1 -1
  762. package/node_modules/@murphai/inboxd/dist/kernel/sqlite.js +40 -4
  763. package/node_modules/@murphai/inboxd/dist/kernel/sqlite.js.map +1 -1
  764. package/node_modules/@murphai/inboxd/package.json +5 -9
  765. package/node_modules/@murphai/messaging-ingress/package.json +1 -3
  766. package/node_modules/@murphai/operator-config/dist/assistant/hosted-config.d.ts +26 -16
  767. package/node_modules/@murphai/operator-config/dist/assistant/hosted-config.d.ts.map +1 -1
  768. package/node_modules/@murphai/operator-config/dist/assistant/hosted-config.js +2 -3
  769. package/node_modules/@murphai/operator-config/dist/assistant/hosted-config.js.map +1 -1
  770. package/node_modules/@murphai/operator-config/dist/assistant/provider-config.d.ts +71 -15
  771. package/node_modules/@murphai/operator-config/dist/assistant/provider-config.d.ts.map +1 -1
  772. package/node_modules/@murphai/operator-config/dist/assistant/provider-config.js +267 -109
  773. package/node_modules/@murphai/operator-config/dist/assistant/provider-config.js.map +1 -1
  774. package/node_modules/@murphai/operator-config/dist/assistant/target-runtime.d.ts +43 -0
  775. package/node_modules/@murphai/operator-config/dist/assistant/target-runtime.d.ts.map +1 -1
  776. package/node_modules/@murphai/operator-config/dist/assistant/target-runtime.js +74 -18
  777. package/node_modules/@murphai/operator-config/dist/assistant/target-runtime.js.map +1 -1
  778. package/node_modules/@murphai/operator-config/dist/assistant-backend.d.ts +5 -4
  779. package/node_modules/@murphai/operator-config/dist/assistant-backend.d.ts.map +1 -1
  780. package/node_modules/@murphai/operator-config/dist/assistant-backend.js +28 -18
  781. package/node_modules/@murphai/operator-config/dist/assistant-backend.js.map +1 -1
  782. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.d.ts +144 -486
  783. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.d.ts.map +1 -1
  784. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.js +38 -44
  785. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.js.map +1 -1
  786. package/node_modules/@murphai/operator-config/dist/command-helpers.d.ts +6 -0
  787. package/node_modules/@murphai/operator-config/dist/command-helpers.d.ts.map +1 -1
  788. package/node_modules/@murphai/operator-config/dist/command-helpers.js +77 -1
  789. package/node_modules/@murphai/operator-config/dist/command-helpers.js.map +1 -1
  790. package/node_modules/@murphai/operator-config/dist/device-cli-contracts.d.ts +5 -0
  791. package/node_modules/@murphai/operator-config/dist/device-cli-contracts.d.ts.map +1 -1
  792. package/node_modules/@murphai/operator-config/dist/device-cli-contracts.js +21 -4
  793. package/node_modules/@murphai/operator-config/dist/device-cli-contracts.js.map +1 -1
  794. package/node_modules/@murphai/operator-config/dist/device-sync-client.d.ts.map +1 -1
  795. package/node_modules/@murphai/operator-config/dist/device-sync-client.js +26 -1
  796. package/node_modules/@murphai/operator-config/dist/device-sync-client.js.map +1 -1
  797. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config-constants.d.ts +16 -0
  798. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config-constants.d.ts.map +1 -0
  799. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config-constants.js +56 -0
  800. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config-constants.js.map +1 -0
  801. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config.d.ts +2 -14
  802. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config.d.ts.map +1 -1
  803. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config.js +89 -54
  804. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config.js.map +1 -1
  805. package/node_modules/@murphai/operator-config/dist/http-json-retry.js.map +1 -1
  806. package/node_modules/@murphai/operator-config/dist/http-retry.d.ts +5 -0
  807. package/node_modules/@murphai/operator-config/dist/http-retry.d.ts.map +1 -1
  808. package/node_modules/@murphai/operator-config/dist/http-retry.js +17 -0
  809. package/node_modules/@murphai/operator-config/dist/http-retry.js.map +1 -1
  810. package/node_modules/@murphai/operator-config/dist/inbox-cli-contracts.d.ts +3 -60
  811. package/node_modules/@murphai/operator-config/dist/inbox-cli-contracts.d.ts.map +1 -1
  812. package/node_modules/@murphai/operator-config/dist/inbox-cli-contracts.js +2 -1
  813. package/node_modules/@murphai/operator-config/dist/inbox-cli-contracts.js.map +1 -1
  814. package/node_modules/@murphai/operator-config/dist/linq-runtime.d.ts.map +1 -1
  815. package/node_modules/@murphai/operator-config/dist/linq-runtime.js +134 -51
  816. package/node_modules/@murphai/operator-config/dist/linq-runtime.js.map +1 -1
  817. package/node_modules/@murphai/operator-config/dist/operator-config/cli-vault-defaults.d.ts.map +1 -1
  818. package/node_modules/@murphai/operator-config/dist/operator-config/cli-vault-defaults.js +11 -3
  819. package/node_modules/@murphai/operator-config/dist/operator-config/cli-vault-defaults.js.map +1 -1
  820. package/node_modules/@murphai/operator-config/dist/operator-config/self-delivery-targets.d.ts +2 -2
  821. package/node_modules/@murphai/operator-config/dist/operator-config/self-delivery-targets.d.ts.map +1 -1
  822. package/node_modules/@murphai/operator-config/dist/operator-config/self-delivery-targets.js +4 -4
  823. package/node_modules/@murphai/operator-config/dist/operator-config/self-delivery-targets.js.map +1 -1
  824. package/node_modules/@murphai/operator-config/dist/operator-config.d.ts +7 -5
  825. package/node_modules/@murphai/operator-config/dist/operator-config.d.ts.map +1 -1
  826. package/node_modules/@murphai/operator-config/dist/operator-config.js.map +1 -1
  827. package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.d.ts +5 -32
  828. package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.d.ts.map +1 -1
  829. package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.js +12 -10
  830. package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.js.map +1 -1
  831. package/node_modules/@murphai/operator-config/dist/setup-runtime-env.d.ts +1 -0
  832. package/node_modules/@murphai/operator-config/dist/setup-runtime-env.d.ts.map +1 -1
  833. package/node_modules/@murphai/operator-config/dist/setup-runtime-env.js +50 -3
  834. package/node_modules/@murphai/operator-config/dist/setup-runtime-env.js.map +1 -1
  835. package/node_modules/@murphai/operator-config/dist/telegram-runtime.d.ts +1 -0
  836. package/node_modules/@murphai/operator-config/dist/telegram-runtime.d.ts.map +1 -1
  837. package/node_modules/@murphai/operator-config/dist/telegram-runtime.js +25 -13
  838. package/node_modules/@murphai/operator-config/dist/telegram-runtime.js.map +1 -1
  839. package/node_modules/@murphai/operator-config/dist/text/shared.js.map +1 -1
  840. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.d.ts +167 -25
  841. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.d.ts.map +1 -1
  842. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.js +73 -7
  843. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.js.map +1 -1
  844. package/node_modules/@murphai/operator-config/package.json +6 -10
  845. package/node_modules/@murphai/parsers/README.md +1 -1
  846. package/node_modules/@murphai/parsers/dist/adapters/zxing-wasm.d.ts +36 -0
  847. package/node_modules/@murphai/parsers/dist/adapters/zxing-wasm.d.ts.map +1 -0
  848. package/node_modules/@murphai/parsers/dist/adapters/zxing-wasm.js +152 -0
  849. package/node_modules/@murphai/parsers/dist/adapters/zxing-wasm.js.map +1 -0
  850. package/node_modules/@murphai/parsers/dist/index.d.ts +4 -4
  851. package/node_modules/@murphai/parsers/dist/index.d.ts.map +1 -1
  852. package/node_modules/@murphai/parsers/dist/index.js +3 -3
  853. package/node_modules/@murphai/parsers/dist/index.js.map +1 -1
  854. package/node_modules/@murphai/parsers/dist/toolchain/config.d.ts +1 -1
  855. package/node_modules/@murphai/parsers/dist/toolchain/config.d.ts.map +1 -1
  856. package/node_modules/@murphai/parsers/dist/toolchain/config.js +0 -1
  857. package/node_modules/@murphai/parsers/dist/toolchain/config.js.map +1 -1
  858. package/node_modules/@murphai/parsers/dist/toolchain/discover.d.ts.map +1 -1
  859. package/node_modules/@murphai/parsers/dist/toolchain/discover.js +2 -11
  860. package/node_modules/@murphai/parsers/dist/toolchain/discover.js.map +1 -1
  861. package/node_modules/@murphai/parsers/package.json +1 -5
  862. package/node_modules/@murphai/query/dist/automation.d.ts.map +1 -1
  863. package/node_modules/@murphai/query/dist/automation.js +7 -9
  864. package/node_modules/@murphai/query/dist/automation.js.map +1 -1
  865. package/node_modules/@murphai/query/dist/browser-replica.d.ts +266 -0
  866. package/node_modules/@murphai/query/dist/browser-replica.d.ts.map +1 -0
  867. package/node_modules/@murphai/query/dist/browser-replica.js +986 -0
  868. package/node_modules/@murphai/query/dist/browser-replica.js.map +1 -0
  869. package/node_modules/@murphai/query/dist/browser.d.ts +12 -0
  870. package/node_modules/@murphai/query/dist/browser.d.ts.map +1 -0
  871. package/node_modules/@murphai/query/dist/browser.js +6 -0
  872. package/node_modules/@murphai/query/dist/browser.js.map +1 -0
  873. package/node_modules/@murphai/query/dist/experiments.d.ts +112 -0
  874. package/node_modules/@murphai/query/dist/experiments.d.ts.map +1 -0
  875. package/node_modules/@murphai/query/dist/experiments.js +663 -0
  876. package/node_modules/@murphai/query/dist/experiments.js.map +1 -0
  877. package/node_modules/@murphai/query/dist/health/loaders.js.map +1 -1
  878. package/node_modules/@murphai/query/dist/health/projectors/history.d.ts +1 -1
  879. package/node_modules/@murphai/query/dist/health/supplements.d.ts.map +1 -1
  880. package/node_modules/@murphai/query/dist/health/supplements.js +1 -17
  881. package/node_modules/@murphai/query/dist/health/supplements.js.map +1 -1
  882. package/node_modules/@murphai/query/dist/health-library.d.ts +7 -1
  883. package/node_modules/@murphai/query/dist/health-library.d.ts.map +1 -1
  884. package/node_modules/@murphai/query/dist/health-library.js +18 -11
  885. package/node_modules/@murphai/query/dist/health-library.js.map +1 -1
  886. package/node_modules/@murphai/query/dist/index.d.ts +12 -5
  887. package/node_modules/@murphai/query/dist/index.d.ts.map +1 -1
  888. package/node_modules/@murphai/query/dist/index.js +8 -4
  889. package/node_modules/@murphai/query/dist/index.js.map +1 -1
  890. package/node_modules/@murphai/query/dist/model.d.ts +2 -133
  891. package/node_modules/@murphai/query/dist/model.d.ts.map +1 -1
  892. package/node_modules/@murphai/query/dist/model.js +2 -332
  893. package/node_modules/@murphai/query/dist/model.js.map +1 -1
  894. package/node_modules/@murphai/query/dist/overview.d.ts +20 -2
  895. package/node_modules/@murphai/query/dist/overview.d.ts.map +1 -1
  896. package/node_modules/@murphai/query/dist/overview.js +55 -30
  897. package/node_modules/@murphai/query/dist/overview.js.map +1 -1
  898. package/node_modules/@murphai/query/dist/query-projection.d.ts.map +1 -1
  899. package/node_modules/@murphai/query/dist/query-projection.js +72 -5
  900. package/node_modules/@murphai/query/dist/query-projection.js.map +1 -1
  901. package/node_modules/@murphai/query/dist/query-record-data.d.ts +2 -0
  902. package/node_modules/@murphai/query/dist/query-record-data.d.ts.map +1 -0
  903. package/node_modules/@murphai/query/dist/query-record-data.js +2 -0
  904. package/node_modules/@murphai/query/dist/query-record-data.js.map +1 -0
  905. package/node_modules/@murphai/query/dist/read-model.d.ts +132 -0
  906. package/node_modules/@murphai/query/dist/read-model.d.ts.map +1 -0
  907. package/node_modules/@murphai/query/dist/read-model.js +315 -0
  908. package/node_modules/@murphai/query/dist/read-model.js.map +1 -0
  909. package/node_modules/@murphai/query/dist/scheduled-logs.d.ts +28 -0
  910. package/node_modules/@murphai/query/dist/scheduled-logs.d.ts.map +1 -0
  911. package/node_modules/@murphai/query/dist/scheduled-logs.js +126 -0
  912. package/node_modules/@murphai/query/dist/scheduled-logs.js.map +1 -0
  913. package/node_modules/@murphai/query/dist/search.d.ts +1 -1
  914. package/node_modules/@murphai/query/dist/search.d.ts.map +1 -1
  915. package/node_modules/@murphai/query/dist/summaries.d.ts +2 -1
  916. package/node_modules/@murphai/query/dist/summaries.d.ts.map +1 -1
  917. package/node_modules/@murphai/query/dist/summaries.js +2 -0
  918. package/node_modules/@murphai/query/dist/summaries.js.map +1 -1
  919. package/node_modules/@murphai/query/dist/timeline.d.ts +1 -1
  920. package/node_modules/@murphai/query/dist/timeline.d.ts.map +1 -1
  921. package/node_modules/@murphai/query/dist/timeline.js +1 -1
  922. package/node_modules/@murphai/query/dist/timeline.js.map +1 -1
  923. package/node_modules/@murphai/query/dist/vault-reader.d.ts +4 -0
  924. package/node_modules/@murphai/query/dist/vault-reader.d.ts.map +1 -0
  925. package/node_modules/@murphai/query/dist/vault-reader.js +20 -0
  926. package/node_modules/@murphai/query/dist/vault-reader.js.map +1 -0
  927. package/node_modules/@murphai/query/dist/vault-source.d.ts +2 -1
  928. package/node_modules/@murphai/query/dist/vault-source.d.ts.map +1 -1
  929. package/node_modules/@murphai/query/dist/vault-source.js.map +1 -1
  930. package/node_modules/@murphai/query/dist/wearables/candidates.d.ts +1 -1
  931. package/node_modules/@murphai/query/dist/wearables/candidates.d.ts.map +1 -1
  932. package/node_modules/@murphai/query/dist/wearables/candidates.js +134 -25
  933. package/node_modules/@murphai/query/dist/wearables/candidates.js.map +1 -1
  934. package/node_modules/@murphai/query/dist/wearables/canonical-records.d.ts +4 -0
  935. package/node_modules/@murphai/query/dist/wearables/canonical-records.d.ts.map +1 -0
  936. package/node_modules/@murphai/query/dist/wearables/canonical-records.js +155 -0
  937. package/node_modules/@murphai/query/dist/wearables/canonical-records.js.map +1 -0
  938. package/node_modules/@murphai/query/dist/wearables/provider-policy.d.ts.map +1 -1
  939. package/node_modules/@murphai/query/dist/wearables/provider-policy.js +9 -54
  940. package/node_modules/@murphai/query/dist/wearables/provider-policy.js.map +1 -1
  941. package/node_modules/@murphai/query/dist/wearables/shared.js +1 -1
  942. package/node_modules/@murphai/query/dist/wearables/shared.js.map +1 -1
  943. package/node_modules/@murphai/query/dist/wearables/types.d.ts +71 -6
  944. package/node_modules/@murphai/query/dist/wearables/types.d.ts.map +1 -1
  945. package/node_modules/@murphai/query/dist/wearables/types.js.map +1 -1
  946. package/node_modules/@murphai/query/dist/wearables.d.ts +8 -3
  947. package/node_modules/@murphai/query/dist/wearables.d.ts.map +1 -1
  948. package/node_modules/@murphai/query/dist/wearables.js +295 -0
  949. package/node_modules/@murphai/query/dist/wearables.js.map +1 -1
  950. package/node_modules/@murphai/query/package.json +6 -7
  951. package/node_modules/@murphai/runtime-state/README.md +2 -1
  952. package/node_modules/@murphai/runtime-state/dist/assistant-local-state-descriptors.d.ts.map +1 -1
  953. package/node_modules/@murphai/runtime-state/dist/assistant-local-state-descriptors.js +3 -1
  954. package/node_modules/@murphai/runtime-state/dist/assistant-local-state-descriptors.js.map +1 -1
  955. package/node_modules/@murphai/runtime-state/dist/assistant-runtime-issues.d.ts +51 -0
  956. package/node_modules/@murphai/runtime-state/dist/assistant-runtime-issues.d.ts.map +1 -0
  957. package/node_modules/@murphai/runtime-state/dist/assistant-runtime-issues.js +302 -0
  958. package/node_modules/@murphai/runtime-state/dist/assistant-runtime-issues.js.map +1 -0
  959. package/node_modules/@murphai/runtime-state/dist/assistant-state.d.ts +2 -0
  960. package/node_modules/@murphai/runtime-state/dist/assistant-state.d.ts.map +1 -1
  961. package/node_modules/@murphai/runtime-state/dist/assistant-state.js +3 -0
  962. package/node_modules/@murphai/runtime-state/dist/assistant-state.js.map +1 -1
  963. package/node_modules/@murphai/runtime-state/dist/assistant-usage.d.ts +8 -0
  964. package/node_modules/@murphai/runtime-state/dist/assistant-usage.d.ts.map +1 -1
  965. package/node_modules/@murphai/runtime-state/dist/assistant-usage.js +60 -1
  966. package/node_modules/@murphai/runtime-state/dist/assistant-usage.js.map +1 -1
  967. package/node_modules/@murphai/runtime-state/dist/hosted-browser-session-keys.d.ts +31 -0
  968. package/node_modules/@murphai/runtime-state/dist/hosted-browser-session-keys.d.ts.map +1 -0
  969. package/node_modules/@murphai/runtime-state/dist/hosted-browser-session-keys.js +180 -0
  970. package/node_modules/@murphai/runtime-state/dist/hosted-browser-session-keys.js.map +1 -0
  971. package/node_modules/@murphai/runtime-state/dist/hosted-bundle-ref.d.ts +1 -1
  972. package/node_modules/@murphai/runtime-state/dist/hosted-bundle-ref.d.ts.map +1 -1
  973. package/node_modules/@murphai/runtime-state/dist/hosted-bundle.js +4 -1
  974. package/node_modules/@murphai/runtime-state/dist/hosted-bundle.js.map +1 -1
  975. package/node_modules/@murphai/runtime-state/dist/hosted-email.d.ts +0 -2
  976. package/node_modules/@murphai/runtime-state/dist/hosted-email.d.ts.map +1 -1
  977. package/node_modules/@murphai/runtime-state/dist/hosted-email.js +32 -7
  978. package/node_modules/@murphai/runtime-state/dist/hosted-email.js.map +1 -1
  979. package/node_modules/@murphai/runtime-state/dist/hosted-storage.d.ts +37 -0
  980. package/node_modules/@murphai/runtime-state/dist/hosted-storage.d.ts.map +1 -0
  981. package/node_modules/@murphai/runtime-state/dist/hosted-storage.js +157 -0
  982. package/node_modules/@murphai/runtime-state/dist/hosted-storage.js.map +1 -0
  983. package/node_modules/@murphai/runtime-state/dist/index.d.ts +2 -1
  984. package/node_modules/@murphai/runtime-state/dist/index.d.ts.map +1 -1
  985. package/node_modules/@murphai/runtime-state/dist/index.js +2 -1
  986. package/node_modules/@murphai/runtime-state/dist/index.js.map +1 -1
  987. package/node_modules/@murphai/runtime-state/dist/locks.js.map +1 -1
  988. package/node_modules/@murphai/runtime-state/dist/node/assistant-usage.d.ts +2 -0
  989. package/node_modules/@murphai/runtime-state/dist/node/assistant-usage.d.ts.map +1 -0
  990. package/node_modules/@murphai/runtime-state/dist/node/assistant-usage.js +2 -0
  991. package/node_modules/@murphai/runtime-state/dist/node/assistant-usage.js.map +1 -0
  992. package/node_modules/@murphai/runtime-state/dist/node/hosted-bundle-codec.d.ts +3 -0
  993. package/node_modules/@murphai/runtime-state/dist/node/hosted-bundle-codec.d.ts.map +1 -0
  994. package/node_modules/@murphai/runtime-state/dist/node/hosted-bundle-codec.js +3 -0
  995. package/node_modules/@murphai/runtime-state/dist/node/hosted-bundle-codec.js.map +1 -0
  996. package/node_modules/@murphai/runtime-state/dist/node/index.d.ts +2 -1
  997. package/node_modules/@murphai/runtime-state/dist/node/index.d.ts.map +1 -1
  998. package/node_modules/@murphai/runtime-state/dist/node/index.js +2 -1
  999. package/node_modules/@murphai/runtime-state/dist/node/index.js.map +1 -1
  1000. package/node_modules/@murphai/runtime-state/dist/node/runtime-paths.d.ts +2 -0
  1001. package/node_modules/@murphai/runtime-state/dist/node/runtime-paths.d.ts.map +1 -0
  1002. package/node_modules/@murphai/runtime-state/dist/node/runtime-paths.js +2 -0
  1003. package/node_modules/@murphai/runtime-state/dist/node/runtime-paths.js.map +1 -0
  1004. package/node_modules/@murphai/runtime-state/dist/node/sqlite-warning-filter.d.ts +2 -0
  1005. package/node_modules/@murphai/runtime-state/dist/node/sqlite-warning-filter.d.ts.map +1 -0
  1006. package/node_modules/@murphai/runtime-state/dist/node/sqlite-warning-filter.js +2 -0
  1007. package/node_modules/@murphai/runtime-state/dist/node/sqlite-warning-filter.js.map +1 -0
  1008. package/node_modules/@murphai/runtime-state/dist/node/ulid.d.ts +2 -0
  1009. package/node_modules/@murphai/runtime-state/dist/node/ulid.d.ts.map +1 -0
  1010. package/node_modules/@murphai/runtime-state/dist/node/ulid.js +2 -0
  1011. package/node_modules/@murphai/runtime-state/dist/node/ulid.js.map +1 -0
  1012. package/node_modules/@murphai/runtime-state/dist/sqlite-warning-filter.d.ts +9 -0
  1013. package/node_modules/@murphai/runtime-state/dist/sqlite-warning-filter.d.ts.map +1 -0
  1014. package/node_modules/@murphai/runtime-state/dist/sqlite-warning-filter.js +63 -0
  1015. package/node_modules/@murphai/runtime-state/dist/sqlite-warning-filter.js.map +1 -0
  1016. package/node_modules/@murphai/runtime-state/dist/sqlite.d.ts +2 -1
  1017. package/node_modules/@murphai/runtime-state/dist/sqlite.d.ts.map +1 -1
  1018. package/node_modules/@murphai/runtime-state/dist/sqlite.js +4 -2
  1019. package/node_modules/@murphai/runtime-state/dist/sqlite.js.map +1 -1
  1020. package/node_modules/@murphai/runtime-state/dist/versioned-json-files.js.map +1 -1
  1021. package/node_modules/@murphai/runtime-state/package.json +29 -1
  1022. package/node_modules/@murphai/setup-cli/dist/setup-assistant-account.js.map +1 -1
  1023. package/node_modules/@murphai/setup-cli/dist/setup-assistant-defaults.js +2 -2
  1024. package/node_modules/@murphai/setup-cli/dist/setup-assistant-defaults.js.map +1 -1
  1025. package/node_modules/@murphai/setup-cli/dist/setup-assistant.d.ts.map +1 -1
  1026. package/node_modules/@murphai/setup-cli/dist/setup-assistant.js +7 -5
  1027. package/node_modules/@murphai/setup-cli/dist/setup-assistant.js.map +1 -1
  1028. package/node_modules/@murphai/setup-cli/dist/setup-cli.d.ts.map +1 -1
  1029. package/node_modules/@murphai/setup-cli/dist/setup-cli.js +13 -1
  1030. package/node_modules/@murphai/setup-cli/dist/setup-cli.js.map +1 -1
  1031. package/node_modules/@murphai/setup-cli/dist/setup-services/shell.d.ts.map +1 -1
  1032. package/node_modules/@murphai/setup-cli/dist/setup-services/shell.js +2 -69
  1033. package/node_modules/@murphai/setup-cli/dist/setup-services/shell.js.map +1 -1
  1034. package/node_modules/@murphai/setup-cli/dist/setup-services/steps.d.ts +1 -1
  1035. package/node_modules/@murphai/setup-cli/dist/setup-services/steps.d.ts.map +1 -1
  1036. package/node_modules/@murphai/setup-cli/dist/setup-services/steps.js +0 -17
  1037. package/node_modules/@murphai/setup-cli/dist/setup-services/steps.js.map +1 -1
  1038. package/node_modules/@murphai/setup-cli/dist/setup-services/tool-provisioning.d.ts +1 -1
  1039. package/node_modules/@murphai/setup-cli/dist/setup-services/tool-provisioning.js +0 -4
  1040. package/node_modules/@murphai/setup-cli/dist/setup-services/tool-provisioning.js.map +1 -1
  1041. package/node_modules/@murphai/setup-cli/dist/setup-services/wearables.js +2 -0
  1042. package/node_modules/@murphai/setup-cli/dist/setup-services/wearables.js.map +1 -1
  1043. package/node_modules/@murphai/setup-cli/dist/setup-services.d.ts.map +1 -1
  1044. package/node_modules/@murphai/setup-cli/dist/setup-services.js +7 -9
  1045. package/node_modules/@murphai/setup-cli/dist/setup-services.js.map +1 -1
  1046. package/node_modules/@murphai/setup-cli/dist/setup-wizard-app.d.ts.map +1 -1
  1047. package/node_modules/@murphai/setup-cli/dist/setup-wizard-app.js +47 -0
  1048. package/node_modules/@murphai/setup-cli/dist/setup-wizard-app.js.map +1 -1
  1049. package/node_modules/@murphai/setup-cli/dist/setup-wizard-options.d.ts.map +1 -1
  1050. package/node_modules/@murphai/setup-cli/dist/setup-wizard-options.js +7 -0
  1051. package/node_modules/@murphai/setup-cli/dist/setup-wizard-options.js.map +1 -1
  1052. package/node_modules/@murphai/setup-cli/dist/setup-wizard-public-url.d.ts +13 -1
  1053. package/node_modules/@murphai/setup-cli/dist/setup-wizard-public-url.d.ts.map +1 -1
  1054. package/node_modules/@murphai/setup-cli/dist/setup-wizard-public-url.js +214 -21
  1055. package/node_modules/@murphai/setup-cli/dist/setup-wizard-public-url.js.map +1 -1
  1056. package/node_modules/@murphai/setup-cli/dist/setup-wizard-ui.d.ts +1 -5
  1057. package/node_modules/@murphai/setup-cli/dist/setup-wizard-ui.d.ts.map +1 -1
  1058. package/node_modules/@murphai/setup-cli/dist/setup-wizard-ui.js +8 -2
  1059. package/node_modules/@murphai/setup-cli/dist/setup-wizard-ui.js.map +1 -1
  1060. package/node_modules/@murphai/setup-cli/dist/setup-wizard.d.ts +1 -1
  1061. package/node_modules/@murphai/setup-cli/dist/setup-wizard.d.ts.map +1 -1
  1062. package/node_modules/@murphai/setup-cli/dist/setup-wizard.js +1 -1
  1063. package/node_modules/@murphai/setup-cli/dist/setup-wizard.js.map +1 -1
  1064. package/node_modules/@murphai/setup-cli/package.json +1 -10
  1065. package/node_modules/@murphai/vault-usecases/dist/captures.d.ts +2 -0
  1066. package/node_modules/@murphai/vault-usecases/dist/captures.d.ts.map +1 -0
  1067. package/node_modules/@murphai/vault-usecases/dist/captures.js +2 -0
  1068. package/node_modules/@murphai/vault-usecases/dist/captures.js.map +1 -0
  1069. package/node_modules/@murphai/vault-usecases/dist/index.d.ts +3 -0
  1070. package/node_modules/@murphai/vault-usecases/dist/index.d.ts.map +1 -1
  1071. package/node_modules/@murphai/vault-usecases/dist/index.js +3 -0
  1072. package/node_modules/@murphai/vault-usecases/dist/index.js.map +1 -1
  1073. package/node_modules/@murphai/vault-usecases/dist/measurements.d.ts +3 -0
  1074. package/node_modules/@murphai/vault-usecases/dist/measurements.d.ts.map +1 -0
  1075. package/node_modules/@murphai/vault-usecases/dist/measurements.js +3 -0
  1076. package/node_modules/@murphai/vault-usecases/dist/measurements.js.map +1 -0
  1077. package/node_modules/@murphai/vault-usecases/dist/preferences.d.ts +2 -2
  1078. package/node_modules/@murphai/vault-usecases/dist/query-runtime.d.ts +115 -2
  1079. package/node_modules/@murphai/vault-usecases/dist/query-runtime.d.ts.map +1 -1
  1080. package/node_modules/@murphai/vault-usecases/dist/query-runtime.js.map +1 -1
  1081. package/node_modules/@murphai/vault-usecases/dist/usecases/capture.d.ts +174 -0
  1082. package/node_modules/@murphai/vault-usecases/dist/usecases/capture.d.ts.map +1 -0
  1083. package/node_modules/@murphai/vault-usecases/dist/usecases/capture.js +485 -0
  1084. package/node_modules/@murphai/vault-usecases/dist/usecases/capture.js.map +1 -0
  1085. package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.d.ts +8 -5
  1086. package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.d.ts.map +1 -1
  1087. package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.js +14 -52
  1088. package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.js.map +1 -1
  1089. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.d.ts +272 -9
  1090. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.d.ts.map +1 -1
  1091. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.js +417 -2
  1092. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.js.map +1 -1
  1093. package/node_modules/@murphai/vault-usecases/dist/usecases/explicit-health-family-services.d.ts.map +1 -1
  1094. package/node_modules/@murphai/vault-usecases/dist/usecases/food-autolog.d.ts +2 -1
  1095. package/node_modules/@murphai/vault-usecases/dist/usecases/food-autolog.d.ts.map +1 -1
  1096. package/node_modules/@murphai/vault-usecases/dist/usecases/food-autolog.js +4 -2
  1097. package/node_modules/@murphai/vault-usecases/dist/usecases/food-autolog.js.map +1 -1
  1098. package/node_modules/@murphai/vault-usecases/dist/usecases/food.d.ts +2 -2
  1099. package/node_modules/@murphai/vault-usecases/dist/usecases/integrated-services.d.ts.map +1 -1
  1100. package/node_modules/@murphai/vault-usecases/dist/usecases/integrated-services.js +172 -22
  1101. package/node_modules/@murphai/vault-usecases/dist/usecases/integrated-services.js.map +1 -1
  1102. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.d.ts +114 -0
  1103. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.d.ts.map +1 -0
  1104. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.js +92 -0
  1105. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.js.map +1 -0
  1106. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement.d.ts +95 -0
  1107. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement.d.ts.map +1 -0
  1108. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement.js +217 -0
  1109. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement.js.map +1 -0
  1110. package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.d.ts +3 -1
  1111. package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.d.ts.map +1 -1
  1112. package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.js +33 -0
  1113. package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.js.map +1 -1
  1114. package/node_modules/@murphai/vault-usecases/dist/usecases/runtime.d.ts.map +1 -1
  1115. package/node_modules/@murphai/vault-usecases/dist/usecases/runtime.js +6 -1
  1116. package/node_modules/@murphai/vault-usecases/dist/usecases/runtime.js.map +1 -1
  1117. package/node_modules/@murphai/vault-usecases/dist/usecases/shared.d.ts +2 -1
  1118. package/node_modules/@murphai/vault-usecases/dist/usecases/shared.d.ts.map +1 -1
  1119. package/node_modules/@murphai/vault-usecases/dist/usecases/shared.js +34 -0
  1120. package/node_modules/@murphai/vault-usecases/dist/usecases/shared.js.map +1 -1
  1121. package/node_modules/@murphai/vault-usecases/dist/usecases/types.d.ts +165 -15
  1122. package/node_modules/@murphai/vault-usecases/dist/usecases/types.d.ts.map +1 -1
  1123. package/node_modules/@murphai/vault-usecases/dist/usecases/vault-usecase-helpers.d.ts +3 -1
  1124. package/node_modules/@murphai/vault-usecases/dist/usecases/vault-usecase-helpers.d.ts.map +1 -1
  1125. package/node_modules/@murphai/vault-usecases/dist/usecases/vault-usecase-helpers.js +30 -3
  1126. package/node_modules/@murphai/vault-usecases/dist/usecases/vault-usecase-helpers.js.map +1 -1
  1127. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-core.d.ts +14 -1
  1128. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-core.d.ts.map +1 -1
  1129. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-core.js.map +1 -1
  1130. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-format.d.ts +1 -1
  1131. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-measurement.d.ts +0 -37
  1132. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-measurement.d.ts.map +1 -1
  1133. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-measurement.js +9 -185
  1134. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-measurement.js.map +1 -1
  1135. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.d.ts +5 -53
  1136. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.d.ts.map +1 -1
  1137. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.js +4 -60
  1138. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.js.map +1 -1
  1139. package/node_modules/@murphai/vault-usecases/dist/usecases/workout.d.ts +2 -2
  1140. package/node_modules/@murphai/vault-usecases/package.json +9 -10
  1141. package/package.json +21 -20
  1142. package/node_modules/@murphai/assistant-engine/dist/assistant/first-contact-welcome-delivery.d.ts +0 -14
  1143. package/node_modules/@murphai/assistant-engine/dist/assistant/first-contact-welcome-delivery.d.ts.map +0 -1
  1144. package/node_modules/@murphai/assistant-engine/dist/assistant/first-contact-welcome-delivery.js +0 -194
  1145. package/node_modules/@murphai/assistant-engine/dist/assistant/first-contact-welcome-delivery.js.map +0 -1
  1146. package/node_modules/@murphai/assistant-engine/dist/assistant/reply-sanitizer.d.ts +0 -8
  1147. package/node_modules/@murphai/assistant-engine/dist/assistant/reply-sanitizer.d.ts.map +0 -1
  1148. package/node_modules/@murphai/assistant-engine/dist/assistant/reply-sanitizer.js +0 -93
  1149. package/node_modules/@murphai/assistant-engine/dist/assistant/reply-sanitizer.js.map +0 -1
  1150. package/node_modules/@murphai/messaging-ingress/dist/index.d.ts +0 -2
  1151. package/node_modules/@murphai/messaging-ingress/dist/index.d.ts.map +0 -1
  1152. package/node_modules/@murphai/messaging-ingress/dist/index.js +0 -2
  1153. package/node_modules/@murphai/messaging-ingress/dist/index.js.map +0 -1
  1154. package/node_modules/@murphai/parsers/dist/adapters/pdftotext.d.ts +0 -7
  1155. package/node_modules/@murphai/parsers/dist/adapters/pdftotext.d.ts.map +0 -1
  1156. package/node_modules/@murphai/parsers/dist/adapters/pdftotext.js +0 -60
  1157. package/node_modules/@murphai/parsers/dist/adapters/pdftotext.js.map +0 -1
  1158. package/node_modules/@murphai/runtime-state/dist/hosted-user-env.d.ts +0 -14
  1159. package/node_modules/@murphai/runtime-state/dist/hosted-user-env.d.ts.map +0 -1
  1160. package/node_modules/@murphai/runtime-state/dist/hosted-user-env.js +0 -59
  1161. package/node_modules/@murphai/runtime-state/dist/hosted-user-env.js.map +0 -1
@@ -1,17 +1,17 @@
1
- import { resolveSystemTimeZone, } from '@murphai/contracts';
2
- import { loadVault, upsertAutomation } from '@murphai/core';
3
- import { listAutomations as listCanonicalAutomations, showAutomation as showCanonicalAutomation, } from '@murphai/query';
1
+ import { resolveSystemTimeZone } from '@murphai/contracts';
2
+ import { loadVault, setScheduledLogStatus, upsertAutomation } from '@murphai/core';
3
+ import { listAutomations as listCanonicalAutomations, listScheduledLogs as listCanonicalScheduledLogs, showAutomation as showCanonicalAutomation, } from '@murphai/query';
4
4
  import { assistantCronJobSchema, assistantCronRunRecordSchema, assistantCronScheduleSchema, assistantCronTargetSchema, } from '@murphai/operator-config/assistant-cli-contracts';
5
- import { loadRuntimeModule } from '@murphai/vault-usecases/runtime';
6
- import { renderAutoLoggedFoodMealNote } from '@murphai/vault-usecases/records';
7
- import { loadImporterRuntime } from '@murphai/vault-usecases/runtime';
5
+ import { buildDailyFoodCronJobName, buildDailyFoodCronPrompt, } from '@murphai/vault-usecases/records';
8
6
  import { VaultCliError } from '@murphai/operator-config/vault-cli-errors';
9
7
  import { withAssistantCronWriteLock } from "./cron/locking.js";
10
8
  import { buildAssistantCronSchedule, computeAssistantCronNextRunAt, } from "./cron/schedule.js";
11
9
  import { getAssistantCronPresetDefinition, listAssistantCronPresets as listBuiltinAssistantCronPresets, renderAssistantCronPreset, } from "./cron/presets.js";
12
10
  import { appendAssistantCronRun, assertAssistantCronJobNameIsAvailable, buildAssistantCronTarget, createAssistantCronJobId, createAssistantCronRunId, ensureAssistantCronState, isAssistantCronJobDue, normalizeRequiredAssistantCronText, readAssistantCronRuns, readAssistantCronStore, resolveAssistantCronJobFromStore, resolveAssistantCronJobIndex, resolveAssistantCronRunLookupId, sortAssistantCronJobs, writeAssistantCronStore, } from "./cron/store.js";
13
11
  import { buildAssistantCronNotificationDedupeToken } from "./cron/notification-delivery.js";
14
- import { createAssistantCronAutomationRuntimeRecord, findAssistantCronAutomationRuntimeRecord, readAssistantCronAutomationRuntimeStore, removeAssistantCronAutomationRuntimeRecord, upsertAssistantCronAutomationRuntimeRecord, writeAssistantCronAutomationRuntimeStore, } from "./cron/runtime-state.js";
12
+ import { createAssistantCronCanonicalRuntimeRecord, findAssistantCronCanonicalRuntimeRecord, readAssistantCronCanonicalRuntimeStore, removeAssistantCronCanonicalRuntimeRecord, upsertAssistantCronCanonicalRuntimeRecord, writeAssistantCronCanonicalRuntimeStore, } from "./cron/runtime-state.js";
13
+ import { clearCanonicalFoodAutoLogSchedule, listCanonicalFoodAutoLogRecords, runFoodAutoLogCronJob, } from "./cron/food-auto-log.js";
14
+ import { normalizeCanonicalScheduledLogCronRecord, runScheduledLogCronJob, } from "./cron/scheduled-log.js";
15
15
  import { sendAssistantNotificationLocal } from "../assistant-service.js";
16
16
  import { getAssistantChannelAdapter } from "./channel-adapters.js";
17
17
  import { resolveAssistantBindingDelivery } from "./bindings.js";
@@ -46,7 +46,7 @@ export async function installAssistantCronPreset(input) {
46
46
  channel: input.channel,
47
47
  identityId: input.identityId,
48
48
  participantId: input.participantId,
49
- sourceThreadId: input.sourceThreadId,
49
+ threadId: input.threadId,
50
50
  deliveryTarget: input.deliveryTarget,
51
51
  });
52
52
  return {
@@ -63,11 +63,12 @@ export async function addAssistantCronJob(input) {
63
63
  const name = normalizeRequiredAssistantCronText(resolvedInput.name, 'name');
64
64
  const prompt = normalizeRequiredAssistantCronText(resolvedInput.prompt, 'prompt');
65
65
  const enabled = resolvedInput.enabled ?? true;
66
- const schedule = await resolveAssistantCronScheduleForVault(input.vault, resolvedInput.schedule);
66
+ const resolvedSchedule = await resolveAssistantCronScheduleForVault(input.vault, resolvedInput.schedule);
67
+ const schedule = assistantCronScheduleSchema.parse(resolvedInput.schedule);
67
68
  const keepAfterRun = schedule.kind === 'at'
68
69
  ? resolvedInput.keepAfterRun ?? false
69
70
  : true;
70
- const nextRunAt = computeAssistantCronNextRunAt(schedule, now);
71
+ const nextRunAt = computeAssistantCronNextRunAt(resolvedSchedule, now);
71
72
  if (enabled && nextRunAt === null) {
72
73
  throw new VaultCliError('ASSISTANT_CRON_INVALID_SCHEDULE', 'The assistant cron schedule does not produce a future run time.');
73
74
  }
@@ -91,18 +92,19 @@ export async function addAssistantCronJob(input) {
91
92
  route: buildCanonicalAutomationRoute(target),
92
93
  instructions: prompt,
93
94
  }));
94
- const runtimeStore = await readAssistantCronAutomationRuntimeStore(paths);
95
- const runtimeState = createAssistantCronAutomationRuntimeRecord({
96
- automationId: created.record.automationId,
97
- nextRunAt,
95
+ const runtimeStore = await readAssistantCronCanonicalRuntimeStore(paths);
96
+ const timeZone = await resolveAssistantCronDefaultTimeZone(input.vault);
97
+ const source = requireCanonicalAssistantCronRecord(created.record, timeZone);
98
+ const runtimeState = createAssistantCronCanonicalRuntimeRecord({
99
+ jobId: source.automationId,
98
100
  now: now.toISOString(),
99
101
  sessionId: target.sessionId,
100
102
  alias: target.alias,
101
103
  });
102
- upsertAssistantCronAutomationRuntimeRecord(runtimeStore, runtimeState);
103
- await writeAssistantCronAutomationRuntimeStore(paths, runtimeStore);
104
+ upsertAssistantCronCanonicalRuntimeRecord(runtimeStore, runtimeState);
105
+ await writeAssistantCronCanonicalRuntimeStore(paths, runtimeStore);
104
106
  return projectCanonicalAssistantCronJob({
105
- automation: requireCanonicalAssistantCronRecord(created.record),
107
+ source,
106
108
  runtimeState,
107
109
  });
108
110
  });
@@ -148,7 +150,7 @@ async function resolveAssistantCronTargetDefaults(input) {
148
150
  channel: input.channel,
149
151
  identityId: input.identityId,
150
152
  participantId: input.participantId,
151
- sourceThreadId: input.sourceThreadId,
153
+ threadId: input.threadId,
152
154
  deliveryTarget: input.deliveryTarget,
153
155
  }, {
154
156
  allowSingleSavedTargetFallback: true,
@@ -158,24 +160,34 @@ async function resolveAssistantCronTargetDefaults(input) {
158
160
  channel: resolvedTarget.channel ?? undefined,
159
161
  identityId: resolvedTarget.identityId ?? undefined,
160
162
  participantId: resolvedTarget.participantId ?? undefined,
161
- sourceThreadId: resolvedTarget.sourceThreadId ?? undefined,
163
+ threadId: resolvedTarget.threadId ?? undefined,
162
164
  deliveryTarget: resolvedTarget.deliveryTarget ?? undefined,
163
165
  };
164
166
  }
165
167
  async function listCanonicalAssistantCronRecords(vault, status = ['active', 'paused']) {
166
- const records = await listCanonicalAutomations(vault, {
167
- status: [...status],
168
- });
169
- return records.flatMap((record) => {
170
- const normalized = normalizeCanonicalAssistantCronRecord(record);
171
- return normalized ? [normalized] : [];
172
- });
173
- }
174
- async function findCanonicalAssistantCronRecord(vault, lookup) {
175
- const record = await showCanonicalAutomation(vault, lookup);
176
- return record ? normalizeCanonicalAssistantCronRecord(record) : null;
168
+ const timeZone = await resolveAssistantCronDefaultTimeZone(vault);
169
+ const [automationRecords, scheduledLogRecords, foodRecords] = await Promise.all([
170
+ listCanonicalAutomations(vault, {
171
+ status: [...status],
172
+ }),
173
+ listCanonicalScheduledLogs(vault, {
174
+ status: [...status],
175
+ }),
176
+ listCanonicalFoodAutoLogRecords(vault, timeZone),
177
+ ]);
178
+ return [
179
+ ...automationRecords.flatMap((record) => {
180
+ const normalized = normalizeCanonicalAssistantCronRecord(record, timeZone);
181
+ return normalized ? [normalized] : [];
182
+ }),
183
+ ...scheduledLogRecords.flatMap((record) => {
184
+ const normalized = normalizeCanonicalScheduledLogCronRecord(record, timeZone);
185
+ return normalized ? [normalized] : [];
186
+ }),
187
+ ...(status.includes('active') ? foodRecords : []),
188
+ ];
177
189
  }
178
- function normalizeCanonicalAssistantCronRecord(record) {
190
+ function normalizeCanonicalAssistantCronRecord(record, timeZone) {
179
191
  if (record.status !== 'active' && record.status !== 'paused') {
180
192
  return null;
181
193
  }
@@ -183,74 +195,217 @@ function normalizeCanonicalAssistantCronRecord(record) {
183
195
  if (typeof instructions !== 'string') {
184
196
  throw new VaultCliError('ASSISTANT_CRON_INVALID_AUTOMATION', `Canonical automation "${record.automationId}" is missing scheduled instructions.`);
185
197
  }
186
- const { prompt: _prompt, ...rest } = record;
187
198
  return {
188
- ...rest,
199
+ kind: 'automation',
200
+ automationId: record.automationId,
201
+ continuityPolicy: record.continuityPolicy,
202
+ createdAt: record.createdAt,
189
203
  instructions,
204
+ route: record.route,
205
+ schedule: normalizeAssistantCronPublicSchedule(record.schedule),
206
+ slug: record.slug,
190
207
  status: record.status,
208
+ summary: record.summary,
209
+ tags: [...record.tags],
210
+ timeZone: record.schedule.kind === 'cron' || record.schedule.kind === 'dailyLocal'
211
+ ? timeZone
212
+ : null,
213
+ title: record.title,
214
+ updatedAt: record.updatedAt,
191
215
  };
192
216
  }
193
- function requireCanonicalAssistantCronRecord(record) {
194
- const normalized = normalizeCanonicalAssistantCronRecord(record);
217
+ function requireCanonicalAssistantCronRecord(record, timeZone) {
218
+ const normalized = normalizeCanonicalAssistantCronRecord(record, timeZone);
195
219
  if (!normalized) {
196
220
  throw new VaultCliError('ASSISTANT_CRON_INVALID_AUTOMATION', `Canonical automation "${record.automationId}" is not active or paused.`);
197
221
  }
198
222
  return normalized;
199
223
  }
200
- function createInitialCanonicalAutomationRuntimeState(automation) {
201
- const createdAt = automation.createdAt;
202
- return createAssistantCronAutomationRuntimeRecord({
203
- automationId: automation.automationId,
204
- nextRunAt: automation.status === 'active'
205
- ? computeAssistantCronNextRunAt(toAssistantCronSchedule(automation.schedule), new Date(createdAt))
206
- : null,
207
- now: createdAt,
224
+ function resolveCanonicalAssistantCronJobLookupKeys(record) {
225
+ switch (record.kind) {
226
+ case 'automation':
227
+ return [record.automationId, record.slug, record.title];
228
+ case 'scheduledLog':
229
+ return [record.scheduledLogId, record.slug, record.title];
230
+ case 'foodAutoLog':
231
+ return [record.jobId, buildDailyFoodCronJobName(record.slug)];
232
+ }
233
+ }
234
+ function findCanonicalAssistantCronRecordInList(records, lookup) {
235
+ const normalizedLookup = normalizeRequiredAssistantCronText(lookup, 'job');
236
+ const foldedLookup = normalizedLookup.toLocaleLowerCase();
237
+ return (records.find((record) => resolveCanonicalAssistantCronJobLookupKeys(record).some((candidate) => typeof candidate === 'string' &&
238
+ candidate.toLocaleLowerCase() === foldedLookup)) ?? null);
239
+ }
240
+ function createInitialCanonicalRuntimeState(source, now) {
241
+ return createAssistantCronCanonicalRuntimeRecord({
242
+ jobId: resolveCanonicalAssistantCronJobId(source),
243
+ now,
208
244
  });
209
245
  }
210
- function resolveCanonicalAutomationRuntimeState(automation, store) {
211
- return (findAssistantCronAutomationRuntimeRecord(store, automation.automationId) ??
212
- createInitialCanonicalAutomationRuntimeState(automation));
246
+ function resolveCanonicalRuntimeState(source, store) {
247
+ return (findAssistantCronCanonicalRuntimeRecord(store, resolveCanonicalAssistantCronJobId(source)) ??
248
+ createInitialCanonicalRuntimeState(source, new Date().toISOString()));
249
+ }
250
+ function buildCanonicalAssistantCronJobName(source) {
251
+ switch (source.kind) {
252
+ case 'automation':
253
+ case 'scheduledLog':
254
+ return source.title;
255
+ case 'foodAutoLog':
256
+ return buildDailyFoodCronJobName(source.slug);
257
+ }
258
+ }
259
+ function buildCanonicalAssistantCronJobPrompt(source) {
260
+ switch (source.kind) {
261
+ case 'automation':
262
+ return source.instructions;
263
+ case 'scheduledLog':
264
+ return `Auto-log scheduled log "${source.title}" as ${source.actionKind}.`;
265
+ case 'foodAutoLog':
266
+ return buildDailyFoodCronPrompt(source.title);
267
+ }
268
+ }
269
+ function resolveCanonicalAssistantCronCreatedAt(input) {
270
+ return input.source.kind === 'foodAutoLog'
271
+ ? input.runtimeState.createdAt
272
+ : input.source.createdAt;
273
+ }
274
+ function resolveCanonicalAssistantCronUpdatedAt(input) {
275
+ return input.source.kind === 'foodAutoLog'
276
+ ? input.runtimeState.updatedAt
277
+ : input.source.updatedAt;
213
278
  }
214
279
  function projectCanonicalAssistantCronJob(input) {
215
- const continuitySessionId = input.automation.continuityPolicy === 'preserve'
280
+ const continuitySessionId = input.source.kind === 'automation' &&
281
+ input.source.continuityPolicy === 'preserve'
216
282
  ? input.runtimeState.sessionId
217
283
  : null;
218
- const continuityAlias = input.automation.continuityPolicy === 'preserve'
284
+ const continuityAlias = input.source.kind === 'automation' &&
285
+ input.source.continuityPolicy === 'preserve'
219
286
  ? input.runtimeState.alias
220
287
  : null;
288
+ const targetRoute = input.source.kind === 'automation'
289
+ ? input.source.route
290
+ : {
291
+ channel: null,
292
+ deliveryTarget: null,
293
+ identityId: null,
294
+ participantId: null,
295
+ threadId: null,
296
+ };
221
297
  const target = assistantCronTargetSchema.parse({
222
298
  sessionId: continuitySessionId,
223
299
  alias: continuityAlias,
224
- channel: input.automation.route.channel,
225
- identityId: input.automation.route.identityId,
226
- participantId: input.automation.route.participantId,
227
- sourceThreadId: input.automation.route.sourceThreadId,
228
- deliveryTarget: input.automation.route.deliveryTarget,
300
+ channel: targetRoute.channel,
301
+ identityId: targetRoute.identityId,
302
+ participantId: targetRoute.participantId,
303
+ threadId: targetRoute.threadId,
304
+ deliveryTarget: targetRoute.deliveryTarget,
305
+ });
306
+ const projectedState = projectCanonicalAssistantCronJobState({
307
+ source: input.source,
308
+ runtimeState: input.runtimeState,
229
309
  });
230
310
  return assistantCronJobSchema.parse({
231
311
  schema: ASSISTANT_CRON_JOB_SCHEMA,
232
- jobId: input.automation.automationId,
233
- name: input.automation.title,
234
- enabled: input.automation.status === 'active',
235
- keepAfterRun: input.automation.schedule.kind !== 'at',
236
- prompt: input.automation.instructions,
237
- schedule: toAssistantCronSchedule(input.automation.schedule),
312
+ jobId: resolveCanonicalAssistantCronJobId(input.source),
313
+ name: buildCanonicalAssistantCronJobName(input.source),
314
+ enabled: isCanonicalAssistantCronSourceEnabled(input.source),
315
+ keepAfterRun: input.source.schedule.kind !== 'at',
316
+ prompt: buildCanonicalAssistantCronJobPrompt(input.source),
317
+ schedule: input.source.schedule,
238
318
  target,
239
- createdAt: input.automation.createdAt,
240
- updatedAt: input.automation.updatedAt,
319
+ foodAutoLog: input.source.kind === 'foodAutoLog'
320
+ ? {
321
+ foodId: input.source.foodId,
322
+ }
323
+ : undefined,
324
+ scheduledLog: input.source.kind === 'scheduledLog'
325
+ ? {
326
+ scheduledLogId: input.source.scheduledLogId,
327
+ actionKind: input.source.actionKind,
328
+ }
329
+ : undefined,
330
+ createdAt: resolveCanonicalAssistantCronCreatedAt(input),
331
+ updatedAt: resolveCanonicalAssistantCronUpdatedAt(input),
332
+ state: projectedState,
333
+ });
334
+ }
335
+ function projectCanonicalAssistantCronJobState(input) {
336
+ const nextRunAt = resolveCanonicalAssistantCronNextRunAt({
337
+ source: input.source,
241
338
  state: input.runtimeState.state,
242
339
  });
340
+ return {
341
+ nextRunAt,
342
+ lastRunAt: input.runtimeState.state.lastRunAt,
343
+ lastSucceededAt: input.runtimeState.state.lastSucceededAt,
344
+ lastFailedAt: input.runtimeState.state.lastFailedAt,
345
+ consecutiveFailures: input.runtimeState.state.consecutiveFailures,
346
+ lastError: input.runtimeState.state.lastError,
347
+ runningAt: input.runtimeState.state.runningAt,
348
+ runningPid: input.runtimeState.state.runningPid,
349
+ };
243
350
  }
244
- function toAssistantCronSchedule(schedule) {
351
+ function resolveCanonicalAssistantCronJobId(source) {
352
+ switch (source.kind) {
353
+ case 'automation':
354
+ return source.automationId;
355
+ case 'scheduledLog':
356
+ return source.scheduledLogId;
357
+ case 'foodAutoLog':
358
+ return source.jobId;
359
+ }
360
+ }
361
+ function isCanonicalAssistantCronSourceEnabled(source) {
362
+ switch (source.kind) {
363
+ case 'automation':
364
+ case 'scheduledLog':
365
+ return source.status === 'active';
366
+ case 'foodAutoLog':
367
+ return true;
368
+ }
369
+ }
370
+ function normalizeAssistantCronPublicSchedule(schedule) {
371
+ if (schedule.kind === 'cron') {
372
+ return assistantCronScheduleSchema.parse({
373
+ kind: 'cron',
374
+ expression: schedule.expression,
375
+ });
376
+ }
377
+ if (schedule.kind === 'dailyLocal') {
378
+ return assistantCronScheduleSchema.parse({
379
+ kind: 'dailyLocal',
380
+ localTime: schedule.localTime,
381
+ });
382
+ }
245
383
  return assistantCronScheduleSchema.parse(schedule);
246
384
  }
385
+ function resolveAssistantCronResolvedSchedule(input) {
386
+ if (input.schedule.kind === 'cron') {
387
+ return {
388
+ kind: 'cron',
389
+ expression: input.schedule.expression,
390
+ timeZone: input.timeZone ?? 'UTC',
391
+ };
392
+ }
393
+ if (input.schedule.kind === 'dailyLocal') {
394
+ return {
395
+ kind: 'dailyLocal',
396
+ localTime: input.schedule.localTime,
397
+ timeZone: input.timeZone ?? 'UTC',
398
+ };
399
+ }
400
+ return input.schedule;
401
+ }
247
402
  function buildCanonicalAutomationRoute(target) {
248
403
  return {
249
404
  channel: target.channel ?? '',
250
405
  deliveryTarget: target.deliveryTarget,
251
406
  identityId: target.identityId,
252
407
  participantId: target.participantId,
253
- sourceThreadId: target.sourceThreadId,
408
+ threadId: target.threadId,
254
409
  };
255
410
  }
256
411
  function buildCanonicalAutomationUpsertInput(input) {
@@ -270,50 +425,72 @@ function buildCanonicalAutomationUpsertInput(input) {
270
425
  }
271
426
  async function projectResolvedAssistantCronJob(vault, lookup) {
272
427
  const paths = resolveAssistantStatePaths(vault);
273
- const localStore = await readAssistantCronStore(paths);
274
- const localJob = tryResolveLocalAssistantCronJob(localStore, lookup);
428
+ const [localStore, canonicalRecords, runtimeStore] = await Promise.all([
429
+ readAssistantCronStore(paths),
430
+ listCanonicalAssistantCronRecords(vault),
431
+ readAssistantCronCanonicalRuntimeStore(paths),
432
+ ]);
433
+ const canonicalFoodIds = buildCanonicalFoodIdSet(canonicalRecords);
434
+ const visibleLocalStore = buildVisibleLocalAssistantCronStore(localStore, canonicalFoodIds);
435
+ const localJob = tryResolveLocalAssistantCronJob(visibleLocalStore, lookup);
275
436
  if (localJob) {
276
437
  return {
277
438
  kind: 'local',
278
439
  job: localJob,
279
440
  };
280
441
  }
281
- const automation = await findCanonicalAssistantCronRecord(vault, lookup);
282
- if (!automation) {
442
+ const source = findCanonicalAssistantCronRecordInList(canonicalRecords, lookup);
443
+ if (!source) {
283
444
  throw new VaultCliError('ASSISTANT_CRON_JOB_NOT_FOUND', `Assistant cron job "${normalizeRequiredAssistantCronText(lookup, 'job')}" was not found.`);
284
445
  }
285
- const runtimeStore = await readAssistantCronAutomationRuntimeStore(paths);
286
- const runtimeState = resolveCanonicalAutomationRuntimeState(automation, runtimeStore);
446
+ const runtimeState = resolveCanonicalRuntimeState(source, runtimeStore);
287
447
  return {
288
- kind: 'automation',
289
- automation,
448
+ kind: 'canonical',
449
+ source,
290
450
  runtimeState,
291
451
  job: projectCanonicalAssistantCronJob({
292
- automation,
452
+ source,
293
453
  runtimeState,
294
454
  }),
295
455
  };
296
456
  }
297
- function tryResolveLocalAssistantCronJob(store, lookup) {
457
+ function tryResolveLocalAssistantCronJob(store, lookup, options = {}) {
298
458
  try {
299
- return resolveAssistantCronJobFromStore(store, lookup);
459
+ const resolved = resolveAssistantCronJobFromStore(store, lookup);
460
+ if (options.allowFoodAutoLog === false && resolved.foodAutoLog) {
461
+ return null;
462
+ }
463
+ return resolved;
300
464
  }
301
465
  catch {
302
466
  return null;
303
467
  }
304
468
  }
469
+ function buildCanonicalFoodIdSet(records) {
470
+ return new Set(records.flatMap((record) => record.kind === 'foodAutoLog' ? [record.foodId] : []));
471
+ }
472
+ function buildVisibleLocalAssistantCronStore(store, canonicalFoodIds) {
473
+ if (canonicalFoodIds.size === 0) {
474
+ return store;
475
+ }
476
+ return {
477
+ ...store,
478
+ jobs: store.jobs.filter((job) => !job.foodAutoLog || !canonicalFoodIds.has(job.foodAutoLog.foodId)),
479
+ };
480
+ }
305
481
  export async function listAssistantCronJobs(vault) {
306
482
  const paths = resolveAssistantStatePaths(vault);
307
483
  const [localStore, canonicalRecords, runtimeStore] = await Promise.all([
308
484
  readAssistantCronStore(paths),
309
485
  listCanonicalAssistantCronRecords(vault),
310
- readAssistantCronAutomationRuntimeStore(paths),
486
+ readAssistantCronCanonicalRuntimeStore(paths),
311
487
  ]);
488
+ const canonicalFoodIds = buildCanonicalFoodIdSet(canonicalRecords);
312
489
  return sortAssistantCronJobs([
313
- ...localStore.jobs,
314
- ...canonicalRecords.map((automation) => projectCanonicalAssistantCronJob({
315
- automation,
316
- runtimeState: resolveCanonicalAutomationRuntimeState(automation, runtimeStore),
490
+ ...buildVisibleLocalAssistantCronStore(localStore, canonicalFoodIds).jobs,
491
+ ...canonicalRecords.map((source) => projectCanonicalAssistantCronJob({
492
+ source,
493
+ runtimeState: resolveCanonicalRuntimeState(source, runtimeStore),
317
494
  })),
318
495
  ]);
319
496
  }
@@ -329,30 +506,51 @@ export async function removeAssistantCronJob(vault, job) {
329
506
  await ensureAssistantCronState(paths);
330
507
  return withAssistantCronWriteLock(paths, async () => {
331
508
  const store = await readAssistantCronStore(paths);
332
- const localJob = tryResolveLocalAssistantCronJob(store, job);
509
+ const canonicalRecords = await listCanonicalAssistantCronRecords(vault);
510
+ const canonicalFoodIds = buildCanonicalFoodIdSet(canonicalRecords);
511
+ const visibleLocalStore = buildVisibleLocalAssistantCronStore(store, canonicalFoodIds);
512
+ const localJob = tryResolveLocalAssistantCronJob(visibleLocalStore, job);
333
513
  if (localJob) {
334
- const index = resolveAssistantCronJobIndex(store, job);
514
+ const index = store.jobs.findIndex((entry) => entry.jobId === localJob.jobId);
335
515
  const [removed] = store.jobs.splice(index, 1);
336
516
  await writeAssistantCronStore(paths, store);
337
517
  return removed;
338
518
  }
339
519
  const resolved = await projectResolvedAssistantCronJob(vault, job);
340
- if (resolved.kind !== 'automation') {
520
+ if (resolved.kind !== 'canonical') {
341
521
  return resolved.job;
342
522
  }
343
- await upsertAutomation(buildCanonicalAutomationUpsertInput({
344
- vault,
345
- automationId: resolved.automation.automationId,
346
- automation: resolved.automation,
347
- title: resolved.automation.title,
348
- status: 'archived',
349
- schedule: toAssistantCronSchedule(resolved.automation.schedule),
350
- route: resolved.automation.route,
351
- instructions: resolved.automation.instructions,
352
- }));
353
- const runtimeStore = await readAssistantCronAutomationRuntimeStore(paths);
354
- if (removeAssistantCronAutomationRuntimeRecord(runtimeStore, resolved.automation.automationId)) {
355
- await writeAssistantCronAutomationRuntimeStore(paths, runtimeStore);
523
+ if (resolved.source.kind === 'automation') {
524
+ await upsertAutomation(buildCanonicalAutomationUpsertInput({
525
+ vault,
526
+ automationId: resolved.source.automationId,
527
+ automation: resolved.source,
528
+ title: resolved.source.title,
529
+ status: 'archived',
530
+ schedule: resolved.source.schedule,
531
+ route: resolved.source.route,
532
+ instructions: resolved.source.instructions,
533
+ }));
534
+ }
535
+ else if (resolved.source.kind === 'scheduledLog') {
536
+ await setScheduledLogStatus({
537
+ vaultRoot: vault,
538
+ scheduledLogId: resolved.source.scheduledLogId,
539
+ status: 'archived',
540
+ });
541
+ }
542
+ else {
543
+ const foodId = resolved.source.foodId;
544
+ await clearCanonicalFoodAutoLogSchedule(vault, foodId);
545
+ const nextLocalJobs = store.jobs.filter((entry) => entry.foodAutoLog?.foodId !== foodId);
546
+ if (nextLocalJobs.length !== store.jobs.length) {
547
+ store.jobs = nextLocalJobs;
548
+ await writeAssistantCronStore(paths, store);
549
+ }
550
+ }
551
+ const runtimeStore = await readAssistantCronCanonicalRuntimeStore(paths);
552
+ if (removeAssistantCronCanonicalRuntimeRecord(runtimeStore, resolveCanonicalAssistantCronJobId(resolved.source))) {
553
+ await writeAssistantCronCanonicalRuntimeStore(paths, runtimeStore);
356
554
  }
357
555
  return resolved.job;
358
556
  });
@@ -387,39 +585,63 @@ export async function setAssistantCronJobEnabled(vault, job, enabled) {
387
585
  return updated;
388
586
  }
389
587
  const resolved = await projectResolvedAssistantCronJob(vault, job);
390
- if (resolved.kind !== 'automation') {
588
+ if (resolved.kind !== 'canonical') {
391
589
  return resolved.job;
392
590
  }
591
+ if (resolved.source.kind === 'foodAutoLog') {
592
+ throw new VaultCliError('ASSISTANT_CRON_INVALID_STATE', `Recurring food auto-log job "${resolved.job.name}" is controlled by the canonical food record, not assistant cron enable/disable.`);
593
+ }
393
594
  const now = new Date();
394
595
  const nextRunAt = enabled
395
- ? resolveAssistantCronReenabledNextRunAt(resolved.job, now)
396
- : resolved.runtimeState.state.nextRunAt;
596
+ ? computeAssistantCronNextRunAt(resolveAssistantCronResolvedSchedule({
597
+ schedule: resolved.source.schedule,
598
+ timeZone: resolved.source.timeZone,
599
+ }), now)
600
+ : null;
397
601
  if (enabled && nextRunAt === null) {
398
602
  throw new VaultCliError('ASSISTANT_CRON_INVALID_STATE', `Assistant cron job "${resolved.job.name}" no longer has a future scheduled run. Run it manually or recreate it with a new schedule.`);
399
603
  }
400
- const updatedAutomation = await upsertAutomation(buildCanonicalAutomationUpsertInput({
401
- vault,
402
- automationId: resolved.automation.automationId,
403
- automation: resolved.automation,
404
- title: resolved.automation.title,
405
- status: enabled ? 'active' : 'paused',
406
- schedule: toAssistantCronSchedule(resolved.automation.schedule),
407
- route: resolved.automation.route,
408
- instructions: resolved.automation.instructions,
409
- }));
410
- const runtimeStore = await readAssistantCronAutomationRuntimeStore(paths);
604
+ let updatedSource = resolved.source;
605
+ if (resolved.source.kind === 'automation') {
606
+ const updatedAutomation = await upsertAutomation(buildCanonicalAutomationUpsertInput({
607
+ vault,
608
+ automationId: resolved.source.automationId,
609
+ automation: resolved.source,
610
+ title: resolved.source.title,
611
+ status: enabled ? 'active' : 'paused',
612
+ schedule: resolved.source.schedule,
613
+ route: resolved.source.route,
614
+ instructions: resolved.source.instructions,
615
+ }));
616
+ updatedSource = requireCanonicalAssistantCronRecord(updatedAutomation.record, await resolveAssistantCronDefaultTimeZone(vault));
617
+ }
618
+ else if (resolved.source.kind === 'scheduledLog') {
619
+ await setScheduledLogStatus({
620
+ vaultRoot: vault,
621
+ scheduledLogId: resolved.source.scheduledLogId,
622
+ status: enabled ? 'active' : 'paused',
623
+ });
624
+ updatedSource = {
625
+ ...resolved.source,
626
+ status: enabled ? 'active' : 'paused',
627
+ updatedAt: now.toISOString(),
628
+ };
629
+ }
630
+ const runtimeStore = await readAssistantCronCanonicalRuntimeStore(paths);
411
631
  const updatedRuntimeState = {
412
632
  ...resolved.runtimeState,
413
633
  updatedAt: now.toISOString(),
414
634
  state: {
415
635
  ...resolved.runtimeState.state,
416
- nextRunAt,
636
+ activatedAt: enabled ? now.toISOString() : resolved.runtimeState.state.activatedAt,
637
+ pendingOccurrenceAt: null,
638
+ retryAfterAt: null,
417
639
  },
418
640
  };
419
- upsertAssistantCronAutomationRuntimeRecord(runtimeStore, updatedRuntimeState);
420
- await writeAssistantCronAutomationRuntimeStore(paths, runtimeStore);
641
+ upsertAssistantCronCanonicalRuntimeRecord(runtimeStore, updatedRuntimeState);
642
+ await writeAssistantCronCanonicalRuntimeStore(paths, runtimeStore);
421
643
  return projectCanonicalAssistantCronJob({
422
- automation: requireCanonicalAssistantCronRecord(updatedAutomation.record),
644
+ source: updatedSource,
423
645
  runtimeState: updatedRuntimeState,
424
646
  });
425
647
  });
@@ -488,7 +710,7 @@ export async function setAssistantCronJobTarget(input) {
488
710
  };
489
711
  }
490
712
  const resolved = await projectResolvedAssistantCronJob(resolvedInput.vault, resolvedInput.job);
491
- if (resolved.kind !== 'automation') {
713
+ if (resolved.kind !== 'canonical') {
492
714
  return {
493
715
  job: resolved.job,
494
716
  beforeTarget: buildAssistantCronTargetSnapshot(resolved.job),
@@ -498,6 +720,9 @@ export async function setAssistantCronJobTarget(input) {
498
720
  dryRun: Boolean(resolvedInput.dryRun),
499
721
  };
500
722
  }
723
+ if (resolved.source.kind !== 'automation') {
724
+ throw new VaultCliError('ASSISTANT_CRON_DELIVERY_REQUIRED', `Canonical auto-log job "${resolved.job.name}" does not support assistant delivery targeting.`);
725
+ }
501
726
  if (resolved.runtimeState.state.runningAt !== null) {
502
727
  throw new VaultCliError('ASSISTANT_CRON_JOB_RUNNING', `Assistant cron job "${resolved.job.name}" is already running.`);
503
728
  }
@@ -536,25 +761,25 @@ export async function setAssistantCronJobTarget(input) {
536
761
  const now = (resolvedInput.now ?? new Date()).toISOString();
537
762
  const updatedAutomation = await upsertAutomation(buildCanonicalAutomationUpsertInput({
538
763
  vault: resolvedInput.vault,
539
- automationId: resolved.automation.automationId,
540
- automation: resolved.automation,
541
- title: resolved.automation.title,
542
- status: resolved.automation.status,
543
- schedule: toAssistantCronSchedule(resolved.automation.schedule),
764
+ automationId: resolved.source.automationId,
765
+ automation: resolved.source,
766
+ title: resolved.source.title,
767
+ status: resolved.source.status,
768
+ schedule: resolved.source.schedule,
544
769
  route: buildCanonicalAutomationRoute(afterTarget.target),
545
- instructions: resolved.automation.instructions,
770
+ instructions: resolved.source.instructions,
546
771
  }));
547
- const runtimeStore = await readAssistantCronAutomationRuntimeStore(paths);
772
+ const runtimeStore = await readAssistantCronCanonicalRuntimeStore(paths);
548
773
  const updatedRuntimeState = {
549
774
  ...resolved.runtimeState,
550
775
  alias: afterTarget.target.alias,
551
776
  sessionId: afterTarget.target.sessionId,
552
777
  updatedAt: now,
553
778
  };
554
- upsertAssistantCronAutomationRuntimeRecord(runtimeStore, updatedRuntimeState);
555
- await writeAssistantCronAutomationRuntimeStore(paths, runtimeStore);
779
+ upsertAssistantCronCanonicalRuntimeRecord(runtimeStore, updatedRuntimeState);
780
+ await writeAssistantCronCanonicalRuntimeStore(paths, runtimeStore);
556
781
  const updatedJob = projectCanonicalAssistantCronJob({
557
- automation: requireCanonicalAssistantCronRecord(updatedAutomation.record),
782
+ source: requireCanonicalAssistantCronRecord(updatedAutomation.record, await resolveAssistantCronDefaultTimeZone(resolvedInput.vault)),
558
783
  runtimeState: updatedRuntimeState,
559
784
  });
560
785
  return {
@@ -638,29 +863,34 @@ export async function runAssistantCronJobNow(input) {
638
863
  };
639
864
  }
640
865
  const resolved = await projectResolvedAssistantCronJob(input.vault, input.job);
641
- if (resolved.kind !== 'automation') {
866
+ if (resolved.kind !== 'canonical') {
642
867
  return resolved;
643
868
  }
644
869
  if (resolved.runtimeState.state.runningAt !== null) {
645
870
  throw new VaultCliError('ASSISTANT_CRON_JOB_RUNNING', `Assistant cron job "${resolved.job.name}" is already running.`);
646
871
  }
647
- const runtimeStore = await readAssistantCronAutomationRuntimeStore(paths);
872
+ const runtimeStore = await readAssistantCronCanonicalRuntimeStore(paths);
873
+ const now = new Date().toISOString();
874
+ const occurrenceAt = resolveCanonicalAssistantCronOccurrenceAt(resolved.source, resolved.runtimeState) ??
875
+ now;
648
876
  const updatedRuntimeState = {
649
877
  ...resolved.runtimeState,
650
- updatedAt: new Date().toISOString(),
878
+ updatedAt: now,
651
879
  state: {
652
880
  ...resolved.runtimeState.state,
653
- runningAt: new Date().toISOString(),
881
+ pendingOccurrenceAt: occurrenceAt,
882
+ retryAfterAt: null,
883
+ runningAt: now,
654
884
  runningPid: process.pid,
655
885
  },
656
886
  };
657
- upsertAssistantCronAutomationRuntimeRecord(runtimeStore, updatedRuntimeState);
658
- await writeAssistantCronAutomationRuntimeStore(paths, runtimeStore);
887
+ upsertAssistantCronCanonicalRuntimeRecord(runtimeStore, updatedRuntimeState);
888
+ await writeAssistantCronCanonicalRuntimeStore(paths, runtimeStore);
659
889
  return {
660
890
  ...resolved,
661
891
  runtimeState: updatedRuntimeState,
662
892
  job: projectCanonicalAssistantCronJob({
663
- automation: resolved.automation,
893
+ source: resolved.source,
664
894
  runtimeState: updatedRuntimeState,
665
895
  }),
666
896
  };
@@ -721,7 +951,7 @@ function buildValidatedAssistantCronTarget(input) {
721
951
  function validateAssistantCronDeliveryTarget(input) {
722
952
  const channel = normalizeNullableString(input.channel);
723
953
  if (!channel) {
724
- throw new VaultCliError('ASSISTANT_CRON_DELIVERY_REQUIRED', 'Assistant cron jobs must declare an outbound channel and delivery route. Pass --channel plus --sourceThread, --participant, or --deliveryTarget. Cron jobs send a single notification message to the bound route.');
954
+ throw new VaultCliError('ASSISTANT_CRON_DELIVERY_REQUIRED', 'Assistant cron jobs must declare an outbound channel and delivery route. Pass --channel plus --thread, --participant, or --deliveryTarget. Cron jobs send a single notification message to the bound route.');
725
955
  }
726
956
  if (!getAssistantChannelAdapter(channel)) {
727
957
  throw new VaultCliError('ASSISTANT_CHANNEL_UNSUPPORTED', `Outbound delivery for channel "${channel}" is not supported in this build.`);
@@ -731,22 +961,22 @@ function validateAssistantCronDeliveryTarget(input) {
731
961
  throw new VaultCliError('ASSISTANT_EMAIL_IDENTITY_REQUIRED', 'Email cron jobs require a configured email sender identity. Pass --identity with the email address or provider identity you want to send from.');
732
962
  }
733
963
  const participantId = normalizeNullableString(input.participantId);
734
- const sourceThreadId = normalizeNullableString(input.sourceThreadId);
964
+ const threadId = normalizeNullableString(input.threadId);
735
965
  const deliveryTarget = normalizeNullableString(input.deliveryTarget);
736
966
  const bindingDelivery = resolveAssistantBindingDelivery({
737
967
  channel,
738
968
  actorId: participantId,
739
- threadId: sourceThreadId,
969
+ threadId,
740
970
  });
741
971
  if (!deliveryTarget && !bindingDelivery) {
742
- throw new VaultCliError('ASSISTANT_CRON_DELIVERY_REQUIRED', 'Assistant cron jobs must bind an explicit outbound route. Pass --sourceThread, --participant, or --deliveryTarget for the selected channel.');
972
+ throw new VaultCliError('ASSISTANT_CRON_DELIVERY_REQUIRED', 'Assistant cron jobs must bind an explicit outbound route. Pass --thread, --participant, or --deliveryTarget for the selected channel.');
743
973
  }
744
974
  return buildAssistantCronTarget({
745
975
  ...input,
746
976
  channel,
747
977
  identityId,
748
978
  participantId,
749
- sourceThreadId,
979
+ threadId,
750
980
  deliveryTarget,
751
981
  });
752
982
  }
@@ -755,22 +985,24 @@ async function claimNextDueAssistantCronJob(paths, vault) {
755
985
  const [store, canonicalRecords, runtimeStore] = await Promise.all([
756
986
  readAssistantCronStore(paths),
757
987
  listCanonicalAssistantCronRecords(vault, ['active']),
758
- readAssistantCronAutomationRuntimeStore(paths),
988
+ readAssistantCronCanonicalRuntimeStore(paths),
759
989
  ]);
760
990
  const now = new Date().toISOString();
761
- const canonicalEntries = canonicalRecords.map((automation) => {
762
- const runtimeState = resolveCanonicalAutomationRuntimeState(automation, runtimeStore);
991
+ const canonicalFoodIds = buildCanonicalFoodIdSet(canonicalRecords);
992
+ const visibleLocalStore = buildVisibleLocalAssistantCronStore(store, canonicalFoodIds);
993
+ const canonicalEntries = canonicalRecords.map((source) => {
994
+ const runtimeState = resolveCanonicalRuntimeState(source, runtimeStore);
763
995
  return {
764
- automation,
996
+ source,
765
997
  runtimeState,
766
998
  job: projectCanonicalAssistantCronJob({
767
- automation,
999
+ source,
768
1000
  runtimeState,
769
1001
  }),
770
1002
  };
771
1003
  });
772
1004
  const candidate = sortAssistantCronJobs([
773
- ...store.jobs,
1005
+ ...visibleLocalStore.jobs,
774
1006
  ...canonicalEntries.map((entry) => entry.job),
775
1007
  ]).find((job) => isAssistantCronJobDue(job, now));
776
1008
  if (!candidate) {
@@ -794,24 +1026,27 @@ async function claimNextDueAssistantCronJob(paths, vault) {
794
1026
  job: claimed,
795
1027
  };
796
1028
  }
797
- const canonicalEntry = canonicalEntries.find((entry) => entry.automation.automationId === candidate.jobId);
1029
+ const canonicalEntry = canonicalEntries.find((entry) => resolveCanonicalAssistantCronJobId(entry.source) === candidate.jobId);
1030
+ const occurrenceAt = resolveCanonicalAssistantCronOccurrenceAt(canonicalEntry.source, canonicalEntry.runtimeState) ?? candidate.state.nextRunAt ?? now;
798
1031
  const updatedRuntimeState = {
799
1032
  ...canonicalEntry.runtimeState,
800
1033
  updatedAt: now,
801
1034
  state: {
802
1035
  ...canonicalEntry.runtimeState.state,
1036
+ pendingOccurrenceAt: occurrenceAt,
1037
+ retryAfterAt: null,
803
1038
  runningAt: now,
804
1039
  runningPid: process.pid,
805
1040
  },
806
1041
  };
807
- upsertAssistantCronAutomationRuntimeRecord(runtimeStore, updatedRuntimeState);
808
- await writeAssistantCronAutomationRuntimeStore(paths, runtimeStore);
1042
+ upsertAssistantCronCanonicalRuntimeRecord(runtimeStore, updatedRuntimeState);
1043
+ await writeAssistantCronCanonicalRuntimeStore(paths, runtimeStore);
809
1044
  return {
810
- kind: 'automation',
811
- automation: canonicalEntry.automation,
1045
+ kind: 'canonical',
1046
+ source: canonicalEntry.source,
812
1047
  runtimeState: updatedRuntimeState,
813
1048
  job: projectCanonicalAssistantCronJob({
814
- automation: canonicalEntry.automation,
1049
+ source: canonicalEntry.source,
815
1050
  runtimeState: updatedRuntimeState,
816
1051
  }),
817
1052
  };
@@ -825,14 +1060,27 @@ async function executeClaimedAssistantCronJob(input) {
825
1060
  let response = null;
826
1061
  let errorText = null;
827
1062
  let status = 'failed';
1063
+ const occurrenceAt = input.job.kind === 'canonical'
1064
+ ? input.job.runtimeState.state.pendingOccurrenceAt ??
1065
+ resolveCanonicalAssistantCronOccurrenceAt(input.job.source, input.job.runtimeState) ??
1066
+ startedAt
1067
+ : startedAt;
828
1068
  try {
829
1069
  if (input.signal?.aborted) {
830
1070
  throw new VaultCliError('ASSISTANT_CRON_ABORTED', `Assistant cron job "${claimedJob.name}" was aborted before it started.`);
831
1071
  }
832
- if (claimedJob.foodAutoLog) {
1072
+ if (input.job.kind === 'canonical' && input.job.source.kind === 'scheduledLog') {
1073
+ response = await runScheduledLogCronJob({
1074
+ vault: input.vault,
1075
+ scheduledLogId: input.job.source.scheduledLogId,
1076
+ occurrenceAt,
1077
+ });
1078
+ }
1079
+ else if (claimedJob.foodAutoLog) {
833
1080
  response = await runFoodAutoLogCronJob({
834
1081
  vault: input.vault,
835
1082
  foodId: claimedJob.foodAutoLog.foodId,
1083
+ occurrenceAt,
836
1084
  });
837
1085
  }
838
1086
  else {
@@ -850,7 +1098,7 @@ async function executeClaimedAssistantCronJob(input) {
850
1098
  channel: claimedJob.target.channel,
851
1099
  identityId: claimedJob.target.identityId,
852
1100
  participantId: claimedJob.target.participantId,
853
- sourceThreadId: claimedJob.target.sourceThreadId,
1101
+ threadId: claimedJob.target.threadId,
854
1102
  deliveryDispatchMode: input.deliveryDispatchMode,
855
1103
  deliveryTarget: claimedJob.target.deliveryTarget,
856
1104
  turnTrigger: 'automation-cron',
@@ -859,9 +1107,7 @@ async function executeClaimedAssistantCronJob(input) {
859
1107
  sessionId = result.session.sessionId;
860
1108
  response = result.response ?? result.decision.privateSummary;
861
1109
  }
862
- if (status === 'failed') {
863
- status = 'succeeded';
864
- }
1110
+ status = 'succeeded';
865
1111
  }
866
1112
  catch (error) {
867
1113
  errorText = errorMessage(error);
@@ -918,57 +1164,72 @@ async function executeClaimedAssistantCronJob(input) {
918
1164
  removedAfterRun,
919
1165
  };
920
1166
  }
921
- const runtimeStore = await readAssistantCronAutomationRuntimeStore(input.paths);
922
- const currentRuntimeState = findAssistantCronAutomationRuntimeRecord(runtimeStore, input.job.automation.automationId) ?? input.job.runtimeState;
923
- const currentJob = projectCanonicalAssistantCronJob({
924
- automation: input.job.automation,
925
- runtimeState: currentRuntimeState,
926
- });
927
- const finalizedJob = finalizeAssistantCronJobAfterRun({
928
- job: currentJob,
1167
+ const runtimeStore = await readAssistantCronCanonicalRuntimeStore(input.paths);
1168
+ const currentRuntimeState = findAssistantCronCanonicalRuntimeRecord(runtimeStore, resolveCanonicalAssistantCronJobId(input.job.source)) ?? input.job.runtimeState;
1169
+ const updatedRuntimeState = finalizeCanonicalAssistantCronRuntimeAfterRun({
929
1170
  finishedAt,
930
- responseSessionId: input.job.automation.continuityPolicy === 'preserve' ? sessionId : null,
931
1171
  run: {
932
1172
  ...run,
933
1173
  status,
934
1174
  },
1175
+ runtimeState: currentRuntimeState,
1176
+ responseSessionId: input.job.source.kind === 'automation' &&
1177
+ input.job.source.continuityPolicy === 'preserve'
1178
+ ? sessionId
1179
+ : null,
1180
+ source: input.job.source,
935
1181
  });
936
- const updatedRuntimeState = {
1182
+ const persistedRuntimeState = {
937
1183
  ...currentRuntimeState,
938
- alias: input.job.automation.continuityPolicy === 'preserve'
939
- ? finalizedJob.target.alias
1184
+ alias: input.job.source.kind === 'automation' &&
1185
+ input.job.source.continuityPolicy === 'preserve'
1186
+ ? updatedRuntimeState.alias
940
1187
  : null,
941
- sessionId: input.job.automation.continuityPolicy === 'preserve'
942
- ? finalizedJob.target.sessionId
1188
+ sessionId: input.job.source.kind === 'automation' &&
1189
+ input.job.source.continuityPolicy === 'preserve'
1190
+ ? updatedRuntimeState.sessionId
943
1191
  : null,
944
1192
  updatedAt: finishedAt,
945
- state: finalizedJob.state,
1193
+ state: updatedRuntimeState.state,
946
1194
  };
1195
+ const finalizedJob = projectCanonicalAssistantCronJob({
1196
+ source: input.job.source,
1197
+ runtimeState: persistedRuntimeState,
1198
+ });
947
1199
  let removedAfterRun = false;
948
1200
  if (shouldRemoveAssistantCronJobAfterRun(finalizedJob, run)) {
949
- await upsertAutomation(buildCanonicalAutomationUpsertInput({
950
- vault: input.vault,
951
- automationId: input.job.automation.automationId,
952
- automation: input.job.automation,
953
- title: input.job.automation.title,
954
- status: 'archived',
955
- schedule: toAssistantCronSchedule(input.job.automation.schedule),
956
- route: input.job.automation.route,
957
- instructions: input.job.automation.instructions,
958
- }));
959
- removeAssistantCronAutomationRuntimeRecord(runtimeStore, input.job.automation.automationId);
1201
+ if (input.job.source.kind === 'automation') {
1202
+ await upsertAutomation(buildCanonicalAutomationUpsertInput({
1203
+ vault: input.vault,
1204
+ automationId: input.job.source.automationId,
1205
+ automation: input.job.source,
1206
+ title: input.job.source.title,
1207
+ status: 'archived',
1208
+ schedule: input.job.source.schedule,
1209
+ route: input.job.source.route,
1210
+ instructions: input.job.source.instructions,
1211
+ }));
1212
+ }
1213
+ else if (input.job.source.kind === 'scheduledLog') {
1214
+ await setScheduledLogStatus({
1215
+ vaultRoot: input.vault,
1216
+ scheduledLogId: input.job.source.scheduledLogId,
1217
+ status: 'archived',
1218
+ });
1219
+ }
1220
+ removeAssistantCronCanonicalRuntimeRecord(runtimeStore, resolveCanonicalAssistantCronJobId(input.job.source));
960
1221
  removedAfterRun = true;
961
1222
  }
962
1223
  else {
963
- upsertAssistantCronAutomationRuntimeRecord(runtimeStore, updatedRuntimeState);
1224
+ upsertAssistantCronCanonicalRuntimeRecord(runtimeStore, persistedRuntimeState);
964
1225
  }
965
- await writeAssistantCronAutomationRuntimeStore(input.paths, runtimeStore);
1226
+ await writeAssistantCronCanonicalRuntimeStore(input.paths, runtimeStore);
966
1227
  return {
967
1228
  job: removedAfterRun
968
1229
  ? finalizedJob
969
1230
  : projectCanonicalAssistantCronJob({
970
- automation: input.job.automation,
971
- runtimeState: updatedRuntimeState,
1231
+ source: input.job.source,
1232
+ runtimeState: persistedRuntimeState,
972
1233
  }),
973
1234
  removedAfterRun,
974
1235
  };
@@ -1063,14 +1324,93 @@ function resolveAssistantCronFailureBackoffMs(failureCount) {
1063
1324
  }
1064
1325
  return 60 * 60_000;
1065
1326
  }
1327
+ function resolveCanonicalAssistantCronOccurrenceAt(source, runtimeState) {
1328
+ if (!isCanonicalAssistantCronSourceEnabled(source)) {
1329
+ return null;
1330
+ }
1331
+ if (runtimeState.state.pendingOccurrenceAt) {
1332
+ return runtimeState.state.pendingOccurrenceAt;
1333
+ }
1334
+ if (source.schedule.kind === 'at') {
1335
+ return source.schedule.at;
1336
+ }
1337
+ const anchorAt = runtimeState.state.lastSucceededAt ?? runtimeState.state.activatedAt;
1338
+ if (!anchorAt) {
1339
+ return null;
1340
+ }
1341
+ return computeAssistantCronNextRunAt(resolveAssistantCronResolvedSchedule({
1342
+ schedule: source.schedule,
1343
+ timeZone: source.timeZone,
1344
+ }), new Date(anchorAt));
1345
+ }
1346
+ function resolveCanonicalAssistantCronNextRunAt(input) {
1347
+ if (!isCanonicalAssistantCronSourceEnabled(input.source)) {
1348
+ return null;
1349
+ }
1350
+ if (input.state.pendingOccurrenceAt) {
1351
+ return input.state.retryAfterAt ?? input.state.pendingOccurrenceAt;
1352
+ }
1353
+ if (input.source.schedule.kind === 'at') {
1354
+ return input.source.schedule.at;
1355
+ }
1356
+ const anchorAt = input.state.lastSucceededAt ?? input.state.activatedAt;
1357
+ if (!anchorAt) {
1358
+ return null;
1359
+ }
1360
+ return computeAssistantCronNextRunAt(resolveAssistantCronResolvedSchedule({
1361
+ schedule: input.source.schedule,
1362
+ timeZone: input.source.timeZone,
1363
+ }), new Date(anchorAt));
1364
+ }
1365
+ function finalizeCanonicalAssistantCronRuntimeAfterRun(input) {
1366
+ const runningClearedState = {
1367
+ ...input.runtimeState.state,
1368
+ runningAt: null,
1369
+ runningPid: null,
1370
+ lastRunAt: input.finishedAt,
1371
+ };
1372
+ if (input.run.status === 'succeeded') {
1373
+ return {
1374
+ ...input.runtimeState,
1375
+ sessionId: input.responseSessionId ?? input.runtimeState.sessionId,
1376
+ updatedAt: input.finishedAt,
1377
+ state: {
1378
+ ...runningClearedState,
1379
+ pendingOccurrenceAt: null,
1380
+ retryAfterAt: null,
1381
+ lastSucceededAt: input.finishedAt,
1382
+ lastError: null,
1383
+ consecutiveFailures: 0,
1384
+ },
1385
+ };
1386
+ }
1387
+ const failureCount = input.runtimeState.state.consecutiveFailures + 1;
1388
+ const retryAfterAt = isCanonicalAssistantCronSourceEnabled(input.source)
1389
+ ? new Date(Date.parse(input.finishedAt) + resolveAssistantCronFailureBackoffMs(failureCount)).toISOString()
1390
+ : null;
1391
+ return {
1392
+ ...input.runtimeState,
1393
+ updatedAt: input.finishedAt,
1394
+ state: {
1395
+ ...runningClearedState,
1396
+ pendingOccurrenceAt: input.runtimeState.state.pendingOccurrenceAt ??
1397
+ resolveCanonicalAssistantCronOccurrenceAt(input.source, input.runtimeState),
1398
+ retryAfterAt,
1399
+ lastFailedAt: input.finishedAt,
1400
+ lastError: input.run.error,
1401
+ consecutiveFailures: failureCount,
1402
+ },
1403
+ };
1404
+ }
1066
1405
  async function resolveAssistantCronScheduleForVault(vault, schedule) {
1067
- if (schedule.kind !== 'cron' || schedule.timeZone) {
1068
- return assistantCronScheduleSchema.parse(schedule);
1406
+ const publicSchedule = assistantCronScheduleSchema.parse(schedule);
1407
+ if (publicSchedule.kind === 'cron' || publicSchedule.kind === 'dailyLocal') {
1408
+ return resolveAssistantCronResolvedSchedule({
1409
+ schedule: publicSchedule,
1410
+ timeZone: await resolveAssistantCronDefaultTimeZone(vault),
1411
+ });
1069
1412
  }
1070
- return assistantCronScheduleSchema.parse({
1071
- ...schedule,
1072
- timeZone: await resolveAssistantCronDefaultTimeZone(vault),
1073
- });
1413
+ return publicSchedule;
1074
1414
  }
1075
1415
  async function resolveAssistantCronDefaultTimeZone(vault) {
1076
1416
  try {
@@ -1087,7 +1427,7 @@ function assistantCronJobHasStableSessionLocator(job) {
1087
1427
  return Boolean(job.target.sessionId ||
1088
1428
  job.target.alias ||
1089
1429
  (job.target.channel &&
1090
- (job.target.participantId || job.target.sourceThreadId)));
1430
+ (job.target.participantId || job.target.threadId)));
1091
1431
  }
1092
1432
  function buildAssistantCronTargetSnapshot(job) {
1093
1433
  return {
@@ -1097,7 +1437,7 @@ function buildAssistantCronTargetSnapshot(job) {
1097
1437
  bindingDelivery: resolveAssistantBindingDelivery({
1098
1438
  channel: job.target.channel,
1099
1439
  actorId: job.target.participantId,
1100
- threadId: job.target.sourceThreadId,
1440
+ threadId: job.target.threadId,
1101
1441
  deliveryTarget: job.target.deliveryTarget,
1102
1442
  }),
1103
1443
  };
@@ -1106,7 +1446,7 @@ function assistantCronTargetAudienceEquals(left, right) {
1106
1446
  return (left.channel === right.channel &&
1107
1447
  left.identityId === right.identityId &&
1108
1448
  left.participantId === right.participantId &&
1109
- left.sourceThreadId === right.sourceThreadId &&
1449
+ left.threadId === right.threadId &&
1110
1450
  left.deliveryTarget === right.deliveryTarget);
1111
1451
  }
1112
1452
  function truncateAssistantCronResponse(response) {
@@ -1115,43 +1455,4 @@ function truncateAssistantCronResponse(response) {
1115
1455
  }
1116
1456
  return response.slice(0, ASSISTANT_CRON_MAX_RESPONSE_LENGTH);
1117
1457
  }
1118
- async function runFoodAutoLogCronJob(input) {
1119
- const [core, importers] = await Promise.all([
1120
- loadRuntimeModule('@murphai/core'),
1121
- loadImporterRuntime(),
1122
- ]);
1123
- const food = await core.readFood({
1124
- vaultRoot: input.vault,
1125
- foodId: input.foodId,
1126
- });
1127
- const note = renderAutoLoggedFoodMealNote(food);
1128
- const mealInput = {
1129
- vaultRoot: input.vault,
1130
- occurredAt: new Date().toISOString(),
1131
- note,
1132
- source: 'derived',
1133
- };
1134
- const inheritedNutrition = buildInheritedMealNutrition(food.nutrition, food.title);
1135
- if (inheritedNutrition != null) {
1136
- mealInput.nutrition = inheritedNutrition;
1137
- }
1138
- const result = await importers.addMeal(mealInput);
1139
- return `Auto-logged recurring food "${food.title}" as meal ${result.mealId}.`;
1140
- }
1141
- function buildInheritedMealNutrition(foodNutrition, title) {
1142
- const totals = foodNutrition?.perServing;
1143
- if (!totals) {
1144
- return undefined;
1145
- }
1146
- return {
1147
- totals,
1148
- provenance: {
1149
- source: 'inherited',
1150
- ...(foodNutrition.provenance?.confidence
1151
- ? { confidence: foodNutrition.provenance.confidence }
1152
- : {}),
1153
- sourceDetail: `Copied from saved food "${title}".`,
1154
- },
1155
- };
1156
- }
1157
1458
  //# sourceMappingURL=cron.js.map