@murphai/murph 1.3.1 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (779) hide show
  1. package/CHANGELOG.md +808 -0
  2. package/config.schema.json +91 -40
  3. package/dist/bin.js +6 -4
  4. package/dist/bin.js.map +1 -1
  5. package/dist/cli-entry.d.ts +8 -1
  6. package/dist/cli-entry.d.ts.map +1 -1
  7. package/dist/cli-entry.js +79 -3
  8. package/dist/cli-entry.js.map +1 -1
  9. package/dist/commands/audit-command-helpers.d.ts.map +1 -1
  10. package/dist/commands/audit-command-helpers.js +7 -5
  11. package/dist/commands/audit-command-helpers.js.map +1 -1
  12. package/dist/commands/batch.d.ts +5 -5
  13. package/dist/commands/batch.d.ts.map +1 -1
  14. package/dist/commands/batch.js +2 -21
  15. package/dist/commands/batch.js.map +1 -1
  16. package/dist/commands/commons.d.ts.map +1 -1
  17. package/dist/commands/commons.js +2 -4
  18. package/dist/commands/commons.js.map +1 -1
  19. package/dist/commands/exercise.d.ts.map +1 -1
  20. package/dist/commands/exercise.js +16 -3
  21. package/dist/commands/exercise.js.map +1 -1
  22. package/dist/commands/experiment-progress-card-image.d.ts.map +1 -1
  23. package/dist/commands/experiment-progress-card-image.js +63 -12
  24. package/dist/commands/experiment-progress-card-image.js.map +1 -1
  25. package/dist/commands/experiment.d.ts.map +1 -1
  26. package/dist/commands/experiment.js +45 -5
  27. package/dist/commands/experiment.js.map +1 -1
  28. package/dist/commands/export-intake-read-helpers.d.ts.map +1 -1
  29. package/dist/commands/export-intake-read-helpers.js +2 -3
  30. package/dist/commands/export-intake-read-helpers.js.map +1 -1
  31. package/dist/commands/food.d.ts.map +1 -1
  32. package/dist/commands/food.js +1 -7
  33. package/dist/commands/food.js.map +1 -1
  34. package/dist/commands/habitat.d.ts.map +1 -1
  35. package/dist/commands/habitat.js +120 -9
  36. package/dist/commands/habitat.js.map +1 -1
  37. package/dist/commands/health-blood-test-save.d.ts.map +1 -1
  38. package/dist/commands/health-blood-test-save.js +42 -8
  39. package/dist/commands/health-blood-test-save.js.map +1 -1
  40. package/dist/commands/meal.d.ts.map +1 -1
  41. package/dist/commands/meal.js +4 -1
  42. package/dist/commands/meal.js.map +1 -1
  43. package/dist/commands/measurement.d.ts.map +1 -1
  44. package/dist/commands/measurement.js +3 -0
  45. package/dist/commands/measurement.js.map +1 -1
  46. package/dist/commands/murph-age.d.ts +9 -1
  47. package/dist/commands/murph-age.d.ts.map +1 -1
  48. package/dist/commands/murph-age.js +132 -7
  49. package/dist/commands/murph-age.js.map +1 -1
  50. package/dist/commands/public-validation-issue.d.ts +7 -0
  51. package/dist/commands/public-validation-issue.d.ts.map +1 -0
  52. package/dist/commands/public-validation-issue.js +7 -0
  53. package/dist/commands/public-validation-issue.js.map +1 -0
  54. package/dist/commands/scheduled-log.d.ts +12 -0
  55. package/dist/commands/scheduled-log.d.ts.map +1 -1
  56. package/dist/commands/scheduled-log.js +456 -106
  57. package/dist/commands/scheduled-log.js.map +1 -1
  58. package/dist/commands/wearables.d.ts +286 -0
  59. package/dist/commands/wearables.d.ts.map +1 -1
  60. package/dist/commands/wearables.js +33 -1
  61. package/dist/commands/wearables.js.map +1 -1
  62. package/dist/commands/workout-live.d.ts.map +1 -1
  63. package/dist/commands/workout-live.js +123 -42
  64. package/dist/commands/workout-live.js.map +1 -1
  65. package/dist/commands/workout-typed-options.d.ts +38 -0
  66. package/dist/commands/workout-typed-options.d.ts.map +1 -0
  67. package/dist/commands/workout-typed-options.js +90 -0
  68. package/dist/commands/workout-typed-options.js.map +1 -0
  69. package/dist/commands/workout.d.ts.map +1 -1
  70. package/dist/commands/workout.js +80 -73
  71. package/dist/commands/workout.js.map +1 -1
  72. package/dist/hosted-data-api-labels.d.ts.map +1 -1
  73. package/dist/hosted-data-api-labels.js +161 -30
  74. package/dist/hosted-data-api-labels.js.map +1 -1
  75. package/dist/incur-error-bridge.d.ts.map +1 -1
  76. package/dist/incur-error-bridge.js +7 -15
  77. package/dist/incur-error-bridge.js.map +1 -1
  78. package/dist/incur.generated.d.ts +22 -13
  79. package/dist/incur.generated.d.ts.map +1 -1
  80. package/dist/mapbox-address.d.ts.map +1 -1
  81. package/dist/mapbox-address.js +3 -4
  82. package/dist/mapbox-address.js.map +1 -1
  83. package/dist/mapbox-route-client.d.ts +2 -2
  84. package/dist/mapbox-route-client.d.ts.map +1 -1
  85. package/dist/mapbox-route-client.js +49 -12
  86. package/dist/mapbox-route-client.js.map +1 -1
  87. package/dist/mapbox-route-directions.d.ts.map +1 -1
  88. package/dist/mapbox-route-directions.js +0 -1
  89. package/dist/mapbox-route-directions.js.map +1 -1
  90. package/dist/mapbox-route-elevation.js +0 -1
  91. package/dist/mapbox-route-elevation.js.map +1 -1
  92. package/dist/mapbox-route-points.js +0 -2
  93. package/dist/mapbox-route-points.js.map +1 -1
  94. package/dist/mapbox-route.d.ts.map +1 -1
  95. package/dist/mapbox-route.js +1 -1
  96. package/dist/mapbox-route.js.map +1 -1
  97. package/dist/vault-cli-command-manifest.d.ts +304 -6
  98. package/dist/vault-cli-command-manifest.d.ts.map +1 -1
  99. package/dist/vault-cli-skill-hash.generated.d.ts +1 -1
  100. package/dist/vault-cli-skill-hash.generated.js +1 -1
  101. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/ink.d.ts.map +1 -1
  102. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/ink.js +6 -2
  103. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/ink.js.map +1 -1
  104. package/node_modules/@murphai/assistant-engine/README.md +4 -3
  105. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-controller.d.ts +15 -1
  106. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-controller.d.ts.map +1 -1
  107. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-controller.js +121 -24
  108. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-controller.js.map +1 -1
  109. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-journal.js +2 -2
  110. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-journal.js.map +1 -1
  111. package/node_modules/@murphai/assistant-engine/dist/assistant/ask-continuation.d.ts.map +1 -1
  112. package/node_modules/@murphai/assistant-engine/dist/assistant/ask-continuation.js +1 -0
  113. package/node_modules/@murphai/assistant-engine/dist/assistant/ask-continuation.js.map +1 -1
  114. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.d.ts.map +1 -1
  115. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.js +55 -7
  116. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.js.map +1 -1
  117. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.d.ts.map +1 -1
  118. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.js +9 -1
  119. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.js.map +1 -1
  120. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.d.ts +1 -0
  121. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.d.ts.map +1 -1
  122. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.js.map +1 -1
  123. package/node_modules/@murphai/assistant-engine/dist/assistant/cli-surface-contract.generated.json +1 -1
  124. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-base-instructions.d.ts +1 -1
  125. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-base-instructions.d.ts.map +1 -1
  126. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-base-instructions.js +7 -7
  127. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-base-instructions.js.map +1 -1
  128. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn/planning.d.ts +1 -1
  129. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn/planning.d.ts.map +1 -1
  130. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn/planning.js +123 -22
  131. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn/planning.js.map +1 -1
  132. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn-runner.d.ts.map +1 -1
  133. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn-runner.js +48 -19
  134. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn-runner.js.map +1 -1
  135. package/node_modules/@murphai/assistant-engine/dist/assistant/context-snapshot.js +3 -7
  136. package/node_modules/@murphai/assistant-engine/dist/assistant/context-snapshot.js.map +1 -1
  137. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/execution.d.ts +5 -0
  138. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/execution.d.ts.map +1 -1
  139. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/execution.js +24 -10
  140. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/execution.js.map +1 -1
  141. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.d.ts +2 -0
  142. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.d.ts.map +1 -1
  143. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.js +12 -0
  144. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.js.map +1 -1
  145. package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.d.ts +5 -0
  146. package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.d.ts.map +1 -1
  147. package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.js +9 -10
  148. package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.js.map +1 -1
  149. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.d.ts +41 -9
  150. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.d.ts.map +1 -1
  151. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.js +9 -0
  152. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.js.map +1 -1
  153. package/node_modules/@murphai/assistant-engine/dist/assistant/experiment-support-automations.d.ts.map +1 -1
  154. package/node_modules/@murphai/assistant-engine/dist/assistant/experiment-support-automations.js +2 -0
  155. package/node_modules/@murphai/assistant-engine/dist/assistant/experiment-support-automations.js.map +1 -1
  156. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-tool-context.d.ts +3 -0
  157. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-tool-context.d.ts.map +1 -1
  158. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-tool-context.js +8 -0
  159. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-tool-context.js.map +1 -1
  160. package/node_modules/@murphai/assistant-engine/dist/assistant/issue-reporting.d.ts +3 -0
  161. package/node_modules/@murphai/assistant-engine/dist/assistant/issue-reporting.d.ts.map +1 -1
  162. package/node_modules/@murphai/assistant-engine/dist/assistant/issue-reporting.js +26 -1
  163. package/node_modules/@murphai/assistant-engine/dist/assistant/issue-reporting.js.map +1 -1
  164. package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.d.ts.map +1 -1
  165. package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.js +687 -370
  166. package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.js.map +1 -1
  167. package/node_modules/@murphai/assistant-engine/dist/assistant/managed-automations.d.ts.map +1 -1
  168. package/node_modules/@murphai/assistant-engine/dist/assistant/managed-automations.js +54 -18
  169. package/node_modules/@murphai/assistant-engine/dist/assistant/managed-automations.js.map +1 -1
  170. package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.d.ts +2 -3
  171. package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.d.ts.map +1 -1
  172. package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.js +10 -9
  173. package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.js.map +1 -1
  174. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.d.ts +1 -1
  175. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.d.ts.map +1 -1
  176. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.js +146 -18
  177. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.js.map +1 -1
  178. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-seed.d.ts +25 -0
  179. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-seed.d.ts.map +1 -0
  180. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-seed.js +72 -0
  181. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-seed.js.map +1 -0
  182. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-state.d.ts +4 -0
  183. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-state.d.ts.map +1 -1
  184. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-state.js +14 -0
  185. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-state.js.map +1 -1
  186. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.d.ts +1 -1
  187. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.d.ts.map +1 -1
  188. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.js +8 -5
  189. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.js.map +1 -1
  190. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.d.ts +4 -0
  191. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.d.ts.map +1 -1
  192. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.js +8 -0
  193. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.js.map +1 -1
  194. package/node_modules/@murphai/assistant-engine/dist/assistant/private-completion-continuity.js +1 -0
  195. package/node_modules/@murphai/assistant-engine/dist/assistant/private-completion-continuity.js.map +1 -1
  196. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.d.ts.map +1 -1
  197. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.js +25 -2
  198. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.js.map +1 -1
  199. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.d.ts +11 -3
  200. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.d.ts.map +1 -1
  201. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.js +67 -176
  202. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.js.map +1 -1
  203. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/types.d.ts +17 -0
  204. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/types.d.ts.map +1 -1
  205. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/types.js.map +1 -1
  206. package/node_modules/@murphai/assistant-engine/dist/assistant/reply-delivery-context.d.ts +1 -1
  207. package/node_modules/@murphai/assistant-engine/dist/assistant/reply-delivery-context.d.ts.map +1 -1
  208. package/node_modules/@murphai/assistant-engine/dist/assistant/reply-delivery-context.js +10 -0
  209. package/node_modules/@murphai/assistant-engine/dist/assistant/reply-delivery-context.js.map +1 -1
  210. package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-residue.d.ts +19 -4
  211. package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-residue.d.ts.map +1 -1
  212. package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-residue.js +76 -40
  213. package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-residue.js.map +1 -1
  214. package/node_modules/@murphai/assistant-engine/dist/assistant/service-contracts.d.ts +3 -1
  215. package/node_modules/@murphai/assistant-engine/dist/assistant/service-contracts.d.ts.map +1 -1
  216. package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.d.ts +4 -2
  217. package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.d.ts.map +1 -1
  218. package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.js +8 -7
  219. package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.js.map +1 -1
  220. package/node_modules/@murphai/assistant-engine/dist/assistant/shared.d.ts +1 -1
  221. package/node_modules/@murphai/assistant-engine/dist/assistant/shared.d.ts.map +1 -1
  222. package/node_modules/@murphai/assistant-engine/dist/assistant/shared.js +1 -1
  223. package/node_modules/@murphai/assistant-engine/dist/assistant/shared.js.map +1 -1
  224. package/node_modules/@murphai/assistant-engine/dist/assistant/store/types.d.ts +1 -0
  225. package/node_modules/@murphai/assistant-engine/dist/assistant/store/types.d.ts.map +1 -1
  226. package/node_modules/@murphai/assistant-engine/dist/assistant/store.d.ts.map +1 -1
  227. package/node_modules/@murphai/assistant-engine/dist/assistant/store.js +6 -0
  228. package/node_modules/@murphai/assistant-engine/dist/assistant/store.js.map +1 -1
  229. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.d.ts +3 -0
  230. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.d.ts.map +1 -1
  231. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.js +57 -29
  232. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.js.map +1 -1
  233. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-digest.d.ts +1 -0
  234. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-digest.d.ts.map +1 -1
  235. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-digest.js +17 -3
  236. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-digest.js.map +1 -1
  237. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.d.ts +4 -7
  238. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.d.ts.map +1 -1
  239. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.js +21 -6
  240. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.js.map +1 -1
  241. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.d.ts +1 -0
  242. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.d.ts.map +1 -1
  243. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.js +6 -0
  244. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.js.map +1 -1
  245. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-input.d.ts +1 -1
  246. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-input.d.ts.map +1 -1
  247. package/node_modules/@murphai/assistant-engine/dist/assistant/usage-attribution.d.ts +1 -1
  248. package/node_modules/@murphai/assistant-engine/dist/assistant/usage-attribution.d.ts.map +1 -1
  249. package/node_modules/@murphai/assistant-engine/dist/assistant/usage-attribution.js.map +1 -1
  250. package/node_modules/@murphai/assistant-engine/dist/assistant-ask.js +8 -0
  251. package/node_modules/@murphai/assistant-engine/dist/assistant-ask.js.map +1 -1
  252. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-access.d.ts.map +1 -1
  253. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-access.js +1 -0
  254. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-access.js.map +1 -1
  255. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/analyze-video-tool.d.ts +49 -0
  256. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/analyze-video-tool.d.ts.map +1 -0
  257. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/analyze-video-tool.js +387 -0
  258. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/analyze-video-tool.js.map +1 -0
  259. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.d.ts +1 -1
  260. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.d.ts.map +1 -1
  261. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.js +12 -13
  262. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.js.map +1 -1
  263. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-requests.d.ts +1 -0
  264. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-requests.d.ts.map +1 -1
  265. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-requests.js +16 -5
  266. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-requests.js.map +1 -1
  267. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-rpc.d.ts +1 -1
  268. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-rpc.d.ts.map +1 -1
  269. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-rpc.js +2 -1
  270. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-rpc.js.map +1 -1
  271. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.d.ts +4 -0
  272. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.d.ts.map +1 -1
  273. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.js +26 -13
  274. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.js.map +1 -1
  275. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.d.ts +1024 -1091
  276. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.d.ts.map +1 -1
  277. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.js +354 -330
  278. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.js.map +1 -1
  279. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/analyze-video.d.ts +50 -0
  280. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/analyze-video.d.ts.map +1 -0
  281. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/analyze-video.js +79 -0
  282. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/analyze-video.js.map +1 -0
  283. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation-model-input-schema.d.ts +4 -0
  284. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation-model-input-schema.d.ts.map +1 -0
  285. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation-model-input-schema.js +153 -0
  286. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation-model-input-schema.js.map +1 -0
  287. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation.d.ts +4 -1
  288. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation.d.ts.map +1 -1
  289. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation.js +29 -35
  290. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation.js.map +1 -1
  291. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/device.d.ts +4 -1
  292. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/device.d.ts.map +1 -1
  293. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/device.js +43 -9
  294. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/device.js.map +1 -1
  295. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/dynamic-tool-wrapper.d.ts +6 -0
  296. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/dynamic-tool-wrapper.d.ts.map +1 -1
  297. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/dynamic-tool-wrapper.js.map +1 -1
  298. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/member-memory.d.ts +60 -0
  299. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/member-memory.d.ts.map +1 -0
  300. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/member-memory.js +91 -0
  301. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/member-memory.js.map +1 -0
  302. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.d.ts +41 -1
  303. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.d.ts.map +1 -1
  304. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.js +85 -9
  305. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.js.map +1 -1
  306. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools.d.ts +25 -2
  307. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools.d.ts.map +1 -1
  308. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools.js +280 -89
  309. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools.js.map +1 -1
  310. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/failures.js +1 -1
  311. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/response-card-validation-feedback.d.ts.map +1 -1
  312. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/response-card-validation-feedback.js +1 -3
  313. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/response-card-validation-feedback.js.map +1 -1
  314. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/workout-delivery-context.d.ts +19 -0
  315. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/workout-delivery-context.d.ts.map +1 -0
  316. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/workout-delivery-context.js +203 -0
  317. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/workout-delivery-context.js.map +1 -0
  318. package/node_modules/@murphai/assistant-engine/dist/assistant-codex.d.ts +9 -1
  319. package/node_modules/@murphai/assistant-engine/dist/assistant-codex.d.ts.map +1 -1
  320. package/node_modules/@murphai/assistant-engine/dist/assistant-codex.js +220 -130
  321. package/node_modules/@murphai/assistant-engine/dist/assistant-codex.js.map +1 -1
  322. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime-residue.d.ts +1 -1
  323. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime-residue.d.ts.map +1 -1
  324. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime-residue.js +1 -1
  325. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime-residue.js.map +1 -1
  326. package/node_modules/@murphai/assistant-engine/dist/assistant-skill-assets.d.ts +1 -1
  327. package/node_modules/@murphai/assistant-engine/dist/assistant-skill-assets.d.ts.map +1 -1
  328. package/node_modules/@murphai/assistant-engine/dist/assistant-skill-assets.js +1 -1
  329. package/node_modules/@murphai/assistant-engine/dist/assistant-skill-assets.js.map +1 -1
  330. package/node_modules/@murphai/assistant-engine/dist/index.d.ts +2 -1
  331. package/node_modules/@murphai/assistant-engine/dist/index.d.ts.map +1 -1
  332. package/node_modules/@murphai/assistant-engine/dist/index.js +1 -0
  333. package/node_modules/@murphai/assistant-engine/dist/index.js.map +1 -1
  334. package/node_modules/@murphai/assistant-engine/skills/automatic-meal-capture/SKILL.md +111 -68
  335. package/node_modules/@murphai/assistant-engine/skills/behavior-followthrough/SKILL.md +0 -2
  336. package/node_modules/@murphai/assistant-engine/skills/daily-activity/SKILL.md +11 -4
  337. package/node_modules/@murphai/assistant-engine/skills/food-journal/SKILL.md +83 -22
  338. package/node_modules/@murphai/assistant-engine/skills/hosted-low-usage/SKILL.md +3 -3
  339. package/node_modules/@murphai/assistant-engine/skills/murph-family/SKILL.md +1 -1
  340. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/SKILL.md +17 -11
  341. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/daily-nutrition-card-goals.md +62 -34
  342. package/node_modules/@murphai/assistant-engine/skills/physical-notes/SKILL.md +47 -0
  343. package/node_modules/@murphai/assistant-engine/skills/shared/exercise-catalog-runtime.md +6 -0
  344. package/node_modules/@murphai/assistant-engine/skills/signup-link/SKILL.md +1 -1
  345. package/node_modules/@murphai/assistant-engine/skills/strength-training/SKILL.md +12 -5
  346. package/node_modules/@murphai/assistant-engine/skills/tracked-table/SKILL.md +156 -66
  347. package/node_modules/@murphai/core/dist/automation.d.ts.map +1 -1
  348. package/node_modules/@murphai/core/dist/automation.js +17 -9
  349. package/node_modules/@murphai/core/dist/automation.js.map +1 -1
  350. package/node_modules/@murphai/core/dist/bank/habitat.d.ts +2 -0
  351. package/node_modules/@murphai/core/dist/bank/habitat.d.ts.map +1 -1
  352. package/node_modules/@murphai/core/dist/bank/habitat.js +27 -0
  353. package/node_modules/@murphai/core/dist/bank/habitat.js.map +1 -1
  354. package/node_modules/@murphai/core/dist/bank/regimens.js +1 -1
  355. package/node_modules/@murphai/core/dist/bank/regimens.js.map +1 -1
  356. package/node_modules/@murphai/core/dist/domains/events/ledger.d.ts +21 -0
  357. package/node_modules/@murphai/core/dist/domains/events/ledger.d.ts.map +1 -1
  358. package/node_modules/@murphai/core/dist/domains/events/ledger.js +102 -8
  359. package/node_modules/@murphai/core/dist/domains/events/ledger.js.map +1 -1
  360. package/node_modules/@murphai/core/dist/domains/events.d.ts +2 -2
  361. package/node_modules/@murphai/core/dist/domains/events.d.ts.map +1 -1
  362. package/node_modules/@murphai/core/dist/domains/events.js +1 -1
  363. package/node_modules/@murphai/core/dist/domains/events.js.map +1 -1
  364. package/node_modules/@murphai/core/dist/history/api.d.ts.map +1 -1
  365. package/node_modules/@murphai/core/dist/history/api.js +18 -3
  366. package/node_modules/@murphai/core/dist/history/api.js.map +1 -1
  367. package/node_modules/@murphai/core/dist/index.d.ts +4 -2
  368. package/node_modules/@murphai/core/dist/index.d.ts.map +1 -1
  369. package/node_modules/@murphai/core/dist/index.js +3 -1
  370. package/node_modules/@murphai/core/dist/index.js.map +1 -1
  371. package/node_modules/@murphai/core/dist/mutations.d.ts +25 -2
  372. package/node_modules/@murphai/core/dist/mutations.d.ts.map +1 -1
  373. package/node_modules/@murphai/core/dist/mutations.js +1588 -78
  374. package/node_modules/@murphai/core/dist/mutations.js.map +1 -1
  375. package/node_modules/@murphai/core/dist/operations/index.d.ts +1 -1
  376. package/node_modules/@murphai/core/dist/operations/index.d.ts.map +1 -1
  377. package/node_modules/@murphai/core/dist/operations/index.js +1 -1
  378. package/node_modules/@murphai/core/dist/operations/index.js.map +1 -1
  379. package/node_modules/@murphai/core/dist/operations/write-batch.d.ts +2 -0
  380. package/node_modules/@murphai/core/dist/operations/write-batch.d.ts.map +1 -1
  381. package/node_modules/@murphai/core/dist/operations/write-batch.js +7 -0
  382. package/node_modules/@murphai/core/dist/operations/write-batch.js.map +1 -1
  383. package/node_modules/@murphai/core/dist/protocols.d.ts.map +1 -1
  384. package/node_modules/@murphai/core/dist/protocols.js +52 -9
  385. package/node_modules/@murphai/core/dist/protocols.js.map +1 -1
  386. package/node_modules/@murphai/core/dist/public-mutations.d.ts +1 -1
  387. package/node_modules/@murphai/core/dist/public-mutations.d.ts.map +1 -1
  388. package/node_modules/@murphai/core/dist/public-mutations.js +2 -2
  389. package/node_modules/@murphai/core/dist/public-mutations.js.map +1 -1
  390. package/node_modules/@murphai/core/dist/scheduled-logs.d.ts +3 -0
  391. package/node_modules/@murphai/core/dist/scheduled-logs.d.ts.map +1 -1
  392. package/node_modules/@murphai/core/dist/scheduled-logs.js +65 -29
  393. package/node_modules/@murphai/core/dist/scheduled-logs.js.map +1 -1
  394. package/node_modules/@murphai/device-syncd/README.md +140 -46
  395. package/node_modules/@murphai/device-syncd/dist/client.d.ts +14 -0
  396. package/node_modules/@murphai/device-syncd/dist/client.d.ts.map +1 -1
  397. package/node_modules/@murphai/device-syncd/dist/client.js.map +1 -1
  398. package/node_modules/@murphai/device-syncd/dist/config/connect-routes.d.ts +4 -1
  399. package/node_modules/@murphai/device-syncd/dist/config/connect-routes.d.ts.map +1 -1
  400. package/node_modules/@murphai/device-syncd/dist/config/connect-routes.js +24 -2
  401. package/node_modules/@murphai/device-syncd/dist/config/connect-routes.js.map +1 -1
  402. package/node_modules/@murphai/device-syncd/dist/config/junction-connect-sources.js +2 -2
  403. package/node_modules/@murphai/device-syncd/dist/config/junction-connect-sources.js.map +1 -1
  404. package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.d.ts +53 -0
  405. package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.d.ts.map +1 -1
  406. package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.js +13 -0
  407. package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.js.map +1 -1
  408. package/node_modules/@murphai/device-syncd/dist/connect-config.d.ts +1 -1
  409. package/node_modules/@murphai/device-syncd/dist/connect-config.d.ts.map +1 -1
  410. package/node_modules/@murphai/device-syncd/dist/connect-config.js +1 -1
  411. package/node_modules/@murphai/device-syncd/dist/connect-config.js.map +1 -1
  412. package/node_modules/@murphai/device-syncd/dist/fitbit-migration.d.ts +57 -0
  413. package/node_modules/@murphai/device-syncd/dist/fitbit-migration.d.ts.map +1 -0
  414. package/node_modules/@murphai/device-syncd/dist/fitbit-migration.js +166 -0
  415. package/node_modules/@murphai/device-syncd/dist/fitbit-migration.js.map +1 -0
  416. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.d.ts +43 -0
  417. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.d.ts.map +1 -1
  418. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.js +129 -5
  419. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.js.map +1 -1
  420. package/node_modules/@murphai/device-syncd/dist/junction-historical-backfill-progress.d.ts +3 -0
  421. package/node_modules/@murphai/device-syncd/dist/junction-historical-backfill-progress.d.ts.map +1 -1
  422. package/node_modules/@murphai/device-syncd/dist/junction-historical-backfill-progress.js +36 -16
  423. package/node_modules/@murphai/device-syncd/dist/junction-historical-backfill-progress.js.map +1 -1
  424. package/node_modules/@murphai/device-syncd/dist/junction-inline-authority.d.ts +17 -2
  425. package/node_modules/@murphai/device-syncd/dist/junction-inline-authority.d.ts.map +1 -1
  426. package/node_modules/@murphai/device-syncd/dist/junction-inline-authority.js +99 -40
  427. package/node_modules/@murphai/device-syncd/dist/junction-inline-authority.js.map +1 -1
  428. package/node_modules/@murphai/device-syncd/dist/junction-source-reconnect.d.ts +17 -0
  429. package/node_modules/@murphai/device-syncd/dist/junction-source-reconnect.d.ts.map +1 -0
  430. package/node_modules/@murphai/device-syncd/dist/junction-source-reconnect.js +45 -0
  431. package/node_modules/@murphai/device-syncd/dist/junction-source-reconnect.js.map +1 -0
  432. package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.d.ts +8 -1
  433. package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.d.ts.map +1 -1
  434. package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.js +12 -1
  435. package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.js.map +1 -1
  436. package/node_modules/@murphai/device-syncd/dist/providers/junction-client.d.ts +7 -0
  437. package/node_modules/@murphai/device-syncd/dist/providers/junction-client.d.ts.map +1 -1
  438. package/node_modules/@murphai/device-syncd/dist/providers/junction-client.js +285 -46
  439. package/node_modules/@murphai/device-syncd/dist/providers/junction-client.js.map +1 -1
  440. package/node_modules/@murphai/device-syncd/dist/providers/junction.d.ts +9 -0
  441. package/node_modules/@murphai/device-syncd/dist/providers/junction.d.ts.map +1 -1
  442. package/node_modules/@murphai/device-syncd/dist/providers/junction.js +2045 -367
  443. package/node_modules/@murphai/device-syncd/dist/providers/junction.js.map +1 -1
  444. package/node_modules/@murphai/device-syncd/dist/public-account.d.ts +2 -0
  445. package/node_modules/@murphai/device-syncd/dist/public-account.d.ts.map +1 -1
  446. package/node_modules/@murphai/device-syncd/dist/public-account.js +96 -0
  447. package/node_modules/@murphai/device-syncd/dist/public-account.js.map +1 -1
  448. package/node_modules/@murphai/device-syncd/dist/public-ingress.d.ts.map +1 -1
  449. package/node_modules/@murphai/device-syncd/dist/public-ingress.js +6 -4
  450. package/node_modules/@murphai/device-syncd/dist/public-ingress.js.map +1 -1
  451. package/node_modules/@murphai/device-syncd/dist/service.d.ts +6 -2
  452. package/node_modules/@murphai/device-syncd/dist/service.d.ts.map +1 -1
  453. package/node_modules/@murphai/device-syncd/dist/service.js +385 -44
  454. package/node_modules/@murphai/device-syncd/dist/service.js.map +1 -1
  455. package/node_modules/@murphai/device-syncd/dist/source-staleness.d.ts +15 -0
  456. package/node_modules/@murphai/device-syncd/dist/source-staleness.d.ts.map +1 -1
  457. package/node_modules/@murphai/device-syncd/dist/source-staleness.js +25 -1
  458. package/node_modules/@murphai/device-syncd/dist/source-staleness.js.map +1 -1
  459. package/node_modules/@murphai/device-syncd/dist/store/jobs.d.ts +10 -1
  460. package/node_modules/@murphai/device-syncd/dist/store/jobs.d.ts.map +1 -1
  461. package/node_modules/@murphai/device-syncd/dist/store/jobs.js +95 -1
  462. package/node_modules/@murphai/device-syncd/dist/store/jobs.js.map +1 -1
  463. package/node_modules/@murphai/device-syncd/dist/store/schema.d.ts +1 -1
  464. package/node_modules/@murphai/device-syncd/dist/store/schema.d.ts.map +1 -1
  465. package/node_modules/@murphai/device-syncd/dist/store/schema.js +25 -3
  466. package/node_modules/@murphai/device-syncd/dist/store/schema.js.map +1 -1
  467. package/node_modules/@murphai/device-syncd/dist/store/sources.d.ts +24 -2
  468. package/node_modules/@murphai/device-syncd/dist/store/sources.d.ts.map +1 -1
  469. package/node_modules/@murphai/device-syncd/dist/store/sources.js +223 -14
  470. package/node_modules/@murphai/device-syncd/dist/store/sources.js.map +1 -1
  471. package/node_modules/@murphai/device-syncd/dist/store.d.ts +13 -3
  472. package/node_modules/@murphai/device-syncd/dist/store.d.ts.map +1 -1
  473. package/node_modules/@murphai/device-syncd/dist/store.js +104 -22
  474. package/node_modules/@murphai/device-syncd/dist/store.js.map +1 -1
  475. package/node_modules/@murphai/device-syncd/dist/types.d.ts +96 -9
  476. package/node_modules/@murphai/device-syncd/dist/types.d.ts.map +1 -1
  477. package/node_modules/@murphai/device-syncd/dist/types.js +4 -0
  478. package/node_modules/@murphai/device-syncd/dist/types.js.map +1 -1
  479. package/node_modules/@murphai/device-syncd/package.json +8 -0
  480. package/node_modules/@murphai/health-metrics/dist/definitions/activity.d.ts.map +1 -1
  481. package/node_modules/@murphai/health-metrics/dist/definitions/activity.js +66 -0
  482. package/node_modules/@murphai/health-metrics/dist/definitions/activity.js.map +1 -1
  483. package/node_modules/@murphai/health-metrics/dist/definitions/body.js +2 -2
  484. package/node_modules/@murphai/health-metrics/dist/definitions/body.js.map +1 -1
  485. package/node_modules/@murphai/health-metrics/dist/normalize.d.ts.map +1 -1
  486. package/node_modules/@murphai/health-metrics/dist/normalize.js +3 -0
  487. package/node_modules/@murphai/health-metrics/dist/normalize.js.map +1 -1
  488. package/node_modules/@murphai/health-metrics/dist/wearable-metric-catalog.d.ts +3 -1
  489. package/node_modules/@murphai/health-metrics/dist/wearable-metric-catalog.d.ts.map +1 -1
  490. package/node_modules/@murphai/health-metrics/dist/wearable-metric-catalog.js +5 -1
  491. package/node_modules/@murphai/health-metrics/dist/wearable-metric-catalog.js.map +1 -1
  492. package/node_modules/@murphai/health-metrics/dist/wearable-provider-catalog.d.ts +79 -0
  493. package/node_modules/@murphai/health-metrics/dist/wearable-provider-catalog.d.ts.map +1 -1
  494. package/node_modules/@murphai/health-metrics/dist/wearable-provider-catalog.js +19 -0
  495. package/node_modules/@murphai/health-metrics/dist/wearable-provider-catalog.js.map +1 -1
  496. package/node_modules/@murphai/importers/dist/core-port.d.ts +15 -1
  497. package/node_modules/@murphai/importers/dist/core-port.d.ts.map +1 -1
  498. package/node_modules/@murphai/importers/dist/core-port.js.map +1 -1
  499. package/node_modules/@murphai/importers/dist/create-importers.d.ts +9 -1
  500. package/node_modules/@murphai/importers/dist/create-importers.d.ts.map +1 -1
  501. package/node_modules/@murphai/importers/dist/create-importers.js +12 -2
  502. package/node_modules/@murphai/importers/dist/create-importers.js.map +1 -1
  503. package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.d.ts +17 -3
  504. package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.d.ts.map +1 -1
  505. package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.js +102 -8
  506. package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.js.map +1 -1
  507. package/node_modules/@murphai/importers/dist/device-providers/index.d.ts +5 -4
  508. package/node_modules/@murphai/importers/dist/device-providers/index.d.ts.map +1 -1
  509. package/node_modules/@murphai/importers/dist/device-providers/index.js +4 -3
  510. package/node_modules/@murphai/importers/dist/device-providers/index.js.map +1 -1
  511. package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.d.ts +11 -1
  512. package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.d.ts.map +1 -1
  513. package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.js +420 -27
  514. package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.js.map +1 -1
  515. package/node_modules/@murphai/importers/dist/device-providers/junction-origin.d.ts +1 -0
  516. package/node_modules/@murphai/importers/dist/device-providers/junction-origin.d.ts.map +1 -1
  517. package/node_modules/@murphai/importers/dist/device-providers/junction-origin.js +7 -2
  518. package/node_modules/@murphai/importers/dist/device-providers/junction-origin.js.map +1 -1
  519. package/node_modules/@murphai/importers/dist/device-providers/junction-resources.d.ts +4 -1
  520. package/node_modules/@murphai/importers/dist/device-providers/junction-resources.d.ts.map +1 -1
  521. package/node_modules/@murphai/importers/dist/device-providers/junction-resources.js +42 -1
  522. package/node_modules/@murphai/importers/dist/device-providers/junction-resources.js.map +1 -1
  523. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-features.d.ts +79 -0
  524. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-features.d.ts.map +1 -0
  525. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-features.js +356 -0
  526. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-features.js.map +1 -0
  527. package/node_modules/@murphai/importers/dist/device-providers/junction.d.ts +76 -3
  528. package/node_modules/@murphai/importers/dist/device-providers/junction.d.ts.map +1 -1
  529. package/node_modules/@murphai/importers/dist/device-providers/junction.js +1676 -347
  530. package/node_modules/@murphai/importers/dist/device-providers/junction.js.map +1 -1
  531. package/node_modules/@murphai/importers/dist/device-providers/shared-normalization.d.ts.map +1 -1
  532. package/node_modules/@murphai/importers/dist/device-providers/shared-normalization.js +1 -0
  533. package/node_modules/@murphai/importers/dist/device-providers/shared-normalization.js.map +1 -1
  534. package/node_modules/@murphai/importers/dist/device-providers/types.d.ts +9 -1
  535. package/node_modules/@murphai/importers/dist/device-providers/types.d.ts.map +1 -1
  536. package/node_modules/@murphai/importers/dist/index.d.ts +2 -2
  537. package/node_modules/@murphai/importers/dist/index.d.ts.map +1 -1
  538. package/node_modules/@murphai/importers/dist/index.js +1 -1
  539. package/node_modules/@murphai/importers/dist/index.js.map +1 -1
  540. package/node_modules/@murphai/inboxd/README.md +1 -1
  541. package/node_modules/@murphai/inboxd/dist/indexing/retention.d.ts +6 -0
  542. package/node_modules/@murphai/inboxd/dist/indexing/retention.d.ts.map +1 -1
  543. package/node_modules/@murphai/inboxd/dist/indexing/retention.js +64 -18
  544. package/node_modules/@murphai/inboxd/dist/indexing/retention.js.map +1 -1
  545. package/node_modules/@murphai/inboxd/dist/retention.d.ts +1 -1
  546. package/node_modules/@murphai/inboxd/dist/retention.d.ts.map +1 -1
  547. package/node_modules/@murphai/inboxd/dist/retention.js +1 -1
  548. package/node_modules/@murphai/inboxd/dist/retention.js.map +1 -1
  549. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.d.ts +1 -0
  550. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.d.ts.map +1 -1
  551. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.js +5 -0
  552. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.js.map +1 -1
  553. package/node_modules/@murphai/operator-config/dist/assistant-response-cards.d.ts +175 -152
  554. package/node_modules/@murphai/operator-config/dist/assistant-response-cards.d.ts.map +1 -1
  555. package/node_modules/@murphai/operator-config/dist/assistant-response-cards.js +62 -41
  556. package/node_modules/@murphai/operator-config/dist/assistant-response-cards.js.map +1 -1
  557. package/node_modules/@murphai/operator-config/dist/device-sync-client.d.ts.map +1 -1
  558. package/node_modules/@murphai/operator-config/dist/device-sync-client.js +1 -5
  559. package/node_modules/@murphai/operator-config/dist/device-sync-client.js.map +1 -1
  560. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.d.ts +66 -0
  561. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.d.ts.map +1 -1
  562. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.js +58 -0
  563. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.js.map +1 -1
  564. package/node_modules/@murphai/operator-config/dist/vault-cli-error-projection.d.ts +24 -0
  565. package/node_modules/@murphai/operator-config/dist/vault-cli-error-projection.d.ts.map +1 -0
  566. package/node_modules/@murphai/operator-config/dist/vault-cli-error-projection.js +219 -0
  567. package/node_modules/@murphai/operator-config/dist/vault-cli-error-projection.js.map +1 -0
  568. package/node_modules/@murphai/operator-config/dist/vault-cli-errors.d.ts.map +1 -1
  569. package/node_modules/@murphai/operator-config/dist/vault-cli-errors.js.map +1 -1
  570. package/node_modules/@murphai/operator-config/dist/workout-action-binding.d.ts +9 -0
  571. package/node_modules/@murphai/operator-config/dist/workout-action-binding.d.ts.map +1 -1
  572. package/node_modules/@murphai/operator-config/dist/workout-action-binding.js +48 -5
  573. package/node_modules/@murphai/operator-config/dist/workout-action-binding.js.map +1 -1
  574. package/node_modules/@murphai/operator-config/package.json +5 -0
  575. package/node_modules/@murphai/query/README.md +20 -5
  576. package/node_modules/@murphai/query/dist/browser-replica/build.d.ts +1 -1
  577. package/node_modules/@murphai/query/dist/browser-replica/build.d.ts.map +1 -1
  578. package/node_modules/@murphai/query/dist/browser-replica/build.js +25 -16
  579. package/node_modules/@murphai/query/dist/browser-replica/build.js.map +1 -1
  580. package/node_modules/@murphai/query/dist/browser-replica/json.d.ts +6 -0
  581. package/node_modules/@murphai/query/dist/browser-replica/json.d.ts.map +1 -0
  582. package/node_modules/@murphai/query/dist/browser-replica/json.js +103 -0
  583. package/node_modules/@murphai/query/dist/browser-replica/json.js.map +1 -0
  584. package/node_modules/@murphai/query/dist/browser-replica/shared.d.ts +1 -0
  585. package/node_modules/@murphai/query/dist/browser-replica/shared.d.ts.map +1 -1
  586. package/node_modules/@murphai/query/dist/browser-replica/source.d.ts +13 -0
  587. package/node_modules/@murphai/query/dist/browser-replica/source.d.ts.map +1 -0
  588. package/node_modules/@murphai/query/dist/browser-replica/source.js +45 -0
  589. package/node_modules/@murphai/query/dist/browser-replica/source.js.map +1 -0
  590. package/node_modules/@murphai/query/dist/browser-replica-server.d.ts +2 -0
  591. package/node_modules/@murphai/query/dist/browser-replica-server.d.ts.map +1 -1
  592. package/node_modules/@murphai/query/dist/browser-replica-server.js +2 -0
  593. package/node_modules/@murphai/query/dist/browser-replica-server.js.map +1 -1
  594. package/node_modules/@murphai/query/dist/health/blood-tests.d.ts.map +1 -1
  595. package/node_modules/@murphai/query/dist/health/blood-tests.js +3 -2
  596. package/node_modules/@murphai/query/dist/health/blood-tests.js.map +1 -1
  597. package/node_modules/@murphai/query/dist/health/canonical-collector.d.ts +11 -1
  598. package/node_modules/@murphai/query/dist/health/canonical-collector.d.ts.map +1 -1
  599. package/node_modules/@murphai/query/dist/health/canonical-collector.js +39 -16
  600. package/node_modules/@murphai/query/dist/health/canonical-collector.js.map +1 -1
  601. package/node_modules/@murphai/query/dist/health/entity-slices.d.ts +9 -3
  602. package/node_modules/@murphai/query/dist/health/entity-slices.d.ts.map +1 -1
  603. package/node_modules/@murphai/query/dist/health/entity-slices.js +6 -6
  604. package/node_modules/@murphai/query/dist/health/entity-slices.js.map +1 -1
  605. package/node_modules/@murphai/query/dist/health/immunizations.d.ts.map +1 -1
  606. package/node_modules/@murphai/query/dist/health/immunizations.js +14 -11
  607. package/node_modules/@murphai/query/dist/health/immunizations.js.map +1 -1
  608. package/node_modules/@murphai/query/dist/health/loaders.d.ts +21 -7
  609. package/node_modules/@murphai/query/dist/health/loaders.d.ts.map +1 -1
  610. package/node_modules/@murphai/query/dist/health/loaders.js +53 -15
  611. package/node_modules/@murphai/query/dist/health/loaders.js.map +1 -1
  612. package/node_modules/@murphai/query/dist/health/registries.d.ts +1 -0
  613. package/node_modules/@murphai/query/dist/health/registries.d.ts.map +1 -1
  614. package/node_modules/@murphai/query/dist/health/registries.js.map +1 -1
  615. package/node_modules/@murphai/query/dist/index.d.ts +4 -3
  616. package/node_modules/@murphai/query/dist/index.d.ts.map +1 -1
  617. package/node_modules/@murphai/query/dist/index.js +4 -3
  618. package/node_modules/@murphai/query/dist/index.js.map +1 -1
  619. package/node_modules/@murphai/query/dist/meal-nutrition.d.ts +1 -1
  620. package/node_modules/@murphai/query/dist/meal-nutrition.d.ts.map +1 -1
  621. package/node_modules/@murphai/query/dist/meal-nutrition.js +10 -3
  622. package/node_modules/@murphai/query/dist/meal-nutrition.js.map +1 -1
  623. package/node_modules/@murphai/query/dist/metrics/projection.d.ts.map +1 -1
  624. package/node_modules/@murphai/query/dist/metrics/projection.js +19 -6
  625. package/node_modules/@murphai/query/dist/metrics/projection.js.map +1 -1
  626. package/node_modules/@murphai/query/dist/murph-age.d.ts +5 -1
  627. package/node_modules/@murphai/query/dist/murph-age.d.ts.map +1 -1
  628. package/node_modules/@murphai/query/dist/murph-age.js +22 -8
  629. package/node_modules/@murphai/query/dist/murph-age.js.map +1 -1
  630. package/node_modules/@murphai/query/dist/projection/entity-store.js +4 -4
  631. package/node_modules/@murphai/query/dist/projection/entity-store.js.map +1 -1
  632. package/node_modules/@murphai/query/dist/projection/schema.d.ts +1 -1
  633. package/node_modules/@murphai/query/dist/projection/schema.d.ts.map +1 -1
  634. package/node_modules/@murphai/query/dist/projection/schema.js +3 -1
  635. package/node_modules/@murphai/query/dist/projection/schema.js.map +1 -1
  636. package/node_modules/@murphai/query/dist/projection/wearable-summary-compose.js +4 -0
  637. package/node_modules/@murphai/query/dist/projection/wearable-summary-compose.js.map +1 -1
  638. package/node_modules/@murphai/query/dist/projection/wearable-summary-projector.js +4 -0
  639. package/node_modules/@murphai/query/dist/projection/wearable-summary-projector.js.map +1 -1
  640. package/node_modules/@murphai/query/dist/query-visibility.d.ts +5 -0
  641. package/node_modules/@murphai/query/dist/query-visibility.d.ts.map +1 -1
  642. package/node_modules/@murphai/query/dist/query-visibility.js +11 -5
  643. package/node_modules/@murphai/query/dist/query-visibility.js.map +1 -1
  644. package/node_modules/@murphai/query/dist/read-model.d.ts +8 -0
  645. package/node_modules/@murphai/query/dist/read-model.d.ts.map +1 -1
  646. package/node_modules/@murphai/query/dist/read-model.js +11 -1
  647. package/node_modules/@murphai/query/dist/read-model.js.map +1 -1
  648. package/node_modules/@murphai/query/dist/scheduled-logs.d.ts.map +1 -1
  649. package/node_modules/@murphai/query/dist/scheduled-logs.js +55 -79
  650. package/node_modules/@murphai/query/dist/scheduled-logs.js.map +1 -1
  651. package/node_modules/@murphai/query/dist/vault-source.d.ts +22 -4
  652. package/node_modules/@murphai/query/dist/vault-source.d.ts.map +1 -1
  653. package/node_modules/@murphai/query/dist/vault-source.js +188 -59
  654. package/node_modules/@murphai/query/dist/vault-source.js.map +1 -1
  655. package/node_modules/@murphai/query/dist/wearables/candidates.d.ts.map +1 -1
  656. package/node_modules/@murphai/query/dist/wearables/candidates.js +26 -15
  657. package/node_modules/@murphai/query/dist/wearables/candidates.js.map +1 -1
  658. package/node_modules/@murphai/query/dist/wearables/public-output.d.ts.map +1 -1
  659. package/node_modules/@murphai/query/dist/wearables/public-output.js +6 -0
  660. package/node_modules/@murphai/query/dist/wearables/public-output.js.map +1 -1
  661. package/node_modules/@murphai/query/dist/wearables/source-health.d.ts.map +1 -1
  662. package/node_modules/@murphai/query/dist/wearables/source-health.js +4 -0
  663. package/node_modules/@murphai/query/dist/wearables/source-health.js.map +1 -1
  664. package/node_modules/@murphai/query/dist/wearables/types.d.ts +41 -4
  665. package/node_modules/@murphai/query/dist/wearables/types.d.ts.map +1 -1
  666. package/node_modules/@murphai/query/dist/wearables/types.js +2 -0
  667. package/node_modules/@murphai/query/dist/wearables/types.js.map +1 -1
  668. package/node_modules/@murphai/query/dist/wearables/workout-features.d.ts +5 -0
  669. package/node_modules/@murphai/query/dist/wearables/workout-features.d.ts.map +1 -0
  670. package/node_modules/@murphai/query/dist/wearables/workout-features.js +179 -0
  671. package/node_modules/@murphai/query/dist/wearables/workout-features.js.map +1 -0
  672. package/node_modules/@murphai/query/dist/wearables.d.ts.map +1 -1
  673. package/node_modules/@murphai/query/dist/wearables.js +23 -6
  674. package/node_modules/@murphai/query/dist/wearables.js.map +1 -1
  675. package/node_modules/@murphai/query/package.json +5 -0
  676. package/node_modules/@murphai/runtime-state/README.md +1 -1
  677. package/node_modules/@murphai/runtime-state/dist/assistant-runtime-issues.d.ts +4 -0
  678. package/node_modules/@murphai/runtime-state/dist/assistant-runtime-issues.d.ts.map +1 -1
  679. package/node_modules/@murphai/runtime-state/dist/assistant-runtime-issues.js +16 -3
  680. package/node_modules/@murphai/runtime-state/dist/assistant-runtime-issues.js.map +1 -1
  681. package/node_modules/@murphai/runtime-state/dist/hosted-bundles.d.ts +1 -0
  682. package/node_modules/@murphai/runtime-state/dist/hosted-bundles.d.ts.map +1 -1
  683. package/node_modules/@murphai/runtime-state/dist/hosted-bundles.js +31 -0
  684. package/node_modules/@murphai/runtime-state/dist/hosted-bundles.js.map +1 -1
  685. package/node_modules/@murphai/runtime-state/dist/hosted-email.d.ts +5 -0
  686. package/node_modules/@murphai/runtime-state/dist/hosted-email.d.ts.map +1 -1
  687. package/node_modules/@murphai/runtime-state/dist/hosted-email.js +10 -0
  688. package/node_modules/@murphai/runtime-state/dist/hosted-email.js.map +1 -1
  689. package/node_modules/@murphai/setup-cli/dist/incur-error-bridge.d.ts.map +1 -1
  690. package/node_modules/@murphai/setup-cli/dist/incur-error-bridge.js +6 -15
  691. package/node_modules/@murphai/setup-cli/dist/incur-error-bridge.js.map +1 -1
  692. package/node_modules/@murphai/vault-usecases/README.md +9 -0
  693. package/node_modules/@murphai/vault-usecases/dist/commands/query-record-command-helpers.d.ts +6 -0
  694. package/node_modules/@murphai/vault-usecases/dist/commands/query-record-command-helpers.d.ts.map +1 -1
  695. package/node_modules/@murphai/vault-usecases/dist/commands/query-record-command-helpers.js +49 -1
  696. package/node_modules/@murphai/vault-usecases/dist/commands/query-record-command-helpers.js.map +1 -1
  697. package/node_modules/@murphai/vault-usecases/dist/usecases/capture.d.ts.map +1 -1
  698. package/node_modules/@murphai/vault-usecases/dist/usecases/capture.js +22 -12
  699. package/node_modules/@murphai/vault-usecases/dist/usecases/capture.js.map +1 -1
  700. package/node_modules/@murphai/vault-usecases/dist/usecases/clinical-imports.d.ts.map +1 -1
  701. package/node_modules/@murphai/vault-usecases/dist/usecases/clinical-imports.js +1 -3
  702. package/node_modules/@murphai/vault-usecases/dist/usecases/clinical-imports.js.map +1 -1
  703. package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.d.ts.map +1 -1
  704. package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.js +24 -18
  705. package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.js.map +1 -1
  706. package/node_modules/@murphai/vault-usecases/dist/usecases/encounter.d.ts.map +1 -1
  707. package/node_modules/@murphai/vault-usecases/dist/usecases/encounter.js +1 -3
  708. package/node_modules/@murphai/vault-usecases/dist/usecases/encounter.js.map +1 -1
  709. package/node_modules/@murphai/vault-usecases/dist/usecases/event-record-mutations.d.ts +8 -0
  710. package/node_modules/@murphai/vault-usecases/dist/usecases/event-record-mutations.d.ts.map +1 -1
  711. package/node_modules/@murphai/vault-usecases/dist/usecases/event-record-mutations.js +56 -5
  712. package/node_modules/@murphai/vault-usecases/dist/usecases/event-record-mutations.js.map +1 -1
  713. package/node_modules/@murphai/vault-usecases/dist/usecases/exact-event-record.d.ts +20 -0
  714. package/node_modules/@murphai/vault-usecases/dist/usecases/exact-event-record.d.ts.map +1 -0
  715. package/node_modules/@murphai/vault-usecases/dist/usecases/exact-event-record.js +72 -0
  716. package/node_modules/@murphai/vault-usecases/dist/usecases/exact-event-record.js.map +1 -0
  717. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.d.ts +1 -1
  718. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.d.ts.map +1 -1
  719. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.js +42 -9
  720. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.js.map +1 -1
  721. package/node_modules/@murphai/vault-usecases/dist/usecases/explicit-health-family-services.d.ts.map +1 -1
  722. package/node_modules/@murphai/vault-usecases/dist/usecases/explicit-health-family-services.js +158 -24
  723. package/node_modules/@murphai/vault-usecases/dist/usecases/explicit-health-family-services.js.map +1 -1
  724. package/node_modules/@murphai/vault-usecases/dist/usecases/food.d.ts.map +1 -1
  725. package/node_modules/@murphai/vault-usecases/dist/usecases/food.js +98 -5
  726. package/node_modules/@murphai/vault-usecases/dist/usecases/food.js.map +1 -1
  727. package/node_modules/@murphai/vault-usecases/dist/usecases/integrated-services.d.ts.map +1 -1
  728. package/node_modules/@murphai/vault-usecases/dist/usecases/integrated-services.js +20 -4
  729. package/node_modules/@murphai/vault-usecases/dist/usecases/integrated-services.js.map +1 -1
  730. package/node_modules/@murphai/vault-usecases/dist/usecases/intervention-experiment-link.d.ts.map +1 -1
  731. package/node_modules/@murphai/vault-usecases/dist/usecases/intervention-experiment-link.js +49 -24
  732. package/node_modules/@murphai/vault-usecases/dist/usecases/intervention-experiment-link.js.map +1 -1
  733. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.d.ts.map +1 -1
  734. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.js +13 -11
  735. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.js.map +1 -1
  736. package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.d.ts.map +1 -1
  737. package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.js +18 -11
  738. package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.js.map +1 -1
  739. package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.d.ts.map +1 -1
  740. package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.js +43 -1
  741. package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.js.map +1 -1
  742. package/node_modules/@murphai/vault-usecases/dist/usecases/shared.d.ts.map +1 -1
  743. package/node_modules/@murphai/vault-usecases/dist/usecases/shared.js +1 -3
  744. package/node_modules/@murphai/vault-usecases/dist/usecases/shared.js.map +1 -1
  745. package/node_modules/@murphai/vault-usecases/dist/usecases/vault-usecase-helpers.d.ts +2 -0
  746. package/node_modules/@murphai/vault-usecases/dist/usecases/vault-usecase-helpers.d.ts.map +1 -1
  747. package/node_modules/@murphai/vault-usecases/dist/usecases/vault-usecase-helpers.js +24 -1
  748. package/node_modules/@murphai/vault-usecases/dist/usecases/vault-usecase-helpers.js.map +1 -1
  749. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-format.d.ts +2 -0
  750. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-format.d.ts.map +1 -1
  751. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.d.ts +36 -4
  752. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.d.ts.map +1 -1
  753. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.js +48 -12
  754. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.js.map +1 -1
  755. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.d.ts +14 -14
  756. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.d.ts.map +1 -1
  757. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.js +84 -82
  758. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.js.map +1 -1
  759. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.d.ts +16 -4
  760. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.d.ts.map +1 -1
  761. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.js +316 -79
  762. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.js.map +1 -1
  763. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.d.ts.map +1 -1
  764. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.js +19 -17
  765. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.js.map +1 -1
  766. package/node_modules/@murphai/vault-usecases/dist/usecases/workout.d.ts +20 -7
  767. package/node_modules/@murphai/vault-usecases/dist/usecases/workout.d.ts.map +1 -1
  768. package/node_modules/@murphai/vault-usecases/dist/usecases/workout.js +56 -31
  769. package/node_modules/@murphai/vault-usecases/dist/usecases/workout.js.map +1 -1
  770. package/node_modules/incur/dist/Cli.js +7 -32
  771. package/node_modules/incur/dist/Errors.d.ts +17 -0
  772. package/node_modules/incur/dist/Errors.js +23 -0
  773. package/node_modules/incur/dist/internal/command.d.ts +2 -0
  774. package/node_modules/incur/dist/internal/command.js +2 -6
  775. package/node_modules/incur/src/Cli.ts +11 -32
  776. package/node_modules/incur/src/Errors.ts +36 -0
  777. package/node_modules/incur/src/internal/command.ts +4 -6
  778. package/package.json +4 -4
  779. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/daily-nutrition-card-safety.md +0 -211
@@ -10,15 +10,17 @@ import { readHostedCanonicalWritePort, withHostedCanonicalWritePort, } from '@mu
10
10
  import { renderAssistantResponseCardText, renderAssistantResponseCardTranscriptText, renderAssistantWorkoutResponseCardText, renderAssistantWorkoutResponseCardTranscriptText, } from '@murphai/operator-config/assistant-response-cards';
11
11
  import { registerStopWarmCodexAppServer, registerWaitForWarmCodexBackgroundWork, } from './codex-lifecycle.js';
12
12
  import { extractAssistantMessageFallback, extractCodexErrorInfo, extractCodexErrorMessage, extractCodexCompletedFinalAgentMessageTextFromNormalized, extractCodexProgressEventFromNormalized, isCodexCompletedFinalAgentMessageItemFromNormalized, isCodexCompletedUserMessageItemFromNormalized, extractCodexStatusEventFromStderrLine, extractCodexTraceUpdatesFromNormalized, extractCodexContextCompactionProgressTextFromNormalized, normalizeCodexEvent, normalizeStreamingText, } from './assistant-codex-events.js';
13
- import { buildCodexTurnInterruptParams, buildCodexThreadResumeParams, buildCodexThreadStartParams, buildCodexTurnSteerParams, buildCodexTurnStartParams, mapCodexAppServerApprovalPolicy, mapCodexAppServerSandboxMode, resolveSupportedCodexAppServerApprovalPolicy, } from './assistant-codex/app-server-requests.js';
13
+ import { buildCodexTurnInterruptParams, buildCodexThreadMetadataResumeParams, buildCodexThreadResumeParams, buildCodexThreadStartParams, buildCodexTurnSteerParams, buildCodexTurnStartParams, mapCodexAppServerApprovalPolicy, mapCodexAppServerSandboxMode, resolveSupportedCodexAppServerApprovalPolicy, } from './assistant-codex/app-server-requests.js';
14
14
  import { createCodexActionDiagnosticsReducer, createCodexActionRuntimeIssueTracker, } from './assistant-codex/action-diagnostics.js';
15
- import { MURPH_ASSISTANT_STYLE_TOOL, MURPH_GROUP_ROOM_MODEL_TOOL, } from './assistant-codex/dynamic-tool-catalog.js';
15
+ import { createCodexWorkoutDeliveryContextTracker, } from './assistant-codex/workout-delivery-context.js';
16
+ import { MURPH_ASSISTANT_STYLE_TOOL, MURPH_GROUP_ROOM_MODEL_TOOL, MURPH_MEMBER_MEMORY_TOOL, } from './assistant-codex/dynamic-tool-catalog.js';
16
17
  import { createAskGrokTurnState, } from './assistant-codex/ask-grok-tool.js';
18
+ import { createAnalyzeVideoTurnState, } from './assistant-codex/analyze-video-tool.js';
17
19
  import { attachCodexAppServerProcessExitCleanup, attachCodexAbortListener, consumeCompleteLines, denyUnsupportedCodexServerRequest, rejectCodexServerRequest, readCodexRpcResponseId, readCodexRpcServerRequestId, rejectPendingCodexRpcRequests, resolvePendingCodexRpcRequest, signalCodexAppServerChild, stopCodexAppServerChild, stripUndefinedRpcParams, tryParseJsonLine, waitForCodexSpawn, withCodexRpcTimeout, writeCodexRpcMessage, } from './assistant-codex/app-server-rpc.js';
18
20
  import { readCodexNonEmptyString, readCodexRecord, readCodexThreadTokenUsage, } from './assistant-codex/app-server-protocol.js';
19
21
  import { resolveCodexChildEnv, withHostedCodexModelCatalogConfigOverride, } from './assistant-codex/config.js';
20
22
  import { buildCodexProcessExitError, buildCodexStdinFailureFallback, buildCodexTurnFailedError, extractCodexThreadIdFromMessage, extractCodexThreadIdFromResult, extractCodexThreadPathFromResult, extractCodexTurnErrorMessage, extractCodexTurnIdFromMessage, extractCodexTurnIdFromResult, extractCodexTurnStatus, isFailedCodexTurnStatus, readNodeErrorCode, } from './assistant-codex/failures.js';
21
- import { extractCodexSubagentUsageDrafts, isAssistantCodexTokenUsageEventType, readCodexCollabReceiverThreadIds, } from './assistant/providers/helpers.js';
23
+ import { buildCodexSubagentUsageDraft, extractCodexSubagentUsageDrafts, isAssistantCodexTokenUsageEventType, } from './assistant/providers/helpers.js';
22
24
  import { materializeCodexImages, normalizeCodexAppServerImageDetails, } from './assistant-codex/images.js';
23
25
  import { ASSISTANT_AUTHORED_RESPONSE_MEDIA_MAX_ITEMS, normalizeAssistantResponseMediaList, } from './assistant/response-media.js';
24
26
  import { completeAssistantProviderStartCriticalPath, readAssistantProviderStartMonotonicTickMs, stampAssistantProviderStartCriticalPath, } from './assistant/provider-start-critical-path.js';
@@ -53,9 +55,6 @@ const CODEX_TRANSPORT_DIAGNOSTICS_TRACE_TYPE = 'assistant.codex.transport_diagno
53
55
  const CODEX_GENERATED_AUDIO_PHASE_TIMING_TRACE_SCHEMA = 'murph.assistant-codex-generated-audio-phase-timing.v1';
54
56
  const CODEX_GENERATED_AUDIO_PHASE_TIMING_TRACE_TYPE = 'assistant.codex.generated_audio_phase_timing';
55
57
  const CODEX_APP_SERVER_STARTUP_STDERR_MAX_LENGTH = 16_384;
56
- // Bound on distinct subagent threads whose token usage is tracked per parent
57
- // turn. Far above any sane spawn fan-out; threads past the cap are ignored.
58
- const MAX_CODEX_SUBAGENT_USAGE_THREADS = 32;
59
58
  function prepareCodexRpcParams(method, params) {
60
59
  const stripped = stripUndefinedRpcParams(params);
61
60
  if (method === 'turn/start' &&
@@ -240,6 +239,7 @@ export async function executeCodexAppServerTurn(input) {
240
239
  publicInternetFetch: input.publicInternetFetch ?? null,
241
240
  tempRoot,
242
241
  voiceMemoRuntime: input.voiceMemoRuntime ?? null,
242
+ analyzeVideoRuntime: input.analyzeVideoRuntime ?? null,
243
243
  askGrokRuntime: input.askGrokRuntime ?? null,
244
244
  };
245
245
  let oneShotProcess = null;
@@ -424,8 +424,10 @@ class CodexAppServerProcess {
424
424
  // reply.
425
425
  detachedChildThreadIds = new Set();
426
426
  detachedCompletedChildThreadIds = new Set();
427
+ detachedChildMessageHandlers = new Map();
427
428
  detachedChildViolation = null;
428
429
  detachedRootThreadIds = new Set();
430
+ pendingDetachedUsageReports = new Set();
429
431
  stopCompleted = false;
430
432
  state = 'idle';
431
433
  stderrBuffer = '';
@@ -626,9 +628,18 @@ class CodexAppServerProcess {
626
628
  rejectPendingCodexRpcRequests(this.pendingRequests, error);
627
629
  }
628
630
  sendRequest(method, params) {
631
+ return this.beginRequest(method, params).promise;
632
+ }
633
+ sendRequestWithTimeout(input) {
634
+ const request = this.beginRequest(input.method, input.params);
635
+ return withCodexRpcTimeout(request.promise, input.timeoutMs, input.timeoutLabel, () => {
636
+ this.pendingRequests.delete(request.id);
637
+ });
638
+ }
639
+ beginRequest(method, params) {
629
640
  const id = this.nextRequestId;
630
641
  this.nextRequestId += 1;
631
- return new Promise((resolve, reject) => {
642
+ const promise = new Promise((resolve, reject) => {
632
643
  this.pendingRequests.set(id, {
633
644
  method,
634
645
  reject,
@@ -644,6 +655,7 @@ class CodexAppServerProcess {
644
655
  reject(failure);
645
656
  }
646
657
  });
658
+ return { id, promise };
647
659
  }
648
660
  sendNotification(method, params) {
649
661
  void this.writeRpcMessage({
@@ -668,6 +680,7 @@ class CodexAppServerProcess {
668
680
  this.assertBackgroundWorkProcessAvailable();
669
681
  await this.waitForDetachedChildren(signal);
670
682
  this.assertDetachedChildrenQuiescent();
683
+ await this.waitForDetachedUsageReports(signal);
671
684
  await this.assertNoBackgroundTerminals(signal);
672
685
  throwIfCodexBackgroundWorkWaitAborted(signal);
673
686
  this.assertBackgroundWorkProcessAvailable();
@@ -725,6 +738,18 @@ class CodexAppServerProcess {
725
738
  throw new VaultCliError('ASSISTANT_CODEX_BACKGROUND_WORK_FAILED', 'Detached Codex work was still active at the workspace boundary.', { retryable: true });
726
739
  }
727
740
  }
741
+ trackDetachedUsageReport(report) {
742
+ this.pendingDetachedUsageReports.add(report);
743
+ void report.finally(() => {
744
+ this.pendingDetachedUsageReports.delete(report);
745
+ });
746
+ }
747
+ async waitForDetachedUsageReports(signal) {
748
+ while (this.pendingDetachedUsageReports.size > 0) {
749
+ throwIfCodexBackgroundWorkWaitAborted(signal);
750
+ await Promise.all([...this.pendingDetachedUsageReports]);
751
+ }
752
+ }
728
753
  async assertNoBackgroundTerminals(signal) {
729
754
  const threadIds = new Set([
730
755
  ...this.detachedRootThreadIds,
@@ -744,6 +769,7 @@ class CodexAppServerProcess {
744
769
  clearDetachedChildBoundary() {
745
770
  this.detachedChildThreadIds.clear();
746
771
  this.detachedCompletedChildThreadIds.clear();
772
+ this.detachedChildMessageHandlers.clear();
747
773
  this.detachedChildViolation = null;
748
774
  this.detachedRootThreadIds.clear();
749
775
  }
@@ -763,6 +789,9 @@ class CodexAppServerProcess {
763
789
  }
764
790
  else {
765
791
  this.detachedChildThreadIds.add(activity.agentThreadId);
792
+ if (this.activeTurn?.onSubagentMessage) {
793
+ this.detachedChildMessageHandlers.set(activity.agentThreadId, this.activeTurn.onSubagentMessage);
794
+ }
766
795
  }
767
796
  }
768
797
  else {
@@ -993,11 +1022,6 @@ class CodexAppServerProcess {
993
1022
  noteBoundThreadModel(model) {
994
1023
  this.boundThreadModel = normalizeNullableString(model);
995
1024
  }
996
- // Exposed so a freshly bound turn can route foreign-thread events before
997
- // its own thread/start response has produced the new thread id.
998
- get lastBoundThreadId() {
999
- return this.boundThreadId;
1000
- }
1001
1025
  handleIdleServerMessage(message) {
1002
1026
  const responseId = readCodexRpcResponseId(message);
1003
1027
  if (responseId !== null) {
@@ -1021,11 +1045,41 @@ class CodexAppServerProcess {
1021
1045
  writeRpcMessage: (payload) => void this.writeRpcMessage(payload),
1022
1046
  });
1023
1047
  }
1048
+ routeSubagentMessage(message) {
1049
+ if (readCodexRpcResponseId(message) !== null) {
1050
+ return false;
1051
+ }
1052
+ const threadId = extractCodexThreadIdFromMessage(message);
1053
+ if (!threadId || this.detachedRootThreadIds.has(threadId)) {
1054
+ return false;
1055
+ }
1056
+ let handler = this.detachedChildMessageHandlers.get(threadId);
1057
+ const activeHandler = this.activeTurn?.onSubagentMessage;
1058
+ if (!handler && activeHandler) {
1059
+ // The app-server process is exclusively owned by Assistant Engine. A
1060
+ // foreign thread notification on an active root is therefore enough to
1061
+ // correlate that child with the current turn; parent item shape is not a
1062
+ // billing authorization boundary.
1063
+ handler = activeHandler;
1064
+ this.detachedChildMessageHandlers.set(threadId, handler);
1065
+ }
1066
+ if (!handler) {
1067
+ return false;
1068
+ }
1069
+ if (isCodexTurnStartedMethod(readCodexEventMethod(message))) {
1070
+ this.detachedChildThreadIds.add(threadId);
1071
+ }
1072
+ handler(message);
1073
+ return true;
1074
+ }
1024
1075
  handleStdoutLine(line) {
1025
1076
  const parsed = tryParseJsonLine(line);
1026
1077
  if (parsed.ok) {
1027
1078
  this.observeDetachedChildLifecycle(parsed.value);
1028
1079
  this.observeThreadTokenUsage(parsed.value);
1080
+ if (this.routeSubagentMessage(parsed.value)) {
1081
+ return;
1082
+ }
1029
1083
  if (this.activeTurn) {
1030
1084
  this.activeTurn.onParsedMessage(parsed.value);
1031
1085
  }
@@ -1913,6 +1967,29 @@ function isCodexTurnStartedMethod(method) {
1913
1967
  function createCodexSubagentTurnUsageKey(input) {
1914
1968
  return `${input.threadId}\u0000${input.turnId}`;
1915
1969
  }
1970
+ function readCodexSubagentEffectiveMetadataResult(input) {
1971
+ if (extractCodexThreadIdFromResult(input.result) !== input.threadId) {
1972
+ return null;
1973
+ }
1974
+ const result = readCodexRecord(input.result);
1975
+ if (!result) {
1976
+ return null;
1977
+ }
1978
+ const model = readCodexNonEmptyString(result.model);
1979
+ const modelProvider = readCodexNonEmptyString(result.modelProvider);
1980
+ const serviceTier = result.serviceTier;
1981
+ if (!model ||
1982
+ !modelProvider ||
1983
+ !Object.hasOwn(result, 'serviceTier') ||
1984
+ (serviceTier !== null && serviceTier !== 'flex')) {
1985
+ return null;
1986
+ }
1987
+ return {
1988
+ model,
1989
+ modelProvider,
1990
+ serviceTier,
1991
+ };
1992
+ }
1916
1993
  function isCodexTurnCompletedMethod(method) {
1917
1994
  return method === 'turn/completed';
1918
1995
  }
@@ -2071,6 +2148,9 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2071
2148
  let firstAssistantResponseCompleted = false;
2072
2149
  let trailingSteerCandidate = null;
2073
2150
  let completedUserMessageOrdinal = -1;
2151
+ const workoutDeliveryContext = createCodexWorkoutDeliveryContextTracker({
2152
+ contextReferences: input.trustedContextReferences,
2153
+ });
2074
2154
  let lastEventError = null;
2075
2155
  let lastEventErrorInfo = null;
2076
2156
  let responseMedia = [];
@@ -2087,8 +2167,9 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2087
2167
  const reservedNoReplyDeliveryContextOrdinals = new Set();
2088
2168
  const additionalUsages = [];
2089
2169
  let nextDynamicToolUsageOrdinal = (input.providerRequestOrdinal ?? 0) + 1;
2090
- // Trusted turn-scoped murph.ask_grok provider-call ceiling: one counter per
2091
- // assistant turn, owned here and threaded into the dynamic-tool executor.
2170
+ // Trusted turn-scoped provider-call ceilings: one counter per assistant turn,
2171
+ // owned here and threaded into the dynamic-tool executor.
2172
+ const analyzeVideoTurnState = createAnalyzeVideoTurnState();
2092
2173
  const askGrokTurnState = createAskGrokTurnState();
2093
2174
  const groupSharedReadTurnState = {
2094
2175
  currentSenderDecisionByMessageRef: new Map(),
@@ -2108,11 +2189,6 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2108
2189
  }
2109
2190
  : null;
2110
2191
  const subagentTokenUsageByTurn = new Map();
2111
- const trackedSubagentUsageThreadIds = new Set();
2112
- // Thread ids named by this turn's collab tool calls (spawn/sendInput/...),
2113
- // collected live so evidenced subagent threads win buffer slots over
2114
- // stale/unattributed foreign threads when the cap is reached.
2115
- const collabReceiverThreadIds = new Set();
2116
2192
  let rolloutRelativePath = null;
2117
2193
  let providerActionCount = 0;
2118
2194
  const providerActionItemIds = new Set();
@@ -2120,12 +2196,14 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2120
2196
  const runtimeIssueInputs = [];
2121
2197
  const actionRuntimeIssueTracker = createCodexActionRuntimeIssueTracker();
2122
2198
  let computerToolsLockedAfterUserPause = false;
2199
+ let requiredFinalResponseFallback = null;
2123
2200
  const requiredVaultFileApprovalUrls = [];
2124
2201
  const requiredAutomationLocalAtClarifications = new Map();
2125
2202
  const actionDiagnostics = input.onTraceEvent
2126
2203
  ? createCodexActionDiagnosticsReducer()
2127
2204
  : null;
2128
2205
  let actionDiagnosticsTraceEmitted = false;
2206
+ let requiredFinalResponseFallbackOutcome = null;
2129
2207
  const assistantStreams = new Map();
2130
2208
  const assistantStreamOrder = [];
2131
2209
  const externallyVisibleAssistantOutputDeliveryContexts = new Set();
@@ -2195,22 +2273,21 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2195
2273
  stderr,
2196
2274
  });
2197
2275
  };
2198
- // Subagent usage drafts are derived lazily from the buffered per-thread
2199
- // samples so both the success result and the failure context can include
2200
- // whatever child usage was observed before the turn settled.
2201
- const buildSubagentUsageDrafts = () => extractCodexSubagentUsageDrafts({
2202
- modelProvider: normalizeNullableString(input.modelProvider) ?? null,
2203
- ordinalStart: nextDynamicToolUsageOrdinal,
2204
- parentModel: normalizeNullableString(input.model) ?? null,
2205
- parentRawEvents: jsonEvents,
2206
- serviceTier: input.serviceTier ?? null,
2207
- subagentTokenUsageByTurn,
2208
- });
2276
+ const buildSubagentUsageDrafts = () => input.onAdditionalUsage
2277
+ ? []
2278
+ : extractCodexSubagentUsageDrafts({
2279
+ modelProvider: normalizeNullableString(input.modelProvider) ?? null,
2280
+ ordinalStart: nextDynamicToolUsageOrdinal,
2281
+ parentModel: normalizeNullableString(input.model) ?? null,
2282
+ serviceTier: input.serviceTier ?? null,
2283
+ subagentTokenUsageByTurn,
2284
+ });
2209
2285
  const hasNoReplyFinalActionPatch = () => finalActionPatches.some((entry) => entry.patch.kind === 'none');
2210
2286
  const listNoReplyFinalActionPatchOrdinals = () => [...new Set(finalActionPatches
2211
2287
  .filter((entry) => entry.patch.kind === 'none')
2212
2288
  .map((entry) => entry.deliveryContextOrdinal))].sort((left, right) => left - right);
2213
2289
  const hasRequiredUserVisibleOutput = () => computerToolsLockedAfterUserPause ||
2290
+ requiredFinalResponseFallback !== null ||
2214
2291
  requiredAutomationLocalAtClarifications.size > 0 ||
2215
2292
  requiredVaultFileApprovalUrls.length > 0;
2216
2293
  const settleNoReplyFinalActions = async () => {
@@ -2516,6 +2593,11 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2516
2593
  ? renderAssistantWorkoutResponseCardTranscriptText(trailingSteerCandidate.cardTextFallback)
2517
2594
  : response;
2518
2595
  precedingAgentMessageSegments.push({
2596
+ ...(trailingSteerCandidate.contextReferences === undefined
2597
+ ? {}
2598
+ : {
2599
+ contextReferences: trailingSteerCandidate.contextReferences,
2600
+ }),
2519
2601
  deliveryContextOrdinal: trailingSteerCandidate.deliveryContextOrdinal,
2520
2602
  media: [...trailingSteerCandidate.media],
2521
2603
  response,
@@ -3158,6 +3240,9 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3158
3240
  groupRoomModelAvailable: input.dynamicTools.some((tool) => tool.namespace === MURPH_GROUP_ROOM_MODEL_TOOL.namespace &&
3159
3241
  tool.name === MURPH_GROUP_ROOM_MODEL_TOOL.name),
3160
3242
  groupRoomModelMaintenanceAuthorized: input.groupRoomModelMaintenanceAuthorized === true,
3243
+ memberMemoryAvailable: input.dynamicTools.some((tool) => tool.namespace === MURPH_MEMBER_MEMORY_TOOL.namespace &&
3244
+ tool.name === MURPH_MEMBER_MEMORY_TOOL.name),
3245
+ memberMemoryMaintenanceAuthorized: input.memberMemoryMaintenanceAuthorized === true,
3161
3246
  abortSignal: input.abortSignal
3162
3247
  ? AbortSignal.any([input.abortSignal, dynamicToolAbortController.signal])
3163
3248
  : dynamicToolAbortController.signal,
@@ -3204,6 +3289,10 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3204
3289
  dynamicToolRequest.kind === 'generate-song'
3205
3290
  ? input.voiceMemoRuntime ?? null
3206
3291
  : null,
3292
+ analyzeVideoRuntime: dynamicToolRequest.kind === 'analyze-video'
3293
+ ? input.analyzeVideoRuntime ?? null
3294
+ : null,
3295
+ analyzeVideoTurnState,
3207
3296
  askGrokRuntime: dynamicToolRequest.kind === 'ask-grok'
3208
3297
  ? input.askGrokRuntime ?? null
3209
3298
  : null,
@@ -3215,6 +3304,19 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3215
3304
  if (dynamicToolRequest.kind === 'send-progress-update') {
3216
3305
  releaseDynamicProgressPending?.();
3217
3306
  }
3307
+ if (dynamicToolRequest.kind === 'analyze-video') {
3308
+ const analyzeVideoFallback = normalizeNullableString(result.requiredFinalResponseFallback);
3309
+ if (analyzeVideoFallback !== null) {
3310
+ if (result.rpcResult.success) {
3311
+ requiredFinalResponseFallback = analyzeVideoFallback;
3312
+ requiredFinalResponseFallbackOutcome = 'analyze-video-success';
3313
+ }
3314
+ else if (requiredFinalResponseFallbackOutcome !== 'analyze-video-success') {
3315
+ requiredFinalResponseFallback = analyzeVideoFallback;
3316
+ requiredFinalResponseFallbackOutcome = 'analyze-video-failure';
3317
+ }
3318
+ }
3319
+ }
3218
3320
  for (const runtimeIssueInput of result.runtimeIssueInputs ?? []) {
3219
3321
  pushRuntimeIssueInput(runtimeIssueInput);
3220
3322
  }
@@ -3430,9 +3532,6 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3430
3532
  codexTimingTurnCompletedNotificationElapsedMs = Math.max(0, observedAtMs - providerRequestStartedAtMs);
3431
3533
  }
3432
3534
  }
3433
- for (const receiverThreadId of readCodexCollabReceiverThreadIds(message)) {
3434
- collabReceiverThreadIds.add(receiverThreadId);
3435
- }
3436
3535
  lastEventError = extractCodexErrorMessage(message) ?? lastEventError;
3437
3536
  lastEventErrorInfo = extractCodexErrorInfo(message) ?? lastEventErrorInfo;
3438
3537
  const normalizedEvent = normalizeCodexEvent(message);
@@ -3480,6 +3579,10 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3480
3579
  providerActionCount += 1;
3481
3580
  }
3482
3581
  const deliveryContextOrdinal = currentDeliveryContextOrdinal();
3582
+ workoutDeliveryContext.observe({
3583
+ deliveryContextOrdinal,
3584
+ event: normalizedEvent,
3585
+ });
3483
3586
  const suppressDeliveryContext = shouldSuppressDeliveryContext(deliveryContextOrdinal);
3484
3587
  const isCommentaryAssistantMessage = normalizedEvent.kind === 'assistant_message' &&
3485
3588
  normalizedEvent.messagePhase === 'commentary';
@@ -3520,6 +3623,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3520
3623
  (completedFinalAgentMessageText !== null ||
3521
3624
  responseMedia.length > 0);
3522
3625
  if (completedFinalAgentResponse && !suppressDeliveryContext) {
3626
+ workoutDeliveryContext.recordCompletedResponse(deliveryContextOrdinal);
3523
3627
  promoteTrailingSteerCandidate();
3524
3628
  completedFinalAgentMessage = completedFinalAgentMessageText ?? '';
3525
3629
  if (!firstAssistantResponseCompleted) {
@@ -3531,7 +3635,9 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3531
3635
  if (completedFinalAgentMessage !== null) {
3532
3636
  const completedResponseDeliveryContextOrdinal = Math.max(0, completedUserMessageOrdinal);
3533
3637
  const completedResponseTargetInputId = resolveReplyTargetPatch(completedResponseDeliveryContextOrdinal)?.targetInputId ?? null;
3638
+ const contextReferences = workoutDeliveryContext.readReferences(completedResponseDeliveryContextOrdinal);
3534
3639
  trailingSteerCandidate = {
3640
+ ...(contextReferences === undefined ? {} : { contextReferences }),
3535
3641
  deliveryContextOrdinal: completedResponseDeliveryContextOrdinal,
3536
3642
  response: completedFinalAgentMessage,
3537
3643
  media: [...responseMedia],
@@ -3618,33 +3724,17 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3618
3724
  if (subagentTokenUsageByTurn.has(usageKey)) {
3619
3725
  return;
3620
3726
  }
3621
- if (!trackedSubagentUsageThreadIds.has(threadId)
3622
- && trackedSubagentUsageThreadIds.size >= MAX_CODEX_SUBAGENT_USAGE_THREADS) {
3623
- const evictableThreadId = collabReceiverThreadIds.has(threadId)
3624
- ? [...trackedSubagentUsageThreadIds].find((trackedThreadId) => !collabReceiverThreadIds.has(trackedThreadId))
3625
- : undefined;
3626
- if (evictableThreadId === undefined) {
3627
- return;
3628
- }
3629
- trackedSubagentUsageThreadIds.delete(evictableThreadId);
3630
- for (const [trackedUsageKey, sample] of subagentTokenUsageByTurn) {
3631
- if (sample.threadId === evictableThreadId) {
3632
- subagentTokenUsageByTurn.delete(trackedUsageKey);
3633
- }
3634
- }
3635
- }
3636
- trackedSubagentUsageThreadIds.add(threadId);
3637
3727
  subagentTokenUsageByTurn.set(usageKey, {
3638
3728
  firstEvent: null,
3639
3729
  lastEvent: null,
3640
3730
  occurredAt: new Date().toISOString(),
3731
+ providerRequestOutcome: 'succeeded',
3641
3732
  threadId,
3642
3733
  turnId: messageTurnId,
3643
3734
  });
3644
3735
  return;
3645
3736
  }
3646
- if (!isAssistantCodexTokenUsageEventType(eventMethod)
3647
- || !messageTurnId) {
3737
+ if (!messageTurnId) {
3648
3738
  return;
3649
3739
  }
3650
3740
  const usageKey = createCodexSubagentTurnUsageKey({
@@ -3652,10 +3742,32 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3652
3742
  turnId: messageTurnId,
3653
3743
  });
3654
3744
  const sample = subagentTokenUsageByTurn.get(usageKey);
3745
+ if (isCodexTurnCompletedMethod(eventMethod)) {
3746
+ if (!sample) {
3747
+ return;
3748
+ }
3749
+ const status = extractCodexTurnStatus(message);
3750
+ sample.providerRequestOutcome = status === 'interrupted'
3751
+ ? 'aborted'
3752
+ : isFailedCodexTurnStatus(status)
3753
+ ? 'partial'
3754
+ : 'succeeded';
3755
+ if (!input.onAdditionalUsage) {
3756
+ return;
3757
+ }
3758
+ // Removing the terminal sample is the exactly-once fence.
3759
+ subagentTokenUsageByTurn.delete(usageKey);
3760
+ if (sample.firstEvent === null || sample.lastEvent === null) {
3761
+ return;
3762
+ }
3763
+ reportSubagentUsage(sample);
3764
+ return;
3765
+ }
3766
+ if (!isAssistantCodexTokenUsageEventType(eventMethod)) {
3767
+ return;
3768
+ }
3655
3769
  if (!sample) {
3656
- // A child token sample without an observed start has no safe accounting
3657
- // timestamp. Parent collab evidence authorizes the child but cannot
3658
- // establish when its provider operation began.
3770
+ // A child token sample without an observed start has no accounting timestamp.
3659
3771
  return;
3660
3772
  }
3661
3773
  sample.firstEvent ??= message;
@@ -3727,19 +3839,6 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3727
3839
  }
3728
3840
  return;
3729
3841
  }
3730
- // Codex owns subagent/thread lifecycle. Murph only keeps foreign thread
3731
- // traffic away from the active parent turn: token usage is buffered for
3732
- // billing, server requests are denied, and other child events are dropped.
3733
- // Before a fresh thread/start response produces this turn's thread id, the
3734
- // previous bound thread id is enough to distinguish late child traffic.
3735
- const messageThreadId = extractCodexThreadIdFromMessage(message);
3736
- const knownParentThreadId = codexThreadId ?? requestedResumeThreadId ?? codexProcess.lastBoundThreadId;
3737
- if (messageThreadId !== null &&
3738
- knownParentThreadId !== null &&
3739
- messageThreadId !== knownParentThreadId) {
3740
- handleSubagentThreadMessage(messageThreadId, message);
3741
- return;
3742
- }
3743
3842
  const messageTurnId = extractCodexTurnIdFromMessage(message);
3744
3843
  const method = readCodexEventMethod(message);
3745
3844
  const requestId = readCodexRpcServerRequestId(message);
@@ -3785,6 +3884,12 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3785
3884
  method !== 'model/rerouted') {
3786
3885
  return;
3787
3886
  }
3887
+ if (method === 'rawResponseItem/completed' ||
3888
+ method === 'rawResponse/completed') {
3889
+ // Raw response notifications can contain provider payload content and
3890
+ // do not belong in the parent turn's persisted event surface.
3891
+ return;
3892
+ }
3788
3893
  handleAcceptedEvent(message, method);
3789
3894
  }
3790
3895
  const emitActionDiagnosticsTrace = () => {
@@ -3814,6 +3919,31 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3814
3919
  }
3815
3920
  };
3816
3921
  const sendRequest = (method, params) => codexProcess.sendRequest(method, params);
3922
+ const readSubagentEffectiveMetadata = (threadId) => codexProcess.sendRequestWithTimeout({
3923
+ method: 'thread/resume',
3924
+ params: buildCodexThreadMetadataResumeParams(threadId),
3925
+ timeoutLabel: 'thread/resume',
3926
+ timeoutMs: CODEX_BACKGROUND_WORK_RPC_TIMEOUT_MS,
3927
+ }).then((result) => readCodexSubagentEffectiveMetadataResult({ result, threadId })).catch(() => null);
3928
+ const reportSubagentUsage = (sample) => {
3929
+ const ordinal = nextDynamicToolUsageOrdinal++;
3930
+ const report = readSubagentEffectiveMetadata(sample.threadId)
3931
+ .then(async (metadata) => {
3932
+ if (!metadata) {
3933
+ return;
3934
+ }
3935
+ const draft = buildCodexSubagentUsageDraft({
3936
+ metadata,
3937
+ ordinal,
3938
+ sample,
3939
+ });
3940
+ if (draft) {
3941
+ await input.onAdditionalUsage?.(draft);
3942
+ }
3943
+ })
3944
+ .catch(() => undefined);
3945
+ codexProcess.trackDetachedUsageReport(report);
3946
+ };
3817
3947
  const requireLiveTurnIds = () => {
3818
3948
  if (!liveTurnOpen || !codexThreadId || !turnId) {
3819
3949
  throw buildLiveTurnInactiveError();
@@ -3914,6 +4044,12 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3914
4044
  }));
3915
4045
  },
3916
4046
  onParsedMessage: handleParsedMessage,
4047
+ onSubagentMessage(message) {
4048
+ const threadId = extractCodexThreadIdFromMessage(message);
4049
+ if (threadId) {
4050
+ handleSubagentThreadMessage(threadId, message);
4051
+ }
4052
+ },
3917
4053
  onStderrLine(line) {
3918
4054
  const progressEvent = extractCodexStatusEventFromStderrLine(line);
3919
4055
  if (progressEvent) {
@@ -3963,12 +4099,6 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3963
4099
  threadResult,
3964
4100
  });
3965
4101
  }
3966
- else if (normalizeNullableString(input.permissions)) {
3967
- assertCodexThreadStartPermissionAttestation({
3968
- input,
3969
- threadResult,
3970
- });
3971
- }
3972
4102
  codexThreadId = extractCodexThreadIdFromResult(threadResult) ?? codexThreadId;
3973
4103
  codexProcess.noteBoundThreadId(codexThreadId);
3974
4104
  rolloutRelativePath = resolveCodexRolloutRelativePath({
@@ -4147,19 +4277,25 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
4147
4277
  : finalResponseCardTextFallback
4148
4278
  ? renderAssistantWorkoutResponseCardText(finalResponseCardTextFallback)
4149
4279
  : modelFinalMessage;
4280
+ const requiredSemanticFinalMessage = normalizeNullableString(semanticFinalMessage) ??
4281
+ requiredFinalResponseFallback ??
4282
+ semanticFinalMessage;
4150
4283
  const requiredAutomationLocalAtClarificationsInOrder = [...requiredAutomationLocalAtClarifications.values()];
4151
4284
  const deliveredFinalResponseCard = requiredAutomationLocalAtClarificationsInOrder.length === 0
4152
4285
  ? finalResponseCard
4153
4286
  : null;
4154
- const finalMessage = appendRequiredVaultFileApprovalUrls(appendRequiredAutomationLocalAtClarification(semanticFinalMessage, requiredAutomationLocalAtClarificationsInOrder), requiredVaultFileApprovalUrls);
4155
- const transcriptMessage = appendRequiredAutomationLocalAtClarification(finalResponseCard
4287
+ const finalMessage = appendRequiredVaultFileApprovalUrls(appendRequiredAutomationLocalAtClarification(requiredSemanticFinalMessage, requiredAutomationLocalAtClarificationsInOrder), requiredVaultFileApprovalUrls);
4288
+ const semanticTranscriptMessage = finalResponseCard
4156
4289
  ? requiredAutomationLocalAtClarificationsInOrder.length === 0
4157
4290
  ? renderAssistantResponseCardTranscriptText(finalResponseCard)
4158
4291
  : renderAssistantResponseCardText(finalResponseCard)
4159
4292
  : finalResponseCardTextFallback
4160
4293
  ? renderAssistantWorkoutResponseCardTranscriptText(finalResponseCardTextFallback)
4161
4294
  : normalizeNullableString(modelFinalMessage) ??
4162
- (finalResponseMedia.length > 0 ? '' : null), requiredAutomationLocalAtClarificationsInOrder);
4295
+ (finalResponseMedia.length > 0 ? '' : null);
4296
+ const transcriptMessage = appendRequiredAutomationLocalAtClarification(normalizeNullableString(semanticTranscriptMessage) ??
4297
+ requiredFinalResponseFallback ??
4298
+ semanticTranscriptMessage, requiredAutomationLocalAtClarificationsInOrder);
4163
4299
  if (noReplySelected &&
4164
4300
  normalizeNullableString(extractedFinalMessage) !== null) {
4165
4301
  emitCodexSuppressedFinalMessageTrace({
@@ -4175,6 +4311,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
4175
4311
  (!noReplySelected && (finalResponseMedia.length > 0 ||
4176
4312
  deliveredFinalResponseCard !== null ||
4177
4313
  finalResponseCardTextFallback !== null));
4314
+ const finalResponseContextReferences = workoutDeliveryContext.readReferences(finalDeliveryContextOrdinal);
4178
4315
  return {
4179
4316
  acceptedNoReplyDeliveryContextOrdinals: acceptedNoReplyDeliveryContextOrdinals,
4180
4317
  finalAction,
@@ -4188,6 +4325,9 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
4188
4325
  targetInputId: entry.patch.targetInputId,
4189
4326
  })),
4190
4327
  precedingAgentMessageSegments: filteredPrecedingAgentMessageSegments.map((segment) => ({
4328
+ ...(segment.contextReferences === undefined
4329
+ ? {}
4330
+ : { contextReferences: segment.contextReferences }),
4191
4331
  deliveryContextOrdinal: segment.deliveryContextOrdinal,
4192
4332
  response: segment.response,
4193
4333
  ...(segment.transcriptResponse === undefined
@@ -4199,6 +4339,9 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
4199
4339
  : {}),
4200
4340
  })),
4201
4341
  responseDeliveryContextOrdinal: finalDeliveryContextOrdinal,
4342
+ ...(finalResponseContextReferences === undefined
4343
+ ? {}
4344
+ : { responseContextReferences: finalResponseContextReferences }),
4202
4345
  targetInputId: resolveReplyTargetPatch(finalDeliveryContextOrdinal)?.targetInputId ?? null,
4203
4346
  additionalUsages: [...additionalUsages, ...buildSubagentUsageDrafts()],
4204
4347
  responseMedia: finalHasDeliverableOutput ? [...finalResponseMedia] : [],
@@ -4231,46 +4374,6 @@ function mergeAutomationRelativeDateReferenceWindows(preceding, current) {
4231
4374
  latestAt: new Date(latestAtMs).toISOString(),
4232
4375
  };
4233
4376
  }
4234
- function assertCodexThreadStartPermissionAttestation(input) {
4235
- const result = asCodexRecord(input.threadResult);
4236
- const activePermissionProfile = asCodexRecord(result?.activePermissionProfile);
4237
- const actualCwd = normalizeNullableString(asCodexString(result?.cwd));
4238
- const actualRoots = asCodexStringArray(result?.runtimeWorkspaceRoots);
4239
- const instructionSources = Array.isArray(result?.instructionSources)
4240
- ? result.instructionSources
4241
- : null;
4242
- const expectedRoots = input.input.runtimeWorkspaceRoots ?? [];
4243
- const mismatchedFields = [];
4244
- const permissionProfileMismatch = normalizeNullableString(asCodexString(activePermissionProfile?.id)) !==
4245
- normalizeNullableString(input.input.permissions) ||
4246
- normalizeNullableString(asCodexString(activePermissionProfile?.extends)) !== null;
4247
- if (permissionProfileMismatch) {
4248
- mismatchedFields.push('activePermissionProfile');
4249
- }
4250
- if (!actualRoots ||
4251
- actualRoots.length !== expectedRoots.length ||
4252
- actualRoots.some((root, index) => path.resolve(root) !== path.resolve(expectedRoots[index] ?? ''))) {
4253
- mismatchedFields.push('runtimeWorkspaceRoots');
4254
- }
4255
- if (!actualCwd || path.resolve(actualCwd) !== input.input.workingDirectory) {
4256
- mismatchedFields.push('cwd');
4257
- }
4258
- if (input.input.processLifetime === 'one-shot' &&
4259
- (instructionSources === null || instructionSources.length !== 0)) {
4260
- mismatchedFields.push('instructionSources');
4261
- }
4262
- if (asCodexString(result?.approvalPolicy) !==
4263
- mapCodexAppServerApprovalPolicy(input.input.approvalPolicy)) {
4264
- mismatchedFields.push('approvalPolicy');
4265
- }
4266
- if (mismatchedFields.length === 0) {
4267
- return;
4268
- }
4269
- throw new VaultCliError('ASSISTANT_CODEX_APP_SERVER_PERMISSION_ATTESTATION_FAILED', 'Codex app-server did not attest the requested named-permission execution context.', {
4270
- mismatchedFields,
4271
- retryable: false,
4272
- });
4273
- }
4274
4377
  function emitCodexSuppressedFinalMessageTrace(input) {
4275
4378
  if (!input.onTraceEvent) {
4276
4379
  return;
@@ -4338,20 +4441,7 @@ function notifyCodexAppServerProviderRequestStartedBestEffort(input) {
4338
4441
  }
4339
4442
  }
4340
4443
  function isInvalidDynamicToolRequest(request) {
4341
- return (request.kind === 'invalid-generate-image-arguments' ||
4342
- request.kind === 'invalid-automation-arguments' ||
4343
- request.kind === 'invalid-assistant-style-arguments' ||
4344
- request.kind === 'invalid-computer-arguments' ||
4345
- request.kind === 'invalid-device-arguments' ||
4346
- request.kind === 'invalid-generate-voice-memo-arguments' ||
4347
- request.kind === 'invalid-pending-vault-files-arguments' ||
4348
- request.kind === 'invalid-finish-without-reply-arguments' ||
4349
- request.kind === 'invalid-progress-arguments' ||
4350
- request.kind === 'invalid-reaction-arguments' ||
4351
- request.kind === 'invalid-reply-target-arguments' ||
4352
- request.kind === 'invalid-product-feedback-arguments' ||
4353
- request.kind === 'invalid-response-card-arguments' ||
4354
- request.kind === 'invalid-response-media-arguments');
4444
+ return 'validationDigest' in request;
4355
4445
  }
4356
4446
  function isSerializedDynamicToolRequest(request) {
4357
4447
  return request.kind === 'automation' ||