@murphai/murph 1.3.0 → 1.3.1

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 (2199) hide show
  1. package/CHANGELOG.md +3077 -0
  2. package/config.schema.json +650 -30
  3. package/dist/cli-entry.js +1 -1
  4. package/dist/cli-entry.js.map +1 -1
  5. package/dist/commands/automation.d.ts +143 -104
  6. package/dist/commands/automation.d.ts.map +1 -1
  7. package/dist/commands/automation.js +71 -13
  8. package/dist/commands/automation.js.map +1 -1
  9. package/dist/commands/batch.d.ts +3 -0
  10. package/dist/commands/batch.d.ts.map +1 -1
  11. package/dist/commands/batch.js +18 -45
  12. package/dist/commands/batch.js.map +1 -1
  13. package/dist/commands/clinical-imports.d.ts +103 -103
  14. package/dist/commands/command-factory-primitives.d.ts +1 -1
  15. package/dist/commands/command-factory-primitives.d.ts.map +1 -1
  16. package/dist/commands/command-factory-primitives.js +1 -1
  17. package/dist/commands/command-factory-primitives.js.map +1 -1
  18. package/dist/commands/commons.d.ts +59 -0
  19. package/dist/commands/commons.d.ts.map +1 -1
  20. package/dist/commands/commons.js +81 -1
  21. package/dist/commands/commons.js.map +1 -1
  22. package/dist/commands/document.d.ts.map +1 -1
  23. package/dist/commands/document.js +31 -1
  24. package/dist/commands/document.js.map +1 -1
  25. package/dist/commands/encounter.d.ts +128 -128
  26. package/dist/commands/event.d.ts.map +1 -1
  27. package/dist/commands/event.js +7 -1
  28. package/dist/commands/event.js.map +1 -1
  29. package/dist/commands/experiment-progress-card-image.d.ts.map +1 -1
  30. package/dist/commands/experiment-progress-card-image.js +13 -4
  31. package/dist/commands/experiment-progress-card-image.js.map +1 -1
  32. package/dist/commands/experiment.d.ts.map +1 -1
  33. package/dist/commands/experiment.js +6 -0
  34. package/dist/commands/experiment.js.map +1 -1
  35. package/dist/commands/export-intake-read-helpers.d.ts.map +1 -1
  36. package/dist/commands/export-intake-read-helpers.js +7 -3
  37. package/dist/commands/export-intake-read-helpers.js.map +1 -1
  38. package/dist/commands/food.d.ts.map +1 -1
  39. package/dist/commands/food.js +12 -4
  40. package/dist/commands/food.js.map +1 -1
  41. package/dist/commands/meal.d.ts.map +1 -1
  42. package/dist/commands/meal.js +54 -3
  43. package/dist/commands/meal.js.map +1 -1
  44. package/dist/commands/measurement.d.ts +1 -0
  45. package/dist/commands/measurement.d.ts.map +1 -1
  46. package/dist/commands/measurement.js +48 -2
  47. package/dist/commands/measurement.js.map +1 -1
  48. package/dist/commands/medication.d.ts +6 -6
  49. package/dist/commands/model.js +7 -11
  50. package/dist/commands/model.js.map +1 -1
  51. package/dist/commands/occurred-at-option.d.ts.map +1 -1
  52. package/dist/commands/occurred-at-option.js +7 -41
  53. package/dist/commands/occurred-at-option.js.map +1 -1
  54. package/dist/commands/payload-schema-command.d.ts +2 -2
  55. package/dist/commands/payload-schema-command.d.ts.map +1 -1
  56. package/dist/commands/payload-schema-command.js +1 -1
  57. package/dist/commands/payload-schema-command.js.map +1 -1
  58. package/dist/commands/research.d.ts.map +1 -1
  59. package/dist/commands/research.js +26 -28
  60. package/dist/commands/research.js.map +1 -1
  61. package/dist/commands/route.d.ts.map +1 -1
  62. package/dist/commands/route.js +45 -1
  63. package/dist/commands/route.js.map +1 -1
  64. package/dist/commands/scheduled-log.d.ts +130 -124
  65. package/dist/commands/scheduled-log.d.ts.map +1 -1
  66. package/dist/commands/wearables.d.ts +1109 -20
  67. package/dist/commands/wearables.d.ts.map +1 -1
  68. package/dist/commands/wearables.js +102 -2
  69. package/dist/commands/wearables.js.map +1 -1
  70. package/dist/commands/workout-live.d.ts +3 -0
  71. package/dist/commands/workout-live.d.ts.map +1 -0
  72. package/dist/commands/workout-live.js +291 -0
  73. package/dist/commands/workout-live.js.map +1 -0
  74. package/dist/commands/workout.d.ts.map +1 -1
  75. package/dist/commands/workout.js +35 -11
  76. package/dist/commands/workout.js.map +1 -1
  77. package/dist/food-labels.d.ts +549 -277
  78. package/dist/food-labels.d.ts.map +1 -1
  79. package/dist/food-labels.js +19 -3
  80. package/dist/food-labels.js.map +1 -1
  81. package/dist/foreground-terminal-logging.js +0 -2
  82. package/dist/foreground-terminal-logging.js.map +1 -1
  83. package/dist/hosted-data-api-labels.d.ts +1683 -871
  84. package/dist/hosted-data-api-labels.d.ts.map +1 -1
  85. package/dist/hosted-data-api-labels.js +63 -1
  86. package/dist/hosted-data-api-labels.js.map +1 -1
  87. package/dist/incur.generated.d.ts +148 -2
  88. package/dist/incur.generated.d.ts.map +1 -1
  89. package/dist/mapbox-address.d.ts +41 -0
  90. package/dist/mapbox-address.d.ts.map +1 -0
  91. package/dist/mapbox-address.js +470 -0
  92. package/dist/mapbox-address.js.map +1 -0
  93. package/dist/mapbox-route-contracts.d.ts +60 -60
  94. package/dist/mapbox-route-contracts.d.ts.map +1 -1
  95. package/dist/mapbox-route-contracts.js +1 -1
  96. package/dist/mapbox-route-contracts.js.map +1 -1
  97. package/dist/mapbox-route-directions.js +1 -1
  98. package/dist/mapbox-route-directions.js.map +1 -1
  99. package/dist/research-scout-client.d.ts +3 -2
  100. package/dist/research-scout-client.d.ts.map +1 -1
  101. package/dist/research-scout-client.js +166 -37
  102. package/dist/research-scout-client.js.map +1 -1
  103. package/dist/research-scout.d.ts +1 -1
  104. package/dist/research-scout.d.ts.map +1 -1
  105. package/dist/research-scout.js +1 -1
  106. package/dist/research-scout.js.map +1 -1
  107. package/dist/supplement-labels.d.ts +545 -275
  108. package/dist/supplement-labels.d.ts.map +1 -1
  109. package/dist/supplement-labels.js +0 -1
  110. package/dist/supplement-labels.js.map +1 -1
  111. package/dist/vault-cli-command-manifest.d.ts +1878 -404
  112. package/dist/vault-cli-command-manifest.d.ts.map +1 -1
  113. package/dist/vault-cli-command-manifest.js +35 -10
  114. package/dist/vault-cli-command-manifest.js.map +1 -1
  115. package/dist/vault-cli-skill-hash.generated.d.ts +1 -1
  116. package/dist/vault-cli-skill-hash.generated.js +1 -1
  117. package/dist/vault-cli-vault-context.js +0 -1
  118. package/dist/vault-cli-vault-context.js.map +1 -1
  119. package/node_modules/@murphai/assistant-cli/dist/assistant/service.d.ts +9 -0
  120. package/node_modules/@murphai/assistant-cli/dist/assistant/service.d.ts.map +1 -1
  121. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/chat-controller-models.d.ts.map +1 -1
  122. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/chat-controller-models.js +0 -1
  123. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/chat-controller-models.js.map +1 -1
  124. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/ink.d.ts.map +1 -1
  125. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/ink.js +4 -6
  126. package/node_modules/@murphai/assistant-cli/dist/assistant/ui/ink.js.map +1 -1
  127. package/node_modules/@murphai/assistant-cli/dist/assistant-daemon-client.d.ts.map +1 -1
  128. package/node_modules/@murphai/assistant-cli/dist/assistant-daemon-client.js +19 -9
  129. package/node_modules/@murphai/assistant-cli/dist/assistant-daemon-client.js.map +1 -1
  130. package/node_modules/@murphai/assistant-cli/dist/commands/assistant.d.ts.map +1 -1
  131. package/node_modules/@murphai/assistant-cli/dist/commands/assistant.js +20 -56
  132. package/node_modules/@murphai/assistant-cli/dist/commands/assistant.js.map +1 -1
  133. package/node_modules/@murphai/assistant-engine/README.md +69 -13
  134. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-controller.d.ts +6 -3
  135. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-controller.d.ts.map +1 -1
  136. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-controller.js +52 -19
  137. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-controller.js.map +1 -1
  138. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-journal.d.ts +75 -70
  139. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-journal.d.ts.map +1 -1
  140. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-journal.js +42 -17
  141. package/node_modules/@murphai/assistant-engine/dist/assistant/active-turn-input-journal.js.map +1 -1
  142. package/node_modules/@murphai/assistant-engine/dist/assistant/ask-continuation.d.ts +3 -1
  143. package/node_modules/@murphai/assistant-engine/dist/assistant/ask-continuation.d.ts.map +1 -1
  144. package/node_modules/@murphai/assistant-engine/dist/assistant/ask-continuation.js +27 -7
  145. package/node_modules/@murphai/assistant-engine/dist/assistant/ask-continuation.js.map +1 -1
  146. package/node_modules/@murphai/assistant-engine/dist/assistant/attachment-evidence-model.d.ts.map +1 -1
  147. package/node_modules/@murphai/assistant-engine/dist/assistant/attachment-evidence-model.js +4 -1
  148. package/node_modules/@murphai/assistant-engine/dist/assistant/attachment-evidence-model.js.map +1 -1
  149. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/cross-session-route-state.d.ts +77 -0
  150. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/cross-session-route-state.d.ts.map +1 -0
  151. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/cross-session-route-state.js +777 -0
  152. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/cross-session-route-state.js.map +1 -0
  153. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/grouping.d.ts +1 -0
  154. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/grouping.d.ts.map +1 -1
  155. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/grouping.js +36 -4
  156. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/grouping.js.map +1 -1
  157. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/input-summary.d.ts.map +1 -1
  158. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/input-summary.js +3 -1
  159. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/input-summary.js.map +1 -1
  160. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/operation-scope.d.ts +3 -1
  161. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/operation-scope.d.ts.map +1 -1
  162. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/prompt-builder.d.ts +10 -2
  163. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/prompt-builder.d.ts.map +1 -1
  164. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/prompt-builder.js +33 -13
  165. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/prompt-builder.js.map +1 -1
  166. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.d.ts +12 -1
  167. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.d.ts.map +1 -1
  168. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.js +803 -171
  169. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/reply.js.map +1 -1
  170. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.d.ts +2 -0
  171. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.d.ts.map +1 -1
  172. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.js +42 -17
  173. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/run-loop.js.map +1 -1
  174. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/scanner.d.ts +2 -0
  175. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/scanner.d.ts.map +1 -1
  176. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/scanner.js +59 -30
  177. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/scanner.js.map +1 -1
  178. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.d.ts +2 -1
  179. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.d.ts.map +1 -1
  180. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.js +3 -0
  181. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/shared.js.map +1 -1
  182. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/target-override.d.ts +10 -1
  183. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/target-override.d.ts.map +1 -1
  184. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/target-override.js +62 -1
  185. package/node_modules/@murphai/assistant-engine/dist/assistant/automation/target-override.js.map +1 -1
  186. package/node_modules/@murphai/assistant-engine/dist/assistant/automation.d.ts +1 -1
  187. package/node_modules/@murphai/assistant-engine/dist/assistant/automation.d.ts.map +1 -1
  188. package/node_modules/@murphai/assistant-engine/dist/assistant/automation.js +1 -1
  189. package/node_modules/@murphai/assistant-engine/dist/assistant/automation.js.map +1 -1
  190. package/node_modules/@murphai/assistant-engine/dist/assistant/channel-adapters.d.ts +1 -1
  191. package/node_modules/@murphai/assistant-engine/dist/assistant/channel-adapters.d.ts.map +1 -1
  192. package/node_modules/@murphai/assistant-engine/dist/assistant/channel-adapters.js +1 -1
  193. package/node_modules/@murphai/assistant-engine/dist/assistant/channel-adapters.js.map +1 -1
  194. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/descriptors.d.ts.map +1 -1
  195. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/descriptors.js +107 -44
  196. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/descriptors.js.map +1 -1
  197. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/helpers.d.ts +3 -1
  198. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/helpers.d.ts.map +1 -1
  199. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/helpers.js +34 -3
  200. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/helpers.js.map +1 -1
  201. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/runtime.d.ts +22 -14
  202. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/runtime.d.ts.map +1 -1
  203. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/runtime.js +352 -78
  204. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/runtime.js.map +1 -1
  205. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/types.d.ts +43 -8
  206. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/types.d.ts.map +1 -1
  207. package/node_modules/@murphai/assistant-engine/dist/assistant/channels/types.js.map +1 -1
  208. package/node_modules/@murphai/assistant-engine/dist/assistant/cli-surface-bootstrap.d.ts +1 -0
  209. package/node_modules/@murphai/assistant-engine/dist/assistant/cli-surface-bootstrap.d.ts.map +1 -1
  210. package/node_modules/@murphai/assistant-engine/dist/assistant/cli-surface-bootstrap.js +6 -5
  211. package/node_modules/@murphai/assistant-engine/dist/assistant/cli-surface-bootstrap.js.map +1 -1
  212. package/node_modules/@murphai/assistant-engine/dist/assistant/cli-surface-contract.generated.json +1 -1
  213. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-base-instructions.d.ts +1 -1
  214. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-base-instructions.d.ts.map +1 -1
  215. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-base-instructions.js +14 -7
  216. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-base-instructions.js.map +1 -1
  217. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-runtime.d.ts +17 -0
  218. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-runtime.d.ts.map +1 -1
  219. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-runtime.js +25 -19
  220. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-runtime.js.map +1 -1
  221. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-thread-route.d.ts.map +1 -1
  222. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-thread-route.js +9 -9
  223. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-thread-route.js.map +1 -1
  224. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn/planning.d.ts +3 -7
  225. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn/planning.d.ts.map +1 -1
  226. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn/planning.js +172 -48
  227. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn/planning.js.map +1 -1
  228. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn-runner.d.ts +5 -3
  229. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn-runner.d.ts.map +1 -1
  230. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn-runner.js +124 -25
  231. package/node_modules/@murphai/assistant-engine/dist/assistant/codex-turn-runner.js.map +1 -1
  232. package/node_modules/@murphai/assistant-engine/dist/assistant/content-types.d.ts +2 -0
  233. package/node_modules/@murphai/assistant-engine/dist/assistant/content-types.d.ts.map +1 -1
  234. package/node_modules/@murphai/assistant-engine/dist/assistant/context-snapshot.d.ts +4 -1
  235. package/node_modules/@murphai/assistant-engine/dist/assistant/context-snapshot.d.ts.map +1 -1
  236. package/node_modules/@murphai/assistant-engine/dist/assistant/context-snapshot.js +75 -19
  237. package/node_modules/@murphai/assistant-engine/dist/assistant/context-snapshot.js.map +1 -1
  238. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-persistence.d.ts +1 -1
  239. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-persistence.d.ts.map +1 -1
  240. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-persistence.js +0 -1
  241. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-persistence.js.map +1 -1
  242. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-ref.d.ts +1 -0
  243. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-ref.d.ts.map +1 -1
  244. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-ref.js +2 -0
  245. package/node_modules/@murphai/assistant-engine/dist/assistant/conversation-ref.js.map +1 -1
  246. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/authoring.d.ts +5 -1
  247. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/authoring.d.ts.map +1 -1
  248. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/authoring.js +178 -31
  249. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/authoring.js.map +1 -1
  250. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/canonical-jobs.d.ts +32 -1
  251. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/canonical-jobs.d.ts.map +1 -1
  252. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/canonical-jobs.js +147 -31
  253. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/canonical-jobs.js.map +1 -1
  254. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/delivery-reconciliation.d.ts +8 -0
  255. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/delivery-reconciliation.d.ts.map +1 -1
  256. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/delivery-reconciliation.js +73 -15
  257. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/delivery-reconciliation.js.map +1 -1
  258. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/execution.d.ts +3 -1
  259. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/execution.d.ts.map +1 -1
  260. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/execution.js +420 -112
  261. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/execution.js.map +1 -1
  262. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/mutations.d.ts.map +1 -1
  263. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/mutations.js +2 -0
  264. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/mutations.js.map +1 -1
  265. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/output-history.d.ts +11 -0
  266. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/output-history.d.ts.map +1 -0
  267. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/output-history.js +153 -0
  268. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/output-history.js.map +1 -0
  269. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/runtime-state.d.ts +47 -47
  270. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/runtime-state.d.ts.map +1 -1
  271. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/runtime-state.js +1 -1
  272. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/runtime-state.js.map +1 -1
  273. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.d.ts +8 -0
  274. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.d.ts.map +1 -1
  275. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.js +16 -0
  276. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/schedule.js.map +1 -1
  277. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/store.d.ts +49 -39
  278. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/store.d.ts.map +1 -1
  279. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/store.js +19 -1
  280. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/store.js.map +1 -1
  281. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/targets.d.ts.map +1 -1
  282. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/targets.js +1 -3
  283. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/targets.js.map +1 -1
  284. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/timing-verification.d.ts +2 -0
  285. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/timing-verification.d.ts.map +1 -0
  286. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/timing-verification.js +2 -0
  287. package/node_modules/@murphai/assistant-engine/dist/assistant/cron/timing-verification.js.map +1 -0
  288. package/node_modules/@murphai/assistant-engine/dist/assistant/cron.d.ts +9 -0
  289. package/node_modules/@murphai/assistant-engine/dist/assistant/cron.d.ts.map +1 -1
  290. package/node_modules/@murphai/assistant-engine/dist/assistant/cron.js +31 -2
  291. package/node_modules/@murphai/assistant-engine/dist/assistant/cron.js.map +1 -1
  292. package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.d.ts +3 -0
  293. package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.d.ts.map +1 -1
  294. package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.js +32 -1
  295. package/node_modules/@murphai/assistant-engine/dist/assistant/delivery-service.js.map +1 -1
  296. package/node_modules/@murphai/assistant-engine/dist/assistant/device-activity-cron-tags.d.ts +2 -1
  297. package/node_modules/@murphai/assistant-engine/dist/assistant/device-activity-cron-tags.d.ts.map +1 -1
  298. package/node_modules/@murphai/assistant-engine/dist/assistant/device-activity-cron-tags.js +8 -0
  299. package/node_modules/@murphai/assistant-engine/dist/assistant/device-activity-cron-tags.js.map +1 -1
  300. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.d.ts +91 -13
  301. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.d.ts.map +1 -1
  302. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.js +48 -11
  303. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-context.js.map +1 -1
  304. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-plan.d.ts.map +1 -1
  305. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-plan.js +2 -8
  306. package/node_modules/@murphai/assistant-engine/dist/assistant/execution-plan.js.map +1 -1
  307. package/node_modules/@murphai/assistant-engine/dist/assistant/experiment-support-automations.d.ts.map +1 -1
  308. package/node_modules/@murphai/assistant-engine/dist/assistant/experiment-support-automations.js +8 -0
  309. package/node_modules/@murphai/assistant-engine/dist/assistant/experiment-support-automations.js.map +1 -1
  310. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card-schema.d.ts +115 -0
  311. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card-schema.d.ts.map +1 -0
  312. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card-schema.js +162 -0
  313. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card-schema.js.map +1 -0
  314. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card.d.ts +3 -0
  315. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card.d.ts.map +1 -0
  316. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card.js +118 -0
  317. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-response-card.js.map +1 -0
  318. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-scorecard-schema.d.ts +83 -1
  319. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-scorecard-schema.d.ts.map +1 -1
  320. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-scorecard-schema.js +27 -22
  321. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-scorecard-schema.js.map +1 -1
  322. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-scorecard.js +8 -0
  323. package/node_modules/@murphai/assistant-engine/dist/assistant/group-challenge-scorecard.js.map +1 -1
  324. package/node_modules/@murphai/assistant-engine/dist/assistant/group-email-outbox.d.ts +20 -0
  325. package/node_modules/@murphai/assistant-engine/dist/assistant/group-email-outbox.d.ts.map +1 -0
  326. package/node_modules/@murphai/assistant-engine/dist/assistant/{newsletter-outbox.js → group-email-outbox.js} +65 -36
  327. package/node_modules/@murphai/assistant-engine/dist/assistant/group-email-outbox.js.map +1 -0
  328. package/node_modules/@murphai/assistant-engine/dist/assistant/group-newsletter-automation.d.ts +2 -48
  329. package/node_modules/@murphai/assistant-engine/dist/assistant/group-newsletter-automation.d.ts.map +1 -1
  330. package/node_modules/@murphai/assistant-engine/dist/assistant/group-newsletter-automation.js +14 -98
  331. package/node_modules/@murphai/assistant-engine/dist/assistant/group-newsletter-automation.js.map +1 -1
  332. package/node_modules/@murphai/assistant-engine/dist/assistant/group-room-model.d.ts +22 -3
  333. package/node_modules/@murphai/assistant-engine/dist/assistant/group-room-model.d.ts.map +1 -1
  334. package/node_modules/@murphai/assistant-engine/dist/assistant/group-room-model.js +87 -28
  335. package/node_modules/@murphai/assistant-engine/dist/assistant/group-room-model.js.map +1 -1
  336. package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-freshness.d.ts +2 -0
  337. package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-freshness.d.ts.map +1 -0
  338. package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-freshness.js +5 -0
  339. package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-freshness.js.map +1 -0
  340. package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-read-limits.d.ts +3 -2
  341. package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-read-limits.d.ts.map +1 -1
  342. package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-read-limits.js +21 -2
  343. package/node_modules/@murphai/assistant-engine/dist/assistant/group-shared-read-limits.js.map +1 -1
  344. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-image-completion.d.ts +31 -0
  345. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-image-completion.d.ts.map +1 -0
  346. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-image-completion.js +164 -0
  347. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-image-completion.js.map +1 -0
  348. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-tool-context.d.ts +77 -24
  349. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-tool-context.d.ts.map +1 -1
  350. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-tool-context.js +184 -63
  351. package/node_modules/@murphai/assistant-engine/dist/assistant/hosted-tool-context.js.map +1 -1
  352. package/node_modules/@murphai/assistant-engine/dist/assistant/input-source.d.ts +1 -0
  353. package/node_modules/@murphai/assistant-engine/dist/assistant/input-source.d.ts.map +1 -1
  354. package/node_modules/@murphai/assistant-engine/dist/assistant/input-source.js +2 -1
  355. package/node_modules/@murphai/assistant-engine/dist/assistant/input-source.js.map +1 -1
  356. package/node_modules/@murphai/assistant-engine/dist/assistant/input-store.d.ts +273 -269
  357. package/node_modules/@murphai/assistant-engine/dist/assistant/input-store.d.ts.map +1 -1
  358. package/node_modules/@murphai/assistant-engine/dist/assistant/input-store.js +6 -1
  359. package/node_modules/@murphai/assistant-engine/dist/assistant/input-store.js.map +1 -1
  360. package/node_modules/@murphai/assistant-engine/dist/assistant/linq-delivery-posture.d.ts +3 -0
  361. package/node_modules/@murphai/assistant-engine/dist/assistant/linq-delivery-posture.d.ts.map +1 -0
  362. package/node_modules/@murphai/assistant-engine/dist/assistant/linq-delivery-posture.js +20 -0
  363. package/node_modules/@murphai/assistant-engine/dist/assistant/linq-delivery-posture.js.map +1 -0
  364. package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.d.ts.map +1 -1
  365. package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.js +217 -84
  366. package/node_modules/@murphai/assistant-engine/dist/assistant/local-service.js.map +1 -1
  367. package/node_modules/@murphai/assistant-engine/dist/assistant/maintenance-evidence.d.ts +3 -3
  368. package/node_modules/@murphai/assistant-engine/dist/assistant/maintenance-evidence.d.ts.map +1 -1
  369. package/node_modules/@murphai/assistant-engine/dist/assistant/maintenance-evidence.js +245 -6
  370. package/node_modules/@murphai/assistant-engine/dist/assistant/maintenance-evidence.js.map +1 -1
  371. package/node_modules/@murphai/assistant-engine/dist/assistant/managed-automations.d.ts +22 -1
  372. package/node_modules/@murphai/assistant-engine/dist/assistant/managed-automations.d.ts.map +1 -1
  373. package/node_modules/@murphai/assistant-engine/dist/assistant/managed-automations.js +289 -34
  374. package/node_modules/@murphai/assistant-engine/dist/assistant/managed-automations.js.map +1 -1
  375. package/node_modules/@murphai/assistant-engine/dist/assistant/message-target-selection.d.ts +13 -22
  376. package/node_modules/@murphai/assistant-engine/dist/assistant/message-target-selection.d.ts.map +1 -1
  377. package/node_modules/@murphai/assistant-engine/dist/assistant/message-target-selection.js +8 -3
  378. package/node_modules/@murphai/assistant-engine/dist/assistant/message-target-selection.js.map +1 -1
  379. package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.d.ts +3 -0
  380. package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.d.ts.map +1 -1
  381. package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.js +40 -7
  382. package/node_modules/@murphai/assistant-engine/dist/assistant/model-behavior.js.map +1 -1
  383. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.d.ts +16 -14
  384. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.d.ts.map +1 -1
  385. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.js +205 -56
  386. package/node_modules/@murphai/assistant-engine/dist/assistant/notification-turn.js.map +1 -1
  387. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-first-personal-read-automation.d.ts +14 -0
  388. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-first-personal-read-automation.d.ts.map +1 -0
  389. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-first-personal-read-automation.js +94 -0
  390. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-first-personal-read-automation.js.map +1 -0
  391. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-automation.d.ts +22 -3
  392. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-automation.d.ts.map +1 -1
  393. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-automation.js +81 -7
  394. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-followup-automation.js.map +1 -1
  395. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-goal-checkin-automation.d.ts +1 -0
  396. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-goal-checkin-automation.d.ts.map +1 -1
  397. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-goal-checkin-automation.js +184 -83
  398. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-goal-checkin-automation.js.map +1 -1
  399. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-state.js +1 -1
  400. package/node_modules/@murphai/assistant-engine/dist/assistant/onboarding-state.js.map +1 -1
  401. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/automation-authority.d.ts.map +1 -1
  402. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/automation-authority.js +24 -1
  403. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/automation-authority.js.map +1 -1
  404. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/dispatch-state.d.ts +15 -3
  405. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/dispatch-state.d.ts.map +1 -1
  406. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/dispatch-state.js +314 -53
  407. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/dispatch-state.js.map +1 -1
  408. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/intents.d.ts +2 -0
  409. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/intents.d.ts.map +1 -1
  410. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/intents.js +1 -0
  411. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/intents.js.map +1 -1
  412. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/receipt-repair.d.ts.map +1 -1
  413. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/receipt-repair.js +5 -0
  414. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/receipt-repair.js.map +1 -1
  415. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/retry-policy.d.ts +4 -1
  416. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/retry-policy.d.ts.map +1 -1
  417. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/retry-policy.js +33 -8
  418. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/retry-policy.js.map +1 -1
  419. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.d.ts +37 -3
  420. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.d.ts.map +1 -1
  421. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.js +1031 -41
  422. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/store.js.map +1 -1
  423. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/summary.d.ts.map +1 -1
  424. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/summary.js +7 -0
  425. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox/summary.js.map +1 -1
  426. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.d.ts +61 -8
  427. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.d.ts.map +1 -1
  428. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.js +561 -67
  429. package/node_modules/@murphai/assistant-engine/dist/assistant/outbox.js.map +1 -1
  430. package/node_modules/@murphai/assistant-engine/dist/assistant/private-completion-continuity.d.ts +23 -0
  431. package/node_modules/@murphai/assistant-engine/dist/assistant/private-completion-continuity.d.ts.map +1 -0
  432. package/node_modules/@murphai/assistant-engine/dist/assistant/private-completion-continuity.js +293 -0
  433. package/node_modules/@murphai/assistant-engine/dist/assistant/private-completion-continuity.js.map +1 -0
  434. package/node_modules/@murphai/assistant-engine/dist/assistant/prompt-time.d.ts +12 -0
  435. package/node_modules/@murphai/assistant-engine/dist/assistant/prompt-time.d.ts.map +1 -0
  436. package/node_modules/@murphai/assistant-engine/dist/assistant/prompt-time.js +38 -0
  437. package/node_modules/@murphai/assistant-engine/dist/assistant/prompt-time.js.map +1 -0
  438. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-catalog.d.ts.map +1 -1
  439. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-catalog.js +2 -2
  440. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-catalog.js.map +1 -1
  441. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-start-critical-path.d.ts +48 -0
  442. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-start-critical-path.d.ts.map +1 -0
  443. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-start-critical-path.js +101 -0
  444. package/node_modules/@murphai/assistant-engine/dist/assistant/provider-start-critical-path.js.map +1 -0
  445. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.d.ts +6 -0
  446. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.d.ts.map +1 -1
  447. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.js +62 -96
  448. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/codex-cli.js.map +1 -1
  449. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.d.ts +5 -2
  450. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.d.ts.map +1 -1
  451. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.js +412 -568
  452. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/helpers.js.map +1 -1
  453. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/types.d.ts +23 -1
  454. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/types.d.ts.map +1 -1
  455. package/node_modules/@murphai/assistant-engine/dist/assistant/providers/types.js.map +1 -1
  456. package/node_modules/@murphai/assistant-engine/dist/assistant/redaction.d.ts +2 -1
  457. package/node_modules/@murphai/assistant-engine/dist/assistant/redaction.d.ts.map +1 -1
  458. package/node_modules/@murphai/assistant-engine/dist/assistant/redaction.js +6 -1
  459. package/node_modules/@murphai/assistant-engine/dist/assistant/redaction.js.map +1 -1
  460. package/node_modules/@murphai/assistant-engine/dist/assistant/reminder-availability-maintenance.d.ts +17 -0
  461. package/node_modules/@murphai/assistant-engine/dist/assistant/reminder-availability-maintenance.d.ts.map +1 -0
  462. package/node_modules/@murphai/assistant-engine/dist/assistant/reminder-availability-maintenance.js +287 -0
  463. package/node_modules/@murphai/assistant-engine/dist/assistant/reminder-availability-maintenance.js.map +1 -0
  464. package/node_modules/@murphai/assistant-engine/dist/assistant/response-media.d.ts +33 -1
  465. package/node_modules/@murphai/assistant-engine/dist/assistant/response-media.d.ts.map +1 -1
  466. package/node_modules/@murphai/assistant-engine/dist/assistant/response-media.js +173 -3
  467. package/node_modules/@murphai/assistant-engine/dist/assistant/response-media.js.map +1 -1
  468. package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-residue.d.ts +6 -0
  469. package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-residue.d.ts.map +1 -1
  470. package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-residue.js +61 -29
  471. package/node_modules/@murphai/assistant-engine/dist/assistant/runtime-residue.js.map +1 -1
  472. package/node_modules/@murphai/assistant-engine/dist/assistant/service-contracts.d.ts +17 -3
  473. package/node_modules/@murphai/assistant-engine/dist/assistant/service-contracts.d.ts.map +1 -1
  474. package/node_modules/@murphai/assistant-engine/dist/assistant/service-turn-routes.d.ts +1 -1
  475. package/node_modules/@murphai/assistant-engine/dist/assistant/service-turn-routes.d.ts.map +1 -1
  476. package/node_modules/@murphai/assistant-engine/dist/assistant/service-turn-routes.js +18 -8
  477. package/node_modules/@murphai/assistant-engine/dist/assistant/service-turn-routes.js.map +1 -1
  478. package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.d.ts +1 -0
  479. package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.d.ts.map +1 -1
  480. package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.js +23 -4
  481. package/node_modules/@murphai/assistant-engine/dist/assistant/service-usage.js.map +1 -1
  482. package/node_modules/@murphai/assistant-engine/dist/assistant/service.d.ts +12 -2
  483. package/node_modules/@murphai/assistant-engine/dist/assistant/service.d.ts.map +1 -1
  484. package/node_modules/@murphai/assistant-engine/dist/assistant/service.js +5 -3
  485. package/node_modules/@murphai/assistant-engine/dist/assistant/service.js.map +1 -1
  486. package/node_modules/@murphai/assistant-engine/dist/assistant/session-resolution.d.ts.map +1 -1
  487. package/node_modules/@murphai/assistant-engine/dist/assistant/session-resolution.js +71 -16
  488. package/node_modules/@murphai/assistant-engine/dist/assistant/session-resolution.js.map +1 -1
  489. package/node_modules/@murphai/assistant-engine/dist/assistant/shared.d.ts +1 -0
  490. package/node_modules/@murphai/assistant-engine/dist/assistant/shared.d.ts.map +1 -1
  491. package/node_modules/@murphai/assistant-engine/dist/assistant/shared.js +1 -0
  492. package/node_modules/@murphai/assistant-engine/dist/assistant/shared.js.map +1 -1
  493. package/node_modules/@murphai/assistant-engine/dist/assistant/state-secrets.d.ts +1 -1
  494. package/node_modules/@murphai/assistant-engine/dist/assistant/state-secrets.d.ts.map +1 -1
  495. package/node_modules/@murphai/assistant-engine/dist/assistant/state-secrets.js +0 -1
  496. package/node_modules/@murphai/assistant-engine/dist/assistant/state-secrets.js.map +1 -1
  497. package/node_modules/@murphai/assistant-engine/dist/assistant/store/persistence.d.ts +11 -3
  498. package/node_modules/@murphai/assistant-engine/dist/assistant/store/persistence.d.ts.map +1 -1
  499. package/node_modules/@murphai/assistant-engine/dist/assistant/store/persistence.js +410 -139
  500. package/node_modules/@murphai/assistant-engine/dist/assistant/store/persistence.js.map +1 -1
  501. package/node_modules/@murphai/assistant-engine/dist/assistant/store/types.d.ts +2 -0
  502. package/node_modules/@murphai/assistant-engine/dist/assistant/store/types.d.ts.map +1 -1
  503. package/node_modules/@murphai/assistant-engine/dist/assistant/store.d.ts.map +1 -1
  504. package/node_modules/@murphai/assistant-engine/dist/assistant/store.js +48 -13
  505. package/node_modules/@murphai/assistant-engine/dist/assistant/store.js.map +1 -1
  506. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.d.ts +4 -0
  507. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.d.ts.map +1 -1
  508. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.js +274 -128
  509. package/node_modules/@murphai/assistant-engine/dist/assistant/system-prompt.js.map +1 -1
  510. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-digest.d.ts +9 -0
  511. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-digest.d.ts.map +1 -1
  512. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-digest.js +133 -7
  513. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-digest.js.map +1 -1
  514. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.d.ts +11 -0
  515. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.d.ts.map +1 -0
  516. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.js +59 -0
  517. package/node_modules/@murphai/assistant-engine/dist/assistant/tool-validation-feedback.js.map +1 -0
  518. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.d.ts.map +1 -1
  519. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.js +109 -16
  520. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-finalizer.js.map +1 -1
  521. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-input.d.ts +2 -1
  522. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-input.d.ts.map +1 -1
  523. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-input.js.map +1 -1
  524. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-progress.d.ts +9 -2
  525. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-progress.d.ts.map +1 -1
  526. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-progress.js +49 -6
  527. package/node_modules/@murphai/assistant-engine/dist/assistant/turn-progress.js.map +1 -1
  528. package/node_modules/@murphai/assistant-engine/dist/assistant/turns.d.ts +1 -0
  529. package/node_modules/@murphai/assistant-engine/dist/assistant/turns.d.ts.map +1 -1
  530. package/node_modules/@murphai/assistant-engine/dist/assistant/turns.js +62 -22
  531. package/node_modules/@murphai/assistant-engine/dist/assistant/turns.js.map +1 -1
  532. package/node_modules/@murphai/assistant-engine/dist/assistant/vault-file-send.d.ts +7 -0
  533. package/node_modules/@murphai/assistant-engine/dist/assistant/vault-file-send.d.ts.map +1 -1
  534. package/node_modules/@murphai/assistant-engine/dist/assistant/vault-file-send.js +47 -1
  535. package/node_modules/@murphai/assistant-engine/dist/assistant/vault-file-send.js.map +1 -1
  536. package/node_modules/@murphai/assistant-engine/dist/assistant-ask.d.ts +4 -1
  537. package/node_modules/@murphai/assistant-engine/dist/assistant-ask.d.ts.map +1 -1
  538. package/node_modules/@murphai/assistant-engine/dist/assistant-ask.js +49 -23
  539. package/node_modules/@murphai/assistant-engine/dist/assistant-ask.js.map +1 -1
  540. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-adapters.d.ts +1 -1
  541. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-adapters.d.ts.map +1 -1
  542. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-adapters.js +1 -1
  543. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-adapters.js.map +1 -1
  544. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-runtime.d.ts +1 -1
  545. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-runtime.d.ts.map +1 -1
  546. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-runtime.js +1 -1
  547. package/node_modules/@murphai/assistant-engine/dist/assistant-channel-runtime.js.map +1 -1
  548. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-access.d.ts.map +1 -1
  549. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-access.js +12 -1
  550. package/node_modules/@murphai/assistant-engine/dist/assistant-cli-access.js.map +1 -1
  551. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-diagnostics.d.ts +8 -4
  552. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-diagnostics.d.ts.map +1 -1
  553. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-diagnostics.js +136 -19
  554. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-diagnostics.js.map +1 -1
  555. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-outcome.d.ts +5 -0
  556. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-outcome.d.ts.map +1 -0
  557. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-outcome.js +36 -0
  558. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/action-outcome.js.map +1 -0
  559. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.d.ts +59 -0
  560. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.d.ts.map +1 -0
  561. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.js +181 -0
  562. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-protocol.js.map +1 -0
  563. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-requests.d.ts +5 -3
  564. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-requests.d.ts.map +1 -1
  565. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-requests.js +19 -5
  566. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-requests.js.map +1 -1
  567. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-rpc.d.ts +2 -3
  568. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-rpc.d.ts.map +1 -1
  569. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-rpc.js +7 -14
  570. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/app-server-rpc.js.map +1 -1
  571. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/ask-grok-tool.d.ts.map +1 -1
  572. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/ask-grok-tool.js +77 -11
  573. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/ask-grok-tool.js.map +1 -1
  574. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.d.ts +17 -0
  575. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.d.ts.map +1 -0
  576. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.js +200 -0
  577. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/command-family.js.map +1 -0
  578. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.d.ts +3387 -0
  579. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.d.ts.map +1 -0
  580. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.js +1379 -0
  581. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tool-catalog.js.map +1 -0
  582. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/ask-grok.d.ts +1 -1
  583. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/ask-grok.d.ts.map +1 -1
  584. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/ask-grok.js +2 -2
  585. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/ask-grok.js.map +1 -1
  586. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/assistant-style.d.ts +15 -32
  587. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/assistant-style.d.ts.map +1 -1
  588. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/assistant-style.js +11 -7
  589. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/assistant-style.js.map +1 -1
  590. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation.d.ts +26 -150
  591. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation.d.ts.map +1 -1
  592. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation.js +537 -103
  593. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/automation.js.map +1 -1
  594. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/clinical-records.js +4 -4
  595. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/clinical-records.js.map +1 -1
  596. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/connected-apps.d.ts +10 -54
  597. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/connected-apps.d.ts.map +1 -1
  598. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/connected-apps.js +134 -109
  599. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/connected-apps.js.map +1 -1
  600. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/device.d.ts +2 -12
  601. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/device.d.ts.map +1 -1
  602. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/device.js +1 -1
  603. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/device.js.map +1 -1
  604. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/dynamic-tool-wrapper.d.ts +2 -1
  605. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/dynamic-tool-wrapper.d.ts.map +1 -1
  606. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/dynamic-tool-wrapper.js +2 -1
  607. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/dynamic-tool-wrapper.js.map +1 -1
  608. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-song.d.ts +9 -2
  609. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-song.d.ts.map +1 -1
  610. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-song.js +31 -3
  611. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-song.js.map +1 -1
  612. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-voice-memo.d.ts +7 -6
  613. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-voice-memo.d.ts.map +1 -1
  614. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-voice-memo.js +12 -8
  615. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/generate-voice-memo.js.map +1 -1
  616. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/group-room-model.d.ts +10 -19
  617. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/group-room-model.d.ts.map +1 -1
  618. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/group-room-model.js +19 -7
  619. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/group-room-model.js.map +1 -1
  620. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/labs.d.ts +2 -16
  621. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/labs.d.ts.map +1 -1
  622. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/labs.js +1 -1
  623. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/labs.js.map +1 -1
  624. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/pending-vault-files.d.ts +65 -0
  625. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/pending-vault-files.d.ts.map +1 -0
  626. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/pending-vault-files.js +214 -0
  627. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/pending-vault-files.js.map +1 -0
  628. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/phone-calls.d.ts +24 -16
  629. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/phone-calls.d.ts.map +1 -1
  630. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/phone-calls.js +78 -7
  631. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/phone-calls.js.map +1 -1
  632. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.d.ts +91 -0
  633. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.d.ts.map +1 -0
  634. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.js +199 -0
  635. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools/physical-notes.js.map +1 -0
  636. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools.d.ts +108 -2427
  637. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools.d.ts.map +1 -1
  638. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools.js +2248 -1509
  639. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/dynamic-tools.js.map +1 -1
  640. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/failures.d.ts.map +1 -1
  641. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/failures.js +39 -95
  642. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/failures.js.map +1 -1
  643. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-image-tool.d.ts +5 -2
  644. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-image-tool.d.ts.map +1 -1
  645. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-image-tool.js +88 -101
  646. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-image-tool.js.map +1 -1
  647. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-voice-memo-tool.d.ts +58 -13
  648. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-voice-memo-tool.d.ts.map +1 -1
  649. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-voice-memo-tool.js +85 -122
  650. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/generate-voice-memo-tool.js.map +1 -1
  651. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/image-reference-resolver.d.ts.map +1 -1
  652. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/image-reference-resolver.js +5 -3
  653. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/image-reference-resolver.js.map +1 -1
  654. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/images.d.ts +15 -2
  655. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/images.d.ts.map +1 -1
  656. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/images.js +99 -8
  657. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/images.js.map +1 -1
  658. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/managed-voice-memo-runtime.d.ts +17 -0
  659. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/managed-voice-memo-runtime.d.ts.map +1 -0
  660. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/managed-voice-memo-runtime.js +12 -0
  661. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/managed-voice-memo-runtime.js.map +1 -0
  662. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/openai-image-generation.d.ts +7 -11
  663. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/openai-image-generation.d.ts.map +1 -1
  664. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/openai-image-generation.js +237 -52
  665. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/openai-image-generation.js.map +1 -1
  666. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/response-card-validation-feedback.d.ts +3 -0
  667. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/response-card-validation-feedback.d.ts.map +1 -0
  668. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/response-card-validation-feedback.js +7 -0
  669. package/node_modules/@murphai/assistant-engine/dist/assistant-codex/response-card-validation-feedback.js.map +1 -0
  670. package/node_modules/@murphai/assistant-engine/dist/assistant-codex-events.d.ts.map +1 -1
  671. package/node_modules/@murphai/assistant-engine/dist/assistant-codex-events.js +189 -486
  672. package/node_modules/@murphai/assistant-engine/dist/assistant-codex-events.js.map +1 -1
  673. package/node_modules/@murphai/assistant-engine/dist/assistant-codex.d.ts +34 -6
  674. package/node_modules/@murphai/assistant-engine/dist/assistant-codex.d.ts.map +1 -1
  675. package/node_modules/@murphai/assistant-engine/dist/assistant-codex.js +1014 -247
  676. package/node_modules/@murphai/assistant-engine/dist/assistant-codex.js.map +1 -1
  677. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime-residue.d.ts +1 -1
  678. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime-residue.d.ts.map +1 -1
  679. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime-residue.js +1 -1
  680. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime-residue.js.map +1 -1
  681. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime.d.ts +2 -0
  682. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime.d.ts.map +1 -1
  683. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime.js +1 -0
  684. package/node_modules/@murphai/assistant-engine/dist/assistant-runtime.js.map +1 -1
  685. package/node_modules/@murphai/assistant-engine/dist/assistant-skill-assets.d.ts +23 -23
  686. package/node_modules/@murphai/assistant-engine/dist/assistant-skill-assets.d.ts.map +1 -1
  687. package/node_modules/@murphai/assistant-engine/dist/assistant-skill-assets.js +26 -26
  688. package/node_modules/@murphai/assistant-engine/dist/assistant-skill-assets.js.map +1 -1
  689. package/node_modules/@murphai/assistant-engine/dist/attachment-prompt-contracts.d.ts +27 -27
  690. package/node_modules/@murphai/assistant-engine/dist/attachment-prompt-contracts.d.ts.map +1 -1
  691. package/node_modules/@murphai/assistant-engine/dist/attachment-prompt-contracts.js +1 -1
  692. package/node_modules/@murphai/assistant-engine/dist/attachment-prompt-contracts.js.map +1 -1
  693. package/node_modules/@murphai/assistant-engine/dist/index.d.ts +8 -3
  694. package/node_modules/@murphai/assistant-engine/dist/index.d.ts.map +1 -1
  695. package/node_modules/@murphai/assistant-engine/dist/index.js +6 -1
  696. package/node_modules/@murphai/assistant-engine/dist/index.js.map +1 -1
  697. package/node_modules/@murphai/assistant-engine/dist/knowledge/documents.d.ts +1 -1
  698. package/node_modules/@murphai/assistant-engine/dist/knowledge/documents.d.ts.map +1 -1
  699. package/node_modules/@murphai/assistant-engine/dist/knowledge/documents.js +5 -1
  700. package/node_modules/@murphai/assistant-engine/dist/knowledge/documents.js.map +1 -1
  701. package/node_modules/@murphai/assistant-engine/dist/knowledge/service.d.ts +1 -0
  702. package/node_modules/@murphai/assistant-engine/dist/knowledge/service.d.ts.map +1 -1
  703. package/node_modules/@murphai/assistant-engine/dist/knowledge/service.js +16 -2
  704. package/node_modules/@murphai/assistant-engine/dist/knowledge/service.js.map +1 -1
  705. package/node_modules/@murphai/assistant-engine/dist/outbound-channel.d.ts +5 -2
  706. package/node_modules/@murphai/assistant-engine/dist/outbound-channel.d.ts.map +1 -1
  707. package/node_modules/@murphai/assistant-engine/dist/outbound-channel.js +4 -2
  708. package/node_modules/@murphai/assistant-engine/dist/outbound-channel.js.map +1 -1
  709. package/node_modules/@murphai/assistant-engine/skills/README.md +29 -0
  710. package/node_modules/@murphai/assistant-engine/skills/appointment-scheduling/SKILL.md +23 -0
  711. package/node_modules/@murphai/assistant-engine/skills/automatic-meal-capture/SKILL.md +130 -5
  712. package/node_modules/@murphai/assistant-engine/skills/behavior-followthrough/SKILL.md +157 -116
  713. package/node_modules/@murphai/assistant-engine/skills/body-composition/SKILL.md +137 -27
  714. package/node_modules/@murphai/assistant-engine/skills/body-composition/references/evidence.md +150 -0
  715. package/node_modules/@murphai/assistant-engine/skills/body-composition/references/fat-loss.md +132 -0
  716. package/node_modules/@murphai/assistant-engine/skills/body-composition/references/muscle-gain.md +135 -0
  717. package/node_modules/@murphai/assistant-engine/skills/body-composition/references/safety.md +171 -0
  718. package/node_modules/@murphai/assistant-engine/skills/body-composition/references/tracking-and-adjustment.md +193 -0
  719. package/node_modules/@murphai/assistant-engine/skills/cardiometabolic-health/SKILL.md +10 -1
  720. package/node_modules/@murphai/assistant-engine/skills/computer-use/SKILL.md +0 -4
  721. package/node_modules/@murphai/assistant-engine/skills/connected-apps/SKILL.md +86 -12
  722. package/node_modules/@murphai/assistant-engine/skills/connected-apps/references/provider-data-exports.md +209 -0
  723. package/node_modules/@murphai/assistant-engine/skills/daily-activity/SKILL.md +16 -0
  724. package/node_modules/@murphai/assistant-engine/skills/experiment-onboarding/SKILL.md +22 -9
  725. package/node_modules/@murphai/assistant-engine/skills/food-journal/SKILL.md +140 -15
  726. package/node_modules/@murphai/assistant-engine/skills/group-challenge/SKILL.md +17 -737
  727. package/node_modules/@murphai/assistant-engine/skills/group-challenge-scorecards/SKILL.md +17 -328
  728. package/node_modules/@murphai/assistant-engine/skills/group-chat/SKILL.md +18 -912
  729. package/node_modules/@murphai/assistant-engine/skills/group-newsletter/SKILL.md +16 -237
  730. package/node_modules/@murphai/assistant-engine/skills/groupchat-comedy/SKILL.md +19 -351
  731. package/node_modules/@murphai/assistant-engine/skills/hosted-low-usage/SKILL.md +309 -117
  732. package/node_modules/@murphai/assistant-engine/skills/micronutrients-supplements/SKILL.md +30 -8
  733. package/node_modules/@murphai/assistant-engine/skills/mobility-posture/SKILL.md +1 -1
  734. package/node_modules/@murphai/assistant-engine/skills/murph-family/SKILL.md +91 -26
  735. package/node_modules/@murphai/assistant-engine/skills/murph-onboarding/SKILL.md +75 -751
  736. package/node_modules/@murphai/assistant-engine/skills/murph-onboarding/references/aspiration-foundation-delegation.md +443 -0
  737. package/node_modules/@murphai/assistant-engine/skills/murph-onboarding/references/persistence-recovery-follow-up.md +155 -0
  738. package/node_modules/@murphai/assistant-engine/skills/murph-onboarding/references/return-launch-completion.md +246 -0
  739. package/node_modules/@murphai/assistant-engine/skills/music-generation/SKILL.md +31 -163
  740. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/SKILL.md +78 -7
  741. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/daily-nutrition-card-goals.md +285 -0
  742. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/daily-nutrition-card-safety.md +211 -0
  743. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/carnivore-animal-based.md +145 -0
  744. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/dash.md +183 -0
  745. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/intermittent-fasting.md +153 -0
  746. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/ketogenic.md +149 -0
  747. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/low-carbohydrate.md +167 -0
  748. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/mediterranean.md +141 -0
  749. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/vegan-plant-based.md +175 -0
  750. package/node_modules/@murphai/assistant-engine/skills/nutrition-strategy/references/named-diets/vegetarian-spectrum.md +131 -0
  751. package/node_modules/@murphai/assistant-engine/skills/phone-calls/SKILL.md +47 -67
  752. package/node_modules/@murphai/assistant-engine/skills/physical-notes/SKILL.md +120 -0
  753. package/node_modules/@murphai/assistant-engine/skills/physical-therapy/SKILL.md +4 -2
  754. package/node_modules/@murphai/assistant-engine/skills/self-management-experiments/SKILL.md +19 -3
  755. package/node_modules/@murphai/assistant-engine/skills/shared/exercise-catalog-runtime.md +30 -19
  756. package/node_modules/@murphai/assistant-engine/skills/signup-link/SKILL.md +30 -0
  757. package/node_modules/@murphai/assistant-engine/skills/strength-training/SKILL.md +9 -0
  758. package/node_modules/@murphai/assistant-engine/skills/tracked-table/SKILL.md +202 -0
  759. package/node_modules/@murphai/assistant-engine/skills/workout-csv-import/SKILL.md +129 -0
  760. package/node_modules/@murphai/assistantd/dist/client.d.ts +2 -0
  761. package/node_modules/@murphai/assistantd/dist/client.d.ts.map +1 -1
  762. package/node_modules/@murphai/assistantd/dist/client.js +33 -0
  763. package/node_modules/@murphai/assistantd/dist/client.js.map +1 -1
  764. package/node_modules/@murphai/assistantd/dist/http-protocol.d.ts.map +1 -1
  765. package/node_modules/@murphai/assistantd/dist/http-protocol.js +25 -1
  766. package/node_modules/@murphai/assistantd/dist/http-protocol.js.map +1 -1
  767. package/node_modules/@murphai/clinical-records/dist/index.d.ts +660 -660
  768. package/node_modules/@murphai/clinical-records/dist/index.d.ts.map +1 -1
  769. package/node_modules/@murphai/clinical-records/dist/index.js +1 -1
  770. package/node_modules/@murphai/clinical-records/dist/index.js.map +1 -1
  771. package/node_modules/@murphai/core/dist/automation-availability.d.ts +51 -0
  772. package/node_modules/@murphai/core/dist/automation-availability.d.ts.map +1 -0
  773. package/node_modules/@murphai/core/dist/automation-availability.js +226 -0
  774. package/node_modules/@murphai/core/dist/automation-availability.js.map +1 -0
  775. package/node_modules/@murphai/core/dist/automation.d.ts +9 -2
  776. package/node_modules/@murphai/core/dist/automation.d.ts.map +1 -1
  777. package/node_modules/@murphai/core/dist/automation.js +107 -13
  778. package/node_modules/@murphai/core/dist/automation.js.map +1 -1
  779. package/node_modules/@murphai/core/dist/bank/habitat.d.ts.map +1 -1
  780. package/node_modules/@murphai/core/dist/bank/habitat.js +8 -1
  781. package/node_modules/@murphai/core/dist/bank/habitat.js.map +1 -1
  782. package/node_modules/@murphai/core/dist/domains/events/attachment-backed.d.ts.map +1 -1
  783. package/node_modules/@murphai/core/dist/domains/events/attachment-backed.js +9 -123
  784. package/node_modules/@murphai/core/dist/domains/events/attachment-backed.js.map +1 -1
  785. package/node_modules/@murphai/core/dist/domains/events/capture-lookup.d.ts +33 -0
  786. package/node_modules/@murphai/core/dist/domains/events/capture-lookup.d.ts.map +1 -1
  787. package/node_modules/@murphai/core/dist/domains/events/capture-lookup.js +119 -0
  788. package/node_modules/@murphai/core/dist/domains/events/capture-lookup.js.map +1 -1
  789. package/node_modules/@murphai/core/dist/domains/events/generated-image-capture-retention.d.ts +24 -0
  790. package/node_modules/@murphai/core/dist/domains/events/generated-image-capture-retention.d.ts.map +1 -0
  791. package/node_modules/@murphai/core/dist/domains/events/generated-image-capture-retention.js +409 -0
  792. package/node_modules/@murphai/core/dist/domains/events/generated-image-capture-retention.js.map +1 -0
  793. package/node_modules/@murphai/core/dist/domains/events/ledger.d.ts +13 -0
  794. package/node_modules/@murphai/core/dist/domains/events/ledger.d.ts.map +1 -1
  795. package/node_modules/@murphai/core/dist/domains/events/ledger.js +86 -7
  796. package/node_modules/@murphai/core/dist/domains/events/ledger.js.map +1 -1
  797. package/node_modules/@murphai/core/dist/domains/events.d.ts +6 -2
  798. package/node_modules/@murphai/core/dist/domains/events.d.ts.map +1 -1
  799. package/node_modules/@murphai/core/dist/domains/events.js +3 -1
  800. package/node_modules/@murphai/core/dist/domains/events.js.map +1 -1
  801. package/node_modules/@murphai/core/dist/domains/experiments.d.ts.map +1 -1
  802. package/node_modules/@murphai/core/dist/domains/experiments.js +5 -1
  803. package/node_modules/@murphai/core/dist/domains/experiments.js.map +1 -1
  804. package/node_modules/@murphai/core/dist/history/api.d.ts +8 -5
  805. package/node_modules/@murphai/core/dist/history/api.d.ts.map +1 -1
  806. package/node_modules/@murphai/core/dist/history/api.js +253 -20
  807. package/node_modules/@murphai/core/dist/history/api.js.map +1 -1
  808. package/node_modules/@murphai/core/dist/index.d.ts +8 -5
  809. package/node_modules/@murphai/core/dist/index.d.ts.map +1 -1
  810. package/node_modules/@murphai/core/dist/index.js +5 -3
  811. package/node_modules/@murphai/core/dist/index.js.map +1 -1
  812. package/node_modules/@murphai/core/dist/memory.d.ts.map +1 -1
  813. package/node_modules/@murphai/core/dist/memory.js +1 -0
  814. package/node_modules/@murphai/core/dist/memory.js.map +1 -1
  815. package/node_modules/@murphai/core/dist/mutations.d.ts +20 -2
  816. package/node_modules/@murphai/core/dist/mutations.d.ts.map +1 -1
  817. package/node_modules/@murphai/core/dist/mutations.js +618 -21
  818. package/node_modules/@murphai/core/dist/mutations.js.map +1 -1
  819. package/node_modules/@murphai/core/dist/operations/write-batch.d.ts +3 -0
  820. package/node_modules/@murphai/core/dist/operations/write-batch.d.ts.map +1 -1
  821. package/node_modules/@murphai/core/dist/operations/write-batch.js +33 -2
  822. package/node_modules/@murphai/core/dist/operations/write-batch.js.map +1 -1
  823. package/node_modules/@murphai/core/dist/public-mutations.d.ts +2 -1
  824. package/node_modules/@murphai/core/dist/public-mutations.d.ts.map +1 -1
  825. package/node_modules/@murphai/core/dist/public-mutations.js +7 -2
  826. package/node_modules/@murphai/core/dist/public-mutations.js.map +1 -1
  827. package/node_modules/@murphai/device-syncd/README.md +143 -0
  828. package/node_modules/@murphai/device-syncd/dist/client.d.ts +1 -0
  829. package/node_modules/@murphai/device-syncd/dist/client.d.ts.map +1 -1
  830. package/node_modules/@murphai/device-syncd/dist/client.js.map +1 -1
  831. package/node_modules/@murphai/device-syncd/dist/config/connect-routes.d.ts +25 -0
  832. package/node_modules/@murphai/device-syncd/dist/config/connect-routes.d.ts.map +1 -1
  833. package/node_modules/@murphai/device-syncd/dist/config/connect-routes.js +54 -0
  834. package/node_modules/@murphai/device-syncd/dist/config/connect-routes.js.map +1 -1
  835. package/node_modules/@murphai/device-syncd/dist/config/connect-targets.js +1 -1
  836. package/node_modules/@murphai/device-syncd/dist/config/connect-targets.js.map +1 -1
  837. package/node_modules/@murphai/device-syncd/dist/config/junction-client-config.d.ts +2 -1
  838. package/node_modules/@murphai/device-syncd/dist/config/junction-client-config.d.ts.map +1 -1
  839. package/node_modules/@murphai/device-syncd/dist/config/junction-client-config.js +2 -1
  840. package/node_modules/@murphai/device-syncd/dist/config/junction-client-config.js.map +1 -1
  841. package/node_modules/@murphai/device-syncd/dist/config/junction-config.d.ts +1 -0
  842. package/node_modules/@murphai/device-syncd/dist/config/junction-config.d.ts.map +1 -1
  843. package/node_modules/@murphai/device-syncd/dist/config/junction-config.js +9 -1
  844. package/node_modules/@murphai/device-syncd/dist/config/junction-config.js.map +1 -1
  845. package/node_modules/@murphai/device-syncd/dist/config/provider-configs.d.ts +2 -2
  846. package/node_modules/@murphai/device-syncd/dist/config/provider-configs.d.ts.map +1 -1
  847. package/node_modules/@murphai/device-syncd/dist/config/provider-configs.js +2 -2
  848. package/node_modules/@murphai/device-syncd/dist/config/provider-configs.js.map +1 -1
  849. package/node_modules/@murphai/device-syncd/dist/config/provider-env.d.ts +4 -2
  850. package/node_modules/@murphai/device-syncd/dist/config/provider-env.d.ts.map +1 -1
  851. package/node_modules/@murphai/device-syncd/dist/config/provider-env.js +6 -0
  852. package/node_modules/@murphai/device-syncd/dist/config/provider-env.js.map +1 -1
  853. package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.d.ts +561 -0
  854. package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.d.ts.map +1 -1
  855. package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.js +203 -148
  856. package/node_modules/@murphai/device-syncd/dist/config/provider-manifests.js.map +1 -1
  857. package/node_modules/@murphai/device-syncd/dist/config/provider-types.d.ts +11 -0
  858. package/node_modules/@murphai/device-syncd/dist/config/provider-types.d.ts.map +1 -1
  859. package/node_modules/@murphai/device-syncd/dist/config/runtime-config.d.ts.map +1 -1
  860. package/node_modules/@murphai/device-syncd/dist/config/runtime-config.js +2 -2
  861. package/node_modules/@murphai/device-syncd/dist/config/runtime-config.js.map +1 -1
  862. package/node_modules/@murphai/device-syncd/dist/config/serializable-provider-configs.d.ts.map +1 -1
  863. package/node_modules/@murphai/device-syncd/dist/config/serializable-provider-configs.js +2 -0
  864. package/node_modules/@murphai/device-syncd/dist/config/serializable-provider-configs.js.map +1 -1
  865. package/node_modules/@murphai/device-syncd/dist/config.d.ts +1 -1
  866. package/node_modules/@murphai/device-syncd/dist/config.d.ts.map +1 -1
  867. package/node_modules/@murphai/device-syncd/dist/config.js +1 -1
  868. package/node_modules/@murphai/device-syncd/dist/config.js.map +1 -1
  869. package/node_modules/@murphai/device-syncd/dist/configured-provider-runtime-descriptors.d.ts +1 -1
  870. package/node_modules/@murphai/device-syncd/dist/configured-provider-runtime-descriptors.d.ts.map +1 -1
  871. package/node_modules/@murphai/device-syncd/dist/configured-provider-runtime-descriptors.js +1 -1
  872. package/node_modules/@murphai/device-syncd/dist/configured-provider-runtime-descriptors.js.map +1 -1
  873. package/node_modules/@murphai/device-syncd/dist/connect-config.d.ts +1 -1
  874. package/node_modules/@murphai/device-syncd/dist/connect-config.d.ts.map +1 -1
  875. package/node_modules/@murphai/device-syncd/dist/connect-config.js +1 -1
  876. package/node_modules/@murphai/device-syncd/dist/connect-config.js.map +1 -1
  877. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.d.ts +44 -0
  878. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.d.ts.map +1 -1
  879. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.js +167 -1
  880. package/node_modules/@murphai/device-syncd/dist/hosted-runtime.js.map +1 -1
  881. package/node_modules/@murphai/device-syncd/dist/index.d.ts +1 -1
  882. package/node_modules/@murphai/device-syncd/dist/index.d.ts.map +1 -1
  883. package/node_modules/@murphai/device-syncd/dist/index.js +1 -1
  884. package/node_modules/@murphai/device-syncd/dist/index.js.map +1 -1
  885. package/node_modules/@murphai/device-syncd/dist/junction-historical-backfill-progress.d.ts +24 -0
  886. package/node_modules/@murphai/device-syncd/dist/junction-historical-backfill-progress.d.ts.map +1 -1
  887. package/node_modules/@murphai/device-syncd/dist/junction-historical-backfill-progress.js +444 -9
  888. package/node_modules/@murphai/device-syncd/dist/junction-historical-backfill-progress.js.map +1 -1
  889. package/node_modules/@murphai/device-syncd/dist/junction-resources.d.ts +16 -0
  890. package/node_modules/@murphai/device-syncd/dist/junction-resources.d.ts.map +1 -1
  891. package/node_modules/@murphai/device-syncd/dist/junction-resources.js +32 -0
  892. package/node_modules/@murphai/device-syncd/dist/junction-resources.js.map +1 -1
  893. package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.d.ts +8 -0
  894. package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.d.ts.map +1 -0
  895. package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.js +13 -0
  896. package/node_modules/@murphai/device-syncd/dist/junction-timeseries-progress.js.map +1 -0
  897. package/node_modules/@murphai/device-syncd/dist/prepared-webhook.d.ts +29 -0
  898. package/node_modules/@murphai/device-syncd/dist/prepared-webhook.d.ts.map +1 -0
  899. package/node_modules/@murphai/device-syncd/dist/prepared-webhook.js +263 -0
  900. package/node_modules/@murphai/device-syncd/dist/prepared-webhook.js.map +1 -0
  901. package/node_modules/@murphai/device-syncd/dist/provider-configs.d.ts +1 -1
  902. package/node_modules/@murphai/device-syncd/dist/provider-configs.d.ts.map +1 -1
  903. package/node_modules/@murphai/device-syncd/dist/provider-configs.js +1 -1
  904. package/node_modules/@murphai/device-syncd/dist/provider-configs.js.map +1 -1
  905. package/node_modules/@murphai/device-syncd/dist/provider-label.d.ts +1 -0
  906. package/node_modules/@murphai/device-syncd/dist/provider-label.d.ts.map +1 -1
  907. package/node_modules/@murphai/device-syncd/dist/provider-label.js +4 -2
  908. package/node_modules/@murphai/device-syncd/dist/provider-label.js.map +1 -1
  909. package/node_modules/@murphai/device-syncd/dist/providers/junction-client.d.ts +23 -1
  910. package/node_modules/@murphai/device-syncd/dist/providers/junction-client.d.ts.map +1 -1
  911. package/node_modules/@murphai/device-syncd/dist/providers/junction-client.js +765 -192
  912. package/node_modules/@murphai/device-syncd/dist/providers/junction-client.js.map +1 -1
  913. package/node_modules/@murphai/device-syncd/dist/providers/junction.d.ts +2 -2
  914. package/node_modules/@murphai/device-syncd/dist/providers/junction.d.ts.map +1 -1
  915. package/node_modules/@murphai/device-syncd/dist/providers/junction.js +3250 -205
  916. package/node_modules/@murphai/device-syncd/dist/providers/junction.js.map +1 -1
  917. package/node_modules/@murphai/device-syncd/dist/providers/oura.d.ts.map +1 -1
  918. package/node_modules/@murphai/device-syncd/dist/providers/oura.js +2 -1
  919. package/node_modules/@murphai/device-syncd/dist/providers/oura.js.map +1 -1
  920. package/node_modules/@murphai/device-syncd/dist/providers/shared-oauth.d.ts +12 -3
  921. package/node_modules/@murphai/device-syncd/dist/providers/shared-oauth.d.ts.map +1 -1
  922. package/node_modules/@murphai/device-syncd/dist/providers/shared-oauth.js +50 -12
  923. package/node_modules/@murphai/device-syncd/dist/providers/shared-oauth.js.map +1 -1
  924. package/node_modules/@murphai/device-syncd/dist/providers/strava.d.ts +3 -1
  925. package/node_modules/@murphai/device-syncd/dist/providers/strava.d.ts.map +1 -1
  926. package/node_modules/@murphai/device-syncd/dist/providers/strava.js +51 -38
  927. package/node_modules/@murphai/device-syncd/dist/providers/strava.js.map +1 -1
  928. package/node_modules/@murphai/device-syncd/dist/providers/whoop.d.ts.map +1 -1
  929. package/node_modules/@murphai/device-syncd/dist/providers/whoop.js +11 -1
  930. package/node_modules/@murphai/device-syncd/dist/providers/whoop.js.map +1 -1
  931. package/node_modules/@murphai/device-syncd/dist/public-account.d.ts +52 -2
  932. package/node_modules/@murphai/device-syncd/dist/public-account.d.ts.map +1 -1
  933. package/node_modules/@murphai/device-syncd/dist/public-account.js +147 -1
  934. package/node_modules/@murphai/device-syncd/dist/public-account.js.map +1 -1
  935. package/node_modules/@murphai/device-syncd/dist/public-ingress.d.ts +9 -2
  936. package/node_modules/@murphai/device-syncd/dist/public-ingress.d.ts.map +1 -1
  937. package/node_modules/@murphai/device-syncd/dist/public-ingress.js +632 -199
  938. package/node_modules/@murphai/device-syncd/dist/public-ingress.js.map +1 -1
  939. package/node_modules/@murphai/device-syncd/dist/service.d.ts +17 -4
  940. package/node_modules/@murphai/device-syncd/dist/service.d.ts.map +1 -1
  941. package/node_modules/@murphai/device-syncd/dist/service.js +362 -43
  942. package/node_modules/@murphai/device-syncd/dist/service.js.map +1 -1
  943. package/node_modules/@murphai/device-syncd/dist/store/accounts.d.ts +3 -1
  944. package/node_modules/@murphai/device-syncd/dist/store/accounts.d.ts.map +1 -1
  945. package/node_modules/@murphai/device-syncd/dist/store/accounts.js +25 -2
  946. package/node_modules/@murphai/device-syncd/dist/store/accounts.js.map +1 -1
  947. package/node_modules/@murphai/device-syncd/dist/store/hosted-account-hydration.d.ts.map +1 -1
  948. package/node_modules/@murphai/device-syncd/dist/store/hosted-account-hydration.js +7 -1
  949. package/node_modules/@murphai/device-syncd/dist/store/hosted-account-hydration.js.map +1 -1
  950. package/node_modules/@murphai/device-syncd/dist/store/jobs.d.ts +13 -3
  951. package/node_modules/@murphai/device-syncd/dist/store/jobs.d.ts.map +1 -1
  952. package/node_modules/@murphai/device-syncd/dist/store/jobs.js +171 -20
  953. package/node_modules/@murphai/device-syncd/dist/store/jobs.js.map +1 -1
  954. package/node_modules/@murphai/device-syncd/dist/store/oauth-states.d.ts +3 -1
  955. package/node_modules/@murphai/device-syncd/dist/store/oauth-states.d.ts.map +1 -1
  956. package/node_modules/@murphai/device-syncd/dist/store/oauth-states.js +62 -4
  957. package/node_modules/@murphai/device-syncd/dist/store/oauth-states.js.map +1 -1
  958. package/node_modules/@murphai/device-syncd/dist/store/sources.d.ts +1 -0
  959. package/node_modules/@murphai/device-syncd/dist/store/sources.d.ts.map +1 -1
  960. package/node_modules/@murphai/device-syncd/dist/store/sources.js +56 -55
  961. package/node_modules/@murphai/device-syncd/dist/store/sources.js.map +1 -1
  962. package/node_modules/@murphai/device-syncd/dist/store/sync-state.d.ts +7 -2
  963. package/node_modules/@murphai/device-syncd/dist/store/sync-state.d.ts.map +1 -1
  964. package/node_modules/@murphai/device-syncd/dist/store/sync-state.js +82 -28
  965. package/node_modules/@murphai/device-syncd/dist/store/sync-state.js.map +1 -1
  966. package/node_modules/@murphai/device-syncd/dist/store/webhook-traces.js +2 -2
  967. package/node_modules/@murphai/device-syncd/dist/store/webhook-traces.js.map +1 -1
  968. package/node_modules/@murphai/device-syncd/dist/store.d.ts +19 -4
  969. package/node_modules/@murphai/device-syncd/dist/store.d.ts.map +1 -1
  970. package/node_modules/@murphai/device-syncd/dist/store.js +62 -11
  971. package/node_modules/@murphai/device-syncd/dist/store.js.map +1 -1
  972. package/node_modules/@murphai/device-syncd/dist/types.d.ts +169 -4
  973. package/node_modules/@murphai/device-syncd/dist/types.d.ts.map +1 -1
  974. package/node_modules/@murphai/device-syncd/dist/types.js +3 -0
  975. package/node_modules/@murphai/device-syncd/dist/types.js.map +1 -1
  976. package/node_modules/@murphai/device-syncd/package.json +8 -0
  977. package/node_modules/@murphai/health-commons/content/biomarkers/bilirubin.md +18 -0
  978. package/node_modules/@murphai/health-commons/content/biomarkers/carbon-dioxide.md +18 -0
  979. package/node_modules/@murphai/health-commons/content/biomarkers/potassium.md +18 -0
  980. package/node_modules/@murphai/health-commons/content/biomarkers/sodium.md +18 -0
  981. package/node_modules/@murphai/health-commons/content/families/general-eye-health.md +190 -0
  982. package/node_modules/@murphai/health-commons/content/families/photobiomodulation.md +97 -0
  983. package/node_modules/@murphai/health-commons/content/families/recovery-modalities.md +73 -0
  984. package/node_modules/@murphai/health-commons/content/protocols/whole-body-photobiomodulation/whole-body-red-and-near-infrared-light-exposure.md +1 -1
  985. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/cdc-contact-lens-infection-symptoms.md +20 -0
  986. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/cdc-contact-lens-prevention.md +20 -0
  987. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/cdc-stroke-signs.md +20 -0
  988. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/cochrane-blue-light-filtering-lenses.md +21 -0
  989. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/fda-buying-contact-lenses.md +20 -0
  990. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/fda-eye-drops.md +20 -0
  991. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/imi-myopia-interventions.md +20 -0
  992. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/medlineplus-eye-emergencies.md +20 -0
  993. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/medlineplus-eye-pain.md +20 -0
  994. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-angle-closure-glaucoma.md +20 -0
  995. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-areds2-faq.md +20 -0
  996. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-contact-lenses.md +20 -0
  997. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-dry-eye.md +20 -0
  998. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-healthy-vision.md +21 -0
  999. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-myopia.md +20 -0
  1000. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nei-retinal-detachment.md +20 -0
  1001. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/nih-dream-omega3-dry-eye.md +21 -0
  1002. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/osha-computer-monitors.md +20 -0
  1003. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/pmc-9840372.md +22 -0
  1004. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/pmid-35597519.md +21 -0
  1005. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/pmid-36473088.md +21 -0
  1006. package/node_modules/@murphai/health-commons/content/sources/general-eye-health/pmid-37062428.md +21 -0
  1007. package/node_modules/@murphai/health-commons/content/sources/whole-body-photobiomodulation/clinicaltrials-gov-nct07047248-2026-04-23.md +0 -1
  1008. package/node_modules/@murphai/health-commons/dist/biomarker-fallback-ranges.d.ts +3 -0
  1009. package/node_modules/@murphai/health-commons/dist/biomarker-fallback-ranges.d.ts.map +1 -0
  1010. package/node_modules/@murphai/health-commons/dist/biomarker-fallback-ranges.js +2 -0
  1011. package/node_modules/@murphai/health-commons/dist/biomarker-fallback-ranges.js.map +1 -0
  1012. package/node_modules/@murphai/health-commons/dist/biomarker-runtime-artifacts.d.ts +17 -0
  1013. package/node_modules/@murphai/health-commons/dist/biomarker-runtime-artifacts.d.ts.map +1 -0
  1014. package/node_modules/@murphai/health-commons/dist/biomarker-runtime-artifacts.js +16 -0
  1015. package/node_modules/@murphai/health-commons/dist/biomarker-runtime-artifacts.js.map +1 -0
  1016. package/node_modules/@murphai/health-commons/dist/build.d.ts.map +1 -1
  1017. package/node_modules/@murphai/health-commons/dist/build.js +41 -7
  1018. package/node_modules/@murphai/health-commons/dist/build.js.map +1 -1
  1019. package/node_modules/@murphai/health-commons/dist/index.d.ts +1 -0
  1020. package/node_modules/@murphai/health-commons/dist/index.d.ts.map +1 -1
  1021. package/node_modules/@murphai/health-commons/dist/index.js +1 -0
  1022. package/node_modules/@murphai/health-commons/dist/index.js.map +1 -1
  1023. package/node_modules/@murphai/health-commons/dist/knowledge-index.d.ts +44 -0
  1024. package/node_modules/@murphai/health-commons/dist/knowledge-index.d.ts.map +1 -0
  1025. package/node_modules/@murphai/health-commons/dist/knowledge-index.js +540 -0
  1026. package/node_modules/@murphai/health-commons/dist/knowledge-index.js.map +1 -0
  1027. package/node_modules/@murphai/health-commons/dist/runtime.d.ts +17 -1
  1028. package/node_modules/@murphai/health-commons/dist/runtime.d.ts.map +1 -1
  1029. package/node_modules/@murphai/health-commons/dist/runtime.js +58 -4
  1030. package/node_modules/@murphai/health-commons/dist/runtime.js.map +1 -1
  1031. package/node_modules/@murphai/health-commons/generated/biomarker-desired-directions.json +410 -0
  1032. package/node_modules/@murphai/health-commons/generated/catalog.hash +1 -1
  1033. package/node_modules/@murphai/health-commons/generated/knowledge.sqlite +0 -0
  1034. package/node_modules/@murphai/health-commons/generated/protocol-family-graph.json +187 -46
  1035. package/node_modules/@murphai/health-commons/generated/protocol-index.json +47 -47
  1036. package/node_modules/@murphai/health-commons/generated/protocol-run-specs.json +967 -967
  1037. package/node_modules/@murphai/health-commons/generated/source-artifact-index.json +1 -1
  1038. package/node_modules/@murphai/health-commons/generated/source-identities.ndjson +28 -0
  1039. package/node_modules/@murphai/health-commons/generated/source-index.json +694 -2
  1040. package/node_modules/@murphai/health-commons/generated/web/browse/biomarkers.json +77 -9
  1041. package/node_modules/@murphai/health-commons/generated/web/browse/experiments.json +37 -37
  1042. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/absolute-basophils.json +1 -1
  1043. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/absolute-eosinophils.json +1 -1
  1044. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/absolute-immature-granulocytes.json +1 -1
  1045. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/absolute-lymphocytes.json +1 -1
  1046. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/absolute-monocytes.json +1 -1
  1047. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/absolute-neutrophils.json +1 -1
  1048. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/added-sugar-intake.json +1 -1
  1049. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/adherence.json +1 -1
  1050. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/adjusted-calcium.json +1 -1
  1051. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/adverse-symptoms.json +1 -1
  1052. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/alanine-aminotransferase.json +1 -1
  1053. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/albumin-globulin-ratio.json +1 -1
  1054. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/albumin.json +1 -1
  1055. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/alcohol-craving.json +1 -1
  1056. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/alcohol-free-days.json +1 -1
  1057. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/alcohol-intake.json +1 -1
  1058. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/alcohol-withdrawal-symptoms.json +1 -1
  1059. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/alkaline-phosphatase.json +1 -1
  1060. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ana-screen.json +1 -1
  1061. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/anion-gap.json +1 -1
  1062. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ankle-knee-to-wall-distance.json +1 -1
  1063. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/apolipoprotein-b.json +1 -1
  1064. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/arachidonic-acid-epa-ratio.json +1 -1
  1065. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/arachidonic-acid.json +1 -1
  1066. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/aspartate-aminotransferase.json +1 -1
  1067. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/basophil-percentage.json +1 -1
  1068. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/bedtime-delay.json +1 -1
  1069. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/bilirubin.json +3 -3
  1070. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/blood-glucose.json +1 -1
  1071. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/blood-ketones-beta-hydroxybutyrate.json +1 -1
  1072. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/blood-oxygen-spo2.json +1 -1
  1073. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/blood-pressure.json +1 -1
  1074. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/blood-urea-nitrogen.json +1 -1
  1075. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/body-fat-percent.json +1 -1
  1076. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/body-weight.json +1 -1
  1077. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/bun-creatinine-ratio.json +1 -1
  1078. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/c-peptide.json +1 -1
  1079. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/calcium.json +1 -1
  1080. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/carbon-dioxide.json +3 -3
  1081. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/chloride.json +1 -1
  1082. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/cholesterol-hdl-ratio.json +1 -1
  1083. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/chosen-primary-outcome-score.json +1 -1
  1084. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/continuous-glucose.json +1 -1
  1085. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/cortisol.json +1 -1
  1086. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/creatine-kinase.json +1 -1
  1087. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/daily-energy-intake-kcal.json +1 -1
  1088. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/daily-protein-g-per-kg.json +1 -1
  1089. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/daily-protein-grams.json +1 -1
  1090. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/daily-step-count.json +1 -1
  1091. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/daytime-sleepiness.json +1 -1
  1092. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/deep-sleep-minutes.json +4 -4
  1093. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/dha.json +1 -1
  1094. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/dhea-sulfate.json +1 -1
  1095. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/dietary-fiber-g-day.json +1 -1
  1096. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/digestive-comfort.json +1 -1
  1097. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/dpa.json +1 -1
  1098. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/egfr-ckd-epi.json +1 -1
  1099. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/egfr.json +1 -1
  1100. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/eosinophil-percentage.json +1 -1
  1101. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/epa.json +1 -1
  1102. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/estimated-gfr.json +1 -1
  1103. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/estimated-vo2max.json +1 -1
  1104. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/estradiol.json +1 -1
  1105. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/fasting-triglycerides.json +1 -1
  1106. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ferritin.json +1 -1
  1107. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/fib4.json +1 -1
  1108. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/follicle-stimulating-hormone.json +1 -1
  1109. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/free-t3.json +1 -1
  1110. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/free-t4.json +1 -1
  1111. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/free-testosterone.json +1 -1
  1112. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/gfr-mdrd-af-amer.json +1 -1
  1113. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/gfr-mdrd-non-af-amer.json +1 -1
  1114. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ggt.json +1 -1
  1115. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/gi-symptom-score.json +1 -1
  1116. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/gi-tolerance.json +1 -1
  1117. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hba1c.json +1 -1
  1118. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hbot-session-tolerability.json +1 -1
  1119. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hdl-c.json +1 -1
  1120. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hematocrit.json +1 -1
  1121. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hemoglobin.json +1 -1
  1122. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/homocysteine.json +1 -1
  1123. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hrv-rmssd.json +4 -4
  1124. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/hs-crp.json +1 -1
  1125. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/immature-granulocyte-percentage.json +1 -1
  1126. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/insulin.json +1 -1
  1127. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/iron-saturation.json +1 -1
  1128. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/iron.json +1 -1
  1129. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/lateral-knee-pain.json +1 -1
  1130. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldh.json +1 -1
  1131. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-c.json +1 -1
  1132. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-calculated.json +1 -1
  1133. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-chol-calc-nih.json +1 -1
  1134. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-cholesterol.json +1 -1
  1135. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-large-particles.json +1 -1
  1136. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-medium-particles.json +1 -1
  1137. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-particle-number.json +1 -1
  1138. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-pattern.json +1 -1
  1139. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-peak-size.json +1 -1
  1140. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/ldl-small-particles.json +1 -1
  1141. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/lead.json +1 -1
  1142. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/lean-body-mass.json +1 -1
  1143. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/lean-mass.json +1 -1
  1144. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/leg-heaviness-score.json +1 -1
  1145. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/linoleic-acid.json +1 -1
  1146. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/lipoprotein-a.json +1 -1
  1147. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/liver-enzyme-panel.json +1 -1
  1148. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/luteinizing-hormone.json +1 -1
  1149. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/lymphocyte-percentage.json +1 -1
  1150. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/macular-health-safety.json +1 -1
  1151. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/magnesium-rbc.json +1 -1
  1152. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/mean-corpuscular-hemoglobin-concentration.json +1 -1
  1153. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/mean-corpuscular-hemoglobin.json +1 -1
  1154. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/mean-corpuscular-volume.json +1 -1
  1155. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/mean-platelet-volume.json +1 -1
  1156. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/mercury.json +1 -1
  1157. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/methylmalonic-acid.json +1 -1
  1158. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/moderate-to-vigorous-activity-minutes.json +1 -1
  1159. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/monocyte-percentage.json +1 -1
  1160. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/mood-affect.json +1 -1
  1161. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/morning-blood-pressure.json +1 -1
  1162. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/muscle-soreness-score.json +1 -1
  1163. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/musculoskeletal-pain.json +1 -1
  1164. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/neutrophil-percentage.json +1 -1
  1165. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/non-hdl-c.json +1 -1
  1166. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/non-hdl-cholesterol.json +1 -1
  1167. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/omega-3-index.json +1 -1
  1168. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/omega-3-total-omegacheck.json +1 -1
  1169. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/omega-6-3-ratio.json +1 -1
  1170. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/omega-6-total.json +1 -1
  1171. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/omegacheck-total.json +1 -1
  1172. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/perceived-recovery-score.json +1 -1
  1173. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/perceived-recovery.json +1 -1
  1174. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/perceived-stiffness.json +1 -1
  1175. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/perceived-stress.json +1 -1
  1176. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/periocular-wrinkle-score.json +1 -1
  1177. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/phosphate.json +1 -1
  1178. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/platelet-count.json +1 -1
  1179. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/poc-troponin-i.json +1 -1
  1180. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/postprandial-glucose-excursion.json +1 -1
  1181. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/potassium.json +3 -3
  1182. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/pre-sleep-arousal.json +1 -1
  1183. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/prolactin.json +1 -1
  1184. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/psa-free.json +1 -1
  1185. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/psa-percent-free.json +1 -1
  1186. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/psa-total.json +1 -1
  1187. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/red-blood-cell-count.json +1 -1
  1188. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/red-cell-distribution-width.json +1 -1
  1189. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/rem-sleep-minutes.json +1 -1
  1190. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/resting-heart-rate.json +4 -4
  1191. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/rheumatoid-factor.json +1 -1
  1192. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/running-tolerance.json +1 -1
  1193. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/saturated-fat-g-day.json +1 -1
  1194. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sedentary-time.json +1 -1
  1195. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/self-reported-mood.json +1 -1
  1196. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/serum-25-hydroxyvitamin-d.json +1 -1
  1197. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/serum-creatinine.json +1 -1
  1198. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/serum-uric-acid.json +1 -1
  1199. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sex-hormone-binding-globulin.json +1 -1
  1200. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/shoulder-reach-distance.json +1 -1
  1201. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sit-and-reach-distance.json +1 -1
  1202. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/skin-texture-roughness-score.json +1 -1
  1203. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/skin-tolerability-symptoms.json +1 -1
  1204. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sleep-efficiency.json +4 -4
  1205. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sleep-onset-latency.json +1 -1
  1206. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sleep-quality.json +1 -1
  1207. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/sodium.json +3 -3
  1208. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/standardized-skin-photo-score.json +1 -1
  1209. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/step-floor-days.json +1 -1
  1210. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/stretching-adherence-sessions.json +1 -1
  1211. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/stretching-session-burden.json +1 -1
  1212. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/stretching-symptoms.json +1 -1
  1213. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/subjective-eye-strain.json +1 -1
  1214. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/subjective-satiety.json +1 -1
  1215. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/supplement-adherence.json +1 -1
  1216. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/task-performance.json +1 -1
  1217. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/thyroglobulin-antibodies.json +1 -1
  1218. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/thyroid-peroxidase-antibodies.json +1 -1
  1219. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/thyroid-stimulating-hormone.json +1 -1
  1220. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/toe-touch-distance.json +1 -1
  1221. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/total-cholesterol.json +1 -1
  1222. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/total-globulin.json +1 -1
  1223. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/total-iron-binding-capacity.json +1 -1
  1224. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/total-protein.json +1 -1
  1225. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/total-sleep-time.json +1 -1
  1226. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/total-testosterone.json +1 -1
  1227. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/training-performance.json +1 -1
  1228. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/training-volume.json +1 -1
  1229. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/triglycerides.json +1 -1
  1230. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/urine-albumin-creatinine-ratio.json +1 -1
  1231. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/urine-albumin-random-without-creatinine.json +1 -1
  1232. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/urine-protein.json +1 -1
  1233. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/visual-fatigue.json +1 -1
  1234. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/visual-performance.json +1 -1
  1235. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/vldl-cholesterol-calculated.json +1 -1
  1236. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/waist-circumference.json +1 -1
  1237. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/wake-after-sleep-onset.json +1 -1
  1238. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/wake-time-variability.json +1 -1
  1239. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/walking-bout-minutes.json +1 -1
  1240. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/walking-cadence.json +1 -1
  1241. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/walking-safety-events.json +1 -1
  1242. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/white-blood-cell-count.json +1 -1
  1243. package/node_modules/@murphai/health-commons/generated/web/bundles/biomarker/zinc.json +1 -1
  1244. package/node_modules/@murphai/health-commons/generated/web/bundles/measurement_method/clinic-imaging-upgrade.json +1 -1
  1245. package/node_modules/@murphai/health-commons/generated/web/bundles/measurement_method/home-standardized-photo-roi-analysis.json +1 -1
  1246. package/node_modules/@murphai/health-commons/generated/web/bundles/measurement_method/standardized-photo-score-workflow.json +1 -1
  1247. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/bryan-johnson-blueprint.json +1 -1
  1248. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/cold-plunge.json +1 -1
  1249. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/consistent-wake-time.json +1 -1
  1250. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/daily-step-floor.json +1 -1
  1251. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/finnish-sauna.json +1 -1
  1252. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/five-minute-tomorrow-list.json +1 -1
  1253. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/hyperbaric-oxygen-therapy.json +1 -1
  1254. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/morning-outdoor-light-exposure.json +1 -1
  1255. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/no-added-sugar-diet.json +1 -1
  1256. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/norwegian-4x4.json +1 -1
  1257. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/pneumatic-compression-pants.json +1 -1
  1258. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/protein-floor-high-protein-intake.json +3 -3
  1259. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/tabata-20-10-interval-training.json +1 -1
  1260. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/time-restricted-eating-18-6.json +1 -1
  1261. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/walking-after-every-meal.json +1 -1
  1262. package/node_modules/@murphai/health-commons/generated/web/bundles/protocol_variant/whole-body-red-and-near-infrared-light-exposure.json +7 -8
  1263. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/blood-oxygen-spo2/overview.json +1 -1
  1264. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/blood-oxygen-spo2/research.json +1 -1
  1265. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/deep-sleep-minutes/overview.json +2 -2
  1266. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/deep-sleep-minutes/research.json +1 -1
  1267. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/estimated-vo2max/overview.json +1 -1
  1268. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/estimated-vo2max/research.json +1 -1
  1269. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/hrv-rmssd/overview.json +2 -2
  1270. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/hrv-rmssd/research.json +1 -1
  1271. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/rem-sleep-minutes/overview.json +1 -1
  1272. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/rem-sleep-minutes/research.json +1 -1
  1273. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/resting-heart-rate/overview.json +2 -2
  1274. package/node_modules/@murphai/health-commons/generated/web/pages/biomarkers/resting-heart-rate/research.json +1 -1
  1275. package/node_modules/@murphai/health-commons/generated/web/routes/index.json +1 -1
  1276. package/node_modules/@murphai/health-commons/generated/web/shell/biomarkers/blood-oxygen-spo2.json +1 -1
  1277. package/node_modules/@murphai/health-commons/generated/web/shell/biomarkers/deep-sleep-minutes.json +1 -1
  1278. package/node_modules/@murphai/health-commons/generated/web/shell/biomarkers/estimated-vo2max.json +1 -1
  1279. package/node_modules/@murphai/health-commons/generated/web/shell/biomarkers/hrv-rmssd.json +1 -1
  1280. package/node_modules/@murphai/health-commons/generated/web/shell/biomarkers/rem-sleep-minutes.json +1 -1
  1281. package/node_modules/@murphai/health-commons/generated/web/shell/biomarkers/resting-heart-rate.json +1 -1
  1282. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/bryan-johnson-blueprint.json +1 -1
  1283. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/cold-plunge.json +1 -1
  1284. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/consistent-wake-time.json +1 -1
  1285. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/daily-step-floor.json +1 -1
  1286. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/finnish-sauna.json +1 -1
  1287. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/five-minute-tomorrow-list.json +1 -1
  1288. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/hyperbaric-oxygen-therapy.json +1 -1
  1289. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/morning-outdoor-light-exposure.json +1 -1
  1290. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/no-added-sugar-diet.json +1 -1
  1291. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/norwegian-4x4.json +1 -1
  1292. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/pneumatic-compression-pants.json +1 -1
  1293. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/protein-floor-high-protein-intake.json +1 -1
  1294. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/tabata-20-10-interval-training.json +1 -1
  1295. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/time-restricted-eating-18-6.json +1 -1
  1296. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/walking-after-every-meal.json +1 -1
  1297. package/node_modules/@murphai/health-commons/generated/web/shell/experiments/whole-body-red-and-near-infrared-light-exposure.json +3 -3
  1298. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/bryan-johnson-blueprint/protocol.json +1 -1
  1299. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/bryan-johnson-blueprint/research.json +1 -1
  1300. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/bryan-johnson-blueprint/results-public.json +2 -2
  1301. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/cold-plunge/protocol.json +1 -1
  1302. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/cold-plunge/research.json +1 -1
  1303. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/cold-plunge/results-public.json +2 -2
  1304. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/consistent-wake-time/protocol.json +1 -1
  1305. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/consistent-wake-time/research.json +1 -1
  1306. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/consistent-wake-time/results-public.json +2 -2
  1307. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/daily-step-floor/protocol.json +1 -1
  1308. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/daily-step-floor/research.json +1 -1
  1309. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/daily-step-floor/results-public.json +2 -2
  1310. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/finnish-sauna/protocol.json +1 -1
  1311. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/finnish-sauna/research.json +1 -1
  1312. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/finnish-sauna/results-public.json +2 -2
  1313. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/five-minute-tomorrow-list/protocol.json +1 -1
  1314. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/five-minute-tomorrow-list/research.json +1 -1
  1315. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/five-minute-tomorrow-list/results-public.json +2 -2
  1316. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/hyperbaric-oxygen-therapy/protocol.json +1 -1
  1317. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/hyperbaric-oxygen-therapy/research.json +1 -1
  1318. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/hyperbaric-oxygen-therapy/results-public.json +2 -2
  1319. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/morning-outdoor-light-exposure/protocol.json +1 -1
  1320. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/morning-outdoor-light-exposure/research.json +1 -1
  1321. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/morning-outdoor-light-exposure/results-public.json +2 -2
  1322. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/no-added-sugar-diet/protocol.json +1 -1
  1323. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/no-added-sugar-diet/research.json +1 -1
  1324. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/no-added-sugar-diet/results-public.json +2 -2
  1325. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/norwegian-4x4/protocol.json +1 -1
  1326. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/norwegian-4x4/research.json +1 -1
  1327. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/norwegian-4x4/results-public.json +2 -2
  1328. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/pneumatic-compression-pants/protocol.json +1 -1
  1329. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/pneumatic-compression-pants/research.json +1 -1
  1330. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/pneumatic-compression-pants/results-public.json +2 -2
  1331. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/protein-floor-high-protein-intake/protocol.json +1 -1
  1332. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/protein-floor-high-protein-intake/research.json +1 -1
  1333. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/protein-floor-high-protein-intake/results-public.json +2 -2
  1334. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/tabata-20-10-interval-training/protocol.json +1 -1
  1335. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/tabata-20-10-interval-training/research.json +1 -1
  1336. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/tabata-20-10-interval-training/results-public.json +2 -2
  1337. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/time-restricted-eating-18-6/protocol.json +1 -1
  1338. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/time-restricted-eating-18-6/research.json +1 -1
  1339. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/time-restricted-eating-18-6/results-public.json +2 -2
  1340. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/walking-after-every-meal/protocol.json +1 -1
  1341. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/walking-after-every-meal/research.json +1 -1
  1342. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/walking-after-every-meal/results-public.json +2 -2
  1343. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/whole-body-red-and-near-infrared-light-exposure/protocol.json +3 -3
  1344. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/whole-body-red-and-near-infrared-light-exposure/research.json +3 -3
  1345. package/node_modules/@murphai/health-commons/generated/web/tabs/experiments/whole-body-red-and-near-infrared-light-exposure/results-public.json +5 -5
  1346. package/node_modules/@murphai/health-commons/package.json +5 -0
  1347. package/node_modules/@murphai/health-metrics/dist/catalog.d.ts.map +1 -1
  1348. package/node_modules/@murphai/health-metrics/dist/catalog.js +22 -2
  1349. package/node_modules/@murphai/health-metrics/dist/catalog.js.map +1 -1
  1350. package/node_modules/@murphai/health-metrics/dist/definitions/activity.d.ts.map +1 -1
  1351. package/node_modules/@murphai/health-metrics/dist/definitions/activity.js +99 -0
  1352. package/node_modules/@murphai/health-metrics/dist/definitions/activity.js.map +1 -1
  1353. package/node_modules/@murphai/health-metrics/dist/definitions/body.d.ts.map +1 -1
  1354. package/node_modules/@murphai/health-metrics/dist/definitions/body.js +69 -2
  1355. package/node_modules/@murphai/health-metrics/dist/definitions/body.js.map +1 -1
  1356. package/node_modules/@murphai/health-metrics/dist/definitions/physiology.d.ts +55 -0
  1357. package/node_modules/@murphai/health-metrics/dist/definitions/physiology.d.ts.map +1 -0
  1358. package/node_modules/@murphai/health-metrics/dist/definitions/physiology.js +92 -0
  1359. package/node_modules/@murphai/health-metrics/dist/definitions/physiology.js.map +1 -0
  1360. package/node_modules/@murphai/health-metrics/dist/definitions/vitals.d.ts +1 -1
  1361. package/node_modules/@murphai/health-metrics/dist/index.d.ts +1 -0
  1362. package/node_modules/@murphai/health-metrics/dist/index.d.ts.map +1 -1
  1363. package/node_modules/@murphai/health-metrics/dist/index.js +1 -0
  1364. package/node_modules/@murphai/health-metrics/dist/index.js.map +1 -1
  1365. package/node_modules/@murphai/health-metrics/dist/lab-reference-ranges.d.ts +45 -0
  1366. package/node_modules/@murphai/health-metrics/dist/lab-reference-ranges.d.ts.map +1 -0
  1367. package/node_modules/@murphai/health-metrics/dist/lab-reference-ranges.js +502 -0
  1368. package/node_modules/@murphai/health-metrics/dist/lab-reference-ranges.js.map +1 -0
  1369. package/node_modules/@murphai/health-metrics/dist/normalize.d.ts.map +1 -1
  1370. package/node_modules/@murphai/health-metrics/dist/normalize.js +2 -0
  1371. package/node_modules/@murphai/health-metrics/dist/normalize.js.map +1 -1
  1372. package/node_modules/@murphai/health-metrics/dist/selectors.d.ts +3 -0
  1373. package/node_modules/@murphai/health-metrics/dist/selectors.d.ts.map +1 -1
  1374. package/node_modules/@murphai/health-metrics/dist/selectors.js +52 -6
  1375. package/node_modules/@murphai/health-metrics/dist/selectors.js.map +1 -1
  1376. package/node_modules/@murphai/health-metrics/dist/types.d.ts +1 -0
  1377. package/node_modules/@murphai/health-metrics/dist/types.d.ts.map +1 -1
  1378. package/node_modules/@murphai/health-metrics/dist/wearable-metric-catalog.d.ts +10 -1
  1379. package/node_modules/@murphai/health-metrics/dist/wearable-metric-catalog.d.ts.map +1 -1
  1380. package/node_modules/@murphai/health-metrics/dist/wearable-metric-catalog.js +29 -0
  1381. package/node_modules/@murphai/health-metrics/dist/wearable-metric-catalog.js.map +1 -1
  1382. package/node_modules/@murphai/importers/README.md +2 -0
  1383. package/node_modules/@murphai/importers/dist/assessment/import-assessment-response.js +1 -1
  1384. package/node_modules/@murphai/importers/dist/assessment/import-assessment-response.js.map +1 -1
  1385. package/node_modules/@murphai/importers/dist/core-port.d.ts +1 -0
  1386. package/node_modules/@murphai/importers/dist/core-port.d.ts.map +1 -1
  1387. package/node_modules/@murphai/importers/dist/core-port.js.map +1 -1
  1388. package/node_modules/@murphai/importers/dist/csv-sample-import-planner.d.ts +1 -0
  1389. package/node_modules/@murphai/importers/dist/csv-sample-import-planner.d.ts.map +1 -1
  1390. package/node_modules/@murphai/importers/dist/csv-sample-import-planner.js +1 -1
  1391. package/node_modules/@murphai/importers/dist/csv-sample-import-planner.js.map +1 -1
  1392. package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.js +1 -1
  1393. package/node_modules/@murphai/importers/dist/device-providers/import-device-provider-snapshot.js.map +1 -1
  1394. package/node_modules/@murphai/importers/dist/device-providers/index.d.ts +1 -1
  1395. package/node_modules/@murphai/importers/dist/device-providers/index.d.ts.map +1 -1
  1396. package/node_modules/@murphai/importers/dist/device-providers/index.js +1 -1
  1397. package/node_modules/@murphai/importers/dist/device-providers/index.js.map +1 -1
  1398. package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.d.ts +27 -0
  1399. package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.d.ts.map +1 -0
  1400. package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.js +403 -0
  1401. package/node_modules/@murphai/importers/dist/device-providers/junction-bounded-features.js.map +1 -0
  1402. package/node_modules/@murphai/importers/dist/device-providers/junction-resources.d.ts +4 -12
  1403. package/node_modules/@murphai/importers/dist/device-providers/junction-resources.d.ts.map +1 -1
  1404. package/node_modules/@murphai/importers/dist/device-providers/junction-resources.js +18 -107
  1405. package/node_modules/@murphai/importers/dist/device-providers/junction-resources.js.map +1 -1
  1406. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-fidelity.d.ts +285 -0
  1407. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-fidelity.d.ts.map +1 -0
  1408. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-fidelity.js +870 -0
  1409. package/node_modules/@murphai/importers/dist/device-providers/junction-timeseries-fidelity.js.map +1 -0
  1410. package/node_modules/@murphai/importers/dist/device-providers/junction.d.ts +38 -0
  1411. package/node_modules/@murphai/importers/dist/device-providers/junction.d.ts.map +1 -1
  1412. package/node_modules/@murphai/importers/dist/device-providers/junction.js +2682 -259
  1413. package/node_modules/@murphai/importers/dist/device-providers/junction.js.map +1 -1
  1414. package/node_modules/@murphai/importers/dist/device-providers/oura.js +1 -1
  1415. package/node_modules/@murphai/importers/dist/device-providers/oura.js.map +1 -1
  1416. package/node_modules/@murphai/importers/dist/device-providers/whoop.js +1 -1
  1417. package/node_modules/@murphai/importers/dist/device-providers/whoop.js.map +1 -1
  1418. package/node_modules/@murphai/importers/dist/document-importer.d.ts +1 -0
  1419. package/node_modules/@murphai/importers/dist/document-importer.d.ts.map +1 -1
  1420. package/node_modules/@murphai/importers/dist/document-importer.js +3 -1
  1421. package/node_modules/@murphai/importers/dist/document-importer.js.map +1 -1
  1422. package/node_modules/@murphai/importers/dist/index.d.ts +1 -0
  1423. package/node_modules/@murphai/importers/dist/index.d.ts.map +1 -1
  1424. package/node_modules/@murphai/importers/dist/index.js +1 -0
  1425. package/node_modules/@murphai/importers/dist/index.js.map +1 -1
  1426. package/node_modules/@murphai/importers/dist/meal-importer.d.ts.map +1 -1
  1427. package/node_modules/@murphai/importers/dist/meal-importer.js +2 -1
  1428. package/node_modules/@murphai/importers/dist/meal-importer.js.map +1 -1
  1429. package/node_modules/@murphai/importers/dist/preset-registry.js +1 -1
  1430. package/node_modules/@murphai/importers/dist/preset-registry.js.map +1 -1
  1431. package/node_modules/@murphai/importers/dist/shared.d.ts +1 -1
  1432. package/node_modules/@murphai/importers/dist/shared.d.ts.map +1 -1
  1433. package/node_modules/@murphai/importers/dist/shared.js +1 -1
  1434. package/node_modules/@murphai/importers/dist/shared.js.map +1 -1
  1435. package/node_modules/@murphai/importers/dist/workout-csv-planner.d.ts +49 -0
  1436. package/node_modules/@murphai/importers/dist/workout-csv-planner.d.ts.map +1 -0
  1437. package/node_modules/@murphai/importers/dist/workout-csv-planner.js +860 -0
  1438. package/node_modules/@murphai/importers/dist/workout-csv-planner.js.map +1 -0
  1439. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor-strategies.d.ts +2 -5
  1440. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor-strategies.d.ts.map +1 -1
  1441. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor-strategies.js +3 -50
  1442. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor-strategies.js.map +1 -1
  1443. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor.d.ts.map +1 -1
  1444. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor.js +9 -11
  1445. package/node_modules/@murphai/inbox-services/dist/inbox-app/bootstrap-doctor.js.map +1 -1
  1446. package/node_modules/@murphai/inbox-services/dist/inbox-app/environment.d.ts.map +1 -1
  1447. package/node_modules/@murphai/inbox-services/dist/inbox-app/environment.js +0 -160
  1448. package/node_modules/@murphai/inbox-services/dist/inbox-app/environment.js.map +1 -1
  1449. package/node_modules/@murphai/inbox-services/dist/inbox-app/runtime.d.ts.map +1 -1
  1450. package/node_modules/@murphai/inbox-services/dist/inbox-app/runtime.js +2 -4
  1451. package/node_modules/@murphai/inbox-services/dist/inbox-app/runtime.js.map +1 -1
  1452. package/node_modules/@murphai/inbox-services/dist/inbox-app/sources.d.ts +1 -1
  1453. package/node_modules/@murphai/inbox-services/dist/inbox-app/sources.d.ts.map +1 -1
  1454. package/node_modules/@murphai/inbox-services/dist/inbox-app/sources.js +2 -32
  1455. package/node_modules/@murphai/inbox-services/dist/inbox-app/sources.js.map +1 -1
  1456. package/node_modules/@murphai/inbox-services/dist/inbox-app/types.d.ts +2 -79
  1457. package/node_modules/@murphai/inbox-services/dist/inbox-app/types.d.ts.map +1 -1
  1458. package/node_modules/@murphai/inbox-services/dist/inbox-app/types.js +0 -1
  1459. package/node_modules/@murphai/inbox-services/dist/inbox-app/types.js.map +1 -1
  1460. package/node_modules/@murphai/inbox-services/dist/inbox-services/connectors.d.ts +1 -2
  1461. package/node_modules/@murphai/inbox-services/dist/inbox-services/connectors.d.ts.map +1 -1
  1462. package/node_modules/@murphai/inbox-services/dist/inbox-services/connectors.js +15 -37
  1463. package/node_modules/@murphai/inbox-services/dist/inbox-services/connectors.js.map +1 -1
  1464. package/node_modules/@murphai/inbox-services/dist/inbox-services/promotions.d.ts +21 -21
  1465. package/node_modules/@murphai/inbox-services/dist/inbox-services/promotions.d.ts.map +1 -1
  1466. package/node_modules/@murphai/inbox-services/dist/inbox-services/promotions.js +1 -1
  1467. package/node_modules/@murphai/inbox-services/dist/inbox-services/promotions.js.map +1 -1
  1468. package/node_modules/@murphai/inbox-services/dist/inbox-services/shared.d.ts +1 -1
  1469. package/node_modules/@murphai/inbox-services/dist/inbox-services/shared.d.ts.map +1 -1
  1470. package/node_modules/@murphai/inbox-services/dist/inbox-services/shared.js +0 -1
  1471. package/node_modules/@murphai/inbox-services/dist/inbox-services/shared.js.map +1 -1
  1472. package/node_modules/@murphai/inbox-services/dist/index.d.ts +1 -1
  1473. package/node_modules/@murphai/inbox-services/dist/index.d.ts.map +1 -1
  1474. package/node_modules/@murphai/inboxd/README.md +3 -3
  1475. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize-parsed.d.ts.map +1 -1
  1476. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize-parsed.js +56 -5
  1477. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize-parsed.js.map +1 -1
  1478. package/node_modules/@murphai/inboxd/dist/connectors/linq/normalize.js +8 -0
  1479. package/node_modules/@murphai/inboxd/dist/connectors/linq/normalize.js.map +1 -1
  1480. package/node_modules/@murphai/inboxd/dist/connectors/telegram/normalize.d.ts +1 -0
  1481. package/node_modules/@murphai/inboxd/dist/connectors/telegram/normalize.d.ts.map +1 -1
  1482. package/node_modules/@murphai/inboxd/dist/connectors/telegram/normalize.js +1 -0
  1483. package/node_modules/@murphai/inboxd/dist/connectors/telegram/normalize.js.map +1 -1
  1484. package/node_modules/@murphai/inboxd/dist/index.d.ts +0 -5
  1485. package/node_modules/@murphai/inboxd/dist/index.d.ts.map +1 -1
  1486. package/node_modules/@murphai/inboxd/dist/index.js +0 -2
  1487. package/node_modules/@murphai/inboxd/dist/index.js.map +1 -1
  1488. package/node_modules/@murphai/inboxd/dist/indexing/attachment-storage-normalizer.d.ts.map +1 -1
  1489. package/node_modules/@murphai/inboxd/dist/indexing/attachment-storage-normalizer.js +141 -4
  1490. package/node_modules/@murphai/inboxd/dist/indexing/attachment-storage-normalizer.js.map +1 -1
  1491. package/node_modules/@murphai/messaging-ingress/README.md +5 -1
  1492. package/node_modules/@murphai/messaging-ingress/dist/linq-webhook.d.ts +27 -1
  1493. package/node_modules/@murphai/messaging-ingress/dist/linq-webhook.d.ts.map +1 -1
  1494. package/node_modules/@murphai/messaging-ingress/dist/linq-webhook.js +164 -17
  1495. package/node_modules/@murphai/messaging-ingress/dist/linq-webhook.js.map +1 -1
  1496. package/node_modules/@murphai/messaging-ingress/dist/telegram-webhook-payload.d.ts +1 -0
  1497. package/node_modules/@murphai/messaging-ingress/dist/telegram-webhook-payload.d.ts.map +1 -1
  1498. package/node_modules/@murphai/messaging-ingress/dist/telegram-webhook-payload.js +2 -0
  1499. package/node_modules/@murphai/messaging-ingress/dist/telegram-webhook-payload.js.map +1 -1
  1500. package/node_modules/@murphai/operator-config/dist/assistant/codex-resume-state.d.ts +3 -3
  1501. package/node_modules/@murphai/operator-config/dist/assistant/codex-resume-state.d.ts.map +1 -1
  1502. package/node_modules/@murphai/operator-config/dist/assistant/codex-resume-state.js +1 -1
  1503. package/node_modules/@murphai/operator-config/dist/assistant/codex-resume-state.js.map +1 -1
  1504. package/node_modules/@murphai/operator-config/dist/assistant/current-delivery-route.d.ts +1 -1
  1505. package/node_modules/@murphai/operator-config/dist/assistant/current-delivery-route.d.ts.map +1 -1
  1506. package/node_modules/@murphai/operator-config/dist/assistant/current-delivery-route.js +7 -19
  1507. package/node_modules/@murphai/operator-config/dist/assistant/current-delivery-route.js.map +1 -1
  1508. package/node_modules/@murphai/operator-config/dist/assistant/hosted-config.d.ts +31 -33
  1509. package/node_modules/@murphai/operator-config/dist/assistant/hosted-config.d.ts.map +1 -1
  1510. package/node_modules/@murphai/operator-config/dist/assistant/hosted-config.js +5 -8
  1511. package/node_modules/@murphai/operator-config/dist/assistant/hosted-config.js.map +1 -1
  1512. package/node_modules/@murphai/operator-config/dist/assistant/provider-config.d.ts +1 -15
  1513. package/node_modules/@murphai/operator-config/dist/assistant/provider-config.d.ts.map +1 -1
  1514. package/node_modules/@murphai/operator-config/dist/assistant/provider-config.js +52 -84
  1515. package/node_modules/@murphai/operator-config/dist/assistant/provider-config.js.map +1 -1
  1516. package/node_modules/@murphai/operator-config/dist/assistant/target-runtime.d.ts +31 -48
  1517. package/node_modules/@murphai/operator-config/dist/assistant/target-runtime.d.ts.map +1 -1
  1518. package/node_modules/@murphai/operator-config/dist/assistant/target-runtime.js +33 -56
  1519. package/node_modules/@murphai/operator-config/dist/assistant/target-runtime.js.map +1 -1
  1520. package/node_modules/@murphai/operator-config/dist/assistant-backend.d.ts +11 -11
  1521. package/node_modules/@murphai/operator-config/dist/assistant-backend.d.ts.map +1 -1
  1522. package/node_modules/@murphai/operator-config/dist/assistant-backend.js +33 -45
  1523. package/node_modules/@murphai/operator-config/dist/assistant-backend.js.map +1 -1
  1524. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.d.ts +1713 -1566
  1525. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.d.ts.map +1 -1
  1526. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.js +193 -23
  1527. package/node_modules/@murphai/operator-config/dist/assistant-cli-contracts.js.map +1 -1
  1528. package/node_modules/@murphai/operator-config/dist/assistant-response-cards.d.ts +445 -0
  1529. package/node_modules/@murphai/operator-config/dist/assistant-response-cards.d.ts.map +1 -0
  1530. package/node_modules/@murphai/operator-config/dist/assistant-response-cards.js +1030 -0
  1531. package/node_modules/@murphai/operator-config/dist/assistant-response-cards.js.map +1 -0
  1532. package/node_modules/@murphai/operator-config/dist/command-helpers.d.ts +4 -2
  1533. package/node_modules/@murphai/operator-config/dist/command-helpers.d.ts.map +1 -1
  1534. package/node_modules/@murphai/operator-config/dist/command-helpers.js +36 -1
  1535. package/node_modules/@murphai/operator-config/dist/command-helpers.js.map +1 -1
  1536. package/node_modules/@murphai/operator-config/dist/device-cli-contracts.d.ts +181 -181
  1537. package/node_modules/@murphai/operator-config/dist/device-cli-contracts.d.ts.map +1 -1
  1538. package/node_modules/@murphai/operator-config/dist/device-cli-contracts.js +1 -1
  1539. package/node_modules/@murphai/operator-config/dist/device-cli-contracts.js.map +1 -1
  1540. package/node_modules/@murphai/operator-config/dist/device-sync-client.js +1 -1
  1541. package/node_modules/@murphai/operator-config/dist/device-sync-client.js.map +1 -1
  1542. package/node_modules/@murphai/operator-config/dist/elevenlabs-runtime.d.ts +3 -0
  1543. package/node_modules/@murphai/operator-config/dist/elevenlabs-runtime.d.ts.map +1 -1
  1544. package/node_modules/@murphai/operator-config/dist/elevenlabs-runtime.js +301 -63
  1545. package/node_modules/@murphai/operator-config/dist/elevenlabs-runtime.js.map +1 -1
  1546. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config-constants.d.ts +3 -2
  1547. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config-constants.d.ts.map +1 -1
  1548. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config-constants.js +3 -0
  1549. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config-constants.js.map +1 -1
  1550. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config.d.ts.map +1 -1
  1551. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config.js +2 -6
  1552. package/node_modules/@murphai/operator-config/dist/hosted-assistant-config.js.map +1 -1
  1553. package/node_modules/@murphai/operator-config/dist/http-json-retry.d.ts +7 -2
  1554. package/node_modules/@murphai/operator-config/dist/http-json-retry.d.ts.map +1 -1
  1555. package/node_modules/@murphai/operator-config/dist/http-json-retry.js +33 -14
  1556. package/node_modules/@murphai/operator-config/dist/http-json-retry.js.map +1 -1
  1557. package/node_modules/@murphai/operator-config/dist/inbox-cli-contracts.d.ts +427 -462
  1558. package/node_modules/@murphai/operator-config/dist/inbox-cli-contracts.d.ts.map +1 -1
  1559. package/node_modules/@murphai/operator-config/dist/inbox-cli-contracts.js +2 -14
  1560. package/node_modules/@murphai/operator-config/dist/inbox-cli-contracts.js.map +1 -1
  1561. package/node_modules/@murphai/operator-config/dist/linq-runtime.d.ts +35 -1
  1562. package/node_modules/@murphai/operator-config/dist/linq-runtime.d.ts.map +1 -1
  1563. package/node_modules/@murphai/operator-config/dist/linq-runtime.js +1115 -180
  1564. package/node_modules/@murphai/operator-config/dist/linq-runtime.js.map +1 -1
  1565. package/node_modules/@murphai/operator-config/dist/message-formatting.d.ts +1 -0
  1566. package/node_modules/@murphai/operator-config/dist/message-formatting.d.ts.map +1 -1
  1567. package/node_modules/@murphai/operator-config/dist/message-formatting.js +3 -1
  1568. package/node_modules/@murphai/operator-config/dist/message-formatting.js.map +1 -1
  1569. package/node_modules/@murphai/operator-config/dist/message-table-fallback.d.ts +7 -0
  1570. package/node_modules/@murphai/operator-config/dist/message-table-fallback.d.ts.map +1 -0
  1571. package/node_modules/@murphai/operator-config/dist/message-table-fallback.js +109 -0
  1572. package/node_modules/@murphai/operator-config/dist/message-table-fallback.js.map +1 -0
  1573. package/node_modules/@murphai/operator-config/dist/operator-config/self-delivery-targets.d.ts +12 -12
  1574. package/node_modules/@murphai/operator-config/dist/operator-config/self-delivery-targets.d.ts.map +1 -1
  1575. package/node_modules/@murphai/operator-config/dist/operator-config/self-delivery-targets.js +1 -1
  1576. package/node_modules/@murphai/operator-config/dist/operator-config/self-delivery-targets.js.map +1 -1
  1577. package/node_modules/@murphai/operator-config/dist/operator-config.d.ts +50 -53
  1578. package/node_modules/@murphai/operator-config/dist/operator-config.d.ts.map +1 -1
  1579. package/node_modules/@murphai/operator-config/dist/operator-config.js +4 -5
  1580. package/node_modules/@murphai/operator-config/dist/operator-config.js.map +1 -1
  1581. package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.d.ts +225 -226
  1582. package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.d.ts.map +1 -1
  1583. package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.js +2 -2
  1584. package/node_modules/@murphai/operator-config/dist/setup-cli-contracts.js.map +1 -1
  1585. package/node_modules/@murphai/operator-config/dist/setup-runtime-env.d.ts.map +1 -1
  1586. package/node_modules/@murphai/operator-config/dist/setup-runtime-env.js +0 -19
  1587. package/node_modules/@murphai/operator-config/dist/setup-runtime-env.js.map +1 -1
  1588. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.d.ts +336 -294
  1589. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.d.ts.map +1 -1
  1590. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.js +36 -8
  1591. package/node_modules/@murphai/operator-config/dist/vault-cli-contracts.js.map +1 -1
  1592. package/node_modules/@murphai/operator-config/dist/workout-action-binding.d.ts +5 -0
  1593. package/node_modules/@murphai/operator-config/dist/workout-action-binding.d.ts.map +1 -0
  1594. package/node_modules/@murphai/operator-config/dist/workout-action-binding.js +84 -0
  1595. package/node_modules/@murphai/operator-config/dist/workout-action-binding.js.map +1 -0
  1596. package/node_modules/@murphai/operator-config/package.json +10 -5
  1597. package/node_modules/@murphai/parsers/dist/adapters/ffmpeg.d.ts +2 -0
  1598. package/node_modules/@murphai/parsers/dist/adapters/ffmpeg.d.ts.map +1 -1
  1599. package/node_modules/@murphai/parsers/dist/adapters/ffmpeg.js +18 -0
  1600. package/node_modules/@murphai/parsers/dist/adapters/ffmpeg.js.map +1 -1
  1601. package/node_modules/@murphai/query/README.md +9 -0
  1602. package/node_modules/@murphai/query/dist/automation.d.ts +5 -2
  1603. package/node_modules/@murphai/query/dist/automation.d.ts.map +1 -1
  1604. package/node_modules/@murphai/query/dist/automation.js +33 -8
  1605. package/node_modules/@murphai/query/dist/automation.js.map +1 -1
  1606. package/node_modules/@murphai/query/dist/browser-biomarkers.d.ts +2 -2
  1607. package/node_modules/@murphai/query/dist/browser-biomarkers.d.ts.map +1 -1
  1608. package/node_modules/@murphai/query/dist/browser-biomarkers.js +1 -1
  1609. package/node_modules/@murphai/query/dist/browser-biomarkers.js.map +1 -1
  1610. package/node_modules/@murphai/query/dist/browser-experiments.d.ts +2 -2
  1611. package/node_modules/@murphai/query/dist/browser-experiments.d.ts.map +1 -1
  1612. package/node_modules/@murphai/query/dist/browser-experiments.js +1 -1
  1613. package/node_modules/@murphai/query/dist/browser-experiments.js.map +1 -1
  1614. package/node_modules/@murphai/query/dist/browser-murph-age.d.ts +1 -1
  1615. package/node_modules/@murphai/query/dist/browser-murph-age.d.ts.map +1 -1
  1616. package/node_modules/@murphai/query/dist/browser-overview.d.ts +2 -1
  1617. package/node_modules/@murphai/query/dist/browser-overview.d.ts.map +1 -1
  1618. package/node_modules/@murphai/query/dist/browser-replica/biomarker-panel.d.ts +2 -2
  1619. package/node_modules/@murphai/query/dist/browser-replica/biomarker-panel.d.ts.map +1 -1
  1620. package/node_modules/@murphai/query/dist/browser-replica/build.d.ts.map +1 -1
  1621. package/node_modules/@murphai/query/dist/browser-replica/build.js +45 -27
  1622. package/node_modules/@murphai/query/dist/browser-replica/build.js.map +1 -1
  1623. package/node_modules/@murphai/query/dist/browser-replica/client-overview.d.ts +3 -3
  1624. package/node_modules/@murphai/query/dist/browser-replica/client-overview.d.ts.map +1 -1
  1625. package/node_modules/@murphai/query/dist/browser-replica/client-overview.js +3 -0
  1626. package/node_modules/@murphai/query/dist/browser-replica/client-overview.js.map +1 -1
  1627. package/node_modules/@murphai/query/dist/browser-replica/device-metrics.d.ts +2 -2
  1628. package/node_modules/@murphai/query/dist/browser-replica/device-metrics.d.ts.map +1 -1
  1629. package/node_modules/@murphai/query/dist/browser-replica/device-metrics.js.map +1 -1
  1630. package/node_modules/@murphai/query/dist/browser-replica/experiment-run-cards.d.ts +8 -0
  1631. package/node_modules/@murphai/query/dist/browser-replica/experiment-run-cards.d.ts.map +1 -0
  1632. package/node_modules/@murphai/query/dist/browser-replica/experiment-run-cards.js +548 -0
  1633. package/node_modules/@murphai/query/dist/browser-replica/experiment-run-cards.js.map +1 -0
  1634. package/node_modules/@murphai/query/dist/browser-replica/experiments.d.ts +22 -2
  1635. package/node_modules/@murphai/query/dist/browser-replica/experiments.d.ts.map +1 -1
  1636. package/node_modules/@murphai/query/dist/browser-replica/experiments.js +209 -63
  1637. package/node_modules/@murphai/query/dist/browser-replica/experiments.js.map +1 -1
  1638. package/node_modules/@murphai/query/dist/browser-replica/lab-result-status.d.ts +11 -0
  1639. package/node_modules/@murphai/query/dist/browser-replica/lab-result-status.d.ts.map +1 -0
  1640. package/node_modules/@murphai/query/dist/browser-replica/lab-result-status.js +233 -0
  1641. package/node_modules/@murphai/query/dist/browser-replica/lab-result-status.js.map +1 -0
  1642. package/node_modules/@murphai/query/dist/browser-replica/lab-results.d.ts +4 -3
  1643. package/node_modules/@murphai/query/dist/browser-replica/lab-results.d.ts.map +1 -1
  1644. package/node_modules/@murphai/query/dist/browser-replica/lab-results.js +24 -5
  1645. package/node_modules/@murphai/query/dist/browser-replica/lab-results.js.map +1 -1
  1646. package/node_modules/@murphai/query/dist/browser-replica/metric-buckets.d.ts +14 -0
  1647. package/node_modules/@murphai/query/dist/browser-replica/metric-buckets.d.ts.map +1 -0
  1648. package/node_modules/@murphai/query/dist/browser-replica/metric-buckets.js +25 -0
  1649. package/node_modules/@murphai/query/dist/browser-replica/metric-buckets.js.map +1 -0
  1650. package/node_modules/@murphai/query/dist/browser-replica/murph-age.d.ts +2 -2
  1651. package/node_modules/@murphai/query/dist/browser-replica/murph-age.d.ts.map +1 -1
  1652. package/node_modules/@murphai/query/dist/browser-replica/murph-age.js.map +1 -1
  1653. package/node_modules/@murphai/query/dist/browser-replica/parse.d.ts +8 -0
  1654. package/node_modules/@murphai/query/dist/browser-replica/parse.d.ts.map +1 -1
  1655. package/node_modules/@murphai/query/dist/browser-replica/parse.js +327 -7
  1656. package/node_modules/@murphai/query/dist/browser-replica/parse.js.map +1 -1
  1657. package/node_modules/@murphai/query/dist/browser-replica/query.d.ts +24 -1
  1658. package/node_modules/@murphai/query/dist/browser-replica/query.d.ts.map +1 -1
  1659. package/node_modules/@murphai/query/dist/browser-replica/query.js +246 -41
  1660. package/node_modules/@murphai/query/dist/browser-replica/query.js.map +1 -1
  1661. package/node_modules/@murphai/query/dist/browser-replica/search-row.d.ts +3 -0
  1662. package/node_modules/@murphai/query/dist/browser-replica/search-row.d.ts.map +1 -0
  1663. package/node_modules/@murphai/query/dist/browser-replica/search-row.js +16 -0
  1664. package/node_modules/@murphai/query/dist/browser-replica/search-row.js.map +1 -0
  1665. package/node_modules/@murphai/query/dist/browser-replica/shards.d.ts +76 -0
  1666. package/node_modules/@murphai/query/dist/browser-replica/shards.d.ts.map +1 -0
  1667. package/node_modules/@murphai/query/dist/browser-replica/shards.js +232 -0
  1668. package/node_modules/@murphai/query/dist/browser-replica/shards.js.map +1 -0
  1669. package/node_modules/@murphai/query/dist/browser-replica/shared.d.ts +143 -9
  1670. package/node_modules/@murphai/query/dist/browser-replica/shared.d.ts.map +1 -1
  1671. package/node_modules/@murphai/query/dist/browser-replica/shared.js +1 -0
  1672. package/node_modules/@murphai/query/dist/browser-replica/shared.js.map +1 -1
  1673. package/node_modules/@murphai/query/dist/browser-replica/tracked-experiments.d.ts +3 -3
  1674. package/node_modules/@murphai/query/dist/browser-replica/tracked-experiments.d.ts.map +1 -1
  1675. package/node_modules/@murphai/query/dist/browser-replica/tracked-experiments.js.map +1 -1
  1676. package/node_modules/@murphai/query/dist/browser-replica/training.d.ts +7 -0
  1677. package/node_modules/@murphai/query/dist/browser-replica/training.d.ts.map +1 -0
  1678. package/node_modules/@murphai/query/dist/browser-replica/training.js +241 -0
  1679. package/node_modules/@murphai/query/dist/browser-replica/training.js.map +1 -0
  1680. package/node_modules/@murphai/query/dist/browser-replica/views.d.ts +5 -5
  1681. package/node_modules/@murphai/query/dist/browser-replica/views.d.ts.map +1 -1
  1682. package/node_modules/@murphai/query/dist/browser-replica/views.js +3 -0
  1683. package/node_modules/@murphai/query/dist/browser-replica/views.js.map +1 -1
  1684. package/node_modules/@murphai/query/dist/browser-replica-client.d.ts +11 -4
  1685. package/node_modules/@murphai/query/dist/browser-replica-client.d.ts.map +1 -1
  1686. package/node_modules/@murphai/query/dist/browser-replica-client.js +7 -3
  1687. package/node_modules/@murphai/query/dist/browser-replica-client.js.map +1 -1
  1688. package/node_modules/@murphai/query/dist/browser-replica-server.d.ts +5 -0
  1689. package/node_modules/@murphai/query/dist/browser-replica-server.d.ts.map +1 -0
  1690. package/node_modules/@murphai/query/dist/browser-replica-server.js +5 -0
  1691. package/node_modules/@murphai/query/dist/browser-replica-server.js.map +1 -0
  1692. package/node_modules/@murphai/query/dist/browser-replica.d.ts +13 -5
  1693. package/node_modules/@murphai/query/dist/browser-replica.d.ts.map +1 -1
  1694. package/node_modules/@murphai/query/dist/browser-replica.js +9 -4
  1695. package/node_modules/@murphai/query/dist/browser-replica.js.map +1 -1
  1696. package/node_modules/@murphai/query/dist/browser.d.ts +2 -2
  1697. package/node_modules/@murphai/query/dist/browser.d.ts.map +1 -1
  1698. package/node_modules/@murphai/query/dist/browser.js +1 -1
  1699. package/node_modules/@murphai/query/dist/browser.js.map +1 -1
  1700. package/node_modules/@murphai/query/dist/canonical-observation-metrics.d.ts +16 -0
  1701. package/node_modules/@murphai/query/dist/canonical-observation-metrics.d.ts.map +1 -0
  1702. package/node_modules/@murphai/query/dist/canonical-observation-metrics.js +70 -0
  1703. package/node_modules/@murphai/query/dist/canonical-observation-metrics.js.map +1 -0
  1704. package/node_modules/@murphai/query/dist/experiment-adherence.d.ts +20 -0
  1705. package/node_modules/@murphai/query/dist/experiment-adherence.d.ts.map +1 -1
  1706. package/node_modules/@murphai/query/dist/experiment-adherence.js +175 -29
  1707. package/node_modules/@murphai/query/dist/experiment-adherence.js.map +1 -1
  1708. package/node_modules/@murphai/query/dist/experiment-progress-card.d.ts +1 -0
  1709. package/node_modules/@murphai/query/dist/experiment-progress-card.d.ts.map +1 -1
  1710. package/node_modules/@murphai/query/dist/experiment-progress-card.js +1 -0
  1711. package/node_modules/@murphai/query/dist/experiment-progress-card.js.map +1 -1
  1712. package/node_modules/@murphai/query/dist/experiments.d.ts.map +1 -1
  1713. package/node_modules/@murphai/query/dist/experiments.js +46 -22
  1714. package/node_modules/@murphai/query/dist/experiments.js.map +1 -1
  1715. package/node_modules/@murphai/query/dist/group-weekly.d.ts.map +1 -1
  1716. package/node_modules/@murphai/query/dist/group-weekly.js +52 -1
  1717. package/node_modules/@murphai/query/dist/group-weekly.js.map +1 -1
  1718. package/node_modules/@murphai/query/dist/health/shared.js +1 -1
  1719. package/node_modules/@murphai/query/dist/health/shared.js.map +1 -1
  1720. package/node_modules/@murphai/query/dist/index.d.ts +21 -4
  1721. package/node_modules/@murphai/query/dist/index.d.ts.map +1 -1
  1722. package/node_modules/@murphai/query/dist/index.js +14 -3
  1723. package/node_modules/@murphai/query/dist/index.js.map +1 -1
  1724. package/node_modules/@murphai/query/dist/knowledge-contracts.d.ts +78 -75
  1725. package/node_modules/@murphai/query/dist/knowledge-contracts.d.ts.map +1 -1
  1726. package/node_modules/@murphai/query/dist/knowledge-contracts.js +2 -1
  1727. package/node_modules/@murphai/query/dist/knowledge-contracts.js.map +1 -1
  1728. package/node_modules/@murphai/query/dist/knowledge-graph.d.ts +1 -0
  1729. package/node_modules/@murphai/query/dist/knowledge-graph.d.ts.map +1 -1
  1730. package/node_modules/@murphai/query/dist/knowledge-graph.js +17 -1
  1731. package/node_modules/@murphai/query/dist/knowledge-graph.js.map +1 -1
  1732. package/node_modules/@murphai/query/dist/meal-nutrition.d.ts +26 -0
  1733. package/node_modules/@murphai/query/dist/meal-nutrition.d.ts.map +1 -1
  1734. package/node_modules/@murphai/query/dist/meal-nutrition.js +111 -5
  1735. package/node_modules/@murphai/query/dist/meal-nutrition.js.map +1 -1
  1736. package/node_modules/@murphai/query/dist/metrics/index.d.ts.map +1 -1
  1737. package/node_modules/@murphai/query/dist/metrics/index.js +14 -1
  1738. package/node_modules/@murphai/query/dist/metrics/index.js.map +1 -1
  1739. package/node_modules/@murphai/query/dist/metrics/projection.d.ts.map +1 -1
  1740. package/node_modules/@murphai/query/dist/metrics/projection.js +110 -3
  1741. package/node_modules/@murphai/query/dist/metrics/projection.js.map +1 -1
  1742. package/node_modules/@murphai/query/dist/personal-patterns.d.ts +55 -0
  1743. package/node_modules/@murphai/query/dist/personal-patterns.d.ts.map +1 -0
  1744. package/node_modules/@murphai/query/dist/personal-patterns.js +401 -0
  1745. package/node_modules/@murphai/query/dist/personal-patterns.js.map +1 -0
  1746. package/node_modules/@murphai/query/dist/projection/schema.d.ts +1 -1
  1747. package/node_modules/@murphai/query/dist/projection/schema.d.ts.map +1 -1
  1748. package/node_modules/@murphai/query/dist/projection/schema.js +3 -1
  1749. package/node_modules/@murphai/query/dist/projection/schema.js.map +1 -1
  1750. package/node_modules/@murphai/query/dist/projection/wearable-summary-compose.js +4 -0
  1751. package/node_modules/@murphai/query/dist/projection/wearable-summary-compose.js.map +1 -1
  1752. package/node_modules/@murphai/query/dist/projection/wearable-summary-projector.d.ts.map +1 -1
  1753. package/node_modules/@murphai/query/dist/projection/wearable-summary-projector.js +2 -2
  1754. package/node_modules/@murphai/query/dist/projection/wearable-summary-projector.js.map +1 -1
  1755. package/node_modules/@murphai/query/dist/projection/wearable-summary-stored-codec.js +1 -1
  1756. package/node_modules/@murphai/query/dist/projection/wearable-summary-stored-codec.js.map +1 -1
  1757. package/node_modules/@murphai/query/dist/query-projection.d.ts +14 -0
  1758. package/node_modules/@murphai/query/dist/query-projection.d.ts.map +1 -1
  1759. package/node_modules/@murphai/query/dist/query-projection.js +31 -0
  1760. package/node_modules/@murphai/query/dist/query-projection.js.map +1 -1
  1761. package/node_modules/@murphai/query/dist/wearables/candidates.d.ts.map +1 -1
  1762. package/node_modules/@murphai/query/dist/wearables/candidates.js +6 -0
  1763. package/node_modules/@murphai/query/dist/wearables/candidates.js.map +1 -1
  1764. package/node_modules/@murphai/query/dist/wearables/public-output.d.ts.map +1 -1
  1765. package/node_modules/@murphai/query/dist/wearables/public-output.js +37 -2
  1766. package/node_modules/@murphai/query/dist/wearables/public-output.js.map +1 -1
  1767. package/node_modules/@murphai/query/dist/wearables/sleep-pattern.d.ts +5 -1
  1768. package/node_modules/@murphai/query/dist/wearables/sleep-pattern.d.ts.map +1 -1
  1769. package/node_modules/@murphai/query/dist/wearables/sleep-pattern.js +16 -3
  1770. package/node_modules/@murphai/query/dist/wearables/sleep-pattern.js.map +1 -1
  1771. package/node_modules/@murphai/query/dist/wearables/source-health.d.ts.map +1 -1
  1772. package/node_modules/@murphai/query/dist/wearables/source-health.js +27 -4
  1773. package/node_modules/@murphai/query/dist/wearables/source-health.js.map +1 -1
  1774. package/node_modules/@murphai/query/dist/wearables/types.d.ts +17 -4
  1775. package/node_modules/@murphai/query/dist/wearables/types.d.ts.map +1 -1
  1776. package/node_modules/@murphai/query/dist/wearables/types.js +34 -0
  1777. package/node_modules/@murphai/query/dist/wearables/types.js.map +1 -1
  1778. package/node_modules/@murphai/query/dist/wearables.d.ts.map +1 -1
  1779. package/node_modules/@murphai/query/dist/wearables.js +55 -4
  1780. package/node_modules/@murphai/query/dist/wearables.js.map +1 -1
  1781. package/node_modules/@murphai/query/package.json +10 -0
  1782. package/node_modules/@murphai/runtime-state/README.md +2 -2
  1783. package/node_modules/@murphai/runtime-state/dist/assistant-local-state-descriptors.d.ts.map +1 -1
  1784. package/node_modules/@murphai/runtime-state/dist/assistant-local-state-descriptors.js +15 -2
  1785. package/node_modules/@murphai/runtime-state/dist/assistant-local-state-descriptors.js.map +1 -1
  1786. package/node_modules/@murphai/runtime-state/dist/hosted-bundles.d.ts +1 -0
  1787. package/node_modules/@murphai/runtime-state/dist/hosted-bundles.d.ts.map +1 -1
  1788. package/node_modules/@murphai/runtime-state/dist/hosted-bundles.js +45 -20
  1789. package/node_modules/@murphai/runtime-state/dist/hosted-bundles.js.map +1 -1
  1790. package/node_modules/@murphai/runtime-state/dist/hosted-crypto-keyrings.d.ts +32 -1
  1791. package/node_modules/@murphai/runtime-state/dist/hosted-crypto-keyrings.d.ts.map +1 -1
  1792. package/node_modules/@murphai/runtime-state/dist/hosted-crypto-keyrings.js +327 -0
  1793. package/node_modules/@murphai/runtime-state/dist/hosted-crypto-keyrings.js.map +1 -1
  1794. package/node_modules/@murphai/runtime-state/dist/hosted-domain-crypto.d.ts +3 -1
  1795. package/node_modules/@murphai/runtime-state/dist/hosted-domain-crypto.d.ts.map +1 -1
  1796. package/node_modules/@murphai/runtime-state/dist/hosted-domain-crypto.js +23 -3
  1797. package/node_modules/@murphai/runtime-state/dist/hosted-domain-crypto.js.map +1 -1
  1798. package/node_modules/@murphai/runtime-state/dist/hosted-storage.d.ts +1 -1
  1799. package/node_modules/@murphai/runtime-state/dist/hosted-storage.d.ts.map +1 -1
  1800. package/node_modules/@murphai/runtime-state/dist/hosted-storage.js +1 -0
  1801. package/node_modules/@murphai/runtime-state/dist/hosted-storage.js.map +1 -1
  1802. package/node_modules/@murphai/runtime-state/dist/sqlite.d.ts.map +1 -1
  1803. package/node_modules/@murphai/runtime-state/dist/sqlite.js +22 -6
  1804. package/node_modules/@murphai/runtime-state/dist/sqlite.js.map +1 -1
  1805. package/node_modules/@murphai/setup-cli/README.md +1 -1
  1806. package/node_modules/@murphai/setup-cli/dist/index.d.ts +0 -1
  1807. package/node_modules/@murphai/setup-cli/dist/index.d.ts.map +1 -1
  1808. package/node_modules/@murphai/setup-cli/dist/index.js +0 -1
  1809. package/node_modules/@murphai/setup-cli/dist/index.js.map +1 -1
  1810. package/node_modules/@murphai/setup-cli/dist/setup-assistant-account.js +1 -1
  1811. package/node_modules/@murphai/setup-cli/dist/setup-assistant-account.js.map +1 -1
  1812. package/node_modules/@murphai/setup-cli/dist/setup-assistant-defaults.d.ts.map +1 -1
  1813. package/node_modules/@murphai/setup-cli/dist/setup-assistant-defaults.js +14 -24
  1814. package/node_modules/@murphai/setup-cli/dist/setup-assistant-defaults.js.map +1 -1
  1815. package/node_modules/@murphai/setup-cli/dist/setup-assistant.js +1 -1
  1816. package/node_modules/@murphai/setup-cli/dist/setup-assistant.js.map +1 -1
  1817. package/node_modules/@murphai/setup-cli/dist/setup-cli.d.ts +1 -2
  1818. package/node_modules/@murphai/setup-cli/dist/setup-cli.d.ts.map +1 -1
  1819. package/node_modules/@murphai/setup-cli/dist/setup-cli.js +2 -4
  1820. package/node_modules/@murphai/setup-cli/dist/setup-cli.js.map +1 -1
  1821. package/node_modules/@murphai/setup-cli/dist/setup-services/channels.d.ts +0 -4
  1822. package/node_modules/@murphai/setup-cli/dist/setup-services/channels.d.ts.map +1 -1
  1823. package/node_modules/@murphai/setup-cli/dist/setup-services/channels.js +126 -420
  1824. package/node_modules/@murphai/setup-cli/dist/setup-services/channels.js.map +1 -1
  1825. package/node_modules/@murphai/setup-cli/dist/setup-services.d.ts +0 -3
  1826. package/node_modules/@murphai/setup-cli/dist/setup-services.d.ts.map +1 -1
  1827. package/node_modules/@murphai/setup-cli/dist/setup-services.js +0 -7
  1828. package/node_modules/@murphai/setup-cli/dist/setup-services.js.map +1 -1
  1829. package/node_modules/@murphai/setup-cli/dist/setup-wizard-options.d.ts.map +1 -1
  1830. package/node_modules/@murphai/setup-cli/dist/setup-wizard-options.js +0 -7
  1831. package/node_modules/@murphai/setup-cli/dist/setup-wizard-options.js.map +1 -1
  1832. package/node_modules/@murphai/vault-usecases/dist/clinical-records.js +1 -1
  1833. package/node_modules/@murphai/vault-usecases/dist/clinical-records.js.map +1 -1
  1834. package/node_modules/@murphai/vault-usecases/dist/experiment-onboarding-options.d.ts +3 -3
  1835. package/node_modules/@murphai/vault-usecases/dist/experiment-onboarding-options.d.ts.map +1 -1
  1836. package/node_modules/@murphai/vault-usecases/dist/experiment-onboarding-options.js +1 -1
  1837. package/node_modules/@murphai/vault-usecases/dist/experiment-onboarding-options.js.map +1 -1
  1838. package/node_modules/@murphai/vault-usecases/dist/export-packs.d.ts +7 -0
  1839. package/node_modules/@murphai/vault-usecases/dist/export-packs.d.ts.map +1 -0
  1840. package/node_modules/@murphai/vault-usecases/dist/export-packs.js +45 -0
  1841. package/node_modules/@murphai/vault-usecases/dist/export-packs.js.map +1 -0
  1842. package/node_modules/@murphai/vault-usecases/dist/health-cli-descriptors.d.ts +28 -28
  1843. package/node_modules/@murphai/vault-usecases/dist/health-cli-descriptors.d.ts.map +1 -1
  1844. package/node_modules/@murphai/vault-usecases/dist/health-cli-descriptors.js +1 -1
  1845. package/node_modules/@murphai/vault-usecases/dist/health-cli-descriptors.js.map +1 -1
  1846. package/node_modules/@murphai/vault-usecases/dist/json-input.d.ts +1 -1
  1847. package/node_modules/@murphai/vault-usecases/dist/json-input.d.ts.map +1 -1
  1848. package/node_modules/@murphai/vault-usecases/dist/json-input.js +1 -1
  1849. package/node_modules/@murphai/vault-usecases/dist/json-input.js.map +1 -1
  1850. package/node_modules/@murphai/vault-usecases/dist/query-runtime.d.ts +5 -1
  1851. package/node_modules/@murphai/vault-usecases/dist/query-runtime.d.ts.map +1 -1
  1852. package/node_modules/@murphai/vault-usecases/dist/query-runtime.js.map +1 -1
  1853. package/node_modules/@murphai/vault-usecases/dist/testing/junction-wearable-fixture.d.ts +1 -1
  1854. package/node_modules/@murphai/vault-usecases/dist/testing/junction-wearable-fixture.d.ts.map +1 -1
  1855. package/node_modules/@murphai/vault-usecases/dist/usecases/capture.d.ts +21 -21
  1856. package/node_modules/@murphai/vault-usecases/dist/usecases/capture.d.ts.map +1 -1
  1857. package/node_modules/@murphai/vault-usecases/dist/usecases/capture.js +1 -1
  1858. package/node_modules/@murphai/vault-usecases/dist/usecases/capture.js.map +1 -1
  1859. package/node_modules/@murphai/vault-usecases/dist/usecases/clinical-imports.d.ts +193 -193
  1860. package/node_modules/@murphai/vault-usecases/dist/usecases/clinical-imports.d.ts.map +1 -1
  1861. package/node_modules/@murphai/vault-usecases/dist/usecases/clinical-imports.js +1 -1
  1862. package/node_modules/@murphai/vault-usecases/dist/usecases/clinical-imports.js.map +1 -1
  1863. package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.d.ts +12 -12
  1864. package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.d.ts.map +1 -1
  1865. package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.js +1 -1
  1866. package/node_modules/@murphai/vault-usecases/dist/usecases/document-meal-read.js.map +1 -1
  1867. package/node_modules/@murphai/vault-usecases/dist/usecases/encounter.d.ts +130 -130
  1868. package/node_modules/@murphai/vault-usecases/dist/usecases/encounter.d.ts.map +1 -1
  1869. package/node_modules/@murphai/vault-usecases/dist/usecases/encounter.js +1 -1
  1870. package/node_modules/@murphai/vault-usecases/dist/usecases/encounter.js.map +1 -1
  1871. package/node_modules/@murphai/vault-usecases/dist/usecases/event-record-mutations.d.ts +1 -0
  1872. package/node_modules/@murphai/vault-usecases/dist/usecases/event-record-mutations.d.ts.map +1 -1
  1873. package/node_modules/@murphai/vault-usecases/dist/usecases/event-record-mutations.js +22 -0
  1874. package/node_modules/@murphai/vault-usecases/dist/usecases/event-record-mutations.js.map +1 -1
  1875. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.d.ts +28 -5
  1876. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.d.ts.map +1 -1
  1877. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.js +225 -37
  1878. package/node_modules/@murphai/vault-usecases/dist/usecases/experiment-journal-vault.js.map +1 -1
  1879. package/node_modules/@murphai/vault-usecases/dist/usecases/food-autolog.d.ts +1 -1
  1880. package/node_modules/@murphai/vault-usecases/dist/usecases/food-autolog.d.ts.map +1 -1
  1881. package/node_modules/@murphai/vault-usecases/dist/usecases/food-autolog.js +1 -1
  1882. package/node_modules/@murphai/vault-usecases/dist/usecases/food-autolog.js.map +1 -1
  1883. package/node_modules/@murphai/vault-usecases/dist/usecases/food.d.ts.map +1 -1
  1884. package/node_modules/@murphai/vault-usecases/dist/usecases/food.js +0 -1
  1885. package/node_modules/@murphai/vault-usecases/dist/usecases/food.js.map +1 -1
  1886. package/node_modules/@murphai/vault-usecases/dist/usecases/integrated-services.d.ts.map +1 -1
  1887. package/node_modules/@murphai/vault-usecases/dist/usecases/integrated-services.js +77 -9
  1888. package/node_modules/@murphai/vault-usecases/dist/usecases/integrated-services.js.map +1 -1
  1889. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.d.ts +95 -13
  1890. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.d.ts.map +1 -1
  1891. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.js +136 -3
  1892. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement-read.js.map +1 -1
  1893. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement.d.ts.map +1 -1
  1894. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement.js +3 -1
  1895. package/node_modules/@murphai/vault-usecases/dist/usecases/measurement.js.map +1 -1
  1896. package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.d.ts +4 -4
  1897. package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.d.ts.map +1 -1
  1898. package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.js +1 -1
  1899. package/node_modules/@murphai/vault-usecases/dist/usecases/provider-event.js.map +1 -1
  1900. package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.d.ts +3 -3
  1901. package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.d.ts.map +1 -1
  1902. package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.js +1 -1
  1903. package/node_modules/@murphai/vault-usecases/dist/usecases/recipe.js.map +1 -1
  1904. package/node_modules/@murphai/vault-usecases/dist/usecases/runtime.d.ts.map +1 -1
  1905. package/node_modules/@murphai/vault-usecases/dist/usecases/runtime.js +2 -0
  1906. package/node_modules/@murphai/vault-usecases/dist/usecases/runtime.js.map +1 -1
  1907. package/node_modules/@murphai/vault-usecases/dist/usecases/types.d.ts +44 -1
  1908. package/node_modules/@murphai/vault-usecases/dist/usecases/types.d.ts.map +1 -1
  1909. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-core.d.ts +7 -1
  1910. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-core.d.ts.map +1 -1
  1911. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-core.js.map +1 -1
  1912. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-format.d.ts +2 -0
  1913. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-format.d.ts.map +1 -1
  1914. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-import.d.ts +60 -7
  1915. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-import.d.ts.map +1 -1
  1916. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-import.js +1282 -494
  1917. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-import.js.map +1 -1
  1918. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.d.ts +84 -0
  1919. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.d.ts.map +1 -0
  1920. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.js +195 -0
  1921. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-model.js.map +1 -0
  1922. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.d.ts +36 -0
  1923. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.d.ts.map +1 -0
  1924. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.js +285 -0
  1925. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live-state.js.map +1 -0
  1926. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.d.ts +122 -0
  1927. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.d.ts.map +1 -0
  1928. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.js +507 -0
  1929. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-live.js.map +1 -0
  1930. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-model.d.ts +1 -1
  1931. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-model.d.ts.map +1 -1
  1932. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-model.js +2 -0
  1933. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-model.js.map +1 -1
  1934. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.d.ts +13 -13
  1935. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.d.ts.map +1 -1
  1936. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.js +3 -2
  1937. package/node_modules/@murphai/vault-usecases/dist/usecases/workout-read.js.map +1 -1
  1938. package/node_modules/@murphai/vault-usecases/dist/usecases/workout.d.ts +25 -1
  1939. package/node_modules/@murphai/vault-usecases/dist/usecases/workout.d.ts.map +1 -1
  1940. package/node_modules/@murphai/vault-usecases/dist/usecases/workout.js +118 -3
  1941. package/node_modules/@murphai/vault-usecases/dist/usecases/workout.js.map +1 -1
  1942. package/node_modules/@murphai/vault-usecases/dist/vault-services.d.ts.map +1 -1
  1943. package/node_modules/@murphai/vault-usecases/dist/vault-services.js +3 -0
  1944. package/node_modules/@murphai/vault-usecases/dist/vault-services.js.map +1 -1
  1945. package/node_modules/@murphai/vault-usecases/dist/workouts.d.ts +1 -0
  1946. package/node_modules/@murphai/vault-usecases/dist/workouts.d.ts.map +1 -1
  1947. package/node_modules/@murphai/vault-usecases/dist/workouts.js +1 -0
  1948. package/node_modules/@murphai/vault-usecases/dist/workouts.js.map +1 -1
  1949. package/node_modules/@murphai/vault-usecases/package.json +4 -0
  1950. package/node_modules/ink/build/ansi-tokenizer.d.ts +38 -0
  1951. package/node_modules/ink/build/ansi-tokenizer.js +316 -0
  1952. package/node_modules/ink/build/ansi-tokenizer.js.map +1 -0
  1953. package/node_modules/ink/build/apply-styles.js +175 -0
  1954. package/node_modules/ink/build/build-layout.js +77 -0
  1955. package/node_modules/ink/build/calculate-wrapped-text.js +53 -0
  1956. package/node_modules/ink/build/colorize.d.ts +3 -0
  1957. package/node_modules/ink/build/colorize.js +48 -0
  1958. package/node_modules/ink/build/colorize.js.map +1 -0
  1959. package/node_modules/ink/build/components/AccessibilityContext.d.ts +3 -0
  1960. package/node_modules/ink/build/components/AccessibilityContext.js +5 -0
  1961. package/node_modules/ink/build/components/AccessibilityContext.js.map +1 -0
  1962. package/node_modules/ink/build/components/App.d.ts +18 -0
  1963. package/node_modules/ink/build/components/App.js +351 -0
  1964. package/node_modules/ink/build/components/App.js.map +1 -0
  1965. package/node_modules/ink/build/components/AppContext.d.ts +15 -0
  1966. package/node_modules/ink/build/components/AppContext.js +11 -0
  1967. package/node_modules/ink/build/components/AppContext.js.map +1 -0
  1968. package/node_modules/ink/build/components/BackgroundContext.d.ts +4 -0
  1969. package/node_modules/ink/build/components/BackgroundContext.js +3 -0
  1970. package/node_modules/ink/build/components/BackgroundContext.js.map +1 -0
  1971. package/node_modules/ink/build/components/Box.d.ts +117 -0
  1972. package/node_modules/ink/build/components/Box.js +34 -0
  1973. package/node_modules/ink/build/components/Box.js.map +1 -0
  1974. package/node_modules/ink/build/components/Color.js +62 -0
  1975. package/node_modules/ink/build/components/Cursor.d.ts +83 -0
  1976. package/node_modules/ink/build/components/Cursor.js +53 -0
  1977. package/node_modules/ink/build/components/Cursor.js.map +1 -0
  1978. package/node_modules/ink/build/components/CursorContext.d.ts +11 -0
  1979. package/node_modules/ink/build/components/CursorContext.js +8 -0
  1980. package/node_modules/ink/build/components/CursorContext.js.map +1 -0
  1981. package/node_modules/ink/build/components/ErrorBoundary.d.ts +18 -0
  1982. package/node_modules/ink/build/components/ErrorBoundary.js +23 -0
  1983. package/node_modules/ink/build/components/ErrorBoundary.js.map +1 -0
  1984. package/node_modules/ink/build/components/ErrorOverview.d.ts +6 -0
  1985. package/node_modules/ink/build/components/ErrorOverview.js +84 -0
  1986. package/node_modules/ink/build/components/ErrorOverview.js.map +1 -0
  1987. package/node_modules/ink/build/components/FocusContext.d.ts +16 -0
  1988. package/node_modules/ink/build/components/FocusContext.js +17 -0
  1989. package/node_modules/ink/build/components/FocusContext.js.map +1 -0
  1990. package/node_modules/ink/build/components/Newline.d.ts +13 -0
  1991. package/node_modules/ink/build/components/Newline.js +8 -0
  1992. package/node_modules/ink/build/components/Newline.js.map +1 -0
  1993. package/node_modules/ink/build/components/Spacer.d.ts +7 -0
  1994. package/node_modules/ink/build/components/Spacer.js +11 -0
  1995. package/node_modules/ink/build/components/Spacer.js.map +1 -0
  1996. package/node_modules/ink/build/components/Static.d.ts +24 -0
  1997. package/node_modules/ink/build/components/Static.js +28 -0
  1998. package/node_modules/ink/build/components/Static.js.map +1 -0
  1999. package/node_modules/ink/build/components/StderrContext.d.ts +15 -0
  2000. package/node_modules/ink/build/components/StderrContext.js +13 -0
  2001. package/node_modules/ink/build/components/StderrContext.js.map +1 -0
  2002. package/node_modules/ink/build/components/StdinContext.d.ts +22 -0
  2003. package/node_modules/ink/build/components/StdinContext.js +19 -0
  2004. package/node_modules/ink/build/components/StdinContext.js.map +1 -0
  2005. package/node_modules/ink/build/components/StdoutContext.d.ts +15 -0
  2006. package/node_modules/ink/build/components/StdoutContext.js +13 -0
  2007. package/node_modules/ink/build/components/StdoutContext.js.map +1 -0
  2008. package/node_modules/ink/build/components/Text.d.ts +55 -0
  2009. package/node_modules/ink/build/components/Text.js +50 -0
  2010. package/node_modules/ink/build/components/Text.js.map +1 -0
  2011. package/node_modules/ink/build/components/Transform.d.ts +16 -0
  2012. package/node_modules/ink/build/components/Transform.js +15 -0
  2013. package/node_modules/ink/build/components/Transform.js.map +1 -0
  2014. package/node_modules/ink/build/cursor-helpers.d.ts +38 -0
  2015. package/node_modules/ink/build/cursor-helpers.js +56 -0
  2016. package/node_modules/ink/build/cursor-helpers.js.map +1 -0
  2017. package/node_modules/ink/build/devtools-window-polyfill.d.ts +1 -0
  2018. package/node_modules/ink/build/devtools-window-polyfill.js +65 -0
  2019. package/node_modules/ink/build/devtools-window-polyfill.js.map +1 -0
  2020. package/node_modules/ink/build/devtools.d.ts +1 -0
  2021. package/node_modules/ink/build/devtools.js +11 -0
  2022. package/node_modules/ink/build/devtools.js.map +1 -0
  2023. package/node_modules/ink/build/dom.d.ts +56 -0
  2024. package/node_modules/ink/build/dom.js +124 -0
  2025. package/node_modules/ink/build/dom.js.map +1 -0
  2026. package/node_modules/ink/build/experimental/apply-style.js +140 -0
  2027. package/node_modules/ink/build/experimental/dom.js +123 -0
  2028. package/node_modules/ink/build/experimental/output.js +91 -0
  2029. package/node_modules/ink/build/experimental/reconciler.js +141 -0
  2030. package/node_modules/ink/build/experimental/renderer.js +81 -0
  2031. package/node_modules/ink/build/get-max-width.d.ts +3 -0
  2032. package/node_modules/ink/build/get-max-width.js +10 -0
  2033. package/node_modules/ink/build/get-max-width.js.map +1 -0
  2034. package/node_modules/ink/build/hooks/use-app.d.ts +5 -0
  2035. package/node_modules/ink/build/hooks/use-app.js +8 -0
  2036. package/node_modules/ink/build/hooks/use-app.js.map +1 -0
  2037. package/node_modules/ink/build/hooks/use-cursor.d.ts +12 -0
  2038. package/node_modules/ink/build/hooks/use-cursor.js +29 -0
  2039. package/node_modules/ink/build/hooks/use-cursor.js.map +1 -0
  2040. package/node_modules/ink/build/hooks/use-focus-manager.d.ts +28 -0
  2041. package/node_modules/ink/build/hooks/use-focus-manager.js +17 -0
  2042. package/node_modules/ink/build/hooks/use-focus-manager.js.map +1 -0
  2043. package/node_modules/ink/build/hooks/use-focus.d.ts +29 -0
  2044. package/node_modules/ink/build/hooks/use-focus.js +42 -0
  2045. package/node_modules/ink/build/hooks/use-focus.js.map +1 -0
  2046. package/node_modules/ink/build/hooks/use-input.d.ts +131 -0
  2047. package/node_modules/ink/build/hooks/use-input.js +124 -0
  2048. package/node_modules/ink/build/hooks/use-input.js.map +1 -0
  2049. package/node_modules/ink/build/hooks/use-is-screen-reader-enabled.d.ts +5 -0
  2050. package/node_modules/ink/build/hooks/use-is-screen-reader-enabled.js +11 -0
  2051. package/node_modules/ink/build/hooks/use-is-screen-reader-enabled.js.map +1 -0
  2052. package/node_modules/ink/build/hooks/use-stderr.d.ts +5 -0
  2053. package/node_modules/ink/build/hooks/use-stderr.js +8 -0
  2054. package/node_modules/ink/build/hooks/use-stderr.js.map +1 -0
  2055. package/node_modules/ink/build/hooks/use-stdin.d.ts +5 -0
  2056. package/node_modules/ink/build/hooks/use-stdin.js +8 -0
  2057. package/node_modules/ink/build/hooks/use-stdin.js.map +1 -0
  2058. package/node_modules/ink/build/hooks/use-stdout.d.ts +5 -0
  2059. package/node_modules/ink/build/hooks/use-stdout.js +8 -0
  2060. package/node_modules/ink/build/hooks/use-stdout.js.map +1 -0
  2061. package/node_modules/ink/build/hooks/useInput.js +38 -0
  2062. package/node_modules/ink/build/index.d.ts +34 -0
  2063. package/node_modules/ink/build/index.js +20 -0
  2064. package/node_modules/ink/build/index.js.map +1 -0
  2065. package/node_modules/ink/build/ink.d.ts +90 -0
  2066. package/node_modules/ink/build/ink.js +637 -0
  2067. package/node_modules/ink/build/ink.js.map +1 -0
  2068. package/node_modules/ink/build/input-parser.d.ts +7 -0
  2069. package/node_modules/ink/build/input-parser.js +154 -0
  2070. package/node_modules/ink/build/input-parser.js.map +1 -0
  2071. package/node_modules/ink/build/instance.js +205 -0
  2072. package/node_modules/ink/build/instances.d.ts +3 -0
  2073. package/node_modules/ink/build/instances.js +8 -0
  2074. package/node_modules/ink/build/instances.js.map +1 -0
  2075. package/node_modules/ink/build/kitty-keyboard.d.ts +23 -0
  2076. package/node_modules/ink/build/kitty-keyboard.js +32 -0
  2077. package/node_modules/ink/build/kitty-keyboard.js.map +1 -0
  2078. package/node_modules/ink/build/layout.d.ts +7 -0
  2079. package/node_modules/ink/build/layout.js +33 -0
  2080. package/node_modules/ink/build/layout.js.map +1 -0
  2081. package/node_modules/ink/build/log-update.d.ts +19 -0
  2082. package/node_modules/ink/build/log-update.js +242 -0
  2083. package/node_modules/ink/build/log-update.js.map +1 -0
  2084. package/node_modules/ink/build/measure-element.d.ts +16 -0
  2085. package/node_modules/ink/build/measure-element.js +9 -0
  2086. package/node_modules/ink/build/measure-element.js.map +1 -0
  2087. package/node_modules/ink/build/measure-text.d.ts +6 -0
  2088. package/node_modules/ink/build/measure-text.js +21 -0
  2089. package/node_modules/ink/build/measure-text.js.map +1 -0
  2090. package/node_modules/ink/build/options.d.ts +52 -0
  2091. package/node_modules/ink/build/options.js +2 -0
  2092. package/node_modules/ink/build/options.js.map +1 -0
  2093. package/node_modules/ink/build/output.d.ts +35 -0
  2094. package/node_modules/ink/build/output.js +183 -0
  2095. package/node_modules/ink/build/output.js.map +1 -0
  2096. package/node_modules/ink/build/parse-keypress.d.ts +22 -0
  2097. package/node_modules/ink/build/parse-keypress.js +493 -0
  2098. package/node_modules/ink/build/parse-keypress.js.map +1 -0
  2099. package/node_modules/ink/build/reconciler.d.ts +4 -0
  2100. package/node_modules/ink/build/reconciler.js +274 -0
  2101. package/node_modules/ink/build/reconciler.js.map +1 -0
  2102. package/node_modules/ink/build/render-background.d.ts +4 -0
  2103. package/node_modules/ink/build/render-background.js +25 -0
  2104. package/node_modules/ink/build/render-background.js.map +1 -0
  2105. package/node_modules/ink/build/render-border.d.ts +4 -0
  2106. package/node_modules/ink/build/render-border.js +73 -0
  2107. package/node_modules/ink/build/render-border.js.map +1 -0
  2108. package/node_modules/ink/build/render-node-to-output.d.ts +14 -0
  2109. package/node_modules/ink/build/render-node-to-output.js +147 -0
  2110. package/node_modules/ink/build/render-node-to-output.js.map +1 -0
  2111. package/node_modules/ink/build/render-to-string.d.ts +38 -0
  2112. package/node_modules/ink/build/render-to-string.js +115 -0
  2113. package/node_modules/ink/build/render-to-string.js.map +1 -0
  2114. package/node_modules/ink/build/render.d.ts +121 -0
  2115. package/node_modules/ink/build/render.js +55 -0
  2116. package/node_modules/ink/build/render.js.map +1 -0
  2117. package/node_modules/ink/build/renderer.d.ts +8 -0
  2118. package/node_modules/ink/build/renderer.js +55 -0
  2119. package/node_modules/ink/build/renderer.js.map +1 -0
  2120. package/node_modules/ink/build/sanitize-ansi.d.ts +2 -0
  2121. package/node_modules/ink/build/sanitize-ansi.js +27 -0
  2122. package/node_modules/ink/build/sanitize-ansi.js.map +1 -0
  2123. package/node_modules/ink/build/screen-reader-update.d.ts +13 -0
  2124. package/node_modules/ink/build/screen-reader-update.js +38 -0
  2125. package/node_modules/ink/build/screen-reader-update.js.map +1 -0
  2126. package/node_modules/ink/build/squash-text-nodes.d.ts +3 -0
  2127. package/node_modules/ink/build/squash-text-nodes.js +36 -0
  2128. package/node_modules/ink/build/squash-text-nodes.js.map +1 -0
  2129. package/node_modules/ink/build/styles.d.ts +240 -0
  2130. package/node_modules/ink/build/styles.js +232 -0
  2131. package/node_modules/ink/build/styles.js.map +1 -0
  2132. package/node_modules/ink/build/utils.d.ts +2 -0
  2133. package/node_modules/ink/build/utils.js +4 -0
  2134. package/node_modules/ink/build/utils.js.map +1 -0
  2135. package/node_modules/ink/build/wrap-text.d.ts +3 -0
  2136. package/node_modules/ink/build/wrap-text.js +31 -0
  2137. package/node_modules/ink/build/wrap-text.js.map +1 -0
  2138. package/node_modules/ink/build/write-synchronized.d.ts +4 -0
  2139. package/node_modules/ink/build/write-synchronized.js +7 -0
  2140. package/node_modules/ink/build/write-synchronized.js.map +1 -0
  2141. package/node_modules/ink/package.json +126 -0
  2142. package/package.json +35 -5
  2143. package/node_modules/@murphai/assistant-engine/dist/assistant/group-phone-call-preview-authority.d.ts +0 -24
  2144. package/node_modules/@murphai/assistant-engine/dist/assistant/group-phone-call-preview-authority.d.ts.map +0 -1
  2145. package/node_modules/@murphai/assistant-engine/dist/assistant/group-phone-call-preview-authority.js +0 -125
  2146. package/node_modules/@murphai/assistant-engine/dist/assistant/group-phone-call-preview-authority.js.map +0 -1
  2147. package/node_modules/@murphai/assistant-engine/dist/assistant/newsletter-outbox.d.ts +0 -19
  2148. package/node_modules/@murphai/assistant-engine/dist/assistant/newsletter-outbox.d.ts.map +0 -1
  2149. package/node_modules/@murphai/assistant-engine/dist/assistant/newsletter-outbox.js.map +0 -1
  2150. package/node_modules/@murphai/assistant-engine/skills/general-eye-health/SKILL.md +0 -77
  2151. package/node_modules/@murphai/assistant-engine/skills/general-eye-health/references/evidence-register.md +0 -34
  2152. package/node_modules/@murphai/assistant-engine/skills/general-eye-health/references/triage-and-contact-lenses.md +0 -103
  2153. package/node_modules/@murphai/assistant-engine/skills/recovery-modalities/SKILL.md +0 -57
  2154. package/node_modules/@murphai/assistant-engine/skills/red-light-therapy/SKILL.md +0 -145
  2155. package/node_modules/@murphai/assistant-engine/skills/red-light-therapy/device-seeds.json +0 -259
  2156. package/node_modules/@murphai/inboxd/dist/connectors/email/connector.d.ts +0 -57
  2157. package/node_modules/@murphai/inboxd/dist/connectors/email/connector.d.ts.map +0 -1
  2158. package/node_modules/@murphai/inboxd/dist/connectors/email/connector.js +0 -259
  2159. package/node_modules/@murphai/inboxd/dist/connectors/email/connector.js.map +0 -1
  2160. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize.d.ts +0 -44
  2161. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize.d.ts.map +0 -1
  2162. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize.js +0 -212
  2163. package/node_modules/@murphai/inboxd/dist/connectors/email/normalize.js.map +0 -1
  2164. package/node_modules/@murphai/inboxd/dist/connectors/email/types.d.ts +0 -69
  2165. package/node_modules/@murphai/inboxd/dist/connectors/email/types.d.ts.map +0 -1
  2166. package/node_modules/@murphai/inboxd/dist/connectors/email/types.js +0 -2
  2167. package/node_modules/@murphai/inboxd/dist/connectors/email/types.js.map +0 -1
  2168. package/node_modules/@murphai/operator-config/dist/agentmail-runtime.d.ts +0 -194
  2169. package/node_modules/@murphai/operator-config/dist/agentmail-runtime.d.ts.map +0 -1
  2170. package/node_modules/@murphai/operator-config/dist/agentmail-runtime.js +0 -385
  2171. package/node_modules/@murphai/operator-config/dist/agentmail-runtime.js.map +0 -1
  2172. package/node_modules/@murphai/setup-cli/dist/setup-agentmail.d.ts +0 -30
  2173. package/node_modules/@murphai/setup-cli/dist/setup-agentmail.d.ts.map +0 -1
  2174. package/node_modules/@murphai/setup-cli/dist/setup-agentmail.js +0 -135
  2175. package/node_modules/@murphai/setup-cli/dist/setup-agentmail.js.map +0 -1
  2176. package/node_modules/incur/src/Cli.test.ts +0 -4808
  2177. package/node_modules/incur/src/Completions.test.ts +0 -543
  2178. package/node_modules/incur/src/Errors.test.ts +0 -100
  2179. package/node_modules/incur/src/Fetch.test.ts +0 -285
  2180. package/node_modules/incur/src/Filter.test.ts +0 -237
  2181. package/node_modules/incur/src/Formatter.test.ts +0 -326
  2182. package/node_modules/incur/src/Help.test.ts +0 -414
  2183. package/node_modules/incur/src/Mcp.test.ts +0 -413
  2184. package/node_modules/incur/src/Openapi.test.ts +0 -389
  2185. package/node_modules/incur/src/Parser.test.ts +0 -378
  2186. package/node_modules/incur/src/Schema.test.ts +0 -167
  2187. package/node_modules/incur/src/Skill.test.ts +0 -441
  2188. package/node_modules/incur/src/Skillgen.test.ts +0 -77
  2189. package/node_modules/incur/src/SyncMcp.test.ts +0 -136
  2190. package/node_modules/incur/src/SyncSkills.test.ts +0 -301
  2191. package/node_modules/incur/src/Typegen.test.ts +0 -205
  2192. package/node_modules/incur/src/bun-compile.test.ts +0 -84
  2193. package/node_modules/incur/src/e2e.test.ts +0 -3441
  2194. package/node_modules/incur/src/internal/configSchema.test.ts +0 -193
  2195. package/node_modules/incur/src/internal/dereference.test.ts +0 -695
  2196. package/node_modules/incur/src/internal/helpers.test.ts +0 -75
  2197. package/node_modules/incur/src/internal/pm.test.ts +0 -38
  2198. package/node_modules/incur/src/internal/utils.test.ts +0 -50
  2199. package/node_modules/incur/src/middleware.test.ts +0 -6
@@ -3,23 +3,27 @@ import { createHash } from 'node:crypto';
3
3
  import { mkdtemp, rm, stat } from 'node:fs/promises';
4
4
  import { tmpdir } from 'node:os';
5
5
  import path from 'node:path';
6
+ import { MURPH_MEMBER_WORKSPACE_PERMISSION_PROFILE, } from '@murphai/hosted-execution/assistant-permissions';
6
7
  import { normalizeNullableString } from '@murphai/operator-config/text/shared';
7
8
  import { VaultCliError } from '@murphai/operator-config/vault-cli-errors';
8
9
  import { readHostedCanonicalWritePort, withHostedCanonicalWritePort, } from '@murphai/core';
10
+ import { renderAssistantResponseCardText, renderAssistantResponseCardTranscriptText, renderAssistantWorkoutResponseCardText, renderAssistantWorkoutResponseCardTranscriptText, } from '@murphai/operator-config/assistant-response-cards';
9
11
  import { registerStopWarmCodexAppServer, registerWaitForWarmCodexBackgroundWork, } from './codex-lifecycle.js';
10
12
  import { extractAssistantMessageFallback, extractCodexErrorInfo, extractCodexErrorMessage, extractCodexCompletedFinalAgentMessageTextFromNormalized, extractCodexProgressEventFromNormalized, isCodexCompletedFinalAgentMessageItemFromNormalized, isCodexCompletedUserMessageItemFromNormalized, extractCodexStatusEventFromStderrLine, extractCodexTraceUpdatesFromNormalized, extractCodexContextCompactionProgressTextFromNormalized, normalizeCodexEvent, normalizeStreamingText, } from './assistant-codex-events.js';
11
13
  import { buildCodexTurnInterruptParams, buildCodexThreadResumeParams, buildCodexThreadStartParams, buildCodexTurnSteerParams, buildCodexTurnStartParams, mapCodexAppServerApprovalPolicy, mapCodexAppServerSandboxMode, resolveSupportedCodexAppServerApprovalPolicy, } from './assistant-codex/app-server-requests.js';
12
- import { buildRuntimeIssueInputForFailedCodexAction, createCodexActionDiagnosticsReducer, } from './assistant-codex/action-diagnostics.js';
13
- import { executeMurphDynamicToolRequest, isComputerDynamicToolRequest, MURPH_ASSISTANT_STYLE_TOOL, MURPH_GROUP_ROOM_MODEL_TOOL, readMurphDynamicToolRequest, } from './assistant-codex/dynamic-tools.js';
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';
14
16
  import { createAskGrokTurnState, } from './assistant-codex/ask-grok-tool.js';
15
17
  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
+ import { readCodexNonEmptyString, readCodexRecord, readCodexThreadTokenUsage, } from './assistant-codex/app-server-protocol.js';
16
19
  import { resolveCodexChildEnv, withHostedCodexModelCatalogConfigOverride, } from './assistant-codex/config.js';
17
20
  import { buildCodexProcessExitError, buildCodexStdinFailureFallback, buildCodexTurnFailedError, extractCodexThreadIdFromMessage, extractCodexThreadIdFromResult, extractCodexThreadPathFromResult, extractCodexTurnErrorMessage, extractCodexTurnIdFromMessage, extractCodexTurnIdFromResult, extractCodexTurnStatus, isFailedCodexTurnStatus, readNodeErrorCode, } from './assistant-codex/failures.js';
18
21
  import { extractCodexSubagentUsageDrafts, isAssistantCodexTokenUsageEventType, readCodexCollabReceiverThreadIds, } from './assistant/providers/helpers.js';
19
- import { materializeCodexImagePaths, } from './assistant-codex/images.js';
20
- import { normalizeAssistantResponseMediaList, } from './assistant/response-media.js';
22
+ import { materializeCodexImages, normalizeCodexAppServerImageDetails, } from './assistant-codex/images.js';
23
+ import { ASSISTANT_AUTHORED_RESPONSE_MEDIA_MAX_ITEMS, normalizeAssistantResponseMediaList, } from './assistant/response-media.js';
24
+ import { completeAssistantProviderStartCriticalPath, readAssistantProviderStartMonotonicTickMs, stampAssistantProviderStartCriticalPath, } from './assistant/provider-start-critical-path.js';
21
25
  export { extractCodexTraceUpdates } from './assistant-codex-events.js';
22
- export { listMurphDynamicToolNames, resolveMurphDynamicTools, } from './assistant-codex/dynamic-tools.js';
26
+ export { listMurphDynamicToolNames, resolveMurphDynamicTools, } from './assistant-codex/dynamic-tool-catalog.js';
23
27
  export { resolveCodexDisplayOptions } from './assistant-codex/config.js';
24
28
  const CODEX_RPC_CLIENT_NAME = 'murph';
25
29
  const CODEX_RPC_CLIENT_TITLE = 'Murph';
@@ -29,6 +33,12 @@ const CODEX_BACKGROUND_WORK_RPC_TIMEOUT_MS = 5_000;
29
33
  const CODEX_BACKGROUND_WORK_WAIT_TIMEOUT_MS = 120_000;
30
34
  const CODEX_BACKGROUND_WORK_POLL_INTERVAL_MS = 50;
31
35
  const CODEX_RPC_STEER_TIMEOUT_MS = 15_000;
36
+ let murphDynamicToolRuntimePromise = null;
37
+ function loadMurphDynamicToolRuntime() {
38
+ murphDynamicToolRuntimePromise ??=
39
+ import('./assistant-codex/dynamic-tools.js');
40
+ return murphDynamicToolRuntimePromise;
41
+ }
32
42
  const CODEX_APP_SERVER_INTERRUPT_CLEANUP_TIMEOUT_MS = 15_000;
33
43
  const CODEX_MANAGED_ACCOUNT_LOGIN_TIMEOUT_MS = 10 * 60 * 1000;
34
44
  const CODEX_MANAGED_ACCOUNT_CONFIG_OVERRIDES = [
@@ -40,6 +50,8 @@ const CODEX_APP_SERVER_TIMING_TRACE_SCHEMA = 'murph.assistant-codex-app-server-t
40
50
  const CODEX_APP_SERVER_TIMING_TRACE_TYPE = 'assistant.codex.app_server_timing';
41
51
  const CODEX_TRANSPORT_DIAGNOSTICS_TRACE_SCHEMA = 'murph.assistant-codex-transport-diagnostics.v1';
42
52
  const CODEX_TRANSPORT_DIAGNOSTICS_TRACE_TYPE = 'assistant.codex.transport_diagnostics';
53
+ const CODEX_GENERATED_AUDIO_PHASE_TIMING_TRACE_SCHEMA = 'murph.assistant-codex-generated-audio-phase-timing.v1';
54
+ const CODEX_GENERATED_AUDIO_PHASE_TIMING_TRACE_TYPE = 'assistant.codex.generated_audio_phase_timing';
43
55
  const CODEX_APP_SERVER_STARTUP_STDERR_MAX_LENGTH = 16_384;
44
56
  // Bound on distinct subagent threads whose token usage is tracked per parent
45
57
  // turn. Far above any sane spawn fan-out; threads past the cap are ignored.
@@ -53,64 +65,56 @@ function prepareCodexRpcParams(method, params) {
53
65
  }
54
66
  return stripped;
55
67
  }
56
- // Modern app-server clients receive compaction lifecycle as contextCompaction
57
- // items; `thread/compacted` is the legacy fan-out kept for protocol drift
58
- // tolerance.
68
+ // Codex emits contextCompaction item lifecycle notifications and also retains
69
+ // the canonical deprecated thread/compacted notification. Both exact pinned
70
+ // protocol shapes are accepted; no dotted or alternate envelope aliases are.
59
71
  function isCodexContextCompactionStarted(message) {
60
- const method = typeof message.method === 'string' ? message.method : null;
61
- if (method !== 'item/started' && method !== 'item.started') {
72
+ if (message.method !== 'item/started') {
62
73
  return false;
63
74
  }
64
- return asCodexRecord(asCodexRecord(message.params)?.item)?.type === 'contextCompaction';
75
+ return readCodexRecord(readCodexRecord(message.params)?.item)?.type
76
+ === 'contextCompaction';
65
77
  }
66
78
  function readCodexContextCompactionItemId(message) {
67
- return normalizeNullableString(asCodexString(asCodexRecord(asCodexRecord(message.params)?.item)?.id));
79
+ return readCodexNonEmptyString(readCodexRecord(readCodexRecord(message.params)?.item)?.id);
68
80
  }
69
81
  function isCodexContextCompactionStartedForThread(message, threadId) {
70
- if (!isCodexContextCompactionStarted(message)) {
71
- return false;
72
- }
73
- const messageThreadId = extractCodexThreadIdFromMessage(message);
74
- return messageThreadId === null || messageThreadId === threadId;
82
+ return isCodexContextCompactionStarted(message)
83
+ && extractCodexThreadIdFromMessage(message) === threadId;
75
84
  }
76
85
  function isCodexLegacyContextCompactionCompletion(message) {
77
- const method = typeof message.method === 'string' ? message.method : null;
78
- return method === 'thread/compacted' || method === 'thread.compacted';
86
+ return message.method === 'thread/compacted';
79
87
  }
80
88
  function isCodexContextCompactionCompletion(message) {
81
89
  if (isCodexLegacyContextCompactionCompletion(message)) {
82
90
  return true;
83
91
  }
84
- const method = typeof message.method === 'string' ? message.method : null;
85
- if (method !== 'item/completed' && method !== 'item.completed') {
92
+ if (message.method !== 'item/completed') {
86
93
  return false;
87
94
  }
88
- return asCodexRecord(asCodexRecord(message.params)?.item)?.type === 'contextCompaction';
95
+ return readCodexRecord(readCodexRecord(message.params)?.item)?.type
96
+ === 'contextCompaction';
89
97
  }
90
98
  function isCodexContextCompactionCompletionForThread(message, threadId) {
91
- if (!isCodexContextCompactionCompletion(message)) {
92
- return false;
93
- }
94
- const messageThreadId = extractCodexThreadIdFromMessage(message);
95
- return messageThreadId === null || messageThreadId === threadId;
99
+ return isCodexContextCompactionCompletion(message)
100
+ && extractCodexThreadIdFromMessage(message) === threadId;
96
101
  }
97
102
  function isCodexThreadTokenUsageUpdatedMethod(method) {
98
- return (method === 'thread/tokenUsage/updated' ||
99
- method === 'thread/token_usage/updated' ||
100
- method === 'thread.tokenUsage.updated' ||
101
- method === 'thread.token.usage.updated' ||
102
- method === 'thread.token_usage.updated');
103
+ return method === 'thread/tokenUsage/updated';
103
104
  }
104
105
  function readCodexThreadTokenUsageUpdate(message) {
105
- const method = typeof message.method === 'string' ? message.method : null;
106
- if (!isCodexThreadTokenUsageUpdatedMethod(method)) {
106
+ if (!isCodexThreadTokenUsageUpdatedMethod(readCodexEventMethod(message))) {
107
107
  return null;
108
108
  }
109
- const params = asCodexRecord(message.params);
110
- return {
111
- last: asCodexRecord(asCodexRecord(params?.tokenUsage)?.last),
112
- threadId: typeof params?.threadId === 'string' ? params.threadId : null,
113
- };
109
+ const params = readCodexRecord(message.params);
110
+ const threadId = readCodexNonEmptyString(params?.threadId);
111
+ const tokenUsage = readCodexThreadTokenUsage(params?.tokenUsage);
112
+ return threadId && tokenUsage
113
+ ? {
114
+ last: tokenUsage.last,
115
+ threadId,
116
+ }
117
+ : null;
114
118
  }
115
119
  function buildCodexAppServerNotFoundError(codexCommand) {
116
120
  return new VaultCliError('ASSISTANT_CODEX_NOT_FOUND', `Codex app-server executable "${codexCommand}" was not found. Install @openai/codex or pass --codexCommand.`);
@@ -180,51 +184,63 @@ function appendRequiredVaultFileApprovalUrls(message, approvalUrls) {
180
184
  ...approvalUrls,
181
185
  ].filter((part) => part !== null).join('\n\n');
182
186
  }
187
+ function buildRequiredAutomationLocalAtClarificationKey(input) {
188
+ return `${input.targetKey}:${input.resolvedLocalDate}`;
189
+ }
190
+ function buildRequiredAutomationLocalAtClarification(requirement) {
191
+ const reminder = `reminder ${JSON.stringify(requirement.targetLabel)}`;
192
+ return requirement.code === 'local_at_gap'
193
+ ? `For ${reminder}, the trusted date is ${requirement.resolvedLocalDate}. What other local time on ${requirement.resolvedLocalDate} should I use?`
194
+ : `For ${reminder}, the trusted date is ${requirement.resolvedLocalDate}. Should I use the earlier or later occurrence on ${requirement.resolvedLocalDate}?`;
195
+ }
196
+ function appendRequiredAutomationLocalAtClarification(message, requirements) {
197
+ if (requirements.length === 0) {
198
+ return message;
199
+ }
200
+ const normalizedMessage = normalizeNullableString(message);
201
+ const missingClarifications = requirements
202
+ .map(buildRequiredAutomationLocalAtClarification)
203
+ .filter((clarification) => !normalizedMessage?.includes(clarification));
204
+ return [normalizedMessage, ...missingClarifications]
205
+ .filter((part) => part !== null)
206
+ .join('\n\n');
207
+ }
183
208
  export async function executeCodexAppServerTurn(input) {
209
+ const providerStartCriticalPath = stampAssistantProviderStartCriticalPath(input.providerStartCriticalPath, 'codexAppServerTurnStartedAtMonotonicMs');
184
210
  assertCodexAppServerPermissionRequest(input);
185
211
  const approvalPolicy = resolveSupportedCodexAppServerApprovalPolicy(input.approvalPolicy);
186
- const workingDirectory = path.resolve(input.workingDirectory);
187
- await assertCodexAppServerWorkingDirectory(workingDirectory);
188
- const childEnv = await resolveCodexChildEnv({
189
- codexHome: input.codexHome,
190
- env: input.env,
191
- });
192
- const codexCommand = resolveCodexAppServerCommand(input.codexCommand);
212
+ if (input.processLifetime !== 'one-shot' &&
213
+ warmCodexWorkspaceBoundaryActive) {
214
+ throw buildWarmCodexWorkspaceBoundaryBusyError();
215
+ }
216
+ const processInput = await prepareCodexAppServerProcessInput(input);
193
217
  const tempRoot = await mkdtemp(path.join(tmpdir(), 'murph-codex-'));
194
- const imagePaths = await materializeCodexImagePaths({
195
- images: input.images,
218
+ const preparedImages = await materializeCodexImages({
219
+ images: normalizeCodexAppServerImageDetails({
220
+ images: input.images,
221
+ model: input.model,
222
+ modelProvider: input.modelProvider,
223
+ turnKind: 'initial',
224
+ }),
196
225
  tempRoot,
197
226
  });
198
227
  const normalizedInput = {
199
228
  ...input,
200
229
  approvalPolicy,
201
- configOverrides: withHostedCodexModelCatalogConfigOverride({
202
- configOverrides: input.configOverrides,
203
- env: input.env,
204
- }),
230
+ configOverrides: processInput.configOverrides,
231
+ ...(providerStartCriticalPath ? { providerStartCriticalPath } : {}),
205
232
  runtimeWorkspaceRoots: input.runtimeWorkspaceRoots?.map((root) => path.resolve(root)),
206
233
  };
207
- const args = buildCodexAppServerArgs(normalizedInput);
208
- const launchKey = buildCodexAppServerLaunchKey({
209
- args,
210
- codexCommand,
211
- env: childEnv,
212
- workingDirectory,
213
- });
214
234
  const preparedInput = {
215
235
  ...normalizedInput,
216
- args,
217
- codexCommand,
218
- env: childEnv,
236
+ ...processInput,
219
237
  fetchImpl: input.fetchImpl ?? fetch,
220
238
  materializeWorkspaceArtifacts: input.materializeWorkspaceArtifacts ?? null,
221
- imagePaths,
222
- launchKey,
239
+ preparedImages,
223
240
  publicInternetFetch: input.publicInternetFetch ?? null,
224
241
  tempRoot,
225
242
  voiceMemoRuntime: input.voiceMemoRuntime ?? null,
226
243
  askGrokRuntime: input.askGrokRuntime ?? null,
227
- workingDirectory,
228
244
  };
229
245
  let oneShotProcess = null;
230
246
  try {
@@ -239,8 +255,20 @@ export async function executeCodexAppServerTurn(input) {
239
255
  oneShotProcess.reserveTurn();
240
256
  return await runCodexAppServerTurnOnProcess(oneShotProcess, preparedInput);
241
257
  }
242
- const processInstance = await getOrStartWarmCodexProcess(preparedInput);
243
- return await runCodexAppServerTurnOnProcess(processInstance, preparedInput);
258
+ let allowPreinitializeFallback = true;
259
+ while (true) {
260
+ const processInstance = await getOrStartWarmCodexProcess(preparedInput);
261
+ try {
262
+ return await runCodexAppServerTurnOnProcess(processInstance, preparedInput);
263
+ }
264
+ catch (error) {
265
+ if (!allowPreinitializeFallback ||
266
+ !processInstance.didSpeculativeInitializationFail(error)) {
267
+ throw error;
268
+ }
269
+ allowPreinitializeFallback = false;
270
+ }
271
+ }
244
272
  }
245
273
  finally {
246
274
  try {
@@ -259,14 +287,23 @@ function assertCodexAppServerPermissionRequest(input) {
259
287
  if (!permissions) {
260
288
  return;
261
289
  }
290
+ const residentWorkspacePermissionRequest = permissions === MURPH_MEMBER_WORKSPACE_PERMISSION_PROFILE;
262
291
  const invalidFields = [
263
292
  ...(input.sandbox ? ['sandbox'] : []),
264
- ...(normalizeNullableString(input.resumeSessionId) ? ['resumeSessionId'] : []),
265
- ...(input.ephemeral === true ? [] : ['ephemeral']),
266
- ...(input.processLifetime === 'one-shot' ? [] : ['processLifetime']),
293
+ ...(residentWorkspacePermissionRequest || !normalizeNullableString(input.resumeSessionId)
294
+ ? []
295
+ : ['resumeSessionId']),
296
+ ...(residentWorkspacePermissionRequest || input.ephemeral === true
297
+ ? []
298
+ : ['ephemeral']),
299
+ ...(residentWorkspacePermissionRequest || input.processLifetime === 'one-shot'
300
+ ? []
301
+ : ['processLifetime']),
267
302
  ];
268
303
  if (invalidFields.length > 0) {
269
- throw new VaultCliError('ASSISTANT_CODEX_APP_SERVER_REQUEST_INVALID', 'Named Codex permissions require a fresh ephemeral thread in a one-shot process without a legacy sandbox.', {
304
+ throw new VaultCliError('ASSISTANT_CODEX_APP_SERVER_REQUEST_INVALID', residentWorkspacePermissionRequest
305
+ ? 'Named Codex permissions cannot be combined with a legacy sandbox.'
306
+ : 'Restricted named Codex permissions require a fresh ephemeral thread in a one-shot process without a legacy sandbox.', {
270
307
  invalidFields,
271
308
  retryable: false,
272
309
  });
@@ -297,6 +334,38 @@ async function assertCodexAppServerWorkingDirectory(workingDirectory) {
297
334
  function resolveCodexAppServerCommand(codexCommand) {
298
335
  return codexCommand?.trim() || 'codex';
299
336
  }
337
+ async function prepareCodexAppServerProcessInput(input) {
338
+ const workingDirectory = path.resolve(input.workingDirectory);
339
+ await assertCodexAppServerWorkingDirectory(workingDirectory);
340
+ const env = await resolveCodexChildEnv({
341
+ codexHome: input.codexHome,
342
+ env: input.env,
343
+ });
344
+ const codexCommand = resolveCodexAppServerCommand(input.codexCommand);
345
+ const configOverrides = withHostedCodexModelCatalogConfigOverride({
346
+ configOverrides: input.configOverrides,
347
+ env: input.env,
348
+ }) ?? [];
349
+ const args = buildCodexAppServerArgs({
350
+ configOverrides,
351
+ oss: input.oss,
352
+ profile: input.profile,
353
+ });
354
+ const launchKey = buildCodexAppServerLaunchKey({
355
+ args,
356
+ codexCommand,
357
+ env,
358
+ workingDirectory,
359
+ });
360
+ return {
361
+ args,
362
+ codexCommand,
363
+ configOverrides,
364
+ env,
365
+ launchKey,
366
+ workingDirectory,
367
+ };
368
+ }
300
369
  function buildCodexAppServerLaunchKey(input) {
301
370
  return hashCodexRawString(JSON.stringify({
302
371
  args: input.args,
@@ -337,10 +406,14 @@ class CodexAppServerProcess {
337
406
  boundThreadModel = null;
338
407
  boundThreadServiceTier = null;
339
408
  cleanupProcessExitListener;
409
+ completedTurn = false;
340
410
  lastThreadTokenUsage = null;
341
411
  codexCommand;
342
412
  ignoredResponseIds = new Set();
343
413
  initialized = false;
414
+ initializationFailure = null;
415
+ initializationPromise = null;
416
+ initializationWasSpeculative = false;
344
417
  endReason = null;
345
418
  nextRequestId = 1;
346
419
  normalShutdown = false;
@@ -358,6 +431,7 @@ class CodexAppServerProcess {
358
431
  stderrBuffer = '';
359
432
  startupStderr = '';
360
433
  startupFailure = null;
434
+ spawnReadyPromise = null;
361
435
  stdinFailure = null;
362
436
  stdoutBuffer = '';
363
437
  stopPromise = null;
@@ -408,6 +482,12 @@ class CodexAppServerProcess {
408
482
  get initializedForRpc() {
409
483
  return this.initialized;
410
484
  }
485
+ get wasPreinitialized() {
486
+ return this.initializationWasSpeculative;
487
+ }
488
+ get hasCompletedTurn() {
489
+ return this.completedTurn;
490
+ }
411
491
  get processLifetimeMs() {
412
492
  return Math.max(0, Date.now() - this.startedAt);
413
493
  }
@@ -426,6 +506,32 @@ class CodexAppServerProcess {
426
506
  get isStopped() {
427
507
  return this.state === 'stopped';
428
508
  }
509
+ get isStoppingOrStopped() {
510
+ return this.state === 'stopping' || this.state === 'stopped';
511
+ }
512
+ get hasUnclaimedSpeculativeInitialization() {
513
+ return (this.initializationWasSpeculative &&
514
+ !this.initialized &&
515
+ !this.hasInFlightTurn);
516
+ }
517
+ canClaimForLaunch(launchKey) {
518
+ return (this.launchKey === launchKey &&
519
+ !this.poisoned &&
520
+ this.state === 'idle' &&
521
+ this.child.exitCode === null &&
522
+ this.child.signalCode === null);
523
+ }
524
+ noteSpeculativeInitialization() {
525
+ this.initializationWasSpeculative = true;
526
+ }
527
+ didSpeculativeInitializationFail(error) {
528
+ return (this.initializationWasSpeculative &&
529
+ this.initializationFailure !== null &&
530
+ this.initializationFailure === error);
531
+ }
532
+ noteTurnCompleted() {
533
+ this.completedTurn = true;
534
+ }
429
535
  reserveTurn() {
430
536
  if (this.state !== 'idle' ||
431
537
  this.activeTurn ||
@@ -469,6 +575,10 @@ class CodexAppServerProcess {
469
575
  });
470
576
  }
471
577
  async waitForSpawn() {
578
+ this.spawnReadyPromise ??= this.runWaitForSpawn();
579
+ await this.spawnReadyPromise;
580
+ }
581
+ async runWaitForSpawn() {
472
582
  this.throwStartupFailure();
473
583
  try {
474
584
  await waitForCodexSpawn(this.child);
@@ -482,9 +592,18 @@ class CodexAppServerProcess {
482
592
  this.throwStartupFailure();
483
593
  }
484
594
  async initialize() {
485
- if (this.initialized) {
486
- return;
487
- }
595
+ this.initializationPromise ??= this.runInitialize().catch((error) => {
596
+ this.initializationFailure = error;
597
+ this.poisoned = true;
598
+ if (error instanceof Error) {
599
+ this.startupFailure ??= error;
600
+ }
601
+ throw error;
602
+ });
603
+ await this.initializationPromise;
604
+ }
605
+ async runInitialize() {
606
+ await this.waitForSpawn();
488
607
  await withCodexRpcTimeout(this.sendRequest('initialize', {
489
608
  clientInfo: {
490
609
  name: CODEX_RPC_CLIENT_NAME,
@@ -569,7 +688,8 @@ class CodexAppServerProcess {
569
688
  !this.poisoned &&
570
689
  this.child.exitCode === null &&
571
690
  this.child.signalCode === null &&
572
- this.state === 'idle') {
691
+ (this.state === 'idle' ||
692
+ (this.state === 'reserved' && this.activeTurn === null))) {
573
693
  return;
574
694
  }
575
695
  throw new VaultCliError('ASSISTANT_CODEX_BACKGROUND_WORK_UNAVAILABLE', 'Codex app-server background work could not be verified before the workspace boundary.', { retryable: true });
@@ -690,6 +810,10 @@ class CodexAppServerProcess {
690
810
  this.endReason ??= resolveCodexAppServerEndReason(reason);
691
811
  this.normalShutdown = true;
692
812
  this.state = 'stopping';
813
+ this.rejectPending(new VaultCliError('ASSISTANT_CODEX_APP_SERVER_STOPPED', 'Codex app-server stopped before its pending RPC completed.', {
814
+ reason,
815
+ retryable: true,
816
+ }));
693
817
  let stopped = false;
694
818
  try {
695
819
  await stopCodexAppServerChild({
@@ -722,12 +846,9 @@ class CodexAppServerProcess {
722
846
  await this.stop(reason).catch(() => undefined);
723
847
  }
724
848
  isReusableFor(launchKey) {
725
- return (this.launchKey === launchKey &&
849
+ return (this.canClaimForLaunch(launchKey) &&
726
850
  this.initialized &&
727
- !this.poisoned &&
728
- this.state === 'idle' &&
729
- this.child.exitCode === null &&
730
- this.child.signalCode === null);
851
+ this.initializationFailure === null);
731
852
  }
732
853
  closeStdin() {
733
854
  if (this.stdinFailure) {
@@ -943,6 +1064,7 @@ class CodexAppServerProcess {
943
1064
  this.state = 'stopped';
944
1065
  this.cleanupProcessExitListener();
945
1066
  if (this.normalShutdown) {
1067
+ this.rejectPending(new VaultCliError('ASSISTANT_CODEX_APP_SERVER_STOPPED', 'Codex app-server closed before its pending RPC completed.', { retryable: true }));
946
1068
  return;
947
1069
  }
948
1070
  if (this.activeTurn) {
@@ -1018,7 +1140,7 @@ function readCodexBackgroundTerminalPresence(value) {
1018
1140
  }
1019
1141
  function readCodexSubagentActivity(message) {
1020
1142
  const method = typeof message.method === 'string' ? message.method : null;
1021
- if (method !== 'item/completed' && method !== 'item.completed') {
1143
+ if (method !== 'item/completed') {
1022
1144
  return null;
1023
1145
  }
1024
1146
  const item = asCodexRecord(asCodexRecord(message.params)?.item);
@@ -1109,6 +1231,13 @@ function resolveCodexAppServerEndReason(reason) {
1109
1231
  }
1110
1232
  let warmCodexProcess = null;
1111
1233
  let warmCodexSlotLock = Promise.resolve();
1234
+ let warmCodexWorkspaceBoundaryActive = false;
1235
+ function buildWarmCodexWorkspaceBoundaryBusyError() {
1236
+ return new VaultCliError('ASSISTANT_CODEX_APP_SERVER_BUSY', 'Codex app-server cannot be claimed while a workspace boundary is active.', {
1237
+ retryable: true,
1238
+ state: 'workspace-boundary',
1239
+ });
1240
+ }
1112
1241
  async function withWarmCodexSlotLock(operation) {
1113
1242
  const previous = warmCodexSlotLock;
1114
1243
  let release;
@@ -1124,15 +1253,17 @@ async function withWarmCodexSlotLock(operation) {
1124
1253
  }
1125
1254
  }
1126
1255
  async function getOrStartWarmCodexProcess(input) {
1256
+ if (warmCodexWorkspaceBoundaryActive) {
1257
+ throw buildWarmCodexWorkspaceBoundaryBusyError();
1258
+ }
1127
1259
  const launchKey = input.launchKey;
1128
1260
  return await withWarmCodexSlotLock(async () => {
1129
- if (warmCodexProcess?.isReusableFor(launchKey)) {
1130
- warmCodexProcess.reserveTurn();
1131
- return warmCodexProcess;
1132
- }
1133
1261
  const previousProcess = warmCodexProcess;
1134
- let coldStartReason = 'node-process-first-use';
1135
1262
  if (previousProcess) {
1263
+ if (previousProcess.canClaimForLaunch(launchKey)) {
1264
+ previousProcess.reserveTurn();
1265
+ return previousProcess;
1266
+ }
1136
1267
  if (previousProcess.hasInFlightTurn) {
1137
1268
  throw previousProcess.buildBusyError('Codex app-server process is already serving a turn.');
1138
1269
  }
@@ -1144,15 +1275,121 @@ async function getOrStartWarmCodexProcess(input) {
1144
1275
  ? 'launch-identity-changed'
1145
1276
  : 'process-unhealthy';
1146
1277
  await previousProcess.stop(stopReason);
1147
- coldStartReason = previousProcess.nextColdStartReason;
1148
1278
  }
1149
1279
  const processInstance = new CodexAppServerProcess({
1150
1280
  ...input,
1151
- coldStartReason,
1281
+ coldStartReason: previousProcess?.nextColdStartReason ?? 'node-process-first-use',
1152
1282
  });
1153
1283
  warmCodexProcess = processInstance;
1154
- warmCodexProcess.reserveTurn();
1155
- return warmCodexProcess;
1284
+ processInstance.reserveTurn();
1285
+ return processInstance;
1286
+ });
1287
+ }
1288
+ async function stopExactUnclaimedWarmCodexProcess(processInstance, reason) {
1289
+ await withWarmCodexSlotLock(async () => {
1290
+ if (warmCodexProcess !== processInstance ||
1291
+ !processInstance.hasUnclaimedSpeculativeInitialization) {
1292
+ return;
1293
+ }
1294
+ await processInstance.stop(reason);
1295
+ });
1296
+ }
1297
+ function createCodexAppServerPreinitialization(processInstance) {
1298
+ return {
1299
+ async cancelPending() {
1300
+ try {
1301
+ await stopExactUnclaimedWarmCodexProcess(processInstance, 'invocation-release-during-preinitialize');
1302
+ }
1303
+ catch (error) {
1304
+ // An already-proven exit is sufficient for this optional optimization's
1305
+ // invocation-release boundary. Unproven teardown still fails closed.
1306
+ if (!processInstance.isStopped) {
1307
+ throw error;
1308
+ }
1309
+ }
1310
+ },
1311
+ };
1312
+ }
1313
+ function readCodexPreinitializeAbortReason(signal) {
1314
+ return signal.reason instanceof Error
1315
+ ? signal.reason
1316
+ : new DOMException('Codex app-server preinitialization was interrupted.', 'AbortError');
1317
+ }
1318
+ function beginCodexPreinitialize(processInstance, signal) {
1319
+ const readiness = processInstance.initialize();
1320
+ const onAbort = () => {
1321
+ void stopExactUnclaimedWarmCodexProcess(processInstance, 'preinitialize-aborted').catch(() => undefined);
1322
+ };
1323
+ signal?.addEventListener('abort', onAbort, { once: true });
1324
+ if (signal?.aborted) {
1325
+ onAbort();
1326
+ }
1327
+ void readiness.then(() => {
1328
+ signal?.removeEventListener('abort', onAbort);
1329
+ }, () => {
1330
+ signal?.removeEventListener('abort', onAbort);
1331
+ if (processInstance.isStoppingOrStopped) {
1332
+ return;
1333
+ }
1334
+ void stopExactUnclaimedWarmCodexProcess(processInstance, 'preinitialize-failure').catch(() => undefined);
1335
+ });
1336
+ }
1337
+ export async function preinitializeCodexAppServer(input) {
1338
+ const signal = input.signal ?? null;
1339
+ if (signal?.aborted) {
1340
+ throw readCodexPreinitializeAbortReason(signal);
1341
+ }
1342
+ if (warmCodexWorkspaceBoundaryActive) {
1343
+ return null;
1344
+ }
1345
+ const processInput = await prepareCodexAppServerProcessInput(input);
1346
+ if (signal?.aborted) {
1347
+ throw readCodexPreinitializeAbortReason(signal);
1348
+ }
1349
+ if (warmCodexWorkspaceBoundaryActive) {
1350
+ return null;
1351
+ }
1352
+ return await withWarmCodexSlotLock(async () => {
1353
+ if (signal?.aborted) {
1354
+ throw readCodexPreinitializeAbortReason(signal);
1355
+ }
1356
+ const processInstance = warmCodexProcess;
1357
+ if (processInstance) {
1358
+ if (processInstance.canClaimForLaunch(processInput.launchKey)) {
1359
+ if (!processInstance.initializedForRpc) {
1360
+ processInstance.noteSpeculativeInitialization();
1361
+ beginCodexPreinitialize(processInstance, signal);
1362
+ }
1363
+ return createCodexAppServerPreinitialization(processInstance);
1364
+ }
1365
+ if (processInstance.hasInFlightTurn) {
1366
+ return null;
1367
+ }
1368
+ if (processInstance.canClaimForLaunch(processInstance.launchKey)) {
1369
+ return null;
1370
+ }
1371
+ const processExited = processInstance.child.exitCode !== null ||
1372
+ processInstance.child.signalCode !== null;
1373
+ await processInstance.stop(processExited
1374
+ ? 'process-exited'
1375
+ : processInstance.launchKey !== processInput.launchKey
1376
+ ? 'launch-identity-changed'
1377
+ : 'process-unhealthy');
1378
+ }
1379
+ if (signal?.aborted) {
1380
+ throw readCodexPreinitializeAbortReason(signal);
1381
+ }
1382
+ const preparedProcess = new CodexAppServerProcess({
1383
+ args: processInput.args,
1384
+ codexCommand: processInput.codexCommand,
1385
+ coldStartReason: processInstance?.nextColdStartReason ?? 'node-process-first-use',
1386
+ env: processInput.env,
1387
+ launchKey: processInput.launchKey,
1388
+ });
1389
+ preparedProcess.noteSpeculativeInitialization();
1390
+ warmCodexProcess = preparedProcess;
1391
+ beginCodexPreinitialize(preparedProcess, signal);
1392
+ return createCodexAppServerPreinitialization(preparedProcess);
1156
1393
  });
1157
1394
  }
1158
1395
  export async function stopWarmCodexAppServer(reason = 'external-stop') {
@@ -1168,13 +1405,43 @@ export async function stopWarmCodexAppServer(reason = 'external-stop') {
1168
1405
  });
1169
1406
  }
1170
1407
  export async function waitForWarmCodexBackgroundWork(input = {}) {
1171
- await withWarmCodexSlotLock(async () => {
1172
- const processInstance = warmCodexProcess;
1173
- if (!processInstance || processInstance.isStopped) {
1408
+ if (warmCodexWorkspaceBoundaryActive) {
1409
+ throw buildWarmCodexWorkspaceBoundaryBusyError();
1410
+ }
1411
+ warmCodexWorkspaceBoundaryActive = true;
1412
+ try {
1413
+ const processInstance = await withWarmCodexSlotLock(async () => {
1414
+ const processInstance = warmCodexProcess;
1415
+ if (!processInstance || processInstance.isStopped) {
1416
+ return null;
1417
+ }
1418
+ if (processInstance.hasUnclaimedSpeculativeInitialization) {
1419
+ await processInstance.stop('workspace-boundary-during-preinitialize');
1420
+ return null;
1421
+ }
1422
+ if (processInstance.hasInFlightTurn) {
1423
+ throw processInstance.buildBusyError('Codex app-server process is serving a turn and cannot cross a workspace boundary.');
1424
+ }
1425
+ if (!processInstance.isReusableFor(processInstance.launchKey)) {
1426
+ await processInstance.stop('workspace-boundary-process-unhealthy');
1427
+ return null;
1428
+ }
1429
+ processInstance.reserveTurn();
1430
+ return processInstance;
1431
+ });
1432
+ if (!processInstance) {
1174
1433
  return;
1175
1434
  }
1176
- await processInstance.waitForBackgroundWork(input);
1177
- });
1435
+ try {
1436
+ await processInstance.waitForBackgroundWork(input);
1437
+ }
1438
+ finally {
1439
+ processInstance.releaseReservation();
1440
+ }
1441
+ }
1442
+ finally {
1443
+ warmCodexWorkspaceBoundaryActive = false;
1444
+ }
1178
1445
  }
1179
1446
  registerStopWarmCodexAppServer(stopWarmCodexAppServer);
1180
1447
  registerWaitForWarmCodexBackgroundWork(waitForWarmCodexBackgroundWork);
@@ -1185,6 +1452,9 @@ registerWaitForWarmCodexBackgroundWork(waitForWarmCodexBackgroundWork);
1185
1452
  * process may write CODEX_HOME at a time.
1186
1453
  */
1187
1454
  export async function executeCodexManagedAccountOperation(input) {
1455
+ if (warmCodexWorkspaceBoundaryActive) {
1456
+ throw buildWarmCodexWorkspaceBoundaryBusyError();
1457
+ }
1188
1458
  const workingDirectory = path.resolve(input.workingDirectory);
1189
1459
  await assertCodexAppServerWorkingDirectory(workingDirectory);
1190
1460
  const env = await resolveCodexChildEnv({
@@ -1405,63 +1675,6 @@ function estimateCodexWarmThreadCompactionUsage(threadContextTokensBefore) {
1405
1675
  totalTokens: threadContextTokensBefore,
1406
1676
  };
1407
1677
  }
1408
- function readCodexCompactionCompletionProviderUsage(message, threadId) {
1409
- if (!isCodexContextCompactionCompletionForThread(message, threadId)) {
1410
- return null;
1411
- }
1412
- const params = asCodexRecord(message.params);
1413
- const item = asCodexRecord(params?.item);
1414
- const candidates = [
1415
- ...readCodexProviderUsageCandidates(params),
1416
- ...readCodexProviderUsageCandidates(item),
1417
- ];
1418
- for (const candidate of candidates) {
1419
- const usage = readCodexCompactionProviderUsage(candidate);
1420
- if (usage) {
1421
- return usage;
1422
- }
1423
- }
1424
- return null;
1425
- }
1426
- function readCodexProviderUsageCandidates(value) {
1427
- if (!value) {
1428
- return [];
1429
- }
1430
- const providerUsage = asCodexRecord(value.providerUsage)
1431
- ?? asCodexRecord(value.provider_usage);
1432
- return [providerUsage, asCodexRecord(providerUsage?.last)];
1433
- }
1434
- function readCodexCompactionProviderUsage(value) {
1435
- if (!value) {
1436
- return null;
1437
- }
1438
- const inputTokens = readCodexUsageNumber(value, 'inputTokens', 'input_tokens');
1439
- const outputTokens = readCodexUsageNumber(value, 'outputTokens', 'output_tokens');
1440
- const totalTokens = readCodexUsageNumber(value, 'totalTokens', 'total_tokens');
1441
- if (inputTokens === null || outputTokens === null || totalTokens === null) {
1442
- return null;
1443
- }
1444
- if (inputTokens <= 0 || outputTokens < 0 || totalTokens < inputTokens + outputTokens) {
1445
- return null;
1446
- }
1447
- const cachedInputTokens = readCodexUsageNumber(value, 'cachedInputTokens', 'cached_input_tokens');
1448
- if (cachedInputTokens !== null && cachedInputTokens > inputTokens) {
1449
- return null;
1450
- }
1451
- return {
1452
- cachedInputTokens,
1453
- inputTokens,
1454
- outputTokens,
1455
- source: 'provider',
1456
- totalTokens,
1457
- };
1458
- }
1459
- function readCodexUsageNumber(value, camelKey, snakeKey) {
1460
- const raw = value[camelKey] ?? value[snakeKey];
1461
- return typeof raw === 'number' && Number.isSafeInteger(raw) && raw >= 0
1462
- ? raw
1463
- : null;
1464
- }
1465
1678
  // Non-turn compaction of the warm Codex thread, for idle-time maintenance.
1466
1679
  // Modeled on the other warm-slot lifecycle exports above. Failure handling is
1467
1680
  // deliberately blunt: any non-success poisons (kills) the warm process. A
@@ -1509,7 +1722,11 @@ export async function compactWarmCodexThread(input) {
1509
1722
  };
1510
1723
  }
1511
1724
  processInstance.reserveTurn();
1512
- return { kind: 'reserved', processInstance, vitals };
1725
+ return {
1726
+ kind: 'reserved',
1727
+ processInstance,
1728
+ vitals,
1729
+ };
1513
1730
  });
1514
1731
  if (reservation.kind !== 'reserved') {
1515
1732
  return reservation;
@@ -1520,7 +1737,6 @@ export async function compactWarmCodexThread(input) {
1520
1737
  let compactRequestAccepted = false;
1521
1738
  let compactStartedItemId = null;
1522
1739
  let compactCompletionBuffered = false;
1523
- let providerUsage = null;
1524
1740
  let compactionSettleReason = null;
1525
1741
  let resolveCompaction;
1526
1742
  const compactionSettled = new Promise((resolve) => {
@@ -1591,8 +1807,6 @@ export async function compactWarmCodexThread(input) {
1591
1807
  if (!compactRequestAccepted) {
1592
1808
  return;
1593
1809
  }
1594
- providerUsage = readCodexCompactionCompletionProviderUsage(message, vitals.threadId)
1595
- ?? providerUsage;
1596
1810
  settleCompaction('compacted');
1597
1811
  return;
1598
1812
  }
@@ -1605,8 +1819,6 @@ export async function compactWarmCodexThread(input) {
1605
1819
  if (compactStartedItemId === null || itemId !== compactStartedItemId) {
1606
1820
  return;
1607
1821
  }
1608
- providerUsage = readCodexCompactionCompletionProviderUsage(message, vitals.threadId)
1609
- ?? providerUsage;
1610
1822
  if (compactRequestAccepted) {
1611
1823
  settleCompaction('compacted');
1612
1824
  }
@@ -1658,8 +1870,7 @@ export async function compactWarmCodexThread(input) {
1658
1870
  threadContextTokensBefore: vitals.lastInputTokens,
1659
1871
  threadId: vitals.threadId,
1660
1872
  serviceTier: vitals.serviceTier,
1661
- usage: providerUsage
1662
- ?? estimateCodexWarmThreadCompactionUsage(vitals.lastInputTokens),
1873
+ usage: estimateCodexWarmThreadCompactionUsage(vitals.lastInputTokens),
1663
1874
  };
1664
1875
  }
1665
1876
  await processInstance.poison('idle-compaction-failed');
@@ -1694,19 +1905,16 @@ function hashCodexRawString(value) {
1694
1905
  .digest('hex');
1695
1906
  }
1696
1907
  function readCodexEventMethod(message) {
1697
- return typeof message.method === 'string'
1698
- ? message.method
1699
- : typeof message.type === 'string'
1700
- ? message.type
1701
- : typeof message.event === 'string'
1702
- ? message.event
1703
- : null;
1908
+ return typeof message.method === 'string' ? message.method : null;
1704
1909
  }
1705
1910
  function isCodexTurnStartedMethod(method) {
1706
- return method === 'turn/started' || method === 'turn.started';
1911
+ return method === 'turn/started';
1912
+ }
1913
+ function createCodexSubagentTurnUsageKey(input) {
1914
+ return `${input.threadId}\u0000${input.turnId}`;
1707
1915
  }
1708
1916
  function isCodexTurnCompletedMethod(method) {
1709
- return method === 'turn/completed' || method === 'turn.completed';
1917
+ return method === 'turn/completed';
1710
1918
  }
1711
1919
  function buildCodexTransportDiagnosticsTraceEvent(input) {
1712
1920
  const source = readCodexTransportDiagnosticSource(input.message, input.method);
@@ -1839,6 +2047,7 @@ function readCodexDynamicToolKey(message) {
1839
2047
  return namespace && tool ? `${namespace}.${tool}` : null;
1840
2048
  }
1841
2049
  async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2050
+ const providerStartCriticalPath = stampAssistantProviderStartCriticalPath(input.providerStartCriticalPath, 'codexAppServerProcessTurnStartedAtMonotonicMs');
1842
2051
  const hostedCanonicalWritePort = readHostedCanonicalWritePort();
1843
2052
  let stdout = '';
1844
2053
  let stderr = '';
@@ -1851,7 +2060,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
1851
2060
  const offeredDynamicToolKeys = new Set(input.dynamicTools.map((tool) => `${tool.namespace}.${tool.name}`));
1852
2061
  let codexThreadId = null;
1853
2062
  let turnId = null;
1854
- const isReusedWarmProcess = codexProcess.initializedForRpc;
2063
+ const isReusedWarmProcess = codexProcess.hasCompletedTurn;
1855
2064
  // Completed final-phase agent messages that were followed by a steered
1856
2065
  // user-message item and then superseded by a newer response segment in the
1857
2066
  // same turn. A closed segment is held as a candidate until newer text or
@@ -1865,6 +2074,8 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
1865
2074
  let lastEventError = null;
1866
2075
  let lastEventErrorInfo = null;
1867
2076
  let responseMedia = [];
2077
+ let responseCard = null;
2078
+ let responseCardTextFallback = null;
1868
2079
  const assistantStyleSettingsOverlay = {
1869
2080
  settings: {},
1870
2081
  };
@@ -1879,7 +2090,25 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
1879
2090
  // Trusted turn-scoped murph.ask_grok provider-call ceiling: one counter per
1880
2091
  // assistant turn, owned here and threaded into the dynamic-tool executor.
1881
2092
  const askGrokTurnState = createAskGrokTurnState();
1882
- const subagentTokenUsageByThread = new Map();
2093
+ const groupSharedReadTurnState = {
2094
+ currentSenderDecisionByMessageRef: new Map(),
2095
+ invalid: false,
2096
+ readProjectionScopeKeyBatches: [],
2097
+ roster: null,
2098
+ };
2099
+ const automationRelativeDateReferenceWindows = [
2100
+ input.automationRelativeDateReferenceWindow
2101
+ ? { ...input.automationRelativeDateReferenceWindow }
2102
+ : null,
2103
+ ];
2104
+ const generateSongTurnState = input.generateSongPolicy
2105
+ ? {
2106
+ attemptCount: 0,
2107
+ policy: input.generateSongPolicy,
2108
+ }
2109
+ : null;
2110
+ const subagentTokenUsageByTurn = new Map();
2111
+ const trackedSubagentUsageThreadIds = new Set();
1883
2112
  // Thread ids named by this turn's collab tool calls (spawn/sendInput/...),
1884
2113
  // collected live so evidenced subagent threads win buffer slots over
1885
2114
  // stale/unattributed foreign threads when the cap is reached.
@@ -1889,8 +2118,10 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
1889
2118
  const providerActionItemIds = new Set();
1890
2119
  const jsonEvents = [];
1891
2120
  const runtimeIssueInputs = [];
2121
+ const actionRuntimeIssueTracker = createCodexActionRuntimeIssueTracker();
1892
2122
  let computerToolsLockedAfterUserPause = false;
1893
2123
  const requiredVaultFileApprovalUrls = [];
2124
+ const requiredAutomationLocalAtClarifications = new Map();
1894
2125
  const actionDiagnostics = input.onTraceEvent
1895
2126
  ? createCodexActionDiagnosticsReducer()
1896
2127
  : null;
@@ -1907,7 +2138,9 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
1907
2138
  let codexTimingTurnStartAckElapsedMs = null;
1908
2139
  let codexTimingTurnStartedNotificationElapsedMs = null;
1909
2140
  let codexTimingTurnCompletedNotificationElapsedMs = null;
2141
+ let currentTurnStartedNotificationObserved = false;
1910
2142
  let liveInterruptRequested = false;
2143
+ let terminalNoReplyInterruptRequested = false;
1911
2144
  let completeTurn = null;
1912
2145
  let failTurn = null;
1913
2146
  let liveTurnOpen = false;
@@ -1916,6 +2149,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
1916
2149
  let contextCompactionProgressNotified = false;
1917
2150
  let contextCompactionProgressPending = false;
1918
2151
  let releaseLiveTurn = () => { };
2152
+ const pendingDynamicToolRequests = new Set();
1919
2153
  const pendingProgressDeliveries = new Set();
1920
2154
  let dynamicToolExecutionChain = Promise.resolve();
1921
2155
  const dynamicToolAbortController = new AbortController();
@@ -1970,13 +2204,15 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
1970
2204
  parentModel: normalizeNullableString(input.model) ?? null,
1971
2205
  parentRawEvents: jsonEvents,
1972
2206
  serviceTier: input.serviceTier ?? null,
1973
- subagentTokenUsageByThread,
2207
+ subagentTokenUsageByTurn,
1974
2208
  });
1975
2209
  const hasNoReplyFinalActionPatch = () => finalActionPatches.some((entry) => entry.patch.kind === 'none');
1976
2210
  const listNoReplyFinalActionPatchOrdinals = () => [...new Set(finalActionPatches
1977
2211
  .filter((entry) => entry.patch.kind === 'none')
1978
2212
  .map((entry) => entry.deliveryContextOrdinal))].sort((left, right) => left - right);
1979
- const hasRequiredUserVisibleOutput = () => computerToolsLockedAfterUserPause || requiredVaultFileApprovalUrls.length > 0;
2213
+ const hasRequiredUserVisibleOutput = () => computerToolsLockedAfterUserPause ||
2214
+ requiredAutomationLocalAtClarifications.size > 0 ||
2215
+ requiredVaultFileApprovalUrls.length > 0;
1980
2216
  const settleNoReplyFinalActions = async () => {
1981
2217
  if (hasRequiredUserVisibleOutput() || noReplySettlementStarted) {
1982
2218
  return;
@@ -2083,7 +2319,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2083
2319
  rawEvent: {
2084
2320
  schema: CODEX_APP_SERVER_TIMING_TRACE_SCHEMA,
2085
2321
  type: CODEX_APP_SERVER_TIMING_TRACE_TYPE,
2086
- ...(stage === 'initialized'
2322
+ ...(stage === 'initialized' || stage === 'preinitialized'
2087
2323
  ? {
2088
2324
  codexTimingColdStartReason: codexProcess.coldStartReason,
2089
2325
  }
@@ -2269,22 +2505,48 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2269
2505
  if (!trailingSteerCandidate) {
2270
2506
  return;
2271
2507
  }
2272
- precedingAgentMessageSegments.push(trailingSteerCandidate);
2508
+ const response = trailingSteerCandidate.card
2509
+ ? renderAssistantResponseCardText(trailingSteerCandidate.card)
2510
+ : trailingSteerCandidate.cardTextFallback
2511
+ ? renderAssistantWorkoutResponseCardText(trailingSteerCandidate.cardTextFallback)
2512
+ : trailingSteerCandidate.response;
2513
+ const transcriptResponse = trailingSteerCandidate.card
2514
+ ? renderAssistantResponseCardTranscriptText(trailingSteerCandidate.card)
2515
+ : trailingSteerCandidate.cardTextFallback
2516
+ ? renderAssistantWorkoutResponseCardTranscriptText(trailingSteerCandidate.cardTextFallback)
2517
+ : response;
2518
+ precedingAgentMessageSegments.push({
2519
+ deliveryContextOrdinal: trailingSteerCandidate.deliveryContextOrdinal,
2520
+ media: [...trailingSteerCandidate.media],
2521
+ response,
2522
+ ...(transcriptResponse === response ? {} : { transcriptResponse }),
2523
+ ...(trailingSteerCandidate.targetInputId
2524
+ ? { targetInputId: trailingSteerCandidate.targetInputId }
2525
+ : {}),
2526
+ });
2273
2527
  trailingSteerCandidate = null;
2274
2528
  };
2275
- const notifyProviderRequestStarted = () => {
2529
+ const notifyProviderRequestStarted = (providedStartedAtMonotonicMs) => {
2276
2530
  if (providerRequestStartedNotified) {
2277
2531
  return;
2278
2532
  }
2279
2533
  providerRequestStartedNotified = true;
2534
+ const providerStartedAtMonotonicMs = providedStartedAtMonotonicMs
2535
+ ?? readAssistantProviderStartMonotonicTickMs();
2280
2536
  const startedAtMs = Date.now();
2281
2537
  codexProviderRequestStartedAtMs = startedAtMs;
2538
+ const completedProviderStartCriticalPath = input.providerRequestOrdinal === 0
2539
+ ? completeAssistantProviderStartCriticalPath(providerStartCriticalPath, providerStartedAtMonotonicMs)
2540
+ : null;
2282
2541
  notifyCodexAppServerProviderRequestStartedBestEffort({
2283
2542
  hook: input.onProviderRequestStarted ?? null,
2284
2543
  startedAt: new Date(startedAtMs).toISOString(),
2285
2544
  timing: {
2286
2545
  ...codexAppServerProviderStartTiming,
2287
2546
  codexAppServerPreProviderMs: Math.max(0, startedAtMs - codexAppServerTurnStartedAt),
2547
+ ...(completedProviderStartCriticalPath
2548
+ ? { providerStartCriticalPath: completedProviderStartCriticalPath }
2549
+ : {}),
2288
2550
  },
2289
2551
  });
2290
2552
  };
@@ -2312,6 +2574,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2312
2574
  try {
2313
2575
  contextCompactionProgressPending = true;
2314
2576
  progressPromise = progressDelivery.send(text, {
2577
+ deliveryContextOrdinal,
2315
2578
  required: true,
2316
2579
  source: 'system',
2317
2580
  });
@@ -2346,6 +2609,21 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2346
2609
  });
2347
2610
  pendingProgressDeliveries.add(tracked);
2348
2611
  };
2612
+ const trackDynamicToolRequest = (promise) => {
2613
+ const tracked = promise
2614
+ .catch((error) => {
2615
+ rejectOnce(error);
2616
+ })
2617
+ .finally(() => {
2618
+ pendingDynamicToolRequests.delete(tracked);
2619
+ });
2620
+ pendingDynamicToolRequests.add(tracked);
2621
+ };
2622
+ const drainPendingDynamicToolRequests = async () => {
2623
+ while (pendingDynamicToolRequests.size > 0) {
2624
+ await Promise.all([...pendingDynamicToolRequests]);
2625
+ }
2626
+ };
2349
2627
  const drainPendingProgressDeliveries = async () => {
2350
2628
  while (pendingProgressDeliveries.size > 0) {
2351
2629
  await waitForCodexProgressDrain([
@@ -2376,9 +2654,60 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2376
2654
  if (hasAcceptedNoReplyPatchForDeliveryContext(deliveryContextOrdinal)) {
2377
2655
  throw new VaultCliError('ASSISTANT_RESPONSE_MEDIA_AFTER_NO_REPLY', 'Response media cannot be attached after finish_without_reply.');
2378
2656
  }
2379
- responseMedia = patch.op === 'replace'
2657
+ const nextMedia = patch.op === 'replace'
2380
2658
  ? patch.media
2381
2659
  : normalizeAssistantResponseMediaList([...responseMedia, ...patch.media]);
2660
+ if (nextMedia.length > ASSISTANT_AUTHORED_RESPONSE_MEDIA_MAX_ITEMS) {
2661
+ throw new VaultCliError('ASSISTANT_RESPONSE_MEDIA_LIMIT_EXCEEDED', `Assistant responses may attach at most ${ASSISTANT_AUTHORED_RESPONSE_MEDIA_MAX_ITEMS} media items.`);
2662
+ }
2663
+ if (responseCard !== null && nextMedia.length > 0) {
2664
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_MEDIA_CONFLICT', 'Response media cannot be combined with a response card.');
2665
+ }
2666
+ if (responseCardTextFallback !== null && nextMedia.length > 0) {
2667
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_MEDIA_CONFLICT', 'Response media cannot be combined with response card text recovery.');
2668
+ }
2669
+ responseMedia = nextMedia;
2670
+ };
2671
+ const applyResponseCardPatch = (card, deliveryContextOrdinal) => {
2672
+ if (deliveryContextOrdinal !== 0 ||
2673
+ currentDeliveryContextOrdinal() !== deliveryContextOrdinal) {
2674
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_CONTEXT_ADVANCED', 'A response card cannot attach after accepted input advances the response context.');
2675
+ }
2676
+ if (hasAcceptedNoReplyPatchForDeliveryContext(deliveryContextOrdinal)) {
2677
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_AFTER_NO_REPLY', 'A response card cannot be attached after finish_without_reply.');
2678
+ }
2679
+ if (responseCard !== null) {
2680
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_LIMIT_REACHED', 'Only one response card may be attached to a final response.');
2681
+ }
2682
+ if (responseCardTextFallback !== null) {
2683
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_LIMIT_REACHED', 'Only one response card outcome may be attached to a final response.');
2684
+ }
2685
+ if (responseMedia.length > 0) {
2686
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_MEDIA_CONFLICT', 'A response card cannot be combined with response media.');
2687
+ }
2688
+ if (requiredVaultFileApprovalUrls.length > 0) {
2689
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_VAULT_FILE_CONFLICT', 'A response card cannot replace a required vault-file approval link.');
2690
+ }
2691
+ responseCard = card;
2692
+ };
2693
+ const applyResponseCardTextFallbackPatch = (card, deliveryContextOrdinal) => {
2694
+ if (deliveryContextOrdinal !== 0 ||
2695
+ currentDeliveryContextOrdinal() !== deliveryContextOrdinal) {
2696
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_CONTEXT_ADVANCED', 'Response card text recovery cannot attach after accepted input advances the response context.');
2697
+ }
2698
+ if (hasAcceptedNoReplyPatchForDeliveryContext(deliveryContextOrdinal)) {
2699
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_AFTER_NO_REPLY', 'Response card text recovery cannot attach after finish_without_reply.');
2700
+ }
2701
+ if (responseCard !== null || responseCardTextFallback !== null) {
2702
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_LIMIT_REACHED', 'Only one response card outcome may be attached to a final response.');
2703
+ }
2704
+ if (responseMedia.length > 0) {
2705
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_MEDIA_CONFLICT', 'Response card text recovery cannot be combined with response media.');
2706
+ }
2707
+ if (requiredVaultFileApprovalUrls.length > 0) {
2708
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_VAULT_FILE_CONFLICT', 'Response card text recovery cannot replace a required vault-file approval link.');
2709
+ }
2710
+ responseCardTextFallback = card;
2382
2711
  };
2383
2712
  const canApplyNoReplyPatch = (deliveryContextOrdinal) => {
2384
2713
  const trailingSteerCandidateOrdinal = trailingSteerCandidate?.deliveryContextOrdinal;
@@ -2393,6 +2722,12 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2393
2722
  if (responseMedia.length > 0) {
2394
2723
  return false;
2395
2724
  }
2725
+ if (responseCard !== null) {
2726
+ return false;
2727
+ }
2728
+ if (responseCardTextFallback !== null) {
2729
+ return false;
2730
+ }
2396
2731
  if (precedingAgentMessageSegments.some((segment) => segment.deliveryContextOrdinal < deliveryContextOrdinal)) {
2397
2732
  return false;
2398
2733
  }
@@ -2451,6 +2786,17 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2451
2786
  reservedNoReplyDeliveryContextOrdinals.delete(deliveryContextOrdinal);
2452
2787
  return true;
2453
2788
  };
2789
+ const applyTerminalExternalEffectNoReplyPatch = (patch, deliveryContextOrdinal) => {
2790
+ // A host-authorized external effect has crossed its delivery boundary.
2791
+ // Its terminal disposition is not a model-requested finish_without_reply
2792
+ // and must not depend on trace callback visibility.
2793
+ finalActionPatches = [
2794
+ ...finalActionPatches.filter((action) => action.deliveryContextOrdinal !== deliveryContextOrdinal),
2795
+ { deliveryContextOrdinal, patch },
2796
+ ];
2797
+ replyTargetPatches = replyTargetPatches.filter((entry) => entry.deliveryContextOrdinal !== deliveryContextOrdinal);
2798
+ reservedNoReplyDeliveryContextOrdinals.delete(deliveryContextOrdinal);
2799
+ };
2454
2800
  const resolveFinalActionPatch = (deliveryContextOrdinal) => finalActionPatches.find((action) => action.deliveryContextOrdinal === deliveryContextOrdinal)?.patch ?? null;
2455
2801
  const resolveReplyTargetPatch = (deliveryContextOrdinal) => replyTargetPatches.find((entry) => entry.deliveryContextOrdinal === deliveryContextOrdinal)?.patch ?? null;
2456
2802
  const shouldSuppressDeliveryContext = (deliveryContextOrdinal) => {
@@ -2463,7 +2809,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2463
2809
  const acceptJsonEvent = (message) => {
2464
2810
  jsonEvents.push(message);
2465
2811
  };
2466
- const handleAcceptedServerRequest = (message, requestId) => {
2812
+ const handleAcceptedServerRequest = async (message, requestId) => {
2467
2813
  acceptJsonEvent(message);
2468
2814
  if (turnTerminal) {
2469
2815
  void tryWriteRpcMessage({
@@ -2480,7 +2826,40 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2480
2826
  });
2481
2827
  return;
2482
2828
  }
2483
- const dynamicToolRequest = readMurphDynamicToolRequest(message);
2829
+ if (message.method !== 'item/tool/call') {
2830
+ denyUnsupportedCodexServerRequest({
2831
+ message,
2832
+ requestId,
2833
+ writeRpcMessage: (payload) => {
2834
+ void tryWriteRpcMessage(payload);
2835
+ },
2836
+ });
2837
+ return;
2838
+ }
2839
+ const dynamicToolRequestDeliveryContextOrdinal = currentDeliveryContextOrdinal();
2840
+ let dynamicToolRuntime;
2841
+ try {
2842
+ dynamicToolRuntime = await loadMurphDynamicToolRuntime();
2843
+ }
2844
+ catch {
2845
+ void tryWriteRpcMessage({
2846
+ id: requestId,
2847
+ error: {
2848
+ code: -32000,
2849
+ message: 'Dynamic tool runtime is unavailable.',
2850
+ },
2851
+ });
2852
+ return;
2853
+ }
2854
+ const { claimCurrentSenderTurnDecision, executeMurphDynamicToolRequest, isComputerDynamicToolRequest, readMurphDynamicToolRequest, } = dynamicToolRuntime;
2855
+ const dynamicToolRequest = readMurphDynamicToolRequest(message, {
2856
+ automationRelativeDateReferenceWindow: automationRelativeDateReferenceWindows[dynamicToolRequestDeliveryContextOrdinal] ?? null,
2857
+ responseCardAudience: input.groupConversation === true
2858
+ ? 'group'
2859
+ : input.groupConversation === false
2860
+ ? 'private'
2861
+ : null,
2862
+ });
2484
2863
  if (!dynamicToolRequest) {
2485
2864
  denyUnsupportedCodexServerRequest({
2486
2865
  message,
@@ -2543,6 +2922,26 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2543
2922
  reason: 'invalid_arguments',
2544
2923
  }));
2545
2924
  }
2925
+ const currentSenderDecisionClaim = claimCurrentSenderTurnDecision({
2926
+ request: dynamicToolRequest,
2927
+ turnState: groupSharedReadTurnState,
2928
+ });
2929
+ if (currentSenderDecisionClaim === 'conflict'
2930
+ || currentSenderDecisionClaim === 'unavailable') {
2931
+ void tryWriteRpcMessage({
2932
+ id: requestId,
2933
+ result: {
2934
+ success: false,
2935
+ contentItems: [{
2936
+ type: 'inputText',
2937
+ text: currentSenderDecisionClaim === 'conflict'
2938
+ ? 'current-sender request conflicts with an earlier decision for this Message'
2939
+ : 'current-sender decision authority is unavailable for this turn',
2940
+ }],
2941
+ },
2942
+ });
2943
+ return;
2944
+ }
2546
2945
  if (input.allowFinishWithoutReply === false &&
2547
2946
  (dynamicToolRequest.kind === 'finish-without-reply' ||
2548
2947
  dynamicToolRequest.kind === 'invalid-finish-without-reply-arguments')) {
@@ -2608,7 +3007,6 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2608
3007
  });
2609
3008
  return;
2610
3009
  }
2611
- const dynamicToolRequestDeliveryContextOrdinal = currentDeliveryContextOrdinal();
2612
3010
  const dynamicToolDeliveryContextOrdinal = dynamicToolRequest.kind === 'finish-without-reply' ||
2613
3011
  dynamicToolRequest.kind === 'react-to-message' ||
2614
3012
  dynamicToolRequest.kind === 'select-reply-target' ||
@@ -2668,6 +3066,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2668
3066
  computerToolsLockedAfterUserPause = true;
2669
3067
  closeLiveTurn();
2670
3068
  }
3069
+ let dynamicToolRequestSettled = false;
2671
3070
  const runDynamicTool = () => withHostedCanonicalWritePort(hostedCanonicalWritePort, async () => {
2672
3071
  const existingFinalAction = resolveFinalActionPatch(dynamicToolRequestDeliveryContextOrdinal);
2673
3072
  const vaultFileOwnsFinalAction = existingFinalAction?.kind === 'none' &&
@@ -2676,7 +3075,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2676
3075
  !vaultFileOwnsFinalAction;
2677
3076
  if (shouldSuppressDeliveryContext(dynamicToolRequestDeliveryContextOrdinal) &&
2678
3077
  !vaultFileMayClassifyAfterGenericNoReply &&
2679
- isResponseMediaDynamicToolRequest(dynamicToolRequest)) {
3078
+ isResponseAttachmentDynamicToolRequest(dynamicToolRequest)) {
2680
3079
  return {
2681
3080
  rpcResult: {
2682
3081
  contentItems: [{
@@ -2692,7 +3091,65 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2692
3091
  };
2693
3092
  }
2694
3093
  const hostedToolContext = resolveCodexAppServerHostedToolContext(input);
2695
- await hostedToolContext?.beforeToolExecution?.();
3094
+ await hostedToolContext?.beforeToolExecution?.(dynamicToolRequestDeliveryContextOrdinal);
3095
+ let requestedLocalAtRecovery = null;
3096
+ if ((dynamicToolRequest.kind === 'automation' ||
3097
+ dynamicToolRequest.kind === 'invalid-automation-arguments') &&
3098
+ dynamicToolRequest.localAtRecovery) {
3099
+ requestedLocalAtRecovery = dynamicToolRequest.localAtRecovery;
3100
+ }
3101
+ else if (dynamicToolRequest.kind ===
3102
+ 'automation-local-at-recovery-dismissal') {
3103
+ requestedLocalAtRecovery = {
3104
+ recoveryKey: dynamicToolRequest.recoveryKey,
3105
+ resolvedLocalDate: dynamicToolRequest.resolvedLocalDate,
3106
+ };
3107
+ }
3108
+ if (requestedLocalAtRecovery) {
3109
+ const clarificationKey = buildRequiredAutomationLocalAtClarificationKey({
3110
+ resolvedLocalDate: requestedLocalAtRecovery.resolvedLocalDate,
3111
+ targetKey: requestedLocalAtRecovery.recoveryKey,
3112
+ });
3113
+ if (!requiredAutomationLocalAtClarifications.has(clarificationKey)) {
3114
+ return {
3115
+ rpcResult: {
3116
+ contentItems: [{
3117
+ text: 'local-time recovery key or trusted date is not pending in this active root turn',
3118
+ type: 'inputText',
3119
+ }],
3120
+ success: false,
3121
+ },
3122
+ };
3123
+ }
3124
+ if (dynamicToolRequest.kind ===
3125
+ 'automation-local-at-recovery-dismissal') {
3126
+ requiredAutomationLocalAtClarifications.delete(clarificationKey);
3127
+ return {
3128
+ rpcResult: {
3129
+ contentItems: [{
3130
+ text: 'local-time reminder recovery dismissed; no automation was changed',
3131
+ type: 'inputText',
3132
+ }],
3133
+ success: true,
3134
+ },
3135
+ };
3136
+ }
3137
+ }
3138
+ if (dynamicToolRequest.kind === 'invalid-automation-arguments' &&
3139
+ (dynamicToolRequest.safeFailureCode === 'local_at_gap' ||
3140
+ dynamicToolRequest.safeFailureCode === 'local_at_fold') &&
3141
+ dynamicToolRequest.resolvedLocalDate &&
3142
+ dynamicToolRequest.localAtTargetKey &&
3143
+ dynamicToolRequest.localAtTargetLabel &&
3144
+ !dynamicToolRequest.localAtRecovery) {
3145
+ const requirement = {
3146
+ code: dynamicToolRequest.safeFailureCode,
3147
+ resolvedLocalDate: dynamicToolRequest.resolvedLocalDate,
3148
+ targetKey: dynamicToolRequest.localAtTargetKey,
3149
+ targetLabel: dynamicToolRequest.localAtTargetLabel,
3150
+ };
3151
+ requiredAutomationLocalAtClarifications.set(buildRequiredAutomationLocalAtClarificationKey(requirement), requirement);
3152
+ }
2696
3153
  const result = await executeMurphDynamicToolRequest({
2697
3154
  authorizeAcceptedMessageTarget: input.authorizeAcceptedMessageTarget ?? null,
2698
3155
  assistantStyleSettingsOverlay,
@@ -2710,16 +3167,39 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2710
3167
  hostedToolContext,
2711
3168
  materializeWorkspaceArtifacts: input.materializeWorkspaceArtifacts ?? null,
2712
3169
  currentResponseMedia: responseMedia,
3170
+ currentResponseCard: responseCard ?? responseCardTextFallback,
3171
+ groupChallengeResponseCardAllowed: input.groupConversation === true &&
3172
+ input.dynamicTools.some((tool) => tool.namespace === 'murph' &&
3173
+ tool.name === 'attach_response_card'),
3174
+ groupSharedReadTurnState,
3175
+ privateDirectResponseCardAllowed: input.groupConversation === false,
3176
+ telegramPresentationResponseCardAllowed: input.dynamicTools.some((tool) => tool.namespace === 'murph' &&
3177
+ (tool.name === 'attach_exercise_routine_card' ||
3178
+ tool.name === 'attach_telegram_rich_content')),
2713
3179
  deliveryContextOrdinal: dynamicToolRequestDeliveryContextOrdinal,
2714
3180
  nextUsageOrdinal: () => nextDynamicToolUsageOrdinal++,
3181
+ onboardingFirstReadCompletionTransitionAvailable: input.onboardingFirstReadCompletionTransitionAvailable ?? false,
2715
3182
  productFeedbackRecorder: input.productFeedbackRecorder ?? null,
2716
3183
  progressDelivery: dynamicToolRequest.kind === 'send-progress-update'
2717
3184
  ? dynamicToolProgressDelivery
2718
- : null,
3185
+ : dynamicToolRequest.kind === 'group'
3186
+ ? resolveCodexAppServerProgressDelivery(input)
3187
+ : null,
2719
3188
  publicFetchImpl: input.publicInternetFetch ?? null,
2720
3189
  request: dynamicToolRequest,
2721
3190
  requireHostedPrivateImageDelivery: input.requireHostedPrivateImageDelivery ?? false,
2722
3191
  vaultRoot: input.vaultRoot ?? null,
3192
+ voiceMemoPhaseTimingRecorder: (dynamicToolRequest.kind === 'generate-voice-memo' ||
3193
+ dynamicToolRequest.kind === 'generate-song') &&
3194
+ input.onTraceEvent
3195
+ ? (timing) => {
3196
+ emitCodexGeneratedAudioPhaseTimingTrace({
3197
+ codexThreadId,
3198
+ onTraceEvent: input.onTraceEvent,
3199
+ timing,
3200
+ });
3201
+ }
3202
+ : null,
2723
3203
  voiceMemoRuntime: dynamicToolRequest.kind === 'generate-voice-memo' ||
2724
3204
  dynamicToolRequest.kind === 'generate-song'
2725
3205
  ? input.voiceMemoRuntime ?? null
@@ -2728,6 +3208,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2728
3208
  ? input.askGrokRuntime ?? null
2729
3209
  : null,
2730
3210
  askGrokTurnState,
3211
+ generateSongTurnState,
2731
3212
  });
2732
3213
  return result;
2733
3214
  }).then(async (result) => {
@@ -2744,6 +3225,62 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2744
3225
  !requiredVaultFileApprovalUrls.includes(result.requiredVaultFileApprovalUrl)) {
2745
3226
  requiredVaultFileApprovalUrls.push(result.requiredVaultFileApprovalUrl);
2746
3227
  }
3228
+ if (result.finalActionPatch?.kind === 'none' &&
3229
+ (result.finalActionPatch.owner === 'group-email'
3230
+ || result.finalActionPatch.owner === 'current-sender-ask')) {
3231
+ if (result.externallyVisibleOutput) {
3232
+ markExternallyVisibleAssistantOutput(dynamicToolRequestDeliveryContextOrdinal);
3233
+ }
3234
+ applyTerminalExternalEffectNoReplyPatch(result.finalActionPatch, dynamicToolRequestDeliveryContextOrdinal);
3235
+ // Interrupt while the app-server is still waiting on this dynamic
3236
+ // tool request. Returning the tool result first lets Codex start a
3237
+ // follow-up provider request before the interrupt is processed, and
3238
+ // an interrupt racing that continuation can leave the turn open.
3239
+ // TurnAborted resolves the pending server request structurally, so a
3240
+ // terminal external effect must not also write a tool response.
3241
+ dynamicToolRequestSettled = true;
3242
+ await interruptLiveTurnForTerminalNoReply();
3243
+ return;
3244
+ }
3245
+ if (result.externallyVisibleOutput) {
3246
+ markExternallyVisibleAssistantOutput(dynamicToolRequestDeliveryContextOrdinal);
3247
+ }
3248
+ if (result.responseCardPatch) {
3249
+ try {
3250
+ applyResponseCardPatch(result.responseCardPatch.card, dynamicToolRequestDeliveryContextOrdinal);
3251
+ }
3252
+ catch {
3253
+ void tryWriteRpcMessage({
3254
+ id: requestId,
3255
+ result: {
3256
+ success: false,
3257
+ contentItems: [{
3258
+ type: 'inputText',
3259
+ text: 'response card unavailable for this final response',
3260
+ }],
3261
+ },
3262
+ });
3263
+ return;
3264
+ }
3265
+ }
3266
+ if (result.responseCardTextFallbackPatch) {
3267
+ try {
3268
+ applyResponseCardTextFallbackPatch(result.responseCardTextFallbackPatch.card, dynamicToolRequestDeliveryContextOrdinal);
3269
+ }
3270
+ catch {
3271
+ void tryWriteRpcMessage({
3272
+ id: requestId,
3273
+ result: {
3274
+ success: false,
3275
+ contentItems: [{
3276
+ type: 'inputText',
3277
+ text: 'response card unavailable for this final response',
3278
+ }],
3279
+ },
3280
+ });
3281
+ return;
3282
+ }
3283
+ }
2747
3284
  if (result.responseMediaPatch) {
2748
3285
  try {
2749
3286
  applyResponseMediaPatch(result.responseMediaPatch, dynamicToolRequestDeliveryContextOrdinal);
@@ -2808,14 +3345,33 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2808
3345
  result.rpcResult.success) {
2809
3346
  markExternallyVisibleAssistantOutput(dynamicToolDeliveryContextOrdinal ?? 0);
2810
3347
  }
2811
- void tryWriteRpcMessage({
3348
+ if (dynamicToolRequest.kind === 'automation' &&
3349
+ result.rpcResult.success &&
3350
+ dynamicToolRequest.localAtRecovery) {
3351
+ const recoveryKey = buildRequiredAutomationLocalAtClarificationKey({
3352
+ resolvedLocalDate: dynamicToolRequest.localAtRecovery.resolvedLocalDate,
3353
+ targetKey: dynamicToolRequest.localAtRecovery.recoveryKey,
3354
+ });
3355
+ if (requiredAutomationLocalAtClarifications.has(recoveryKey)) {
3356
+ requiredAutomationLocalAtClarifications.delete(recoveryKey);
3357
+ }
3358
+ }
3359
+ const writeFailure = tryWriteRpcMessage({
2812
3360
  id: requestId,
2813
3361
  result: result.rpcResult,
2814
3362
  });
3363
+ if (writeFailure) {
3364
+ return;
3365
+ }
3366
+ dynamicToolRequestSettled = true;
2815
3367
  }).catch((error) => {
2816
3368
  if (dynamicToolRequest.kind === 'send-progress-update') {
2817
3369
  releaseDynamicProgressPending?.();
2818
3370
  }
3371
+ if (dynamicToolRequestSettled) {
3372
+ rejectOnce(error);
3373
+ return;
3374
+ }
2819
3375
  pushRuntimeIssueInput(createDynamicToolRuntimeIssueInput({
2820
3376
  request: dynamicToolRequest,
2821
3377
  reason: 'execution_failed',
@@ -2853,6 +3409,10 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2853
3409
  const providerRequestStartedAtMs = codexProviderRequestStartedAtMs;
2854
3410
  const isTurnStartedNotification = isCodexTurnStartedMethod(method);
2855
3411
  const isTurnCompletedNotification = isCodexTurnCompletedMethod(method);
3412
+ if (isTurnStartedNotification) {
3413
+ currentTurnStartedNotificationObserved =
3414
+ turnId !== null && extractCodexTurnIdFromMessage(message) === turnId;
3415
+ }
2856
3416
  const shouldCaptureTurnStartedNotification = providerRequestStartedAtMs !== null &&
2857
3417
  isTurnStartedNotification &&
2858
3418
  codexTimingTurnStartedNotificationElapsedMs === null;
@@ -2876,7 +3436,8 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2876
3436
  lastEventError = extractCodexErrorMessage(message) ?? lastEventError;
2877
3437
  lastEventErrorInfo = extractCodexErrorInfo(message) ?? lastEventErrorInfo;
2878
3438
  const normalizedEvent = normalizeCodexEvent(message);
2879
- const runtimeIssueInput = buildRuntimeIssueInputForFailedCodexAction({
3439
+ const runtimeIssueInput = actionRuntimeIssueTracker.recordEvent({
3440
+ activeTurnId: turnId,
2880
3441
  normalizedEvent,
2881
3442
  rawEvent: message,
2882
3443
  });
@@ -2937,7 +3498,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2937
3498
  }
2938
3499
  }
2939
3500
  if (normalizedEvent.kind !== 'status_item' ||
2940
- normalizedEvent.itemType !== 'context.compaction') {
3501
+ normalizedEvent.itemType !== 'contextCompaction') {
2941
3502
  input.onTraceEvent?.({
2942
3503
  codexThreadId,
2943
3504
  rawEvent: message,
@@ -2974,6 +3535,8 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2974
3535
  deliveryContextOrdinal: completedResponseDeliveryContextOrdinal,
2975
3536
  response: completedFinalAgentMessage,
2976
3537
  media: [...responseMedia],
3538
+ card: responseCard,
3539
+ cardTextFallback: responseCardTextFallback,
2977
3540
  ...(completedResponseTargetInputId
2978
3541
  ? { targetInputId: completedResponseTargetInputId }
2979
3542
  : {}),
@@ -2983,6 +3546,8 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
2983
3546
  assistantStreamOrder.length = 0;
2984
3547
  responseMedia = [];
2985
3548
  }
3549
+ responseCard = null;
3550
+ responseCardTextFallback = null;
2986
3551
  completedUserMessageOrdinal += 1;
2987
3552
  }
2988
3553
  const progressEvent = extractCodexProgressEventFromNormalized(normalizedEvent);
@@ -3008,6 +3573,12 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3008
3573
  return;
3009
3574
  }
3010
3575
  const status = extractCodexTurnStatus(message);
3576
+ if (status === 'interrupted' &&
3577
+ terminalNoReplyInterruptRequested) {
3578
+ turnTerminal = true;
3579
+ completeTurn?.();
3580
+ return;
3581
+ }
3011
3582
  if (isFailedCodexTurnStatus(status)) {
3012
3583
  turnTerminal = true;
3013
3584
  failTurn?.(buildCodexTurnFailedError({
@@ -3034,30 +3605,61 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3034
3605
  });
3035
3606
  return;
3036
3607
  }
3037
- if (!isAssistantCodexTokenUsageEventType(readCodexEventMethod(message))) {
3608
+ const eventMethod = readCodexEventMethod(message);
3609
+ const messageTurnId = extractCodexTurnIdFromMessage(message);
3610
+ if (isCodexTurnStartedMethod(eventMethod)) {
3611
+ if (!messageTurnId) {
3612
+ return;
3613
+ }
3614
+ const usageKey = createCodexSubagentTurnUsageKey({
3615
+ threadId,
3616
+ turnId: messageTurnId,
3617
+ });
3618
+ if (subagentTokenUsageByTurn.has(usageKey)) {
3619
+ return;
3620
+ }
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
+ subagentTokenUsageByTurn.set(usageKey, {
3638
+ firstEvent: null,
3639
+ lastEvent: null,
3640
+ occurredAt: new Date().toISOString(),
3641
+ threadId,
3642
+ turnId: messageTurnId,
3643
+ });
3038
3644
  return;
3039
3645
  }
3040
- const sample = subagentTokenUsageByThread.get(threadId);
3041
- if (sample) {
3042
- sample.lastEvent = message;
3646
+ if (!isAssistantCodexTokenUsageEventType(eventMethod)
3647
+ || !messageTurnId) {
3043
3648
  return;
3044
3649
  }
3045
- if (subagentTokenUsageByThread.size >= MAX_CODEX_SUBAGENT_USAGE_THREADS) {
3046
- // Evidenced subagent threads win buffer slots: evict an unattributed
3047
- // sample (e.g. a stale flush from a previous warm-process thread, which
3048
- // is never billable) before dropping a billable child's usage.
3049
- const evictableThreadId = collabReceiverThreadIds.has(threadId)
3050
- ? [...subagentTokenUsageByThread.keys()].find((bufferedThreadId) => !collabReceiverThreadIds.has(bufferedThreadId))
3051
- : undefined;
3052
- if (evictableThreadId === undefined) {
3053
- return;
3054
- }
3055
- subagentTokenUsageByThread.delete(evictableThreadId);
3056
- }
3057
- subagentTokenUsageByThread.set(threadId, {
3058
- firstEvent: message,
3059
- lastEvent: message,
3650
+ const usageKey = createCodexSubagentTurnUsageKey({
3651
+ threadId,
3652
+ turnId: messageTurnId,
3060
3653
  });
3654
+ const sample = subagentTokenUsageByTurn.get(usageKey);
3655
+ 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.
3659
+ return;
3660
+ }
3661
+ sample.firstEvent ??= message;
3662
+ sample.lastEvent = message;
3061
3663
  };
3062
3664
  const handleStaleParentTurnMessage = (message) => {
3063
3665
  const requestId = readCodexRpcServerRequestId(message);
@@ -3170,10 +3772,17 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3170
3772
  rejectPreStartParentTurnRequest(requestId);
3171
3773
  return;
3172
3774
  }
3173
- handleAcceptedServerRequest(message, requestId);
3775
+ trackDynamicToolRequest(handleAcceptedServerRequest(message, requestId));
3174
3776
  return;
3175
3777
  }
3176
- if (isReusedWarmProcess && messageTurnId === null) {
3778
+ if (messageTurnId === null &&
3779
+ method === 'model/rerouted' &&
3780
+ !currentTurnStartedNotificationObserved) {
3781
+ return;
3782
+ }
3783
+ if (isReusedWarmProcess &&
3784
+ messageTurnId === null &&
3785
+ method !== 'model/rerouted') {
3177
3786
  return;
3178
3787
  }
3179
3788
  handleAcceptedEvent(message, method);
@@ -3216,15 +3825,31 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3216
3825
  };
3217
3826
  const steerLiveTurn = async (steerInput) => {
3218
3827
  const liveTurn = requireLiveTurnIds();
3219
- const steerImagePaths = await materializeCodexImagePaths({
3220
- images: steerInput.images,
3828
+ const preparedSteerImages = await materializeCodexImages({
3829
+ images: normalizeCodexAppServerImageDetails({
3830
+ images: steerInput.images,
3831
+ model: input.model,
3832
+ modelProvider: input.modelProvider,
3833
+ turnKind: 'steer',
3834
+ }),
3221
3835
  tempRoot: input.tempRoot,
3222
3836
  });
3223
- await withCodexRpcTimeout(sendRequest('turn/steer', buildCodexTurnSteerParams({
3224
- ...liveTurn,
3225
- imagePaths: steerImagePaths,
3226
- prompt: steerInput.prompt,
3227
- })), CODEX_RPC_STEER_TIMEOUT_MS, 'turn/steer');
3837
+ const deliveryContextOrdinal = automationRelativeDateReferenceWindows.length;
3838
+ automationRelativeDateReferenceWindows.push(mergeAutomationRelativeDateReferenceWindows(automationRelativeDateReferenceWindows.at(-1) ?? null, steerInput.relativeDateReferenceWindow ?? null));
3839
+ try {
3840
+ await withCodexRpcTimeout(sendRequest('turn/steer', buildCodexTurnSteerParams({
3841
+ ...liveTurn,
3842
+ images: preparedSteerImages,
3843
+ prompt: steerInput.prompt,
3844
+ })), CODEX_RPC_STEER_TIMEOUT_MS, 'turn/steer');
3845
+ }
3846
+ catch (error) {
3847
+ if (automationRelativeDateReferenceWindows.length ===
3848
+ deliveryContextOrdinal + 1) {
3849
+ automationRelativeDateReferenceWindows.pop();
3850
+ }
3851
+ throw error;
3852
+ }
3228
3853
  };
3229
3854
  const interruptLiveTurn = async () => {
3230
3855
  const liveTurn = requireLiveTurnIds();
@@ -3232,6 +3857,17 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3232
3857
  scheduleInterruptCleanupTimeout();
3233
3858
  await withCodexRpcTimeout(sendRequest('turn/interrupt', buildCodexTurnInterruptParams(liveTurn)), CODEX_RPC_STEER_TIMEOUT_MS, 'turn/interrupt');
3234
3859
  };
3860
+ const interruptLiveTurnForTerminalNoReply = async () => {
3861
+ if (!codexThreadId || !turnId || turnTerminal) {
3862
+ throw buildLiveTurnInactiveError();
3863
+ }
3864
+ terminalNoReplyInterruptRequested = true;
3865
+ scheduleInterruptCleanupTimeout();
3866
+ await withCodexRpcTimeout(sendRequest('turn/interrupt', buildCodexTurnInterruptParams({
3867
+ threadId: codexThreadId,
3868
+ turnId,
3869
+ })), CODEX_RPC_STEER_TIMEOUT_MS, 'turn/interrupt');
3870
+ };
3235
3871
  const registerLiveTurn = () => {
3236
3872
  if (computerToolsLockedAfterUserPause ||
3237
3873
  liveTurnOpen ||
@@ -3301,7 +3937,11 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3301
3937
  emitAppServerTimingTrace('spawn-ready');
3302
3938
  await codexProcess.initialize();
3303
3939
  lifecycleStage = 'initialized';
3304
- emitAppServerTimingTrace('initialized');
3940
+ emitAppServerTimingTrace(codexProcess.wasPreinitialized ? 'preinitialized' : 'initialized');
3941
+ }
3942
+ else if (!codexProcess.hasCompletedTurn) {
3943
+ lifecycleStage = 'initialized';
3944
+ emitAppServerTimingTrace('preinitialized');
3305
3945
  }
3306
3946
  else {
3307
3947
  lifecycleStage = 'initialized';
@@ -3347,26 +3987,28 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3347
3987
  codexProcess.noteBoundThreadServiceTier(input.serviceTier ?? null);
3348
3988
  const turnStartRequest = sendRequest('turn/start', buildCodexTurnStartParams({
3349
3989
  input,
3350
- imagePaths: input.imagePaths,
3990
+ images: input.preparedImages,
3351
3991
  codexThreadId,
3352
3992
  }));
3993
+ const providerStartedAtMonotonicMs = readAssistantProviderStartMonotonicTickMs();
3353
3994
  // The child can begin executing (including side-effecting commands) as
3354
3995
  // soon as the turn/start request is written, so the provider-start
3355
3996
  // barrier arms here rather than at the acknowledgement. A death between
3356
3997
  // write and response must never be classified as pre-provider work.
3357
- notifyProviderRequestStarted();
3998
+ notifyProviderRequestStarted(providerStartedAtMonotonicMs);
3358
3999
  const turnResult = await withCodexRpcTimeout(turnStartRequest, CODEX_RPC_DEFAULT_TIMEOUT_MS, 'turn/start');
3359
4000
  acceptTurnStartResultTurnId(extractCodexTurnIdFromResult(turnResult));
3360
4001
  lifecycleStage = 'turn_started';
3361
4002
  emitAppServerTimingTrace('turn-started');
3362
- registerLiveTurn();
3363
4003
  lifecycleStage = 'turn_running';
3364
4004
  await turnCompleted;
3365
4005
  clearInterruptCleanupTimer();
4006
+ await drainPendingDynamicToolRequests();
3366
4007
  await drainPendingDynamicToolExecutions();
3367
4008
  await drainPendingProgressDeliveries();
3368
4009
  emitActionDiagnosticsTrace();
3369
4010
  lifecycleStage = 'turn_completed';
4011
+ codexProcess.noteTurnCompleted();
3370
4012
  emitAppServerTimingTrace('turn-completed');
3371
4013
  closeLiveTurn();
3372
4014
  if (stdinFailure) {
@@ -3412,6 +4054,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3412
4054
  ? (buildRecordedTerminationError(lastEventError) ?? error)
3413
4055
  : error;
3414
4056
  emitActionDiagnosticsTrace();
4057
+ await drainPendingDynamicToolRequests();
3415
4058
  dynamicToolAbortController.abort();
3416
4059
  await drainPendingDynamicToolExecutions();
3417
4060
  await drainPendingProgressDeliveries();
@@ -3454,7 +4097,9 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3454
4097
  (latestFinalActionPatch?.kind === 'none' ||
3455
4098
  (!suppressTrailingSteerCandidateForEarlierNoReply &&
3456
4099
  (normalizeNullableString(extractedFinalMessage) !== null ||
3457
- responseMedia.length > 0)));
4100
+ responseMedia.length > 0 ||
4101
+ responseCard !== null ||
4102
+ responseCardTextFallback !== null)));
3458
4103
  if (shouldPromoteTrailingSteerCandidate) {
3459
4104
  promoteTrailingSteerCandidate();
3460
4105
  finalTrailingSteerCandidate = null;
@@ -3465,12 +4110,29 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3465
4110
  : suppressTrailingSteerCandidateForEarlierNoReply
3466
4111
  ? responseMedia
3467
4112
  : finalTrailingSteerCandidate?.media ?? responseMedia;
4113
+ const finalResponseCard = latestFinalActionPatch?.kind === 'none'
4114
+ ? responseCard
4115
+ : suppressTrailingSteerCandidateForEarlierNoReply
4116
+ ? responseCard
4117
+ : finalTrailingSteerCandidate?.card ?? responseCard;
4118
+ if (finalResponseCard !== null && finalResponseMedia.length > 0) {
4119
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_MEDIA_CONFLICT', 'A response card cannot be combined with response media.');
4120
+ }
3468
4121
  const finalDeliveryContextOrdinal = latestFinalActionPatch?.kind === 'none'
3469
4122
  ? latestDeliveryContextOrdinal
3470
4123
  : suppressTrailingSteerCandidateForEarlierNoReply
3471
4124
  ? latestDeliveryContextOrdinal
3472
4125
  : finalTrailingSteerCandidate?.deliveryContextOrdinal ??
3473
4126
  latestDeliveryContextOrdinal;
4127
+ const finalResponseCardTextFallback = latestFinalActionPatch?.kind === 'none'
4128
+ ? responseCardTextFallback
4129
+ : suppressTrailingSteerCandidateForEarlierNoReply
4130
+ ? responseCardTextFallback
4131
+ : finalTrailingSteerCandidate?.cardTextFallback
4132
+ ?? responseCardTextFallback;
4133
+ if (finalResponseCardTextFallback !== null && finalResponseMedia.length > 0) {
4134
+ throw new VaultCliError('ASSISTANT_RESPONSE_CARD_MEDIA_CONFLICT', 'Response card text recovery cannot be combined with response media.');
4135
+ }
3474
4136
  const finalActionPatch = resolveFinalActionPatch(finalDeliveryContextOrdinal);
3475
4137
  const requiredUserVisibleOutput = hasRequiredUserVisibleOutput();
3476
4138
  const noReplySelected = finalActionPatch?.kind === 'none' && !requiredUserVisibleOutput;
@@ -3480,7 +4142,24 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3480
4142
  const modelFinalMessage = noReplySelected || suppressTrailingSteerCandidateForEarlierNoReply
3481
4143
  ? ''
3482
4144
  : selectedFinalMessage;
3483
- const finalMessage = appendRequiredVaultFileApprovalUrls(modelFinalMessage, requiredVaultFileApprovalUrls);
4145
+ const semanticFinalMessage = finalResponseCard
4146
+ ? renderAssistantResponseCardText(finalResponseCard)
4147
+ : finalResponseCardTextFallback
4148
+ ? renderAssistantWorkoutResponseCardText(finalResponseCardTextFallback)
4149
+ : modelFinalMessage;
4150
+ const requiredAutomationLocalAtClarificationsInOrder = [...requiredAutomationLocalAtClarifications.values()];
4151
+ const deliveredFinalResponseCard = requiredAutomationLocalAtClarificationsInOrder.length === 0
4152
+ ? finalResponseCard
4153
+ : null;
4154
+ const finalMessage = appendRequiredVaultFileApprovalUrls(appendRequiredAutomationLocalAtClarification(semanticFinalMessage, requiredAutomationLocalAtClarificationsInOrder), requiredVaultFileApprovalUrls);
4155
+ const transcriptMessage = appendRequiredAutomationLocalAtClarification(finalResponseCard
4156
+ ? requiredAutomationLocalAtClarificationsInOrder.length === 0
4157
+ ? renderAssistantResponseCardTranscriptText(finalResponseCard)
4158
+ : renderAssistantResponseCardText(finalResponseCard)
4159
+ : finalResponseCardTextFallback
4160
+ ? renderAssistantWorkoutResponseCardTranscriptText(finalResponseCardTextFallback)
4161
+ : normalizeNullableString(modelFinalMessage) ??
4162
+ (finalResponseMedia.length > 0 ? '' : null), requiredAutomationLocalAtClarificationsInOrder);
3484
4163
  if (noReplySelected &&
3485
4164
  normalizeNullableString(extractedFinalMessage) !== null) {
3486
4165
  emitCodexSuppressedFinalMessageTrace({
@@ -3493,14 +4172,16 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3493
4172
  const filteredPrecedingAgentMessageSegments = precedingAgentMessageSegments
3494
4173
  .filter((segment) => !shouldSuppressDeliveryContext(segment.deliveryContextOrdinal));
3495
4174
  const finalHasDeliverableOutput = normalizeNullableString(finalMessage) !== null ||
3496
- (!noReplySelected && finalResponseMedia.length > 0);
4175
+ (!noReplySelected && (finalResponseMedia.length > 0 ||
4176
+ deliveredFinalResponseCard !== null ||
4177
+ finalResponseCardTextFallback !== null));
3497
4178
  return {
3498
4179
  acceptedNoReplyDeliveryContextOrdinals: acceptedNoReplyDeliveryContextOrdinals,
3499
4180
  finalAction,
3500
4181
  finalActionExplicit: finalActionPatch?.kind === 'none' && !requiredUserVisibleOutput,
3501
4182
  finalMessage,
3502
- transcriptMessage: normalizeNullableString(modelFinalMessage) ??
3503
- (finalResponseMedia.length > 0 ? '' : null),
4183
+ providerAuthoredFinalMessage: modelFinalMessage,
4184
+ transcriptMessage,
3504
4185
  reactions: reactionPatches.map((entry) => ({
3505
4186
  deliveryContextOrdinal: entry.deliveryContextOrdinal,
3506
4187
  reaction: entry.patch.reaction,
@@ -3509,6 +4190,9 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3509
4190
  precedingAgentMessageSegments: filteredPrecedingAgentMessageSegments.map((segment) => ({
3510
4191
  deliveryContextOrdinal: segment.deliveryContextOrdinal,
3511
4192
  response: segment.response,
4193
+ ...(segment.transcriptResponse === undefined
4194
+ ? {}
4195
+ : { transcriptResponse: segment.transcriptResponse }),
3512
4196
  media: [...segment.media],
3513
4197
  ...(segment.targetInputId
3514
4198
  ? { targetInputId: segment.targetInputId }
@@ -3518,6 +4202,7 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3518
4202
  targetInputId: resolveReplyTargetPatch(finalDeliveryContextOrdinal)?.targetInputId ?? null,
3519
4203
  additionalUsages: [...additionalUsages, ...buildSubagentUsageDrafts()],
3520
4204
  responseMedia: finalHasDeliverableOutput ? [...finalResponseMedia] : [],
4205
+ responseCard: finalHasDeliverableOutput ? deliveredFinalResponseCard : null,
3521
4206
  jsonEvents,
3522
4207
  providerActionCount,
3523
4208
  runtimeIssueInputs,
@@ -3529,6 +4214,23 @@ async function runCodexAppServerTurnOnProcess(codexProcess, input) {
3529
4214
  turnId,
3530
4215
  };
3531
4216
  }
4217
+ function mergeAutomationRelativeDateReferenceWindows(preceding, current) {
4218
+ if (current === null) {
4219
+ return null;
4220
+ }
4221
+ if (preceding === null) {
4222
+ return { ...current };
4223
+ }
4224
+ const earliestAtMs = Math.min(Date.parse(preceding.earliestAt), Date.parse(current.earliestAt));
4225
+ const latestAtMs = Math.max(Date.parse(preceding.latestAt), Date.parse(current.latestAt));
4226
+ if (!Number.isFinite(earliestAtMs) || !Number.isFinite(latestAtMs)) {
4227
+ return null;
4228
+ }
4229
+ return {
4230
+ earliestAt: new Date(earliestAtMs).toISOString(),
4231
+ latestAt: new Date(latestAtMs).toISOString(),
4232
+ };
4233
+ }
3532
4234
  function assertCodexThreadStartPermissionAttestation(input) {
3533
4235
  const result = asCodexRecord(input.threadResult);
3534
4236
  const activePermissionProfile = asCodexRecord(result?.activePermissionProfile);
@@ -3553,7 +4255,8 @@ function assertCodexThreadStartPermissionAttestation(input) {
3553
4255
  if (!actualCwd || path.resolve(actualCwd) !== input.input.workingDirectory) {
3554
4256
  mismatchedFields.push('cwd');
3555
4257
  }
3556
- if (instructionSources === null || instructionSources.length !== 0) {
4258
+ if (input.input.processLifetime === 'one-shot' &&
4259
+ (instructionSources === null || instructionSources.length !== 0)) {
3557
4260
  mismatchedFields.push('instructionSources');
3558
4261
  }
3559
4262
  if (asCodexString(result?.approvalPolicy) !==
@@ -3563,7 +4266,7 @@ function assertCodexThreadStartPermissionAttestation(input) {
3563
4266
  if (mismatchedFields.length === 0) {
3564
4267
  return;
3565
4268
  }
3566
- throw new VaultCliError('ASSISTANT_CODEX_APP_SERVER_PERMISSION_ATTESTATION_FAILED', 'Codex app-server did not attest the requested read-only execution context.', {
4269
+ throw new VaultCliError('ASSISTANT_CODEX_APP_SERVER_PERMISSION_ATTESTATION_FAILED', 'Codex app-server did not attest the requested named-permission execution context.', {
3567
4270
  mismatchedFields,
3568
4271
  retryable: false,
3569
4272
  });
@@ -3588,6 +4291,36 @@ function emitCodexSuppressedFinalMessageTrace(input) {
3588
4291
  // Diagnostic-only.
3589
4292
  }
3590
4293
  }
4294
+ function emitCodexGeneratedAudioPhaseTimingTrace(input) {
4295
+ if (!input.onTraceEvent) {
4296
+ return;
4297
+ }
4298
+ try {
4299
+ input.onTraceEvent({
4300
+ codexThreadId: input.codexThreadId,
4301
+ rawEvent: {
4302
+ schema: CODEX_GENERATED_AUDIO_PHASE_TIMING_TRACE_SCHEMA,
4303
+ type: CODEX_GENERATED_AUDIO_PHASE_TIMING_TRACE_TYPE,
4304
+ generatedAudioDeliveryMode: input.timing.deliveryMode,
4305
+ ...(input.timing.generationDurationMs === undefined
4306
+ ? {}
4307
+ : {
4308
+ generatedAudioGenerationDurationMs: input.timing.generationDurationMs,
4309
+ }),
4310
+ generatedAudioKind: input.timing.mediaKind,
4311
+ generatedAudioOutcome: input.timing.outcome,
4312
+ generatedAudioTerminalPhase: input.timing.terminalPhase,
4313
+ ...(input.timing.uploadDurationMs === undefined
4314
+ ? {}
4315
+ : { generatedAudioUploadDurationMs: input.timing.uploadDurationMs }),
4316
+ },
4317
+ updates: [],
4318
+ });
4319
+ }
4320
+ catch {
4321
+ // Phase timing is diagnostic-only and must not block assistant turns.
4322
+ }
4323
+ }
3591
4324
  function notifyCodexAppServerProviderRequestStartedBestEffort(input) {
3592
4325
  if (!input.hook) {
3593
4326
  return;
@@ -3611,31 +4344,51 @@ function isInvalidDynamicToolRequest(request) {
3611
4344
  request.kind === 'invalid-computer-arguments' ||
3612
4345
  request.kind === 'invalid-device-arguments' ||
3613
4346
  request.kind === 'invalid-generate-voice-memo-arguments' ||
4347
+ request.kind === 'invalid-pending-vault-files-arguments' ||
3614
4348
  request.kind === 'invalid-finish-without-reply-arguments' ||
3615
4349
  request.kind === 'invalid-progress-arguments' ||
3616
4350
  request.kind === 'invalid-reaction-arguments' ||
3617
4351
  request.kind === 'invalid-reply-target-arguments' ||
3618
4352
  request.kind === 'invalid-product-feedback-arguments' ||
4353
+ request.kind === 'invalid-response-card-arguments' ||
3619
4354
  request.kind === 'invalid-response-media-arguments');
3620
4355
  }
3621
4356
  function isSerializedDynamicToolRequest(request) {
3622
4357
  return request.kind === 'automation' ||
4358
+ request.kind === 'automation-local-at-recovery-dismissal' ||
4359
+ request.kind === 'invalid-automation-arguments' ||
3623
4360
  request.kind === 'device' ||
3624
4361
  request.kind === 'generate-image' ||
3625
4362
  request.kind === 'generate-voice-memo' ||
3626
4363
  request.kind === 'generate-song' ||
4364
+ request.kind === 'attach-group-challenge-response-card' ||
4365
+ request.kind === 'attach-response-card' ||
4366
+ request.kind === 'response-card-envelope-too-large' ||
3627
4367
  request.kind === 'attach-response-media' ||
3628
4368
  request.kind === 'send-vault-file' ||
4369
+ request.kind === 'pending-vault-files-list' ||
4370
+ request.kind === 'pending-vault-files-cancel' ||
3629
4371
  request.kind === 'assistant-configuration' ||
3630
4372
  request.kind === 'assistant-style' ||
3631
4373
  request.kind === 'personalization' ||
3632
4374
  request.kind === 'subscription' ||
4375
+ (request.kind === 'group' &&
4376
+ request.request.action === 'ask_current_sender' &&
4377
+ request.request.mode !== 'new') ||
3633
4378
  request.kind === 'react-to-message' ||
3634
4379
  request.kind === 'select-reply-target' ||
3635
- isComputerDynamicToolRequest(request);
4380
+ request.kind === 'computer-open' ||
4381
+ request.kind === 'computer-act' ||
4382
+ request.kind === 'computer-os-control' ||
4383
+ request.kind === 'computer-pause-for-user' ||
4384
+ request.kind === 'computer-finish-run' ||
4385
+ request.kind === 'invalid-computer-arguments';
3636
4386
  }
3637
- function isResponseMediaDynamicToolRequest(request) {
3638
- return request.kind === 'attach-response-media' ||
4387
+ function isResponseAttachmentDynamicToolRequest(request) {
4388
+ return request.kind === 'attach-group-challenge-response-card' ||
4389
+ request.kind === 'attach-response-card' ||
4390
+ request.kind === 'response-card-envelope-too-large' ||
4391
+ request.kind === 'attach-response-media' ||
3639
4392
  request.kind === 'generate-image' ||
3640
4393
  request.kind === 'generate-song' ||
3641
4394
  request.kind === 'generate-voice-memo' ||
@@ -3643,9 +4396,13 @@ function isResponseMediaDynamicToolRequest(request) {
3643
4396
  }
3644
4397
  function isInvocationScopedRootToolRequest(request) {
3645
4398
  return request.kind === 'automation' ||
4399
+ request.kind === 'automation-local-at-recovery-dismissal' ||
3646
4400
  request.kind === 'invalid-automation-arguments' ||
3647
4401
  request.kind === 'device' ||
3648
4402
  request.kind === 'invalid-device-arguments' ||
4403
+ request.kind === 'pending-vault-files-list' ||
4404
+ request.kind === 'pending-vault-files-cancel' ||
4405
+ request.kind === 'invalid-pending-vault-files-arguments' ||
3649
4406
  request.kind === 'react-to-message' ||
3650
4407
  request.kind === 'select-reply-target' ||
3651
4408
  request.kind === 'invalid-reaction-arguments' ||
@@ -3726,6 +4483,7 @@ function resolveCodexRolloutRelativePath(input) {
3726
4483
  function assertCodexResumeContextMatches(input) {
3727
4484
  const result = asCodexRecord(input.threadResult);
3728
4485
  const actualCwd = normalizeNullableString(asCodexString(result?.cwd));
4486
+ const expectedPermissions = normalizeNullableString(input.input.permissions);
3729
4487
  const checks = [
3730
4488
  [
3731
4489
  'threadId',
@@ -3745,13 +4503,30 @@ function assertCodexResumeContextMatches(input) {
3745
4503
  ],
3746
4504
  [
3747
4505
  'sandbox',
3748
- mapCodexAppServerSandboxMode(input.input.sandbox) ?? null,
4506
+ expectedPermissions
4507
+ ? null
4508
+ : mapCodexAppServerSandboxMode(input.input.sandbox) ?? null,
3749
4509
  readCodexResumeSandboxMode(result?.sandbox),
3750
4510
  ],
3751
4511
  ];
3752
4512
  const mismatchedFields = checks
3753
4513
  .filter(([, expected, actual]) => expected !== null && actual !== expected)
3754
4514
  .map(([field]) => field);
4515
+ if (expectedPermissions) {
4516
+ const activePermissionProfile = asCodexRecord(result?.activePermissionProfile);
4517
+ const actualRoots = asCodexStringArray(result?.runtimeWorkspaceRoots);
4518
+ const expectedRoots = input.input.runtimeWorkspaceRoots ?? [];
4519
+ if (normalizeNullableString(asCodexString(activePermissionProfile?.id)) !==
4520
+ expectedPermissions ||
4521
+ normalizeNullableString(asCodexString(activePermissionProfile?.extends)) !== null) {
4522
+ mismatchedFields.push('activePermissionProfile');
4523
+ }
4524
+ if (!actualRoots ||
4525
+ actualRoots.length !== expectedRoots.length ||
4526
+ actualRoots.some((root, index) => path.resolve(root) !== path.resolve(expectedRoots[index] ?? ''))) {
4527
+ mismatchedFields.push('runtimeWorkspaceRoots');
4528
+ }
4529
+ }
3755
4530
  if (mismatchedFields.length === 0) {
3756
4531
  return;
3757
4532
  }
@@ -3812,14 +4587,13 @@ function normalizeCodexRolloutRelativePath(value, codexThreadId) {
3812
4587
  return value;
3813
4588
  }
3814
4589
  function extractCodexProviderActionKey(normalizedEvent, rawEvent) {
4590
+ if (isCodexProductFeedbackDynamicToolEvent(rawEvent)) {
4591
+ return null;
4592
+ }
3815
4593
  if (normalizedEvent.kind === 'status_item') {
3816
- if (normalizedEvent.itemType !== 'command.execution' &&
3817
- normalizedEvent.itemType !== 'dynamic.tool.call' &&
3818
- normalizedEvent.itemType !== 'file.change') {
3819
- return null;
3820
- }
3821
- if (normalizedEvent.itemType === 'dynamic.tool.call' &&
3822
- isCodexProductFeedbackDynamicToolEvent(rawEvent)) {
4594
+ if (normalizedEvent.itemType !== 'commandExecution' &&
4595
+ normalizedEvent.itemType !== 'dynamicToolCall' &&
4596
+ normalizedEvent.itemType !== 'fileChange') {
3823
4597
  return null;
3824
4598
  }
3825
4599
  return (normalizedEvent.itemId ??
@@ -3833,17 +4607,10 @@ function extractCodexProviderActionKey(normalizedEvent, rawEvent) {
3833
4607
  providerActionFallbackKeyFromNormalized(normalizedEvent));
3834
4608
  }
3835
4609
  function isCodexProductFeedbackDynamicToolEvent(event) {
3836
- const params = readCodexRecordField(event, 'params');
3837
- const data = readCodexRecordField(event, 'data');
3838
- const item = readCodexRecordField(event, 'item') ??
3839
- readCodexRecordField(params, 'item') ??
3840
- readCodexRecordField(data, 'item');
3841
- const itemType = readCodexStringField(item, 'type')
3842
- ?.replaceAll(/[._-]/gu, '')
3843
- .toLowerCase();
3844
- return (itemType === 'dynamictoolcall' &&
3845
- readCodexStringField(item, 'namespace') === 'murph' &&
3846
- readCodexStringField(item, 'tool') === 'submit_product_feedback');
4610
+ const item = readCodexRecord(readCodexRecord(event.params)?.item);
4611
+ return (item?.type === 'dynamicToolCall' &&
4612
+ item.namespace === 'murph' &&
4613
+ item.tool === 'submit_product_feedback');
3847
4614
  }
3848
4615
  function providerActionFallbackKeyFromNormalized(event) {
3849
4616
  switch (event.kind) {